Sistemas de recuperação de informação em bases de textos Paulo Quaresma Departamento de Informática e Centro de Investigação em TI da Universidade de Évora Centro de Inteligência Artificial da UNL pq@di.uevora.pt Paulo Quaresma 1
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 2
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 3
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 4
Programa Aplicação case studies: Arquivo digital DI/UE PGR - Acesso aos Pareceres da Procuradoria Geral da República Portuguesa Paulo Quaresma 5
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 6
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 7
Bases de textos A representação a usar depende das funcionalidades desejadas! Paulo Quaresma 8
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 9
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 10
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 11
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 12
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 13
Estruturas de dados Organização do conjunto de palavras que constituem os documentos: Conjunto Lista ordenada Tabela de Hash Árvores de pesquisa Paulo Quaresma 14
Estruturas de dados Lista Ordenada A Documento Indexado Indexar (doc1, 2) (doc1, 1), (doc2,2) (doc2, 6) (doc1, 3) Paulo Quaresma 15
Estruturas de dados Tabela de Hash A (doc1, 2) Indexar (doc1, 3) Documento (doc1, 1), (doc2,2) Indexado (doc2, 6) Paulo Quaresma 16
Á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 17
Árvores de pesquisa (doc1,1) A V (doc2,1) S V O (doc1,2) E A (doc1,3) (doc2,2) S M (doc2,3) Paulo Quaresma 18
Estruturas de dados Vantagens e desvantagens Listas Ordenadas Tabelas de Hash Árvores de pesquisa Paulo Quaresma 19
Bases de textos Problema: presidente da república Solução: Nova lista que liga as palavras de um modo sequencial! Paulo Quaresma 20
Árvores de pesquisa (doc1,1) A V (doc2,1) S V O (doc1,2) E A (doc1,3) (doc2,2) S M (doc2,3) Paulo Quaresma 21
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 22
Árvores de pesquisa (doc1,1), (doc2, 1) A V (doc1,2), (doc2,2) V E O A R (doc1,3) (doc2,3) Paulo Quaresma 23
Bases de textos Problema: Ter em conta categoria morfosintá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 24
Árvores de pesquisa (doc1,art,1), (doc2, art, 1) A V (doc1,n, 2), (doc2,n, 2) V E O A R (doc1,v, 3) (doc2,v, 3) Paulo Quaresma 25
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 26
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 27
Árvores de pesquisa (doc1,art,1) A P V O (doc2,art,1) V... O (doc1,n, 2) E O A (doc2, n, 2) R (doc1,v, 3) (doc2,v, 3) Paulo Quaresma 28
Árvores de pesquisa (doc1,art,1) A V O (doc2,art,1) (doc1,n, 2), (doc2,n, 2) V E O A R (doc1,v, 3) (doc2,v, 3) Paulo Quaresma 29
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 30
Árvores de pesquisa A V (doc1,n, 2), (doc2,n, 2) V E O A R (doc1,v, 3) (doc2,v, 3) Paulo Quaresma 31
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 32
Árvores de pesquisa (doc1,1), (doc2, 1) A V (doc1,2), (doc2,2) V E O A Voa* R (doc1,3) (doc2,3) Paulo Quaresma 33
Pesquisa em bases de textos Problemas: Léxico Etiquetagem morfo-sintáctica Sinónimos Stop-words Paulo Quaresma 34
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 35
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 36
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 37
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 38
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 39
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 40
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 41
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 42
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 43
Pesquisa em bases de textos Exemplo do CLEF'04: Texto: Como morreu Jimi Hendrix? 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 44
Pesquisa em bases de textos Exemplo do CLEF'04: Texto: Onde é o hospital Júlio de Matos? 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 45
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 46
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 47
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 48
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 49
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 50
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 51
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 52
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 53
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 54
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 55
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 56
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 57
Problema 3: Etiquetagem Rede neuronal Utiliza como input as probabilidades condicionais e como output obtém a etiqueta da palavra P(tag1 w) P(tag2 w) P(tag1) P(tag2)...... P(tagn w) P(tagn) Paulo Quaresma 58
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 59
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 60
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 61
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 62
Problema 5: Análise sintáctica Analisadores sintácticos parciais Chart parsers Ascendentes Descendentes Mistos Paulo Quaresma 63
Problema 5: Análise sintáctica O João leu o livro. Art pron... N V Art pron N... Paulo Quaresma 64
Problema 5: Análise sintáctica O João leu o livro. Art N V Art pron N... Sn Paulo Quaresma 65
Problema 5: Análise sintáctica O João leu o livro. Art Art N V N Sn Sn Paulo Quaresma 66
Problema 5: Análise sintáctica O João leu o livro. Art Art N V N Sn Sn Frase Sv Paulo Quaresma 67
Problema 5: Análise sintáctica O Xxx leu o livro. Art V Art N Sv Sn Paulo Quaresma 68
Problema 5: Análise sintáctica Quando analisador falha: Análise por palavra-chave Quero consultar documentos sobre militares. Paulo Quaresma 69
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 70
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 71
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 72
Problema 7: Classificação de documentos Manual Automática Aprendizagem Redes neuronais Algoritmos genéticos Indução de regras Paulo Quaresma 73
Problema 7: Classificação de documentos Redes neuronais...... Palavras Relevantes Tópicos Paulo Quaresma 74
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 75
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 76
Problema 9: Inferência de relações entre documentos Pré-cálculo de relações por Tópico Citação Autor... Paulo Quaresma 77
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 78
Problema 10: Visualização de relações entre documentos Grafos VRML Interactividade (associar acções aos nós) Paulo Quaresma 79
Problema 11: Contexto da interacção Estrutura de dados que representa o contexto da interacção: Pilha Árvore Grafo Paulo Quaresma 80
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 Y doc(x), pessoa(y) militar(y) sobre(x,y) Paulo Quaresma 81
Problema 11: Contexto da interacção Ex1: Ferido X Y doc(x), pessoa(y) militar(y) sobre(x,y) X Y doc(x), pessoa(y) militar(y), ferido(y) sobre(x,y) Paulo Quaresma 82
Problema 11: Contexto da interacção Ex2: Civil X Y doc(x), pessoa(y) militar(y) sobre(x,y) X Y doc(x), pessoa(y) civil(y) sobre(x,y) Paulo Quaresma 83
Problema 11: Contexto da interacção Necessário: Análise lexical Análise sintáctica Análise semântica Paulo Quaresma 84
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 85
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 86
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 87
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 88
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 89
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 90
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 91
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 92
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 93
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 94
Problema 13: Modelo do sistema Representação do comportamento do sistema Cooperatividade Sinceridade Pró-actividade Paulo Quaresma 95
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 96
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 97
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 98
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 99
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 100
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 Paulo Quaresma 101
Problema 15: Dinâmica (tempo) Representação do tempo Event Calculus Situation Calculus Programação em lógica dinâmica (DLP) Paulo Quaresma 102