コンテンツへスキップ
uencoder

テキストの重要度を測る TF-IDF を計算する

TF-IDF(Term Frequency-Inverse Document Frequency)は、コーパスと相対的な文書内の単語の重要度を測る指標です。検索やテキストマイニングに使われます。

  1. 1

    TF-IDF = TF × IDF。TF(単語頻度)= 文書内の単語の出現回数 / 文書内の総単語数。IDF(逆文書頻度)= log(総文書数 / その単語を含む文書数)。多くの文書に出現する単語の IDF は低くなります(ありふれた単語)。特定の文書にしかない単語の IDF は高くなります(特徴的な単語)。TF-IDF は、ある文書では高頻度だがコーパス全体ではまれな単語に対して高くなります。

  2. 2
    ワードカウント →

    各文書の単語頻度を数えます。これが TF(生のカウント)です。サイズの異なる文書間でスコアを比較できるよう、文書長で正規化しましょう。すべての文書から語彙を構築します。

  3. 3
    文字出現頻度統計 →

    文字分布を分析してテキストコーパスを理解します。これは単語レベル分析の補完です。テキストのパターンの中には文字レベルのもの(コード、URL など)があります。包括的なテキスト分析には、単語頻度と文字頻度の両方を使いましょう。

よくある質問

TF-IDF スコアが高いとはどういう意味?
その単語がこの文書で高頻度(TF が高い)であり、コーパス全体ではまれ(IDF が高い)ということです。つまりその単語はこの文書に特徴的で、文書のトピックを特徴づけています。検索エンジンは TF-IDF で文書をランク付けします。クエリ語の TF-IDF がある文書内で高いほど、その文書はクエリに関連していると判断されます。
TF-IDF と BM25 の違いは?
BM25 は TF-IDF の改良版で、Elasticsearch と Lucene で使われています。TF を飽和させ(100 回出現する単語が 1 回出現の 100 倍関連するとはしない)、文書長を正規化します。検索ランキングでは、生の TF-IDF より BM25 の方が一般に優れています。本番の検索には BM25 を、教育や単純な用途には TF-IDF を使いましょう。

このタスクを解決するワークフロー

関連ツール