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?

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.

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.