Resumos capitulo 1 e..

Propaganda
INTRODUCTION TO RETRIVEAL
INFORMATION
RESUMOS: Capítulos 1 e 2
Aluno: Humberto Gustavo de Melo
CAPITULO 1: MODELO BOOLEANO
Definições:
Recuperação de informação são técnicas computacionais para encontrar documentos de
natureza não estruturada (texto em geral) que satisfaça uma necessidade de informação
de um usuário a partir de grande quantidade de documentos.
Modelo clássico de busca:
TASK
Info Need
Verbal
form
Query
SEARCH
ENGINE
Query
Refinement
Results
Corpus
Figura 1: Modelo clássico de busca
A figura 1 demonstra o modelo clássico de busca em um sistema de recuperação de
informação. O processo inicia com o usuário tentando expressar a sua necessidade em
forma de consulta, um dos grandes desafios na área de RI e justamente traduzir essa
necessidade do usuário (semântica) na forma sintática. Depois de realizada a consulta
(Query) a maquina de busca então procura nos documentos chamados de corpus na
figura anterior. A partir disso obtém-se então os resultados da pesquisa. Esse resultado o
usuário ou o próprio sistema de RI pode realizar um refinamento na consulta (query
refinement). O usuário então a partir desse resultado pode mudar ou não sua consulta.
Outro grande problema na pratica são o tamanho dos documentos (corpus) que contem
um volume muito grande de informações de forma não estruturadas. O que dificulta
bastante o desenvolvimento de algoritmos eficientes nesses documentos.
A partir desse modelo clássico veremos algumas técnicas de recuperação de informação.
Matriz Termo - Documento:
Considere que o usuário deseja realizar a seguinte consulta nas obras de Shakespeare:
“Quais as obras contem os personagens Brutus, Caesar e não Calpurnia”. Uma maneira
de realizar essa consulta e utilizando o conceito Matriz Termo – Documento.
Suponha a matriz abaixo:
Antony and Cleopatra
Julius Caesar
The Tempest
Hamlet
Othello
Macbeth
Antony
1
1
0
0
0
1
Brutus
1
1
0
1
0
0
Caesar
1
1
0
1
1
1
Calpurnia
0
1
0
0
0
0
Cleopatra
1
0
0
0
0
0
mercy
1
0
1
1
1
1
worser
1
0
1
1
1
0
Propriedades:



Cada posição da matriz pode assumir valor de 0 (Ausência no documento) ou 1
(presença no documento);
As linhas representam os termos;
As colunas representam os documentos.
Para realizar a consulta “Brutus AND Caesar AND NOT Calpurnia” primeiramente
recupera-se as linhas dos temos:
Exemplo:
(Brutus)
110100
(Caesar)
110111
(Calpurnia) 101111
 Complemento pois na expressão o usuário deseja NOT
O resultado e a operação AND entre as linhas, o resultado obtido e 100100.
Observando o resultado obtém-se as obras Antony and Cleópatra (primeira coluna) e
Hamlet (quarta coluna).
Modelo Índice Invertido
Uma outra forma de recuperação de informação e utilizando a estrutura de dados índice
invertido. Considere a figura 2 abaixo:
Listas
Brutus
6
Caesar
6
Calpurnia
3
2
2
4
4
1
1
5
3
1
6
45 17
3
16 57
31 54 101
Listas
Dicionário
Ordenado pelo by docID
Figura 2: Estrutura de dados índice invertido
Na figura anterior pode-se observar um dicionário (conjunto de termos), onde cada
termo aponta para uma lista de documentos. Essa lista armazena então os documentos
nos quais os termos aparecem. Uma vantagem desse modelo sobre o matricial e que os
termos podem ter um tamanho dinâmico dependendo da freqüência com que aparecem
nos documentos.
Para a construção dos índices e necessário seguir alguns passos conforme figura 3
abaixo:
Figura 3: Passos para construção de índices
2

