TF-IDF計算ツールとは?
TF-IDF(Term Frequency–Inverse Document Frequency/単語頻度・逆文書頻度)は、ある単語が大量の文書集合(コーパスと呼びます)の中の1つの文書にとってどれほど重要かを数値で表す指標です。情報検索、検索エンジン、テキストマイニングなどの分野で広く使われています。本ツールでは、文書本文・対象とする単語・コーパス全体の文書数・そのうち単語を含む文書数を入力すると、単語頻度(TF)、逆文書頻度(IDF)、そして両者を掛け合わせたTF-IDFスコアを自動で算出します。
使い方
- 文書:分析したい文書のテキストを貼り付けます。
- 単語:スコアを求めたい単語またはフレーズを入力します。
- コーパスサイズ:コーパス全体に含まれる文書の総数(\(N\))です。
- 単語を含む文書数:その単語が少なくとも1回登場する文書の数です。
本ツールは、入力された文書内に単語が何回出現するかを数え、それを総単語数で割ったうえで、コーパス全体におけるその単語の希少性と組み合わせて計算します。
計算式の解説
標準的なTF-IDFの計算式は次のとおりです。
$$\begin{gathered} \text{TF-IDF} = \text{TF} \times \text{IDF} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \text{TF} &= \dfrac{\text{count of }\text{Term}\text{ in }\text{Document}}{\text{total words in }\text{Document}} \\[0.6em] \text{IDF} &= \ln\!\left(1 + \dfrac{\text{Corpus Size}}{\text{Docs with Term} + 1}\right) \end{aligned} \right. \end{gathered}$$- TF =(文書内で単語が出現した回数)÷(文書内の総単語数)
- IDF = \(\log\)(\(N\) ÷ 単語を含む文書数)
- TF-IDF = TF × IDF
TF-IDFスコアが高いほど、その単語は対象の文書内では頻繁に登場する一方、コーパス全体ではめったに現れないことを意味します。これは、その単語がその文書を特徴づける重要な手がかりであることを示す強いシグナルです。
具体的な計算例
例えば、文書が100語からなり、その中に「marketing(マーケティング)」という単語が5回登場するとします。コーパスには1,000件の文書が含まれ、そのうち100件が「marketing」に言及しているとしましょう。
- TF = \(5 \div 100 = 0.05\)
- IDF = \(\log(1000 \div 100) = \log(10) = 1\)(底が10の場合)
- TF-IDF = \(0.05 \times 1 = 0.05\)
もし「marketing」が10件の文書にしか含まれていなければ、IDFは \(\log(100) = 2\) に上昇し、スコアは0.10へと倍増します。このように、より希少で特徴的な単語ほど高く評価される仕組みです。
よくある質問
IDFでなぜ対数(log)を使うのですか?対数を用いることで、極端に希少な単語の影響を抑え、たった1回の出現がスコアを支配してしまうのを防ぎます。これにより、結果のバランスが保たれます。
対数の底はどれを使えばよいですか?底10の常用対数と自然対数(\(\ln\))のどちらもよく使われます。底はスコア全体を一律に拡大・縮小するだけなので、同じコーパス内での比較であればどちらを使っても妥当性は保たれます。
スコアが0になるのはどういう意味ですか?すべての文書にその単語が含まれている場合(\(N\)=単語を含む文書数)、IDFは \(\log(1) = 0\) となり、TF-IDFスコアも0になります。つまり、その単語には文書を区別する価値がないことを意味します。