Por que o Lucene IDF tem um +1 aparentemente adicional?

8

Dos documentos Lucene

IDF=1+log(numDocsdocFreq+1)

Em outras referências (isto é, wikipedia ), o IDF é normalmente calculado como ou para evitar mergulhar em 0.log(numDocsdocFreq)log(numDocsdocFreq+1)

Também percebo que o Lucene usa vez de para calcular o TF, mas meu entendimento é que essa é apenas uma transformação preferida, provavelmente para evitar .xlog(x)log(0)

Alguém pode explicar esse +1 adicional no termo da IDF?

Greg Dean
fonte

Respostas:

9

Todos os esquemas de ponderação TF-IDF são apenas métodos heurísticos para dar mais peso a termos incomuns. Não tenho certeza de que os esquemas TF-IDF geralmente tenham uma base estatística sólida por trás deles (consulte a referência 1), exceto pela observação de que o TF-IDF tende a produzir melhores resultados do que a simples contagem de palavras. Como a qualidade dos resultados é a principal justificativa (única?) Do TF-IDF em primeiro lugar, pode-se argumentar que tentar seu método com e sem +1 e escolher o melhor seria bom.

Se estou lendo este tópico de aprendizado do sckit corretamente, parece que você não é a primeira pessoa a fazer uma pergunta semelhante sobre a adição de 1 à pontuação do IDF. O consenso nesse segmento é que +1 também é um comportamento fora do padrão. Eu só dei uma olhada nele, mas o tópico não parece conter um endosso ou justificativa retumbante de +1.

Portanto, a escolha de +1 tem o efeito de colocar o limite inferior em todos os valores da IDF em 1, e não em 0. Isso é o mesmo que adicionar documentos contendo todas as palavras ao seu corpus. Não sei por que isso pode ser útil, mas talvez seja em contextos específicos. Pode-se até tratar algum parâmetro em como um parâmetro de ajuste, para fornecer uma família mais flexível de esquemas de IDF com como limite inferior.ecc+log(numDocsdocFreq+1)c

Quando o limite inferior do IDF é zero, o produto pode ser 0 para alguns termos, para que esses termos não tenham peso algum no procedimento de aprendizado; qualitativamente, os termos são tão comuns que não fornecem informações relevantes para a tarefa da PNL. Quando o limite inferior for diferente de zero, esses termos terão mais influência.term frequency×IDF

  1. John Lafferty e Guy Lebanon. " Núcleos de difusão em variedades estatísticas ". Journal of Machine Learning. 2005.
Sycorax diz restabelecer Monica
fonte
Obrigado pela resposta completa. Eu esperava ter uma idéia melhor de por que o limite inferior de 1 para IDF é útil. Interessante que outras pessoas tenham a mesma pergunta, sem resposta real.
Greg Dean
@ GregDean Receio que esta explicação seja a melhor que eu possa gerenciar. Eu fiz mais algumas pesquisas para tentar encontrar algo mais definitivo, mas não tive muita sorte.
Sycorax diz Restabelecer Monica