Tokenizer: O primeiro passo e obter a partir dos documentos os termos a serem
indexados, esse processo e chamado de tokenizer. O objetivo e dividir as
palavras do texto em termos, ou seja, separar cada palavra do texto que será
indexada posteriormente.
Imagine os documentos abaixo:
Documento 1
I did enact Julius
Caesar I was killed
i' the Capitol;
Brutus killed me.
Documento 2
So let it be with
Caesar. The noble
Brutus hath told you
Caesar was ambitious
Separamos cada letra do documento e criamos uma tabela onde armazenamos o
termo e o documento em que aparece o termo e depois ordenamos essa tabela em
ordem alfabética conforme abaixo:
O ultimo passo e criar um dicionário que possuirá todos os termos criados, e criação das
listas com os documentos onde os termos aparecem, com sua freqüência, conforme
figura abaixo:

Liguist Modules: O segundo passo necessário e realizar diversas tarefas sobre os
termos obtidos no passo anterior: Essas tarefas são:
o Eliminação das StopWords (artigos, pronomes, etc);
o Padronização das palavras (eliminação de acentos, tremas, hífens , plural,
etc);
o Aplicação de algoritmos que padronizem as palavras com relação ao seu
sufixo, sinônimo, etc.
OBS: esse tópico será detalhado no capitulo 2.

Indexer: O ultimo passo e a indexação e criação das listas de documentos dos
termos padronizados e preparados pelos algoritmos do passo anterior.
OBS: esse tópico será detalhado no capitulo 3.
Consultas no modelo booleano: índice invertido
Considera a consulta “Brutus e Caesar”:
Primeiro Passo: Recuperar as listas do termos Brutus e Caesar, depois verificar o
que as listas tem em comum com o algoritmo de merge.
2
8
2
4
8
1
1
2
3
65
Brutu
82 13 4 2 8 3
34 Caesa
s
1
4 r
3
6
12
128
Se observamos as duas listas anteriores percebemos que as listas tem em comum o
documento 2 e 8. O algoritmo de merge descrito na figura abaixo:
O algoritmo é muito simples a idéia é ir percorrendo posição a posição das listas e
comparar se os documentos coincidem ou não. Se coincidirem é então adicionado o
documento na lista de resposta. Esse processo repete até o término das duas listas.
A partir dos das duas técnicas estudas anteriormente pode-se concluir algumas
características do modelo booleano:
 Processamento lento para grande quantidade de informações;
 Não e possível realizar consultas do tipo: “trazer todos os paises começados com
a letra B”;
 Usuário necessita montar consultas utilizando operadores booleanos (AND, OR ,
NOT);
Otimização consultas Índice invertido
Como melhor maneira de realizar a consulta Brutus AND Calpurnia AND Caesar:
Brutus
Caesar
Calpurnia
2
1
4
2
13 16
8
3
1
6
5
3
2
8
6 12
4 8
1
2
6
1
3
4
Inicie com os termos com as menores freqüências, ou seja, que possuem as menores
listas. No caso da figura anterior execute a consulta (Calpurnia AND Brutus) AND
Caesar, pois as listas de Calpurnia AND brutus são as menores.
CAPITULO 2: Os termos do vocabulário e as listas de endereçamento
Para recuperar informações contidas em documentos, existem diversos problemas a
serem resolvidos, dentre esses problemas podemos citar:
 Documentos possuem diversos formatos: Pdf, word, excel, html, etc;
 Variedade de Idiomas;
 Informações de datas, números, etc.
 Erros ortográficos;
 Etc.
Para indexar os termos e necessário realizar algumas operações sobre o texto:
 Analise léxica;
 Eliminação de StopWords;
 Operação de Stemming.
