IDF入門:記事の希少性を測る

デジタル化を知りたい
先生、「逆文書頻度(IDF)」って、具体的にどういう意味ですか?よくわからないです。

デジタル化研究家
IDFは、ある単語が、たくさんの文書に現れるか、それとも珍しい文書にしか現れないかを表す指標だよ。もし、ある単語が珍しい文書にしか現れないなら、IDFの値は大きくなるんだ。

デジタル化を知りたい
なるほど。つまり、たくさんの文書に出てくる単語はIDFの値が小さく、珍しい文書にしか出てこない単語はIDFの値が大きいってことですね。でも、なぜそれが重要なんですか?

デジタル化研究家
それはね、珍しい単語は、その文書の内容を特徴づけるのに役立つからだよ。例えば、「人工知能」という単語は、多くの文書に出てくるのでIDFは小さいけど、「量子コンピューター」はあまり出てこないからIDFは大きくなる。つまり、「量子コンピューター」の方がその文書の特徴を表すのに重要なんだ。検索エンジンのランキングなどにも使われているんだよ。
IDFとは。
ある言葉が、どのくらい多くの文書に現れるかを表す指標について説明します。この指標は「逆文書頻度」と呼ばれ、英語の頭文字をとって「IDF」と略されます。ある言葉が、限られた文書にしか出てこない珍しい言葉であれば、この指標の値は大きくなります。逆に、多くの文書に現れる言葉であれば、値は小さくなります。
具体的には、全文書の中で、その言葉が含まれる文書の割合を計算し、その割合をひっくり返した値の対数を使って計算します。対数の計算には、通常2などの値を用います。計算した値は、0以上になります。しかし、計算の都合上、この値に1を足して使う場合もあります。
言葉のあらまし

「逆文書頻度」とは、簡単に言うと、ある言葉が、数多くの文書の中で、どのくらい珍しい言葉なのかを示す尺度のことです。英語では「Inverse Document Frequency」といい、その頭文字をとって「IDF」と呼ばれています。
この尺度は、ある言葉が、少ない文書にしか出てこない場合は値が大きくなり、多くの文書に出てくる場合は値が小さくなります。
例えば、「変化」や「情報」といった、日常的に使う言葉は、様々な文書に頻繁に登場します。そのため、これらの言葉の逆文書頻度は低くなります。逆に、「量子計算機」や「ブロックチェーン」といった専門的な言葉は、特定の分野の文書でしか使われないため、逆文書頻度は高くなります。
近年、計算機や大量の情報を使って様々な分析を行うことが盛んになっています。このような分析では、言葉の重要度を正しく測ることが欠かせません。そこで、この逆文書頻度が重要な役割を果たします。
例えば、ある言葉が、ニュース記事全体の中でどのくらい珍しいのかを調べたいとします。もし、その言葉の逆文書頻度が高ければ、その言葉は、その記事の中で重要なキーワードである可能性が高いと言えます。つまり、その言葉を使うことで、記事の内容をより的確に表すことができるのです。
このように、逆文書頻度は、言葉の重要度を測るための、なくてはならない指標となっています。特に、人工知能や大量情報の分析といった分野では、この指標が、分析の精度を上げるために、重要な役割を担っているのです。
| 言葉 | 出現頻度 | 逆文書頻度 | 重要度 |
|---|---|---|---|
| 変化 | 高 | 低 | 低 |
| 情報 | 高 | 低 | 低 |
| 量子計算機 | 低 | 高 | 高 |
| ブロックチェーン | 低 | 高 | 高 |
計算のしかた

計算の方法を、より詳しく説明します。ある言葉が、どの程度、たくさんの文章に現れるのか。それを数値で表す方法があります。それを「逆文章頻度」と言います。英語では「Inverse Document Frequency」、略してIDFと呼びます。
このIDFの値は、言葉ごとに計算します。計算には「対数」を使います。対数には底となる数が必要ですが、一般的には2を使います。計算式は、IDF = log₂(文章の総数 / その言葉を含む文章の数)となります。
具体例を見てみましょう。例えば、全部で100の文章があるとします。「計算」という言葉が、その中の10の文章に含まれているとします。この場合、「計算」という言葉のIDFは、log₂(100 / 10) = log₂(10) = 約3.32となります。
別の例として、「方法」という言葉が全部の100の文章に含まれているとしましょう。この場合、「方法」という言葉のIDFは、log₂(100 / 100) = log₂(1) = 0となります。つまり、どの文章にも含まれる言葉は、IDFが0になります。
逆に、「最新」という言葉がたった一つの文章にしか含まれていないとしましょう。この場合、「最新」という言葉のIDFは、log₂(100 / 1) = log₂(100) = 約6.64となります。IDFの値が高いほど、その言葉は珍しい言葉であることを示します。つまり、IDFは、言葉の希少性を測るための計算方法なのです。
| 言葉 | 出現文章数 | IDF (log₂(100/出現文章数)) | 希少性 |
|---|---|---|---|
| 計算 | 10 | 約3.32 | 普通 |
| 方法 | 100 | 0 | 低い (一般的) |
| 最新 | 1 | 約6.64 | 高い (珍しい) |
計算例

