Pourquoi Lucene IDF a-t-il un +1 apparemment supplémentaire?

8

De la documentation de Lucene

IDF=1+log(numDocsdocFreq+1)

Dans d'autres références (c'est-à-dire wikipedia ), l'IDF est généralement calculé comme ou pour éviter de plonger de 0.log(numDocsdocFreq)log(numDocsdocFreq+1)

Je me rends également compte que Lucene utilise plutôt que pour calculer TF, mais ma compréhension est que ce n'est qu'une transformation préférée, probablement pour éviter .xlog(x)log(0)

Quelqu'un peut-il expliquer ce +1 supplémentaire dans le terme de Tsahal?

Greg Dean
la source

Réponses:

9

Tous les schémas de pondération TF-IDF ne sont que des méthodes heuristiques pour donner plus de poids à des termes inhabituels. Je ne suis pas sûr que les schémas TF-IDF aient généralement une base statistique solide derrière eux (voir référence 1), à l'exception de l'observation que TF-IDF a tendance à produire de meilleurs résultats que le simple comptage de mots. Étant donné que la qualité des résultats est la principale (unique?) Justification de TF-IDF en premier lieu, on pourrait dire que tester votre méthode avec et sans +1 et choisir la meilleure serait bien.

Si je lis correctement ce fil sckit learn , il semble que vous n'êtes pas la première personne à poser une question similaire sur l'ajout de 1 aux scores IDF. Le consensus sur ce fil est que +1 est également un comportement non standard. Je l'ai seulement survolé, mais le fil ne semble pas contenir une approbation ou une justification retentissante de +1.

Ainsi, le choix de +1 a pour effet de placer la borne inférieure de toutes les valeurs IDF à 1 plutôt qu'à 0. Cela revient à ajouter des documents contenant chaque mot à votre corpus. Je ne sais pas pourquoi cela pourrait être utile, mais c'est peut-être dans des contextes spécifiques. On pourrait même traiter un paramètre dans comme un paramètre de réglage, pour vous donner une famille plus flexible de schémas IDF avec comme limite inférieure.ecc+log(numDocsdocFreq+1)c

Lorsque la limite inférieure de l'IDF est nulle, le produit peut être 0 pour certains termes, de sorte que ces termes ne reçoivent aucun poids dans la procédure d'apprentissage; qualitativement, les termes sont si courants qu'ils ne fournissent aucune information pertinente à la tâche PNL. Lorsque la borne inférieure est différente de zéro, ces termes auront plus d'influence.term frequency×IDF

  1. John Lafferty et Guy Lebanon. « Diffusion Kernels on Statistical Manifolds ». Journal of Machine Learning. 2005.
Sycorax dit de réintégrer Monica
la source
Merci pour la réponse complète. J'espérais avoir une meilleure idée de la raison pour laquelle la limite inférieure de 1 pour l'IDF est utile. Il est intéressant que d'autres personnes se posent la même question, sans réelle réponse.
Greg Dean
@GregDean J'ai peur que cette explication soit la meilleure que je puisse gérer. J'ai fait quelques recherches supplémentaires pour essayer de trouver quelque chose de plus définitif, mais je n'ai pas eu beaucoup de chance.
Sycorax dit Réintégrer Monica