Warum hat Lucene IDF eine scheinbar zusätzliche +1?


8

Aus den Lucene-Dokumenten

IDF=1+log(numDocsdocFreq+1)

In anderen Referenzen (z. B. Wikipedia ) wird IDF normalerweise als oder , um ein Tauchen um 0 zu vermeiden.log(numDocsdocFreq)log(numDocsdocFreq+1)

Mir ist auch klar, dass Lucene anstelle von zur Berechnung von TF verwendet, aber ich verstehe, dass dies nur eine bevorzugte Transformation ist, wahrscheinlich um zu vermeiden .xlog(x)log(0)

Kann jemand diese zusätzlichen +1 im IDF-Begriff erklären?

Antworten:


9

Alle TF-IDF-Gewichtungsschemata sind nur heuristische Methoden, um ungewöhnlichen Begriffen mehr Gewicht zu verleihen. Ich bin mir nicht sicher, ob TF-IDF-Schemata im Allgemeinen eine solide statistische Grundlage haben (siehe Referenz 1), mit Ausnahme der Beobachtung, dass TF-IDF tendenziell bessere Ergebnisse liefert als einfache Wortzahlen. Da die Qualität der Ergebnisse in erster Linie die primäre (einzige?) Rechtfertigung für TF-IDF ist, könnte man argumentieren, dass es in Ordnung wäre, Ihre Methode mit und ohne +1 auszuprobieren und die beste auszuwählen.

Wenn ich diesen sckit-Lernthread richtig lese , scheinen Sie nicht die erste Person zu sein, die eine ähnliche Frage zum Hinzufügen von 1 zu IDF-Scores aufwirft . Der Konsens in diesem Thread ist, dass +1 ebenfalls kein Standardverhalten ist. Ich habe es nur überflogen, aber der Thread scheint keine eindeutige Bestätigung oder Begründung von +1 zu enthalten.

Die Wahl von +1 hat also zur Folge, dass die Untergrenze für alle IDF-Werte bei 1 und nicht bei 0 liegt. Dies entspricht dem Hinzufügen von Dokumenten, die jedes Wort zu Ihrem Korpus enthalten. Ich bin mir nicht sicher, warum das hilfreich sein könnte, aber vielleicht in bestimmten Kontexten. Man könnte sogar einen Parameter in als , um eine flexiblere Familie von IDF-Schemata zu erhalten mit als Untergrenze.c c + log ( numDocseccc+log(numDocsdocFreq+1)c

Wenn die Untergrenze von IDF Null ist, kann das Produkt für einige Begriffe 0 sein, so dass diese Begriffe im Lernvorgang überhaupt kein Gewicht erhalten. Qualitativ sind die Begriffe so häufig, dass sie keine für die NLP-Aufgabe relevanten Informationen enthalten. Wenn die Untergrenze ungleich Null ist, haben diese Begriffe mehr Einfluss.term frequency×IDF

  1. John Lafferty und Guy Lebanon. " Diffusionskerne auf statistischen Mannigfaltigkeiten ." Zeitschrift für maschinelles Lernen. 2005.

Vielen Dank für die durchgehende Antwort. Ich hatte gehofft, eine bessere Vorstellung davon zu bekommen, warum die Untergrenze von 1 für IDF nützlich ist. Interessant, dass andere Leute die gleiche Frage haben, ohne echte Antwort.
Greg Dean

@ GregDean Ich befürchte, dass diese Erklärung die beste ist, die ich verwalten kann. Ich recherchierte weiter, um etwas Bestimmtes zu finden, hatte aber nicht viel Glück.
Sycorax sagt Reinstate Monica
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.