この記事でわかること
サッカー戦術文書を用いた TF-IDF(文書特徴抽出)の実装手順
- TF(単語頻度)・DF(文書頻度)・IDF(逆文書頻度) の計算過程と意味
- トークン化・前処理・数値化 などの自然言語処理ワークフロー
- TF-IDF計算・特徴語抽出・文書特徴化 を用いた文書分析手法の実装
- 掛け算の意味・対数変換・重み付け を用いた数学的背景の理解
- 情報検索・文書分類・推薦システム への応用と実用例の解釈
TF-IDFの仕組みと考え方:サッカー戦術文書で理解する文書特徴抽出
はじめに
自然言語処理や情報検索の分野で広く使われているTF-IDF(Term Frequency-Inverse Document Frequency)について、具体的なサッカー戦術文書を例に、計算過程を詳しく解説します。
TF-IDFは「その文書らしさ」を数値化する手法で、文書集合の中から各文書を特徴づける重要な単語を自動的に抽出できます。
TF-IDFとは何か
TF-IDF = 文書の特徴語を数値で特定する指標
- 目的: 各文書を特徴づける重要な単語を見つける
- 仕組み: TF(単語頻度) × IDF(逆文書頻度)の掛け算
- 効果: 一般的な単語の重要度を下げ、特徴的な単語の重要度を上げる
1. 文書集合の例
サッカーにおける各国の守備戦術を解説した3つの文書を考えます。
文書①(日本)
日本のサッカーにおける守備戦術の特徴は、組織的な連動とラインコントロールを重視した、規律性の高い守備である。
文書②(イギリス)
イギリスのサッカーにおける守備戦術の特徴は、フィジカルの強さと素早い切り替えを重視した、強度の高い組織的守備である。
文書③(ブラジル)
ブラジルのサッカーにおける守備戦術の特徴は、個々の選手の身体能力と即時のボール奪取を重視した、攻守一体型の守備である。
2. TF(Term Frequency:単語頻度)
TFとは、ある単語が「その文書の中でどれだけ重要か」を表す指標です。
TFの定義
TF(単語, 文書) = 単語の出現回数 / 文書内の総単語数
重要: TFは文書ごとに独立して計算されます。
① トークン化
各文書を単語に分割します:
文書①(10語)
日本 / サッカー / 守備 / 戦術 / 特徴 / 組織的 / 連動 / ラインコントロール / 規律性 / 守備
文書②(10語)
イギリス / サッカー / 守備 / 戦術 / 特徴 / フィジカル / 強さ / 切り替え / 組織的 / 守備
文書③(9語)
ブラジル / サッカー / 守備 / 戦術 / 特徴 / 身体能力 / ボール奪取 / 攻守一体型 / 守備
② TF計算結果
| 単語 | 文書①TF | 文書②TF | 文書③TF |
|---|---|---|---|
| サッカー | 1/10 = 0.10 | 1/10 = 0.10 | 1/9 ≈ 0.11 |
| 守備 | 2/10 = 0.20 | 2/10 = 0.20 | 2/9 ≈ 0.22 |
| 戦術 | 1/10 = 0.10 | 1/10 = 0.10 | 1/9 ≈ 0.11 |
| 特徴 | 1/10 = 0.10 | 1/10 = 0.10 | 1/9 ≈ 0.11 |
| 組織的 | 1/10 = 0.10 | 1/10 = 0.10 | 0 |
| ラインコントロール | 1/10 = 0.10 | 0 | 0 |
| フィジカル | 0 | 1/10 = 0.10 | 0 |
| 身体能力 | 0 | 0 | 1/9 ≈ 0.11 |
| ボール奪取 | 0 | 0 | 1/9 ≈ 0.11 |
③ TFだけでは不十分な理由
TFのみを見ると、「守備」「サッカー」「戦術」「特徴」が高い値を持ちますが、これらはすべての文書で高頻度のため、文書を区別する力がありません。
3. DF(Document Frequency:文書頻度)
DFとは、ある単語が「何個の文書に登場したか」を表す指標です。
DFの定義
DF(単語) = その単語が出現する文書数
重要: DFでは同じ文書内で何回出現しても1回と数えます。
DF計算結果
| 単語 | 出現文書 | DF |
|---|---|---|
| サッカー | 文書①②③ | 3 |
| 戦術 | 文書①②③ | 3 |
| 特徴 | 文書①②③ | 3 |
| 守備 | 文書①②③ | 3 |
| 組織的 | 文書①② | 2 |
| ラインコントロール | 文書① | 1 |
| フィジカル | 文書② | 1 |
| 身体能力 | 文書③ | 1 |
| ボール奪取 | 文書③ | 1 |
直感的理解
「組織的」は日本とイギリスの文書に共通して現れるためDF=2となり、全文書共通語(DF=3)よりは特徴的ですが、国固有の戦術語(DF=1)ほど強い特徴語ではありません。
4. IDF(Inverse Document Frequency:逆文書頻度)
IDFは文書集合全体での単語の希少性を表します。
IDFの定義
IDF(単語) = log(総文書数 / DF(単語))
なぜDFの逆数を使うのか?
- 多くの文書に出る単語ほど重要度を下げたい
- 少数の文書にしか出ない単語ほど重要度を上げたい
- → DFと重要度を逆の関係にする必要があるため
なぜ対数(log)を取るのか?
- 極端な差を緩和: DFの差が極端に効きすぎるのを防ぐ
- 扱いやすいスケール: 数値を扱いやすいスケールにする
- 人間の感覚に近い: 情報量の感覚に近づける
IDF計算結果
| 単語 | DF | IDF |
|---|---|---|
| サッカー | 3 | log(3/3) = 0 |
| 戦術 | 3 | log(3/3) = 0 |
| 特徴 | 3 | log(3/3) = 0 |
| 守備 | 3 | log(3/3) = 0 |
| 組織的 | 2 | log(3/2) ≈ 0.405 |
| ラインコントロール | 1 | log(3/1) ≈ 1.099 |
| フィジカル | 1 | log(3/1) ≈ 1.099 |
| 身体能力 | 1 | log(3/1) ≈ 1.099 |
| ボール奪取 | 1 | log(3/1) ≈ 1.099 |
重要なポイント
- DF が最大(= 文書数) → IDF = 0 → 文書を区別する力がない
- DF が小さい → IDF が大きい → 文書固有の特徴語
5. TF-IDF(最終的な重み)
TF-IDFの定義
TF-IDF(単語, 文書) = TF(単語, 文書) × IDF(単語)
なぜ掛け算なのか?
掛け算には以下の性質があります:
- どちらか一方が小さければ結果も小さい
- 両方が大きいときだけ大きくなる
これは「文書内で重要」かつ「文書集合全体で珍しい」というAND条件を自然に表現しています。
TF-IDF計算結果
| 単語 | 文書①(日本) | 文書②(イギリス) | 文書③(ブラジル) |
|---|---|---|---|
| ラインコントロール | 0.10 × 1.099 = 0.110 | 0 | 0 |
| フィジカル | 0 | 0.10 × 1.099 = 0.110 | 0 |
| ボール奪取 | 0 | 0 | 0.11 × 1.099 ≈ 0.121 |
| 組織的 | 0.10 × 0.405 = 0.041 | 0.10 × 0.405 = 0.041 | 0 |
| サッカー | 0.10 × 0 = 0 | 0.10 × 0 = 0 | 0.11 × 0 = 0 |
| 守備 | 0.20 × 0 = 0 | 0.20 × 0 = 0 | 0.22 × 0 = 0 |
6. 結果の解釈
この表が示していること(超重要)
- ラインコントロール → 日本文書だけに現れる → 高IDF → 日本の特徴語
- フィジカル → イギリス文書だけ → 高IDF → イギリスの特徴語
- ボール奪取 → ブラジル文書だけ → 高IDF → ブラジルの最強特徴語
- 組織的 → 日本・イギリスに共通 → IDFが下がり → 重みは中程度
- サッカー・守備 → 全文書に共通 → IDF=0 → 特徴語として無効
サッカー文書での直感的理解
「サッカー」の場合
- TF:一定以上ある(各文書に登場)
- IDF:低い(すべての文書に共通)
- → TF-IDF は低い(文書間の違いを生まない一般語)
「ラインコントロール」「フィジカル」「ボール奪取」の場合
- TF:相対的に高い(該当文書内で戦術の核心語として使用)
- IDF:高い(他の文書には出現しない)
- → TF-IDF は高い(その文書を特徴づける語として強調)
まとめ
TF-IDF = 「その文書らしさ」を数値化する指標
- TF: 文書内での単語の重要度
- IDF: 文書集合での単語の希少性
- TF×IDF: 両方を満たす単語を強調
TF-IDFは、文書内で使われており(TF)、かつ他文書では珍しい(IDF)単語だけを数値として浮かび上がらせる仕組みです。
つまり、TF-IDFは「その文書らしさ」を持つ単語を数値で表す指標なのです。
実用例
TF-IDFは以下の分野で広く活用されています:
- 情報検索: 検索クエリと文書の関連度計算
- 文書分類: ニュース記事のカテゴリ分類
- 推薦システム: 類似文書の発見
- キーワード抽出: 文書の重要キーワード自動抽出
この基本的な理解があれば、より高度な自然言語処理手法(Word2Vec、BERT等)への発展も理解しやすくなります。