Introduction to Information Retrieval
Introduction to
Information Retrieval
CS276: Information Retrieval and Web Search
Christopher Manning and Prabhakar Raghavan
Lecture 2: The term vocabulary and postings
lists
Introduction to Information Retrieval
Relembrando….
Documentos para
indexar.
Friends, Romans, countrymen.
Tokenizer
Token
Friends Romans
Countrymen
Linguistic
modules
Tokens modificados.
Indices Invertidos.
friend
roman
countryman
Indexer friend
2
4
roman
1
2
countryman
13
16
Introduction to Information Retrieval
Analisando um documento
 Problemas de um documento
 Qual o formato?
 Existem diversos formatos;
 pdf/word/excel/html.
 Qual a língua?
 Diversidade das línguas.
 Quais os conjuntos de caracteres e usado?
Sec. 2.1
Introduction to Information Retrieval
Operações sobre texto
 Fases
 Análise léxica
 Elimina dígitos, pontuação, etc
 Eliminação de stopwords
 Artigos, pronomes, etc
 Operação de stemming
 Redução da palavra ao seu radical
Introduction to Information Retrieval
TOKENS
Introduction to Information Retrieval
Tokenization
 Input: “Friends, Romans and Countrymen”
 Output: Tokens
 Friends
 Romans
 Countrymen
 Quais os tokens são validos?
Sec. 2.2.1
Introduction to Information Retrieval
Sec. 2.2.1
Tokenization
 Problemas na tokenization:
 Finland’s capital 
Finland? Finlands? Finland’s?
 Hewlett-Packard  Hewlett and Packard tem
dois tokens?
 Como fazer com os hífens?
 state-of-the-art
 co-education
 San Francisco: um token ou dois?
 Como decidir a quantidade de tokens?
Sec. 2.2.1
Introduction to Information Retrieval
Números





3/20/91
Mar. 12, 1991
55 B.C.
B-52
My PGP key is 324a3df234cb23e
(800) 234-2333
20/3/91
Introduction to Information Retrieval
Tokenization: Problemas das línguas
 Frances
 L'ensemble  one token or two?
 L ? L’ ? Le ?
 Alemão
 Lebensversicherungsgesellschaftsangestellter
Sec. 2.2.1
Introduction to Information Retrieval
Tokenization: Problemas das línguas
 Língua arábica
Sec. 2.2.1
Introduction to Information Retrieval
Stop words
 Palavras que não acrescentam semântica na
sentença, com isso podem ser eliminadas;
 Exemplo língua inglesa: the, a, and, to, be
 Existe uma tabela padronizada de acordo com a língua.
Sec. 2.2.2
Introduction to Information Retrieval
Stop words: Tabela Português
Introduction to Information Retrieval
Padronização dos termos
 Tokenization depende da língua.
 Padronizar as palavras na mesma forma:




U.S.A. e USA tem o mesmo significado
Acentos: e.g., Francês résumé vs. resume.
Tremas: e.g., Alemão: Tuebingen vs. Tübingen
Reduzir para letras minúsculas
 Fed vs. fed
 SAIL vs. sail
 Retirar os hífens dos termos:
 anti-discriminatory, antidiscriminatory
Sec. 2.2.3
Sec. 2.2.3
Introduction to Information Retrieval
Padronização dos termos
 Exemplos:
 Enter: window
 Enter: windows
 Enter: Windows
Search: window, windows
Search: Windows, windows, window
Search: Windows
Introduction to Information Retrieval
Thesauri and soundex
 Sinônimos e homônimos?
 E.g., classes equivalentes:
 car = automobile
color = colour
 Nos podemos reescrever para formar classes equivalentes:
 Quando um documento contem automobile, utilizamos o índice de carautomobile (e vice-versa)
 Ou nos podemos expandir a consulta para:
 Quando a consulta conter automobile, analisar car também.
 Como lidar com os erros ortográficos?
 Utilizar a técnica de soundex, o qual se baseia em heurísticas
fonéticas.
 Veremos detalhes nos capítulos 3 e 9
Introduction to Information Retrieval
Sec. 2.2.4
Lemmatization
 Reduzir formas variantes dos termos:
 E.g.,
 am, are, is  be
 car, cars, car's, cars'  car
 the boy's cars are different colors  the boy car be
different color
Introduction to Information Retrieval
Sec. 2.2.4
Stemming
 Reduzir os termos antes da indexação;
 Reconhecer os padrões de formação das palavras;
 Depende da língua;
 Baseado em regras;
 e.g., automate(s), automatic, automation todos reduzidos
para automat.
for example compressed
and compression are both
accepted as equivalent to
compress.
for exampl compress and
compress ar both accept
as equival to compress
Sec. 2.2.4
Introduction to Information Retrieval
Porter’s algorithm
 Commonest algorithm for stemming English
 Remocado dos sufixos das palvras;
 Baseado em regras de acordo com a lingua;
 Algoritmo procura pela maior sequencia de letras que casa
com uma regra.
 Exemplo:
Termo
engineering
engineered
engineer
Stem
engineer
engineer
engineer
Introduction to Information Retrieval
Regras Algoritmo de Porter




sses  ss
ies  i
ational  ate
tional  tion
 Regras dependem do tamanho da palavra
 (m>1) EMENT →
 replacement → replac
 cement → cement
