Recuperaç ˜ao de Informaç ˜oes e Processamento de

Transcrição

Recuperaç ˜ao de Informaç ˜oes e Processamento de
UNIVERSIDADE CATÓLICA DE PELOTAS
CENTRO POLITÉCNICO
PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA
Recuperação de Informações e
Processamento de Linguagem Natural
Um Levantamento
por
Eduardo Bauer Londero
Trabalho Individual I
TI-2008/2-003
Orientador: Prof. Dr. Antônio Carlos da Rocha Costa
Co-orientador: Prof. Dr. Stanley Loh
Pelotas, dezembro de 2008
SUMÁRIO
LISTA DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
LISTA DE ABREVIATURAS E SIGLAS . . . . . . . . . . . . . . . . . . . . .
6
RESUMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
RESUMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1
9
INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 A RECUPERAÇÃO DE INFORMAÇÕES
2.1
Estratégias de RI . . . . . . . . . . . . .
2.1.1
Tipologia de Modelos de RI . . . . . . .
2.1.2
Modelo de Espaço de Vetores de Termos
2.1.3
Modelos probabilı́sticos . . . . . . . . .
2.2
Utilitários . . . . . . . . . . . . . . . . .
2.3
Tarefas da Recuperação de Informações
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
13
14
16
16
18
3 O PROCESSAMENTO DA LINGUAGEM NATURAL
3.1
O Tratamento da Linguagem pelo Computador . . .
3.2
Comunicação . . . . . . . . . . . . . . . . . . . . . .
3.3
As Tarefas do Processamento da Linguagem Natural
3.4
Arquitetura de um sistema PLN . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
21
22
24
25
4 FERRAMENTAS PRONTAS . . . .
4.1
Lucene . . . . . . . . . . . . . . . .
4.1.1
Principais Pacotes do LUCENE . .
4.2
MALLET . . . . . . . . . . . . . .
4.2.1
Filtros de Importação do MALLET
4.2.2
Classificadores do MALLET . . .
4.2.3
Principais Pacotes do MALLET .
4.3
GATE . . . . . . . . . . . . . . . .
4.4
Lemur . . . . . . . . . . . . . . . .
4.5
Simmetrics . . . . . . . . . . . . .
4.6
Outros Recursos . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
29
30
30
31
31
31
31
32
33
34
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
6
CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
ANEXO A
43
GLOSSÁRIO . . . . . . . . . . . . . . . . . . . . . . . . .
LISTA DE FIGURAS
Figura 2.1
Modelos de IR segundo a matemática empregada e a dependência
entre termos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Acompanhamento Anual da Pesquisa no TREC até 2001 . . . . . . .
14
19
Figura 3.2
Texto com marcadores criados pelo reconhecedor de entidades do
GATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Arquitetura de um sistema PLN segundo (SILVA et al., 2007) . . . .
23
27
Figura 4.1
Figura 4.2
Análise sintática com o GATE . . . . . . . . . . . . . . . . . . . . .
Desempenho comparado das métricas do Simmetrics . . . . . . . . .
32
34
Figura 2.2
Figura 3.1
LISTA DE TABELAS
Tabela 4.1
Tabela 4.2
Tabela 4.3
Tabela 4.4
Tabela 4.5
Lista e localização de recursos integráveis em projetos de IR e NLP
Conceitos Básicos do Lucene . . . . . . . . . . . . . . . . . . . .
Pacotes e Classes Principais do LUCENE 2.4.0 e suas funções . . .
Pacotes Principais do MALLET e suas funções . . . . . . . . . . .
Mais recursos vinculados à PNL . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
29
30
36
37
38
LISTA DE ABREVIATURAS E SIGLAS
PLN
Processamento de Linguagem Natural
LC
Lingüı́stica Computacional
RI
Recuperação de Informações
ABNT
Associação Brasileira de Normas Técnicas
DoD
Departament of Defense
TREC
Text Retrieval Conference
NIST
National Institute of Standars and Technology
WebKDD Workshop in Knowledge Discovery and WEB Data Mining
WEKA
Waikato Environment for Knowledge Analysis
GATE
General Architecture for Text Engeneering
MALLET MAchine Learning for LanguagE Toolkit
POS
Part-Of-Speech
SVM
Support Vector Machine
AF
Autômato Finito
RESUMO
O presente trabalho examina duas áreas atuais e confluentes da Ciência da
Computação – Recuperação de Informações (RI) e Processamento de Linguagem Natural
(PNL) – seus conceitos e técnicas, e em seguida faz um levantamento das bibliotecas e
aplicativos públicos, maduros, atualizados e mais facilmente disponı́veis para utilização
em pesquisa. A recuperação de informações é área dedicada a facilitar a recuperação de
documentos e sua apresentação ordenada segundo critérios de relevância. A medida que o
volume de informações cresce, e os modelos atualmente empregados na sua recuperação
se mostram ineficazes, fica evidente a necessidade de propor e testar modelos de documentos mais complexos e formas de consultas mais elaboradas. Esses modelos de RI
mais complexos provavelmente farão uso de técnicas do Processamento Natural de Linguagem, que é a área da computação que se dedica a lidar com a lı́ngua natural falada
ou escrita. Por outro lado, aqueles tópicos que eram objeto de pesquisa algumas décadas
atrás, já se encontram implementados em bibliotecas públicas de programação. Para se
fazer um serviço de busca e recuperação com as técnicas tradicionais já existem componentes prontos para uso. Para levar a efeito a proposta de melhorar a Recuperação de
informações com Processamento da Linguagem Natural, acompanhando o estado da arte
atual, é necessário conhecer os conceitos e técnicas de ambas as áreas e dispor de bibliotecas equivalentes às utilizadas nas pesquisas ou pelo menos saber usar e adaptar as
bibliotecas de uso público geral. É o que procuro dar inicio através desse trabalho.1 .
Palavras-chave: Recuperação de Informações, Processamento de Linguagem Natural,
Lucene, GATE, Lemur, Simmetrics.
1
Esse trabalho foi composto com TeXnicCenter para LaTex e obedecendo a ortografia válida até janeiro
de 2009
TITLE: “INFORMATION RETRIEVAL AND NATURAL LANGUAGE PROCESSING - THE STATE OF THE ART ”
RESUMO
This work examines two areas from Computer Science – Information Retrieval
and Natural Language Processing – that begun to merge. It studies its models and techniques and also looks for public, proven, easily available and up-to-date programs, toolkits
or packages to use and integrate in research. The goal is to enhance IR by using NLP
ideas and techniques. Information Retrieval is dedicated to easy document recover and its
presentation ranked accordingly to relevance criteria. As document quantity in Internet
mounts, actual models became inefficient and new document models, more complex and
complete, should be proposed and tested as long as more sophisticated queries. These
new models should thrive with ideas and techniques borrowed from Natural Language
Processing, which is the computer area dedicated to deal with natural, written or spoken,
language. To reach the goal proposed here, to enhance IR through NLP techniques, its
desirable to know and use ”off-the-shell”programs and toolkits at least equivalent to those
currently used and mentioned in TREC encounters.
Palavras-chave: Information Retrieval, Natural Language Processing, Lucene, MALLET, Lemur, Simmetrics.
9
1
INTRODUÇÃO
Recuperação de Informações é a área dedicada a facilitar a procura de documentos ou passagens em grandes coleções de textos ou na Internet de acordo com os dados
de uma consulta e apresentá-los ordenados por critérios de relevância. Originalmente a
disciplina de Recuperação de Informações pertencia à Biblioteconomia e passou a interessar à Ciência da Computação quando as coleções de documentos em meio eletrônico
ganharam importância.
Em 1983, Gerald Salton, um dos pioneiros da área de Recuperação de Informações
(RI), previu que chegaria a época em que as pessoas seriam forçadas a utilizar a
informação mais facilmente disponı́vel e ignorar o restante dela. Essa época chegou.
Os sistemas corporativos limitados e carı́ssimos de então foram substituı́dos pelos gigantescos e gratuitos Google e Yahoo. Neles a informação trivial sobre determinado assunto
pode ser encontrada, mas é difı́cil determinar se o resultado da consulta feita é suficiente
ou relevante.
A medida que cresce a quantidade de páginas da internet, fica cada vez mais difı́cil
se encontrar informação de qualidade e os modelos de IR em uso se mostram inadequados
e precisam ser melhorados. Em 1983 as coleções para a busca de documentos e passagens
atingiam milhares de documentos. Em 2004 o Google tinha indexadas mais de 4 bilhões
de páginas (GROSSMAN; FRIEDER, 2004). Com o crescimento do tamanho do espaço
de busca, o desempenho precisa ser privilegiado, e as técnicas básicas da área, feitas para
computadores antigos, contraditoriamente, se consolidaram. Aquilo que funcionava em
computadores lentos de 1970, precisava ser mantido devido ao crescimento do número de
páginas a serem indexadas.
Em 1992 o Departamento de Defesa americano e o National Institute of Standards
and Technology promoveram a primeira conferência TREC - Text Retrieval Conference,
que se realiza desde então e continua sendo um dos mais importantes fóruns para acompanhar as tendências e o estágio alcançado pela pesquisa. Nos encontros TREC, várias
áreas originalmente privativas de Inteligência Artificial e Processamento Natural de Linguagem, tais como Sumarização Automática e Respondendo Perguntas1 passaram a ser
incluı́das na área de RI, porém com abordagens muito próprias, estatı́sticas e ligeiras,
adequadas ao tamanho dos córpora propostos.
Os sistemas de tradução automática, entendimento e geração de fala, respondendo
perguntas e sumarização se originaram na área da Inteligencia Artificial e do Processamento de Linguagem Natural. Exemplos pioneiros são o BASEBALL (GREEN et al.,
1963) e o BASEBALL-MOON, que funcionavam como interface em linguagem natural
1
Respondendo Perguntas será a versão adotada neste trabalho para se referir à Question Answering.
10
entre o usuário e um banco de dados.
A Recuperação de Informações tradicional lida principalmente com texto2 , nada
mais natural que buscar se envolver com Processamento Natural de Linguagem, na procura de mais caracterı́sticas que auxiliem a selecionar documentos relevantes. No entanto
o obstáculo é a complexidade e o desempenho dos algoritmos do PLN, além da própria
natureza ainda incompreendida da lı́ngua natural.
Com o esgotamento crescente dos modelos em uso na Recuperação de
Informações em virtude do crescimento da Internet e com a abordagem de problemas
de sumarização e respondendo perguntas, antes privativos de PLN e IA, o caminho para a
RI parece ser o de aos poucos enfrentar o problema de desempenho das técnicas de PLN
e buscar ao poucos conhecê-las e incorporá-las onde se provar vantajoso.
Além de estudar Recuperação de Informações e Processamento Natural de Linguagem esse trabalho busca levantar quais alternativas existem de utilização de programas e pacotes prontos, testados, atuais e facilmente integráveis existem para se produzir
pesquisa de qualidade o mais rapidamente possı́vel. Nessa área, examinaremos o Lucene,
um projeto de engine de recuperação que se firmou com padrão e serve à pesquisa como
parâmetro básico de comparação. Quanto aos pacotes de PLN, a disponibilidade é muito
maior. Examinaremos entre outros o GATE da Universidade Sheffield, o MALLET da
Universidade da Pensilvania e o Lemur da Universidade de Stanford.
2
Não é mais considerada uma área de ponta da pesquisa, porém o é a Recuperação de Informações de
Multimı́dia, dada a dificuldade ainda maior de processar e caracterizar esses itens. Essa área é listada como
objetivo nos Desafios da Computação para 2006-2016 (LUCENA; BAUZER, 2006).
11
2
A RECUPERAÇÃO DE INFORMAÇÕES
A Recuperação de Informações (RI) é a ciência dedicada a localizar documentos
relevantes, não apenas o mero casamento e identificação de padrões (GROSSMAN; FRIEDER, 2004). É uma ciência para encontrar documentos, extrair informações de dentro
de documentos, buscar criar metadados sobre eles, tanto em SGDBs, como em coleções,
como na WEB. RI é interdisciplinar e busca pontos de apoio em ciência da computação,
matemática, biblioteconomia, lingüı́stica, estatı́stica e psicologia cognitiva.
O maior campo de aplicação, em evidência hoje em dia, é a procura e ordenamento
de documentos na internet. Porém coleções de documentos, tais como correspondência
em email, manuais técnicos, legislação ou jurisprudência também podem se beneficiar
desse trabalho. Um problema relacionado ao da procura é o da filtragem e o roteamento
de documentos, no qual se busca direcionar correspondência (email ) que chega a uma
empresa para os setores adequados segundo perfis identificados.
Para medir a efetividade do IR dois conceitos básicos são utilizados: precisão e
recall. A precisão é um conceito intra-consulta formado pela taxa dos documentos significativos recuperados pela quantidade total de documentos recuperada em um consulta. O
recall é taxa formada pelo número de documentos relevantes recuperados dividido pela
quantidade total de documentos relevantes no córpora. Portanto, o recall só pode ser
medido em córpora fechados e conhecidos, precisando ser estimado quando se trata da
internet.
P recisao =
Recall =
2.1
RecuperadosRelevantes
Recuperados
RecuperadosRelevantes
Relevantes
(2.1)
(2.2)
Estratégias de RI
As estratégias de recuperação atribuem uma medida de similaridade entre uma
consulta e um documento. Elas se baseiam na noção de que a relevância de um documento
para uma dada consulta é proporcional à co-ocorrência de termos entre elas. Algumas
estratégias são balanceadas para aliviar os problemas causados pela ambigüidade tı́pica
da linguagem, que um conceito pode ser descrito por vários termos 1 ou um termo pode
identificar diversos conceitos conforme o contexto. Uma estratégia de recuperação é um
algoritmos que, dado uma consulta Q e um conjunto de documentos D1 , D2 , ..., Dn , cria
1
Exemplo de polissemia: ”Porto Alegre”equivale à ”capital gaúcha”.
12
um Coeficiente de Similaridade CS(Q, Di ) para cada documento 1 ≤ i ≤ n.
As estratégias identificadas por (GROSSMAN; FRIEDER, 2004) são:
• Modelo Espaço Vetorial: a consulta e cada documento são representados por um
vetor no espaço de termos. Uma medida de similaridade entre ambos vetores é
calculada.
• Recuperação Probabilı́stica: Uma probabilidade baseada na chance de que um
termo apareça em documentos relevantes é computada para cada documento da
coleção. Para termos comuns entre uma consulta e um documento, a similaridade é
a combinação das probabilidade de cada termo comum.
• Modelos de Linguagem: Um modelo é construı́do para cada documento e a probabilidade do documento gerar a consulta é computada.
• Redes de inferência: Uma rede Bayesiana é utilizada para inferir a relevância de um
documento frente a uma consulta. Essa relevância é dada pela força da evidência
contida em um documento que permita avaliar a sua similaridade com a consulta.
• Indexação Booleana: Um escore é atribuı́do de tal forma que uma consulta booleana
inicial resulte em um ordenamento. Isto é feito associando um peso a cada termo
da consulta, de modo que esse peso é utilizado para computar o coeficiente de
similaridade.
• Indexação por Semântica Latente: A ocorrência de termos em documentos é representada como uma matriz termos versus documentos. A matriz é reduzida através
de Decomposição Singular de Valores (DSV) para filtrar o ruı́do de cada documento de forma que dois deles que tenham a mesma semântica fiquem localizados
próximos em um espaço multidimensional.
• Rede Neural: Uma seqüência de neurônios, ou nós em uma rede, ao serem ativados
por uma determinada consulta ligam-na aos documentos que lhe correspondem. As
redes são uma modalidade supervisionada de treinamento e precisam ser treinadas
para responder a documentos relevantes ou não.
• Algoritmos Genéticos: Um consulta ótima para achar documentos relevantes pode
ser gerada por evolução. Uma consulta inicial é criada com pesos randômicos ou
estimados. Uma nova consulta é gerada e sobrevive ser estiver mais próxima dos
documentos relevantes ou é excluı́da se for menos capaz que a inicial.
• Recuperação por Conjunto Fuzzy: Um documento é mapeado para um conjunto
fuzzy, que é contém os elementos vinculados a um número que indica a força do relacionamento. Consultas booleanas são mapeadas para as operações de intersecção,
união e complemento
Para cada tipo de estratégia vários utilitários pode ser empregados para construir os elementos ou melhorar os resultados de cada abordagem. Esses utilitários são descritos na
seção 2.2.
13
2.1.1
Tipologia de Modelos de RI
Para a recuperação ser eficiente os documentos são transformados em algum tipo
de representação. A figura 2.1, encontrada em (KUROPKA, 2004) apud (WIKIPEDIA,
2008) faz a categorização dos modelos mais comuns de IR segundo duas dimensões:
a base matemática e as propriedades do modelo. Quanto à matemática, podem ser os
seguintes
• Modelos da teoria dos conjuntos representam documentos como conjuntos de palavras ou frases. As similaridades são derivadas de operações tı́picas de conjuntos:
Modelo padrão booleano
Modelo booleano estendido
Recuperação fuzzy
• Modelos algébricos representam documentos e consultas como vetores, matrizes ou
tuplas e a similaridade entre o vetor da consulta e do documento é representado por
um escalar.
Modelo de espaço vetorial
Modelo de espaço vetorial generalizado
Modelo de espaço vetorial por tópico
Modelo booleano estendido
Modelo de espaço vetorial por tópicos melhorado
Indexação semântica latente
• Modelos probabilı́sticos tratam o processo de IR como um inferência probabilı́stica
e as similaridades são computadas como probabilidades de um documentos ser relevante para um dada consulta. Probabilidade Bayesiana geralmente é empregada
nesses modelos.
Recuperação por independência binária
Modelo de relevância probabilı́stica (como o Okapi BM25)
Inferência incerta
Modelos de linguagem
Modelo de divergência-do-randômico
Alocação latente de Dirichilet
Quanto às propriedades dos modelos empregados:
• Modelos sem interdependências não tratam o relacionamento entre os termos. Esse
fato é geralmente representado no modelo de espaço vetorial pela presunção de
ortogonalidade entre os seus eixos e no modelo probabilı́stico pela (presunção
também) independência entre as variáveis de termos.
• Modelos com interdependência imanente permite uma representação dos relacionamentos entre termos. O grau de interdependência entre dois termos é definido pelo
modelo em si. Geralmente é direta ou indiretamente derivada da co-ocorrência dos
termos no conjunto dos documentos. Por exemplo, redução dimensional.
14
Figura 2.1: Modelos de IR segundo a matemática empregada e a dependência entre termos
• Modelos com interdependência transcendente consideram a relação entre os termos,
mas não determinam como esse relacionamento se estabelece. Eles dependem de
fontes externas – humana ou alguma heurı́stica complexa – para estabelecer o grau
e tipo de relacionamento entre os termos.
2.1.2
Modelo de Espaço de Vetores de Termos
O modelo de espaço de vetorial computa uma medida de similaridade definindo
um vetor que representa cada documento [Salton et al. 1975] apud(GROSSMAN; FRIEDER, 2004). O modelo se baseia na idéia de que, de algum modo, o significado do
documento é contido nas suas palavras nele empregadas. Ao se representar as palavras do
documento por um vetor, é possı́vel comparar documentos e consultas e determinar quão
parecidos eles são. Se uma consulta pode ser considerada como um documento, pode ser
possı́vel computar um coeficiente de similaridade SC entre consulta e os documentos
No modelo vetorial, os documentos e a consulta serão representados por vetores. O método tradicional é calcular o ângulo entre eles. Então, se dois vetores apontam
na mesma direção, ou aproximadamente na mesma direção, mesmo que não sejam de
mesmo tamanho, eles são semelhantes entre si. Para se calcular o ângulo entre dois vetores se recorre ao produto interno entre eles. Mas não necessariamente o produto interno,
(GROSSMAN; FRIEDER, 2004), qualquer função monotônica do ângulo é suficiente.
Geralmente é referido o CS - Coeficiente de Similaridade - ao invés do ângulo.
Além de simplesmente usarmos vetores com ı́ndices que registram a ocorrência
de termos, surgiu a idéia de permitir ao usuário dar peso à cada termo da consulta. Um
modo proposto com pesos foi fazê-lo proporcional à sua ocorrência em toda a coleção. A
idéia é de que um termo freqüente deve ter menor importância do que um termo raro.
Suponha que que existam n diferentes termos no conjunto de documentos, e que
a ocorrência de um termo na consulta ou em um documento seja assinalado por 0 ou 1
conforme a aparição de cada um termo em cada uma delas ou pelo seus pesos estimados.
Um vetor Consulta C, seria representado pelos ı́ndices c1 , c2 ... cn que podem valer 0
15
ou 1 em uma abordagem simples ou um peso wj 2 calculado de forma que veremos mais
adiante:
~ =< c0 , c1 , ....cn >
C
De forma semelhante, os vetores de 2 documentos D1 e D2 são definidos da seguinte maneira:
~ 1 =< d1,0 , d1,2 , ..., d1,n >
D
e
~ 1 =< d2,0 , d2,2 , ..., d2,n >
D
Em uma coleção que contenha 10.000 termos diferentes, os vetores que representam cada documento teriam 10.000 ı́ndices. Um documento com 100 termos teria 9.900
ı́ndices zerados e 100 deles definidos como a combinação da freqüência do termo no
documento com a sua freqüência inversa. Como explicamos antes, em uma abordagem
simples os termos dos vetores consulta e documentos seriam simplesmente 0 ou 1. Porém
pode ser representados por pesos : o j−esimo termo do vetor do documento Di será dado
pela multiplicação da freqüência do termo no documento pela freqüência inversa do termo
na coleção:
dij = tfij × idfj
(2.3)
Na equação 2.5 cada termo será representado pelos seu peso especı́fico dado pela
combinação tf −idf . Os pesos são calculados pelo Inverse Document Frequency ( IDF ).
Para tanto, considere as seguintes definições:
d = número total de documentos
t = número de termos distintos na coleção de documentos3
tfij = número de ocorrências do termo tj no documento Di , chamada de
freqüência do termo.
dfj = número de documentos nos quais ocorre o termo tj chamada de freqüência
do documento.
idfj = log( dfdj ) = número de ocorrências do termo tj no documento Di , chamada
de freqüência do termo.
Observe que com a freqüência interna de documento servindo de peso para os
termos, palavras muito freqüentes em todos os documentos se enfraquecem ou somem
naturalmente. Por exemplo, os artigos e conetivos geralmente são comuns a todos os
documentos e portanto o peso delas vale log(d/d) = 0.
Conforme (GROSSMAN; FRIEDER, 2004), muitas pesquisas com pesos de termos foram feitas para melhorar a combinação básica tf − idf . Das diversas variações
estudadas, a fórmula a seguir foi identificada como de boa performance.
(log tfij + 1.0) ∗ idfj
2
j=1 [(log tfij + 1.0) ∗ idfj ]
wqj = Pt
2
(2.4)
w: peso do j-ésimo termo
Esse número geralmente é considerado após a retirada das stop-words e após a aplicação de um stemmer, que reduz as palavras aos seus radicais, e eventualmente um processo para reconhecer locuções verbais
e nominais.
3
16
Utilizaremos para representar cada documento Di um vetor (di1 , di2 , ..., dit ) de
tamanho t que é o número de termos distintos da coleção de documentos. A consulta C
será representada por um vetor (cw1 , cw2 , ..., cwt ), onde cada ı́ndice indica o peso de cada
termo presente. Um coeficiente de similaridade (SC) entre uma consulta e um documento
é definida pelo produto escalar dos dois vetores:
~ ·D
~i =
SC(C, Di ) = C
t
X
cwj × dij
(2.5)
j=1
Segundo (GROSSMAN; FRIEDER, 2004), existem muitas maneiras de comparar
um vetor consulta e um vetor documento. Ele as apresenta e discute em seu livro. A mais
comum é a medida do cosseno entre os ângulos formados pelos vetores do documento e
da consulta:
Pt
SC(C, Di ) = qP
t
j=1
wqj dij
2
j=1 (dij )
Pt
2
j=1 (wqj )
(2.6)
Na equação da medida do cosseno, dado que aparece no seu radical o comprimento
do vetor consulta e o comprimento do vetor documento, ocorre uma normalização. Com
o produto interno simples, um documento muito longo pode se parecer mais relevante
pelo simples fato de ter mais termos em comum com a consulta. A medida do cosseno
proporciona portanto uma normalização por medir apenas a diferença de ângulos e não a
projeção relativa entre dois vetores.
O coeficiente de Dice é definido como:
2 tj=1 wqj dij
SC(C, Di ) = Pt
Pt
2
2
j=1 (dij ) +
j=1 (wqj )
P
(2.7)
O coeficiente de Jaccard é definido como :
Pt
SC(C, Di ) = Pt
j=1 (dij
2.1.3
wqj dij
Pt
2
j=1 wqj dij
j=1 (wqj ) −
j=1
)2
+
Pt
(2.8)
Modelos probabilı́sticos
Segundo (GROSSMAN; FRIEDER, 2004), um modelo probabilı́stico calcula o
coeficiente de similaridade entre uma consulta e um documento como a probabilidade
que o documento vá ser relevante à consulta, o que reduz o problema da relevância a um
problema estatı́stico.
Todo o trabalho na recuperação probabilı́stica deriva da idéia de estimar o peso
de um termo baseado em quão freqüente um documento aparece ou não em documentos
relevantes ou não. Nesse caso, usa-se probabilidade Bayesiana.
2.2
Utilitários
Muitos diferentes utilitários estão envolvidos diretamente com as estratégias de
recuperação ou com a melhoria de seus resultados. A maioria dos utilitários retira ou
acrescenta termos à consulta original, numa tentativa de refiná-la. Outros refinam o foco
da consulta, através de subdocumentos ou passagens, ao invés de documentos completos.
17
A chave é que cada uma desses utilitários são componentes ”plugáveis”, que trabalham
com qualquer estratégia de recuperação. Esse utilitários seriam:
• Relevance Feedback: Os primeiros N documentos encontrados pela consulta inicial
são considerados relevantes. Eles são considerados relevantes por escolha manual
ou por presunção arbitrária. Eles são ordenados por uma dentre várias técnicas.
Os t termos mais freqüentes dos documentos são acrescentados à consulta inicial
produzindo um mecanismo de reforço.
• Clustering: Documentos são agrupados de forma automática ou manual. A
comparação da consulta apenas é feita contra grupos que se deveriam conter
informação relevante. É um limite ao espaço de busca, e tenta-se evitar documentos
irrelevantes antes que a busca se inicie.
• Passage-base Retrieval: A premissa é que documentos mais relevantes tem passagens irrelevantes e que a porção relevante é um trecho concentrado. Assim, as
consultas são feitas contra trechos, sobrepostos ou não, e os resultados de cada
passagem são combinados em um coeficiente de similaridade. O tamanho de cada
passagem pode ser fixo ou variável, conforme a implementação. Ou então o documentos pode ser dividido em sentenças, parágrafos, ou qualquer divisão natural do
documento.
• Parsing (stemming, processamento de nomes): Simplesmente casar termos nem
sempre dá bons resultados. A identificação de termos é computacionalmente mais
fácil do que o uso de operadores de proximidade. Regras de análise ou listas são
utilizados para identificar locuções válidas como ”Universidade Católica de Pelotas”. Essas locuções são tratadas como termos isolados. Outras técnicas de análise
evitam prefixos e sufixos (stemming) para buscar identidades entre termos que compartilham a mesma raiz. Essa última técnica aparece em
• N-grams : a consulta é particionada em n-grams (com ou sem sobreposição de
n caracteres). Os n-grams são utilizados para casar consultas com documentos.
Procura-se obter um casamento ”fuzzy”que seja resistente a erros de digitação,
pronúncia ou de recuperação OCR. Outra vantagem do n-grams é a independência
de lı́ngua.
• Thesauri: Thesauri são gerados automaticamente do texto ou criados de forma manual. A chave é não apenas criar o Thesaurus, mas usá-lo para expandir a consulta
ou a representação do documento para melhorar a recuperação.
• Redes Semânticas: São hierarquias de conceitos na qual conceitos individuais são
conectados com outros. A força do relacionamento é atribuı́da à associação. Uma
rede assim é a Wordnet4 , entre outras. Foram feitas tentativas de se construir ontologias assim automaticamente. O desafio é utilizar essa rede para expandir a consulta
e os documentos e aumentar a taxa de recuperação de documentos relevantes.
• Regressão analı́tica: Técnicas estatı́sticas são empregadas para identificar
parâmetros que descrevem caracterı́sticas que identificam determinado documento.
4
http://wordnet.princeton.edu/
18
Essas caracterı́sticas podem ser empregadas em uma regressão para identificar o
parâmetro exato que refina uma medida de similaridade
2.3
Tarefas da Recuperação de Informações
A recuperação de informações é uma designação que passou a abranger diversas
tarefas, muitas delas originalmente vinculadas com Inteligência Artificial, como Respondendo Perguntas, que passaram a ser abordadas pelo enfoque da IA, a partir de técnicas
mais simples e adequadas à grandes corpos de textos.
Muitas tarefas passam a se incorporar à área conforme são propostas nos encontros
anuais da TREC e CLEF. É famosa a inclusão do Respondendo Perguntas, antes tarefa da
Inteligência Artificial e da Lingüı́stica Computacional no TREC de 1999. As abordagens
inovadoras para esse problema trazidas para o TREC, baseadas em caracterı́sticas superficiais e em analisadores leves (CHAKRABARTI, 2004) trouxeram novas perspectivas
para o problema de encontrar passagens com respostas para determinada pergunta.
Nas conferências TREC, todas atividades assessórias à RI, são abordadas e passam
também a figurar academicamente como ”tarefas”da área. Na listagem abaixo, descrevemos algumas dessas tarefas:
• Recuperação de documentos é a tarefa tradicional da Recuperação de Informação.
• Agrupamento de documentos é a sua classificação. Pode ser tanto um filtro de
SPAM, como roteamento de emails de queixas em uma organização pública (governo, serviços, energia ou telefonia) de grande porte.
• Recuperação de documentos falados.
• Recuperação de páginas WEB, imagens, vı́deos e músicas são também consideradas sub-áreas, embora a dificuldade de caracterizar peças de multimı́dia e medir sua
similaridade sejam quase um mundo à parte.
• Sumarização de Textos: os sistemas de sumarização buscam a criação automática
de um resumo coerente de um texto dado.
• Respondendo Perguntas: são os que buscam respostas precisas, ou a identificação
de trechos que as contenham, a perguntas formuladas em linguagem natural.
• Tarefas Assessórias:
Desempenho em arquiteturas multicore.
Tipos de ı́ndice e sua manipulação (compactação).
• Psicologia e cognição: como o usuário interage com a interface de consulta, quais
hipóteses formula.
• Consultas: como melhorar consultas, como integrar e levar em consideração dados
do contexto do usuário.
• Recuperação cruzada é a consulta em uma lı́ngua e a recuperação de documentos
relevantes em outra.
19
A produção de pesquisa na área de IR varia conforme a época e as tarefas propostas pela organização do encontro. Na imagem 3.2 expomos como evolui a produção
apresentada no TREC conforme as áreas ao longo da primeira década de existência do
evento.
Figura 2.2: Acompanhamento Anual da Pesquisa no TREC até 2001
20
3 O PROCESSAMENTO DA LINGUAGEM
NATURAL
De acordo Daniel Jurasky (JURAFSKY; MARTIN, 2000) Processamento da Linguagem Natural (PNL) é a área da computação que lida com a lı́ngua humana falada ou
escrita. Isso envolve tudo, desde a contagem da palavras em um texto, até hifenização,
correção ortográfica , transcrição ou sı́ntese de fala, até sistemas complexos para responder perguntas ou tradutores automáticos1 . A Lingüı́stica Computacional, segundo
(GRISHMAN, 1986), é estritamente o estudo de sistemas computacionais para o entendimento da linguagem humana, incluindo-se aı́ a testagem de gramáticas propostas por
lingüistas2 .
Ainda de acordo com Jurafsky campos historicamente separados - Processamento
da Linguagem Natural, Reconhecimento de Fala, Lingüı́stica Computacional, Psicolinguı́stica Computacional - começaram a se combinar. A disponibilização de ferramentas
comerciais e a necessidade de técnicas baseadas em linguagem para a Web proporcionam
um grande estı́mulo. A disponibilidade de grandes córpora facilita o estudo de modelos
estatı́sticos em todos os nı́veis, da fonética ao discurso.
O conhecimento para lidar com linguagem pode ser separado em seis categorias
diferentes:
• Fonética e Fonologia - O estudo de sons da lı́ngua falada.
• Morfologia - O estudo de partes significativas das palavras.
• Sintaxe - O estudo de relacionamentos estruturais entre as palavras.
• Semântica - O estudo do significado das palavras.
• Pragmática - O estudo de como a linguagem é utilizada para atingir objetivos dos
falantes.
• Discurso - O estudo de unidades lingüı́sticas maiores do que um enunciado3
1
A tradução automática é a primeira e eterna tarefa do PNL, e segundo Maria das Graças Volpe, a
PNL começou pelo final. A estratégia para essa área, segundo essa pesquisadora, deve ser a de resolver
problemas menores, capazes de no futuro compor uma solução total adequada.
2
Até hoje não foi possı́vel determinar qual gramática reconhece todas as formulações aceitas por falantes
naturais
3
Enunciado (utter) é a unidade de fala. Pode ser palavra, frase, oração, iniciado e terminado por silêncio
e caracterizado pela entonação que enfatiza o significado que se deseja transmitir
21
A fonética e a fonologia se dedica à lı́ngua falada, que veremos mais adiante, tem
por fundadas razões, motivos para ter um tratamento em separado. O mais óbvio deles, é
a separação entre palavras. A separação de palavras é uma tarefa do texto escrito no caso
do chinês e japonês (JURAFSKY; MARTIN, 2000).
A morfologia e a sintaxe geralmente podem ser estudadas dentro do âmbito do
texto escrito. A semântica e mais do que ela, a pragmática, dependem de fatores extratexto4 .
3.1
O Tratamento da Linguagem pelo Computador
As tecnologias para lidar com os problemas da PLN se baseiam em modelos formais ou representações de conhecimento de linguagem, fonética, morfologia, sintaxe,
semântica, pragmática e discurso. Um pequeno número de modelos, que inclui máquinas
de estado, sistemas de regras formais, lógica, e probabilidade, são utilizados para capturar
esse conhecimento.
Os automatas finitos (JURAFSKY; MARTIN, 2000) apareceram em 1950 a partir
do modelo de computação de Turing. A máquina de Turing podia ler uma fita finita de
sı́mbolos, podendo alterar seu estado ou o estado da fita. Os automatas finitos não podiam
interagir com a seqüência de sı́mbolos de entrada.
Inspirados no trabalho de Turing, McCulloch e Pitts construı́ram um modelo de
neurônio que podia ser descrito em termons de lógica proposicional. O neuron de McCulloch e Pitt era um dispositivo binário que recebia estimulo e podia chavear entre ligado e
desligado conforme determinados limiares. Em 1951 Kleene definiu o autômato finito e
a expressão regular para o neurônio de McCulloch/Pitts e provou sua equivalência.
Outra contribuição relevante do modelo de autômato finito foi o aparecimento da
interpretação de expressões regulares dentro de editores, com editor ed de Ken Thompson. O célebre programa ELIZA, que simulava um psicoterapeuta rogeriano 5 , funcionava
através de uma cascata de substituições de expressões regulares.
Problemas de morfologia são aqueles nos quais se busca entender como as palavras se subdividem ou se flexionam para indicar variações. Sabe-se que ”peixe”não tem
feminino, mas acrescentando-se ”s”temos o plural. O analisador morfológico deve ser
capaz de separar as sı́labas de uma palavra, além de identificar prefixos, sufixos, flexões e
composições.
Transdutores Finitos 6 (TF) são extensões de máquinas finitas que podem gerar sı́mbolos. TF trabalham com a morfologia de 2 nı́veis propostas por Koskenniemi
(1983). Uma morfologia de 2 nı́veis representa uma palavra como 2 fitas, uma léxica, a
concatenação dos morfemas que compõem a palavra e uma superficial que representa a
escrita final da palavra.
Um transdutor mapeia sı́mbolos de um conjunto para outro. Um transdutor finito
faz isso através de um autômato finito. Ao passo que um autômato finito AF) define uma
linguagem formal através de um conjunto de cadeias de caracteres, ao passo que o TF
define a relação entre dois conjuntos de cadeias de caracteres.
A comunicação humana é muito complexa e está longe de ser adequadamente
4
Para lidar com a pragmática o agente de ser provido de conhecimento acerca do mundo, de preferência
conhecimento adquirido em primeira mão através de sentidos.
5
Tipo de terapia criada por Karl Rogers, chamada de não-diretiva
6
Do inglês Finite State Transducers (FST), extensões de Finite State Automata (FSA).
22
descrita e muito menos emulada ou entendida em tempo computacionalmente aceitável.
Na seção seguinte examinaremos essa questão para formamos uma idéia dos nı́veis em
que cada tarefa do PNL atua.
O algoritmo de Potter é eficiente para fazer stemming, retirar sufixos e prefixos, e
é preferı́vel em aplicações de IR, onde a análise morfológica exata não é necessária.
3.2
Comunicação
Faremos um breve relato do processo de comunicação como encontrado em (JURAFSKY; MARTIN, 2000). Veremos que a comunicação (vocalizada ou escrita) é fruto
de um processo de cálculo que envolve além do conhecimento dos significados e dos
contextos, o conhecimento que se tem acerca do ouvinte. A audiência é determinante na
escolha dos termos e da mensagem para o emissor e o receptor inclui na decodificação da
mensagem o conhecimento acerca do emissor e o que ele julga que o emissor saiba acerca
do receptor. Um episódio tı́pico de comunicação entre o falante E e o receptor R, no qual
o falante faz um enunciado M usando palavras P, é composto de 7 processos:
• Intenção: O emissor decide que existe uma proposição P que deve ser dita ao receptor R.
• Geração: O falante planeja um modo de transformar a proposição P em uma expressão vocal, incluindo aı́ seu conhecimento acerca do ouvinte, que aumentará a
chance da proposição ser entendida.
• Sı́ntese: O falante produz a realização fı́sica das palavras escolhidas. Isso pode ser
feito em tinta, voz, imagens ou outro meio.
• Percepção: O ouvinte reconhece a produção M e a separa em palavras Wi . Na
década de 90, com o aumento do poder dos computadores de mesa e dos algoritmos
de classificação 7 essa tarefa se tornou viável.
• Análise: O ouvinte deduz que M tem diversos significados P1 , P2 ..Pn . A análise
tem três partes: sintática, semântica e pragmática.
Na análise sintática é construı́da uma árvore que auxilia na identificação correta
dos termos. Locuções podem ser identificadas, pois as árvores onde os termos
são considerados individualmente são descartadas no processo de construção. Por
exemplo em ”Estou vendo a pedra”, ”Estou vendo”será etiquetado com V (verbo),
”pedra”e ”eu”como ”S”(Substantivo).
Na análise semântica a mensagem agora é traduzida em forma de regras lógicas
vinculadas nas quais já aparecem identificados objetos e relacionamentos. Por
exemplo:
V er(P edra, Agora)
Na análise pragmática, o enunciado será considerada dentro do seu contexto.
”Estou vendo a pedra”significa coisas diferentes para um alpinista ou um joalheiro.
7
Algoritmos como o Support Vector Machine (SVM) combinados com a utilização de técnicas de núcleo
permitiram o reconhecimento de escrita e de voz
23
• Eliminação da Ambigüidade: O receptor R deduz que E pretendia transmitir P i
(onde no caso ideal Pi = P ). A maioria dos falantes não é ambı́gua, mas quase todas as expressões vocais têm várias interpretações. A comunicação funciona porque
o ouvinte conclui qual interpretação provavelmente o falante pretendia transmitir.
No nı́vel da eliminação de ambigüidade (bem como no da geração) foi mencionado
que a probabilidade estaria envolvida.
• Incorporação: Na incorporação o ouvinte decide acreditar ou não em Pi . Um agente
totalmente ingênuo pode acreditar em tudo que ouve, ao passo que um agente sofisticado trata o ato da fala como evidência de Pi e não como confirmação dela.
A descrição das etapas da comunicação humana lembra a pilha de protocolos
TCP/IP e a OSI, na qual cada nı́vel no emissor prepara ou calcula de alguma forma a
mensagem, para que a contra-parte de mesmo nı́vel no receptor possa recebê-la e processá-la adequadamente. Para enviar um pacote no mundo TCP/IP, precisamos envolver o
conteúdo transmitido em diversos envelopes de marcações para que ocorra a comunicação
de forma segura. No entanto se examinarmos o texto da figura 3.1 retirado de (CUNNINGHAM, 2000) com as marcações criadas pelo reconhecedor de entidades do GATE,
veremos que o texto marcado é maior que o original. Se acrescentarmos marcações
sintáticas, semânticas (extraı́das de ontologias) e pragmáticas (oriundas de informações
acerca do ambiente), concluiremos que a mensagem M enviada representa o resumo mais
econômico do enunciado P que se deseja transmitir.
Figura 3.1: Texto com marcadores criados pelo reconhecedor de entidades do GATE
Portanto as semelhanças entre a comunicação humana e dos computadores são
bem superficiais. Existem apenas aproximações para a gramática natural (RUSSELL;
24
NORVIG, 2003), aquela que reconheceria todas as produções aceitas como válidas pelos
falantes. Também a eliminação da ambigüidade é um desafio teórico que ainda não foi
resolvido, computacionalmente difı́cil, e para propósitos práticos imediatos, não deve ser
considerado.
Como exemplo da dificuldade em lidar com a ambigüidade, considere a seguinte
frase: ”Eu nunca disse que ela roubou o dinheiro”. A seguir listamos a mesma frase com
a ênfase vocal marcada em negrito:
Eu nunca disse que ela roubou o dinheiro. (Mas alguém pode ter dito)
Eu nunca disse que ela roubou o dinheiro. (Eu nunca disse isso mesmo)
Eu nunca disse que ela roubou o dinheiro. (Mas posso ter deixado subentendido)
Eu nunca disse que ela roubou o dinheiro. (Eu disse outra coisa)
Eu nunca disse que ela roubou o dinheiro. (Mas talvez outra pessoa tenha roubado)
Eu nunca disse que ela roubou o dinheiro. (Ela pode ter pego emprestado)
Eu nunca disse que ela roubou o dinheiro. (Outra coisa talvez)
O significado que se deseja transmitir se encontra marcado na voz. No texto escrito
o emissor usará outros recursos para desfazer ou diminuir a ambigüidade.
A complexidade total da comunicação humana não está ainda disponı́vel para ser
utilizada pela RI do mesmo modo que não está disponı́vel para tradução automática. É
preciso conhecer as tarefas mais simples primeiro, o que faremos na seção a seguir.
3.3
As Tarefas do Processamento da Linguagem Natural
A tradução automática é considerada por muitos autores (SILVA et al., 2007) o
marco inicial do PNL. Após uma apresentação inicial exitosa que traduziu em 1952 um
texto de 50 frases selecionadas sobre quı́mica do russo para o inglês, houve um perı́odo
entusiasmado de pesquisas. Os resultados seguintes entretanto não foram tão exitosos. A
seguir transcrevemos um exemplo encontrado em (SILVA et al., 2007) da má qualidade
dos primeiros sistemas automáticos de tradução.
(In, At, Into, To, For, On) (last, latter, new, latest, lowest, worst) (time, tense)
for analysis and sinthesis relay-contact electrical (circuit, diagram, scheme)
parallel-(series, successive, consecutive) consistent (connection, junction,
combination) (with,from) (success, luck) (to be utilize, to be take advantage
of) apparatus Boolean algebra.
O sistema simplesmente listava todas as possibilidade de tradução de cada palavra do russo para o inglês criando um bloco ilegı́vel de palavras. Não existia nenhum
analisador sintático e léxico capaz de selecionar as melhores alternativas de cada termo.
As tarefas do PNL se diversificaram a medida que a área amadureceu, encontrou
e procurou enfrentar problemas em todos os nı́veis da produção da linguagem. A lista a
seguir foi montada de acordo com (CUNNINGHAM, 2000) e (SILVA et al., 2007):
• Transcrição da fala.
• Classificação (etiquetar) automaticamente as unidades do texto segundo classes pertinentes à tarefa: morfossintáticas, sintáticas ou semânticas.
25
• Mapear representações da LN para representações sintáticas ou discursivas, e dessas
para LN.
• Sumarizar texto para facilitar a sua leitura.
• Tradução automática
• Geração de texto.
• Reconhecer entidades nomeadas.
• Interfaces naturais para bancos de dados (como BASEBALL) e sistemas
respondendo-perguntas.
• Geração de voz.
• Aprendizado de segunda lı́ngua e sistemas tutores
• Automação de tarefas administrativas (agenda, encontros, viagens).
• Programação automática(NLPQ e SAFE).
• Filtragem e roteamento de textos.
• Comparação, versionamento e ferramentas de autoria.
• Determinação de autoria.
• Ferramentas de acessibilidade.
Nos mais de 50 anos que nos separam das experiências pioneiras de tradução,
inúmeros programas e pacotes foram escritos por gerações de pesquisadores que resultaram em progressos razoáveis. Alguns desses programas, como o Lucene, alcançaram um
grau de maturidade para sua utilização tanto comercial e acadêmica. Outros, foram disponibilizados para a comunidade com código aberto, para poupar aos demais pesquisadores
(e ao autor) o trabalho de reescrever determinados programas consagrados ou ainda servir
como ambiente padrão de experimentação. Veremos alguns esses programas no capı́tulo
4.
3.4
Arquitetura de um sistema PLN
Segundo (SILVA et al., 2007), a arquitetura de um sistema computacional que
processa lı́ngua natural pode variar de acordo com a especificação da aplicação. Como é
freqüente na área do PLN, a maioria dos algoritmos utilizados são onerosos, e portanto a
regra é a customização caso a caso. Um sistema completo, como o da figura da página 27
exibe a maioria dos módulos que se pode empregar.
Descrevemos a seguir os componentes do sistema da figura 3.2.
• Analisador Léxico ou scanner é responsável pela separação e identificação dos
tokens da linguagem e a sua associação a atributos ou traços gramaticais ou
semânticos com base em consulta ao Léxico. Pode ser necessário uma etapa de
análise morfológica anterior ou concomitante
26
• Analisador Sintático ou parser é a etapa responsável pela construção de um estrutura sintática válida para a sentença de entrada, também chamada de estrutura
profunda. Em se tratando de lı́ngua natural adota-se uma gramática ”parcial”que
abranja as construções válidas para a área de interesse. Os formalismos mais simples são os mais eficientes.
• Analisador Semântico é responsável pela interpretação dos componentes da
sentença e dela própria. É necessário um conhecimento do domı́nio. A frase ”João
comeu a manga”terá as seguintes representações sintática e semântica:
s(sn(substpr(João)),sv(vtd(comer,passado,3ps),sn(det(o),subst(manga))
ação(comer,agente(anim(João)),objeto(comest(manga)))
A sentença ”João costurou a manga”terá estrutura profunda semelhante à acima,
trocando o terminal ”comeu”por ”costurou”. Formalismos de análise semântica
diferem dos de análise sintática. O exemplo acima foi construı́do com Lógica de
Predicados.
• Analisador do Discurso, considerando a modalidade multi-sentencial, busca o significado de uma sentença considerando os significados das sentenças próximas, anteriores ou posteriores. Para o texto ficar elegante, é comum o uso de anáforas, que
devem ser resolvidas. O analisador de discurso em geral estende a representação
semântica com anotações sobre as figuras de discurso.
• Analisador Pragmático é a interpretação da intenção do falante dentro do contexto da comunicação. ”Você quer mais prazo?”pode ser interpretado como uma
gentileza ou como uma cobrança.
27
Figura 3.2: Arquitetura de um sistema PLN segundo (SILVA et al., 2007)
28
4
FERRAMENTAS PRONTAS
A reutilização é importante tanto pela economia, como pela base comum que cria
de padrões e procedimentos entre profissionais e pesquisadores de qualquer área. A disponibilidade de ferramentas e bibliotecas prontas, preferencialmente escritas todas em uma
mesma linguagem ou ambiente, permite irmos mais longe, podemos projetar e construir
sistemas a partir da combinação de partes menores prontas.
Para a pesquisa, além da economia, o reaproveitamento facilita a comparabilidade, a discussão dos trabalhos cientı́ficos em bases comuns, além do acúmulo de uma
seqüência de produção cientı́fica de vários autores sobre uma mesma base de trabalhos.
Selecionamos ferramentas escritas em Java ou com interface em Java pela facilidade de integrá-las, pela possibilidade de utilizá-las tanto em aplicações WEB como em
aplicações standalone, e pela quantidade de bibliotecas – nativas ou não – já disponı́veis
nessa linguagem. Java tem uma coleção nativa de bibliotecas bem variada e sólida e ainda
está experimentando evolução, fruto da contribuição combinada da sua comunidade de
usuários.
Um exemplo da convergência da pesquisa para o mundo Java é o projeto WEKA –
Waikato Environment for Knowledge Analysis – da Universidade de Waikato, que iniciou
sendo escrito em C e em TCL/TK. A partir de 1993 passou a usar Java e hoje o WEKA é
a base de vários de outros projetos, colaboradores escrevem extensões para ele e serve de
base material para pesquisa em centenas de trabalhos.
Examinaremos um motor de recuperação de informações chamado Lucene e quatro frameworks de PNL: Gate, MALLET, Lemur e Simmetrics. Reunindo-os, dispomos de uma razoável plataforma de trabalho para conhecer estudar e testar estratégias de
combinação de PNL e RI.
Essas quatro biblioteca não esgotam o mundo das bibliotecas públicas para PNL,
muitas mais existem e algumas dessas outras estão listadas no anexo A. Parafraseando
Gerald Salton, somos obrigados a gastar o tempo que dispomos com o mais promissor e
facilmente disponı́vel e ignorar o resto.
O Lucene é uma biblioteca especializada na criação de ı́ndices de documentos e
indexação e casamento de consultas. Ele precisa ser associado a outros programas para
chegarmos a ter um programa de busca completo como o Yahoo ou o Google.
o Simmetrics é uma biblioteca especializada em métricas para palavras. Entre as
principais disponı́veis, de interesse para PLN, destacamos a distância de Lewenshtein e
o coeficiente de Dice. Interessante observar que a maioria dos membros dessa biblioteca
é direcionada para aplicações em biologia e que a análise de seqüências de DNA - que
é referido como o livro da vida - vem buscar apoio exatamente na mesma fonte que a
29
Lingüı́stica Computacional.
Já o Lemur é referido como Lemur Toolkit ou Toolkit nos papers dos pesquisadores da Universidade dede Massachussetts é distribuı́do juntamente com o motor de buscas
Indri.
Listamos a seguir os sites dos produtos e ( frameworks) mencionados neste trabalho, tal como disponı́veis em 2008.
Tabela 4.1: Lista e localização de recursos integráveis em projetos de IR e NLP
Nome
URL
Descrição
WEKA
http://www.cs.waikato.
WEKA é um produto
ac.nz/ml/weka/
voltado para aprendizado de máquina
GATE
http://gate.ac.uk/
GATE é um produto
voltado para engenharia
de texto
Lucene
http://lucene.apache.
Lucene é um indexador
org/
de documentos e consultas
LingPipe
http://www.cs.waikato.
LingPipe é uma biac.nz/ml/weka/
blioteca para processamento de linguagem
natural
Simmetrics http://www.dcs.shef.ac. Simmetrics é uma bibliuk/˜sam/simmetrics.html oteca aberta de métricas
e medidas de similaridade
Lemur
http://www.
Lemur é uma biblioteca
lemurproject.org/
de PNL da Universitutorials/
dade Carnegie Mellon
Esses programas foram escritos para a lı́ngua inglesa. Possivelmente será necessário criar ou adaptar módulos para lidar com a lı́ngua portuguesa, se não existirem.
Porém depois de vencida essa fase, estará disponı́vel para nosso idioma a mesma plataforma de trabalho.
4.1
Lucene
Lucene é o núcleo de um engine de busca textual. No Lucene não está incluı́da
a interface nem o crawler. Foi criado em 2000 por Douglas Cutting (GOSPODNETIC;
HATCHER, 2005), doado para a Fundação Apache e disponibilizado sob sua licença. Sua
aceitação é grande e tem portes para Python, C++, C##, Ruby, Perl, Delphi e PHP. Sua
aceitação também ocorre na comunidade cientı́fica. Chakrabarti, em seu artigo de 2004
para a WebKDD (CHAKRABARTI, 2004) o escolheu como máquina de busca padrão
para comparações.
Partindo da idéia de um documento contém campos de texto, e sendo independente de tipo de arquivo, Lucene é capaz de indexar arquivos em diversos formatos: PDF,
30
HTML e Microsoft Word. É um biblioteca de indexação e busca e não contém robôs de
busca (crawler) nem parser de HTML.
Para completar o Lucene, que afinal pode ser visto como um banco de dados dedicado a buscas textuais, existem dois outros projetos na Fundação Apache: o Nutch que
acrescenta funções de busca e parsing de HTML e o Solr que é um servidor WEB de
busca completo baseado no Lucene.
Os principais conceitos para começar a entender o Lucene são:
Tabela 4.2: Conceitos Básicos do Lucene
Explicação
É a classe que prepara o texto para indexação. Inglês e
lı́nguas latinas podem usar a StandardAnalyzer
Payloads
Cadeias de bytes carregadas com um ou mais posições de
termos
Snowball Stemmer Coleção de stemmers escritos por terceiros
Document
Documento é um registro no ı́ndice. Um documento tem
uma lista de campos, cada campo com um nome e um valor
textual.
Term
Termo é a unidade de indexação, que em lı́nguas ocidentais
corresponde a uma palavra.
TermEnum
TermEnum é utilizado para enumerar todos os termos em
um ı́ndice para um dado campo, a despeito de quais documentos em que ocorra o termo. Algumas consultas são
implementadas por enumeração de termos que seguem um
padrão, ou através de operações OR a partir da enumeração.
TermDocs
Ao contrário de TermEnum, TermDocs são utilizados para
identificar quais documentos contém um dado Termo.
TermDocs também dá a freqüência do termo no documento.
TermFreqVector
Um vetor de Freqüência de Termos é uma estrutura de dados
contendo termos e freqüência de determinado documento,
informação que pode ser recuperada através do objeto IndexReader apenas quando Vetores de Termos são armazenados durante a indexação.
Conceito
Analyser
4.1.1
Principais Pacotes do LUCENE
Os principais elementos da API do Lucene são expostos na tabela 4.3 da página
36.
Os pacotes listados na tabela são da versão 2.4 do Lucene. Observa-se a integração
da ferramenta de indexação Lucene com produtos como WordNet e Wikipedia.
4.2
MALLET
MALLET4 é uma biblioteca em Java para Recuperação de Informações criada na
Universidade da Pennsilvania por Andrew McCallun além de diversos colaboradores. A
4
Machine Learning for Language Toolkit
31
lista de patrocinadores é igualmente extensa.
4.2.1
Filtros de Importação do MALLET
Para o MALLET os dados são uma lista de ”instâncias”. Uma instância pode ter
um nome e uma classe (se o problema for de classificação). Se o problema for identificar a
lı́ngua de uma página WEB, a instância pode consistir em um vetor de palavras contadas,
o nome seria a URL e a classe a lı́ngua já identificada, ou por identificar.
4.2.2
Classificadores do MALLET
Um classificador é um algoritmo que pode fazer disitinções entre classes fixas tais
como ”spam”ou ”não-spam”baseando-se em exemplares já classificados. MALLET traz
diversos classificadores entre os quais Naı̈ve-Bayes, Máxima Entropia (C-45) e Árvores
de Decisão. Também traz pacotes para avaliar os modelos gerados, fazendo relatórios
através matriz de confusão e testes de cross-validation. Todos os algoritmos tem exemplos para auxiliar sua compreensão.
4.2.3
Principais Pacotes do MALLET
Os principais pacotes disponı́veis no MALLET são expostos na tabela 4.4 da
página 37.
4.3
GATE
GATE é acrônimo de General Architecture for Text Engeneering foi criado por
Hammish Cunningham e seus colegas na Universidade de Sheffield tendo em vista, no
campo do PNL, o mesmo problema encontrado no campo da RI: a falta de um ambiente
integrado e pronto para a utilização, com alto grau de automação, que incorpore algoritmos já aceitos e que não precisem ser baixados e portados, recompilados e depurados a
cada experimento e que permita a condução de experiências repetitivas e documentadas
de novos módulos6 .
• Análise Morfológica
• Reconhecimento de Entidade Nomeada
• Extração de Informação
• Etiquetamento
• Co-referência (resolução de anáforas)
• Análise de Texto
Na figura 3.1, encontrada em 3.1, observamos uma árvore de análise sintática
elaborada pelo GATE.
6
Nesse aspecto, o autor se inspirou em MatLab e Mathematica para tentar criar seu próprio ambiente de
experimentação de PNL
32
Figura 4.1: Análise sintática com o GATE
4.4
Lemur
LEMUR é uma biblioteca e associada a um motor de recuperação chamado INDRI. As principais caracterı́sticas de LEMUR seriam:
• Caracterı́sticas Gerais
Linguagens de consulta usando InQuery e Indri,
Recuperação XML e estruturada,
Utilizada em várias coleções de testes: TREC CDs 1 a 5, wt10g, RCV1, gov1
e gov2,
Indexação de páginas WEB,
Interface para Windows, Linux e WEB,
Recuperação de Informação Distribuı́da e agrupamento de documentos,
Código escrito em C++, 6 anos de uso por uma comunidade de usuários e
pesquisadores
Interface em Java e C,
Recuperação de Informação Distribuı́da e agrupamento de documentos.
• Indexação
Diversos métodos de indexação conforme o tamanho da coleção,
Suporte nativo para inglês, árabe e chinês,
Porter e Krovetz stemmers,
Indexação incremental,
33
Suporte para texto do TREC, WEB, HTML, XML, PDF, MBox, MS Word e
MS PowerPoint,
Indice inline e offset para anotações de texto (POS e Entidades Nomeadas),
Indexa atributos de documentos.
• Recuperação:
Suporte para a maioria dos modelos tais como Espaço Vetorial, KLDivergência, Indri, Tf-Idf, Okapi e InQuery,
Realimentação de relevância e Pseudo-Realimentação de relevância7 ,
Expansão de wildcards (com Indri),
Recuperação cruzada de linguagem,
Expansão de wildcards (com Indri),
Amaciamento através de Dirichilet apriori e Cadeias de Markov,
Suporta apriori arbitrário de documentos (Page Rank, URL depth, usw)
4.5
Simmetrics
Simmetrics é uma biblioteca Java criada na Universidade inglesa de Sheffield especializada em métricas. As métricas, embora isoladamente não formem um aplicativo
completo são peças básicas utilizadas em outros projetos. A distância de Lewenshtein
encontra utilização em um modo sofisticado de correção de erro, tanto na lı́ngua falada
como na escrita. Na Simmetrics existem métricas de RI, como o Coeficiente de Dice. E
principalmente várias métricas de distância de edição entre strings para uso na Biologia,
em genética.
1. Distância de Hamming: é o número de bits de diferença entre duas seqüências de
bits.
2. Distância de Lewenshtein: é a distância de edição entre duas seqüências de caracteres, contando da seguinte forma: copia de uma string para outra (custo 0), apagar
um caractere na string 1 (custo 1), inserir um caractere na string 2 (custo 1) e substituir um caractere por outro (custo 1). O algoritmo utiliza programação dinâmica.
3. Distância de Needleman-Wunch: também conhecida como Sellers, é uma extensão
de Lewenshtein na qual cada inserção extra (gap) custa um valor arbitrário.
4. Distância de Smith-Waterman: é outra extensão da de Lewenhstein, onde existem
duas funções ajustáveis, uma para a cópia (um custo variado por tipo de cópia) e
um custo por operação de ”gap”(inserção ou deleção).
5. Distância de Gotoh: uma extensão da distância de Sith-Waterman, que permite
custos de ”gap”baseados no comprimento da seqüência l. Utilizado em biologia,
para alinhamento de seqüências de DNA
7
Para Relevance and pseudo-relevance feedback
34
6. Distância de Bloco ou L1: distância a se percorrer no problema dos blocos da
cidade, no qual não se pode percorrer diagonais.
7. Distância de Monge e Elkan: Geralmente confundida coma Smith-Waterman, é
uma distância de Gotoh estendida, que leva em conta a similaridade semântica de
campos e sub-campos em consideração. Cada sub-campo é comparada com o subcampo mais similar utilizando a distância de Gotoh ao passo que entre campos são
comparados com algoritmo próprio.
Além das listadas, Simmetrics coleciona numerosas outras métricas, geralmente
empregadas em análise de seqüências de DNA em biologia. A ênfase nessas métricas são
variações na maneira de pesar as distâncias entre os elementos da cadeia e de valorar as
inserções no meio da cadeia, porém mantendo a mesma valoração para seus terminais.
Simmetrics também tem um levantamento do desempenho das métricas colecionadas, ilustrado na figura 4.2. Note que a ordenada é logarı́tmica, e portanto, todas as
métricas são consumidoras de recursos, a curvatura suave da figura pode ser enganadora.
Infelizmente, não dispomos de recursos no momento para avaliar mais exatamente
o significado do gráfico da figura 4.2 em termos da complexidade computacional, nem a
documentação da biblioteca fornece essa medida.
Figura 4.2: Desempenho comparado das métricas do Simmetrics
4.6
Outros Recursos
Além dos recursos mencionados no capı́tulo 4, muitas outras ferramentas, recursos e bibliotecas prontas estão disponı́veis para exame e eventual utilização. Precisamos
35
examinar no estudo as bibliotecas mais promissoras e disponı́veis, mas não se descarta
que entre as demais não possa existir contribuições úteis e que no contexto certo não se
revelem mais úteis do que as da seção 4.
36
Tabela 4.3: Pacotes e Classes Principais do LUCENE 2.4.0 e suas funções
Nome
Descrição das Classes
org.apache.lucene.analysis
O pacote principal do Lucene, possui filtros,
stemmers, separadores de palavras, separadores de letras, uniformizadores (retirar acento,
maiúsculas ou minúsculas).
org.apache.lucene.analysis.Analyzer Essa classe é um analisador 1 cria um TokenStreamer, o qual analisa texto.
org.apache.lucene.analysis.Tokenizer Um Tokenizer é um TokenStream cuja entrada
é um Reader2 .
org.apache.lucene.analysis.br
Pacote com stemmer brasileiro baseado no
stemmer alemão.
org.apache.gdata.data
Este pacote contém a representação interna dos
entradas dos GData.
org.apache.lucene.index
Código para manter e acessar ı́ndices.
org.apache.lucene.queryParser
Um analisador de consultas implementado com
JavaCC3
org.apache.lucene.search
Código para fazer procura em ı́ndices. Em destaque para a classe ScoreDocComparator, responsável por comparar dois objetos ScoreDoc
para ordenamento.
org.apache.lucene.store
Pacote de I/O binário para todos os dados dos
ı́ndices.
org.apache.lucene.wordnet
Este pacote utiliza sinônimos definidos no
WordNet para criar e aramazenar um ı́ndice no
Lucene, que será utilizado em expansão de consultas.
org.apache.lucene.wikipedia.analysis Este pacote contém apenas uma classe StandardTokenyzer que é compatı́vel com a sintaxe
da Wikipédia.
org.apache.regexp
Esta classe existe para permitir acesso ao útil
porém protegido pacote Regexp do Jakarta.
org.tartarus.snowball
Pacote ligado a utilização de stemmers em
várias linguagens, aparentemente é uma
implementação mais moderna e prática dos
stemmers separados por lı́ngua
com.sleepycat.db
Acesso ao banco de dados, necessário após uma
mudança na API desse mesmo banco.
lucli
Interpretador de linha de comando do Lucene
37
Tabela 4.4: Pacotes Principais do MALLET e suas funções
Nome
Descrição das Classes
cc.mallet.classify
AdaBoost, C4.5, Bagging, Balanced Winnow, Decision
tree, Naı̈ve Bayes, Winnow,
cc.mallet.classify.evaluate Matriz de Confusão, Cobertura de Acurácia e Gráficos
cc.mallet.cluster
Agrupador Guloso, Kmeans, KBest Cluster, HillClimbing
Cluster e Guloso por Densidade.
cc.mallet.fst
Transdutores, incluindo Campo Randômico Condicional5 .
cc.mallet.fst.confidence
Interface para Transdutores Corretores que corrigem segmentos gerados por transdutores.
cc.mallet.grmm.inference Contém interfaces implementadas por todos inferidores,
que são algoritmos para computar (ou estimar) distribuições
marginais sobre nós de um modelo representado como um
grafo.
cc.mallet.grmm.learning
Contém classes para fazer transformações globais em
gráficos depois de gerados
cc.mallet.optimize
Contem classes que buscam o máximo de uma função.
Exemplo: LineOptimizer, ByGradient, ByGISUpdate, ByBatchGradient.
cc.mallet.pipe
Contém classes para transformar dados arbitrários em
instâncias.
cc.mallet.topics
Esse pacote contém um grupo de algoritmos para
otimização de modelos: Latent Dirichilet Allocation, Four
Level Pachinko Allocation, entre outros.
cc.mallet.type
Esse pacote contem os tipos fundamentais de MALLET, incluindo Vetores de Caracterı́ticas, Instancia, Etiqueta, entre
outros.
38
Tabela 4.5: Mais recursos vinculados à PNL
URL
Observação
http://opennlp.
openNLP é um sı́tio que
sourceforge.net/
procura acompanhar as
opções em bibliotecas
de NLP
Wordnet
http://www.cs.waikato.
WordNet é dicionário e
ac.nz/ml/weka/
ontologia genérica
AGFL
http://www.agfl.cs.ru.
Grammar Work Lab
nl/index.html
para gramáticas AGFL
da Universidade Rabdoud de Nijmegen
WordFreakL
http://wordfreak.
Biblioteca
para
sourceforge.net/
anotações automáticas
ou humanas que facilita
a correção humana de
anotações automáticas
WordNet::Similarity
http://wn-similarity.
Módulos Perl que imsourceforge.net/
plementam várias medidas semânticas de similaridade baseadas no
WordNet
Livro sobre IR
http://www-csli.
Site do livro on-line do
stanford.edu/˜hinrich/
Manning e Prabhakar
information-retrieval-book.
sobre IR com estudo dihtml/
rigido
Stanford
http://www-nlp.
Tudo sobre NLP esstanford.edu/links/
tatı́stico, inclusive o restatnlp.html
positório de utilitários
IR Wiki
http://ir.dcs.gla.ac.
Infomação geral e
uk/wiki/FrontPage
acompanhamento dos
TREC
Natural Language Toolkit http://nltk.org/index.
Softwares, conjuntos de
php/Main_Page
dados e tutoriais
Nome
openNLP
39
5
TRABALHOS FUTUROS
O trabalho futuro, seguimento natural desse estudo é montar um laboratório com o
Lucene, Gate, MALLET e procurar integrar o Lemur no mesmo projeto. Córpora devem
ser buscados nos mesmos sites em lı́ngua inglesa ou nos congêneres nacionais para se
poder criar trabalhos comparáveis e referenciáveis.
Pacotes nacionais para PLN podem ser buscados nos grupos da UFSCAR e USP e
utilizados, caso sejam integráveis em um projeto baseado em Java. A UFMG também foi
identificada como referência em Recuperação de Informações, é uma ótima oportunidade
de trocar informações com pesquisadores brasileiros.
As seções sobre IR e PLN devem ser aprofundadas para incluir mais técnicas e
referências em lı́ngua portuguesa. O objetivo é criar um projeto que permita integrar um
ou mais desses pacotes e trabalhar sobre córpora em lı́ngua portuguesa, e que permita
buscar a melhoria da recuperação padrão do Lucene com a incorporação de filtros PLN
ao esquema de avaliação de relevância dos documentos indexados.
40
6
CONCLUSÃO
Foram examinadas brevemente a Recuperação de Informações e o Processamento
de Linguagem Natural, inclusive do ponto de vista da tipologia dos modelos de RI atualmente empregados.
Em uma pesquisa futura procuraremos novas maneiras de tratar o problema de selecionar documentos relevantes para uma dada consulta a partir do refinamento do modelo
de documento ou então da técnica de cálculo da relevância de cada termo em um documento ou consulta utilizando caracterı́sticas obtidas com Processamento da Linguagem
Natural que sejam mais computacionalmente econômicos.
O Lucene é a plataforma adequada para receber módulos que modifiquem suas
caracterı́sticas de filtragem e indexação pela facilidade de acesso ao seu código e pela
possibilidade de se fazer comparações com o trabalho de outros grupos de pesquisa.
A disponibilidade de diversas aplicações de PLN, maduras e testadas como GATE,
MALLET e Simmetrics, escritos na mesma linguagem JAVA que o Lucene facilitará a
criação e testagem de módulos embutidos no Lucene.
Adicionalmente, a pesquisa descobriu o Lemur, pacote da Universidade Carnegie
Mellow, escrito em C++, porém com uma interface em Java.
A criação ou adaptação de módulos de análise, filtragem e indexação adequados à
lı́ngua portuguesa tem agora uma boa oportunidade de ser empreendida, pois temos agora
uma situação de grande disponibilidade de componentes prontos ou semi-prontos para
acompanhar as tendências da pesquisas em outros idiomas e colaborar com o cenário da
pesquisa brasileiro.
41
REFERÊNCIAS
CHAKRABARTI, S. Discovering Links Between Lexical and Surface Features in Questions and Answers. In: WEBKDD, 2004. Anais. . . Springer, 2004. p.116–134. (Lecture
Notes in Computer Science, v.3932).
CUNNINGHAM, H. Software Architecture for Language Engineering.
2000. Tese (Doutorado em Ciência da Computação) — University of Sheffield.
http://gate.ac.uk/sale/thesis/.
CUNNINGHAM, H.; MAYNARD, D.; BONTCHEVA, K.; TABLAN, V. GATE: A framework and graphical development environment for robust NLP tools and applications.
In: ANNIVERSARY MEETING OF THE ASSOCIATION FOR COMPUTATIONAL
LINGUISTICS, 40., 2002. Proceedings. . . [S.l.: s.n.], 2002.
GOSPODNETIC, O.; HATCHER, E. Lucene in Action. [S.l.]: Greenwich, EUA : Manning, 2005. 421p.
GREEN, B. F.; WOLF, A. K.; CHOMSKY, C.; LAUGHERY, K. Baseball, An Automatic Question Answering System. In: Computers and Thought, Feigenbaum and Feldman(eds), MacGraw-Hill (New York NY). [S.l.: s.n.], 1963.
GRISHMAN, R. Computational Linguistics: An Introduction. Cambridge, England:
Cambridge University Press, 1986.
GROSSMAN, D. A.; FRIEDER, O. Information Retrieval: Algorithms and Heuristics.
[S.l.]: Dordrecht, Netherlands : Springer, 2004. 272p.
JURAFSKY, D.; MARTIN, J. H. Speech and Language Processing : An Introduction to
Natural Language Processing, Computational Linguistics, and Speech Recognition. [S.l.]:
Upper Saddle River, EUA : Prentice-Hall, 2000.
KUROPKA, D. Modelle zur Repräsentation natürlichsprachlicher Dokumente. [S.l.]:
Berlin : Logos Verlag, 2004. 242p.
LUCENA, C. J.; BAUZER, C. Grandes Desafios da Pesquisa em Computação no Brasil de 2006 a 2016. [S.l.]: Sociedade Brasileira de Computação, 2006.
RUSSELL, S. J.; NORVIG, P. Artificial Intelligence. [S.l.]: Upper Saddle River, EUA :
Prentice-Hall, 2003. 1021p.
42
SILVA, B. C. da; MONTILLA, G.; PARDO, T.; GRAçAS VOLPE, M. das. Introdução
ao Processamento das Linguagens Naturais e Algumas Aplicações. [S.l.]: São Paulo,
Brasil : USP, UFSCar e UNESP, 2007.
WIKIPEDIA. Informationa Retrieval — Wikipedia, The Free Encyclopedia. [Online;
acessada em 22-setembro-2008].
43
ANEXO A
GLOSSÁRIO
Embora esse texto seja uma panorâmica das áreas de RI e PNL, e no seu bojo sejam
apresentadas muitas definições, listamos a seguir mais alguns termos encontradiços nos
artigos e livros cujo conhecimento do significado possa ser útil ou interessante.
1. Conceito é uma lista de termos vinculadas (CUNNINGHAM et al., 2002)a mesma
coisa ou idéia.
2. Gazetteer é um dicionário ou diretório de informações geográficas sobre lugares e
nomes de lugares.
3. Ontologia é um modelo para descrever o mundo que consiste de tipos, propriedades, tipos de relacionamentos e restrições.
4. Ontologia genérica é uma ontologia como WordNet que não se prende a determinado assunto e pode ser visto como um dicionário hierarquizado por relacionamentos ”é um”.
5. Stop Words são palavras a serem excluı́das da análise estatı́stica ou da análise vetorial, geralmente palavras de classes fechadas como artigos, pronomes, advérbios
(de tempo, modo, afirmação, negação, dúvida, exclusão ou inclusão), preposições,
conjunções e interjeições.
6. Meronı́mia é um relacionamento ”parte de”.
7. Polissemia é a capacidade de um signo (termo, palavra ou locução) de ter múltiplos
significados (semenes).
8. Hipônimo é um conceito especializado de outro. Cavalo árabe é especialização de
cavalo.
9. Hiperônimo é um conceito que generaliza outro. Carro é generalização de mille.
10. Synset é um conceito do Wordnet, formado por um ou mais Lemmas.
11. Lemma, para o WordNet é termo que significa um conceito. ”Carro”e ”Automóvel”são dois lemas do mesmo conceito e tem por hiperônimo ”veı́culo motorizado”.
12. Cadeias Escondidas de Markov
44
13. Bag of Words é um modelo simplificado utilizado em PLN e RI. Nesse modelo,
um texto é apresentado como um conjunto desordenado de palavras, ignorando
gramática ou ordem. Pode ser empregado por um classificador Naı̈ve Bayes ou em
Análise Semântica Latente.
14. Latent Semantic Analysis é uma técnica de PLN patenteada em 1988, especialmente de semântica vetorial, que analisa as relações entre um conjunto de documentos e os termos neles contidos através da criação de um conjunto de conceitos.
15. Word Sense Disambiguation é o processo de esclarecimento do sentido de um
termo em uma senteça ou no discurso falado. Existem abordagens profundas ou
superficiais1 .
16. Rede Semântica é um grafo que representa o relacionamento entre conceitos.
Também é chamada de representação de conhecimento.
17. Etiquetagem gramática2 também chamado de desambiguação de tipo de palavra,
identifica o tipo gramatical - substantivo, verbo, adjetivo - de cada palavra.
18. Sstate space search é um campo da área da Inteligência Artificial na qual sucessivas configurações ou estados são considerados conforme determinado critério para
a escolha de estado-ótimo. O conjunto de estados futuro do sistema forma um grafo
no qual dois estados estão conectados se existe uma operação que possa conduzir o
sistema do primeiro estado ao segundo.
19. Cadeia de Markov, homenagem a Andrey Markov, é um processo estocástico com
a propriedade de Markov, que significa que os estados presente e futuros são independentes dos estados passados. A mudança de estado em cada momento depende
de uma distribuição de probabilidades, que define cada transição possı́vel.
20. Shallow Parsing é uma análise superficial, ligeira, que evita a análise mais completa que é NP-completa. Ela identifica substantivos, locuções nominais, verbos,
mas não faz análise sintática mais elaborada.
1
2
Deep and shallow approaches
Part-of-Speech tagging.

Documentos relacionados