テキストの重要度を測る TF-IDF を計算する
TF-IDF(Term Frequency-Inverse Document Frequency)は、コーパスと相対的な文書内の単語の重要度を測る指標です。検索やテキストマイニングに使われます。
- 1
TF-IDF = TF × IDF。TF(単語頻度)= 文書内の単語の出現回数 / 文書内の総単語数。IDF(逆文書頻度)= log(総文書数 / その単語を含む文書数)。多くの文書に出現する単語の IDF は低くなります(ありふれた単語)。特定の文書にしかない単語の IDF は高くなります(特徴的な単語)。TF-IDF は、ある文書では高頻度だがコーパス全体ではまれな単語に対して高くなります。
- 2 ワードカウント →
各文書の単語頻度を数えます。これが TF(生のカウント)です。サイズの異なる文書間でスコアを比較できるよう、文書長で正規化しましょう。すべての文書から語彙を構築します。
- 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 を使いましょう。
このタスクを解決するワークフロー
SQL フォーマットと単語統計によるドキュメント化
SQL クエリを整形し、その後フォーマットされた出力を単語統計で分析する。 パイプライン
Lorem Ipsum 生成と単語カウント
Lorem Ipsum テキストを生成し、その後単語をカウントする。 パイプライン
テキストのクリーンアップ後の単語統計分析
テキストをトリムして正規化し、その後単語/文字/行統計を計算する。 パイプライン
行の重複除去と単語カウント
行をソートして重複を除去し、その後残りの単語をカウントして簡単な在庫を得る。 パイプライン
テキストの小文字化と単語カウント
テキストのケースを正規化し、その後分析のために単語をカウントする。 パイプライン
URL 除去と単語カウント
テキストから URL を除去し、その後残りの単語をカウントする。 パイプライン
Title Case と単語カウント
Title Case に変換し、その後単語をカウントする。 パイプライン
テキストの折り返しと単語カウント
長いテキストを折り返し、その後結果の単語をカウントする。 パイプライン
関連ツール
ワードカウント
Count characters, words, lines, sentences, paragraphs, byte size, and estimate reading time。無料、プライベート、100%クライアントサイド。 ツール
文字出現頻度統計
Count character or word frequency in text。無料、プライベート、100%クライアントサイド。 ツール
正規表現テスター
Test regular expressions with match highlighting, capture groups, and replace preview。無料、プライベート、100%クライアントサイド。 ツール