Christian Nunes Aranha Uma Abordagem de PréProcessamento Automático para Mineração de Textos em Português: Sob o Enfoque da Inteligência Computacional Tese de Doutorado Tese apresentada como requisito parcial para obtenção do grau de Doutor pelo Programa de Pós-graduação em Engenharia Elétrica do Departamento de Engenharia Elétrica da PUC-Rio. Orientadora: Profa. Marley Maria Bernardes Rebuzzi Vellasco Rio de Janeiro Março de 2007 Livros Grátis http://www.livrosgratis.com.br Milhares de livros grátis para download. Christian Nunes Aranha Uma Abordagem de PréProcessamento Automático para Mineração de Textos em Português: Sob o Enfoque da Inteligência Computacional Tese apresentada como requisito parcial para obtenção do grau de Doutor pelo Programa de Pós-Graduação em Engenharia Elétrica do Departamento de Engenharia Elétrica do Centro Técnico Científico da PUC-Rio. Aprovada pela Comissão Examinadora abaixo assinada. Dra. Marley Maria Bernardes Rebuzzi Vellasco Orientadora Departamento de Engenharia Elétrica - PUC-Rio Dr. Emmanuel Piceses Lopes Passos Co-Orientador Departamento de Engenharia Elétrica - PUC-Rio Dr. Marco Aurélio Cavalcanti Pacheco Departamento de Engenharia Elétrica - PUC-Rio Dr. Antonio Luz Furtado Departamento de Informática – PUC-Rio Dra. Maria Carmelita Padua Dias Departamento de Letras – PUC-Rio Dr. Nelson Francisco Favilla Ebecken UFRJ Dr. Alexandre Linhares FGV-RJ Dra. Valeria Menezes Bastos Departamento de Informática – PUC-Rio Prof. José Eugenio Leal Coordenador Setorial do Centro Técnico Científico - PUC-Rio Rio de Janeiro, 28 de março de 2007 Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e da orientadora. Christian Nunes Aranha Graduado em Engenharia Elétrica, com ênfase em sistemas de apoio à decisão. Trabalho de final de curso em otimização lagrangeana aplicada ao problema de ordenação linear (LOP) sob a orientação de Abílio Lucena. Mestrado em métodos estatísticos de apoio à decisão. Dissertação sobre regressão multivariada linear por partes, modelo TS-TARX, sob a orientação de Alvaro Veiga. Doutorado em Inteligência Computacional para mineração de textos. Ficha Catalográfica Aranha, Christian Nunes Uma abordagem de pré-processamento automático para mineração de textos em português: sob o enfoque da inteligência computacional / Christian Nunes Aranha; orientadora: Marley Maria Bernardes Rebuzzi Vellasco. – 2007. 144 f. ; 30 cm Tese (Doutorado em Engenharia Elétrica) – Pontifícia Universidade Católica do Rio de Janeiro, Rio de Janeiro, 2007. Inclui bibliografia 1. Engenharia elétrica – Teses. 2. Mineração de texto. 3. Pré-processamento. 4. Inteligência artificial. I. Vellasco, Marley Maria Bernardes Rebuzzi. II. Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Engenharia Elétrica. III. Título. CDD: 621.3 Agradecimentos Ao professor Emmanuel Passos pelo seu apoio e orientação. Aos meus pais, minha namorada e meus amigos, sem os quais são poderia ter completado este trabalho. Ao CNPq pelo incentivo à pesquisa. Resumo Christian Nunes Aranha; Vellasco, Marley Maria Bernardes Rebuzzi (Orientadora). Uma Abordagem de Pré-Processamento Automático para Mineração de Textos em Português: Sob o Enfoque da Inteligência Computacional. Rio de Janeiro, 2007. 144p. Tese de Doutorado - Departamento de Engenharia Elétrica, Pontifícia Universidade Católica do Rio de Janeiro. O presente trabalho apresenta uma pesquisa onde é proposto um novo modelo de pré-processamento para mineração de textos em português utilizando técnicas de inteligência computacional baseadas em conceitos existentes, como redes neurais, sistemas dinâmicos, e estatística multidimensional. O objetivo dessa tese de doutorado é, portanto, inovar na fase de pré-processamento da mineração de textos, propondo um modelo automático de enriquecimento de dados textuais. Essa abordagem se apresenta como uma extensão do tradicional modelo de conjunto de palavras (bag-of-words), de preocupação mais estatística, e propõe um modelo do tipo conjunto de lexemas (bag-of-lexems) com maior aproveitamento do conteúdo lingüístico do texto em uma abordagem mais computacional, proporcionando resultados mais eficientes. O trabalho é complementado com o desenvolvimento e implementação de um sistema de préprocessamento de textos, que torna automática essa fase do processo de mineração de textos ora proposto. Apesar do objeto principal desta tese ser a etapa de préprocessamento, passaremos, de forma não muito aprofundada, por todas as etapas do processo de mineração de textos com o intuito de fornecer a teoria base completa para o entendimento do processo como um todo. Além de apresentar a teoria de cada etapa, individualmente, é executado um processamento completo (com coleta de dados, indexação, pré-processamento, mineração e pósprocessamento) utilizando nas outras etapas modelos já consagrados na literatura que tiveram sua implementação realizada durante esse trabalho. Ao final são mostradas funcionalidades e algumas aplicações como: classificação de documentos, extração de informações e interface de linguagem natural (ILN). Palavras-chave Mineração de Texto, Preprocessamento, Inteligência Artificial. Abstract Christian Nunes Aranha; Vellasco, Marley Maria Bernardes Rebuzzi (Advisor). An Automatic Preprocessing for Text Mining in Portuguese: A Computer-Aided Approach. Rio de Janeiro, 2007. 144p. D.Sc. Thesis - Departamento de Engenharia Elétrica, Pontifícia Universidade Católica do Rio de Janeiro. This work presents a research that proposes a new model of pre-processing for text mining in portuguese using computational intelligence techniques based on existing concepts, such as neural networks, dinamic systems and multidimensional statistics. The object of this doctoral thesis is, therefore, innovation in the pre-processing phase of text-mining, proposing an automatic model for the enrichment of textual data. This approach is presented as an extension of the traditional bag-of-words model, that has a more statistical emphasis, and proposes a bag-of-lexemes model with greater usage of the texts' linguistic content in a more computational approach, providing more efficient results. The work is complemented by the development and implementation of a text pre-processing system that automates this phase of th text mining process as proposed. Despite the object of this thesis being the pre-processing stage, one feels apropriate to describe, in overview, every step of the text mining process in order to provide the basic theory necessary to understand the process as a whole. Beyond presenting the theory of every stage individually, one executes a complete process (with data collection, indexing, pre-processing, mining and postprocessing) using tried-and-true models in all the other stages, which were implemented during the development of this work. At last some functionalities and aplications are shown, such as: document classification, information extraction and natural language interface (NLI). Keywords Text Mining, Preprocessing, Artificial Inteligence. Sumário 1. Introdução 1.1. Motivação 1.2. Objetivo da Tese 1.3. Estrutura da Tese 13 15 18 20 2. O Estado da Arte 2.1. Modelos Puramente Estatísticos 2.1.1. Modelo de Espaço Vetorial 2.1.2. Análise de Correspondência 2.1.3. Análise de Discriminante 2.2. Redes Neurais 2.2.1. Hopfield 2.2.2. Backpropagation 2.2.3. Mapas Auto-Organizáveis 2.3. Aprendizado de Máquina 2.3.1. Cadeias de Markov Escondidas 2.3.2. Aprendizado Baseado em Transformações 22 22 23 25 28 31 31 32 33 35 35 39 3. Mineração de Texto 3.1. Coleta de Dados 3.2. Pré-processamento 3.2.1. Identificação de Palavras no Texto 3.2.2. Redução de Dimensionalidade 3.2.3. Remoção de Palavras Não-Discriminantes (Stop-words) 3.3. Indexação 3.3.1. Procura Caractere à Caractere 3.3.2. Lista Invertida 3.3.3. Similaridade 3.3.4. Processo de Indexação 3.3.5. Índice do tipo Full-text 3.3.6. Ordenação 3.4. Mineração de Dados 3.5. Análise da Informação 40 41 42 43 45 46 47 49 50 52 53 54 57 58 59 4. Processamento da Linguagem Natural 4.1. O Modelo de PLN 4.1.1. Aquisição Automática 4.1.2. O Léxico 4.1.3. Sobre a Delimitação da Unidade Lexical 4.1.4. Ontologia 4.1.5. Precisão e Recordação 4.2. Técnicas de PLN 4.2.1. Tokenização 4.2.2. Normalização 4.2.3. Expressões Multi-Vocabulares 4.2.4. Fronteiras das Frases 60 600 61 61 62 63 633 644 644 655 677 68 4.2.5. Etiquetagem 4.2.6. Padrões Gramaticais 4.2.7. Reconhecimento de Entidades Mencionadas 4.2.8. Classificação de Entidades Mencionadas 4.2.9. Análise dos Constituintes 4.2.10. Correferencia 4.2.10.1. Acrônimos, Siglas e Abreviaturas 4.2.10.2. Nomes Truncados 4.2.10.3. Anáfora Pronominal 4.2.10.4. Sinônimos 4.2.10.5. Erros Ortograficos 4.2.11. Discriminação do Sentido da Palavra 4.2.11.1. Detecção Automática de Sinônimos 5. Desenvolvimento e Implementação 5.1. Aprendizado Automático 5.2. O Léxico Computacional 5.2.1. A Importância do Léxico 5.3. Percepção Lingüística 5.4. Tesaurus 5.5. O Modelo 5.5.1. Definições 5.5.2. Arquitetura 5.5.3. Compostos 5.5.4. Nomes Próprios 5.5.5. Sintaxe 5.6. Representação do Documento 5.6.1. Formato de Armazenamento 5.6.1.1. Tags de Categoria 5.6.1.2. Tags de Contexto 5.6.1.3. Tags de Função 5.6.1.4. Tags de Estrutura 5.6.1.5. Tags Descritivas 5.6.2. Exemplos 6. Exemplos de Aplicações de Mineração de Textos 6.1.1. Classificação 6.1.2. Extração de Informações 6.1.3. Interface em Linguagem Natural 6.2. Web Semântica 7. Resultados 7.1. Pré-processamento 7.2. Classificação 7.2.1. Amostra Pequena 7.2.2. Amostra Grande 8. Conclusão e Trabalhos Futuros 69 700 700 73 74 755 755 766 777 78 788 79 800 82 82 83 84 85 87 88 89 89 99 102 1022 1033 1044 1044 1055 1066 1077 108 109 111 111 112 114 116 119 119 1222 123 1287 12929 9. Referências bibliográficas 13131 10. Anexo I: Principais distribuições de frequência dos significados 13142 11. Anexo II: Exemplo de Mineração de Textos por Perguntas 1433 Lista de figuras Figura 1 – Valor agregado pela Mineração de Textos (MT) no processo de análise de informações textuais Figura 2 – Diagrama de camadas abstratas de um sistema computacional Figura 3 – Resultado em duas dimensões da análise de correspondência Figura 4 – Análise de correspondência utilizando a etapa de pré com segmentos de frase Figura 5 – Arquitetura de Hopfield utilizada no software TextAnalyst Figura 6 – Rede Neural Backpropagation. Modelo usado por Fukuda Figura 7 – Distribuição do mapa dos documentos. Em cinza os lugares onde há a maior concentração de documentos Figura 8 – Exemplo de automato para Cadeia de Markov Escondida Figura 9 – Texto original Figura 10 – Resultado da extração de informação de HMM. Os rótulos após cada palavra é o rótulo ótimo encontrado. <T> título; <D> data; <A> autor e <C> corpo Figura 11 – Processo de funcionamento de um TBL Figura 12 – Indentificação de palavras válidas Figura 13 – A curva de Zipf e os cortes de Luhn Figura 14 – Indentificação de Stop-Words Figura 15 – Estrutura de uma Lista Invertida associada aos documentos indexados. Figura 16 - Função Similaridade Figura 17 – Sequência do processo de indexação automática. Figura 18 – Arquitetura da Busca tipo Full-text Figura 19 – Representação de uma estrutura de hiperlinks na Internet Figura 20 – Os três gráficos (1), (2) e (3) mostram, de forma ilustrativa, a necessidade colaborativa de três tarefas de PLN T1, T2 e T3. T2 só consegue atingir 90% de acerto de melhorar T1 e T3. Figura 21 – As figures (a), (b) e (c) ilustram três relações diferentes e hipotéticas de sinonímia. Figura 22 – Esquema de pré-requisitos entre as classes ontológicas. Figura 23 – Esquema geral de um extrator de informações lingüísticas Figura 24 – Modelo de banco de dados. Figura 25 – Modelo de classes por orientação a objeto. Figura 26 – (Pipeline) Sequência de procedimentos de reconhecimento de padrões e aprendizado de lexemas especializados em cada área do PLN. Figura 27 – Modelo de aprendizado autonomo e retroalimentado. Figura 28 – Seqüências de etapas que compõe o processamento do texto Figura 29 – Ontologia pré-definida para o processamento. As setas indicam os pré-requisitos (AÆB = A é pré-requisito de B) Figura 30 – Cada círculo representa um lexema percebido. A borda de cada um deles indica um traço semântico. O resultado das referências agrupa as redundâncias semânticas 17 19 27 28 32 33 34 36 37 37 38 44 46 47 51 52 54 56 57 60 67 73 83 90 90 91 92 93 93 95 Figura 31 – Exemplo de uma gramática escrita sobre a de especificação de Backus-Norm-Form Figura 32– Suporte da interface sintática forçando a reavaliação da percepção e referência Figura 33 – Diferentes módulos para resolver a sintaxe. Estão separados por fatores de performance e forma de execução Figura 34 – Exemplos de tags de categoria Figura 35 – Exemplo de Tags de Contexto Figura 36 – Exemplos de Tags de Função Figura 37 – Exemplos de Tags Descritivas Figura 38 – Exemplo de reconhecimento de entidades. Instituições em vermelho, índice em verde e tempo em roxo Figura 39 – Exemplo de reconhecimento de entidades. Nomes de pessoas em laranja e lugares em azul. 97 98 103 105 106 107 108 109 109 Lsta de tabelas Tabela 1 – Ranking de quantidade de Hosts por país Tabela 2 – Matriz com o número de ocorrência do termo (linhas) em cada uma das partições educação (L,M e H) e idade (-30, -55 e +55). Tabela 3 – Especificação da tabela e exemplos de registros do léxico utilizado Tabela 4 – Resultado do Reconhecimento de Entidades Mencionadas para os textos da coleção escritos no Português Brasileiro Tabela 5 – Resultado HAREM para a avaliação de bases de emails Tabela 6 – Resultado HAREM para a avaliação de bases de textos de jornais Tabela 7 – Resultado HAREM para a avaliação de bases de páginas da Internet Tabela 8 – Resultados do modelo bag-of-words para a fase de treinamento com 5000 notícias. A tabela apresenta os dados do modelo e o quadro apresenta o formato de leitura dos parâmetros do modelo Tabela 9 – Resultados do modelo bag-of-lexems para a fase de treinamento com 5000 notícias. A tabela apresenta os dados do modelo e o quadro apresenta o formato de leitura dos parâmetros do modelo Tabela 10 – Resultados do modelo bag-of-lexems com ontologia para a fase de treinamento com 5000 notícias. A tabela apresenta os dados do modelo e o quadro apresenta o formato de leitura dos parâmetros do modelo Tabela 11 – Comparação entre as acurácias dos tres métodos: BOW (bagof-words), BOL(bag-of-lexems) e BOLO(bag-of-lexems com ontologia), para as diferentes quantidades de informação processada Tabela 12 – Comparativo do número de termos significantes usados no modelo de classificação Tabela 13 – Resultados de performance e generalização utilizando bag-ofwords Tabela 14 – Resultados de performance e generalização utilizando bag-oflexems Tabela 15 – Resultados de performance e generalização utilizando bag-oflexems rotulados usando a ontologia definida 17 26 62 120 121 122 122 124 124 125 126 126 127 128 128 1 Introdução Métodos de recuperação de textos sempre foram utilizados para organizar documentos, porém, com o aumento do volume de textos que vem ocorrendo, principalmente, pela digitalização do conteúdo e pela Internet, técnicas de tratamento automático de textos começaram a se tornar cada vez mais importantes para se encontrar e trabalhar a informação. Para solucionar esses problemas surge uma nova linha de pesquisa, a mineração de textos. Quando uma nova área surge, precisa-se de algum tempo e muita discussão acadêmica antes que seus termos e conceitos sejam padronizados (Kroeze, H. J. et al, 2003). No caso da mineração de textos não é diferente, abaixo encontram-se algumas definições encontradas nos textos estudados. Text Mining realiza várias funções de busca, análise lingüística e categorização. Mecanismos de busca se restringem à Internet. (Chen, H., 2001):5,9 Text Mining é o estudo e a prática de extrair informação de textos usando os princípios da lingüística computacional. (Sullivan, D., 2000) Text Mining é ideal para inspecionar mudanças no mercado, ou para identificar idéias. (Biggs, M., 2005) Text Mining é uma forma de examinar uma coleção de documentos e descobrir informação não contida em nenhum dos documentos. (Lucas, M., 2000):1 Text Mining como sendo Data Mining em dados textuais. Text Mining tem como objetivo extrair padrões e associações desconhecidas de um grande banco de dados textual. (Thuraisingham, B., 1999):167 Text Mining, como análise de dados exploratória, é um método para apoiar pesquisadores a derivar novas e relevantes informações de uma grande coleção de textos. É um processo parcialmente automatizado onde o pesquisador ainda está envolvido, interagindo com o sistema. (Hearst, M. A., 1999):6-7 Pode-se então definir Descoberta de Conhecimento em Textos (KDT) ou Text Mining como sendo o processo de extrair padrões ou conhecimento, interessantes e não-triviais, a partir de documentos textuais. (Tan, A.-H., 1999) 14 A partir dessas definições/conceitos podemos ver que a área de mineração de textos tem uma origem forte na área de mineração de dados e KDD (Knowledge Discovery in Databases), sendo, por isso, chamada também de Text Data Mining (Hearst, M. A., 1999) e KDT (Knowledge Discovery in Texts) (Dörre, J. et al, 1999). Existe, também, uma interseção com a área de busca de informação na Internet, assim como influências de áreas correlatas como Processamento da Linguagem Natural (PLN), de Recuperação da Informação (RI), Inteligência Artificial (IA) e Ciência Cognitiva. A conjunção do conhecimento dessas áreas fizeram dela uma área própria, chamada apenas de Mineração de Textos (Text Mining). Um processo de mineração de textos que vem sendo bastante utilizado envolve três etapas principais: a seleção, a indexação e a análise de textos. A seleção de textos tem por objetivo montar a base a ser analisada; a indexação tem por objetivo viabilizar uma busca rápida por um documento específico (algumas vezes opcional); e, finalmente, a análise de textos tem por objetivo extração de informação por algoritmos inteligentes e interpretação do conhecimento contido no texto. O modelo de mineração de textos, proposto pelo autor, propõe a inserção de um módulo de pré-processamento antes da fase de indexação do processo tradicional descrito. Segundo o modelo proposto, a fase de indexação de textos passa a ser realizada em duas etapas: uma de pré-processamento de textos e outra de indexação. Com a nova etapa, o processo passa a conter quatro etapas no total. O presente trabalho apresenta, então, uma pesquisa onde é proposto um novo modelo, automático, de mineração de textos, de ênfase na língua portuguesa e inspirado em técnicas de inteligência computacional. O trabalho é complementado com o desenvolvimento e implementação do sistema de préprocessamento. A hipótese do autor é de que o pré-processamento dos textos, tanto na codificação como no enriquecimento dos textos a serem minerados, é uma parte importante para uma análise eficaz. Sua importância é sugerida pelo maior aproveitamento dos aspectos linguísticos como morfologia, sintaxe e semântica. Os resultados mostram que um pré-processamento simplista pode deixar de lado parte da informação relevante. Essa tarefa, no entanto, apresenta dificuldades com relação a sua complexidade e à própria natureza dos dados, que via de regra, são 15 não-estruturados e dinâmicos. É necessário, por isso, saber conviver com exceções. Apesar do objeto principal desta tese ser a etapa de pré-processamento, passaremos por todas as etapas do processo de mineração de textos com o intuito de fornecer a teoria básica completa para o entendimento do processo como um todo. Além de apresentar a teoria de cada etapa individualmente, será descrito um processamento completo (com seleção, indexação, pré-processamento, mineração e pós-processamento) utilizando nas outras etapas modelos já consagrados na literatura e implementados durante esse trabalho. A implementação visa mostrar funcionalidades e algumas aplicações como: classificação de documentos, extração de informações e interface de linguagem natural (ILN). Outro produto dessa tese é a implementação do sistema de préprocessamento, que terá seus módulos, e funcionalidades, detalhados clareando toda sua complexidade. São especificados, também, o ambiente de desenvolvimento, plataformas utilizadas, formas de integração com outros sistemas de mineração de textos e descrição do funcionamento do sistema em termos de formato das entradas e saídas de cada sub-módulo. 1.1. Motivação O primeiro motivo é o fato de um processo clássico de mineração de dados, onde não envolve um pré-processamento tão complexo, esta fase consome 60% do tempo total (Goldschmidt, R. e Passos, E., 2005). Estimamos, então, que o pré-processamento automático dos textos para análise seja um procedimento importante e essencial, tanto para a economia de tempo como para o bom funcionamento das etapas seguintes. O formato textual parece ser a forma mais natural de armazenar informações já que cresce a informação produzida e disponível para os sistemas computacionais armazenada em forma de textos como livros, revistas, artigos científicos, manuais, memorandos, e-mails, relatórios, projetos e outros tipos de formalização de conhecimento. Isso ocorre porque o meio mais intuitivo de externalização (transformação do conhecimento tácito em explícito) é registrar, em textos livres, pensamentos, idéias, sentimentos e opiniões de pessoas. Além de 16 dados empíricos, duas pesquisas podem comprovar esse pensamento. A primeira mostrou que 80% do conteúdo da Internet está em formato textual (Chen, H., 2001). A segunda mostrou que, além da Internet, nas organizações há também muito conhecimento deste tipo disponível. Verificou-se que 80% das informações armazenadas por uma empresa são também dados não-estruturados (Tan, A.-H., 1999). Essas pesquisas mostram também que inúmeras novas páginas contendo textos são lançados diariamente na Internet, assim como outros tipos de documentos (como relatórios de acompanhamento, atas de reuniões, históricos pessoais, etc.) são periodicamente gerados, atualizados e armazenados nas empresas. Por esses motivos, a importância da análise automática de textos é reconhecida em todos os segmentos que lidam com informação e conhecimento. Adicionalmente, grande parte das atividades de tomada de decisões, hoje, envolve a análise de grandes volumes de texto. O processo decisório, que era orientado a análise (automática ou não) de séries temporais e fluxo de dados (data-driven) desde os anos 70, está cada vez mais, principalmente das áreas estratégicas das empresas, orientado pelas informações (information-driven) (Koenig, M. E. D., 2000). Entretanto, o grande volume dessas informações faz com que as organizações e as pessoas tenham dificuldade para gerenciar adequadamente estas informações, principalmente as não-estruturadas. Durante muito tempo as técnicas de mineração de dados (Goldschmidt, R. e Passos, E., 2005) cresceram para elaborar soluções para as informações estruturadas da empresa. Seguindo esse mesmo caminho, a área de mineração de textos surge para minimizar o problema de tratar dados não-estruturados, ajudando a explorar conhecimento armazenado em meios textuais e assim gerar algum tipo de vantagem competitiva. A tarefa de gerar inteligência a partir da análise das informações capturadas e documentadas em textos livres já é realizada atualmente e demanda cada vez mais tempo dos participantes envolvidos devido ao volume cada vez maior a ser tratado. É exatamente nesse ponto que a mineração de textos pode contribuir. A Figura 40 ilustra a forma como o autor entende esse processo e como pretende contribuir na eficiência do processo de análise e decisão. 17 Figura 40 – Valor agregado pela Mineração de Textos (MT) no processo de análise de informações textuais. Os processos de mineração de textos podem representar uma nova visão das informações disponíveis nas empresas. As aplicações são inúmeras, exemplos como o acompanhamento da gerência de projetos a partir de relatórios, documentação de projeto, comunicação com o cliente, o desenvolvimento do planejamento de marketing baseado em detalhes de planos passados, opções de anúncios e pesquisas de marketing. Aplicações não tão pretensiosas já se encontram implantadas atualmente, como a categorização automática de mensagens de correio eletrônico. Quanto ao idioma desenvolvido (língua portuguesa), de acordo com projeto CLIC 2004 (CNPq pequenos grupos), o português é uma língua falada por uma parcela significativa da população mundial (aproximadamente 3%, em 1999, de acordo com The Ethnologue, em www.ethnologue.com), sendo o sexto idioma mais usado no mundo. Na Internet, o Brasil ocupa a oitava posição em número de hosts, segundo os dados de 2004 do Comitê Gestor da Internet no Brasil1 da Tabela 16 Tabela 16 – Ranking de quantidade de Hosts por país 1 1º 2º 3º Estados Unidos* Japão (.jp) Itália (.it) 4º 5º Reino Unido (.uk) 3.715.752 Alemanha (.de) 3.421.455 6º 7º 8º Holanda (.nl) Canadá (.ca) Brasil (.br) www.cg.org.br/indicadores/index.htm 162.195.368 12.962.065 5.469.578 3.419.182 3.210.081 3.163.349 18 Ainda de acordo com a tabela fornecida pelo comitê, o português brasileiro está entre as seis línguas mais publicadas na Internet. No entanto, observou-se que a disponibilidade de ferramentas automáticas de processamento de textos em português, em termos de recuperação de informação textual, não atende às necessidades decorrentes desta participação significativa. Os recursos computacionais desenvolvidos para outras línguas, particularmente para o inglês, vêm sendo adaptados para o português, sem que as peculiaridades de nossa língua sejam levadas em consideração. Em (Inoki, S., 1992) é enfatizada a necessidade de uma especialização a língua. Mostra como a língua portuguesa do Brasil é rica em vocábulos e flexibilidade gramatical, ressaltando as dificuldades do idioma português. As dificuldades surgem desde a diversidade de verbos, formas verbais, problemas de concordância, regências verbais, sem contar ainda com as de flexões de verbos irregulares. Além da Internet, um grande grupo de instituições nacionais lida prioritariamente com grandes massas de conhecimento documental tais como legislações, notícias e patentes, além de relatórios e outros tipos de documentos produzidos internamente. Este panorama justifica as pesquisas em processamento de conteúdos digitais em português. 1.2. Objetivo da Tese Apesar de similar ao processo de mineração de dados, que trabalha com dados estruturados, o processo de mineração de textos difere, principalmente, por trabalhar com dados não-estruturados em formato textual. Assim, para que esses dados textuais possam ser submetidos a algoritmos de mineração, é necessário um tratamento diferenciado na etapa de pré-processamento de dados. O objetivo dessa tese de doutorado é, portanto, inovar na fase de préprocessamento da mineração de textos, propondo um modelo automático de enriquecimento dos dados para uma análise mais eficiente. O modelo é uma extensão da tradicional abordagem por conjunto de palavras (bag-of-words, em inglês), um dos procedimentos mais usados atualmente em mineração de textos (Bekkerman, R. et al, 2003). Foi desenvolvido e implementado um modelo computacional automático de pré-processamento valorizando o conteúdo do texto, 19 isto é, transformamos e o modelo baseado em palavras em um modelo baseado em lexemas, bag-of-words em bag-of-lexems. O conteúdo de um texto, no entanto, é dependente da língua em que está escrito, sendo assim, o modelo de préprocessamento ora proposto utiliza conhecimentos das áreas de PLN e Lingüística Computacional para formatar soluções com mais ênfase no conteúdo. Apostou-se nesse caminho, embora alguns resultados experimentais mostrem que representações mais sofisticadas, às vezes, perdem em desempenho com relação à representação words usando palavras simples (Apté, C. et al, 1994); (Dumais, S. et al, 1998); (Lewis, D. D., 1992). De acordo com (Lewis, D. D., 1992), a razão mais provável para explicar esses resultados é que, embora o uso de representações mais sofisticadas tenham qualidade semântica superior, a qualidade estatística é inferior em relação a representações baseadas em palavras simples. Assim, de acordo com (Joachims, T., 2002), a abordagem bag-of-words é uma boa relação entre expressividade e complexidade do modelo. Enquanto representações mais expressivas capturam melhor o significado do documento, sua complexidade é maior e degrada a qualidade de modelos estatísticos. A Figura 41 apresenta um modelo do processo de mineração de textos tal como é proposto nessa tese. A figura apresenta o processo do início ao fim, passando por todas as etapas. A seqüência como é mostrado na figura é uma tendência encontrada nos recentes trabalhos da literatura como (Mathiak, B. e Eckstein, S., 2004) (Batista, G. E. A. P. A., 2003); (Ferneda, E. e Smit, J., 2003); (Kao, A. e Poteet, S., 2004). Essa figura será usada como modelo didático para a descrição tecnológica, passando as etapas uma a uma nessa tese. Base 11 Text Mining 22 COLETA COLETA 33 PRÉPRÉPROCESSAMENTO PROCESSAMENTO Pessoas 44 INDEXAÇÃO INDEXAÇÃO Formação da base de documentos ou Corpus. Preparação dos dados. Objetivo acesso rápido, busca. Robôs de Crawling atuando em qualquer ambiente. Processamento de Linguagem Natural (PLN). Recuperação de Informação (IR) 55 MINERAÇÃO MINERAÇÃO Cálculos, inferências e extração de conhecimento. Mineração de Dados (DM). ANÁLISE ANÁLISE Análise humana. Navegação. Leitura e Interpretação dos dados. Figura 41 – Diagrama de camadas abstratas de um sistema computacional 20 Seguindo a Figura 41, o objetivo dessa tese é então concatenar um novo processador de textos na etapa de pré-processamento. O modelo do processador utiliza técnicas de inteligência computacional com base em conceitos existentes, como redes neurais, sistemas dinâmicos, e estatística multidimensional. Serão analisados também os impactos dessa construção, apontando o que muda nas outras etapas para atender a uma boa solução de pré-processamento. Será mostrado nessa tese como a mineração de textos pode concatenar as diversas áreas do conhecimento em um processo multidisciplinar. Apesar desse passeio multidisciplinar, o objetivo principal da mineração de textos é a resolução de problemas. Não pertence a esse trabalho explorar a fundo as áreas de Recuperação de Informação e Lingüística Computacional. Os conhecimentos dessas áreas são utilizados na medida em que oferecem idéias interessantes para a abordagem dos problemas. Esta perspectiva é compatível, por exemplo, com o pensamento de (Santos, D., 2001): “(...) é ao tentar resolver um dado problema (isto é, ao tentar construir um programa que manipula a língua) que surge o momento de nos debruçarmos quer sobre algumas características do léxico ou da gramática, quer sobre as teorias que pretendam dar respostas a esse problema” (:229) 1.3. Estrutura da Tese Capítulo 2 - São apresentadas diversas abordagens de trabalhos recentes da área de Text Mining mostrando a origem das soluções e sua correlação com a área de Data Mining. Capítulo 3 – É descrita a teoria de mineração de textos, assimcomo a teoria envolvida em cada uma das etapas do diagrama de mineração da figura 2. Capítulo 4 – É exposto teoricamente o modelo de pré-processamento, núcleo dessa tese. Nesse mesmo capítulo é feita uma revisão de alguns pontos da área do Processamento da Linguagem Natural. Capítulo 5 – Nesse capítulo é especificado o modelo do sistema desenvolvido apresentando e aprofundando um pouco mais cada um dos seus módulos que viabilizam os resultados. 21 Capítulo 6 – Os resultados do sistema de pré-processamento avaliado segundo medidas estatísticas de precisão (precision), abrangência (recall) e medida-F. Capítulo 7 – Três exemplos de aplicação do trabalho dessa tese. Será mostrado como utilizar TM para classificar documentos automaticamente, extrair informação e responder perguntas, assim como a importância dessa tese para a área emergente de Web Semântica. Na apresentação da solução de classificação será mostrada a diferença dos resultados com e sem o pré-processamento proposto. Capítulo 8 – Resumo dos pontos principais dessa tese, as contribuições à pesquisa acadêmica, aponta os desafios que ainda permanecem e sugestões de trabalhos futuros. 2 O Estado da Arte Este capítulo apresenta alguns dos recentes trabalhos relacionados à área de mineração de texto. Na literatura da área é possível definir uma taxonomia de modelos de mineração de texto que inclui o booleano (Wartik, S., 1992), o espaço-vetorial (Salton, G. et al, 1997), o probabilístico (van Rijsbergen, C. J., 1992), o difuso (Subasic, P. e Huettner, A., 2001), o da busca direta (Baeza-Yates, B. e Ribeiro Neto, B., 1999), e os lógicos indutivos (Hu, X. R. e Atwell, E., 2003). A quantidade de trabalhos publicada nessa área cresce cada vez mais, sendo impossível falar sobre todos os tipos de trabalhos realizados. Alguns trabalhos relacionados à mineração de textos, referenciados na literatura, que utilizam diferentes algoritmos de aprendizado podem ser encontrados em (Aas, K. e Eikvil, L., 1999); (Apté, C. et al, 1994); (Cohen, W. W. e Hirsh, H., 1998); (Cohen, W. W. e Singer, Y., 1996); (Joachims, T., 1997); (Krista, L., 2000); (Li, H. e Yamanishi, K., 2002); (Li, Y. e Jain, A., 1998); (Moulinier, I. e Ganascia, J.-G., 1996); (Thomas, J. e Sycara, K., 1999); (Yang, Y. e Liu, X., 1999). Dessa forma, escolheu-se apenas alguns importantes e distintos trabalhos para fazer uma descrição das abordagens existentes no estado da arte. 2.1. Modelos Puramente Estatísticos As abordagens estatísticas têm a característica fundamental de tentar estimar probabilidades para as decisões tomadas, e normalmente fazem uso de visualização espacial dos dados. Dentro dessa classe de soluções será mostrado o modelo de Espaço-Vetorial através de (Salton, G. et al, 1997), o modelo de análise de correspondências através de (Lebart, L. et al, 1998) e o de análise de discriminantes através de (Aggarwal, C. C. et al, 1999). 23 2.1.1. Modelo de Espaço Vetorial O modelo Espaço Vetorial é uma das técnicas mais usadas em mineração de textos, sendo a aplicação mais comum a classificação automática de documentos. No contexto do tratamento de documentos, o objetivo principal de um modelo de representação é a obtenção de uma descrição adequada da semântica do texto, de uma forma que permita a execução correta da tarefa alvo, de acordo com as necessidades do usuário (Gean, C. C. e Kaestner, C. A. A., 2004). De acordo com o modelo vetorial de (Salton, G. et al, 1997), cada documento é representado por um vetor no espaço m-dimensional, onde m é o número de diferentes termos presentes na coleção. Os valores das coordenadas do vetor que representa o documento estão associados aos termos, e usualmente são obtidos a partir de uma função relacionada à freqüência dos termos no documento e na coleção. Formalmente, seja C = (d1, d2, ..., dn) uma coleção qualquer não-ordenada de documentos di, contendo m diferentes termos. Então a representação de um documentos será di = (fi1, fi2, …, fim) para i = 1 até N, onde fij é uma função de avaliação associada ao termo j no documento i. Uma função de avaliação (ou “peso”) fij bastante utilizada é a frequência linear das palavras (TFIDF). Cada termo diferente adiciona uma nova dimensão ao problema. Problemas de mineração de textos costumam apresentar dimensões elevadas. Cada documento será então representado pelo mesmo número m de dimensões indicando a ocorrência do termo no texto. A classificação de documentos pode ser definida sobre o modelo vetorial como um caso especial de um problema de classificação supervisionada no contexto do Reconhecimento de Padrões (Duda, R. O. et al, 2000). Um classificador bem conhecido na área do Reconhecimento de Padrões é o k-vizinhos mais próximos (k-NN) (Duda, R. O. et al, 2000). Este algoritmo é amplamente utilizado devido à sua simplicidade conceitual e erro conceitualmente limitado. De maneira abreviada, um classificador k-NN associa um documento d à classe mais freqüente entre as classes dos k vizinhos mais próximos de d na coleção, de acordo com uma distância calculada no espaço vetorial de documentos. 24 Na área do tratamento de textos, a distância entre dois documentos di e dj mais comumente utilizada é a distância euclidiana. e a denominada “métrica do co-seno” Devido à dimensão elevada do espaço de documentos (M), nessa abordagem divide-se o espaço original em diversos subespaços, cada qual tratado por um classificador específico. Considere-se o caso de P subespaços: inicialmente algumas colunas da matriz de (documentos x termos) C são selecionadas aleatoriamente. Se 1,2,…M são as colunas de C, seja X o subespaço projeção sobre estas colunas; proj X (C) representa a sub-matriz obtida de C pela projeção de suas linhas sobre X, com dimensão N x | X |, e proj X (d) é a matriz 1 x | X | que corresponde a um documento d. Em cada subespaço gerado desta forma, um classificador pode atuar. Nos experimentos constantes deste trabalho foram utilizados subespaços de mesma dimensão (isto é | X | é constante para cada subespaço X). Em cada X empregouse um classificador k-NN fundamentado na métrica do co-seno com o critério usual de classificação do algoritmo. Por exemplo, para k=1 segue-se o seguinte critério de classificação: Classe (d) = Classe(di) onde di é tal que cos(di,d) < cos(dj,q) para todo j <> i. Quando se aplica a regra de classificação em cada subespaço, obtém-se P possíveis classificações. Então se deve decidir a classe de d usando um procedimento de decisão que leve em conta os resultados individuais dos diferentes classificadores de 1 até P. Usualmente para a combinação de classificadores se emprega o princípio do voto da maioria (majority vote principle), isto é, assinala-se ao documento d a classe mais freqüente entre as P assinaladas individualmente pelos classificadores a d. Além destas regras, (Gean, C. C. e Kaestner, C. A. A., 2004) empregaram uma segunda regra de combinação: inicialmente um conjunto com todos os documentos que se constituem nos vizinhos mais próximos a d é formado; em 25 seguida determina-se a classe de cada um destes documentos e a mais freqüente é indicada. Este procedimento considera apenas documentos diferentes para calcular a classe final, visto que a formação do conjunto intermediário elimina aparecimentos múltiplos dos documentos, não importando o número de vezes em que os mesmos apareçam nas P classificações. Em especial, um implementação dessa técnica que vem ganhando bastante visibilidade na literatura é a de Joachims (2002) - Support Vector Machines. 2.1.2. Análise de Correspondência Esta abordagem provém de uma técnica bastante conhecida em estatística para análise de associações entre palavras. O resultado da análise permite que um ser humano interprete visualmente as associações, enxergue conglomerados e assim extraia um conhecimento relevante. Em mineração de textos esta é uma boa combinação já que o tratamento analítico das palavras ainda é complexo para o computador e o humano, com conhecimento no assunto, pode apurar a análise. Um dos representantes deste trabalho é o francês Ludovic Lebart. Em seus trabalhos, Lebart se preocupou muito com a aplicação de pesquisa de mercado. Esse tipo de problema envolve um trabalho de campo onde várias pessoas recebem questionários de perguntas abertas e preenchem com texto livre. Para (Lebart, L. et al, 1998) a idéia é construir uma tabela de contingência lexical com as palavras em linhas e as categorias em coluna formando uma matriz C(i,j), onde o valor (i,j) é o número de ocorrências da palavra j no questionário i. Como a quantidade de palavras é muito grande, é feito um préprocessamento selecionando as palavras que têm freqüência maior que fc. Isto ajuda a reduzir a dimensionalidade do problema e filtrar as associações mais significantes. Em um exemplo, um questionário com a pergunta “O que é importante para sua vida?” foi entregue a uma população que era caracterizada por educação e idade. Para formar a tabela de contingência lexical, executou-se um corte de freqüência de 16 ou mais vezes e consolidaram-se as variáveis educação e idade em 9 categorias diferentes. 26 Tabela 17 – Matriz com o número de ocorrência do termo (linhas) em cada uma das partições educação (L,M e H) e idade (-30, -55 e +55). Como um procedimento de análise de correspondência normal, são calculadas distâncias por meio da estatística de Qui-quadrado: Aplicada a análise de correspondência, a distância entre dois pontos i e i’ é dada por dii '2 = ∑ j (1/cj (pij /ri - p2i ' j /ri ')) onde cj é o total da coluna j, ri é o total da linha i e pij o valor da célula. Os valores das distâncias são organizados em uma matriz de distâncias. É então feita uma visualização dos dados a partir da projeção (de duas dimensões) que maximiza a variância dos dados segundo o procedimento estatístico de análise das componentes principais. O resultado pode ser visto na Figura 42 27 Figura 42 – Resultado em duas dimensões da análise de correspondência Interpretando este gráfico pode-se notar uma associação interessante entre a palavra “friends” e a categoria “-30/high” indicando que os jovens com alto nível educacional dão bastante importância aos amigos. Já os jovens de baixo e médio nível educacional dão mais importância ao dinheiro (“money”). Os mais velhos e de bom nível educacional (“medium e high”) dão mais importância à paz (“peace”), enquanto os de pouca educação se preocupam com sua saúde (“health”). Na conclusão, o próprio autor já aponta para a importância de um bom préprocessamento por ter enfrentado dificuldades lexicais no tratamento de elementos redundantes e na delimitação da unidade lexical que corromperam a análise. Para mostrar a importância da etapa de pré-processamento, ele executou esta manualmente através da escolha de alguns segmentos que foram bastante freqüentes e calculou o novo resultado, ilustrado na Figura 43. 28 Figura 43 – Análise de correspondência utilizando a etapa de pré com segmentos de frase Como no experimento da Figura 42, friends and family estão próximos a categoria -30/high, peace of mind está correlacionado com +55/high, porém money não tem mais a ver com 30/medium como antes. Isso mostra como um bom pré-processamento dos dados interfere no resultado final e por isso é fundamental em mineração de textos. 2.1.3. Análise de Discriminante O método estatístico conhecida por análise de discriminante procura achar as palavras que mais discriminam o conjunto de documentos baseado nos conceitos Bayesianos. A diferença para outras abordagens estatísticas é que essa explicita o conhecimento extraído e determinando as palavras e os pesos relativos. Dessa forma, o usuário pode alterar o resultado, adicionando ou excluindo alguma palavra. No trabalho de (Aggarwal, C. C. et al, 1999), são utilizados índices baseados na freqüência relativa para fazer categorização automática de documentos. Apesar de o processo de categorização também ser feito por 29 estatísticas em espaço vetorial, o que autor propõe de diferente está no préprocessamento dos dados textuais. O objetivo é reduzir a dimensionalidade do problema e poder executar cálculos em espaço vetorial sem perder performance. Para isso utilizou-se de conhecimentos da teoria de informação para selecionar apenas uma parte das palavras, como descrito a seguir. Seja K o número de classes distintas, f(K) a freqüência de ocorrência da palavra em cada classe e n(K) o número total de palavras em cada classe. Assim, a freqüência relativa em uma classe particular é definida por f(i)/n(i). Finalmente e proveniente da teoria da informação, foi usado o índice Gini (Breiman, L. et al, 1984), que nesse caso é dado por: G = 1− K ∑p i =1 2 i onde fi p = 2 i K ∑ i =1 ni fi ni Se a palavra não for discriminante ela será distribuída igualmente em todas as classes e o índice Gini atinge seu valor máximo 1 − 1 K . Por outro lado se a palavra for altamente discriminante então o índice é muito menor. Outro índice discriminante bastante usado é o TFIDF. A medida term frequency – TF – é uma medida que utiliza o número de ocorrências do termo tj no documento di. A idéia é que os termos que mais ocorrem no documento são mais relevantes que os termos menos freqüentes. Nesse caso, é atribuído a aij o valor TF(tj,di), o qual representa o número de vezes que o termo tj ocorre no documento di – Equação 3.2. aij = TF (t j , d i ) (3.2) No entanto, um termo muito freqüente também pode ocorrer em quase todo o conjunto de documentos. Quando isso ocorre, esses termos não são úteis para uma boa discriminação das categorias. O componente da coleção é usado para dar 30 um peso menor para tais termos usando a medida Inverse Document Frequency – IDF – definida pela Equação 3.3. IDF = log N (3.3) c IDF varia inversamente ao número de documentos c que contêm o termo tj em um conjunto de documentos N. A medida IDF favorece termos que aparecem em poucos documentos do conjunto. Assim, as medidas TF e IDF podem ser combinadas em uma nova medida denominada TFIDF. O valor de aij pode então ser calculado pela Equação 3.4. aij = TFIDF (t j , d i ) = TF (t j , d i )× log N c (3.4) O componente de normalização é utilizado principalmente para ajustar os pesos dos atributos para que tanto documentos pequenos quanto documentos maiores possam ser comparados na mesma escala. Em muitas situações, documentos pequenos são representados por poucos termos, enquanto que os documentos maiores, geralmente, por muitos termos. quando uma grande quantidade de termos é usada na representação de documentos, a probabilidade do termo pertencer a um documento é alta e, assim, documentos maiores têm melhores chances de serem relevantes do que documentos menores. Normalmente, todos os documentos relevantes à tarefa deveriam ser tratados com a mesma importância independente do seu tamanho. Um fator de normalização, nesse caso, deve ser incorporado. Os valores aij podem então ser formalizados de diversas formas, tais como a definida pela Equação 3.5, aqui denominada de TFIDFN para a medida TFIDF. aij = TFIDFN (t j , d i ) = TFIDF (t j , d i ) ∑ (TFIDF (t N s =1 s , d i )) 2 (3.5) 31 2.2. Redes Neurais Os modelos de Redes Neurais foram largamente utilizados durante a década de 90 para diversos fins, inclusive na área de mineração de textos. As Redes Neurais costumam ser modelos complexos, porém fechados, que fornecem bons resultados para determinadas aplicações onde se têm grandes volumes de dados, como é o caso de mineração de textos. Dentro desta classe de soluções descreveremos três trabalhos: o modelo de Hopfield desenvolvido por (Sergei Ananyan), o modelo de Backpropagation no trabalho de (Fukuda, F., 1999) e redes auto-organizáveis (Kohonen, T. et al, 2000). 2.2.1. Hopfield As redes de Hopfield possuem uma das primeiras arquiteturas para redes neurais, e sua importância para a área de mineração de textos se deve à sua retroalimentação. Sergei Ananyan é da empresa americana Megaputer e ganhou prêmio pelo software de análise de textos TextAnalyst (Ananyan, S., 2006). Este software é baseado em um modelo de redes neurais Hopfield-like construído por Ananyan. A seguir descreveremos um pouco do seu funcionamento. O programa TextAnalyst2 realiza três processos principais. Primeiro o texto é escaneado para uma variável caracter a caracter. Determina-se então uma janela de 2 a 20 caracteres que é passada pelo texto tirando fotos que serão a representação de palavras. O próximo passo é identificar o quão freqüente as palavras são encontradas juntas em um mesmo trecho semântico. Os parágrafos são contabilizados primeiramente e depois as frases. Numa segunda etapa o sistema monta uma rede preliminar onde cada palavra e cada relação tem um peso de acordo com a análise de freqüência. Finalmente, essa rede é usada como condição inicial para uma rede neural de Hopfield (Figura 44) com uma dimensão e neurônios totalmente interconectados. 2 http://www.megaputer.com/ta_algo.html 32 Figura 44 – Arquitetura de Hopfield utilizada no software TextAnalyst O resultado é uma rede refinada com pesos redefinidos e normalizados, produzindo o que é nomeado de semantic network. Essa rede semântica é a base para todas as aplicações como classificação, sumarização e busca. 2.2.2. Backpropagation A rede neural do tipo Backpropagation se tornou a mais utilizada dentre as redes do tipo supervisionado. Uma aplicação deste modelo foi dada por (Fukuda, F., 1999) em sua tese de mestrado na PUC-Rio. Nesta abordagem supervisionada, o usuário do sistema rotula os textos como positivo e negativo. A partir daí é feito um cálculo de índices que servem de insumo para a entrada da rede neural com uma camada escondida. A saída de treinamento é justamente o rótulo dado ao texto. A arquitetura e o modo de treinamento da rede neural são mostrados na Figura 45. Os índices são calculados da seguinte forma: TP: avaliação dos Termos Positivos RP: avaliação dos Relacionamentos Positivos DP: avaliação dos Proximidades Positivas TN: avaliação dos Termos Negativos RN: avaliação dos Relacionamentos Negativos DN: avaliação dos Proximidades Negativos 33 Figura 45 – Rede Neural Backpropagation. Modelo usado por Fukuda. O cálculo dos índices nada mais é do que um pré-processamento dos dados e é feito com base na freqüência de ocorrência do termo, na freqüência relativa e na proximidade dos termos. Depois do treinamento, um novo texto pode ser apresentado à rede e ela irá responder 0 ou 1, classificando-o segundo os pesos ajustados durante o treinamento. Os pesos aprendidos guardam o conhecimento da base de treinamento marcada pelo usuário de acordo com seus interesses. Uma quantidade pequena de neurônios é indicada para a captura da essência dos interesses do usuário produzindo uma melhor generalização do conhecimento. Ainda em (Fukuda, F., 1999), foram apresentadas dificuldades em seu trabalho quanto ao Processamento da Linguagem Natural, não disponível na época para o português. Na bibliografia, observa-se também que a maioria dos trabalhos da literatura de mineração de textos já utilizavam técnicas de PLN, corroborando a importância dessa junção. 2.2.3. Mapas Auto-Organizáveis Os mapas auto-organizáveis (SOM, na sigla em inglês) são métodos de redes neurais de aprendizado não supervisionado que organizam os dados segundo uma função objetiva. Os neurônios são interligados, dispostos sobre uma condição inicial proveniente dos dados de entrada e, sob treinamento, procuram um equilíbrio de balanceamento da função objetiva. Em especial, o Kohonen, é um SOM que permite a visualização da similaridade dos dados analisados. Funciona com base na reorganização espacial 34 dos dados, mantendo a mesma topologia, isto é, documentos semelhantes ficam próximos e documentos diferentes ficam distantes entre si (Kohonen, T. et al, 2000). Uma forma de utilizar a arquitetura de Kohonen para classificar textos é descrever cada texto segundo um modelo estatístico de histograma. Podemos ainda dar pesos às palavras e utilizar a IDF (inverse document frequency) como peso de informação (Spark-Jones, K. e Willet, P., 1997). Inicialmente, os neurônios têm pesos aleatórios, mas a cada documento que é apresentado os neurônios da rede competem entre si para saber quem é o vencedor em termos de similaridade, e o vencedor é reajustado, assim como os vizinhos, segundo a seguinte expressão. Ao final os resultados são visualizados em um mapa. A Figura 46 mostra um exemplo de SOM em equilíbrio. No primeiro mapa foram grifados com pontos escuros os documentos que abordam o textos sobre química, no segundo foram grifados os textos sobre construção. As nuvens pretas mostram os lugares no mapa onde há a maior concentração de documentos das classificações. Figura 46 – Distribuição do mapa dos documentos. Em cinza os lugares onde há a maior concentração de documentos. Química Construção 35 Neste experimento, foram visualizados 6840568 documentos mostrando a capacidade de processamento de uma rede neural. Mesmo assim, podemos notar que o pré-processamento dos dados ainda é crítico para o resultado final. 2.3. Aprendizado de Máquina Dentro da área de aprendizado automático, recentemente tem-se investido muito em Aprendizado de Máquina (ML, do inglês Machine Learning) para a resolução de problemas de pré-processamento de textos como: etiquetagem morfossintática (Brill, E., 1995) e (Ratnaparkkhi, A., 1998), identificação de sintagmas nominais básicos (base noun phrase) (Cardie, C. e Pierce, D., 1998), (Ramshaw, L. A. e Marcus, M. P., 1995), (Tjong, E. F., 2000); (Tjong, E. F., 2002) e análise sintática parcial (Koeling, R., 2000), (Ramshaw, L. A. e Marcus, M. P., 1995); (Tjong, E. F., 2002). Dentre as técnicas de aprendizado de máquina mais utilizadas podemos citar Cadeias de Markov Escondidas (Seymore, K. et al, 1999), Bayesian Model Merging, Entropia Máxima, Aprendizado Baseado em Casos (Memory Based Learning) e Aprendizado Baseado em Transformações (Brill, E., 1993). Os modelos que serão mencionados nas seções seguintes são baseados em lógica indutiva e regras. Apesar de apresentarem cálculos probabilísticos em sua estrutura, estes não compõem a parte crítica do modelo. São eles: o modelo de Cadeia de Markov através de (Seymore, K. et al, 1999) e o modelo de Aprendizado Baseado em Transformações (TBL, sigla em inglês) através de (Brill, E., 1993). 2.3.1. Cadeias de Markov Escondidas Este modelo, em inglês Hidden Markov Models (HMM), é extremamente eficiente em seus resultados, porém seu treinamento é bastante custoso. “A HMM is a finite state automaton with stochastic transitions and symbol emissions” (Rabiner, L., 1989) Como já foi dito anteriormente, tem um forte embasamento estatístico, mas as regras envolvidas têm um peso muito maior no resultado. 36 Um modelo de HMM é composto por: Um conjunto de estados escondidos: 1,2,3,...,N Um seqüência observada q0 (início), q1, q2, ..., qT, ...., qN (fim) Vocabulário de saída: Σ = (σ0, σ1, ..., σm) Probabilidade de Transição P( q → q’ ) Verossimilhança da saída B( q ↑ σ ) Seguindo de perto o trabalho de (Seymore, K. et al, 1999), foi utilizado HMM para extração de informação. A informação a ser extraída neste modelo é estrutural, isto é, o objetivo é classificar o trecho de texto quanto a pertinência ao título, ao autor ou ao corpo do documento. Primeiramente é inserida no sistema o automato de transição dos estados, um exemplo pode ser visto na Figura 47. Figura 47 – Exemplo de automato para Cadeia de Markov Escondida. Uma vez carregado o autômato, é ativado o procedimento de otimização que é calculado a partir da combinação de rótulos que maximiza a verossimilhança. O algoritmo de (Viterbi, A. J., 1967) resolve este problema através da seguinte equação: l +1 V ( x | M ) = arg max ∏ P( qk −1 → qk )P ( qk ↑ xk ) q1Kql ∈Q l k =1 O resultado desse procedimento é um conjunto de rótulos para cada palavra do documento. A Figura 48 mostra um texto original a ser pré-processado segundo o automato da Figura 47, as palavras passam por um dicionário indicando a sua classe e o algoritmo de HMM rotula cada uma delas com os rótulos <T> para título, <D> 37 para datas, <A> para autor e <C> para conetúdo, de forma a maximizar a probabilidade de transição. A Figura 49 mostra o texto original rotulado. 38 Como era esperado, Brasil goleia Hong Kong em amistoso 09:02 09/02 Redação e agências Apesar do adversário não ser lá muito perigoso, a seleção brasileira fez nesta quartafeira um bom amistoso contra a seleção de Hong Kong. Para quem queria ver Ronaldinho Gaúcho, Robinho, Roberto Carlos e cia. tocarem fácil na bola até o gol foi uma ótima oportinidade. O placar do 7 a 1 no final nem foi o mais importante. Figura 48 – Texto original Como<T> era<T> esperado<T> , <T> Brasil<T> goleia<T> Hong<T> Kong<T> em<T> amistoso<T> 09:02<D> 09/02<D> Redação<A> e<A> agências<A> Apesar<C> do<C> adversário<C> não<C> ser<C> lá<C> muito<C> perigoso<C>,<C> brasileira<C> <C>feira<C> fez<C> um<C> a<C> seleção<C> nesta<C> bom<C> quarta<C>- amistoso<C> contra<C> a<C> seleção<C> de<C> Hong<C> Kong<C>.<C> Para<C> quem<C> queria<C> ver<C> Ronaldinho<C> Gaúcho<C>,<C> Robinho<C>,<C> Roberto<C> Carlos<C> e<C> cia<C>.<C> tocarem<C> fácil<C> na<C> bola<C> até<C> o<C> gol<C> oportinidade<C>.<C> a<C> 1<C> no<C> foi<C> O<C> final<C> uma<C> placar<C> nem<C> ótima<C> do<C> 7<C> foi<C> o<C> mais<C> importante<C>.<C> Figura 49 – Resultado da extração de informação de HMM. Os rótulos após cada palavra é o rótulo ótimo encontrado. <T> título; <D> data; <A> autor e <C> corpo. 39 2.3.2. Aprendizado Baseado em Transformações O aprendizado baseado em transformações é comumente referenciado pela sigla em inglês TBL (Transformation Based Learning) e pertence à classe de técnicas automáticas de machine learning. Essa técnica está ganhando cada vez mais espaço na literatura devido a seus bons e eficientes resultados. A saída do TBL é uma lista ordenada de regras, as quais, aplicadas nos dados, fazem reduzir o erro de rotulação. TBL tem sido aplicada em diversas tarefas em mineração de textos como resolução de ambiguidade sintática (Brill, E. e Resnik, P., 1994), parsing sintático (Brill, E., 1993) e desambiguização de palavras (Dini et al, 1998). Mas os melhores resultados dessa técnica têm sido na etiquetagem de classe gramatical. Uma abordagem desta aplicação será descrita nos parágrafos seguintes. Seguindo o trabalho de (Brill, E., 1995) podemos dizer que um processo genérico de TBL procede como na Figura 50. Figura 50 – Processo de funcionamento de um TBL Primeiro, um texto não anotado é passado por um anotador inicial, que pode ser tanto manual como aleatório. Uma vez rotulado ele é comparado com a verdadeira classificação, que é um corpus de treinamento. Assim, uma lista de 40 regras de transformação vão sendo aprendidas. Estas regras podem ser de duas formas: as regras de reescrever e a de disparo. As regras de reescrever agem da seguinte forma: “mude o rótulo de substantivo para adjetivo” e as de disparo das regras de reescrever como “se a palavra anterior é um determinante”. Os problemas desta abordagem se resumem em precisar de um grande corpus anotado, gerar muitas regras (o que vai de encontro ao princípio da parsimônia) e não contemplar um léxico. O fato de não ter de trabalhar com um léxico impacta na rotulação de uma palavra de um texto novo que não estava contida no corpus anotado. 3 Mineração de Texto A existência de ferramentas que realmente suportam todo o processo de KDD ainda é bastante restrita. Ferramentas comerciais, tais como MineSet e IntelligentMiner, geralmente têm um caráter mais exploratório e fazem uso de algoritmos e ferramentas proprietárias, o que dificulta o seu uso por pesquisadores. De forma geral um processo de mineração de textos contém quatro macro etapas: coleta, pré-processamento, indexação e análise da informação. Nos próximos parágrafos é descrito o processo como um todo e em seguida cada uma das etapas de forma mais detalhada. A etapa inicial tem por objetivo a coleta de das informações que vão compor a base textual de trabalho, isto é, determinar e selecionar o universo de atuação das técnicas de mineração de texto. Por outro lado, nenhuma informação que não esteja contida na base textual poderá ser extraída, encontrada ou utilizada de alguma forma. Após a coleta de documentos é necessário transformar os documentos em um formato propício para serem submetidos aos algoritmos de extração automática de conhecimento. Essa segunda etapa, denominada de préprocessamento, é responsável por obter uma representação estruturada dos documentos, geralmente no formato de uma tabela atributo-valor. Essa tabela atributo-valor que representa os documentos tem como característica valores esparsos dos dados e uma alta dimensionalidade. Essas características são inerentes à problemas relacionados ao processo de MT, pois cada palavra presente nos documentos pode ser um possível elemento do conjunto de atributos dessa tabela atributo-valor. É, portanto, uma etapa bastante custosa e um cuidadoso pré-processamento dos documentos é imprescindível ao sucesso de todo o processo de MT. Após os documentos serem representados em um formato adequado, é possível aplicar técnicas de extração de conhecimento utilizando sistemas de mineração de dados. Caso os documentos estejam representados no formato de 41 uma tabela atributo-valor, geralmente, na terceira etapa, são empregados métodos de RI como indexação para aumentar a performance do processo. Finalmente, na última etapa, o objetivo é descobrir padrões úteis e desconhecidos presentes nos documentos. Para a extração de padrões, são utilizadas técnicas de forma semelhante ao processo tradicional de MD. A seguir, então, explicaremos de forma mais detalhada cada uma das etapas envolvidas no processo de mineração de texto, dando mais ênfase à etapa de préprocessamento. Vale ressaltar que o processo descrito a seguir é o processo clássico, que servirá de comparação com o modelo proposto nessa tese a ser apresentado no próximo capítulo. 3.1. Coleta de Dados A coleta de dados tem como função formar a base textual de trabalho. Essa base pode ser estática, nos casos mais simples, ou dinâmica, isto é, atualizadas a todo momento através de robôs autônomos coletando novas informações. A atualização é feita pela simples adição de um novo conteúdo, remoção de conteúdos antigos, ou, substituição da base por uma inteiramente nova. Coletar dados é uma atividade trabalhosa. Um do motivos é que os dados podem não estar disponíveis em um formato apropriado para serem utilizados no processo de mineração de textos. Essa dificuldade não é nova, em (Pyle, D., 1999) é apresentada uma lista de alguns desafios para essa fase. Para mineração de textos, um dos principais problemas em coletar dados é descobrir onde os dados estão armazenados. Depois disso recuperar documentos relevantes ao domínio de conhecimento. De forma geral, esse procedimento se estabelece basicamente em três ambientes distintos: no diretório de pastas do disco rígido; em tabelas de diferentes bancos de dados e na Internet. Para o disco rígido temos os sistemas de GED (gerenciamento eletrônico de documentos) para grandes empresas e recentes lançamentos de busca local como Google Desktop, Yahoo! Desktop e Ask Jeeves Desktop. Nos bancos de dados, a iniciativa de Data Warehouses (Kimball, R., 1996) surgiu com o intuito de unificar e centralizar diferentes bancos de dados de forma disponibilizar mais facilmente as informações. Embora os Data Warehouses 42 facilitem bastante a coleta de dados, o problema ainda está longe de ser bem resolvido, principalmente quando se trata de textos. Além disso, esse modelo se mostrou bastante custoso e árduo, o que fez com que se estabelecesse apenas em pouco lugares de forma definitiva. (Batista, 2003) Na Internet temos uma infinidade de páginas pessoais, institucionais, páginas de revistas e diversas fontes disponíveis para coletar os documentos tais como livros e artigos. Para facilitar o acesso a esses documentos na Internet, muitas ferramentas de apoio têm sido construídas usando as seguintes abordagens: Motores de Busca Baseados em Robô (Robotic Internet Search Engines), Diretórios de Assunto (Subject Directories) (Peterson, R. E., 1997). Trabalhos relacionados à coleta de documentos provenientes da Internet podem ser encontrados na literatura (Baeza-Yates, B. e Ribeiro Neto, B., 1999); (Joachims, T. et al, 1997). Muitos deles combinam técnicas de AM e Recuperação de Informação (RI) (van Rijsbergen, C. J., 1979) para determinar o perfil do usuário visando melhorar a coleta de documentos. Em qualquer desses ambientes, um crawler é o robô responsável por navegar de forma autônoma e exploratória pela rede para fazer a coleta. Esses robôs se tornaram mais conhecidos na Internet com o nome de webcrawler. Versões livres de webcrawlers podem ser encontradas na Internet, a exemplo do wGet. Uma das importantes funções de um webcrawler é saber decodificar os HTMLs, tanto para recortar apenas o que é conteúdo texto como para seguir para o hiperlinks que se encontram na página. Outra função importante é saber gerenciar bem seu caminho de percurso que tem a forma de um grafo de modo a impedir que o robô visite várias vezes a mesma página ou entre em ciclos eternos. 3.2. Pré-processamento O pré-processamento de textos consiste em um conjunto de transformações realizadas sobre alguma coleção de textos com o objetivo de fazer com que esses passem a ser estruturados em um representação atributo-valor. De modo geral, a etapa de pré-processamento tem por finalidade melhorar a qualidade dos dados já disponíveis e organizá-los. As ações realizadas na etapa de pré-processamento de 43 dados visam prepará-los para serem submetidos a algum algoritmo de indexação ou mineração de dados. Conceitualmente, em um processo de mineração, essas transformações consistem em identificar, compactar e tratar dados corrompidos, atributos irrelevantes e valores desconhecidos (Batista, G. E. A. P. A., 2003); (Weiss, S. M. e Indurkhya, N., 1998). Em mineração de textos, pré-processamento normalmente significa dividir o texto em palavras, aplicar técnicas de stemming, remover as stop-words e classificá-las segundo a classe gramatical (Five Steps). No entanto, a etapa de pré-processamento vai além das ações citadas, pois é necessário transformar os textos em uma representação estruturada adequada para que, a partir disso, os dados possam ser submetidos ao processo como um todo. No entanto, durante a transformação dos textos em formato estruturado existe a possibilidade de que informação intrínseca ao conteúdo dos textos seja perdida. Um desafio, nesse caso, é obter uma boa representação minimizando a perda de informação. A etapa de pré-processamento em um processo de MT é, portanto, fundamental para o desempenho de todo o processo (Martins, C. A., 2003). 3.2.1. Identificação de Palavras no Texto Em (Gean, C. C. e Kaestner, C. A. A., 2004) podemos perceber uma preocupação na definição da unidade básica de texto, que é denominada de palavra (termo). Na etapa de pré-processamento, o documento, considerado como sendo texto “puro” ou não-anotado, livre de qualquer formato, é tratado de maneira a produzir uma representação mais compacta que seja mais adequada à realização da tarefa objetivo. Em Salton (1983), a identificação das palavras nos documentos a serem indexados nada mais é do que a identificação de palavras analisando-se as seqüências de caracteres no texto. Salnton aconselha fazer um Dictionary lookup, ou seja, comparar as seqüências de caracteres retiradas do texto com um dicionário a fim de validar se essas palavras realmente existem. Esse processo de validação torna-se bastante útil, especialmente quando o documento apresenta muitos caracteres inválidos ou palavras com erros gramaticais. As seqüências de 44 caracteres inválidas devem ser eliminadas e as palavras com erros corrigidas. Pode-se aplicar ainda um processo de filtragem naqueles arquivos que possuem formatos de texto específicos, a fim de eliminar as seqüências de controle e/ou formatação de texto. O dicionário pode também auxiliar a identificação de termos específicos, quando se deseja utilizar palavras pré-definidas no índice, evitando que palavras desconhecidas sejam identificadas (ou seja, evita a utilização de um vocabulário descontrolado). Um simples Analisador Léxico que identifique seqüências de caracteres e forme palavras pode ser utilizado. A Figura 51 apresenta o trecho de um documento com diversas seqüências de caracteres. As seqüências riscadas são seqüências inválidas, que não devem passar pela fase de identificação de palavras. As demais seqüências vão para a verificação em um dicionário (léxico). As palavras sublinhadas são palavras inexistentes no dicionário, e devem ser corrigidos ou aprendidos. Os caracteres de pontuação são desprezados. Figura 51 – Indentificação de palavras válidas Segundo (Spark-Jones, K. e Willet, P., 1997), uma etapa de préprocessamento típica inclui: • A eliminação de palavras comuns: as palavras comuns (stop-words) são elementos de texto que não possuem uma semântica significativa; sua presença não agrega nenhuma indicação do conteúdo ou do assunto do texto correspondente. Normalmente as palavras comuns são constituídas de artigos, preposições, verbos auxiliares, etc, tais como “que”, “de/do/das”, “o” ou “a”. Após sua eliminação obtém-se uma representação reduzida do texto, ainda em formato livre. 45 • A obtenção dos radicais (stems): em linguagem natural, diversas palavras que designam variações indicando plural, flexões verbais ou variantes são sintaticamente similares entre si. Por exemplo, as palavras “real”, “realidade”, “realeza” e “realizado” têm sua semântica relacionada. O objetivo é a obtenção de um elemento único que permita considerar como um único termo, portanto com uma semântica única, estes elementos de texto. Este passo permite uma redução significativa no número de elementos que compõem o texto. Outra possibilidade de pré-tratamento é a representação em n-gramas do texto (Cavnar, W. B., 1994): constitui-se em uma representação alternativa, onde os termos são obtidos diretamente como sub-cadeias de comprimento n das palavras que compõem o texto original. Por exemplo, a partir da palavra “porta” e considerando n = 4, obtém-se as seguintes 4-grams: “_por”, “port”, “orta” e “orta_”, onde “_” é usado para indicar o início ou fim da palavra. De modo geral, a preocupação das técnicas clássicas presentes na literatura é de reduzir a dimensionalidade do problema, de modo a poder utilizar algoritmos de mineração de dados. 3.2.2. Redução de Dimensionalidade Um dos maiores problemas de mineração de texto é lidar com espaços de dimensão muito alta se considerado um espaço-vetorial onde cada termo representa uma dimensão, teremos tantas dimensões quanto palavras diferentes. Dessa forma, um dos problemas importantes tratados no pré-processamento dos dados é reduzir o número de termos. Uma estratégia bastante citada na literatura é a utilização da Lei de Zipf (Zipf, G. K., 1949) e cortes de Luhn (Luhn, H. P., 1958). A técnica tem caráter estatístico e funciona da seguinte forma: A Lei de Zipf diz que se f é a freqüência de ocorrência de qualquer palavra do texto, e r a posição de ordenação com relação às outras palavras então produto f × r é aproximadamente constante. Luhn propôs que, em um gráfico f versos r pode-se definir uma limite superior e um limite inferior de corte. A palavras que 46 estiverem fora do intervalo são excluídas da análise. Na Figura 52 é mostrada uma ilustração desse procedimento. Figura 52 – A curva de Zipf e os cortes de Luhn 3.2.3. Remoção de Palavras Não-Discriminantes (Stop-words) Nem todas as palavras dos documentos devem ser adicionadas na estrutura de índice. As palavras que aparecem em todos os documentos ou na maioria deles são um exemplo. Isso porque a utilização de uma palavra com estas características não é capaz de colaborar na seleção de documentos relativos a um assunto específico. (OpenMuscat, 2000) As preposições são um exemplo deste tipo de palavra, pois são termos que servem para fazer o encadeamento de idéias e palavras, são termos inerentes à linguagem, e não ao conteúdo dos documentos. Normalmente, as palavras que aparecem em muitos documentos não são indexadas pois sua utilização compromete a precisão e a eficiência de um sistema de busca. O prejuízo semântico dessa estratégia é perder a busca exata por compostos como “máquina de lavar”, onde a preposição “de” não pode ser buscada. Nos sistemas já implementados, foi construída uma estrutura (uma lista) contendo todas as palavras que não devem ser indexadas. A esta estrutura foi atribuído o nome de "stop-list", e as palavras presentes nesta lista são conhecidas como Stop-words. O processo de obtenção das stopwords pode ser manual, onde o projetista do sistema avalia quais palavras devem ou não ser indexadas (o que varia de 47 língua para língua, ou até mesmo entre sistemas). Há ainda a possibilidade de se montar esta lista automaticamente, verificando-se quais são as palavras com maior freqüência (que aparecem em mais documentos), selecionando-as como stopwords. Então, após uma palavra ser reconhecida no processo de indexação, sua presença na Stop-list é verificada. Caso exista na lista de palavras negativas, ela não é adicionada ao índice. A Figura 53 abaixo apresenta o documento resultante da etapa anterior, após ser validado por uma stop-list. Neste caso a lista de Stop-words contém artigos, preposições, conjunções e algumas seqüências de caracteres que não devem ser adicionadas ao índice por possuírem freqüência elevada. Figura 53 – Indentificação de Stop-Words Com estas etapas já é possível criar índices que localizem documentos a partir da comparação direta entre os termos da consulta do usuário e os termos presentes nos documentos. Este é um método ainda ineficiente, e algumas técnicas adicionais podem ser utilizadas a fim de melhorá-lo. 3.3. Indexação As técnicas de indexação de documentos foram bastante difundidas pela demanda e crescimento da área de Recuperação de Informações (RI). Muitas pessoas acreditam que a área de recuperação automática de informações textuais é uma área nova. Esta idéia talvez tenha surgido com a Web (um dos serviços oferecidos pela Internet), onde milhares de informações, dispostas em forma de páginas (documentos textuais), estão disponíveis. No entanto, segundo (Baeza- 48 Yates, B. e Ribeiro Neto, B., 1999) há aproximadamente 4000 anos já são praticadas técnicas de catalogação manual por índices. Depois da implantação da Internet em cada vez mais locais, interligando pessoas de diversas partes do mundo, os usuários se deram conta de que as informações disponíveis na rede se encontravam de forma desordenada demandando algum meio de catalogar estas informações automaticamente. Para suprir essa demanda surgiram vários portais de busca: Altavista, Yahoo!, Google entre outros. Há bastante tempo também, cientistas3 estudam meios de catalogar informações textuais de forma automática. Com os desdobramentos da informática, catalogar informações se tornou cada vez mais rápido e produtivo. Técnicas bem definidas e testadas foram inseridas na literatura acadêmica, sendo reutilizadas em trabalhos científicos atuais. O ACM / SIGIR, (Special Interest Group on Information Retrieval, da ACM) promove uma conferência internacional de pesquisa e desenvolvimento em Recuperação de Informações que ocorre anualmente, e é um dos meios de divulgação dos estudos na área. Verificando suas publicações (Fox, E. A. et al, 1995), (ACM96b, 1996), constatase que os métodos atuais buscam aperfeiçoar os métodos mais antigos, permanecendo a metodologia básica. Dentre os recentes trabalhos, os algoritmos de mineração de textos também reutilizam de técnicas eficientes de indexação para manipulação eficiente dos textos. Como as técnicas de indexação permitem uma busca rápida por palavrachave em grandes volumes de textos, existe ganho de performance que viabiliza cálculos estatísticos mais sofisticados e, por isso, potencialmente melhores. No entanto, mineração de textos é um conceito bem mais extenso que busca eficiente por palavras-chave. Por exemplo, uma busca por palavra-chave na Internet retornaria uma lista de páginas que contêm os termos procurados, desconsiderando aspectos semânticos que podem tornar estas ocorrências irrelevantes para o objetivo proposto. Técnicas de mineração de textos promovem análises mais extensas do conteúdo dos documentos, identificando fatos, relações e padrões de forma a obter uma percepção similar àquela tida por um humano lendo o mesmo documento. A informação extraída é geralmente mais relevante, e 3 Gerard Salton vem trabalhando nessa área desde a década de 60 e já publicou mais de 150 artigos. 49 pode ser usada para diferentes propósitos como categorizar um documento, identificar o significado ou o grupo semântico de expressões dentro do documento, auxiliar a leitura de grandes volumes de texto. Em um banco de dados textual, os dados não estão distribuídos de forma tabular. Até mesmo porque o texto é uma seqüência de caracteres, não existindo uma pré-especificação de atributos. Não há como saber o que é um nome em um documento, a não ser que se faça uma análise de Linguagem Natural e se descubra o que pode vir a ser um nome. Logo, para localizar as informações sobre determinada pessoa em um banco de dados textual, seria necessário analisar caractere-por-caractere do texto até que a seqüência de caracteres correspondente ao nome fosse localizada. Este tipo de análise, comparando todos os caracteres do texto, não é conveniente, é necessário haver alguma forma mais eficiente de acesso aos documentos. Se os documentos textuais possuem um tema, ele pode ser identificado pelas palavras (termos) que esse documento contém, portanto, o termo é o meio de acesso aos documento. Nas seções seguintes abordaremos as estratégias mais eficientes de busca caractere-por-caractere e como estruturas de dados utilizando essas técnicas chegaram a uma solução bastante eficiente para o problema de encontrar documentos por termos citados dentro deles. 3.3.1. Procura Caractere à Caractere Antes de entrarmos em indexação de textos propriamente dita que carrega consigo estruturas de dados mais complexas, é interessante revisar como o problema de achar uma determinada palavra foi resolvido pela computação. Uma palavra pode ser entendida como uma cadeia de caracteres específica que se deseja procurar. A informática se apropriou de muitos termos em inglês no seu vocabulário para representar tecnologias específicas, neste caso o termo importado e mais utilizado é string. Daqui em diante nos referiremos a cadeias de caracteres implementadas no computador como string. Sendo assim, procurar por uma string no corpo de um texto é preocupação fundamental para qualquer aplicação de mineração de textos. 50 Inúmeros trabalhos para resolver este problema foram propostos, e eles são comparados normalmente pela complexidade computacional do pior caso e o número de comparações de caracteres feitos. Para o problema de procurar todas as ocorrências de uma dada string de m caracteres em um texto de n caracteres, o pior caso é expresso pelo número de operações c(n,m). Um primeiro bom resultado estabelecido foi dado por Knuth-Morris-Pratt (KMP) (Knuth, D. E. et al, 1977) como c(n,m) = 2n-m+1. Na mesma época Boyer-Moore (BM) (Boyer, R. S. e Moore, J. S., 1977) desenvolvia um algoritmo que alcançava apenas c(n,m)=6n, porém, ele foi sendo melhorado nos anos seguintes chegando a c(n,m) = (3n-n/m) por (Cole, R., 1990). No entanto uma variante de Boyer-Moore foi desenhada por (Apostolic, A. e Giancarlo, R., 1986) igualando o KMP com c(n,m) = 2n-m+1. Em 1990, Colussi, Gali e Giancarlo (Colussi, L. et al, 1990) criaram um híbrido de KMP e BM para atingir a marca de 7n/6 ≤ c(n,m) ≤ (4n-m)/3. Hoje um algoritmo bastante utilizado é o Karp-Rabin (Karp, R. e Rabin, M., 1987) que utiliza a função hash. A função hash codifica as strings em números e com isso ganha uma vantagem significante por utilizar cálculos numéricos. A maioria desses métodos já estão implementados em pacotes fechados e ferramentas de indexação e busca de forma modular. Não necessitando de reimplementação. 3.3.2. Lista Invertida Um bom meio de acesso aos documentos são as palavras que ele contém. Para tornar possível o acesso a essas palavras, é preciso colocá-las em uma estrutura auxiliar – o índice, isso porque fica inviável pesquisar todos os textos utilizando consultas booleanas. Ao final do processo conhecido por Lista-Invertida, os termos resultantes são adicionados a um arquivo de índice cuja estrutura geralmente é baseada em Listas Invertidas (Inverted Index). Segundo (Salton, G., 1983), outros tipos de arquivos podem ser utilizados, mas a experiência mostra que este tipo de estrutura é um dos mais eficientes para a indexação de documentos. Na Figura 54 é apresentado um exemplo dessa estrutura. O índice (invertido) contém a lista de todas as palavras indexadas (ex. “diretor”, ‘figura”). Cada palavra é associada à 51 lista dos identificadores dos documentos em que ocorreu (ex. A12, G43). Todas essas listas são armazenadas de forma ordenada para garantir a eficiência dos algoritmos de busca. Figura 54 – Estrutura de uma Lista Invertida associada aos documentos indexados. Basicamente, a estrutura permite que um único termo aponte para vários documentos. Ainda segundo (Salton, G., 1983), as etapas geralmente utilizadas antes da indexação são as de pré-processamento (Seção 3.2): • Identificação de Palavras • Remoção de stop-word Depois que os algoritmos de listas invertidas foram implementados, acessar um documento por uma palavra-chave passou a ser bastante eficiente (logaritmo em relação ao tamanho do banco de dados). Porém, era necessário armazenar todas as ocorrências de palavras, incluindo erros ortográficos e todos os documentos relacionados, o que causava uma explosão de espaço de armazenamento. Em função disso, algumas melhorias foram acrescentadas ao método das listas invertidas e passaram a se chamar de listas invertidas comprimidas (Bell, T. C. et al, 1993); (Bookstein, A. et al, 1992); (Choueka, Y. et al, 1988); (Frakes, W. B. e Baeza-Yates, R., 1992) que aumentaram o desempenho significativamente em termos de requisitos de armazenagem em relação às listas originais. 52 3.3.3. Similaridade Um sistema de Recuperação de Informações tem como base a seguinte teoria (Salton, G., 1983): perguntas (consulta) são submetidas pelo usuário, perguntas estas baseadas em termos (palavras) que identificam a idéia desejada por este usuário; os documentos são identificados pelos termos que eles contém, portanto, a localização de um documento desejado pelo usuário dá-se a partir da identificação da similaridade entre o(s) termo(s) fornecido(s) pelo usuário e os termos que identificam os documentos contidos na base de dados. A Figura 55 representa esquematicamente esta teoria: Consulta Função Documento Similaridade Figura 55 - Função Similaridade Esta função Similaridade busca identificar uma relação entre os termos da consulta e os termos dos documentos. Teoricamente pode ser feita uma comparação direta entre estes termos, mas na prática é difícil estabelecer esta relação de similaridade entre esses termos devido a alguns problemas descritos nos parágrafos seguintes. Um destes problemas é analisado por (Chen, H., 1994) em vários de seus trabalhos. O que pode ocorrer é que as palavras utilizadas pelo sistema (palavras contidas nos documentos) sejam diferentes das palavras utilizadas pelo usuário, mesmo que estas palavras (sinônimos) representem a mesma idéia. Esse problema é conhecido por Problema do Vocabulário, e ocorre geralmente quando os usuários desconhecem o sistema, ou possuem um conhecimento superficial dos assuntos que estão tentando localizar. Há ainda o problema da Busca Incerta (Search Uncertainly), ou seja, pode ocorrer que os usuários não saibam quais são as melhores palavras que identificam o assunto que querem localizar. Por conseqüência, acabam não recuperando informações precisas. Este problema também é discutido por (Chen, H., 1994), (Salton, G., 1983) e outros autores. 53 Esses problemas fazem com que sejam recuperados muitos documentos, ou documentos de assuntos variados (pois o termo é muito abrangente), ou ainda, podem não recuperar informação alguma. É buscando solucionar esses problemas (e alguns outros) que mecanismos de mapeamento entre os diferentes termos similares foram criados. Salton (Salton, G., 1983), cita vários sistemas universitários e comerciais que se utilizam destes mecanismos: STAIRS (IBM), Dialog System (Lookhead Information Systems), BRS (State University of New York), MEDLARS (National Library of Medicine), SMART (Cornell University). Em (ACM96a, 1996) são citados mais alguns: WIN (West Publishing Company), DOWQUEST (Dow Jones Newswire), WAIS, e um muito conhecido, o INQUERY. Nem sempre estes sistemas conseguem satisfazer o usuário, mas foram a base para as técnicas atuais e das que estão por vir. A metodologia básica destes sistemas é discutida a seguir. 3.3.4. Processo de Indexação Um referência internacional sobre o assunto é (Baeza-Yates, B. e Ribeiro Neto, B., 1999). Neste livro encontram-se tanto algoritmos de indexação, formas de implementação em SQL como o processamento de linguagem natural utilizado. O diagrama da Figura 56 resume o processo total de Indexação. Pode-se ver que os documentos que são fornecidos à ferramenta de indexação passam por uma sucessão de etapas de processamento (em inglês pipeline) e ao final é produzido um arquivo de índices que consegue localizar os documentos apresentados. Em detalhe, a primeira etapa responde por idetificar as palavras, ou as fronteiras das palavras usualmente feita pelo caractere em branco. A segunda elimina, dentre essas palavras, as não-discriminantes (stop-words), em seguida, a terceira executa um procedimento de normalização de sufixos, em inglês stemming (0). A quarta é reponsável pela detecção de termos compostos, i.e., termos com mais de uma palavra. Finalmente, esses termos, pós-processados, são armazenados na estrutura invertida associados aos documentos origem. 54 Figura 56 – Sequência do processo de indexação automática. É importante salientar que esse tipo de indexação automática ainda é bastante simples, não considera a semântica do documento nem a posição sintática das palavras nas orações. Em virtude dessas necessidades surgiram outras formas de indexação mais complexas que usam o mesmo motor de indexação, mas aplicado a uma estrutura de texto enriquecida com metadados. Os metadados são tags que marcam informações semânticas ou estruturais do texto. Para o indexador, as tags nada mais são do que novas palavras adicionadas ao texto que serão também indexadas (Reis, M., 2005). 3.3.5. Índice do tipo Full-text A terminologia full-text é mais conhecida nos sistemas de recuperação de informação embutidos em pacotes fechados de banco de dados. O nome comumente dado ao índice de bases de dados textuais com textos em linguagem natural é Full-Text Index. Muitos SGBDs como Oracle, SQL Server e MySQL já incluem estas funcionalidades prontas. Outros pacotes surgiram especialmente para isso, como o Lucene em C e Java. Como o objeto principal dessa tese é o pré-processamento dos textos e não a fase de indexação full-text, optamos por descrever apenas um deles, com o qual pudemos ter mais contato, o SQL Server 2000. O objetivo da procura Full-text é prover informação relevante de uma coleção de fontes em resposta às necessidades do usuário. Esta necessidade é normalmente expressa por uma 55 consulta que pretende olhar cada registro do banco e procurar por cada palavra requisitada. Uma abordagem simples abriria cada registro e procuraria pela palavra-chave usando um algoritmo de string_matching. No entanto, como vimos, abrir cada documento em tempo de processamento pode ser muito custoso se o volume de documentos for alto. A solução é fazer parte do trabalho antes da consulta e deixar cálculos préarmazenados. Isso é feito extraindo informação das palavras em cada documento e armazenando de uma forma que seja fácil de se acessar. Quando a consulta é feita, só é necessário comparar os documentos um com o outro usando um índice invertido (inverted index) e escolher os documentos que são mais relevantes. Para extrair as palavras dos textos, o SQL Server utiliza os chamado word breakers e stemmers. Um word breaker é um componente que determina quais são as fronteiras que delimitam uma palavra (é uma solução para o problema teórico definido na sessão 3.10). E os stemmers são especializados em uma determinada língua e usam o conhecimento lingüístico com o objetivo de compactar o léxico (flexões verbais são armazenadas como apenas uma palavra). O índice invertido é uma estrutura de dados com um registro para cada palavra. Nesse registro, existe a informação sobre os documentos em que ela ocorre, o número de ocorrências e a posição em cada um deles. O índice invertido contém ainda algoritmos estatísticos e probabilísticos para computar rapidamente a relevância dos documentos. A estrutura de dados contendo o índice é armazenada no disco rígido, já que normalmente requer muito espaço. Ela ainda tem funcionalidades de atualização para adicionar um novo documento dentro da base. Vale a pena ressaltar que quando um documento é apagado da base o índice não é alterado e com o tempo ele pode conter muita informação desnecessária a ponto de se ter que construir um novo. A arquitetura da solução implementada pela Microsoft (Figura 57) contém um serviço separado chamado MSSearch (Microsoft Search service) apenas para gerenciar o índice Full-text. 56 Figura 57 – Arquitetura da Busca tipo Full-text Um exemplo de consulta usando a linguagem SQL (Structured Query Language) para pesquisa em banco de dados que tem como objetivo retornar todos os documentos que contenham a string “campeonato” SELECT Texto FROM Documentos WHERE Texto LIKE '%campeonato%' Essa consulta utiliza o operador de expressões regulares “LIKE” que pode ser aplicado para qualquer campo de caracteres alfa-numéricos. Com o mesmo objetivo que a consulta anterior, porém usando a estrutura de indexação Full-Text SELECT Texto FROM Documentos WHERE CONTAINS(Texto, ' "campeonato" ') Se a base de tamanho acima de 10.000 registros a diferença de velocidade na resposta é sensível. 57 3.3.6. Ordenação Como em (Gawrysiak, P., 1999), praticamente todos os métodos de ranking caem em dois grupos. O primeiro deles inclui técnicas que exploram a estrutura de apresentação do conteúdo – na Internet, esta estrutura pode ser extraída dos hiperlinks; em bases acadêmicas (artigos e teses), pelas citações. Isso funciona porque a estrutura é criada pelos humanos e contém alguma informação semântica. O segundo grupo compreende ferramentas que lidam com o conteúdo em si operando de forma estatística ou ainda extraindo a estrutura do próprio texto usando técnicas de PLN. Por exemplo, um mecanismo de recuperação de informação bastante conhecido é o Google. O algoritmo de busca presente no Google chama-se PageRank e está localizado principalmente no primeiro grupo descrito acima. O PageRank procura associar um peso a cada página de conteúdo que está relacionado com o número de páginas que apontam para ela. Estas páginas são chamadas de autoridades. A Figura 47 ilustra como esse problema pode ser complicado Figura 58 – Representação de uma estrutura de hiperlinks na Internet Um algoritmo simples que considere apenas a estrutura ajustaria um peso para “Page A” menor do que para “Page B” e “Page C”. No entanto, intuitivamente, “Page A” deve ser a mais importante. Essa é a solução que o algoritmo de PageRank apresenta: é calculada a probabilidade de um navegador aleatório entrar em cada página e entregar o resultado com os valores ordenados da mais provável para a menos provável. A fórmula para este cálculo é dada pela seguinte fórmula 58 onde A é um página, T1..n são páginas que contém links para A, PR(A) é o PageRank da página A, C(T) é o número de links de T para outras páginas, d é a probabilidade de o navegador sair da página. O algoritmo tal como foi criado pode ser encontrado em (Brin, S. e Page, L., 1998) e (Gibson, D. et al, 1998). Hoje, no entanto, ele já se encontra com alterações, variações e extensões que não são divulgadas. 3.4. Mineração de Dados A fase de mineração de dados (Goldschmidt, R. e Passos, E., 2005) envolve decidir quais algoritmos serão aplicados aos dados. Nessa fase, pode-se utilizar algoritmos provenientes de diversas áreas de conhecimento, tais como Aprendizado de Máquina, Estatística, Redes Neurais e Banco de Dados, alguns citados no Capítulo 2. Se o objetivo dessa fase é criar um modelo preditivo, então, decidir qual algoritmo é ótimo para o problema que está sendo analisado não é uma tarefa trivial. Esse fato ocorre pois é sabido que nenhum algoritmo é ótimo para todas as aplicações (Schaffer, C., 1994). Muitos estudos empíricos têm sido realizados a fim de relacionar o algoritmo de aprendizado com a natureza do problema a ser resolvido (Michie, D. et al, 1994). Entretanto, encontrar tal relacionamento parece ainda ser um problema em aberto. Uma possível solução, que ainda precisa ser analisada para grandes volumes de dados, é combinar os resultados de vários classificadores em vez de selecionar um único classificador. Ensembles (Wolpert, D. H., 1992) têm obtido muito sucesso em combinar o resultado de diferentes sistemas de aprendizado. Entretanto, a utilização de ensembles pode dificultar a fase de interpretação dos resultados. 59 3.5. Análise da Informação Após a fase de mineração de dados, o processo entra na fase de avaliação e interpretação dos resultados. Essa fase envolve todos os participantes. O analista de dados tenta descobrir se o classificador atingiu as expectativas, avaliando os resultados de acordo com algumas métricas tais como taxa de erro, tempo de CPU e complexidade do modelo. O especialista no domínio irá verificar a compatibilidade dos resultados com o conhecimento disponível do domínio. E, por fim, o usuário é responsável por dar julgamento final sobre a aplicabilidade dos resultados. 4 Processamento da Linguagem Natural O Processamento de Linguagem Natural (PLN) é o campo da ciência que abrange um conjunto de métodos formais para analisar textos e gerar frases em um idioma humano. Em mineração de textos, os métodos para analisar textos escritos são usados na etapa de preprocessamento de forma a melhor representar o texto e aproveitar mais o conteúdo. O principal objetivo do PLN para essa etapa consiste em Reconhecer e Classificar as Entidades Mencionadas. Porém, para essa tarefa ser bem feita é necessário resolver concomitantemente outras tarefas de PLN. A Figura 59 mostra como é necessário utilizar técnicas conjuntas de PLN para assim melhorar o desempenho de cada uma delas separadamente. Figura 59 – Os três gráficos (1), (2) e (3) mostram, de forma ilustrativa, a necessidade colaborativa de três tarefas de PLN T1, T2 e T3. T2 só consegue atingir 90% de acerto de melhorar T1 e T3. Em geral, a eficiência da extração das entidades de um texto se comporta de forma exponencial com a complexidade algorítmica. Com heurísticas simples atingimos facilmente um acerto de 80%. A dificuldade está em atingir valores acima de 90%, sabendo que 100% é praticamente impossível. 4.1. O Modelo de PLN O modelo de NLP utilizado na etapa de pré-processamento descrito nesse capítulo é fortemente baseado em léxico. O léxico utilizado no modelo contém atributos relativos a uma ontologia primitiva. Esse mesmo léxico é ainda 61 atualizado de forma automática. Os algoritmos de aquisição utilizados na sua atualização, assim como os algoritmos de text mining são avaliados segundo medidas de Precisão e Recordação. Nas seções seguintes veremos alguns conceitos sobre a orientação e propósito do modelo utilizado. 4.1.1. Aquisição Automática A aquisição automática das entidades (base de conhecimento) através de PLN funciona de forma biunívoca. Para reconhecer bem os objetos de um texto é necessário uma base de conhecimento de objetos. Essa base, por sua vez, é proveniente do reconhecimento de objetos anteriores. Seguindo esse raciocínio, se temos uma regra que usa o conhecimento de objetos para reconhecê-los e extraílos. É necessária uma outra regra mais forte (menos ambígua) que aponte de forma ditatorial a ocorrência desse objeto. Essas duas regras atuarão em trechos diferentes do corpus. Exemplo, em um momento temos a ocorrência livre em um texto “Tom Cavalcanti trabalhou na Rede Globo”. Usamos o léxico (regra de força 2) para nos dizer que Tom Cavalcanti é uma pessoa e recortá-lo separadamente. Porém, em outro texto encontramos “A apresentação do comediante Tom Cavalcanti será de noite” que ativa uma regra de força 1 de aquisição lexical do lexema Tom Cavalcanti classificado como pessoa para ser utilizado na regra 2. 4.1.2. O Léxico O sistema de PLN descrito nesse capítulo conta com um léxico para armazenar as informações lingüísticas da língua. O léxico é uma tabela onde cada registro dessa tabela apresenta um lexema e seus atributos. A idéia subjacente a esse léxico é de que cada registro apresente um lexema que possua um significado específico. Um lexema, como veremos a seguir, é uma seqüência de caracteres que pode conter qualquer caractere incluindo o espaço (“ ”), a exemplo “maça verde”. Devem existir tantas ocorrências do mesmo lexema, quantos forem os significados possíveis. Sendo assim, um registro pretende representar um significado e a representação morfológica dele. Cada significado recebe um identificador. 62 Porém, existe o caso inverso, onde duas seqüências diferentes apontam para o mesmo significado. Esse problema é contornado pela adição de um campo (meaningId) agrupando os identificadores. Além desse campo, ainda são armazenados os identificadores do lexema, a seqüência de caracteres, a classe, a freqüência e idioma como exemplificados na Tabela 18. Tabela 18 – Especificação da tabela e exemplos de registros do léxico utilizado meaningId lexemeId Keylexem class Freq Idiom 356 12 Plant S 3500 E 356 13 Vegetal S 56768 E 432 14 Plant S 270 E 432 15 industrial plant S 1390 E Na transição da etapa de pré-processamento para a indexação, os keylexems gerados pelo PLN e armazenados no léxico passam a se chamar tecnicamente de índice invertido. Isso quer dizer que o sistema de indexação que será usado contém um índice estendido, com todos os atributos do léxico, diferentemente dos tradicionais com apenas keyword e freqüência. 4.1.3. Sobre a Delimitação da Unidade Lexical Se o léxico computacional é o repositório das palavras de um sistema de PLN, nessa seção discutiremos como serão definidos seus itens (ou itens lexicais como são mais comumente chamados). Esta reflexão é necessária já que manter em uso termos cujos conceitos não são satisfatórios é se propor a chegar a resultados questionáveis. Por isso uma rápida reflexão sobre este ponto é fundamental. Serão estabelecidos os limites e características da unidade lexical, que será nosso objeto de manipulação. O termo comumente usado para tratar desse objeto é palavra-chave (em inglês, keyword). Porém keyword trata, em última instância, de uma seqüência ininterrupta de caracteres alfabéticos e hífens. Essa definição, apesar de sua simplicidade, pode nos trazer dificuldades na composição dos significados. 63 Como os modelos descritos nesse capítulo são fortemente baseados em um léxico orientado por significados, vamos definir um conceito de palavra que será chamado de keylexem (em analogia a keylexeme, ao invés de keyword) que é uma seqüência de caracteres armazenada em uma registro lexical. Um keylexem pode tanto ser “bola” como “à frente do tempo”, “fim de semana”, “Fernando H. Cardoso” ou até “Dois Filhos de Francisco”. O conceito de keylexem será utilizado daqui em diante nas etapas de preprocessamento como referência a um objeto lingüístico formado por uma seqüência de quaisquer caracteres. 4.1.4. Ontologia Uma ontologia é um conjunto de conceitos padronizados, termos e definições aceitos por uma comunidade particular. Ela inclui a definição desses conceitos, suas propriedades e as restrições entre os mesmos. A mais freqüente definição de ontologia é a de Gruber (Gruber, T. R., 1993) "uma ontologia é uma especificação de uma conceituação". Seu uso tem sido crescente no âmbito da Web Semântica. De outra forma, uma ontologia pode ser entendida como um modelo lógico de representação do mundo (Guarino, N., 1998). Por ser baseada em lógica, facilita a implementação computacional. Porém, como toda representação, uma ontologia expressa apenas uma visão, um recorte, uma projeção do mundo, não pretendendo dar conta dele por inteiro. 4.1.5. Precisão e Recordação Precisão (precision) e recordação (recall) são as medidas básicas usadas na avaliação de eficiência de sistemas tanto para busca quanto para aprendizado. A busca do tipo precisão é adequada quando se sabe exatamente o que se quer. A busca do tipo recordação é adequada quando não se sabe o que se quer e precisase fazer uma exploração, um reconhecimento de um domínio para então decidir o que se quer. Em alguns casos será necessário utilizar em seguida uma busca do tipo Precisão, em outros obter-se-á o item desejado diretamente. 64 Tecnicamente a busca Precisão tende a retornar poucos documentos e a busca Recordação a retornar muitos documentos. Para aprendizado as medidas funcionam de forma análoga, trocando os itens por lexemas. Ao invés de retornar documentos em uma busca, seleciona lexemas para aquisição. Um sistema de aprendizado orientado a precisão dificilmente comete erros, porém demora a aprender novos lexemas. Um sistema voltado a recordação aprende mais conhecimento em menos textos, porém pode cometer mais erros. Na prática, existe um contra-peso entre precisão e recordação. Ao maximizar a precisão, perde-se recordação. Ao maximizar recordação perde-se precisão. No entanto, o principal objetivo é manter as duas medidas altas reforçando uma ou outra dependendo da funcionalidade da aplicação. Se retornamos todos os documentos maximizamos a recordação e minimizamos precisão. Se trouzermos só um documento, correto, maximizamos precisão e minimizamos recordação formando uma estreita visão da base. Se estamos fazendo os primeiros passos da investigação, devemos reforçar a recordação. Se já sabemos o que queremos podemos reforçar a precisão. Cada uma das técnicas de PLN descritas a seguir têm impacto nessas medidas, tornando o sistema mais orientado à precisão ou recordação. Os cáculos para essas medidas são descritos de forma aprofundada em (Baeza-Yates, B. e Ribeiro Neto, B., 1999). 4.2. Técnicas de PLN 4.2.1. Tokenização A tokenização é o primeiro estágio do pré-processamento de um texto. Nele, o texto representado por uma seqüência de caracteres é agrupado em um primeiro nível segundo fronteiras delimitadas por caracteres primitivos como espaço (“ ”), vírgula, ponto etc. Cada grupo de caracteres estabelecidos no primeiro nível é chamado de token. A seqüência desses grupos, por sua vez, é chamada de tokenstream. Tanto os grupos de caracteres, como os delimitadores se tornam tokens na nova seqüência, o único caractere descartado é o espaço em branco. 65 O jogador, que está de camisa verde, marcou o gol da vitória. [O] [jogador] [,] [que] [está] [de] [camisa] [verde] [,] [marcou] [o] [gol] [da] [vitória] [.] O resultado desse processo na língua portuguesa é uma seqüência de palavras intercaladas por espaço e algumas vezes por símbolos delimitadores. Apenas com esse primeiro estágio já é possível iniciar um processo de indexação para recuperação de informações. Veremos que, se essa estratégia for usada, além de armazenar tokens desnecessários como “(-):,/”, encontramos rapidamente problemas de excesso de precisão, pois os verbos e nominalizações devem aparecer exatamente da forma digitada, sem generalização, dificultando a busca. Esse problema inclui letras maiúsculas e minúsculas, ao buscarmos pela palavra “dicionário” não chegaremos até o conteúdo contendo “Dicionário”. Os caracteres delimitadores armazenados que se apresentam em grande quantidade e muitas vezes desnecessários para a representação do conteúdo podem ser descartados (como feito com os espaços em branco), porém, em alguns momentos eles podem assumir papéis críticos para a busca. O ponto, por exemplo, pode assumir papel de fim de sentença, URL, data, número etc. Apesar da maioria dos pontos marcarem fim de sentença, um sistema eficiente deve resolver outros casos além desse. 4.2.2. Normalização É uma técnica para aumentar a Recordação em virtude das diversas representações de um mesmo conceito. A idéia é esquivar das várias formas de representação de uma palavra associada a um mesmo conceito. Por exemplo, do conceito de “objeto físico que consiste em um número de páginas atadas juntamente” temos a palavra “livro” com as seguintes representações “livro” e “livros” (plural). O processo de normalização propõe que essas duas formas sejam agrupadas em apenas uma, indicando que, para a busca, elas têm o mesmo significado. A questão da normalização é que ela é, justamente, uma aproximação de conceitos, ou seja, os lexemas não têm o mesmo significado e sim um alto grau de redundância de significado, que, para uma estratégia do tipo Recordação, pode ser interessante. 66 Na prática, vemos que ao aumentar a Recordação dessa forma agruparemos várias palavras que possuem significados distintos, prejudicando bastante a precisão do sistema. Porém, a estratégia do tipo Recordação, por reduzir o tamanho do léxico, normalmente apresenta uma maior eficiência quando o objetivo é navegação. De acordo com a forma de agrupamento das realizações das palavras, os processos de normalização podem ser de vários tipos. Alguns deles são: Lematização: Substitui-se as diversas formas de representação da palavra pela forma primitiva. As formas “livro”, “livros” e “livraria” apontam todas para o lexema “livro”. Essa estratégia tem a vantagem de captar mais as intenções de busca do usuário, já que a forma livro é de fácil interpretação. Radicalização Inflexional (stemming): Só leva em consideração as flexões verbais. Faz truncamentos que tornam as palavras, na maioria das vezes de difícil compreensão. No mesmo exemplo: “livro”, “livros”, “livrando” é substituída por uma quarta forma “livr”. Radicalização para a raiz (stemming): É a forma mais agressiva de normalização, levando em consideração todas as formas de sufixos e de prefixos. A eficiência desses métodos podem ser vistas em (Kantrowitz, M. et al, 2000). Sinônimos: No senso comum, os sinônimos são palavras bastante diferentes que contêm o mesmo significado, ou apontam para o mesm1o objeto. Se as duas ocorrências forem agrupadas por um único identificador teremos também um procedimento de normalização. Porém, alguns lingüistas afirmam que não existem sinônimos exatos, i.e., que guardam consigo exatamente o mesmo significado. Assim, a idéia mais adequada a relação de sinonímia seria a de similaridade, ou, a de redundância de informação. Então, se os significados são parecidos quer dizer que existe uma parte diferente. Mais, essa parte diferente pode variar em cada caso, mantendo ainda a relação de sinonímia. 67 = = ≠ = ≠ = ≠ = = (a) (b) (c) Figura 60 – As figures (a), (b) e (c) ilustram três relações diferentes e hipotéticas de sinonímia. Para cada parte diferente indicada na Figura 60 temos um tipo de relação de sinonímia. Essas relações permitem fazer um verdadeiro passeio semântico para ilustração, onde cada palavra apresenta um interseção de significado com a outra. Vamos demonstrar isso com a palavra “planta” que pode ser uma “representação arquitetônica”, um “arbusto”, uma “flor”, um “vegetal” ou até o verbo “plantar”. Porém, nenhuma delas pode ser exatamente igual a “planta”, por que senão, pela lógica implicaria que todas as palavras são iguais entre si, e definitivamente um “arbusto” não é o mesmo que uma “flor”, muito menos igual a uma “fábrica”. 4.2.3. Expressões Multi-Vocabulares Geralmente, itens lexicais são palavras geradas pelo processo de tokenização. Mas, existem vários casos onde ajuda considerar um grupo de palavras como um único item lexical. Na literatura lingüística temos algumas classes desses grupos que são colocações, expressões e expressões idiomáticas. De acordo com (Saeed, J. L., 1997), a diferença entre colocação, expressão e expressão idiomática está relacionada ao dinamismo da linguagem. Dessa forma, colocações são as combinações mais dinâmicas de palavras. Conforme elas vão sofrendo um processo de fossilização se tranformam em expressões. Expressões idiomáticas, a partir desse ponto de vista, são os tipos mais fossilizados de combinações, de forma que as palavras combinadas se “desgarram” do significado das palavras individuais da combinação. Isso quer dizer que a diferença entre esses termos está relacionada com o uso. Exemplos dessa dinâmica são “Vossa Mercê”, “Você” e “cê”, ou mesmo “em boa hora”, “embora” e “bora”. A freqüência de uso durante uma considerável quantidade de 68 tempo seria responsável pelo mudança no estatus de palavra para expressões multi-vocabulares. Por esse motivo, as abordagens estatísticas têm se destacado bastante na solução desses problemas. Uma vez que uma expressão multi-vocabular é detectada, ela é inserida no léxico e se torna um keylexem. As expressões multi-vocabulares fazem retomar a importância do espaço em branco. Além disso, por analisar um conjunto de palavras próximas em significado, esse procedimento pode ser encarado como um passo em direção a desambigüização, já que seu significado é distanciado quando da ocorrência da palavra agregada. 4.2.4. Fronteiras das Frases Apesar de intuitivamente parecer simples considerarmos tudo que está entre os delimitadores (.!?), essa abordagem não mostrou-se muito boa, com uma primeira aproximação do problema de apenas 80%. Para superar a barreira dos 95% devemos desambiguizar os delimitadores, isto é, classificá-los como delimitadores ou não-delimitadores. Esse é um dos procedimentos mais difíceis, e, de certa forma são resolvidos pouco a pouco durante as outras etapas do pipeline de PLN. Assim, uma melhor aproximação para a determinação das sentenças é deixar essa etapa para o final, depois de ter resolvido as outras. A maioria dos delimitadores, como o caso do ponto, já vai estar agrupada em nomes, urls e datas. O pontos restantes promoverão um acerto muito maior. Além do problema da ambigüidade dos delimitadores, existem ainda outros desafios na definição das fronteiras das frases (em inglês, Sentence Boundary). Primeiramente o problema da ocorrência dos operadores “” e (). Existem frases que contêm frases dentro delas de forma recursiva, e, nestes casos, o ponto não mais promove o fim da frase. “Eu não vou com você. Me liga quando chegar lá.” Disse Márcio Lemos. Teremos que ter estruturas em árvore para representar a delimitação das sentenças de um texto. Adicionalmente temos ainda as estruturas de parágrafo, capítulo e documento. (Corpus Encoding Standard Annex 10) 69 4.2.5. Etiquetagem A etiquetagem é a rotulação das palavras de acordo com uma dada classificação que pode atender à uma ontologia. No nosso caso uma estrutura de representação básica presente em quase todas as línguas, uma ontologia considerada neste trabalho como primitiva. Essa ontologia primitiva começa com a divisão em duas categorias principais: • Palavras funcionais: a categoria engloba as preposições, artigos, pronomes, etc. Esse conjunto é estático, pois raramente surge uma nova palavra funcional em uma língua, por contrapartida essas palavras aparecem mais freqüentemente em um texto. É raro encontrarmos um texto que não tenha a ocorrência do lexema “de”. • Palavras de conteúdo: Diz respeito aos nomes, verbos, adjetivos etc. Esse conjunto é dinâmico, pois a todo momento surge uma nova palavra de conteúdo em uma língua, por contrapartida essas palavras aparecem menos freqüentemente em um texto. É raro encontrarmos em um corpus genérico vários textos com a palavra “ontologia”. As palavras funcionais, por serem mais estáticas, podem ser catalogadas manualmente em um léxico. Já as palavras de conteúdo devem ser aprendidas/inseridas constantemente e, por isso, de preferência de forma automática. Isso não significa descartar um dicionário de palavras de conteúdo. Os dicionários são úteis, porém não são suficientes. Por exemplo, a palavra “livro” pode ser um substantivo ou um verbo. A tarefa da etiquetagem é justamente classificá-la corretamente. Para as palavras de conteúdo precisamos, então, de uma abordagem de aquisição automática das entradas do léxico, assim como sua respectiva classe. Na literatura tem-se usado algoritmos de aprendizado de máquina como HMM (Hidden Markov Models – Rabiner, 1989) e TBL (Transformation Based Learning – Brill, 1992) que aprendem através de um corpora etiquetado. 70 Uma boa abordagem para adquirir a classificação de palavras de conteúdo é começar pela distinção majoritária entre substantivo e verbo. Os substantivos, em geral, nomeiam os objetos enquanto os verbos especificam as ações e relacionamentos. Para algumas línguas latinas esse problema é mais fácil pois os verbos apresentam sufixos sofisticados que indicam a classificação das palavras na maioria dos casos. Já para a língua inglesa a tarefa não é tão simples, a palavra substantivo ou verbo costuma aparecer na mesma forma o que força a antecipação da tarefa de desambigüização do sentido das palavras. Estratégias baseadas em regras são adequadas se for considerada a classe de palavras vizinhas e costumam obter um bom índice de acerto. Para essa estratégia é necessário usar um dicionário para dar uma condição inicial de classes ao sistema e assim gerar insumos para aplicar as regras. Na primeira aplicação as regras alteram algumas classes. A nova seqüência de classes é usada como prancheta para um nova aplicação das regras, e assim por diante. Um exemplo desse método pode ser encontrado em (Brill, E., 1995). 4.2.6. Padrões Gramaticais A técnica de padrões gramaticais pode ser entendida como reconhecimento de padrões em um caso mais geral ou como um procedimento de parsing mais específico (ad-hoc). A técnica visa procurar no texto padrões sintáticos fortes que assumem significados próprios e, por isso, merecem ser uma unidade de lexema como por exemplo “através de”, “de acordo com” e “faz parte” que seriam proveniente de seqüências de classes gramaticais. Em casos mais genéricos essas sequenciaw podem incluir delimitadores, assim temos a presença de padrões como “’s”, “--“ ou até “:-)”. 4.2.7. Reconhecimento de Entidades Mencionadas O pré-processamento comum à maioria das atividades em mineração de textos tem por responsabilidade principal o reconhecimento das entidades mencionadas no texto. Por entidades podemos entender pessoas, lugares, instituições etc. Porém, veremos que para reconhecer essas entidades de forma eficiente faz-se necessário o reconhecimento de todos os objetos do texto. 71 A teoria em torno do processo de identificação e classificação de entidades tem como referência (Borguraev, B. e Pustejovsky, J., 1996), onde eles descrevem, para a língua inglesa, o processo de segmentação de nomes próprios apontando algumas dificuldades. Um procedimento natural para humanos mostrou-se uma difícil tarefa para um sistema especialista. Destacam-se alguns exemplos: (1) Philip B. Morris (2) Juiz Nicolau dos Santos Neto (3) Presidente da Câmara dos Vereadores Alcides Barroso (4) Hollywood No caso (1) temos um nome próprio não trivial porque contém uma abreviação no meio que poderia ser considerado como ponto final. No caso (2) temos um item funcional “dos” que poderia separar o nome em dois distintos: “Juiz Nicolau” e “Santos Neto”. O caso (3) contém de fato duas entidades, sendo que não há nenhuma evidência de onde segmentar. Além disso, para classificação teremos o problema da polissemia, onde a entidade caso (4) “Hollywood” pode significar o lugar ou a marca de cigarros. Estes exemplos servem apenas para destrivializar o pré-processamento e mostrar que nesse caso os procedimentos vão muito contra nossa intuição, onde reconhecer EM não é apenas um processo de recortar o que tem letra maiúscula. A seguir descreveremos o módulo de inferência que identifica e classifica as entidades (para o idioma português brasileiro) utilizado nessa tese. É de grande eficiência e se baseia em conhecimento lingüístico, métodos estatísticos e modelos cibernéticos. O reconhecimento de entidades mencionadas (em inglês, Named Entity Recognition) é um dos pontos principais do PLN para inteligência competitiva pois eles nomeiam os objetos do mundo real de trabalho. Além disso, grande parte da informação de uma nova notícia é proveniente de novos nomes, ou relacionamentos entre novas combinações de nomes. Os tipos de relacionamentos são mais finitos que os nomes, aproximadamente 90% dos novos lexemas a serem aprendidos por um sistema automático são nomes próprios. Sendo assim, é interessante dar especial atenção a tarefa de reconhecimento de entidades. 72 O processo começa pela avaliação dos candidatos a entidade nomeada. De forma macro, essa avaliação consiste em uma sucessão de filtros. Os candidatos que persistirem serão agrupados por proximidade e considerados nomes de entidades. Esses filtros algumas vezes utilizam o condicionamento a palavras próximas, comportando-se como um autômato finito. Um bom marcador utilizado é a letra maiúscula. Ela costuma fornecer uma boa lista de candidatos iniciais. Mas esse é só o começo da solução. Além disso, um algoritmo específico para avaliar o início de uma frase deve ser utilizado, já que todas as palavras, inclusive os nomes próprios, são marcadas com letra maiúscula no inicio das frases. Uma boa solução para o início de frases é saber se a palavra é um verbo ou um substantivo antes de tornar o token candidato a ser um nome próprio. Deve-se considerar também o fato de que um token nome próprio é encontrado bastante freqüentemente acompanhado por outro token nome próprio. “Sônia Braga”, “São Pedro da Aldeia”, “Manhattan Connection” Esses tokens em seqüência normalmente representam um único lexema e devem ser agrupados. Deve-se levar em conta as preposições também, mesmo que não sejam marcadas pela letra maiúscula. Outro problema freqüente é a existência de tokens periféricos responsáveis pela qualificação da entidade e que também são marcados pela letra maiúscula. “Presidente Lula”, “Estado do Rio de Janeiro” Outro padrão recorrente é o uso de siglas no meio do nome como forma de abreviação. Os pontos utilizados nessas abreviações são um grande complicador para o reconhecimento. Saber se “Murilo O. Machado” é um nome ou “Murilo O” é o fim da frase e “Machado” o começo de outra pode parecer trivial para nós humanos mas um computador deve ter regras que auxiliem nesse agrupamento como a raridade de uma frase terminando em sigla, e ainda mais precedido de um nome de pessoa. Finalmente, passamos esses objetos por um último filtro de datas, religião e localização geográfica e rotulamos como nomes de entidades. Esses nomes 73 devem ser catalogados e aprendidos periodicamente para auxiliar as outras tarefas de PLN. 4.2.8. Classificação de Entidades Mencionadas A classificação de entidades mencionadas (em inglês, Named Entity Classification) é realizada nas entidades reconhecidas (portanto do resultados do procedimento de reconhecimento de entidades mencionadas). O objetivo é classificar os nomes, que são os principais objetos da IC, segundo um ontologia. A Figura 61 mostra as classes utilizadas nos processos de reconhecimento e classificação das entidades mencionadas, assim como o apoio fornecido pelo conhecimento de uma na outra. Exemplo, as regras de classificação de datas usam perguntas sobre a classificação dos números. As classes que se encontram no nível mais baixo da árvore tendem a ser mais independente da língua, como os nomes de pessoa e de organização, em seguida temos os nomes de locais geográficos e finalmente os formatos de datas. Compostos Funcionais Substantivo Verbo Qualificador Det Números Nomes Próprios Data Pessoa Geografia Organização Figura 61 – Esquema de pré-requisitos entre as classes ontológicas. O processo de classificação pode ser feito seguindo a mesma lógica do processo de reconhecimento, porém em um nível de abstração maior. A maioria das regras contém perguntas sobre o resultado do reconhecimento. Além disso, existe a meta informação. São utilizadas também regras que utilizam de palavras adjacentes que circunscrevem a classificação dos nomes. 74 “Isso aconteceu próximo litoral da ilha de Sumatra” Nesse exemplo, as palavras “litoral” e “ilha” ditam a classificação de localização geográfica para o nome “Sumatra”. 4.2.9. Análise dos Constituintes Até então, as técnicas vistas descrevem processamentos que consideram apenas as palavras individualmente ou expressões que funcionam como itens lexicais, de forma a enriquecê-las e transformá-las em um lexema dotado de significado próprio. A análise dos constituintes (parsing) atua sob o resultado gerado pelas etapas anteriores com o objetivo de ligar as palavras umas as outras, estabelecer relações entre elas. Essas relações são especificadas pelo próprio texto. Se o texto estiver escrito corretamente e tratar do mesmo assunto, nenhuma palavra ficará solta, e todas elas terão uma posição específica em um único grafo. Mais precisamente, cada palavra tem um papel dentro da frase que se encontra; cada frase pode ser representada em uma estrutura sintática de árvore; as árvores são conectadas entre si por meio de relações de anáfora, hiperonímia, sinonímia etc formando o grafo final. Um texto que resulta em dois grafos não conectados contam duas histórias diferentes. Em (Grune, D. e Jacobs, C. J. H., 1991) são apresentados vários tipos de parsing assim como algumas abordagens para o problema. Um dos métodos computacionais para se aproximar desse problema é a estrutura de DCG (Defined Clause Grammar) que combina uma seqüência de regras de formação das árvores a partir dos constituintes. S Æ SN SV SN Æ DET N SV Æ V SN Essas regras operam com classes atribuídas aos lexemas nas etapas anteriores. São armazenadas em um banco de inferência. Um dos problemas dessa abordagem é que o número de regras pode crescer de forma indefinida, tentando atender ao número de formas sintáticas possíveis em uma língua, que podem ser 75 infinitas. Além disso, é necessário manter um motor de inferência verificando a integridade das regras a cada vez que uma regra é adicionada, pois essa regra pode entrar em contradição com outra ou uma combinação lógica de outras. Diante desses problemas, o procedimento de análise dos constituintes só é utilizado para casos específicos e domínios com alguma restrição. Mesmo com essa limitação, o procedimento atende bem a funcionalidade de information extraction, pois possui os objetos e relacionamentos pré-especificados, restando ao analisador detectar as variações sintáticas. Sob o ponto de vista da aquisição lexical, podemos levar em conta a freqüência de uso de cada regra como estimador de sua força de atuação. Se uma regra do tipo DET + S ocorre muito na língua, então, se encontrarmos um DET e a palavra seguinte tiver sido avaliada como V (verbo) pode-se re-rotular a classe dela para S. Deve-se tomar bastante cuidado com a utilização de regras de rerotulamento pois elas aumentam de forma significativa a complexidade computacional do problema. 4.2.10. Correferência Assumindo a representação de um texto como um grafo estruturado por árvores interconcetadas, onde cada árvore representa um relacionamento parseado. A maioria das correferências são formas de conexão entre as árvores. Elas ocorrem quando dois termos de um texto têm o mesmo referente, i.e., se referem ao mesmo objeto/entidade. Elas também ocorrem freqüentemente usando a relação ontológica hierarquicamente superior. As correferências são usadas quando a definição de um objeto tem uma relação de dependência conceitual de um objeto já instanciado. A seguir encontram-se abordagens de solução de alguns tipos mais freqüentes de correferência. 4.2.10.1. Acrônimos, Siglas e Abreviaturas Os acrônimos são palavras formadas por pedaços de nomes extensos como “Pontifícia Universidade Católica” e PUC. O dois keylexems são distintos e se referem exatamente à mesma entidade que é uma universidade com um 76 determinado número de habitantes e uma certa cultura. Em um texto, o acrônimo costuma aparecer marcado por parênteses. Padrão 1: Departamento de Engenharia Elétrica (DEE) ou Padrão 2: DEE (Departamento de Engenharia Elétrica) Essa é uma forma de aprender automaticamente a conexão entre os keylexems, no entanto, existem vários casos em que os parentes aparecem e não há acrônimos. Temos que investigar outras dicas que possam fortalecer a regra. Primeiramente descobrimos se o possível acrônimo se encontra no padrão 1 ou no padrão 2. A idéia é usar o fato de o nome ser sempre maior que o acrônimo, e, com o candidato acrônimo em mãos, tentamos casar (match) as letras com as iniciais do nome. Essa comparação deve gerar um score de probabilidade de existir a conexão. As siglas diferenciam-se dos acrônimos pela intercalação de pontos (ex. E.U.A.) e normalmente aparecem dentro dos nomes, como “George W. Bush”. Quando não, podem ser comparadas com as entidades presentes no textos ou muito freqüentes. Finalmente, as abreviaturas são nomes truncados por pontos. A maioria é muito freqüente e pode ser catalogada, como “Dr.”, “Ltda.” e “Av.”, já as mais raras devem ser comparadas com palavras longas e bastante usadas para sugerir um aprendizado automático. 4.2.10.2. Nomes Truncados Os nomes truncados são as correferências mais freqüentes, principalmente do domínio da inteligência competitiva. A ocorrência desse fenômeno é proveniente de um princípio da economia na comunicação. Se a entidade com o nome inteiro já foi apresentada, não é mais necessário repetir toda a informação. No caso dos nomes de pessoa, uma vez apresentado o nome “Sônia Braga”, será referenciado mais a frente por Sônia ou Braga e não pelo nome inteiro. Essa ligação tem ainda uma outra característica adicional, ela é valida só no contexto (localmennte). O único keylexem gerado é “Sônia Braga” ligado aos nomes truncados que serão normalizados pelo nome inteiro. 77 Pelo valor da informação presente nos nomes de pessoa e pela freqüência em que isso ocorre é recomendado uma atenção especial para esse processamento. Depois de reconhecidas e classificadas todos as entidades dos textos, deve-se separar apenas os nomes de pessoas e fazer uma comparação direta de todas as combinações de duplas. Os nomes que se encaixarem perfeitamente (excluindo a técnica de identificação de erros ortográficos para simplificar) são candidatos a correferência. Em um segundo momento deve-se levar em conta a distância dentre os dois nomes em número de palavras, se a distância for muito grande pode ser uma correlação espúria devido ao fato de que nós mesmos teríamos muita dificuldade em lembrar do nome citado. A distância também pode servir para resolver um problema de dupla referência, quando duas pessoas tem o mesmo nome ou sobrenome. Finalmente, a seqüência de apresentação do nome inteiro e depois a truncado é muito mais usual, devendo ganhar um peso maior, apesar de o contrário também ocorrer. 4.2.10.3. Anáfora Pronominal As anáforas são as correferências formadas por palavras funcionais, mais freqüentemente por pronomes. Essas correferencias servem para adicionar informação descritiva ao objeto lingüístico. Como não guardam nenhum conteúdo ortográfico da entidade em sua representação, são usadas com bastante proximidade ao objeto referenciado. Porém, mesmo próximas, ainda é difícil o trabalho de encontrar o objeto destino correto. Essa decisão deve ser feita na comparação de atributos lingüísticos do objeto, por exemplo, “Ela” deve referenciar um objeto pessoa feminino singular; “Eles” deve referenciar um objeto pessoa plural e assim por diante. A vantagem é que os pronomes são finitos e catalogáveis, sendo viável construir uma matriz de atributos de comparação para cada um. Mais complicado é incorporar essas características na etapa de classificação das entidades. Alguns trabalhos tentam resolver esse problema, a exemplo (Lappin, S. e Leass, H., 1994) e (Ge, N. et al, 1998) 78 4.2.10.4. Sinônimos Os sinônimos também são muito aplicados para correferenciar termos. Nessas ocasiões, as duas palavras sinônimas, apesar de não conterem, em sua essência, significados idênticos, no contexto, apontam exatamente para o mesmo objeto manifestando uma relação de correferencia. As relações de sinonímia dessas palavras, em geral, são especiais e apresentam na redundância de informação um certo grau de hierarquia de organização do conhecimento como “tipo de” ou “parte de”. Apesar de que sinônimos horizontais também são encontrados. Em geral os textos apresentam esse tipo de correferência para não repetir a mesma palavra. Exemplo, um texto pode começar falando de uma pesquisa, e depois correferenciar a mesma pesquisa como trabalho, paper ou desenvolvimento. No domínio de negócios um exemplo comum é apresentar a empresa e depois chamar de agência, corporação etc. As relações hierarquicas podem ser adquiridas de forma automática através de regras atuando em padrões como “gasolina e outros combustíveis” indicando que gasolina é um tipo de combustível. Outros padrões lingüísticos podem ser encontrados em (Hearst, M. A., 1992). Após a extração do conhecimento, a idéia é montar um banco de dados contendo um grafo dessas relações para auxiliar na resolução da correferência de novos textos. 4.2.10.5. Erros Ortográficos Correção ortográfica automática tem uma longa história. Um importante algoritmo criado em 1964 introduziu a idéia de distância edição mínima (minimum edit). Basicamente, o conceito de distância de edição quantifica a idéia de uma seqüência de caracteres estar próxima a outra, pela contagem do número de operações de caracteres (como inserção, deleção e substituição) que são feitas para tranformar uma string em outra. Usando essa métrica, os melhores candidatos para a palavra correta são aquelas que apresentação a mínima distância de edição. Outra abordagem é a técnica de chave de similaridade, onde as palavras são tranformadas em um tipo de chave de modo que palavras parecidas e erradas 79 tenham a mesma chave. Para corrigir os erros ortográficos é necessário então simplesmente gerar a chave para a palavra errada e procurar as palavras com a mesma chave para uma lista de candidatos. Soundex é a melhor solução conhecida com essa abordagem, e também é usado a aplicaçãod e busca fonética. A combinação da distância de mínima de edição e chaves de similaridade (metaphone) é o núcleo da estratégia utilizada pela Aspell. Mas existe uma terceira abordagem utilizando técnicas de indexação por n-gramas de letras. Uma n-grama de letras é uma seqüência de n letras da um dada palavra. Para exemplicar, a palavra “cavalo” pode ser dividida em quatro 3-gramas, também conhecido como trigramas: “cav”, “ava”, “val” e “alo”. A idéia é que os erros ortográficos mais comuns só afetam poucos constituentes de n-grama, então, podemos buscar pela palavra correta através daqueles que compartilham a maior parte dos n-gramas com a palavra errada. No processo de indexação normal, os documentos são indexados por palavras contidas neles. No processo de correção de erros, os documentos são as palavras e as palavras são os n-grams que irão constituir o índice. Quando a palavra é procurada, os n-grams são processados e procurados no índice, a palavra que apresentar o maior número de n-grams será a mais relevante. O problema de misspelling é bastante útil em PLN e já apresenta bons resultados na literatura, por esse motivo vale a pena ver ainda outras abordagens como (Cucerzan, S. e Brill, E., 2004) e (Martins, B. e Silva, M. J., 2004). 4.2.11. Discriminação do Sentido da Palavra O problema de discriminação do significado (em inglês, Word Sense Discrimination) é um dos mais requintados do PLN devido principalmente à sua dificuldade algorítmica. Apesar de ter havido um trabalho substancial nesse problema durante um bom período, ainda não existem algoritmos que possam completamente discriminar o sentido de uma palavra. No início dessa tese, foi estudado o tema para avaliar a dificuldade algoritmica, o resultado desse estudo originou um artigo publicado em TIL2004 (Aranha, C. et al, 2004). Esse trabalho direcionou os estudos para o pré-processamento da linguagem, já que enfrentamos uma dificuldade de avaliação do resultado final 80 devido à dificuldade de interpretação da saída do modelo. Um pré-processamento mais apurado poderia aumentar a semântica dos resultados. O processo de discriminação consiste em determinar qual o significado da palavra de acordo com o contexto em que ela está inserida. Esse problema existe devido ao fenômeno da polissemia presente nas línguas, i.e., uma mesma seqüência de caracteres pode apontar para vários significados diferentes. Sob um certo ponto de vista, todas as palavras são polissêmicas, e dessa forma, para processar cada palavra de um texto seria necessário um procedimento de discriminação. Porém, devido à freqüência de utilização, apesar de muitos significados, as palavras normalmente trazem consigo um significado mais forte (mais freqüente). Por esse motivo é que PLN sem procedimentos sofisticados de Word Sense Discrimination pode gerar resultados positivos em certas instâncias. Uma versão maior do problema de Discriminação do sentido (Word Sense Discrimination) é o problema de Desambigüização do Sentido (Word Sense Desambiguation). A maioria dos algoritmos de desambiguização rotulam o nome do grupo além de discriminá-lo. Porém, algoritmos de discriminação dos significados das palavras têm a vantagem de ser mais orientados a aquisição automática por seguirem os modelos cognitivos de aprendizado, que, por sua vez, não têm acesso aos rótulos dos significados na maioria das vezes. Uma abordagem bastante conhecida está descrita em (Manning, C. e Schutze, H., 1999), onde é elaborada uma definição de vetores de contexto baseados em coocorrência. Esses vetores são plotados em um espaço ndimensional e agrupados por um algoritmo de clustering. Cada grupo indica um contexto discriminado. 4.2.11.1. Detecção Automática de Sinônimos Uma abordagem baseada em regras (rule-based) desse problema já foi citada na seção 4.2.10.4. Nessa seção falaremos de uma abordagem estatística para tentar solucionar o problemas dos sinônimos horizontais (sem hierarquia). O problema da detecção automática de sinônimos é oposto/dual à Discriminação de Sentido. De forma didática, a discriminação de sentidos parte de uma mesma palavra com dois significados distintos e os sinônimos são duas palavras distintas 81 com o mesmo significado. No primeiro caso, temos o movimento de separação e no segundo, um movimento de agrupamento. Tecnicamente, para cada ocorrência é computado um vetor de contexto. Após o algoritmo de clustering são detectados grupos de contextos semelhantes. Na tarefa de discriminação, os dois usos caem em grupos diferentes, apresentam significados diferentes. Logo, se duas palavras diferentes geram vetores de contextos do mesmo grupo (muito próximos) então pode-se aferir relação de sinonímia. A medida de proximidade estatística utilizada no algoritmo vai indicar o quão parecido são os significados. Normalmente estipula-se um fator limite (threshold) para o grau mínimos de semelhança que será considerado como sinônimo. 5 Desenvolvimento e Implementação Nesse capítulo será descrito com detalhes a arquitetura e o modelo de préprocessamento de mineração de textos ora proposto. Ferramentas já implementadas no modelo bag-of-words podem ser encontradas em PreTexT (Matsubara, E. T. et al, 2003), Rainbow (MacCallum, A. K., 1996) e Ngram (Banerjee, S. e Pedersen, T., 2003). Diferentemente dessas ferramentas, o modelo proposto pretende aproveitar mais o conteúdo lingüístico do documento no tratamento das palavras (words) transformando o conteúdo em um modelo bag-oflexems. Outra característica é a autonomia do sistema, de caráter pseudosupervisionado, que tenta aproveitar as dicas presentes no próprio texto para o aprendizado automático de novos lexemas e novas classificações ontológicas, com o objetivo de minimizar esforços manuais. Gerenciar um léxico é um dos maiores esofrços de um modelo pré-processamento. Nas seções seguintes falaremos um pouco sobre o modelo de aprendizado automático, a importância do léxico computacional e o desafio de mantê-lo atualizado, a estratégia linguística utilizada para esse objetivo, léxicos públicos em forma de tesauros, o modelo implementado, formato de representação, formato de armazenamento e exemplos de pré-processamento do modelo implementado. 5.1. Aprendizado Automático A maioria dos sistemas de aprendizado para mineração de textos são supervisionados, isto é, a partir de uma base de treinamento (gabarito), um algoritmo sintetiza um determinado conhecimento, seja de forma probabilística ou simbólica. Esse conhecimento passa a fazer parte de um programa extrator do tipo de informação selecionada para o aprendizado. Assim, o sistema será capaz de processar, em novos textos, as características desejadas. A Figura 62 ilustra, em alto nível, o procedimento utilizado nos casos de aprendizado supervisidonado. Na etapa de mineração de dados propriamente dita (Figura 41) muitas abordagens seguem esse modelo, como será o caso exemplo nos últimos capítulos dessa tese. 83 Corpus de treinamento Corpus de teste Extrator de Informações Lingüísticas Algoritmo de aprendizado automático Lista de informaçõe s extraídas Conhecimento probabilístico e/ou simbólico Figura 62 – Esquema geral de um extrator de informações lingüísticas. O conhecimento probabilístico e/ou simbólico circulado na figura, no caso do pré-processamento, é armazenado em um léxico. 5.2. O Léxico Computacional Um léxico é um repositório de palavras que pretende armazenar todas as palavras (lexemas) existentes em uma língua. É claro, que no caso limite, temos infinitas palavras em uma dada língua, na prática o léxico armazenará o número de palavras diferentes nos textos processados (corpus). Além dos lexemas, o léxico faz a associação de cada palavra com outras informações pertinentes à aplicação. Nesse sentido ele tem um papel fundamental de apoio à percepção da palavra. Inspirado no léxico mental, que é o modelo cognitivo de como nosso cérebro armazena as palavras de uma língua, o léxico computacional procura cumprir o mesmo papel, mas já leva outro nome (“computacional”) principalmente porque não carrega consigo nenhuma pretensão de ser fidedigno ao léxico mental. Isso significa dizer que a orientação da modelagem computacional desse trabalho não é necessariamente um problema cognitivo da mente humana. 84 5.2.1. A Importância do Léxico O léxico, cada vez mais, vem sendo reconhecido como um dos pontoschave de programas que visam a lidar com PLN. Nesse âmbito, assumem importância fundamental questões relativas (i) à modelagem – como representar uma palavra e suas propriedades – e (ii) à aquisição lexical – como construir um léxico capaz de adquirir novas palavras automaticamente. Quanto à modelagem lexical, o problema subdivide-se em como definir as informações que irão constituir os itens lexicais e em como construir o léxico, isto é, como organizar suas informações. No escopo do PLN, dadas as necessidades efetivas de processamento de textos, é interessante que o léxico possua informações relativas à morfossintaxe (como restrições de subcategorização), informações relativas à morfologia (como regras de derivação) e informações semânticas (como relações entre as palavras). Com relação à organização dessas informações em um léxico computacional, uma alternativa promissora, e que será utilizada nesse trabalho, é a Semântica Ontológica (Nirenburg, S. e Raskin, V., 2004) uma abordagem de PLN que usa uma ontologia - entendida como um modelo construído de mundo - como fonte principal para extração e representação do significado de textos, para o “raciocínio” sobre conhecimento derivado de textos e para a geração de textos em linguagem natural a partir das representações dos seus significados. Diretamente relacionado à questão da modelagem está o problema da aquisição lexical: como preencher o léxico com as informações necessárias, definidas na fase de modelagem. Normalmente, esta tarefa é feita manualmente. Porém, acreditamos que o sucesso do pré-processamento de textos é altamente dependente de um léxico robusto, tanto em termos de qualidade quanto em termos de quantidade de informação. Veremos que executar esta tarefa manualmente é muito custoso, o que faz com que a aquisição lexical seja considerada um dos gargalos mais significativos do PLN (Borguraev, B. e Pustejovsky, J., 1996). Além disso, como o léxico é um conjunto com um número potencialmente infinito de elementos, um léxico computacional eficaz deve permitir o acréscimo de novas palavras sem comprometer ou modificar o sistema, o que se reflete no problema da escalabilidade. 85 5.3. Percepção Lingüística Sob um certo ponto de vista, o processo da formação da percepção por seres humanos pode envolver a construção mental de representação do conhecimento a partir da informação sensível captada por eles. A frase “percepção lingüística” se refere a formar uma percepção que melhore nossa capacidade de compreender e raciocinar com informação lingüística. Informação lingüística pode ser expressa de duas formas básicas: oral ou escrita. A informação escrita geralmente é mais estruturada e menos ruidosa que a oral. A informação oral inclui várias orações semanticamente incompletas (Michael W.Eysenck, 1990) que o interlocutor pode acompanhar devido ao alto grau de contextualização do tópico sendo discutido. O processamento da informação oral requer, além do processador de linguagem, processadores de som, cuja tecnologia está ainda mais distante de fornecer bons resultados práticos. Sendo assim, nos concentraremos apenas na forma escrita da língua natural. A semântica escrita é mais comportada, mas não por isso simples. Em (Muradas, A., 1995) são descritas as etapas e os componentes da compreensão natural, mostrando que na maioria dos casos a compreensão da linguagem segue a seguinte ordem: analisador léxico, analisador sintático, analisador semântico e por fim o pragmático. No entanto, já aponta que esses módulos não precisam ser necessariamente distintos e muito menos utilizados nessa ordem, como iremos tentar mostrar também durante esse trabalho. Para se ter uma idéia de como este problema pode ser difícil, o ato de entender uma frase em linguagem natural requer muitos conhecimentos prévios (background knowledge) e conceitos do assunto tratado. Por exemplo, a frase “A cadeira engoliu o tigre” está sintaticamente correta, porém semanticamente incorreta. Já a frase “A formiga engoliu o tigre” está sintática e semanticamente correta, mas pragmaticamente incorreta. Uma criança sem percepção sobre formigas e tigres não pode determinar o quão fraca é a frase pragmaticamente. Vemos então que é necessário formar uma percepção sobre o mundo animal como cadeiras, formigas e tigres para conseguir compreender a frase. Em resumo, as seguintes interfaces de um sistema de linguagem vão auxiliar o processo de mineração de textos: 86 Sintaxe: estuda as regras de formação das frases a partir das palavras. Essas regras serão extraídas de acordo com a ordem com que as palavras aparecem no texto. Um modelo sintático pode implementar uma gramática para encadear as palavras. Um exemplo de uso na mineração de textos utilizando a sintaxe se encontra em (Silva, C. et al, 2003). Semântica: estuda a relação lógica entre os significados das palavras do léxico. O conjunto dessas associações comporão a chamada rede semântica. Essas relações lógicas são representadas por assertivas como, por exemplo, “idéias não têm cores”. Morfologia: analisa a estrutura e a formação das palavras em termos dos seus elementos constitutivos (exemplo: prefixos e sufixos). Conhecimento de Mundo: este seria um acervo de informações lógicas sobre o ambiente em que se atua. Contém todas as informações enciclopédicas de forma que possamos completar a histórias pela metade em nossa mente. Exemplo: “Quando Lisa estava voltando da loja com um balão, ela tropeçou e o balão foi-se embora flutuando”. (Michael W.Eysenck, 1990) Para se entender essa simples frase, utiliza-se uma considerável quantidade de conhecimentos. Considere todos os fatos que foram aceitos incondicionalmente e todas as conclusões plausíveis que foram feitas: de que Lisa é uma menina, de que ela comprou o balão na loja, de que Lisa tropeçou numa pedra, de que o balão estava preso pelo barbante, de que quando ela caiu ela largou o barbante e de que o balão subiu, e assim por diante. Quando se dá conta da extensão do conhecimento que foi utilizado no nosso dia-a-dia “sem pensar a respeito” é bastante surpreendente. É importante frisar que as fronteiras entre as análises acima não são muito claras. De fato, esta partição é artificial e tem por fim representar os aspectos cognitivos envolvidos na compreensão da linguagem natural. 87 5.4. Tesaurus A WordNet (Fellbaum, C., 1998) é um “léxico relacional” disponível gratuitamente para uso online. Nomes, verbos, adjetivos e advérbios estão organizados como sinônimos, cada um representando um conceito lexical. Esses termos (chamados synsets) são ligados através de diferentes relações, tais como sinonímia/antonímia, hiponímia/hiperonímia, meronímia e troponímia (para os verbos). Também existem relações derivacionais entre categorias sintáticas – por exemplo, entre um adjetivo e o nome de que ele se deriva (cultural-cultura) e entre advérbios e adjetivos (rapidamente-rápido). Um dos projetos de desenvolvimento de léxicos computacionais mais significativos feitos para o português brasileiro é a WordNet.BR, construída nos moldes da WordNet. A WordNet.BR, desenvolvida pelo NILC (Núcleo de Lingüística Computacional da USP), toma por base o aplicativo Thesaurus Eletrônico para o Português do Brasil – TeP (Dias-da-Silva, B. C., 2003) e possui seus itens lexicais estruturados em função das relações de sinonímia e antonímia (Dias-da-Silva, B. C. et al, 2002); (Dias-da-Silva, B. C., 2003); (Dias-da-Silva, B. C. e Moraes, H. R., 2003). Atualmente, a WordNet.Br prevê a inclusão de estrutura argumental e de esquemas de subcategorização dos adjetivos na sua base de dados (Di Felippo, A. e Dias-da-Silva, B. C., 2004), informações que não existem na WordNet. Bases como a WordNet e a WordNetBR são construídas a partir de fontes lexicais pré-existentes. As informações não disponíveis em tais fontes são acrescidas manualmente. No caso da WordNetBR, serviram de ponto de partida alguns dicionários, como Aurélio Eletrônico e Michaelis Eletrônico, três dicionários de sinônimos e antônimos, um dicionário analógico da língua portuguesa e um dicionário específico, com frames de categorização e papéis semânticos, o Dicionários de Verbos do Português, de Francisco Borba (Dias-daSilva, B. C. et al, 2002). A WordNet, por ser o resultado da compilação de uma vasta rede de conhecimentos léxico-semânticos, é utilizada por diversos sistemas que lidam com PLN e com a construção de ontologias (Crow, L. R. e Shadbolt, N. R., 2001). Sendo assim iremos considerá-la uma referência importante na nossa 88 investigação. Por outro lado, o fato de a WordNet e a sua versão brasileira serem construídas manualmente as distanciam dos nossos objetivos – investigar e implementar formas automáticas de aquisição de informação lexical para préprocessamento de dados textuais, dispensando (ou minimizando) o trabalho humano. 5.5. O Modelo As seções seguintes irão mostrar as etapas e os desafios de um processo de aquisição da linguagem natural. Durante essa seção, utilizaremos bastante o conceito proveniente da cibernética de retroalimentação sistêmica (ou “feedback”). Para (Wiener, N., 1948), a retroalimentação é um retorno de aperfeiçoamento, de otimização do sistema, que caracteriza a reorganização progressiva contra a desordem e a tendência universal da entropia em todos os níveis. Basicamente, para ser considerado um sistema inteligente capaz de aprender é necessário um módulo de percepção, responsável por captar as informações do meio e um de retorno, responsável por julgar os impactos dessas informações (Maturana, H. e VARELA, F. J., 1980). Para perceber, é necessário uma capacidade sensível, memória e uma capacidade de aprendizado com experiências anteriores armazenadas em sua memória. Para julgar as informações é necessário uma análise destas, incluindo comparações e projeções. Um ser inteligente então é aquele capaz de melhorar seu desempenho em uma determinada tarefa utilizando para isso seu aprendizado. Em cada etapa são processadas características morfológicas ou semânticas, isto é, a forma como a palavra é escrita ou sua classe. O aprendizado inicialmente funciona por interação com o usuário, até atingir um status de maturidade onde o sistema consegue adquirir novos conhecimentos de forma autônoma. A partir desse ponto é viável o desenvolvimento de funcionalidades utilizando seu resultado, como veremos mais adiante. 89 5.5.1. Definições Para as definições assumimos que na língua só existem significados literais, de maior ou menor força. Dessa maneira, uma metáfora será um significado fraco ou pouco freqüente. Definimos aprendizado de uma língua como o processo de armazenamento da informação sentida ou percebida na memória. Memória como um objeto que armazena informações que não são nativas do código (hardcoded). Sensação como um processo de captar/sentir as informações do ambiente. Percepção como uma organização do sentido e comparação com a memória. Esses conceitos serão usados nas seções seguintes, ex. Figura 66. Definimos termo como o “átomo” da língua para este fim. A estrutura de um termo possui conteúdo, quantidade de espaços até o próximo termo, classe gramatical ou classe nativa do lexema, classe ontológica, identificador no léxico, identificador do grupo do termo no léxico, lista de relações de redundância semântica e uma lista de termos para construir as regras sintáticas. 5.5.2. Arquitetura O modelo de armazenamento do conhecimento utilizado no algoritmo de pré-processamento está de acordo com a Figura 63. Uma tabela armazena todos os lexemas aprendidos (Léxico), outra tabela armazena as relações lexicais de redundância de informação, como acrônimos e flexões verbais. As classificações ontológicas são implementadas como um filtro ou uma visão do léxico para cada categoria. A tabela Scan armazena as regras linguísticas utilizadas/aprendidas, Rules no modelo de classes da Figura 64. E, finalmente, os índices aumentam a performance dos acessos à bancos textuais. 90 Rede Índices Scan Léxico Lexical Ontologia Banco Visão Figura 63 – Modelo de banco de dados. O modelo de classes da Figura 64 apresenta a arquitetura orientada a objeto do modelo de pré-processamento proposto. A classe Common contém as informações e regras mais básicas das linguas ocidentais. As informações são constantes como os caracteres alfanuméricos, os separadores e diferença entre maiúscula e minúscula. As regras são processos de detecção de compostos e nomes. Para cada língua, então, essa classe é estendida de modo a atender às suas especificidades. Por exemplo, em inglês temos o formato de data MM/DD/AAA, já em português temos DD/MM/AAAA. Todas essas constantes e regras são aplicadas pela classe pipeline para processar o texto. A classe producer é responsável por utilizar essas informações para o aprendizado automático. Common •Constants •Rules PT_BR English •Constants •Rules Producers Text Pipeline Spanish •Constants •Rules Producers •Constants •Rules Pipeline Producers Pipeline Preprocess Figura 64 – Modelo de classes por orientação a objeto. Lexems 91 Finalmente, a classe Preprocess recebe o texto a ser processado como entrada e aciona o Pipeline e o Producer para pré-processamento e aprendizado respectivamente. O modelo de classes da Figura 64 foi feito para ser extensível para outras línguas, sem impactos de arquitetura. Nessa tese, no entanto, implementamos apenas uma instância para o português. O pipeline para o português é composto de sucessivos scans que vão sendo “plugados” e aplicados em linha. Cada um responsável por reconhecer uma classe de lexema diferente: Texto cortex.scanNumbers() cortex.scanPattern() cortex.scanEnclise() cortex.scancHifen() cortex.scanLowAcronym() cortex.scanCollocations() cortex.scanNames() cortex.scanURLs() cortex.scanTimeRef() cortex.scanEmails() Lexemas Figura 65 – (Pipeline) Sequência de procedimentos de reconhecimento de padrões e aprendizado de lexemas especializados em cada área do PLN. Um texto escrito em uma determinada língua natural pode ser considerado como uma seqüência finita de símbolos arbitrários (Saussure, F., 1982). Estes símbolos são os átomos da língua, e computacionalmente são realmente indivisíveis e representados por caracteres. A seqüência de caracteres do texto contém padrões que acionam a percepção e que, por sua vez, agrupa seqüências desses símbolos formando um novo símbolo, remetendo a um outro significado. Sob a perpectiva sistêmica, podemos diagramar o processo como na Figura 66. O texto passa primeiramente pelo tokenizador (módulo sensitivo) onde são gerados os atomos linguísticos, depois pelo reconhecimento de padrões que utiliza os conhecimentos prévios armazenados no banco de dados lexicais. Depois passa pelas regras comuns (Common), depois pelas regras específicas de língua e os 92 novos conhecimentos são inseridos no banco de dados. Os novos conhecimentos vão influenciar a percepção do próximo texto a ser processado. Módulo sensitivo Módulo perceptivo Léxico Regras inatas/ universais XML Regras aprendidas/ locais Figura 66 – Modelo de aprendizado autonomo e retroalimentado. Continuando o processo de agrupamento, o resultado do agrupamento “primitivo” transforma esta seqüência inicial de símbolos em uma outra seqüência de símbolos, também arbitrários que podemos chamar de termo. Dentro do universo dos símbolos existem dois tipos: os alfanuméricos e os separadores. Os separadores atuam como delimitadores dos alfanuméricos. Dessa forma, os alfanuméricos são agrupados em um novo símbolo e os separadores continuam a consistir um símbolo atômico. Esta primeira etapa do processamento da linguagem natural foi definida como Sensação. Para muitos, como (Pinker, S., 2002), a sensação pode ser entendida como parte da percepção, ou uma percepção primitiva/nativa. A função lógica deste primeiro aparato é alavancar o universo lingüístico e com isso a sua força de comunicação. Se antes tinha-se um alfabeto de 26 símbolos (26 significados possíveis para serem transmitidos), agora ter-se-ia logicamente infinitos significados para serem transmitidos ao outro, bastando para isso que se combinem, ou agrupem seqüências cada vez maiores de símbolos/caracteres. Observou-se, no entanto, que há um limite da capacidade de processamento de seqüências cada vez maiores, e, por uma questão de performance, observou-se que estas seqüências tem em média 13 caracteres de tamanho. Isso nos leva a concluir que a capacidade de comunicação de uma palavra não é infinita, mas algo da ordem de: 1326 = 9 x 1028 93 onde 13 é o tamanho da palavra e 26 é o numero de caracteres possíveis. O processo de agrupamento continua em várias etapas. A primeira foi descrita como Sensação. As etapas estão ilustradas na Figura 67. 1 2 3 4 5 Sensação Percepção Referência Sintática Lógica ---- Texto Figura 67 – Seqüências de etapas que compõe o processamento do texto. Na segunda etapa, são agrupados símbolos em um segundo nível. A essa etapa deu-se o nome de Percepção porque é a partir daí que estes símbolos começam a ser atribuídos de traços semânticos e também, em alguns casos, começam a utilizar a memória. Os traços semânticos são atribuídos por meio de padrões lingüísticos ainda bastante nativos. Na verdade existe uma graduação de nível perceptivo dos padrões. Essa graduação respeita a ontologia primitiva como na Figura 68. Quanto mais alto (global) o traço semântico, mais essencial e mais nativo ele é. Quanto mais baixa (local) mais elaborada e mais cultural ele é. As setas indicam os pré-requisitos procedurais para a determinação das classes. Global Com postos Funcionais Substantivo Verbo Qualificador Det Núm eros Nom es Próprios Data Pessoa Geografia Organização Local Figura 68 – Ontologia pré-definida para o processamento. As setas indicam os pré-requisitos (AÆB = A é pré-requisito de B). 94 As classes essenciais utilizam principalmente percepção de padrões morfológicos como, por exemplo, sufixos. A essas percepções é dada uma atribuição absoluta de um traço semântico para a palavra. No entanto, existem atribuições condicionadas à derivação das palavras. Vale ressaltar que no caso dos sufixos a atribuição é sempre absoluta, porém no caso da derivação pode ser tanto absoluta como relativa. Ex. Atribuição Absoluta Se a palavra terminar em “oso” então existe um traço de qualificação (adjetivo). Atribuição Absoluta Condicionada à Derivação Se a derivação “+mente” existir então existe um traço de qualificação. Atribuição Relativa Condicionada à Derivação Se a derivação “+mente” existir então tem o mesmo traço que a palavra derivada. Os procedimentos de identificação de compostos e extração de nomes próprios do texto merecem uma atenção especial e serão explorados adiante com mais detalhes. Continuando o processo de agrupamento, ao final dessa etapa, temos um conjunto de lexemas dotados de um traço semântico segundo a ontologia estabelecida. A este conjunto daremos o nome de conhecimento local. Esses lexemas representam a memória fresca, recente e de fácil acesso. A última tarefa da percepção é persistir o conhecimento local de forma a acumular conhecimentos que poderão ser usados futuramente, isto é, aprender. Seu aprendizado, então, ocorre da seguinte forma: se um lexema é desconhecido então ele é adicionado na memória junto com seu respectivo traço semântico (campo class do léxico); se ele já é conhecido (já existe na memória), então sua importância na língua é reforçada. Essa “importância” é a distância de sua posição para a porta de acesso externo. Isso significa que quanto maior a importância de um lexema mais próximo à porta, e quanto menor a importância mais longe da porta e mais difícil será o seu acesso. Para uma melhor compreensão, podemos fazer uma analogia desse acesso à nossa capacidade de 95 lembrar palavras. Se uma palavra é muito usada, ela vem rapidamente a nossa mente. Se é rara, então temos de nos esforçar para lembrar. Na terceira etapa, o objetivo é organizar semanticamente os lexemas de forma a obedecer ao princípio da economia [Navalha de Ockwan]. Essa tarefa se traduz em perceber os termos que contêm informação redundante entre si e assim fazer sua associação, junção ou referência. A Figura 69 ilustra o resultado desse processo que acaba por compactar a informação percebida. Os dois objetos associados não são exatamente iguais, mas têm um percentual de informação redundante que torna mais econômico o processo de representação do conhecimento. Figura 69 – Cada círculo representa um lexema percebido. A borda de cada um deles indica um traço semântico. O resultado das referências agrupa as redundâncias semânticas. Dentre as correferências existentes, as três principais são acrônimos, truncamento de nomes e anáfora. Acrônimo Truncamento Anáfora Copom = Comitê de Política Monetária Bush = George W. Bush Ele = Fernando Santos Para os acrônimos é usado um padrão sintático de proximidade e parênteses que aciona uma comparação entre as letras e o nome. Ao perceber uma semelhança os dois lexemas são ligados como referências ao mesmo significado. O processo de aprendizado é parecido: a cada acrônimo reconhecido este é memorizado. Dessa forma, se o acrônimo for usado em um texto futuro que não 96 contém seu significado, esse conhecimento pode ser usado como conhecimento enciclopédico. Porém, se o próprio texto indica a ligação no contexto, ela tem prioridade ao conhecimento enciclopédico. No caso do truncamento de palavras, muito usado em nome de pessoas, os critérios de ligação são o reconhecimento de completude, onde um lexema estende o outro adicionados exatamente À restrição de traço semântico de pessoa proveniente da percepção. Além disso, a capacidade de contextualização depende dos termos lidos mais recentemente, isso significa que em um caso de ambigüidade, o mais próximo deve ter prioridade. Finalmente, a anáfora simples procura ligar os pronomes a seus respectivos nomes ou substantivos. Essa ligação é feita através da lógica da sintaxe; então será necessário uma ajuda do módulo sintático para resolver esta referência. A quarta etapa atua em um nível ainda superior. Ela procura por padrões na ordem em que os lexemas aparecem no texto. Estes padrões vão indicar como cada lexema está relacionado com o outro para construir o significado da frase. Com esse mapa de relacionamentos, a sintaxe contribui em muito para a extração da informação de contexto. Essa informação incorporada às etapas anteriores poderá reavaliar um agrupamento ou traço semântico. Além disso, a informação de contexto será importante também para resolver os problemas de ambigüidade lexical. Essa etapa é tão importante que a informação semântica só começa a existir a partir dela. Nesse trabalho consideraremos esta etapa importante, porém complementar. Seu processamento se baseia em estruturas computacionais como BNF (Backus-Naur Form) e procedimentos de análise LR (Left-Right parsing) exemplificado na Figura 70. Esses modelos computacionais podem ser usados para implementar regras gramaticais da língua. No caso do português temos o exemplo da Figura 70. Uma gramática bem especificada, no entanto, necessita de uma quantidade de bem maior que o exemplo da Figura 70. Uma gramática totalmente especificada tende a um número infinito de regras. Porém, tirou-se proveito apenas de parte das relações sintáticas para os casos das aplicações de extração de informações. 97 frase --> sintagmaNominal, predicado, ['.']. sintagmaNominal --> artigo, substantivo. predicado --> verbo, sintagmaNominal. predicado --> verbo. artigo --> [o]; [a]. substantivo --> [menino] ; [menina] ; [cachorro] ; [gato]. verbo --> [viu] ; [chamou] ; [dormiu] ; [mordeu]. Figura 70 – Exemplo de uma gramática escrita sobre a de especificação de Backus-Norm-Form. Essas regras vão ligando seqüências de termos criando novos termos com categorias semânticas instantâneas, especificamente para aquele contexto. Estas categorias contextuais são chamadas de POS (Part of Speech) e servem à estrutura sintática. Os padrões têm forças diferentes que fazem um ter prioridade sobre o outro quando os dois são encontrados simultaneamente. Além disso, os padrões mais longos são procurados primeiro; isso indica que eles também são mais fortes e recebem mais prioridade sobre os outros. O resultado disso é uma árvore de sucessivos agrupamentos que pretendem indicar quem está ligado a quem e qual o teor dessa ligação. Como já foi dito anteriormente, a função da sintaxe é elaborar o contexto e agrega muita informação que pode ser utilizada pelos outros módulos nas outras etapas. Dessa forma, além do módulo de referência se utilizar dela para resolver a anáfora, o módulo perceptivo também faz uso para a classificação semântica e detecção de padrões como data, número e moeda. A necessidade desse intercambio entre as etapas/módulos já foi mencionada em (Nascimento, M. R., 1993) no módulo early evaluation. Outra influência da sintaxe está também na desambigüização dos termos, onde uma informação sintática pode alterar um traço semântico de um termo. Com este suporte da etapa sintática às etapas anteriores foi redesenhado o diagrama inicial conforme ilustrado na Figura 71. 98 1 2 3 4 5 Sensação Percepção Referência Sintática Lógica ---- Texto Figura 71 – Suporte da interface sintática forçando a reavaliação da percepção e referência. A etapa sintática transforma o texto em uma lista de relacionamentos entre os elementos do texto. A maioria desses relacionamentos são feitos por termos funcionais de cunho lógico. Cada um desses termos contém uma semântica lógica específica que permitirá ao módulo de Lógica fazer inferências sobre a teia de relacionamentos. Esse conceito também conhecido como Reasoning (Frege, G., 1975) é bastante próximo à compreensão computacional de um texto. Isso significa que se tornará possível a verificação de coerência e coesão. Para exemplificar como isso pode acontecer, seguimos um exemplo. “As ações da Ambev subiram com força, influenciada por rumores de que a empresa estaria prestes a fechar um acordo de produção e distribuição com a cervejaria belga Interbrew, ampliando sua atuação internacional.“ Lista de assertivas lógicas: As ações da Ambev subiram com força. (conhecimento local) As ações da Ambev foram influenciadas por Z. (conhecimento local) Z = “rumores de que X” (conhecimento local) X = “a empresa estaria prestes a fechar um acordo com a Interbrew”. (conhec. local) O acordo é de produção e distribuição. (conhecimento local) a Interbrew é uma cervejaria belga. (conhecimento local) a Ambev é uma empresa. (memória) empresa = Ambev (anáfora) X = “a Ambev estaria prestes a fechar um acordo com a Interbrew”. (conhec. local) 99 A seguir falaremos sobre como o sistema identifica, aprende e reconhece compostos da língua. Os compostos representam um novo paradigma de processamento de língua, onde as fronteiras dos objetos linguísticos são mais difusas. 5.5.3. Compostos Nesse modelo partimos de uma teoria composicional do significado, onde o significado de uma seqüência de palavras é formado pelas palavras que a constituem. No entanto, esta não é sempre uma verdade. Existem seqüências de palavras que nos remetem a um significado distinto do significado das partes. Essas seqüências surgem devido ao uso intenso dessas palavras conjuntamente formando uma associação forte entre elas e cristalizando seu significado. Com tempo o significado de cada parte pode flutuar e se descolar do significado conjunto cristalizado. (Saeed, J. L., 1997) A identificação de compostos foi feita usando como base um corpus jornalístico que contém aproximadamente 8 milhões de palavras (é um corpus dinâmico que cresce em média 300.000 palavras por dia). O sistema filtra combinações que tenham como parte do bigrama pronomes pessoais, pronomes demonstrativos e nomes próprios. Depois de separar as palavras do texto, o sistema vai rankear as combinações de acordo com um critério estatístico inspirado no tradicional teste de hipótese de t-student. O objetivo é selecionar seqüências de palavras em que a ocorrência de uma palavra seja condicionada à ocorrência da outra palavra, criando assim o composto. (Oliveira, M. F. et al, 2004) O princípio adjacente ao teste de hipótese vem da comparação (contraste) entre a freqüência de ocorrência de uma das palavras do composto e a freqüência esperada de ocorrência da mesma palavra. Esse contraste é resolvido através do cálculo da distância entre esses dois valores. Existe um fator limite da distância para garantir uma certeza de 95%. x s2 N − μ s2 N 100 onde x é o valor real e μ é o valor esperado, N é o tamanho da amostra e s é a covariância.da amostra. No caso do composto bigrama, temos uma estrutura do tipo A B (ex. impressão digital, impressão=A e digital=B) o objetivo é saber se a associação entre as duas palavras do composto é significante. Fazemos o teste de hipótese para saber se a probabilidade de a palavra A ocorrer conjuntamente com a palavra B é a mesma que a probabilidade de a palavra A ocorrer. É o mesmo conceito de testar a dependência entre duas variáveis. P(A/B) > P(A) ou P(B/A) > P(A) De acordo com nosso modelo, existe um agente responsável por extrair os elementos do texto e alimentar o léxico. O léxico armazena os itens lexicais já lidos e duas freqüências. Até a data de 15/09/2005 já haviam 16.677.358 palavras provenientes de textos processados. Existe um outro agente responsável pelo calculo dos compostos. Esse agente serializa o corpus (de acordo com os itens lexicais) e armazena eles em outra base, que é uma sub-amostra do total lido pelo sistema. As freqüências dos compostos candidatos são calculados sobre essa sub-amostra. Fizemos isso porque a tarefa demanda uma grande capacidade de armazenamento e processamento de máquina que cresce de forma exponencial. De qualquer maneira, como a aplicação de um teste de hipótese demanda um grande esforço computacional e mesmo assim não oferece garantia de 100%, um outra solução foi encontrada de forma à simplificar os cálculos. Na maioria dos trabalhos, apenas o conceito de teste de hipótese é usado para calcular as distâncias e ordenar os candidatos a compostos (Manning, C. e Schutze, H., 1999). Na prática, analisando esses resultados vemos que podemos reduzir os cálculos com atalhos que aproximam o resultado final de um teste de hipótese completo. Dessa forma podemos aumentar a performance computacional e viabilizar esse cálculo para grandes bases de dados. O cálculo se reduz para: 101 fc f n1 + f n 2 f >0 onde f c é a freqüência de coocorrência e f ni is a freqüência de ocorrência of i. Adicionalmente, uma segunda aproximação consiste na consideração no calculo das probabilidades marginais f ni não da sub-amostra, mas de todo o corpus (informação pré armazenada no léxico). Vale lembrar que a conjunta f c continua a ser calculada sobre a sub-amostra. Os resultados mostram que, apenas para ordenar os compostos candidatos não se perde muita informação importante. O problema passa a ser determinar o ponto crítico do teste, que é alterado pelas simplificações. Para isso, utilizou-se para a expertise humana de juízes que manualmente classificaram os compostos. Quando a quantidade de compostos errados atingiam 10% do total, arbitrariamente fixou-se o ponto crítico (análogo à precisão de 90% de um teste de hipótese). O resultado de toda essa análise é o agrupamento destas palavras em lexemas distintos, criando assim uma nova entrada lexical para ela. Veja o exemplo da tabela: Identificação Expressão linguística ID1 Impressão ID2 Digital ID3 Impressão digital Uma vez agrupado um composto como uma nova entrada no léxico ele passa a se comportar como um item lexical igualmente aos outros. Dessa forma, o aprendizado dinâmico permite que construções com n palavras sejam geradas, mais detalhes se encontram em (Aranha, C. et al, 2005). Felizmente o uso regular de uma seqüência de palavras decresce com a quantidade de palavras. Dessa forma as associações mais fortes são de 2 ou 3 palavras. 102 5.5.4. Nomes Próprios Embora a identificação dos nomes próprios tenha como principal evidência a ocorrência da letra maiúscula no início da palavra, essa tarefa está longe de ser a mais fácil. O principal fator é que essa classe concentra 50% da novidade de um texto, isto quer dizer que não é possível fazer uma lista dos nomes próprios existentes, ao contrário das outras classes. Em (Borguraev, B. e Pustejovsky, J., 1996) podemos encontrar uma descrição de diversos problemas que são encontrados normalmente no processamento de nomes próprios, assim como algumas dicas de como resolver alguns casos. Abaixo encontram-se alguns problemas com resultados bastante satisfatórios (Freitas, M. C. et al, 2005): Letra maiúscula no início da frase: “Governador faz viagem internacional.” Abreviação no meio do nome: “Philip B. Morris” Conexão por palavras funcionais: “Juiz Nicolau dos Santos Neto” Titularidade: “Presidente da Câmara dos Vereadores Alcides Barroso” Depois de reconhecido todos os nomes próprios e resolvidas as correferências, seguimos a ontologia estabelecida e passamos para uma segunda etapa de sub-categorização desses NPs nas categorias Pessoas, Lugares e Organizações. Para a classificação em cada uma dessas categorias foram utilizados recursos das interfaces de percepção e sintática. 5.5.5. Sintaxe A resolução da sintaxe se apresenta de duas formas, cada uma delas em seqüências de processos paralelos. Um processo é capaz de lidar com grandes volumes de dados e orientado para a extração de conhecimento e aprendizado. O outro é orientado à performance (processa em tempo real um pequeno volume de texto) e não está conectado com a interface de aprendizado. 103 Tempo Real ScanPOS por Batelada TextPOS Árvore Janela Regex Figura 72 – Diferentes módulos para resolver a sintaxe. Estão separados por fatores de performance e forma de execução. O processo em tempo real contém os módulos de ScanPOS que auxilia na percepção de todas as categorias através de metalinguagem. O módulo TextPOS que insere a palavra no contexto sintático, podendo recategorizar alguma categoria dada a priori. E finalmente há o módulo de geração da árvore sintática, onde o sistema traça todos os relacionamentos entre todos os objetos do texto. O processo por batelada está associado ao aprendizado do sistema. No módulo janela Scripts de SQL são acionados periodicamente para aprender a classificação de novas palavras assim como a metalinguagem associada. No módulo de Regex, o sistema usa os bem conhecidos motores de expressões regulares para extrair informações específicas dos textos como cargos de pessoas em empresas. O aprendizado se faz de forma síncrona entre metalinguagem e termos, como em um processo de otimização de duas varáveis por derivada parcial. Aprendemos a variável A em função de um condição inicial de B, com o resultado fixamos A e melhoramos B e assim por diante. Esse processo cibernético serve de apoio ao sistema em tempo real, como se fosse uma manutenção continuada ao sistema. 5.6. Representação do Documento Após o pré-processamento dos textos, é gerada uma lista de objetos lingüísticos (lexemas). Cada documento é composto de uma seqüência de 104 parágrafos, que por si são compostos de uma seqüência de frases, que por si, ordenam os objetos e as entidades. Essa lista inclui as entidades mencionadas correferenciadas. Um histograma dessa lista transforma a representação em uma estrutura bag-of-lexems normalizada. 5.6.1. Formato de Armazenamento Ao longo dessa seção discutiremos metodologias que permitem o enriquecimento de dados textuais através da criação e uso de metadados agregados aos documentos. O modelo mais usado hoje é o XML (eXtended Markup Language). As vantagens para este formato são inúmeras para a mineração de dados (Reis, M., 2005). Estes metadados são também denominados “tags”, e estão relacionados a um documento ou a trechos do texto contidos neste. Ilustraremos especialmente as vantagens do uso de tags para a recuperação de informações em grandes repositórios de documentos, quando comparado às técnicas mais comuns de busca. Existem muitos tipos de tags (ou metadados) que podem ser usadas para qualificar documentos ou partículas de texto. A seguir apresentamos alguns tipos de tags úteis no auxílio à análise do conteúdo de grandes repositórios de documentos. Em uma definição simplista, metadados são “dados sobre os dados”. São comumente usados para enriquecer dados, provendo informações específicas sobre os registros, colunas ou células de um repositório de dados, como por exemplo: • A origem do dado • Regras de transformação para o dado • O formato usado para representar o dado 5.6.1.1. Tags de Categoria As tags de categoria são associadas a um documento e fornecem informações quanto ao tipo do documento. Categorias são geralmente atribuídas 105 ao documento levando em conta seu local de origem, seu tipo, formato, escopo, etc. Alguns exemplos de categorias são mostrados na Figura 73. Mensagem Sigiloso Notícia Figura 73 – Exemplos de tags de categoria Um mesmo documento pode conter mais de uma tag de categoria. Por exemplo, ser qualificado como um e-mail e também como um documento sigiloso. Tags de categoria são especialmente úteis para limitar ou filtrar buscas. Torna-se possível, por exemplo, realizar uma busca limitada aos documentos não sigilosos da organização, ou fazer uma busca somente por documentos produzidos pelo departamento jurídico de uma organização. 5.6.1.2. Tags de Contexto Tags de contexto são de um tipo semelhante às tags de categoria, e qualificam um documento. A diferença é que as tags de contexto são utilizadas para indicar um ou mais assuntos aos quais o documento se refere, como por exemplo “política”, “esportes”, “informática” ou “desenvolvimento sustentável”. Embora pareça um trabalho que só possa ser realizado por seres humanos capazes de entender e qualificar os assuntos tratados por um texto, começam a surgir agentes inteligentes capazes de realizar esta tarefa automaticamente com uma acurácia razoável. 106 Políticas Públicas Clientes Concorrentes Figura 74 – Exemplo de Tags de Contexto. Tags de Contexto são muito úteis na filtragem de grandes quantidades de documento. Imagine por exemplo uma organização que atue na extração e refino de petróleo. Seria possível desenvolver um sistema capaz de baixar automaticamente notícias das principais mídias disponíveis na web e separar aquelas que dizem respeito ao mercado de petróleo, diminuindo dramaticamente a quantidade de material a ser lido diariamente pelos tomadores de decisão. Seria possível ainda separar as notícias que falam sobre extração, as que tratam de refino e as que tratam de políticas públicas regulatórias, direcionando conteúdo específico para departamentos distintos. 5.6.1.3. Tags de Função Diferente dos tipos de tags citados anteriormente, tags de função qualificam elementos internos de um documento. Eles informam o papel de uma partícula de texto dentro do documento. Por exemplo, um parágrafo de um artigo pode ser qualificado como sendo seu abstract, uma linha pode ser qualificada como o título, e uma outra partícula pode indicar o autor do documento. Tags de Função possibilitam especificar melhor o escopo de uma busca. Assim, em um cenário onde antes se faria uma busca por palavra-chave ao longo de todo o conteúdo de cada documento, pode-se agora restringir a busca por um campo específico. Por exemplo, em uma base literária, pode-se buscar por referências a “Machado de Assis”, somente onde este termo aparece como autor da obra. Buscas por escopos restritos aceleram muito o tempo de resposta ao usuário. 107 Título Corpo Autor Figura 75 – Exemplos de Tags de Função. A utilização de heurísticas para normalização de termos também pode possibilitar a migração de bases desestruturadas de documentos para um modelo relacional. Este tipo de heurística associa termos que na verdade têm o mesmo significado como ocorrências de um mesmo termo. Por exemplo, o termo “Assis, Machado de” e “Machado de Assis” podem ser reconhecidos como referências a um mesmo autor. Isso torna viável e eficiente recuperar, por exemplo, todas as obras escritas por um mesmo autor. Um tipo específico de tags de função são as tags de resumo. Estas tags atribuem resumos a documentos extensos. Estas tags podem ser estáticas ou dinâmicas. Resumos estáticos utilizam diversas técnicas para tentar compor uma partícula de texto mais semanticamente completo em relação ao texto original. Esta partícula também deve ser construída suficientemente de acordo com regras da língua, de forma que as construções façam sentido e o resumo seja de leitura fácil. Resumos gerados dinamicamente podem levar em consideração critérios e parâmetros variáveis. Por exemplo, na apresentação de resultados de uma busca, pode ser mostrado junto a cada ocorrência um resumo que depende dos termos sendo pesquisados. Tags de Resumo melhoram a manuseabilidade de uma quantidade grande de documentos, ou de documentos muito extensos. 5.6.1.4. Tags de Estrutura Dentro dos blocos de texto especificados pelas tags de função, temos as tags de estrutura. Essas tags organizam as frases dentro do documento, mostrando como elas estão relacionadas. Para isso, as tags de estrutura estão atenta aos 108 separadores e indicam quando é um início de parágrafo, quando é o fim da frase, quando é um ponto final, quando temos uma citação entre aspas, ou quando temos uma correferência. Essa estrutura pode ser vista também na Figura 77 e Figura 78, onde |PS| é o início do parágrafo, |FS| é o início da frase, |QS| é o início de declaração em aspas. |PE|, |FE| e |QE| são os respectivos fins. 5.6.1.5. Tags Descritivas Tags descritivas são o tipo mais complexo de metadado usado em documentos texto. Estas tags fornecem informações quanto à semântica (significado) e tipo de palavras, termos ou frases no texto. O Conjunto de tags descritivas a ser usado varia de acordo com o domínio em que estamos trabalhando. Por exemplo, em um domínio de negócios, “companhia”, “indústria”, “executivo”, “produto” são exemplos de tags que devem ser úteis. No domínio de uma aplicação médica, exemplos de tags úteis podem ser “medicamento”, “doença”, “sintoma” ou “órgão”. Justamente por esse motivo, o dicionário de regras usadas para identificar as tags devem ser diferentes para cada domínio. Figura 76 – Exemplos de Tags Descritivas. O uso de tags descritivas permite buscas mais precisas no aspecto semântico. Por exemplo, pode-se buscar por todas as ocorrências de termos do tipo “executivo” que aparecem em documentos onde o termo “Petrobras” é citado. Obter-se-á uma relação aproximada de executivos que participaram ou que de alguma forma estiveram relacionados com a empresa. Sem o uso de tags descritivas, seria muito difícil obter um resultado deste tipo. Observação final: Essa seção já se tornou um artigo que será submetido em breve. 109 5.6.2. Exemplos Uma amostra do resultado do módulo de reconhecimento de entidades utilizando representação por tags pode ser visto na Figura 77 e na Figura 78. As cores são marcações das diferentes rótulos das tags descritivas. |PS||FS|A mediana das projeções de mercado para a inflação do IPCA em 2004 voltou a subir, na semana passada, fechando pesquisa sexta-feira divulgada |FE||FS|Esse novembro a era ontem um do ano pelo patamar passado. em 6,14%, segundo Banco que não |FE||FS|O se Central. via mercado desde também ajustou, de 15,5% para 15,75% ao ano, a sua previsão para o nível da taxa básica de juros no final de maio. |FE||FS|A expectativa, portanto, é de que, em maio, o BC voltará a reduzir a Selic em 0,25 ponto percentual.|FE| |PE| Figura 77 – Exemplo de reconhecimento de entidades. Instituições em vermelho, índice em verde e tempo em roxo. |PS||FS| Antecipando-se à viagem do presidente Luiz Inácio Lula da Silva à China, em maio, uma delegação com alguns dos mais importantes dirigentes de empresas chinesas desembarca amanhã, no Brasil, para maratona de visitas a empresas autoridades, entre |FE||FS||QS|"|FS|É empresas brasileiras elas uma chinesas o visita mais de e encontros próprio com Lula. representantes importantes, não só das para aprofundar as relações comerciais e de cooperação, mas para discutir aumento de investimentos na China e no Brasil|FE|"|QE|, resume o secretário comercial da embaixada chinesa no Brasil, Ki Lin Fa.|FE| |PE| Figura 78 – Exemplo de reconhecimento de entidades. Nomes de pessoas em laranja e lugares em azul. 110 A identificação e classificação automática de NEs, embora ainda sem resultados expressivos para o português brasileiro, tem se desenvolvido nos últimos anos como Automatic Content Extraction – ACE (para a língua inglesa) e HAREM (para a língua portuguesa). O reconhecimento das EM do texto compõe a etapa de pré-processamento dos dados. A seguir veremos algumas técnicas freqüentemente usadas de mineração de texto. 6 Exemplos de Aplicações de Mineração de Textos Nas subseções seguintes serão apresentadas três aplicações de nosso modelo para mineração de textos: Classificação automática, Extração de Informação e Interface em Linguagem Natural (ILN). Após estas aplicações, este capítulo mostra um pouco sobre a importância do pré-processamento de textos para o campo da WebSemântica. 6.1.1. Classificação O processo de classificação automática de um texto passa pelo processo de classificação dos lexemas (entidades e objetos reconhecidos) que o compõem. Cada lexema identificado incrementa a capacidade de discriminação semântica do classificador. Isto é, se soubermos, no limite, dizer o significado de cada objeto lingüístico no texto teremos informação mais precisa para a classificação de um ou mais textos (hipótese base de nossa metodologia). Definir o significado de uma dada palavra é ainda uma questão filosófica muito complicada. No entanto, nos inspiram em um dos pensamentos de (Wittgenstein, L., 1979): “o importante não é saber o significado da palavra e sim jogar o jogo da linguagem”. Fazemos uma ressalva de que para Wittgenstein o significado só existe no momento do uso, e desse modo, qualquer sistema computacional para uma dada linguagem seria inviável. Para exemplificar essa aplicação, utilizamos o classificador Bayesiano (seção 2.1.3). Primeiramente o pré-processamento extrai os lexemas de todos os documentos. Em seguida, através da freqüência relativa, apenas os lexemas significantes são selecionados. Para cada lexema selecionado, um peso é associado de acordo com o cálculo da freqüência relativa. Para contornar o problema do significado, o modelo de classificação utilizado contempla uma abordagem estatística para modelar os diversos sentidos de uma palavra. Isto é, para cada palavra existe uma distribuição de probabilidade que varia conforme a usabilidade da palavra. No Anexo I existem algumas 112 distribuições de probabilidade importantes que nos ajudam a visualizar esse modelo estatístico. A cada termo novo, pré-processado e adicionado ao léxico aumentamos a potência de classificação dos documentos. Na fase de treinamento, o algoritmo estima a probabilidade de o documento pertencer a cada categoria. Esse processo de treinamento se dará com um conjunto de textos alvo pré-classificados e uma base de documentos representativa do domínio em questão. O conjunto de lexemas selecionado será chamado de “conjunto semântico” do contexto. Sendo assim, dado um texto, este pertencerá à categoria que contiver uma soma ponderada suficiente de lexemas do “conjunto semântico”. Esse procedimento não é o mesmo que a aplicação de filtros por palavrachave, visto que a semântica de um contexto é baseada em um conjunto de objetos. Sua intensidade é baseada exatamente na associação destes objetos. Sob o ponto de vista estatístico, essa associação é justamente a estimativa da matriz de covariância de todos os termos em todos os documentos. A ocorrência de apenas um lexema não torna uma categoria significante. Isso implica que um lexema sozinho não carrega consigo nenhuma semântica. Dessa forma, cada um deles pode ser retirado individualmente sem alterar a semântica do conjunto. De outra maneira, podemos dizer que não é a totalidade do conjunto que caracteriza a semântica do contexto. 6.1.2. Extração de Informações A extração de informações (IE) pode ser entendida como desde o reconhecimento e classificação de entidades mencionadas até a associação entre eles segundo o conteúdo do texto (Pérez, C. e Vieira, R., 2003). Após o pré-processamento visto durante essa tese, o texto é etiquetado, o que permite a implementação de algoritmos estatísticos para determinar os relacionamentos significantes entre os termos extraídos. Tem-se utilizado também modelos simbólicos para determinar esses relacionamentos. Diversos trabalhos sobre a extração automática de relações em um corpus vêm sendo desenvolvidos com ênfase especial nas relações de hierarquia semântica (ex. “Banana é uma 113 fruta” ou “Caule é uma parte da planta”) (Snow, R. et al, 2004); (Widdows, D., 2003); (Wu, S. et al, 2003). Para reduzir a exploração das quase infinitas relações que podemos ter em uma base textual, alguns padrões sintáticos pré-definidos são utilizados para a extração de informações (Hearst, M. A., 1992). A extração de informações trata de processos que seletivamente estruturam e combinam dados encontrados – de forma implícita ou explícita - nos textos (Cowie, J. e Wilks, Y., 2000); (Grishman, R., 1997). Cada processo é especificado de acordo com o objetivo pretendido de mineração que pode ser, por exemplo, associar bandas de rock com suas respectivas gravadoras. Tais processos podem, por um lado, resultar em algum tipo de base de dados e, por outro, se apoiar em bases de dados, como ontologias e taxonomias semânticas, para atingir os objetivos pretendidos (Phillips, W. e Riloff, E., 2002); (Snow, R. et al, 2004). Dentre as bases de dados lexicais/semânticas mais populares encontram-se a WordNet (Fellbaum, C., 1998) e Cyc (Lenat, D., 1995) – uma base manualmente alimentada com esquema da representação do senso comum, elas contêm sinônimos, hiperônimos e definições de palavras da lingua inglesa. Porém, tais bases, embora sejam extremamente valiosas, tanto para consulta quanto para sua utilização por aplicações de mineração de textos, e ofereçam enormes vantagens na execução das tarefas de treinamento de algoritmos de aprendizado, também apresentam algumas limitações. A primeira delas diz respeito à sua elaboração, que é feita manualmente, o que significa um trabalho lento e árduo. A conseqüência desse caráter manual é a dificuldade para atualização e extensão, que também dependeriam de trabalho manual. Tais limitações têm levado pesquisadores a se interessar por métodos mais autométicos de extração de informações (Caraballo, S. A., 2001); (Cederberg, S. e Widdows, D., 2003); (Girju, R. et al, 2003); (Snow, R. et al, 2004); (Widdows, D., 2003). Além disso, para (Freitas, M. C., 2004), uma fraqueza de especial importância para a EI é a quantidade insuficiente de nomes próprios que constam na base. O fato de tais nomes constituírem uma classe ainda mais “aberta” que a dos substantivos comuns, uma vez que novos nomes, principalmente de empresas, podem ser criados a qualquer momento, deixa ainda mais evidente a necessidade 114 de atualização constante e, conseqüentemente, de metodologias capazes de extrair informações automaticamente. Ainda em (Freitas, M. C., 2004), na recuperação de informações a importância do reconhecimento de nomes próprios aparece, por exemplo, quando o usuário busca por documentos que se refiram a uma entidade cujo nome é apenas parcialmente conhecido, como Gutierrez, ou que se refiram a uma determinada classificação semântica, como bancos ou cervejarias. Para a área de Extração de Informações, também pode ser útil ao usuário uma classificação de CityBank como um banco americano que, por sua vez, integra uma categoria superior “empresa”. Só para exemplificar, uma ontologia (seção 4.1.4) é um modelo relacional do mundo que se quer trabalhar. Em um hospital teríamos pessoas, lugares e horários. Dentro de pessoas podemos ter médico, enfermeira, paciente etc. Dentro de lugares podemos ter quarto, recepção, estacionamento etc. Os padrões seriam formas sintáticas de se extrair o conhecimento dessa ontologia. Exemplo, “o médico Antônio Lopes atendeu a paciente Mariana Bastos”: Antônio Lopes seria classificado como pessoa/médico, Mariana Bastos como pessoa/paciente e Mariana como paciente de Antônio. 6.1.3. Interface em Linguagem Natural Usamos como exemplo de aplicação de Interface em Linguagem Natural (ILN), a integração do pré-processamento proposto com o sistema desenvolvido em (Nascimento, M. R., 1993). Segundo (Nascimento, M. R., 1993), a aplicação de ILN já conta com vários trabalhos, a exemplo, para a língua inglesa, dos sistemas Lunar (Woods, 1972); Lifer (Hendrix, 1978); Planes (Waltz, 1978); Intellect (Harris, 1977); TQA (Demerau, 1985); Eufid (Templenton & Burger, 1983). E para a língua portuguesa (Coelho, 1981), (Assis, 1986), (Branco, 1987), (Árabe, 1989), (Martins, 1990). A aplicação da dissertação de (Nascimento, M. R., 1993) foi de um Assistente Inteligente. Para isso, estudou e implementou uma funcionalidade de Respostas Automáticas a perguntas em linguagem natural. O trabalho de (Muradas, A., 1995), depois, ampliou o sistema de (Nascimento, M. R., 1993) 115 com o conceito de PLN e desenvolveu um sistema interpretador de perguntas capaz de converter uma consulta em linguagem natural para a linguagem de consulta SQL segundo um banco de dados relacional pré-especificado. Segundo (Muradas, A., 1995), um sistema de respostas automáticas é constituído por uma sequência de perguntas, e respostas, que atendem às perguntas realizadas pelo usuário. A perguntas são feitas em linguagem natural e podem se apresentar de diversas formas. Através dos estudos dos trabalhos de (Amori, D. R., 1990); (Muradas, A., 1995); (Nascimento, M. R., 1993) selecionamos três tipos principais de interrogativas: • Interrogativa Fundamental: apresenta um ponto de interrogação no final e requer apenas um SIM ou NÃO como resposta. (ex. “O João comeu todas as maçãs?”) • Interrogativa Descritiva: apresenta um ponto de interrogação no final e requer como resposta uma descrição ou uma lista. (ex. “Quantas maçãs João comeu?”; “Quais frutas o João comeu?”) • Comando: não contém ponto de interrogação, mas são precedidas por uma expressão pré-locutória. (ex. “Informe-me se João comeu todas as maçãs.” ou “Gostaria de saber se João comeu todas as maçãs.”) Em (Muradas, A., 1995) e (Barros, F. A. e DeRoeck, A., 1994) vemos a importância de um bom pré-processamento. Esses trabalhos mostram que para converter as perguntas em consultas SQL é necessário resolver tarefas de PLN como anáforas e elipses. Uma anáfora é a referência a uma entidade previamente definida. Essa referência pode se dar através de pronomes ou classes ontológicas hierarquicamente superiores, exemplo: - Qual o título do artigo de Alex Garcia? (Entidade, seção 4.2.7) - Qual o endereço dele? (Anáfora pronominal, seção 4.2.10.3) - Qual o tamanho de um Beija-Flor? (Entidade, seção 4.2.7) - Esse pássaro tem algum predador? (Ontologia, seção 4.1.4) 116 E resolução de elipses através do modelo de pré-processamento proposto se dá pela substituição da entidade mencionada na consulta SQL, exemplo: - Quais os pesquisadores que moram no Grajaú ? (Entidade “Grajaú”) - e na Tijuca? (Entidade “Tijuca”) Todas essas técnicas funcionam muito bem em um ambiente controlado. Porém, quando deixamos o usuário livre para escrever um texto, normalmente ocorrem imprecisões de escrita. É fácil verificar isso em uma caixa de email. O conceito de imprecisão da informação escrita foi bem descrito por (Owei, V., 2002). Para essa aplicação é muito importante a utilização de um corretor ortográfico automático como visto na seção 4.2.10.5. Após o pré-processamento das perguntas, estas serão convertida para a consulta SQL que deve seguir rigorosamente o banco de dados estruturado. Essa estrutura pode ser feita utilizando os modelos pré-definidos na seção 6.1.2 de Extração de Informações. Essa mesma técnica pode ser usada para inserir as informações da base textual nas tabelas. Um exemplo do funcionamento de um implementação desse sistema em Java pode ser encontrado no Anexo II. As perguntas são livres e as respostas baseadas na ontologia pré-definida. Nesse exemplo, primeiro classificamos as entidades segundo a ontologia de locais, pessoas e empresas, depois extraímos a informação sob o modelo “Argentina é um país da América Latina” e alimentamos um banco estruturado. Finalmente convertemos a pergunta livre em uma consulta SQL para fornecer a resposta ao usuário. 6.2. Web Semântica A Web Semântica atualmente se insere nas principais linhas de investigação que norteiam os desdobramentos da Internet atual. Tem por principal objetivo fornecer estruturas e dar significado semântico ao conteúdo das páginas da Internet, favorecendo um ambiente onde agentes de software e usuários possam trabalhar de forma cooperativa. Neste novo contexto, a Internet será capaz de representar associações entre informações que, em princípio, poderiam não estar relacionadas. Para isso, são 117 necessários conjuntos estruturados de informações (dados e metadados) e um conjunto de regras de inferência que ajudem no processo de dedução automática. Estas regras são explicitadas através de um tratamento terminológico, que permite representar explicitamente a semântica/significado dos dados. A gestão de conteúdos na Internet envolve uma série de procedimentos de uniformização e padronização de informações, baseado numa visão integradora, reunindo informações de setores diferentes a partir de princípios comuns que possibilitam a interoperabilidade dos diversos sistemas informacionais de uma instituição ou de várias. No âmbito do conhecimento de gestão de conteúdo, dois conceitos são de fundamental importância: o de organização e o de comunicação. O conceito de organização pressupõe procedimentos classificatórios (seção 6.1.1). Tais procedimentos possibilitam o agrupamento e a recuperação de informações de um órgão ou mais de um. Estas informações podem estar em forma estruturada (bancos de dados, por exemplo) e não estruturadas (textos integrais, por exemplo). Esses procedimentos classificatórios, além de evidenciarem os contornos de atuação de um órgão, facilitam os processos de seleção e de tratamento de informações. O produto deste processo classificatório se apresenta como um mapa de conteúdos das atividades das organizações que as produzem. Entretanto, para que este mapa de conteúdos possa verdadeiramente funcionar como um mecanismo que permita não somente a socialização, mas também a integração das informações, é necessário que exista interoperabilidade entre os diversos sistemas de uma instituição. Isto significa promover a capacidade dos sistemas potencializarem oportunidades de intercâmbio e reutilização de informações, interna ou externamente. Neste contexto, a comunicação deve ser entendida como uma série de procedimentos que permitem a transmissão de conteúdos informativos, a partir de uma visão integrada desses conteúdos. Insere-se, neste domínio, a importância de ações como definição de metadados (seção 4.2.5) e construção de terminologias padronizadas, além da possibilidade de visualização de processos interinstitucionais. Estas ações viabilizam o tratamento e a recuperação das informações e utilização de outros recursos oferecidos no domínio de diversas instituições. 118 Por outro lado, é necessário também um meio que viabilize a comunicação não somente entre os sistemas, mas entre o sistema e o usuário deste sistema. Este meio é uma linguagem padronizada, também denominado de terminologia, e mais recentemente, no âmbito da Web Semântica, de ontologias (seção 4.1.4). Porém, depois de todas essas definições para o funcionamento da Web Semântica, esse modelo esbarra com a principal dificuldade que é a manutenção da coerência dos conteúdos com os metadados. Primeiramente a da inserção dos metadados nas páginas e depois a permanente verificação de coerência futura. Nesse sentido, os procedimentos automáticos de pré-processamento ora propostos podem ajudar em muito a expansão e a viabilização da Web Semântica por meio da inserção automática de metadados nas páginas HTML4 e verificação de coerência estatística dos mesmos. 4 Essa abordagem já está sendo testada em projeto CNPq para o Portal Cidadão. 7 Resultados Nessa seção serão apresentados os índices de processamento do sistema desenvolvido segundo a Avaliação Internacional de Sistemas de Identificação de Entidades Mencionadas (HAREM) promovido pela Linguateca e depois uma comparação dos resultados do algoritmo de classificação da seção 6.1.1 com a abordagem tradicional de bag-of-words e utilizando bag-of-lexems. 7.1. Pré-processamento Para avaliar a qualidade do pré-processamento de textos, a medida mais utilizada na literatura de recuperação de informações é a medida F (van Rijsbergen, C. J., 1979) que combina a precisão com que o sistema extraiu as entidades, e abrangência do mesmo procedimento: onde p é a precisão e r a abrangência do resultado do algoritmo. O HAREM funciona da seguinte forma: os sistemas participantes recebem uma coleção de textos no tamanho de aproximadamente 2000 páginas e devem efetuar a extração e classificação das entidades em 48 horas e devolver a base etiquetada. Depois de entregue essas bases são comparadas com o gabarito “Coleção Dourada”. O gabarito consiste na mesma base textual etiquetada manualmente por 5 pessoas. A medida-F é aplicada a subconjuntos da coleção de textos relacionados a diferentes categorias. Cada categoria avaliada é, então, uma seleção de textos sob um determinado critério. Os critérios são língua escrita (português brasileiro ou de Portugal), gênero (notícia, livro) e veículo (email, internet). Na primeira coluna, F significa a avaliação do sistema segundo a medida-F, a segunda coluna “Saída” é o nome/instituição do sistema desenvolvido. A terceira coluna é a avaliação segundo apenas a precisão so sistema (utilizada no cálculo da medida-F), a terceira coluna também mostra o cáculo da abrangência utilizada na medida-F. A “Sobre-geração” é o percentual de entidades extraídas a 120 mais que o gabarito (Coleção Dourada) e a “Sub-geração” é a quantidade de entidades do gabarito não reconhecidas pelo sistema. A Tabela 19 mostra, então, os resultados dos sistemas participantes do HAREM ordenados pela medida-F. Tabela 19 – Resultado do Reconhecimento de Entidades Mencionadas para os textos da coleção escritos no Português Brasileiro. Português Brasileiro F 0,78 0,78 0,78 0,77 0,77 0,72 0,69 0,64 0,60 0,58 0,58 0,56 0,53 0,52 0,51 0,26 0,18 0,11 0,10 Saída iémen mascate asmara nicósia cairo PUC-Rio riad damasco doha amã abudhabi bengazi kuwait oman teerão qatar eritreia túnis dakar Precisão 75,89 72,84 72,88 72,33 72,32 61,02 71,08 75,51 55,76 51,96 52,31 46,19 49,43 48,60 79,67 64,01 50,03 46,52 43,43 Abrangência 80,38 83,00 82,82 82,16 82,03 86,60 67,60 55,50 65,08 65,08 64,12 71,85 57,65 56,89 37,81 16,16 11,23 6,46 5,55 Combinado Sobre-geração Sub-geração 0,31 0,09 0,09 0,31 0,12 0,04 0,31 0,12 0,04 0,32 0,12 0,05 0,32 0,12 0,05 0,40 0,27 0,02 0,42 0,14 0,21 0,49 0,04 0,34 0,53 0,25 0,15 0,55 0,30 0,15 0,56 0,30 0,16 0,56 0,23 0,08 0,58 0,13 0,17 0,59 0,14 0,17 0,63 0,04 0,55 0,85 0,06 0,79 0,89 0,10 0,82 0,94 0,13 0,88 0,95 0,13 0,89 A Tabela 19 mostra que o sistema desenvolvido ficou em sexto lugar para o processamento do português brasileiro. Porém, apresentou a maior abrangência, e, levando em conta que a precisão foi prejudicada por 0,27% de sobre-geração, podemos reavaliar melhor a medida F. A sobre-geração foi por conta de algumas entidades que o sistema extraía sem ter letra maiúscula, uma regra da avaliação. Vale ressaltar, também, que a medida abrangência vale por si só, pois expressa a eficiência do reconhecimento de entidades. A Tabela 20 mostra as avaliações dos sistemas para textos coletados de bases de emails. O sistema implementado nessa tese obteve a melhor pontuação. A Tabela 21 mostra o resultado da avaliação para a categoria de notícias de jornais. De forma coerente, o sistema obteve o mais alto índice de abrangência (91,73%), isto é, reconheceu o maior número de entidades corretamente. Isso ocorreu pelo fato de a base de treinamento do sistema ter sido justamente notícias provenientes de jornais brasileiros. 121 Tabela 20 – Resultado HAREM para a avaliação de bases de emails. Base de Emails F 0,66 0,64 0,64 0,63 0,63 0,60 0,58 0,56 0,56 0,56 0,49 0,43 0,43 0,43 0,39 0,26 0,08 0,05 0,05 Saída PUC-Rio meca asmara riad iémen eritreia amã doha ancara tripoli luxor bagdad cairo mascate túnis manama bahrein damasco kuwait Precisão 57,72 55,99 55,89 55,49 55,49 54,89 58,40 52,92 52,41 52,41 57,34 33,90 36,53 36,41 61,07 55,87 28,22 30,43 29,63 Abrangência 76,56 73,65 73,65 73,25 73,25 66,20 58,54 60,22 60,22 59,64 42,24 59,69 51,63 51,60 28,43 16,89 4,42 2,68 2,68 Combinado 0,45 0,48 0,48 0,48 0,48 0,51 0,53 0,56 0,56 0,56 0,63 0,68 0,69 0,69 0,74 0,84 0,96 0,97 0,97 Sobre-geração Sub-geração 0,18 0,03 0,18 0,04 0,18 0,04 0,18 0,04 0,18 0,04 0,17 0,12 0,14 0,21 0,17 0,11 0,18 0,11 0,18 0,11 0,06 0,39 0,16 0,09 0,20 0,18 0,19 0,18 0,11 0,60 0,00 0,77 0,08 0,88 0,05 0,93 0,08 0,93 A abrangência de 91,73% é bastante significante, visto que o maior torneio de extração de entidades (MUC/ACE realizado nos EUA para a lingua inglesa) tem as maiores taxas de acerto por volta de 90%. (Weiss 2005) Finalmente, na Tabela 22, é mostrada a avaliação para páginas na internet, também com um bom desempenho. Além dos sistemas participantes do HAREM, existem sistemas para a língua inglesa que podem ser adaptados para a língua portuguesa, no entanto, apresentam resultados inferiores, o que pode ser melhorado com uma boa implementação. Bons exemplos são Docyoument, Penn Treebank, PreText, OpenNLP, Gate. Quanto ao tempo de processamento, a implementação proposta nessa tese processa duas mil notícias em um minuto. O tradicional pré-processamento bag- of-words demora sete segundos nas mesmas condições. Já um pré-processamento bag-of-lexems feito por humanos (mesma base) leva horas ou até dias. Normalmente, o erro humano, muito por causa do cansaço, atinge índices maiores que o de processadores automáticos. Para contornar esse problema, são utilizadas mais de uma pessoa para etiquetar a mesma e toda a base. Ao final 122 utiliza-se um procedimento de alinhamento da case etiquetada, o que acaba demorando mais do que o processamento em questão. Tabela 21 – Resultado HAREM para a avaliação de bases de textos de jornais. Base de Textos de Jornais F 0,89 0,89 0,88 0,88 0,88 0,83 0,83 0,70 0,69 0,69 0,68 0,67 0,55 0,55 0,54 0,24 0,21 0,11 0,11 Saída doha bahrein argel rabat marraquexe PUC-Rio luxor manama dakar damasco abudhabi nicósia sana iémen mascate oman qatar amã túnis Precisão 90,08 89,84 89,88 89,87 87,70 76,20 90,85 72,59 72,31 71,69 61,51 84,04 55,02 81,73 54,44 74,77 50,51 46,64 46,64 Abrangência 88,92 89,02 86,90 86,81 88,11 91,73 76,44 67,18 66,86 67,18 75,52 55,87 54,92 41,31 53,99 14,44 13,12 6,51 6,51 Combinado 0,15 0,15 0,16 0,16 0,17 0,25 0,26 0,41 0,42 0,42 0,42 0,46 0,56 0,60 0,56 0,86 0,87 0,94 0,94 Sobre-geração Sub-geração 0,02 0,05 0,02 0,05 0,01 0,06 0,01 0,06 0,03 0,05 0,16 0,02 0,02 0,19 0,09 0,18 0,10 0,18 0,10 0,18 0,06 0,08 0,00 0,36 0,05 0,19 0,01 0,51 0,05 0,18 0,00 0,82 0,07 0,78 0,11 0,88 0,11 0,88 Tabela 22 – Resultado HAREM para a avaliação de bases de páginas da Internet. Base de páginas da Internet F 0,74 0,74 0,74 0,74 0,73 0,73 0,64 0,64 0,59 0,59 0,58 0,51 0,46 0,44 0,44 0,26 0,17 0,12 0,12 Saída abudhabi rabat teer manama argel PUC-Rio bagdad casablanca dakar marraquexe luxor meca eritreia riad bahrein kuwait mascate bengazi oman Precisão 69,63 69,68 69,18 69,23 68,56 65,39 69,31 70,89 56,00 55,78 55,79 40,81 40,74 71,76 39,53 55,03 42,77 37,99 37,60 Abrangência 79,99 79,84 80,00 79,85 77,51 81,99 60,11 58,93 61,85 61,85 61,04 67,87 51,56 31,79 49,10 16,75 10,92 7,27 7,12 Combinado 0,35 0,35 0,35 0,35 0,38 0,37 0,48 0,48 0,53 0,53 0,54 0,61 0,66 0,70 0,67 0,84 0,90 0,93 0,93 Sobre-geração Sub-geração 0,10 0,03 0,10 0,03 0,10 0,03 0,10 0,03 0,12 0,09 0,16 0,02 0,11 0,26 0,05 0,27 0,18 0,13 0,19 0,13 0,18 0,14 0,18 0,07 0,14 0,17 0,04 0,58 0,15 0,19 0,02 0,75 0,07 0,78 0,06 0,83 0,06 0,83 7.2. Classificação O algoritmo de classificação da seção 2.1.3 – Análise de Discriminante – foi aplicado em duas bases de notícias de um jornal da Internet. Para formar a base 123 foi selecionada a seção de agronegócios do jornal para a classificação alvo e o universo de notícias erradas foi formado pelas outras partes do jornal, que não tinham notícias de agronegócios. A aplicação na menor base teve o objetivo de testar o desempenho dos métodos com pouca quantidade de textos e também a interpretabilidade dos parâmetros do modelo. A aplicação na maior base teve o objetivo de testar a habilidade de gerenciar grandes volumes de textos, assim como a capacidade de generalização do modelo ajustado. Primeiramente foi ajustado o modelo tradicional de bag-of-words, depois o método bag-of-lexems e finalmente o método cheio, bag-of-lexems mais a ontologia associada. O procedimento bag-of-lexems sem ontologia foi realizada apenas para se ter uma noção de interpolação dos resultados, pois o comparativo final será do método bag-of-words com o método bag-of-lexems rotulados. 7.2.1. Amostra Pequena Para formar a base foi selecionada da seção de agronegócios do jornal um total de 100 notícias. Das outras partes do jornal, que não tinham notícias de agronegócios, foram coletadas mais 4900 notícias dando um total de 5000 documentos. Seguindo a sequência de análise, para a fase de treinamento, o modelo tradicional de pré-processamento bag-of-words foi processado e apresentou os resultados da 124 Tabela 23. Foram executados o mesmo procedimento para diferentes quantidades de informação (QIP), dado que processar todos os termos da base é inviável computacionalmente. As diferentes quantidades de entrada de informação demandam um tempo cada vez maior de processamento de máquina. Por esse motivo foram feitos cinco formatos diferentes cortando a lista de termos em 10, 20, 30, 40 e 50% do seu tamanho original. 125 Tabela 23 – Resultados do modelo bag-of-words para a fase de treinamento com 5000 notícias. A tabela apresenta os dados do modelo e o quadro apresenta o formato de leitura dos parâmetros do modelo. bag-of-words QIP* Acerto Erro Termos 10% 45 6 41 20% 59 6 157 30% 64 6 279 40% 68 6 362 50% 72 6 487 * QIP: Quantidade de Informação Processada Trecho da saída: ... termo:agricultores AND text:carvalhaes termo:agroeconômica termo:böel termo:cafeicultura termo:camardelli termo:cogo termo:coopercentral termo:culturas AND text:fertilizantes AND text:importaram termo:cutrale ... O mesmo procedimento, com excessão do número de termos ajustados, foi realizado para o método bag-of-lexems. Essa etapa foi realizada com objetivos apenas de interpolação do índice de acerto. Os resultados desse modelo são apresentados na Tabela 24. Tabela 24 – Resultados do modelo bag-of-lexems para a fase de treinamento com 5000 notícias. A tabela apresenta os dados do modelo e o quadro apresenta o formato de leitura dos parâmetros do modelo. Bag-of-Lexems QIP* Acerto Erro Termos 10% 64 7 -- 20% 78 7 -- 30% 83 8 -- 40% 85 6 -- 50% 88 6 -- 126 Trecho da Saída ... termo:agropecuária sachetti ltda termo:agência paulista de tecnologia do agronegócio termo:antonio camardelli termo:cafeicultura termo:carlos cogo ... Finalmente, na Tabela 25, o resultados do modelo cheio, com a estratégia bag-of-lexems mais a classificação ontológica. Tabela 25 – Resultados do modelo bag-of-lexems com ontologia para a fase de treinamento com 5000 notícias. A tabela apresenta os dados do modelo e o quadro apresenta o formato de leitura dos parâmetros do modelo. Bag-Of-Lexems e Ontologia QIP* Acerto Erro Termos 10% 66 7 149 20% 81 7 324 30% 87 6 542 40% 90 6 779 50% 92 6 1028 Trecho da Saída ... local:iowa empresa:agropecuária sachetti ltda empresa:agência paulista de tecnologia do agronegócio empresa:cogo consultoria agroeconômica empresa:conselho nacional do café empresa:implementos associados empresa:ministério da agricultura, pecuária e abastecimento AND substantivo:saca empresa:scot consultoria pessoa:antonio camardelli pessoa:carlos cogo ... 127 Os resultados de todos os métodos da fase de treinamento foram consolidados na Tabela 26. Tabela 26 – Comparação entre as acurácias dos tres métodos: BOW (bag-of-words), BOL(bag-of-lexems) e BOLO(bag-of-lexems com ontologia), para as diferentes quantidades de informação processada. Comparativo de Acurácia QIP* BOW BOL BOLO 10% 39% 57% 59% 20% 53% 71% 74% 30% 58% 75% 81% 40% 62% 79% 84% 50% 66% 82% 86% Tabela 27 – Comparativo do número de termos significantes usados no modelo de classificação. Comparativo de Termos BOW BOLO 41 149 157 324 279 542 362 779 487 1028 Pela melhora nos resultados com o método BOLO, reafirmamos a tese de que o pré-processamento dos textos funciona como um atalho eficiente para o cálculo da matriz de covariância entre os termos. Analisando os trechos das saídas 128 Tabela 23, Tabela 24 e Tabela 25 pudemos notar a clareza semântica do modelo ajustado. No primeiro trecho temos como relevante o termo “cogo”, que a princípio não dá para saber o que é. No segundo, aparece o termo “carlos cogo” que permite a inferencia de ser o nome de uma pessoa. No último trecho, são apresentados dois termos com “cogo”, um que é uma pessoa realmente “pessoa:carlos cogo” e outro que é a empresa dele “empresa: cogo consultoria agroeconômica”. Apesar de o número de termos significantes para o método BOLO ter sido maior, o que indicaria menor parsimônia, podemos ver, que para a mesma acurácia de 58% aproximadamente, o ajuste BOW usou 279 termos contra 149 do ajuste BOLO. Nesse caso o modelo BOLO apresenta melhor acurácia, melhor interpretabilidade dos resultados e melhor performance. 7.2.2. Amostra Grande O algoritmo de classificação foi aplicado em um volume maior de textos para testar a performance em grandes volumes de textos, ambição de qualquer algoritmo de mineração de textos. O objetivo dessa aplicação é, além de testar a habilidade com grandes volumes, testar a capacidade de generalização dos métodos. A base textual continha um total de 37049 notícias das quais 1300 notícias eram da seção de agronegócios e 35749 de outras seções do jornal. Das 1300 foram separadas 1000 notícias para a fase de treinamento (in-sample) ou ajuste dos parâmetros do modelo e 300 para a fase de teste de generalização (out-of- sample). Desse modo, sobraram 35749 notícias para compor a base de textos errados. Os resultados para o método bag-of-words se encontram na Tabela 28, os resultados para o modelo bag-of-lexems na Tabela 29 e o resultado para o modelo bag-of-lexems rotulados pela ontologia na Tabela 30. Tabela 28 – Resultados de performance e generalização utilizando bag-of-words. bag-of-words 129 QIP* Acerto Erro Termos Tempo (seg) Generalização 10% 848 2118 876 30 224 20% 860 1317 1103 113 211 30% 872 1252 1508 268 215 40% 872 1283 1991 323 201 Tabela 29 – Resultados de performance e generalização utilizando bag-of-lexems. bag-of-lexems QIP* Acerto Erro Termos Tempo (seg) Generalização 10% 771 1578 915 3 119 20% 840 1535 1462 12 155 30% 858 619 1724 30 166 40% 875 616 2201 57 153 Tabela 30 – Resultados de performance e generalização utilizando bag-of-lexems rotulados usando a ontologia definida. bag-of-lexem e Ontologia QIP* Acerto Erro Termos Tempo (seg) Generalização 10% 873 1375 808 3 168 20% 903 1303 1302 20 195 30% 919 490 1545 45 234 40% 929 517 2044 71 230 Para comparar, escolhemos o melhor modelo de BOW que, segundo os resultados, é o que utiliza 30% de QIP, e o melhor de BOLO que é o de, também, 30%. No critério Acerto verificamos 872 x 929 indicando superioridade de BOLO, no critério Erro, verficamos 1283 x 517 indicando superioridade significativa de BOLO, no critério Quantidade de Termos verificamos 1991 x 2044 indicando uma leve superioridade de BOW, no critério Tempo de Processamento verificamos 323 x 71 segundos indicando superioridade significativa de BOLO e, por fim, no critério generalização 201 x 230 indicando superioridade de BOLO. 8 Conclusão e Trabalhos Futuros O trabalho consiste em mostrar a importância de um bom préprocessamento de dados para uma mineração de textos eficaz. Vimos que todo texto de linguagem natural está atrelado a uma língua e toda língua tem particularidades específicas que não podem ser desprezadas em nenhum algoritmo de mineração de textos, nem nos mais simples. Para extrair informações mais ricas dos textos devemos processá-los previamente de acordo com o conhecimento específico da língua. Vimos ainda que ao fazer um bom pré-processamento, tornamos mais simples a mineração de textos e suas aplicações. Esse trabalho apresentou uma pesquisa em que é proposto um sistema de pré-processamento automático para mineração de textos em português utilizando técnicas de inteligência computacional baseada em conceitos existentes na literatura, como redes neurais, sistemas dinâmicos, e estatística multidimensional O objetivo da tese de doutorado foi, portanto, contribuir com a área de mineração de textos na fase de pré-processamento. Ao se propor um modelo autônomo e automático de enriquecimento de dados textuais, estendeu-se o tradicional modelo de bag-of-words, de ênfase mais estatística, transformando-o no modelo do tipo bag-of-lexems com maior aproveitamento do conteúdo lingüístico do texto numa abordagem mais computacional. A existência de um modelo automático de pré-processamento poupa esforços na parte mais custosa do processo de mineração de textos, e ainda, como visto no texto, melhora a semântica dos resultados. Foram mostrados ainda alguns exemplos de aplicação de mineração de textos como: classificação de documentos, extração de informações e interface de linguagem natural (ILN) além da importância para o âmbito da WebSemântica. Os exemplos de classificação de textos foram utilizados para iluminar a diferença dos procedimentos de mineração de textos com ou sem o modelo ora proposto. Entendemos que um bom pré-processamento economiza espaço de armazenamento devido a uma seleção mais enxuta dos termos, o que vimos ser crítico nos modelos Espaço-Vetorial. Esta seleção reduzida também aumenta a 130 precisão dos índices em modelos de Redes Neurais, aumenta a interpretabilidade em modelos discriminantes e melhora a condição inicial de modelos baseados em transformação. O trabalho foi ainda complementado com o desenvolvimento e a implementação de uma instância do sistema de pré-processamento de textos. Como visto nos resultados, o sistema melhora os índices de acerto, parsimônia, tempo e generalização, além da maior interpretabilidade dos resultados. Os resultados nos mostram que essa abordagem consegue estar entre as melhores do mundo para a língua portuguesa pela avaliação HAREM efetuada em 2005 e promovida pela instituição Linguateca em Portugal. Durante esse período, foi feita uma vasta revisão da literatura recente sobre todas as etapas do processo de mineração de textos podendo ser aproveitado como guia para estudos futuros mais profundos. No entanto, a principal dificuldade encontrada nesta pesquisa foi a pouca quantidade de trabalhos sobre a etapa de pré-processamento para a língua portuguesa tanto no Brasil quanto no exterior. Esse trabalho contribui, então, em grande parte, para viabilização de trabalhos futuros em mineração de textos para a língua portuguesa utilizando o módulo de reconhecimento de entidades lingüísticas e armazenamento em XML. MIT Press References (Charniak, E., 1996) – Statistical Language Learning (Hirsh-Pasek, K. e Golinkoff, R., 1999) – Origins of Grammar (Ram, A. e Moorman, K., 1999) – Understanding Language Understanding (Crain, S. e Thornton, R., 1998) - Syntax 9 Referências bibliográficas AAS, K. e Eikvil, L. (1999). "Text http://citeseer.ist.psu.edu/aas99text.html categorisation: A survey.". ACM96A (1996). "ACM - Associantion for Computing Machinery, Inc.". In Memoriam: Gerard Salton.ACM Transactions on Information Systems.v.14.n.1.Janeiro. ACM96B (1996). "ACM - Associantion for Computing Machinery, Inc.". Proceedings of the 19th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval.18-22 Agosto.1996.Zurich, Switzeland AGGARWAL, C. C., Gates, S. C., e Yu, P. S. (1999). "On the merits of building categorization systems by supervised clustering". in: Proceedings of the Fifth ACM Conference on Knowledge Discovery and Data Mining (KDD'99), San Diego, USA, August, pp.352-356 AMORI, D. R. (1990). "A Natural Language Interface for Task-Oriented Activities". ACM 089791-372-8/90/0007/0553 ANANYAN, S. (2006). "http://www.megaputer.com/tech/wp/tm.php3". Acessado em 7 de maio de 2006 APOSTOLIC, A. e Giancarlo, R. (1986). "The Boyer-Moore-Galil string searching strategies revisited". SIAM J.Comput.15, (l), 98-105 APTÉ, C., Damerau, F., e Weiss, S. M. (1994). "Automated learning of decision rules for text categorization". ACM Transactions on Information Systems, 12(3), 233-251 ARANHA, C., Freitas, M. C., Dias, M. C., e Passos, E. (2004). "Um modelo de desambigüização de palavras e contextos". TIL 2004: Workshop de Tecnologia da Informação e da Linguagem Humana ARANHA, C., Passos, C., Freitas, M. C., e Quental, V. (2005). "A Statistical Approach for Identifying Collocations". The X Ibero-American Conference on Artificial Intelligence (IBERAMIA).Submetido. BAEZA-YATES, B. e Ribeiro Neto, B. (1999). Modern Information Retrieval. Addison Wesley BANERJEE, S. e Pedersen, T. (2003). "The design, implementation and use of the ngram statistics package". In A.Gelbukh (Ed.), CICLing-2003, Lecture Notes in Computer Science 2588, pp.370-381.Springer-Verlag 132 BARROS, F. A. e DeRoeck, A. (1994). "Resolving Anaphora in a Portable Natural Language Front End to Databases". In Proceedings of the 4th Conference on Applied Natural Language Processing (ANLP'94).Stuttgart, Germany.5p BATISTA, G. E. A. P. A. (2003). "Pré-processamento de dados em aprendizado de máquina supervisionado". Tese de Doutorado, ICMC-USP. BEKKERMAN, R., El-Yaniv, R., Tishby, N., e Winter, Y. (2003). "Distributional word clusters vs. words for text categorization". Journal of Machine Learning Research 3, 1183-1208 BELL, T. C., Moffat, A., e Nevill-Manning, C. G. (1993). "Data Compression in full-text retrieval systems". Journal of American Society for Information Science, 44(9):508-531 BIGGS, M. (2005). "Resurgent text-mining technology can greatly increase your firm's 'intelligence' factor". InfoWorld 11(2), 52 BOOKSTEIN, A., Klein, S. T., e Raita, T. (1992). "Model based concordance compression". In J.A Storer and M.Cohn, editors, Proc.IEEE Data Compression Conference, pages, 82-91, Snowbird, Utah, IEEE Computer Society Press, Los Alamitos, California BORGURAEV, B. e Pustejovsky, J. (1996). Corpus Processing for Lexical Acquisition. The MIT Press BOYER, R. S. e Moore, J. S. (1977). "A fast string searching algorithm". Carom.ACM 20, (10), 262-272 BREIMAN, L., Friedman, R., Olshen, R., e Stone, C. (1984). "Classication and Regression Trees". Wadsworth Monterrey, CA BRILL, E. (1993). "Automatic Grammar Induction and Parsing Free Text: A Transformation-Based Approach". In Proceedings of ACL 1993 BRILL, E. (1995). "Transformation-Based Error-Driven Learning and Natural Language Processing: A Case Study in Part of Speech Tagging". Computational Linguistics, December BRILL, E. e Resnik, P. (1994). "A Rule-Based Approach To Prepositional Phrase Attachment Disambiguation". In Proceedings of COLING'94, Kyoto, Japan BRIN, S. e Page, L. (1998). "Anatomy of a large -scale hypertextual Web search engine". WWW7 Conf.Proceedings CARABALLO, S. A. (2001). "Automatic Acquisition of a Hypernym-Labeled Noun Hierarchy from Text". Brown University Ph.D.Thesis CARDIE, C. e Pierce, D. (1998). "Error-driven pruning of treebank grammars for base noun-phrase identification". In: Proceedings of the 36th Annual 133 Meeting of the Association for Computational Linguistics, Ithaca-NY: 1998.p.218-224. CAVNAR, W. B. (1994). "Using An N-Gram-Based Document Representation With a Vector Processing Retrieval Model". In Proceedings Of TREC-3 (Third TextRetrieval Conference).Gaithersburg, Maryland, USA CEDERBERG, S. e Widdows, D. (2003). "Using LSA and Noun Coordination Information to Improve the Precision and Recall of Automatic Hyponymy Extraction". In: Proceedings of CoNLL-2003, pp.111-118 CHARNIAK, E. (1996). Statistical Language Learning. The MIT Press CHEN, H. (1994). "A Textual Database/Knowledge-Base Coupling Approach to Creating Computer-Supported Organizational Memory". MIS Department.University of Arizona.5 CHEN, H. (2001). "Knowledge management systems: a text mining perspective". University of Arizona (Knowledge Computing Corporation), Tucson, Arizona. CHOUEKA, Y., Fraenkel, A. S., e Klein, S. T. (1988). "Compression of concordance in full text retrieval systems". In Proc.ACM-SIGIR International Conference on Research and Development in Information Retrieval, pages 597-612, Grenoble, France COHEN, W. W. e Hirsh, H. (1998). "Joins that generalize: text classification using Whirl". Proceedings of KDD-98, 4th International Conference on Knowledge Discovery and Data Mining COHEN, W. W. e Singer, Y. (1996). "Context-sensitive learning methods for text categorization". Proceedings of the 19th annual international ACM SIGIR conference on Research and development in information retrieval.Zurich.Pages 307-315 COLE, R. (1990). "Tight bounds on the complexity of the Boyer-Moore pattern matching algorithm". Technical Report 512, Computer Science Dept, New York University COLUSSI, L., Galil, Z., e Giancarlo, R. (1990). "The exact complexity of string matching". 31st Symposium an Foundations of Computer Science I, 135143, IEEE COWIE, J. e Wilks, Y. (2000). Information Extraction. A Handbook of Natural Language Processing: Techniques and Applications for the Processing of Language as Text, Editors: Robert Dale, Hermann Moisl, and Harold Somers, Marcel Dekker Inc. CRAIN, S. e Thornton, R. (1998). Investigations in Universal Grammar: A Guide to Experiments on the Acquisition of Syntax and Semantics. The MIT Press 134 CROW, L. R. e Shadbolt, N. R. (2001). "Extracting Focused Knowledge from the Semantic Web". International Journal of Human- Computer Studies 54(1):pp.155-84 CUCERZAN, S. e Brill, E. (2004). "Spelling correction as an iterative process that exploits the collective knowledge of web users". Proceedings of EMNLP 2004 293-300 DI FELIPPO, A. e Dias-da-Silva, B. C. (2004). "Inclusão de informação semântica dos adjetivos na base da rede Wordnet para o Português do Brasil". In Proceedings of the IX Iberoamerican Conference on Artificial Inteligence (IBERAMIA).Workshop "Taller de Herramientas y Recursos Linguisticos para el Espanõl y el Português" (HyRL).Puebla/México, p.147-154 DIAS-DA-SILVA, B. C. (2003). "O TeP: construção de um thesaurus eletrônico para o português do Brasil". Boletim da Associção Brasileira de Lingüística (ABRALIN).Fortaleza: Imprensa Universitária, v.26, número especial, p.86 - 89 DIAS-DA-SILVA, B. C. e Moraes, H. R. (2003). "A construção de thesaurus eletrônico para o português do Brasil". Alfa , v.47, n.2, p.101 - 115 DIAS-DA-SILVA, B. C., Oliveira, M. F., e Moraes, H. R. (2002). "Groundwork for the development of the Brazilian Portuguese Wordnet". Advances in natural language processing.Berlin, Springer-Verlag, p.189-196 DINI, Lucas, Di Tomaso, V., e Segond, F. (1998). "Error-Driven Word sense disambiguation". In Proceedings of ACL-COLING-98, Montreal DÖRRE, J., Gerstl, P., e Seiffert, R. (1999). "Text mining: Finding nuggets in mountains os textual data". San Diego, CA, pp.398-401.ACM DUDA, R. O., Hart, P. E., e Stork, D. G. (2000). Pattern Classification. Hardcover DUMAIS, S., Platt, J., Heckerman, D., e Sahami, M. (1998). "Inductive learning algorithms and representations for text categorization". In Proceedings of the 7th International Conference on Information and Knowledge Management (ACM CIKM 98), pp.148-155 FELLBAUM, C. (1998). WordNet: An Electronic Lexical Database and Some of its Applications. MIT Press FERNEDA, E. e Smit, J. (2003). "Recuperação de Informação: Análise sobre a contribuição da ciência da computação para a ciência da informação". Tese de Doutorado - USP - Ciência da Informação FOX, E. A., Ingwersen, P., e Fidel, R. (1995). "Proceedings of the 18th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval". Seattle, Washington.USA.9-13, Julho.1995. 135 FRAKES, W. B. e Baeza-Yates, R. (1992). Information Retrieval: Data Structures and Algorithms. Prentice Hall FREGE, G. (1975). Sobre o sentido e a referência. In Lógica e Filosofia da Linguagem São Paulo: Cultrix FREITAS, M. C. (2004). "Elaboraçao automática de uma ontologia baseada em corpus da língua portuguesa". Proposta de tese de doutorado (qualificação) apresentada no curso de Pós-Graduação em Letras da PUC-Rio FREITAS, M. C., Aranha, C., e Quental, V. (2005). "Aprendendo Nomes Próprios". IV Congresso Internacional da ABRALIN (Associação Brasileira de Linguística) FUKUDA, F. (1999). "Sistemas inteligentes para textos da web". Tese de Mestrado.PUC-Rio GAWRYSIAK, P. (1999). "Using Data Mining methodology for text retrieval ". DIBS'99 conf.proceedings GE, N., Hale, J., e Charniak, E. (1998). "A statistical approach to anaphora resolution". In Proceedings of the Sixth Workshop on Very Large Corpora, pages 161-170, Montreal, Canada GEAN, C. C. e Kaestner, C. A. A. (2004). "Classificação Automática de Documentos usando Subespaços Aleatórios e Conjuntos de Classificadores". In: TIL 2004 - 2º WORKSHOP EM TECNOLOGIA DA INFORMAÇÃO E DA LINGUAGEM HUMANA, Salvador.Anais do SBC 2004 v.1, p.1-8. GIBSON, D., Kleinberg, J., e Raghavan, P. (1998). "Inferring Web communities from link topology". Proceedings of the 9th ACM Conference on Hypertext and Hypermedia GIRJU, R., Badulescu, A., e Moldovan, D. (2003). "Learning Semantic Constraints for the Automatic Discovery of Part-Whole Relations". In: Proceedings of HLT-2003 GOLDSCHMIDT, R. e Passos, E. (2005). Data Mining - Um Guia Prático. Campus GRISHMAN, R. (1997). "Information Extraction: Techniques and Challenges". in Information Extraction: A Multidisciplinary Approach to an Emerging Information Technology, J.G.Carbonell ,Ed.Frascati, Italy: Springer, pp.10-26 GRUBER, T. R. (1993). "A translation approach to portable ontologies". Knowledge Acquisition, 5(2):199-220, 1993 GRUNE, D. e Jacobs, C. J. H. (1991). Parsing Techniques: A Practical Guide. Ellis Horwood Ltd 136 GUARINO, N. (1998). "Formal ontology and information systems". In Nicola Guarino, editor, Formal Ontology and Information Systems, (FOIS'98).IOS Press, 1998 HEARST, M. A. (1992). "Automatic Acquisition of Hyponyms from Large Text Corpora". In: Proceedings of the Fourteenth International Conference on Computational Linguistics.Nantes, France HEARST, M. A. (1999). "Untangling Text Data Mining". Proceedings of the ACL'99: the 37th Annual Meeting of the Association for Computational Linguistics.College Park: University of Maryland HIRSH-PASEK, K. e Golinkoff, R. (1999). The Origins of Grammar: Evidence from Early Language Comprehension. The MIT Press HO, T. K. (1998). "The Random Subspace Method for Constructing Decision Forests". IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.20, Nº 8, pp.832-844 HU, X. R. e Atwell, E. (2003). "A survey of machine learning approaches to analysis of large corpora". School of Computing, University of Leeds, U.K.LS2 9JT INOKI, S. (1992). "Uma Gramática de um Fragmento do Português Baseado na Lógica Ilocutória". IME - Dissertação de Mestrado JOACHIMS, T. (1997). "A Probabilistic Analysis of the Rocchio Algorithm with TFIDF for Text Categorization". In Proceedings of International Conference on Machine Learning (ICML) JOACHIMS, T. (2002). "Learning to Classify Text Using Support Vector Machines". Kluwer Academic Publishers.32, 36, 39, 44, 131 JOACHIMS, T., Freitag, D., e Mitchell, T. (1997). "WebWatcher: A Tour Guide for the World Wide Web". In IJCAI (1), pp.770-777 KANTROWITZ, M., Mohit, B., e Mittal, V. O. (2000). "Stemming and its effects on TFIDF ranking". SIGIR 2000: 357-359 KAO, A. e Poteet, S. (2004). "Can Natural Language Processing Help Text Mining?". Report on KDD Conference 2004 Panel Discussion.SIGKDD Explorations.Volume 6, Issue 2 - Page 132 KARP, R. e Rabin, M. (1987). "Efficient randomized pattern-matching algorithms". IBM J.RES.DEVELOP.Vol 31 No 2 KIMBALL, R. (1996). The Data Warehouse Toolkit. John Wiley & Sons KNUTH, D. E., Morris, J. H., e Pratt, V. R. (1977). "Fast pattern matching in strings". SIAM J.Comput.6, (2), 323-350 137 KOELING, R. (2000). "Chunking CoNLL.Lisbon, Portugal with maximum entropy models". KOENIG, M. E. D. (2000). "Information Driven Management: The New, but Little Perceived, Business Zeitgeist". International Journal of Libraries and Information Services Vol 50, No 3, pages 137-221 KOHONEN, T., Kaski, S., Lagus, K., Salojarvi, J., Honkela, J., Paatero, V., e Saarela, A. (2000). "Self organization of a massive text document collection". IEEE Transactions on Neural Networks, Special Issue on Neural Networks for Data Mining and Knowledge Discovery, vol.11, pp.574-585 KRISTA, L. (2000). "Text Mining with the WEBSOM". Acta Polytechnica Scandinavica, Mathematics and Computing Series no.110, Espoo 2000, 54 pp.Published by the Finnish Academy of Technology KROEZE, H. J., Matthee, C. M., e Bothma, J. D. T. (2003). "Differentiating Dataand Text-Mining Terminology". Proceedings of SAICSIT 2003, Pages 93 -101 LAPPIN, S. e Leass, H. (1994). "An algorithm for pronominal anaphora resolution". Computational Linguistics, 20(4):535-561 LEBART, L., Salem, A., e Berry, L. (1998). Exploring textual data. Kluwer Academic Publishers, Dordrecht LENAT, D. (1995). "CYC: A large-scale investment in knowledge infrastructure". In: Communications of the ACM, 38(11):33-38 LEWIS, D. D. (1992). "An evaluation of phrasal and clustered representations on a text categorization task". In Proceedings of the 15th International ACM SIGIR Conference on Research and Development in Information Retrieval, pp.37-50 LI, H. e Yamanishi, K. (2002). "Text Classification Using ESC-based Stochastic Decision Lists". Proceedings of CIKM-99, 8th ACM International Conference on Information and Knowledge Management LI, Y. e Jain, A. (1998). "Classification of text documents". The Computer Journal, 41, 537-546 LUCAS, M. (2000). "Mining in textual mountains, an interview with Marti Hearst". Mappa Mundi Magazine, Trip-M, 005, 1-3. LUHN, H. P. (1958). "The automatic creation of literature abstracts". IBM Journal of Research and Development 2(2), 159-165. MACCALLUM, A. K. (1996). "Bow: A toolkit for statistical language modeling, text retrieval, classification and clustering". http://www.cs.cmu.edu/`mccallum/bow 138 MANNING, C. e Schutze, H. (1999). Foundations of Statistical Natural Language Processing. Cambridge, Massachusetts: The MIT Press. MARTINS, B. e Silva, M. J. (2004). "Spelling Correction for Search Engine Queries". EsTAL - España for Natural Language Processing, Alicante, Spain MARTINS, C. A. (2003). "Uma abordagem para pré-processamento de dados textuais em algoritmos de aprendizado". Tese de Doutorado, ICMC-USP São Carlos MATHIAK, B. e Eckstein, S. (2004). "Five Steps to Text Mining in Biomedical Literature". In Proceedings of the Second European Workshop on Data Mining and Text Mining for Bioinformatics, held in Conjunction with ECML/PKDD in Pisa, Italy MATSUBARA, E. T., Martins, C. A., e Monard, M. C. (2003). "PreTexT - uma ferramenta para pré-processamento de textos utilizando a abordagem bagof-words". Relatório Técnico 209, ICMC-USP MATURANA, H. e VARELA, F. J. (1980). Autopoiesis and cognition; the organization of the living. Boston: Reidel MICHAEL W.EYSENCK (1990). Psicologia Cognitiva: Um Manual Introdutório. Porto Alegre: Artes Médicas MICHIE, D., Spiegelhalter, D. J., e Taylor, C. C. (1994). Machine Learning, Neural and Statistical Classification. Ellis Horwood MOULINIER, I. e Ganascia, J.-G. (1996). "Applying an existing machine learning algorithm to text categorization". In S.Wermter, E.Riloff, and G.Scheler, editors, Connectionist, statistical, and symbolic approaches to learning for natural language processing, pages 343--354. MURADAS, A. (1995). "Interface em Linguagem Natural para Consulta à Bancos de Dados Relacionais". IME - Dissertação de Mestrado NASCIMENTO, M. R. (1993). Pesquisa e Desenvolvimento de uma Interface em Linguagem Natural. Instituto Militar de Engenharia. Dissertação de Mestrado NIRENBURG, S. e Raskin, V. (2004). Ontological Semantics. Cambridge, MA: MIT Press OLIVEIRA, M. F., Freitas, M. C., Garrão, M. O., Aranha, C., e Santos, C. N. (2004). "A extração de expressões multi-vocabulares: uma abordagem estatística". Revista PaLavra, no.12, páginas 172-192 OWEI, V. (2002). "An Intelligent Approach To Handling Imperfect Information In Concept-Based Natural Language Queries". ACM Transactions on Information Systems, Vol.20, No.3, Pages 291-328. 139 PANTEL, P. e Ravichandran, D. (2004). "Automatically Labeling Semantic Classes". In: Proceedings of NAACL-2004 PÉREZ, C. e Vieira, R. (2003). "Extração Semi-automática de Conhecimento a partir de Textos". ENIA - Encontro Nacional de Inteligência Artificial PETERSON, R. E. (1997). "Eight internet search engines compared". First Monday.http://www.firstmonday.dk/issues/issue2_2/peterson/ PHILLIPS, W. e Riloff, E. (2002). "Exploiting Strong Syntactic Heuristics and Co-training to learn semantic lexicons". In: Proceedings of EMNLP-2002, pp.125-132 PINKER, S. (2002). O Instinto da Linguagem: Como a Mente Cria a Linguagem. Martins Fontes, SP PYLE, D. (1999). Data Preparation for Data Mining. San Francisco, CA: Morgan Kaufmann. RABINER, L. (1989). "A tutorial on hidden Markov models and selected applications in speech recognition". Proc.IEEE, 77 (2), 257-286 RAM, A. e Moorman, K. (1999). Understanding Language Understanding: Computational Models of Reading. The MIT Press RAMSHAW, L. A. e Marcus, M. P. (1995). "Text Chunking using Transformation-Based Learning". In Proceedings of the ACL Third Workshop on Very Large Corpora, June 1995, pp.82-94.In: Proceedings of the 18th International Conference on Computational Linguistics, Saarbrücken, 2000 , p.857-863 RATNAPARKKHI, A. (1998). "Unsupervised Statistical Models for Prepositional Phrase Attachment". In Proceedings of the Seventeenth International Conference on Computational Linguistics, Aug.10-14, 1998.Montreal, Canada. REIS, M. (2005). "Descoberta de Conhecimento em Documentos XML". Tese de Doutorado, DEE PUC-Rio SAEED, J. L. (1997). Semantics. Oxford: Blackwell SALTON, G., Wong, A., e Yang, C. S. (1997). "A Vector Space Model for Automatic Indexing". in Readings in Information Retrieval, K.Sparck Jones and P.Willet, eds.,Morgan Kaufmann Publishers, Inc., San Francisco SALTON, G. (1983). Introduction to Moder Information Retrieval. McGraw-Hill SANTOS, D. (2001). "Introdução ao processamento de linguagem natural aqui através das aplicações". in Elisabete Ranchhod (ed.), Tratamento dasLínguas por Computador.Uma introdução à linguística computacional esuas aplicações, Lisboa: Caminho, pp.229-259. 140 SAUSSURE, F. (1982). Curso de Linguística Geral. São Paulo: Cultrix SCHAFFER, C. (1994). "A Conservation Law for Generalization Performance". 11th International Conference on Machine Learning, New Brunswick, New Jersey, pp.259-265.Morgan Kaufmann SEYMORE, K., McCallum, A., e Rosenfeld, R. (1999). "Learning Hidden Markov Model Structure for Information Extraction". In Proceedings if the AAAI-99 Workshop on ML for IE. SILVA, C., Pérez, C., Osório, F., Vieira, R., e Goulart, R. (2003). "Informações sintáticas na mineração de textos". TIL 2003: Workshop de Tecnologia da Informação e da Linguagem Humana SNOW, R., Jurafsky, D., e Andrew, Y. (2004). "Learning syntactic patterns for automatic hypernym discovery". Advances in Neural Information Processing Systems 17 SPARK-JONES, K. e Willet, P. (1997). Readings in Information Retrieval. Morgan Kaufmann SUBASIC, P. e Huettner, A. (2001). "Affect Analysis of Text Using Fuzzy Semantic Typing". IEEE Transactions on Fuzzy Systems, Special Issue SULLIVAN, D. (2000). The need for text mining in business intelligence. DM Review, Dec. 2000. http://www.dmreview.com/master.cfm TAN, A.-H. (1999). "Text mining: The state of the art and the challenges". In Proceddings, PAKDD'99 workshop on Knowledge Discovery from Advanced Databases, Beijing, pp.65-70 THOMAS, J. e Sycara, K. (1999). "Integrating Genetic Algorithms and Text Learning for Financial Prediction". Proceedings ofthe GECCO-2000 Workshop on Data Mining with Evolutionary Algorithms THURAISINGHAM, B. (1999). Data mining: technologies, techniques, tools, and trends. CRC Press, Boca Raton, Florida. TJONG, E. F. (2000). "Noun Phrase Recognition by System Combination". Appears in Proceedings of ANLP-NAACL 2000, Seattle, Washington, USA.Morgan Kaufman Publishers TJONG, E. F. (2002). "Memory-Based Shallow Parsing". Journal of Machine Learning Research 2 559-594. VAN RIJSBERGEN, C. J. (1979). "Information Retrieval, 2nd edition". Dept od Computer Science, University of Glasgow. VAN RIJSBERGEN, C. J. (1992). "Probabilistic retrieval revisited". The Computer Journal, 35(3):291-298 141 VITERBI, A. J. (1967). "Error bounds for convolutional codes and an asymptotically optimal decoding algorithm". IEEE Transactions on Information Processing, 13:260-269 WARTIK, S. (1992). "Boolean Operations". in [Frakes et al.1992], pp.264-292 WEISS, S. M. e Indurkhya, N. (1998). "Predictive Data Mining". California, USA: Morgan Kaufmann. WIDDOWS, D. (2003). "Unsupervised methods for developing taxonomies by combining syntactic and statistical information". In: Proceedings of HLT/NAACL 2003.pp.276-283 WIENER, N. (1948). "Cybernetics, or Control and Communication in the Animal and the Machine". Paris: Hermann and Co., Cambridge, MA: The Technology Press, and New York, NY: John Wiley and Sons WITTGENSTEIN, L. (1979). Investigações Filosóficas. Coleção Os Pensadores, São Paulo: Arril Cultural WOLPERT, D. H. (1992). "Stacked Generalization". Neural Networks 5, 241-259 WU, S., Tsai, T., e Hsu, W. (2003). "Text Categorization using Automatically Acquired Domain Ontology". In: Proceedings of the Sixth International Workshop on Information Retrieval with Asian Languages.pp.138-145 YANG, Y. e Liu, X. (1999). "A re-examination of text categorization methods". In Proceedings of ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR'99), pages 42--49, Berkley ZIPF, G. K. (1949). Human Behavior and the Principle of Least Effort. AddisonWesley 10 Anexo I: Principais distribuições de frequência dos significados Força do Significado Bimodal, com dois “manga”. 1. manga = fruta 2. manga = trecho da 60 Frequência significados fortes. Ex. 40 20 0 1 2 3 camisa Prova = teste Prova = competição Prova = evidência Prova = provar Prova = imune (à prova de) Frequência 1. 2. 3. 4. 5. 1 1. livro = texto 2. livro = verbo 8 2 3 4 5 6 7 Significados Força do Significado Frequência Ex. “livro”. 7 60 50 40 30 20 10 0 Com apenas um sentido forte. 6 Força do Significado porém com um sentido Ex. “prova”. 5 Significados Dois sentidos relevantes, mais forte que o outro. 4 100 80 60 40 20 0 1 2 3 4 5 6 Significados 7 8 8 11 Anexo II: Exemplo de Mineração de Textos por Perguntas Inicializando interface com banco de dados... 15:00:16,049 INFO [DbConnectionManager] Registrando driver JDBC. (com.microsoft.jdbc.sqlserver.SQLServerDriver) 15:00:16,059 INFO [DbConnectionManager] Iniciando Fila: connection 15:00:16,370 INFO [DbConnectionManager] Criando conexão para o pool de conexões. (connection) LexicoDB: 2734 Sistema pronto: Olá, o que deseja saber? Pergunta: Que locais existem na base? ABC Afeganistão África África do Sul Alagoas Alemanha AM Amazônia América Latina Arábia Saudita Araçatuba Argentina Ásia BA Bagdá Bahia Bauru BELO HORIZONTE BERLIM ... Venezuela WASHINGTON Zhuhai Pergunta: Quais pessoas foram citadas? Abelardo de Oliveira Filho Abram Szajman Ahmed Yassin Alan Greenspan Alberto Fernández Alexandre Vasarhelyi Allen Johnson Aloizio Mercadante ... Vantuil Abdala Vargas Vladimir Putin 144 Wagner Canhedo Wagner Victer Waldomiro Diniz Pergunta: quais empresas? Abrafix Acer Inc. ADM do Brasil Agência Brasil Agência Espacial Brasileira Agência Nacional de Energia Elétrica Agência Nacional de Telecomunicações Agência Nacional de Transportes Terrestres ... Varig Vasp Volkswagen Votorantim Votorantim Celulose Warner Music Yahoo Pergunta: tchau Adeus. Livros Grátis ( http://www.livrosgratis.com.br ) Milhares de Livros para Download: Baixar livros de Administração Baixar livros de Agronomia Baixar livros de Arquitetura Baixar livros de Artes Baixar livros de Astronomia Baixar livros de Biologia Geral Baixar livros de Ciência da Computação Baixar livros de Ciência da Informação Baixar livros de Ciência Política Baixar livros de Ciências da Saúde Baixar livros de Comunicação Baixar livros do Conselho Nacional de Educação - CNE Baixar livros de Defesa civil Baixar livros de Direito Baixar livros de Direitos humanos Baixar livros de Economia Baixar livros de Economia Doméstica Baixar livros de Educação Baixar livros de Educação - Trânsito Baixar livros de Educação Física Baixar livros de Engenharia Aeroespacial Baixar livros de Farmácia Baixar livros de Filosofia Baixar livros de Física Baixar livros de Geociências Baixar livros de Geografia Baixar livros de História Baixar livros de Línguas Baixar livros de Literatura Baixar livros de Literatura de Cordel Baixar livros de Literatura Infantil Baixar livros de Matemática Baixar livros de Medicina Baixar livros de Medicina Veterinária Baixar livros de Meio Ambiente Baixar livros de Meteorologia Baixar Monografias e TCC Baixar livros Multidisciplinar Baixar livros de Música Baixar livros de Psicologia Baixar livros de Química Baixar livros de Saúde Coletiva Baixar livros de Serviço Social Baixar livros de Sociologia Baixar livros de Teologia Baixar livros de Trabalho Baixar livros de Turismo