自然言語処理

文書検索の基礎手法 TF-IDF

文書検索の基礎手法に、TF-IDFという手法があります。

TF(Term Frequency) 出現頻度

TF(Term Frequency) は、ある文書における単語の出現頻度のことを指します。

tf = そのドキュメントでの出現回数 / そのドキュメントで出現したすべての単語数

文章中に出現する頻度が高ければ高いほど、その文章で重要な単語であるという重み付け方法です。

英語だと、is、that など be動詞や代名詞などの重要ではない単語に重みがよってしまう問題があります。

その欠点を補うのが、IDF(Inverse Document Frequency) 逆文書頻度です。

IDF(Inverse Document Frequency)

IDF(Inverse Document Frequency)は、他の文書では出現しないめずらしい単語に対する重み付けを指します。

IDFを計算するにはまず、DF(Document Frequency)を計算します。

DF(Document Frequency)とは、文書集合のなかである単語が該当文書に含まれる回数のことです。

その単語が出現したドキュメント数 / 全ドキュメント数

全部で100のドキュメントがあったとすると、be動詞や代名詞が使われないドキュメントはめったにないでしょう。

その場合、DFは 100 / 100 = 1 となります。

IDFは、Document Frequency の逆数をとったもので、0での割り算をなくすために分母に+1をすることが多いです。

idf = log(1/(df + 1))

TF-IDF

tf(どれだけ出現頻度が高いか?) と idf(どれだけめずらしい単語なのか?)の値を変え合わせた値が TF-IDFです。

直感的な考えがそのまま計算式になっている非常にシンプルな手法です。

-自然言語処理