Prática 12 — Algoritmo de Rocchio

Propaganda
GSI024: Organização e Recuperação de Informação
2o semestre, 2015
Prática 12 — Algoritmo de Rocchio
Prof. Marcelo Keese Albertini
Universidade Federal de Uberlândia
O algoritmo de “Rocchio” de expansão de consultas pode ser implementado usando as
operações de um ı́ndice direto.
Objetivo:
• Implementar o algoritmo de Rocchio na classe de interface com o usuário Guglio.java.
Esse algoritmo é utilizado para modificar uma consulta segundo a opinião de
usuário sobre quais documentos são releventes e não relevantes.
Entradas esperadas:
• Valores de parâmetros α, β e γ utilizados no algoritmo de Rocchio
• Arquivos do ı́ndice direto: indiceDiretoDocs.dat e indiceDiretoTermIds.dat.
• Arquivos do ı́ndice invertido: index.dat, postings.dat, dic.txt, TF.dat
Saı́das produzidas:
• Classe Guglio.java que permite o usuário modificar consulta de acordo com
quais documentos ele considera relevante ou não relevante para a consulta atual
e mostra ranking de documentos encontrados para a consulta modificada.
Sugestões:
• Modificar Guglio.java para permitir usuário indicar quais documentos são relevantes
e quais não são relevantes.
– Consulta inicial q0 , conjunto R = {d1 , . . . , di , . . . , dN } de docId de documentos
considerados com relevantes e conjunto N R = {dn1 , . . . , dnj , . . . , dnM } de
docId de documentos não relevantes
• Produzir consulta modificada contendo somente os 10 termos com maior pontuação
TF-IDF obtida com a equação do algoritmo de Rocchio:
q = α × q0 + β
N
M
1 X~
1 X~
di − γ
dnj
N i=1
M j=1
Habilidades praticadas:
1. Usar ı́ndices direto
• Usar operação do ı́ndice direto HashMap<Integer, Double> getDocTFIDF(int
docId, IndiceInvertido ii) para obter representação de cada documento.
Download