Nos idiomas de maneira geral existem diversos caracteres tais como: ‘s, trema, acento,
etc. Nesse caso como indexar as palavras? Filand’s, Hewlett-Packard, San Francisco,
3/20/91, etc. Para resolver esses problemas é necessário padronizar os termos. Uma das
etapas da padronização consiste em eliminar alguns caracteres especiais:
Exemplos:
U.S.A  USA (eliminação de pontos)
resume  resume (eliminação de acentos)
TübingenTuebingen (eliminação de tremas)
Fed  fed (substituição de letra maiúscula por minúscula)
anti-discriminatory  antidiscriminatory (eliminação do hífen)
Outro fator importante são os termos homônimos e sinônimos, uma solução para esses
casos é associar um índice para os termos. Exemplo: carro = automóvel, nesse caso um
índice carro – automóvel é criado.
Outra solução e realizar a consulta do termo carro e depois consultar também automóvel.
Lemmatization
Essa técnica consiste em reduzir as formas variantes dos termos:
Exemplo:
am, are, is  be
car, cars, car’s, cars’  car
Stemming
Essa técnica tem por objetivo reduzir os termos no seu radical baseando-se em regras
pré-definidas, devido a grande diversificação entre os idiomas é necessário um
Stemming para cada um.
Exemplo:
for example compressed
and compression are both
accepted as equivalent to
compress.
for exampl compress and
compress ar both accept
as equival to compress
Observe que no documento acima os textos foram reduzidos aos seus radicais, as regras
utilizadas para o idioma em inglês são:
 sses  ss
 ies  i
 ational  ate
 tional  tion
 Regras dependem do tamanho da palavra

(m>1) EMENT →
 replacement → replac
 cement → cement
Um dos algoritmos mais utilizados para realizar o Stemming e o algoritmo de Porter. A
figura abaixo mostra como funciona o algoritmo para a língua portuguesa.
Figura: Algoritmo de porter para língua portuguesa
Phrase Queries And Positional Indexes
Suponha que o usuário deseja consultar “Stanford University”, como realizar essa
consulta?
A primeira solução proposta é chamada de Biword Indexes, essa técnica consiste em
separar pares de termos contidos na frase e criar um índice para cada par.
Exemplo: “friends, romans, Countrymen”.
 Friends romans (primeira biword)
 Romans contrymen (segunda biword)
Cada uma das biwords é agora um termo do dicionário. Para realizar uma consulta
dividimos a frase em Biwords e aplicamos uma consulta booleana.
Exemplo: “stanford university palo alto “ stanford university AND university palo
AND palo alto
Existem uma extensao das biwords chamadas de Extended bywords. A idéia consiste
em dividir os temos em Nomes(N) e artigos/preposições(x). Chamamos uma string de
termos NX*N de extended biword. Cada extended biword é um novo termo do
dicionário.
Exemplo:
catcher in the rye
N
X X N
Processo de consulta o sistema de RI analisa os N’s e X’s elimina os X’s e consulta pelo
índice dos N’s. na frase acima seria consultado pelo índice catcher rye. As biwords
indexes possuem uma desvantagem no qual o dicionário se torna muito grande, o que
torna a consulta mais lenta.
Uma segunda solução para consultar frases são os Positional Indexes, essa técnica
permite consultar as frases pela posição dos termos dentro das frases. Existe uma
estrutura de dados que permite realizar a consulta dessa forma, segue abaixo:
<term, number of docs containing term;
doc1: position1, position2 … ;
doc2: position1, position2 … ;
etc.>
Exemplo:
<be: 993427;
1: 7, 18, 33, 72, 86, 231;
2: 3, 149;
4: 17, 191, 291, 430, 434;
5: 363, 367, …>
O termo be acima esta contido nos documentos (1,2,4,5), dentro do documento 1 o
termo aparece nas posições: 7,18,33,72, ...
Suponha que o usuário deseja consultar a expressão “to be” dado dicionário abaixo:


to:



2:1,17,74,222,551;
4:8,16,190,429,433;
7:13,23,191; ...



1:17,19;
4:17,191,291,430,434;
5:14,19,101; ...
be:
Para realizar essa consulta, extraímos primeiramente as listas de to e be e depois
realizamos um merge para descobrirmos os documentos em comum. Em seguida
analisamos as posições como temos o termo “to” e logo em seguida temos “be” o
algoritmo ira retornar as posições 429 – to e 430 – be, e 433 – to e 434 – be.
Download