TF-IDFで文章の重要度を測る
AIを知りたい
先生、「TF-IDF」ってよく聞くんですけど、何のことか教えてもらえますか?
AIエンジニア
はい。「TF-IDF」は、たくさんの文章の中から、ある特定の単語がどれくらいその文章にとって重要なのかを数値で表す方法です。例えば、たくさんのニュース記事の中から、「野球」に関する記事を見つけたい時に役立ちます。
AIを知りたい
なるほど。でも、どうやって計算するんですか?
AIエンジニア
簡単に言うと、ある単語がその文章に何回出てきているか(単語の出現頻度)と、その単語が全部の文章の中でどれくらい珍しいか(単語の希少性)を掛け合わせて計算します。ある文章にたくさん出てきて、しかも他の文章にはあまり出てこない単語ほど、その文章にとって重要な単語だと考えられるわけです。
TF-IDFとは。
ある文章の中に、ある言葉がどれくらい重要かを計算する仕組みに「TF-IDF」というものがあります。これは、二つの値を掛け合わせて計算します。一つ目は、ある文章の中でその言葉がどれくらい出てきているかという値です。二つ目は、たくさんの文章の中で、その言葉を含む文章がどれくらいあるかを表す値です。この二つの値を使うことで、ある文章にとって、その言葉がどれくらい特別で重要なものかを測ることができます。
TF-IDFとは
「単語の頻度–逆文書頻度」と訳される「TF-IDF」は、ある文章の中で使われている単語が、その文章にとってどれほど大切な単語なのかを数値で表すための方法です。情報を探したり、文章から意味を読み解いたりする場面で、この方法は広く使われています。「TF-IDF」は二つの要素を組み合わせて計算されます。一つは、単語の出現頻度(TF)です。これは、ある単語が一つの文章の中で何回出てきたかを数えたものです。もう一つは、逆文書頻度(IDF)です。これは、たくさんの文章の中で、その単語がどれくらいの数の文章で使われているかを表すものです。多くの文章で出てくる単語は、一つの文章を特徴づける特別な単語ではないと考えられます。例えば、「は」「の」「が」といった言葉は、ほとんどの文章に出てくるため、特定の文章を特徴づける言葉としてはあまり重要ではありません。逆に、特定の文章にだけ出てくる単語は、その文章の内容を特徴づける上で重要な役割を持つと考えられます。例えば、専門的な言葉や、特定の分野で使われる言葉などは、その文章が何について書かれているのかを理解する上で重要な手がかりになります。「TF-IDF」では、TFとIDFを掛け合わせることで、単語の重要度を計算します。ある文章の中で何度も出てきて、かつ他の文章にはあまり出てこない単語は、「TF-IDF」の値が高くなります。つまり、その文章にとって重要な単語であると判断されます。このように、「TF-IDF」を使うことで、文章の中で重要な単語を自動的に見つけることができます。この技術は、検索エンジンの結果をより適切なものにしたり、大量の文章データから重要な情報を抽出したりするのに役立っています。例えば、インターネットで調べたい言葉を入力すると、検索エンジンは「TF-IDF」のような技術を使って、その言葉と関連性の高いウェブページを探し出し、表示します。また、「TF-IDF」は、文章を要約したり、文章同士の類似度を測ったりするのにも使われています。膨大な量の文章データを扱う必要がある場面で、「TF-IDF」は非常に強力な道具となるのです。
要素 | 説明 | 例 |
---|---|---|
TF (単語の出現頻度) | ある単語が一つの文章の中で何回出てきたかを数えたもの | 「情報」が1つの文章中に3回出現 |
IDF (逆文書頻度) | たくさんの文章の中で、その単語がどれくらいの数の文章で使われているかを表すもの。多くの文章で出てくる単語は、一つの文章を特徴づける特別な単語ではないと考えられる。 | 「は」「の」「が」は多くの文章に出現するためIDF値は低い。「専門用語」は特定の文章にのみ出現するためIDF値は高い |
TF-IDF | TFとIDFを掛け合わせたもの。ある文章の中で何度も出てきて、かつ他の文章にはあまり出てこない単語は、TF-IDFの値が高くなる。 | 専門用語はTF値が低くてもIDF値が高いため、TF-IDF値は高くなる可能性がある。 |
単語の出現頻度
言葉の現れ具合を調べることは、文章の特徴を掴む上でとても大切です。そのために、「単語頻度」という指標をよく使います。これは、ある言葉が、ある文章の中で何回出てくるかを示すものです。単純に数え上げるだけでも意味はありますが、文章の長さが違うと、どうしても長い文章では特定の言葉が多く出てしまうため、単純な回数だけでは比較が難しくなります。
例えば、「りんご」という言葉を考えてみましょう。1000文字の文章の中に「りんご」が5回出てくるとします。別の2000文字の文章には「りんご」が8回出てくるとします。回数は後者の方が多いですが、文章の長さが倍なので、「りんご」という言葉が現れる割合で考えると、実は前者の文章の方が「りんご」という言葉が重要な役割を果たしている可能性があります。
そこで、文章の長さの違いによる影響を少なくするために、単語頻度を文章全体の単語数で割って調整します。これを「正規化」と言います。具体的には、ある言葉の出現回数を、その文章に含まれる全ての言葉の総数で割ります。先ほどの例で言うと、1000文字の文章に含まれる全ての言葉が1000個、2000文字の文章に含まれる全ての言葉が2000個だとすると、前者の「りんご」の単語頻度は 5 / 1000 = 0.005、後者は 8 / 2000 = 0.004 となります。こうすることで、文章の長さの影響を取り除き、異なる長さの文章同士でも、特定の言葉が現れる割合を正しく比べることができるようになります。
このように、正規化された単語頻度は、ある言葉がその文章の中でどれほど重要かを判断する一つの材料となります。そして、この指標は、情報検索や文章分類、その他多くの自然言語処理の場面で活用されています。
項目 | 説明 |
---|---|
単語頻度 | ある言葉が、ある文章の中で何回出てくるかを示す指標 |
問題点 | 文章の長さが異なると、単純な回数だけでは比較が難しい |
例 |
|
正規化 | 文章の長さの違いによる影響を少なくするために、単語頻度を文章全体の単語数で割って調整すること |
正規化の計算方法 | (ある言葉の出現回数) / (文章に含まれる全ての言葉の総数) |
正規化の例 |
|
正規化の効果 | 文章の長さの影響を取り除き、異なる長さの文章同士でも、特定の言葉が現れる割合を正しく比べることができる |
活用例 | 情報検索、文章分類、その他多くの自然言語処理 |
単語の希少性
言葉の珍しさは、文章を特徴づける上で重要な要素です。言葉の珍しさを測る尺度として、逆文書頻度というものがあります。これは、ある言葉が、どのくらいの数の文章に登場するかを数値化し、多くの文章で使われている言葉ほど、その数値は小さくなります。よく見かける言葉は、どの文章にも共通して使われがちで、特定の文章の特徴を表すのにはあまり役立たないという考え方です。
逆文書頻度は、全体の文章の数を、その言葉が登場する文章の数で割って、その値の対数をとることで計算します。こうすることで、珍しく、あまり使われない言葉には高い数値が、よく使われる言葉には低い数値が割り当てられます。
例えば、「これ」「する」「ある」といった、よく使われる言葉は、ほとんどの文章に登場するため、逆文書頻度の数値は低くなります。反対に、「人工知能」「深層学習」といった、特定の分野で使われる言葉は、限られた一部の文章にしか登場しないため、逆文書頻度の数値は高くなります。つまり、その文章にとって特徴的な言葉であることを示しています。
この数値が高い言葉を含む文章は、特定の話題について書かれている可能性が高く、検索などにおいても重要な手がかりとなります。例えば、ある人が「人工知能」という言葉を検索窓に入力したとします。すると、検索エンジンは、この言葉の逆文書頻度が高い文章を優先的に表示することで、より検索者の意図に沿った結果を表示しようとします。このように、言葉の珍しさを測る逆文書頻度は、情報を整理したり、必要な情報を探したりする上で、とても役に立つ数値なのです。
言葉 | 出現頻度 | 逆文書頻度 | 説明 |
---|---|---|---|
これ する ある |
高 | 低 | 多くの文章に登場するため、文章の特徴を示す力は弱い |
人工知能 深層学習 |
低 | 高 | 特定の分野の文章にしか登場しないため、文章の特徴を示す力が強い |
TF-IDFの計算方法
ある文章の中で、特定の単語がどれほど重要かを測る方法の一つに、単語頻度・逆文章頻度、略してティーエフ・アイディーエフという手法があります。この値は、単語頻度と逆文章頻度という二つの値を掛け合わせて計算します。
まず、単語頻度は、ある単語が一つの文章の中でどのくらい多く出てきているかを示す値です。例えば、「人工知能」という単語が、ある文章に10回出てきて、その文章に含まれる単語の総数が100語だとすると、「人工知能」の単語頻度は10/100 = 0.1となります。つまり、単語頻度が高いほど、その単語は、その文章の中で重要な単語である可能性が高くなります。
次に、逆文章頻度は、ある単語が、複数の文章全体でどのくらい珍しく出てきているかを示す値です。たくさんの文章でよく使われている単語は、情報としてはあまり価値がありません。逆に、特定の文章だけにしか出てこない珍しい単語は、その文章の内容を特徴づける重要な単語である可能性が高いと言えます。例えば、「人工知能」という単語が、100個の文章の中で、たった一つの文章にしか出てきていないとすると、この単語の逆文章頻度は高くなります。計算方法は少し複雑ですが、基本的には、全文章数を、その単語が出てくる文章数で割って、その対数を取ります。
最後に、単語頻度と逆文章頻度を掛け合わせると、ティーエフ・アイディーエフ値が計算できます。ティーエフ・アイディーエフ値が高い単語は、その文章の中で多く出てきており、かつ、他の文章にはあまり出てこない、つまり、その文章を特徴づける重要な単語であると判断できます。たとえば、ある文章の中で「人工知能」という単語のティーエフ・アイディーエフ値が高い場合、その文章は人工知能に関する内容である可能性が高いと考えられます。このように、ティーエフ・アイディーエフは文章の内容を分析し、重要な単語を特定するのに役立ちます。
要素 | 説明 | 計算方法 | 例 |
---|---|---|---|
単語頻度 (TF) | ある単語が一つの文章の中でどのくらい多く出てきているかを示す値 | (単語の出現回数) / (文章中の総単語数) | 「人工知能」が100語の文章に10回出現:10/100 = 0.1 |
逆文章頻度 (IDF) | ある単語が複数の文章全体でどのくらい珍しく出てきているかを示す値 | log((全文章数) / (単語が出現する文章数)) | 「人工知能」が100個の文章のうち1個の文章にのみ出現:IDFは高くなる |
TF-IDF | 単語の重要度を示す値 | TF × IDF | TF-IDF値が高い単語は、その文章の中で多く出てきており、かつ他の文章にはあまり出てこない重要な単語 |
TF-IDFの応用例
言葉の重要度を測る方法の一つに、TF-IDFと呼ばれる手法があります。TF-IDFは、ある言葉が特定の文章の中でどれだけ重要かを数値化するもので、情報を探す場面や文章を分析する場面で広く使われています。
例えば、インターネットで調べ物をしたい時を想像してみてください。検索窓に言葉を入力すると、たくさんのウェブサイトが表示されますが、その順番は適当に決められているわけではありません。検索エンジンは、入力された言葉とウェブサイトの文章をTF-IDFを使って比較し、関連性の高いものを上位に表示しています。つまり、検索結果の順位付けにTF-IDFが役立っているのです。
また、大量の文章を整理したい時にもTF-IDFは力を発揮します。例えば、たくさんのニュース記事をテーマごとに分類したいとします。記事に含まれる言葉のTF-IDF値を計算することで、特定のテーマに関連する言葉が多く出てくる記事を、そのテーマのグループに分類することができるのです。これは、まるで、ラベルのない大量の書類を内容に基づいて仕分けるような作業を自動で行っているようなものです。
さらに、文章の内容を要約したり、似た文章を探し出す時にもTF-IDFは利用されます。例えば、お客様からの質問に自動で回答するシステムを考えてみましょう。お客様からの質問内容を分析し、それに似た過去の質問と回答をTF-IDFを使って探し出すことで、適切な回答を自動的に提示することが可能になります。
このように、TF-IDFは様々な場面で活用されており、文章を扱う様々な仕事で欠かせない道具となっています。まるで、言葉の重さを測る特別なはかりのようなもので、これを使うことで、私たちは情報の海から必要な情報を見つけ出し、整理し、活用することができるのです。
場面 | TF-IDFの役割 | 例 |
---|---|---|
情報検索 | 検索キーワードとウェブサイトの関連度を数値化し、検索結果の順位付けを行う。 | インターネット検索エンジン |
文章分類 | 記事に含まれる言葉のTF-IDF値を計算し、テーマごとに分類する。 | 大量のニュース記事の分類 |
文章要約・類似文章検索 | 文章の内容を分析し、類似した文章を探し出す。 | お客様からの質問に自動回答するシステム |
TF-IDFの利点
「単語の出現頻度・逆文書頻度」は、文章の特徴を捉えるための計算方法で、多くの利点があります。まず、計算方法がとても単純です。単語がどれだけ出てきているか数え、その単語が全体でどれくらい珍しいかを計算するだけです。この計算は簡単なので、たくさんの文章を扱う場合でも短い時間で結果を得ることができます。
次に、この方法は単語の出現回数だけでなく、その珍しさも考慮するため、文章の特徴を的確に捉えることができます。「これ」「する」といったよく使われる単語は、どの文章にも多く出現するため、文章の特徴を表すとは言えません。一方で、特定の分野でしか使われない専門的な単語は、その分野の文章に特徴的に現れます。つまり、単語の珍しさを考慮することで、本当に重要な単語を見つけ出すことができるのです。
例えば、たくさんの新聞記事から特定の話題に関する記事を探したいとします。その時、この方法を使えば、その話題に関連する重要な単語を含む記事を効率よく探し出すことができます。よく使われる単語は無視し、話題に特有の単語に注目することで、関係のない記事を省き、目的の記事にたどり着けるのです。
さらに、この計算方法は、日本語だけでなく、英語や中国語など様々な言語で使えます。そのため、様々な言語で書かれた文章を扱う場合でも役立ちます。このように、「単語の出現頻度・逆文書頻度」は、計算のしやすさと、文章の特徴を捉える能力を兼ね備えており、様々な場面で役立つ実用的な方法と言えるでしょう。
メリット | 説明 | 例 |
---|---|---|
計算が単純 | 単語の出現回数と珍しさを計算するだけなので、多くの文章を短時間で処理できる。 | – |
文章の特徴を的確に捉える | 出現回数だけでなく珍しさも考慮するため、「これ」「する」のような一般的単語ではなく、専門的な単語を重要視できる。 | – |
特定の話題に関する記事を効率的に検索できる | 話題に特有の単語を含む記事を、よく使われる単語を無視することで探し出せる。 | 新聞記事から特定の話題の記事を探す |
多言語対応 | 日本語だけでなく、英語や中国語など様々な言語で使用可能。 | – |