de informação em bases de textos - di.uevora.ptpq/mcd06a.pdf · árvore) em que as palavras são...
TRANSCRIPT
Paulo Quaresma 1
Sistemas de recuperação de informação em bases
de textosPaulo Quaresma
Departamento de Informática e Centro de Investigação em TI da Universidade de Évora
Centro de Inteligência Artificial da UNL
Paulo Quaresma 2
Objectivos
" Analisar e propôr soluções para os principais problemas existentes em sistemas de pesquisa de informação em bases de texto
" Analisar a abordagem proposta pelo DI-UE
Paulo Quaresma 3
Programa
" Introdução e conceitos gerais" Bases de textos (BT)" Pesquisa de informação em BT
" Problemas e soluções" BT: Informação linguística" Sistemas de pesquisa de informação
Paulo Quaresma 4
Programa
" Solução proposta" Arquitectura modular: agentes" Módulos:" Gestor de BT" Expressões relevantes e thesaurus" Classificação, agrupamento e
visualização de documentos" Gestão de interacções
Paulo Quaresma 5
Programa
" Aplicação "case studies": " Arquivo digital DI/UE" PGR - Acesso aos Pareceres da
Procuradoria Geral da República Portuguesa
Paulo Quaresma 6
Bases de textos
" Objectivo: Representar conjuntos grandes de documentos escritos numa ou mais Línguas, possibilitando uma posterior pesquisa eficiente.
" Problemas:" Representar os documentos" Pesquisar os documentos (ou a sua
representação)
Paulo Quaresma 7
Bases de textos
" Representação de documentos:" Ficheiros" Bases de dados relacionais" Bases de textos (estruturas de dados
específicas):" "Inverted files" - Ficheiros invertidos" "PAT-Trees" - Árvores PAT" ...
Paulo Quaresma 9
Bases de textos
" Exemplos de pesquisas:" Quais os documentos em que
aparece a palavra "canto"?" Quais os documentos em que
aparece a palavra "canto" ou qualquer outra forma do verbo "cantar"?
Paulo Quaresma 10
Bases de textos
" Exemplos (cont.):" Quais os documentos em que
aparecem na mesma frase as palavras "português" e "assassinado" (ou sinónimos)?
" Documentos ordenados por relevância em que ...?
Paulo Quaresma 11
Bases de textos
" Inadequação das bases de dados relacionais tradicionais para satisfazer os requisitos dos sistemas de pesquisa de informação em textos
" Necessidade de estruturas de dados específicas e necessidade de incorporar conhecimento linguístico!
Paulo Quaresma 12
Estruturas de dados
" Ficheiros invertidos "inverted files"" Os documentos são processados e é
obtido o conjunto de palavras que os constituem.
" Cada palavra está associada a um conjunto de ocorrências (documento, offset) dessa palavra nos documentos
Paulo Quaresma 13
Estruturas de dados
" Doc1: Documento a indexar" Doc2: Outro documento que vai ser
indexado" Resultado:" a - (doc1, 2)" documento - (doc1, 1), (doc2, 2)" indexar - (doc1, 3)" indexado - (doc2, 6)" ...
Paulo Quaresma 14
Estruturas de dados
" Organização do conjunto de palavras que constituem os documentos:" Conjunto" Lista ordenada" Tabela de Hash" Árvores de pesquisa
Paulo Quaresma 15
Estruturas de dados
" Lista Ordenada
ADocumentoIndexadoIndexar
(doc1, 2)(doc1, 1), (doc2,2)(doc2, 6)(doc1, 3)
Paulo Quaresma 16
Estruturas de dados
" Tabela de Hash
A
Documento
Indexado
Indexar
(doc1, 2)
(doc1, 1), (doc2,2)
(doc2, 6)
(doc1, 3)
Paulo Quaresma 17
Árvores de pesquisa
" Cada nó da árvore identifica uma letra e pode ter 26 filhos (letras)
" Os nós podem representar palavras dos documentos, caso em que têm associado uma lista de ocorrências
" Exemplo:" doc1: a ave voa" doc2: as aves voam
Paulo Quaresma 18
Árvores de pesquisa
A
V
E
S
V
O
A
M
(doc1,1)
S(doc2,1)
(doc1,2)
(doc2,2)
(doc1,3)
(doc2,3)
Paulo Quaresma 19
Estruturas de dados
· Vantagens e desvantagens
Listas Ordenadas
Tabelas de Hash
Árvores de pesquisa
Paulo Quaresma 20
Bases de textos
· Problema: "presidente da república"
· Solução: Nova lista que liga as palavras de um modo sequencial!
Paulo Quaresma 21
Árvores de pesquisa
A
V
E
S
V
O
A
M
(doc1,1)
S(doc2,1)
(doc1,2)
(doc2,2)
(doc1,3)
(doc2,3)
Paulo Quaresma 22
Bases de textos
· Problema: Ter em conta informação linguística! Pesquisar "voar" ou qualquer outra flexão do verbo
· Solução: Criar vários indíces (várias tabelas ou árvores) para o mesmo conjunto de documentos!
· Problema: É necessário ter um dicionário (léxico) com esta informação!
Paulo Quaresma 23
Árvores de pesquisa
A
V
E
V
O
A
(doc1,1), (doc2, 1)
(doc1,2), (doc2,2)
(doc1,3)(doc2,3)
A
R
Paulo Quaresma 24
Bases de textos
· Problema: Ter em conta categoria morfo-sintáctica! Pesquisar "canto" como substantivo!
· Solução: Adicionar etiqueta morfo-sintáctica à lista de ocorrências.
· Problema: É necessário fazer previamente a etiquetagem morfo-sintáctica!
Paulo Quaresma 25
Árvores de pesquisa
A
V
E
V
O
A
(doc1,art,1), (doc2, art, 1)
(doc1,n, 2), (doc2,n, 2)
(doc1,v, 3)(doc2,v, 3)
A
R
Paulo Quaresma 26
Bases de textos
· Problema: Ter em conta sinónimos (thesaurus)! Pesquisar "lei" ou os seus sinónimos!
· Solução: Criar um novo índice (lista ou árvore) em que as palavras são transformadas num dos seus sinónimos.
· Problema: É necessário conhecer previamente os sinónimos das palavras!
Paulo Quaresma 27
Bases de textos
· Exemplo:
Assumindo que "ave" e "pássaro" são sinónimos, vejamos a representação das frases:
A ave voa
Os pássaros voam
Paulo Quaresma 28
Árvores de pesquisa
A
V
E
V
O
A
(doc1,art,1)
(doc1,n, 2)
(doc1,v, 3)(doc2,v, 3)
A
R
O (doc2,art,1)P
O
...
(doc2, n, 2)
Paulo Quaresma 29
Árvores de pesquisa
A
V
E
V
O
A
(doc1,art,1)
(doc1,n, 2), (doc2,n, 2)
(doc1,v, 3)(doc2,v, 3)
A
R
O (doc2,art,1)
Paulo Quaresma 30
Bases de textos
· Problema: Determinadas palavras têm uma frequência muito elevada!
Exemplo: artigos, preposições, pronomes. · Pesquisar artigo "a".
· Solução: Eliminar algumas palavras da estrutura de indexação (stop-words).
· Problema: É necessário conhecer previamente esta lista!
Paulo Quaresma 31
Árvores de pesquisa
A
V
E
V
O
A(doc1,n, 2), (doc2,n, 2)
(doc1,v, 3)(doc2,v, 3)
A
R
Paulo Quaresma 32
Bases de textos
· Problema: Pesquisa por prefixos e sufixos. Pesquisar "voa*" ou "*ar"
· Solução nas árvores:
Encontrar sub-árvores na árvore global
Pesquisa por prefixo mais eficiente: sub-árvore tem a mesma raiz que a árvore global
Pesquisa por sufixo ineficiente -> árvore de pesquisa inversa!
Paulo Quaresma 33
Árvores de pesquisa
A
V
E
V
O
A
(doc1,1), (doc2, 1)
(doc1,2), (doc2,2)
(doc1,3)(doc2,3)
A
R
Voa*
Paulo Quaresma 34
Pesquisa em bases de textos
· Problemas:
Léxico
Etiquetagem morfo-sintáctica
Sinónimos
Stop-words
Paulo Quaresma 35
Pesquisa em bases de textos
· Exemplos:
"presidente da república"
"voa" ou qualquer outra flexão do verbo "voar"
"lei" ou um sinónimo· Solução:
Utilizar estrutura de dados adequada!
Necessário aceder aos módulos lexicais, sinónimos, etc.
Paulo Quaresma 36
Pesquisa em bases de textos
· Mais exemplos:
"presidente" perto de "república"
"presidente" a 2 palavras de distância de "república"
"presidente" e "república" na mesma frase.· Solução:
Utilizar a lista de sequências de palavras existente nas estrutura de dados!
Paulo Quaresma 37
Pesquisa em bases de textos
· Mais exemplos:
"presidente" ou "Jorge Sampaio"
"militar" e "bombeiro"· Solução:
Suportar operações booleanas sobre conjuntos de ocorrências.
Paulo Quaresma 38
Pesquisa em bases de textos
· "militar" e "bombeiro"
"militar" -> (doc1, 5), (doc2, 10)
"bombeiro" -> (doc1, 15), (doc3, 8)· Resultado:
doc1· Abordagem:
Operações sobre conjuntos: reunião, intersecção, diferença
Paulo Quaresma 39
Pesquisa em bases de textos
· Exemplos:
"bombeiros" ordenado por relevância dos documentos.
· Solução:
Acrescentar um campo aos índices que meça a relevância: frequência no texto, posição da palavra no texto (título, início, fim), tags XML, ...
Paulo Quaresma 40
Pesquisa em bases de textos
· Exemplo:
"militares"· Resultado: 1024 documentos...
· Solução:
Classificar e agrupar os documentos por tópico
Relacionar os documentos entre si
Visualizar de um modo gráfico essas relações
Paulo Quaresma 41
Pesquisa em bases de textos
· Exemplo:
"feridos"· Resultado: 768 documentos, dos quais 52
também são sobre militares.
· Solução:
Noção de contexto de diálogo
Representação do modelo do utilizador
Modelação do comportamento do sistema: cooperatividade, pró-actividade
Paulo Quaresma 42
Pesquisa em bases de textos
· Exemplo:
Dos documentos anteriores, quais é que são sobre a guerra na Bósnia?
· Resultado: 7...
· Solução:
Análise sintáctica, semântica
Resolução de anáforas, elipses, ...
Paulo Quaresma 43
Pesquisa em bases de textos
· Exemplo:
E em que documentos é que existe um assassínio de uma pessoa pelo seu vizinho?
· Solução:
Representação semântica do texto
Procedimentos de prova sobre a representação semântica
Paulo Quaresma 44
Pesquisa em bases de textos
· Exemplo do CLEF'04:
Como morreu Jimi Hendrix?· Texto:
Um patologista defendeu que Jimi Hendrix morreu de asfixia após ter ingerido álcool e uma dose excessiva de barbitúricos .
· Resposta:
De asfixia.
Paulo Quaresma 45
Pesquisa em bases de textos
· Exemplo do CLEF'04:
Onde é o hospital Júlio de Matos? · Texto:
Tem sede provisória no Hospital Júlio de Matos, em Lisboa, mais precisamente nos Serviços de Psicoterapia Comportamental (Av. do Brasil, 53 -- 1700 Lisboa).
· Resposta:
Lisboa.
Paulo Quaresma 46
Pesquisa em bases de textos
· Quantos desempregados há na Europa?
· A taxa de desemprego nos países industrializados deverá crescer 0,1 por cento até ao fim do ano, atingindo 8,6 por cento da população activa, ou seja, 33 milhões de pessoas, 23 milhões dos quais na Europa ocidental, sublinha um relatório da Organização Internacional do Trabalho (OIT) ontem divulgado em Genebra.
· Resposta: 23 milhões.
Paulo Quaresma 47
Pesquisa em bases de textos
· Exemplo do CLEF'04:
Com quem se casou Michael Jackson?
A filha de Elvis Presley, Lisa Marie, 26 anos, confirmou o seu casamento há 11 semanas atrás com o cantor Michael Jackson, 35 anos, num comunicado enviado pela MJJ Productions, encarregada na segunda-feira das relações públicas do cantor para os principais media.
· Resposta: Lisa Marie.
Paulo Quaresma 48
Pesquisa em bases de textos
· Novos problemas:
Classificação e agrupamento de documentos
Inferência de relações entre documentos
Visualização gráfica dos agrupamentos
Análise sintáctica e semântica das pesquisas e dos textos.
Contexto do diálogo e modelo dos utilizadores
Comportamento do sistema: cooperativo e pró-activo
Paulo Quaresma 49
Problema 1: Léxico
· Léxico:
Criar uma base de dados lexical
Integrá-la no SGBT (sistema gestor de bases de texto) de um modo "transparente" para o utilizador:
" Na indexação: palavras são indexadas na sua forma base (canónica)
" Na pesquisa: palavra é substituída pela sua forma base
Paulo Quaresma 50
Problema 1: Léxico
· Base de dados lexical:
Palavra
Categoria gramatical
Informação sobre a flexão (número, género, tempo verbal, modo verbal, ...)
Palavra base
...· Ex: corro , v, 1, presente, indicativo, ...
Paulo Quaresma 51
Problema 1: Léxico
· Base de dados lexical:
Relacional
Factos Prolog
Estrutura de dados específica (tabela de hash, ...)
· Construção a partir de:
dicionários já existentes
flexão das entradas dos dicionários
Paulo Quaresma 52
Problema 2: Stop-words
· Obter lista de palavras a eliminar:
Não devem ser indexadas
Devem ser eliminadas na pesquisa· Lista pode ser obtida a partir de consultas à base
lexical:
select * from lexico where categoria="prep"
...
Paulo Quaresma 53
Problema 3: Etiquetagem
· Etiquetagem morfo-sintáctica:
Associar, a cada palavra dos textos a indexar, a sua categoria morfo-sintáctica: n, v, art, ...
Permitir a pesquisa, tendo em conta as etiquetas associadas:
" "canto/v"" "canto/n"
Paulo Quaresma 54
Problema 3: Etiquetagem
· Abordagens:
Simbólica:" Análise lexical e sintáctica -> gramáticas
Não simbólica/estatística:" Probabilidades" Redes neuronais" Algoritmos genéticos" ...
Paulo Quaresma 55
Problema 3: Etiquetagem
· Análise sintáctica
frase -> sn, sv.
Sn -> art, n.
n -> [X], { dic(X, n, ...) }.· Problemas:
Grau de abrangência da gramática (completude)
Palavras desconhecidas
Paulo Quaresma 56
Problema 3: Etiquetagem
· Possível solução:
Analisadores sintácticos parciais" Chart parsers
· Exemplo
O Karagounis rematou...
sn(o/art Karagounis/desc) sv(rematou/v)
Paulo Quaresma 57
Problema 3: Etiquetagem
· Abordagem não simbólica/estatística
Probabilidades" Prob desta palavra ter a etiqueta X, dado que a seguir está a palavra P
Cálculo a priori com base em textos previamente etiquetados.
Problemas: Necessidade de ter textos etiquetados e de ter em conta que existirão erros!
Paulo Quaresma 58
Problema 3: Etiquetagem
· Rede neuronalUtiliza como input as probabilidades condicionais e como output obtém a etiqueta da palavra
... ...
P(tag1|w)
P(tag2|w)
P(tagn|w)
P(tag1)
P(tag2)
P(tagn)
Paulo Quaresma 59
Problema 3: Etiquetagem
· Rede neuronal
Necessidade de treinar a rede" Texto previamente etiquetado!
Suporta razoavelmente bem textos com palavras desconhecidas.
Possibilidade de topologias distintas: considerar uma palavra à frente, uma palavra atrás, duas palavras, uma à frente e outra atrás, ...
Paulo Quaresma 60
Problema 4: Sinónimos
· Abordagens:
Dicionário de sinónimos" Dependente da cobertura do dicionário, dependente do domínio dos textos e da sua Língua
Extracção automática de sinónimos" Independente do domínio e da Língua" Erros...
Paulo Quaresma 61
Problema 4: Sinónimos
· Extracção automática de sinónimos
Análise (parcial) sintáctica dos textos
Cálculo de medidas de co-relação entre palavras com as mesma função nos textos e que são usadas com o mesmo tipo de "argumentos" (verbos, complementos)
Exemplo: as palavras "lei" e "decreto" são usadas sempre com a mesma função e com os mesmo tipo de argumentos -> candidatas a palavras sinónimas
Paulo Quaresma 62
Problema 5: Análise sintáctica
" Léxico e gramática específicos para a Língua (e domínio) dos textos
" Prever a possibilidade de existência de palavras desconhecidas e de construções gramaticais não previstas
Análise sintáctica parcial
Etiquetadores morfo-sintácticos
Paulo Quaresma 63
Problema 5: Análise sintáctica
" Analisadores sintácticos parciais
Chart parsers
AscendentesDescendentesMistos
Paulo Quaresma 69
Problema 5: Análise sintáctica
" Quando analisador falha:
Análise por palavra-chave" Quero consultar documentos sobre militares.
Paulo Quaresma 70
Problema 6: Análise semântica
" Possível de efectuar para domínios concretos e sub-conjuntos de uma determinada Língua
" Necessidade de ter informação semântica no dicionário.
" Vários formalismos:
DRT - Discourse Representation Theory, possui procedimentos de prova
Paulo Quaresma 71
Problema 6: Análise semântica
" O João leu o livro." X Y " nome(X, 'João'), livro(Y)" ler(X,Y).
Paulo Quaresma 72
Problema 6: Análise semântica
" Documentos onde alguém lê um livro." X Y" livro(Y)" ler(X,Y)."
" ?- nome(X, Z)." Z = 'João'.
Paulo Quaresma 73
Problema 7: Classificação de documentos
" Manual" Automática
Aprendizagem" Redes neuronais" Algoritmos genéticos" Indução de regras
Paulo Quaresma 74
Problema 7: Classificação de documentos
" Redes neuronais
...
Tópicos
...
Palavras Relevantes
...
Paulo Quaresma 75
Problema 7: Classificação de documentos
" Indução de regras
pal(P1), pal(P2), ..., pal(Pn) -> class(X)
Ex: pal(assassínio) -> class(crime)
As regras são induzidas com base num conjunto de treino e avaliadas num outro conjunto também previamente classificado.
Paulo Quaresma 76
Problema 8: Agrupamento "clustering" de documentos
" Algoritmos de "clustering"
Hierárquicos
Não hierárquicos" Baseados em medidas de distância entre
documentos (com base na sua classificação)
Paulo Quaresma 77
Problema 9: Inferência de relações entre documentos
" Pré-cálculo de relações por
Tópico
Citação
Autor
...
Paulo Quaresma 78
Problema 9: Inferência de relações entre documentos
" Representação das relações através
Base de dados relacional
Estrutura de dados específica (tabela de hash, ...)
Factos Prolog
...
Paulo Quaresma 79
Problema 10: Visualização de relações entre documentos
" Grafos" VRML" Interactividade (associar acções aos nós)
Paulo Quaresma 80
Problema 11: Contexto da interacção
" Estrutura de dados que representa o contexto da interacção:
Pilha
Árvore
Grafo
Paulo Quaresma 81
Problema 11: Contexto da interacção
" Cada nó da estrutura de dados deve conter a representação (semântica) da pergunta efectuada, após ser feita a sua análise e interpretação
militar X Ydoc(X), pessoa(Y)militar(Y)sobre(X,Y)
Paulo Quaresma 82
Problema 11: Contexto da interacção
" Ex1: Ferido
X Ydoc(X), pessoa(Y)militar(Y), ferido(Y)sobre(X,Y)
X Ydoc(X), pessoa(Y)militar(Y)sobre(X,Y)
Paulo Quaresma 83
Problema 11: Contexto da interacção
" Ex2: Civil
X Ydoc(X), pessoa(Y)civil(Y)sobre(X,Y)
X Ydoc(X), pessoa(Y)militar(Y)sobre(X,Y)
Paulo Quaresma 84
Problema 11: Contexto da interacção
" Necessário:
Análise lexical
Análise sintáctica
Análise semântica
Paulo Quaresma 85
Problema 11: Contexto da interacção
" Necessário verificar se a nova pergunta é uma especificação de uma pergunta anterior ou se é um novo contexto:
Contradição semântica
Contradição na base de textos (conjunção das perguntas tem como resposta o conjunto vazio)
Paulo Quaresma 86
Problema 11: Contexto da interacção
" Contradição semântica
Juntar as representações semânticas e avaliar se existe contradição
Existem procedimentos para avaliar se uma dada representação semântica é contraditória.
Paulo Quaresma 87
Problema 11: Contexto da interacção
" Contradição na base de textos
Conjunção (AND) das pesquisas obtém um resultado não vazio.
Não é equivalente a ser contraditório!
Paulo Quaresma 88
Problema 12: Modelo do utilizador
" Representação das acções dos utilizador
Actos de fala" Inferências das suas atitudes
Intenções (int)
Objectivos (goal)
Crenças (bel)
Paulo Quaresma 89
Problema 12: Modelo do utilizador
" Actos de fala
inform(X, Y, P)
request(X, Y, A)
inform-ref(X, Y, R, P)
ack(X)
...
Paulo Quaresma 90
Problema 12: Modelo do utilizador
" Documentos sobre militares?
Análise sintáctica e semântica
Interpretação em contexto
Acto de fala:" request(u, s, inform-ref(s, u, X, [X Y | doc(X), militar(Y), sobre(X, Y)]))
Paulo Quaresma 91
Problema 12: Modelo do utilizador
" Inferência das atitudes dos utilizadores a partir dos seus actos:
request(U, S, A) causes bel(S, int(U, A))
inform(U, S, P) causes bel(S, bel(U, P))" Assumem-se utilizadores racionais e "bem
comportados", isto é, que só informam aquilo que acreditam ser verdadeiro.
Paulo Quaresma 92
Problema 12: Modelo do utilizador
" Modelo alternativo (não assumindo o "bom comportamento")
inform(U, S, P) causes bel(S, int(U, bel(S, bel(U, P))))
request(U, S, A) causes bel(S, int(U, bel(S, int(S, A))))
Paulo Quaresma 93
Problema 12: Modelo do utilizador
" Teoria de atitudes BDI (beliefs, desires, intentions)
bel(X,P), bel(X, not_P) -> false
int(X, A), not int(X, A) -> false
...
Paulo Quaresma 94
Problema 12: Modelo do utilizador
" É necessária uma semântica formal e um procedimento de prova para obter as atitudes válidas após um dado acto de fala!
" Solução possível: programação em lógica
Stable model semantics (semântica de modelos estáveis)
Well founded semantics (semântica bem fundada)
Paulo Quaresma 95
Problema 13: Modelo do sistema
" Representação do comportamento do sistema
Cooperatividade
Sinceridade
Pró-actividade
Paulo Quaresma 96
Problema 13: Modelo do sistema
" Sistema cooperativo e crédulo
bel(S, int(U, A)) -> int(S, A)
bel(S, bel(U, P)) -> bel(S, P)
Paulo Quaresma 97
Problema 13: Modelo do sistema
" Sistema menos cooperativo e menos crédulo
bel(S, int(U, A)), not int(S, neg A) -> int(S, A)
bel(S, bel(U, P)), not bel(S, neg P) -> bel(S, P)
Paulo Quaresma 98
Problema 13: Modelo do sistema
" Sistema anti cooperativo e que acredita que o utilizador é mentiroso
bel(S, int(U, A)) -> neg int(S, A)
bel(S, bel(U, P)) -> neg bel(S, P)
ou
bel(S, bel(U, P)) -> bel(S, neg P)
Paulo Quaresma 99
Problema 14: Planeamento
" Com base nas atitudes inferidas para o sistema é necessário planear as suas acções;
Se int(S, inform-ref(S, U, X, P)), desc(X) então exec_sgbt(X, P) causa not_desc(X)
Se int(S, inform-ref(S, U, X, P)), not_desc(X) então inform-ref(S, U, X, P) causa neg int(S,inform-ref(S, U, X, P))
Paulo Quaresma 100
Problema 14: Planeamento
" Módulo de planeamento (tema clássico na IA)
STRIPS
...
Abdução" Quais as acções que permitem obter os efeitos desejados?
...
Paulo Quaresma 101
Problema 15: Dinâmica (tempo)
" Os modelos devem conter a representação do tempo
Interpretação em contexto
Análise introspectiva: saber o qué é válido em cada estado/instante de tempo