Sec. 2.2.4
Introduction to Information Retrieval
Sec. 2.2.4
Algoritmo Porter língua portuguesa
Introduction to Information Retrieval
FASTER POSTINGS MERGES:
SKIP POINTERS/SKIP LISTS
Sec. 2.3
Introduction to Information Retrieval
Relembrando a “merge” básico
 Caminhamos por duas listas simultaneamente
comparando o valor das listas, quando encontramos
uma interseção adicionamos na lista de resultados.
2
8
2
4
8
41
1
2
3
8
48
11
64
17
Como podemos melhorar?
128 Brutus
21
31 Caesar
Sec. 2.3
Introduction to Information Retrieval
Query processing with skip pointers
128
41
2
4
8
41
64
128
31
11
1
48
2
3
8
11
17
21
31
Suponha que caminhamos nas duas listas ate achar a
interseção entre elas (ex. 8)
Nos então temos os valores 41 e 11. 11 e o menor.
Como o topo do lista e 31 e o ponteiro da outra lista e
41 podemos entao “escapar” para final da lista.
Introduction to Information Retrieval
PHRASE QUERIES AND POSITIONAL
INDEXES
Introduction to Information Retrieval
Consulta de frases
 Queremos consultar uma frase
 Exemplo: “stanford university” – como uma frase
 For this, it no longer suffices to store only
<term : docs> entries
Sec. 2.4
Introduction to Information Retrieval
Sec. 2.4.1
Primeira solução: Biword indexes
 Separamos pares dos termos contidos na frase e
criamos um índice para cada par;
 Exemplo do texto “Friends, Romans, Countrymen”
podemos gerar as biwords
 friends romans
 romans countrymen
 Cada uma das biwords é agora um termo do
dicionário.
Introduction to Information Retrieval
Sec. 2.4.1
Consultar frases longas
 Dividimos a frases em Biwords e aplicamos a
consulta booleana;
 Exemplo:
“stanford university palo alto “
Aplicando o conceito acima temos:
stanford university AND university palo AND palo alto
Introduction to Information Retrieval
Sec. 2.4.1
Extended biwords
 Dividimos os termos em Nomes (N) e
artigos/preposições (X).
 Chamamos uma string de terms NX*N como uma
extended biword.
 Cada extended biword é um novo termo no
dicionario.
 Exemplo: catcher in the rye
N
X X N
 Processo de consulta: analisá-lo em N’s and X’s
 Consulta pelo índice: catcher rye
Introduction to Information Retrieval
Sec. 2.4.1
Problemas para biword indexes
 Dicionário de Índices muito grande
 Inviável na pratica.
 Biword índices não são a solução-padrão (para todos os
biwords), mas pode ser parte de uma estratégia.
Introduction to Information Retrieval
Solução 2: Positional indexes
 Nas listas, armazenamos para cada termo a
posição(ões) que aparecem no documento:
<term, number of docs containing term;
doc1: position1, position2 … ;
doc2: position1, position2 … ;
etc.>
Sec. 2.4.2
Sec. 2.4.2
Introduction to Information Retrieval
Positional index exemplo
<be: 993427;
1: 7, 18, 33, 72, 86, 231;
2: 3, 149;
4: 17, 191, 291, 430, 434;
5: 363, 367, …>
Aparecem nos docs 1,2,4,5
Como consultar “to be
or not to be”?
 Be: aparece no documento 1 nas seguintes
posições: 7,18,33,72,86,231
 Mas agora precisamos lidar com mais do que
apenas termos em comuns em documentos
precisamos saber se estão próximos ou não.
Sec. 2.4.2
Introduction to Information Retrieval
Recuperando uma frase
 Extraímos o índice invertido para cada termo: to, be, or, not.
 Merge das listas doc:position enumerando todas as posições
com “to be or not to be”.
 to:
 2:1,17,74,222,551;
 4:8,16,190,429,433;
 7:13,23,191; ...
 be:
 1:17,19;
 4:17,191,291,430,434;
 5:14,19,101; ...
Em comum os documentos 4, em
seguida analisar as posições: nesse
exemplo temos mais próximos
429(to),430(be) e 433(to),434(be)
Introduction to Information Retrieval
Sec. 2.4.2
Tamanho do índice por posição
 Existem técnicas de compressão dos valores das
posições, será discutido no capitulo 5.
 Essa técnica aumenta substancialmente o espaço em
disco necessário para armazenamento dos índices e
posições.
 Grande vantagem dessa técnica é o poder de buscar
frases pela proximidade das palavras.
Introduction to Information Retrieval
Sec. 2.4.2
Regras
 Um índice por posição é de 2 a 4 vezes que um índice
não posicional
 Tamanho do índice por posição e de 35 a 50% do
volume do texto original.
 Obs.: Esses dados são baseados na língua inglesa.
Introduction to Information Retrieval
Resources for today’s lecture
 IIR 2
 MG 3.6, 4.3; MIR 7.2
 Porter’s stemmer:
http://www.tartarus.org/~martin/PorterStemmer/

Skip Lists theory: Pugh (1990)

 Multilevel skip lists give same O(log n) efficiency as trees
H.E. Williams, J. Zobel, and D. Bahle. 2004. “Fast Phrase
Querying with Combined Indexes”, ACM Transactions on
Information Systems.
http://www.seg.rmit.edu.au/research/research.php?author=4

D. Bahle, H. Williams, and J. Zobel. Efficient phrase querying with an
auxiliary index. SIGIR 2002, pp. 215-221.
Download

capitulo 2