1) A aula aborda classificação e ponderação de documentos para recuperação de informação, discutindo porque a classificação é importante ao invés de resultados não ordenados;
2) A frequência de termos é fundamental para a classificação, e métricas como tf (frequência do termo no documento) e idf (frequência do termo na coleção) são usadas para calcular pesos;
3) O esquema tf-idf, que multiplica os pesos tf e idf, é o mais conhecido para classificar documentos de acordo com sua relevância para uma consulta.
Classificação Tf-idf: Frequência de Termos e Ponderação para Recuperação de Informação
1. Centro de Informática – Universidade Federal da Paraíba
Ordenação e Recuperação de Dados
Aula 6: Classificação e Ponderação
Prof. Alexandre Duarte - http://alexandre.ci.ufpb.br
1 1
2. Agenda
❶ Revisão
❷ Por que recuperação com classificação?
❸ Frequência de Termos
❹ Classificação tf-idf
2
3. Agenda
❶ Revisão
❷ Por que recuperação com classificação?
❸ Frequência de Termos
❹ Classificação tf-idf
3
6. Codificação de tamanho variável
Dedicar 1 bit (mais significativo) para ser o bit de continuação
c.
Se o valor couber em 7 bits, codifique-o e set o bit c = 1.
Senão: set c = 0, codifique os 7 bits mais significativos e use
bytes adicionais para codificar o restante dos bits segundo o
mesmo algoritmo.
6
7. Compressão da Reuters
Estrutura de dados Tamanho em MB
dicionário, estrutura fixa 11.2
dictionário, ponteiroes para string 7.6
∼, com blocos, k = 4 7.1
∼, com blocos & codificação de prefixo 5.9
coleção (texto, xml etc) 3600.0
coleção (texto) 960.0
matriz de incidência T/D 40,000.0
postings, sem compressão (32-bits) 400.0
postings, sem compressão (20 bits) 250.0
postings, codificação de tamanho variável 116.0
7
8. Aula de hoje
Classificando resultados de buscas: porque isto é importante
(em constrate a simplesmente apresentar os resultados de
forma não-ordenada como ocorre com a busca booleana)
Frequência de Termos: Este é o ingrediente chave na
classificação.
Classificação Tf-idf: esquema de classificação mais conhecido
8
9. Agenda
❶ Revisão
❷ Por que recuperação com classificação?
❸ Frequência de Termos
❹ Classificação tf-idf
9
10. Recuperação classificada
Até agora todas as nossas consultas foram Booleanas.
O documento atende a consulta ou não
Isso é bom para usuários especialistas com entendimento preciso de suas
necessidades e do conteúdo da coleção de documentos.
Também é bom para aplicações: Aplicações podem consumir facilmente
1000s de resultados.
Mas não é interessante para a maioria dos usuários
A maioria dos usuários não é capaz de escrever consultas booleanas . . .
. . . podem até ser, mas eles consideram ser algo muito trabalhoso.
A maioria dos usuários não quer ter que processar 1000s de resultados
manualmente.
Isto é particularmente verdadeiro para pesquisas na web.
10
11. Problemas da pesquisa Booleana: 8 ou 80
Consultas booleanas geralmente resultam em um número
muito pequeno de resultados (=0) ou em um número muito
grande de resultados (1000s).
Consulta 1 (conjunção booleana): [standard user dlink 650]
→ 200,000 hits
Consulta 2 (conjunção booleana): [standard user dlink 650 no
card found]
→ 0 hits
Utilizar pesquisas booleanas requer habilidade para produzir
consultas que recuperem um número gerenciavel de
resultados.
11
12. 8 ou 80: Isso não é problema para a consulta
com classificação
Com classificação, um grande número de resultados não é um
problema para o usuário.
Basta mostrar apenas os 10 melhores resultados, por
exemplo
Não sobrecarregar o usuário
Premissa: o algorítmo de classificação funciona: Resultados
mais relevantes têm melhor classificação que resultados
menos relevantes.
12
13. Scoring como base da recuperação com
classificação
Queremos atribuir uma melhor classificação aos documentos
que são mais em relação aos documentos que são menos
relevantes.
Como podemos fazer essa classificação dos documentos de
uma coleção em relação a uma determinada consulta?
Atribuir um score a cada par consulta-documento.
Este score mede o quão bem um determinado documento
atende uma determinada consulta.
13
14. Score de pares Consulta-documento
Como calculamos o valor de um par consulta-documento?
Comecemos com consultas de um único termo.
Se o termo não aparece no documento: o score deve ser 0.
Quanto mais frequente o termo no documento maior o score
Veremos algumas alternativas para fazer essa contabilização.
14
15. Tentativa 1: Coeficiente de Jaccard
Uma medida comum para a sobreposição de dois conjuntos
Sejam A e B dois conjuntos
O coeficiente de Jaccard para A e B vale:
JACCARD (A, A) = 1
JACCARD (A, B) = 0 if A ∩ B = 0
A e B não precisam ter o mesmo tamanho.
Sempre atribui um valor entre 0 e 1.
15
16. Coeficiente de Jaccard: Exemplo
Qual é o score consulta-documento que o Coeficiente de
Jaccard retorna para:
Consulta: “ides of March”
Documento “Caesar died in March”
JACCARD(c, d) = 1/6
16
17. Problemas com o coeficiente de Jaccard
Ele não considera a frequência do termo (quantas ocorrências
o termo tem).
Termos raros são mais informativos que termos frequentes.
Jaccard não considera essa informação.
Precisamos de mecanismos mais sofisticados!
17
18. Agenda
❶ Revisão
❷ Por que recuperação com classificação?
❸ Frequência de Termos
❹ Classificação tf-idf
18
19. Matriz de incidências Termo-Documento
Anthony Julius The Hamlet Othello Macbeth
and Caesar Tempest ...
Cleopatra
ANTHONY 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
...
Cada documento é representado por um vetor binário ∈ {0, 1}|V|.
19
20. Matriz de incidências Termo-Documento
Anthony Julius The Hamlet Othello Macbeth
and Caesar Tempest ...
Cleopatra
ANTHONY 157 73 0 0 0 1
BRUTUS 4 157 0 2 0 0
CAESAR 232 227 0 2 1 0
CALPURNIA 0 10 0 0 0 0
CLEOPATRA 57 0 0 0 0 0
MERCY 2 0 3 8 5 8
WORSER 2 0 1 1 1 5
...
Agora cada documento é representado por um vetor de contagem
∈ N|V|.
20
21. Modelo da sacola de palavras
Nós não consideramos a ordem das palavras em um
documento.
John is quicker than Mary e Mary is quicker than John são
representadas da mesma forma.
Isto é chamado de modelo da sacola de palavras.
De certa forma estamos dando um passo para trás: índices
posicionais são capazes de distinguir entre estes dois
documentos.
Veremos como recuperar a informação posicional ainda
neste curso.
Por enquanto: modelo da sacola de palavras
21
22. Frequência de termos tf
A frequencia de um termo t em um documento d, tft,d é
definida como o número de vezes que t ocorre em d.
Queremos utilizar o tf no cálculo dos scores de pares
consulta-documento.
Como fazer isso?
Não podemos utilizar indiscriminadamente o tf pois:
Um documento com tf = 10 ocorrências de um
determinado termo é mais relevante que um outro
documento com tf = 1 ocorrências do mesmo termo.
Mas não 10 vezes mais relevante.
A relevância não cresce de forma proporcional a
frequência de termos.
22
23. Ponderação de frequências por Log
O peso da frequência de um termo t em um documento d é
definido como
tft,d → wt,d :
0 → 0, 1 → 1, 2 → 1.3, 10 → 2, 1000 → 4, etc.
O score de um par consulta-documento pode então ser
calculado pela soma dos pesos dos termos t que estão tanto
na consulta quanto no documento
tf-matching-score(q, d) = t∈q∩d (1 + log tft,d )
O score será 0 se nenhum dos termos da consulta estiver
presente no documento.
23
24. Exercícios
Calcular o Coeficiente de Jaccard e o Score tf para os
seguintes pares de consultas-documentos.
c: [information on cars] d: “all you’ve ever wanted to know
about cars”
c: [information on cars] d: “information on trucks,
information on planes, information on trains”
c: [red cars and red trucks] d: “cops stop red cars more
often”
24
25. Agenda
❶ Revisão
❷ Por que recuperação com classificação?
❸ Frequência de Termos
❹ Classificação tf-idf
25
26. Frequêcia no documento vs. frequência na
coleção
Além da frequência do termo em um documento. . .
. . .queremos utilizar também a frequência do termo na
coleção para ponderação e classificação.
26
27. Peso desejado para termos raros
Termos raros são mais informativos que termos frequentes.
Considere um termo na consulta que é raro na coleção
(e.g., ARACHNOCENTRIC).
Um documento que contém este termo tem uma
probabilidade muito grande de ser relevante para a
consulta.
→ Queremos atribuir pesos maiores para termos raros.
27
28. Peso desejado para termos raros
Termos frequêntes são menos informativos que termos
raros.
Considere um termo na consulta que é frequente na
coleção (e.g., GOOD, INCREASE, LINE).
Um documento contendo estes termos tem mais chances
de ser relevante que um documento que não os contém . . .
. . . porém, palavras como GOOD, INCREASE e LINE não são
bons indicadores de relevância.
→Queremos pesos positivos para termos frequentes como
GOOD, INCREASE e LINE, . . .
. . . mas menores que os pesos de termos raros.
28
29. Frequência em documentos
Queremos pesos maiores para termos raros como
ARACHNOCENTRIC.
Queremos pesos menores (positivos) para termos
frequêntes como GOOD, INCREASE e LINE.
Usaremos a frequência em documentos para considerar
este aspecto no cálculo dos scores.
A frequência em documentos é o número de documentos
na coleção nos quais o termo ocorre.
29
30. Ponderação idf
dft é a frequência em documentos, o número de documentos nos quais
t ocorre.
dft é uma medida inversa de quão informativo é o termo t.
Definimos o peso idf de um termo t como segue:
(N é o número de documentos na coleção.)
idft é uma medida de quão informativo um determinado termo é.
Utilizamos [log N/dft ] ao invés [N/dft ] para “suavizar” o efeito do idf
Note que utilizamos uma transformação logarítmica tanto para a
frequêcia do termo quanto para a frequência em documento.
30
31. Exemplos para o idf
Calcule o idft usando a formula
termo dft idft
calpurnia 1 6
animal 100 4
sunday 1000 3
fly 10,000 2
under 100,000 1
the 1,000,000 0
31
32. Efeitos do idf na classificação
O idf afeta a classificação de documentos para consultas
com pelo menos dois termo.
Por exemplo, para consultas com “arachnocentric line”, a
ponderação do idf aumenta o peso relativo de
ARACHNOCENTRIC e diminui o peso relativo de LINE.
O idf tem pouco efeito na classificação de consultas com
um único termo.
32
33. Frequência na coleção vs. Frequência em
documento
palavra Frequência na Frequência em documento
coleção
INSURANCE 10440 3997
TRY 10422 8760
Frequência na coleção de t: número de termos t na coleção
Frequência em documento de t: número de documentos
onde t ocorre
Qual palavra representa um melhor termo de busca (e,
portanto, deve ter um maior peso)?
Este exemplo sugere que df (e idf) é melhor para
ponderação do cf (e “icf”).
33
34. Ponderação tf-idf
O tf-idf de um termo é o produto do seus pesos tf e idf.
Este é o esquema de ponderação mais conhecido na área
de recuperação da informação
Note: o “-” em tf-idf é um hífen e não um sinal de menos!
Nomes alternativos: tf.idf, tf x idf
34
35. Sumário: tf-idf
Atribua um peso tf-idf para cada termo t em cada
documento d:
O peso tf-idf . . .
. . . aumenta com o número de ocorrências do termo em um
documento. (frequência de termo)
. . . aumenta com a raridade do termo na coleção. (inverso da
frequência em documento)
35