ここでは、実際に計算した例を用いて、言葉の珍しさを数値化する手法について説明します。
ある集まり全体の中に、特定の言葉を含む文書がどれだけ少ないかを示すことで、その言葉の珍しさを測ることができます。これを数値で表す方法の一つにIDFと呼ばれるものがあります。IDFは「逆文書頻度」の略で、文書全体の数と、ある特定の言葉を含む文書の数の比率を元に計算します。
具体的な例を考えてみましょう。全体の文書の数が100で、「人工知能」という語が10の文書に含まれているとします。この場合、IDFは2を底とする対数を使って、log₂(100/10) = log₂10 ≒ 3.32と計算されます。
もし、「人工知能」の代わりに「デジタル化」という語で計算し、全体の文書数が変わらず100のままで、「デジタル化」という語が50の文書に含まれているとすると、IDFの値はlog₂(100/50) = log₂2 = 1となります。
この二つの例を比べてみると、「人工知能」のIDF値は約3.32、「デジタル化」のIDF値は1です。「人工知能」のIDF値の方が大きいということは、「人工知能」という言葉を含む文書の方が少なく、全体の中で「人工知能」という言葉は「デジタル化」という言葉より珍しいと言えるのです。つまり、IDF値が大きいほど、その言葉は珍しく、特定の話題に特化していることを示しています。この手法は、膨大な量の文書の中から、特定の話題に関連する重要な言葉を見つけ出すのに役立ちます。
| 言葉 | 全文書数 | 該当語を含む文書数 | IDF | 珍しさ |
|---|---|---|---|---|
| 人工知能 | 100 | 10 | log₂(100/10) ≒ 3.32 | 珍しい |
| デジタル化 | 100 | 50 | log₂(100/50) = 1 | 人工知能よりは一般的 |
値の活用

値の活用とは、情報を取り扱う様々な場面でその値の持つ意味合いを生かして利用することです。情報を取り扱う場面で、データの重要度を測る尺度として、値を活用することは大変役に立ちます。例えば、たくさんの文章の中から、利用者の求める情報を探し出すことを考えてみましょう。利用者が検索窓に入力した言葉が、どのくらいの文章に含まれているかを調べます。もし、その言葉があまりにも多くの文章に含まれているなら、その言葉はありふれた言葉で、利用者が求めている特定の情報を探し出すには役立たないと考えられます。逆に、その言葉があまり多くの文章に含まれていないなら、その言葉は特徴的な言葉で、利用者が求めている特定の情報を探し出すのに役立つと考えられます。
このような考え方を利用して、文章の中から重要な言葉を見つけ出すことができます。例えば、新聞記事の中から、その記事の特徴を表す言葉を抜き出すことができます。あるいは、大量の顧客からの意見の中から、製品やサービスの改善に繋がる重要な意見を見つけ出すこともできます。近年では、人工知能による文章の作成や要約といった技術にも、値の活用が役立っています。人工知能は、大量の文章データから学習することで、文章の特徴や意味を理解します。そして、値を活用することで、より自然で分かりやすい文章を作成したり、重要な情報を簡潔にまとめた要約を作成したりすることができるのです。このように、値の活用は、情報検索や情報分析といった様々な分野で利用されており、私たちの生活をより便利で豊かにするために役立っています。膨大な情報の中から必要な情報を見つけ出したり、情報を整理して理解したりするために、値の活用はなくてはならないものとなっています。
| 場面 | 値の活用 | 効果 |
|---|---|---|
| 情報検索 | 単語の出現頻度 | 利用者の求める情報を探し出す |
| 情報分析 | 単語の出現頻度 |
|
| 人工知能 | 単語の出現頻度、文章の特徴や意味 |
|
注意点

