見出し画像

TF-IDFについて解説します

情報検索やテキストマイニングの分野でよく使われるTF-IDFについて解説していきます

1. そもそも、TF-IDFって何よ?


TF-IDFとは、文章の中の単語がどれだけ大事かを数値で示す方法のことです。
「TF」と「IDF」はそれぞれ略語で、2つのパートに分かれています。

🐤まず、TFって何?

「TF」は「Term Frequency」の略で、日本語にすると「単語の頻度」という意味になります。
文章の中である単語が何回使われているかを数えることで、単語がどれだけ大事かを知ることができます。

例えば、「犬が好き!犬と遊ぶのは楽しい!」という文章があったとき、「犬」という単語は2回出てきますよね。この「2回」というのが「単語の頻度」です。

🐤じゃあ、IDFって?

「IDF」は「Inverse Document Frequency」の略で、日本語にすると「単語のレア度」という意味になります。難しそうですが、実はとてもシンプルな考え方です。

たくさんの文章の中で、単語の出現頻度が低いほど、その単語は珍しいと考えられ、大事な単語とみなされます。つまり、たくさんの文章でよく使われる単語は、特別な意味を持たないことが多いです。

例えば、「私」「あなた」「する」などの単語は、どの文章にもよく出てくるので、これらの単語が文章の中でどれだけ大事かを判断するのは難しいですよね。だから、「IDF」という値を使って、珍しい単語を重要視するようにしています。

🐤TFとIDFを組み合わせて

最後に、「TF」と「IDF」をかけ合わせることで、単語がその文章の中でどれだけ大事かを数値で示すことができます。この数値が高ければ高いほど、その単語は文章の中で重要だと言えるわけです。


2. TF-IDFはこんなところで活用されている


我々の生活の中でも、多くの場面でこの技術が活用されています。
以下、その具体的な例をいくつか紹介します。

🐶検索エンジン

GoogleやYahoo!などの検索エンジンは、ユーザーが入力したキーワードに基づいて関連するウェブページを検索・ランク付けするためにTF-IDFを使用しています。
ユーザーが「太陽の成り立ち」などのキーワードを入力すると、これらのキーワードがどれだけウェブページの中で重要かをTF-IDFのスコアによって評価し、関連するページを上位に表示します。

🐰文書の自動要約

ニュースサイトや学術論文のデータベースなどでは、長い文章を短く要約する機能が提供されることがあります。
TF-IDFを使用することで、文書中の重要なキーワードやフレーズを特定し、それを基に要約を生成します。

🐻‍❄️レコメンドシステム

AmazonやNetflixなどのオンラインプラットフォームは、ユーザーの過去の行動や好みに基づいて商品や映画のおすすめを行います。
TF-IDFは、ユーザーの興味や好みを表すキーワードを特定し、それに基づいて関連する商品やコンテンツを推薦する際に使われます。

🐮スパムメールの検出

メールサービスのスパムフィルタは、不要なメールや迷惑メールを自動で識別するためにTF-IDFを活用しています。
特定のキーワードが多く含まれるメールはスパムとして分類されることが多いため、TF-IDFのスコアを基にそのようなメールを検出します。


これらの例を通して、TF-IDFが現代の情報社会でどれだけ広く使われているかがわかると思います。多くのサービスやアプリケーションが、この技術を背景にしてユーザーに価値を提供しています。

3. TF-IDFを使ってみよう!〜計算方法の解説〜


TF-IDFを計算するためには、まず2つの値、「TF(Term Frequency)」と「IDF(Inverse Document Frequency)」をそれぞれ計算する必要があります。

🐹TF (Term Frequency) の計算

TFは、ある単語が特定の文書内でどれだけ出現するかを示す値です。

$$
\text{TF} = \frac{\text{特定の単語が文書内で出現する回数}}{\text{文書内の全単語の数}}
$$

例:

文書: "犬が好き!犬と遊ぶのは楽しい!" 単語: "犬"

この文書における"犬"のTFは、0.285 (犬」が2回出現し、文書内の単語数が7 =2÷7=0.285)となります。

🐼IDF (Inverse Document Frequency) の計算

IDFは、ある単語がどれだけの文書で使われているかを示す値の逆数です。

$$
\text{IDF} = \log\left(\frac{\text{全文書の数}}{\text{特定の単語を含む文書の数}}\right)
$$

例:

全文書数が1000あって、そのうち "犬"という単語を含む文書数が10あったとすると、"犬"のIDFは、2 (=log(1000/10))となります。

🦁TF-IDFの計算

最後に、TFとIDFの値をかけ合わせて、TF-IDFを計算します。

$$
\text{TF-IDF} = \text{TF} \times \text{IDF}
$$

例:

上記の例を使って計算すると、 "犬"のTF-IDF = 0.285 × 2 = 0.57 

この値が高ければ高いほど、"犬"という単語はその文書において重要であると言えます。逆に、この値が低ければ低いほど、"犬"という単語はその文書においてあまり重要でないということになります。



以上が、TF-IDFの基本的な計算方法です。実際のアプリケーションでは、さらに複雑な前処理や正規化の手法を取り入れることもありますが、ここでは基本的な計算方法を紹介しました。


TF-IDFを用いることで文書内の各単語の重要度を計算することができます。そして、この計算方法を利用して、検索エンジンや文章の自動要約などの様々なアプリケーションでテキストの情報を効率的に処理することが可能となります。


この記事が気に入ったらサポートをしてみませんか?