G検定 練習問題 #0067・自然言語処理

TF-IDFによる単語の重み

ディープラーニングの応用例 › 自然言語処理 単一選択 難易度 標準

あるニュースサイトが、形態素解析で記事を単語に分割し、TF-IDFで記事ごとの特徴語を抽出する。TFは「記事内の出現回数÷記事の総単語数」、IDFは「log10(全記事数÷その単語を含む記事数)」とする。全記事数は10,000件である。総単語数200語の記事Aで、「推論」は4回出現して100件の記事に含まれ、「する」は10回出現して全記事に含まれる。記事Aにおける2語のTF-IDFとして、最も適切なものを1つ選べ。

正解と解説を見る

解説

正解 A

この問題の論点:TF-IDFによる単語の重み

ポイント

TF-IDFは記事内の出現頻度(TF)と語のめずらしさ(IDF)の積です。どの記事にも出る語の重みは0に近づきます。

選択肢ごとの解説

  1. A

    適切 正解

    「推論」はTF=4÷200=0.02、IDF=log10(10,000÷100)=log10(100)=2で、0.02×2=0.04です。「する」はIDF=log10(10,000÷10,000)=log10(1)=0なので、TF-IDFは0になります。

  2. B

    不適切

    これはTFだけの値です。TFのみで比べると、「する」のようにどの記事にも出る語の重みが大きくなります。IDFを掛けることで、多くの記事に共通する語の重みを下げます。

  3. C

    不適切

    これはIDFだけの値です。IDFは語のめずらしさを表しますが、記事内でどれだけ使われたかは反映しません。TF-IDFはTFとIDFの積で、「推論」は0.02×2=0.04です。

  4. D

    不適切

    「推論」は正しく計算できていますが、「する」はIDFを掛け忘れてTFのままになっています。全記事に含まれる語はIDFが0になり、TF-IDFも0です。

補足

BoW(Bag-of-Words)は、語順を無視して、文書を単語ごとの出現回数のベクトルで表す方法です。TF-IDFは、その回数を語のめずらしさで重み付けし直したものと考えられます。日本語は単語の間に空白がないため、まず形態素解析で単語に分割します。なお、IDFには対数の底を変える、分母に1を足すなどの変種があります。ここでは問題文の定義に従って計算しています。

試験での狙われ方

TFとIDFがそれぞれ何を表すかや、多くの文書に出る語の重みがどうなるかを問う形が見られます。

表示設定

テーマ
文字の大きさ
問題演習