単語の重要度を測る指標の一つに、逆文書頻度(IDF)というものがあります。これは、ある単語が、たくさんの文書に登場する一般的な単語なのか、それとも特定の文書にしか出てこない専門的な単語なのかを判断するのに役立ちます。IDFを計算する際には、いくつか注意すべき点があります。
まず、IDFは、単語がどのくらいの数の文書に出現したかを、全体の文書数と比較して計算します。そのため、比較対象となる文書の集合が異なれば、同じ単語でもIDFの値が変わってきてしまうのです。例えば、「人工知能」という単語を考えてみましょう。人工知能に関する専門書ばかりを集めた集合では、この単語は多くの文書に現れるため、IDFの値は小さくなります。逆に、様々な分野の本を集めた大きな図書館全体の蔵書を集合とした場合、「人工知能」という単語は一部の専門書にしか出てこないため、IDFの値は大きくなります。このように、IDFは相対的な指標なので、IDFを使う時は、どのような文書の集合を対象にしているのかを意識することが大切です。
次に、IDFは単語の出現回数だけを見ており、その単語が文書の中でどのような意味で使われているか、また周りの単語とどのような関係にあるのかといった文脈は考慮していません。例えば、「走る」という単語は、運動について書かれた文書にも、乗り物について書かれた文書にも現れる可能性があります。IDFだけを見ると、どちらの文書でも「走る」の重要度は同じように評価されてしまいます。しかし、文脈を考えると、運動に関する文書では「走る」は中心的な意味を持つかもしれませんが、乗り物に関する文書ではそれほど重要ではないかもしれません。つまり、IDFだけで単語の重要性を判断するのは十分ではなく、他の指標と組み合わせて使う必要があるのです。例えば、単語の出現回数とIDFを掛け合わせたTF-IDFという指標は、単語の重要度をより正確に捉えることができると言われています。このように、IDFの特性を理解し、適切に利用することが重要です。
| 項目 | 説明 |
|---|---|
| IDFの定義 | 単語の重要度を測る指標。多くの文書に現れる一般的な単語か、特定の文書にしか出てこない専門的な単語かを判断する。 |
| 計算方法 | 単語がどのくらいの数の文書に出現したかを、全体の文書数と比較して計算。 |
| 注意点1 | IDFは相対的な指標。IDFを使う時は、どのような文書の集合を対象にしているのかを意識する必要がある。人工知能を例に説明。 |
| 注意点2 | IDFは単語の出現回数だけを見ており、文脈は考慮していない。「走る」という単語を例に説明。 |
| 注意点3 | IDFだけで単語の重要性を判断するのは不十分。他の指標と組み合わせて使う必要がある。TF-IDFを例に説明。 |
定義に1を足す理由

言葉の重要度を測る指標の一つに、逆文書頻度というものがあります。これは、ある言葉が、どのくらい多くの文書に登場するかを基に、その言葉の珍しさを数値化したものです。文書全体に頻繁に登場する言葉は、特定の話題に特化しているとは考えにくいため、重要度は低く、逆に、特定の文書にしか出てこない言葉は、その文書の内容を特徴づける重要な言葉である可能性が高いため、重要度は高いと考えられます。
この逆文書頻度は、計算式によって求められます。計算式は、全ての文書の数を書庫の中にその言葉が含まれる文書の数で割った値の対数です。この計算式に従うと、もし、ある言葉が全ての文書に含まれる場合、計算式の分母と分子が同じになり、割り算の結果は1になります。1の対数は0です。つまり、どの文書にも含まれる言葉の重要度は0になります。
しかし、別の計算をする際に、この逆文書頻度を分母として使う場合があります。もし、逆文書頻度が0の場合、0で割ることになり、計算ができません。そこで、計算を成立させるために、逆文書頻度の計算式に1を足すという工夫がしばしば用いられます。1を足すことで、どの文書にも含まれる言葉の逆文書頻度は0ではなく1になり、0で割るという問題を回避できます。
さらに、この工夫には別の利点もあります。1を足すことで、全ての文書に現れる言葉と、多くの文書に現れる言葉の区別がより明確になります。もし、1を足さない場合、多くの文書に現れる言葉の逆文書頻度は、0に非常に近い小さな値になりますが、全ての文書に現れる言葉の逆文書頻度は、ちょうど0です。このわずかな差を見分けるのは難しい場合があります。しかし、1を足すことで、全ての文書に現れる言葉の逆文書頻度は1になり、多くの文書に現れる言葉の逆文書頻度は、1より少し大きい値になります。この差は、1を足さない場合に比べてずっと大きく、見分けやすくなります。
| 言葉の重要度 | 計算式 | 工夫と利点 |
|---|---|---|
| 低い | 全ての文書の数を書庫の中にその言葉が含まれる文書の数で割った値の対数 | 全ての文書に含まれる言葉は、重要度が低いと判断。 |
| 高い | 同上 | 特定の文書にしか出てこない言葉は、重要度が高いと判断。 |
| 計算不能 | (逆文書頻度)=0 | ある言葉が全ての文書に含まれる場合、逆文書頻度は0になるため、逆文書頻度を分母とする計算はできない。 |
| 計算可能 | (逆文書頻度)+1 | 逆文書頻度に1を加算することで、分母が0になることを防ぎ、計算を成立させる。 |
| 区別が明確 | 同上 | 1を加算することで、全ての文書に現れる言葉と多くの文書に現れる言葉の区別が明確になる。 |
