Lucene IDFに一見追加+1があるのはなぜですか?


8

Luceneのドキュメントから

IDF=1+log(numDocsdocFreq+1)

他の参照(つまり、ウィキペディア)では、IDFは通常または、0によるダイビングを回避します。log(numDocsdocFreq)log(numDocsdocFreq+1)

LuceneがTFの計算にではなく使用していることも知っていますが、これはおそらくを避けるための好ましい変換であると私は理解してい。xlog(x)log(0)

誰かがIDF用語でその追加の+1を説明できますか?

回答:


9

すべてのTF-IDF重み付けスキームは、異常な用語により多くの重みを与えるためのヒューリスティック手法です。TF-IDFスキームが単純な単語数よりも優れた結果を生成する傾向があるという観察を除いて、TF-IDFスキームが一般にその背後に確かな統計的根拠があるかどうかはわかりません(参照1を参照)。結果の質はそもそもTF-IDFの主要な(唯一の)正当化であるので、+ 1を使用する方法と使用しない方法を試し、最適な方法を選択するのが良いと主張できます。

このsckit学習スレッドを正しく読んでいる場合、IDFスコアに1を追加することについて同様の質問をするのはあなたが最初ではないようです。そのスレッドに関するコンセンサスは、+ 1も非標準の動作であるということです。私はそれをすくい取りましたが、スレッドには+1の正当な裏書きまたは正当化が含まれていないようです。

したがって、+ 1を選択すると、すべてのIDF値の下限が0ではなく1に設定されます。これは、すべての単語を含むドキュメントをコーパスに追加するのと同じです。それが役立つかもしれない理由はわかりませんが、おそらく特定の状況にあります。IDFスキームのより柔軟なファミリーを提供するために、一部のパラメーターを調整パラメーターとしてこともできます彼らの下限として。ecc+log(numDocsdocFreq+1)c

IDFの下限が0の場合、積は一部の項で0になる可能性があるため、学習手順ではこれらの項にまったく重みが付けられません。定性的に、これらの用語は非常に一般的であるため、NLPタスクに関連する情報は提供されません。下限がゼロ以外の場合、これらの項の影響が大きくなります。term frequency×IDF

  1. ジョン・ラファティとガイ・レバノン。「統計多様体上の拡散カーネル。」機械学習のジャーナル。2005年

よくお答えいただきありがとうございます。IDFの下限1がなぜ有用であるかについて、より良いアイデアを得たいと思っていました。他の人々が同じ質問をしていて、本当の答えがないことは興味深い。
グレッグディーン

@GregDeanこの説明は私が管理できる最高のものだと思います。私はもっ​​と決定的なものを探すためにさらに調査を行いましたが、あまり運がありませんでした。
Sycoraxは、モニカを2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.