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 | “人工知能”:高い => 重要な言葉 | “は” “の”:低い => 重要ではない言葉 |
単語の頻度
言葉の現れ度合いは、ある文章の中で、特定の言葉が何回出てくるかを数で表したものです。これは、文章の中身を知る上で大事な手がかりとなります。ある言葉が文章の中で何度も出てくると、その言葉は文章の内容を理解する上で重要な言葉である可能性が高くなります。
例えば、「人工知能」という言葉を例に考えてみましょう。「人工知能」という言葉をたくさん含む記事があったとします。この記事では、「人工知能」という言葉が何度も出てきます。ですから、この記事は人工知能について書かれたものである可能性が高いと考えられます。反対に、「人工知能」という言葉が一度しか出てこない記事では、その記事の主題は人工知能ではない可能性が高いでしょう。
このように、言葉の現れ度合いは、その言葉の重要さを測るための一つの目安となります。この数値は、ある言葉の出現回数を文章のすべての言葉の数で割ることで計算されます。特定の言葉がたくさん出てくると、その言葉の現れ度合いの値は大きくなります。
もう少し詳しく説明すると、ある長い文章の中で、「車」という言葉が10回出てきて、文章全体の単語数が100語だとします。この場合、「車」という言葉の現れ度合いは10割る100で、0.1となります。もし別の文章で、「車」という言葉が20回出てきて、文章全体の単語数が200語だとすると、この場合の現れ度合いも0.1となります。つまり、文章の長さが違っても、特定の言葉の現れ度合いを計算することで、その言葉が文章の中でどれくらい重要な役割を果たしているのかを比較することができます。これは、たくさんの文章を扱う時や、文章の内容を自動的に理解しようとする際に役立ちます。
言葉 | 出現回数 | 文章全体の単語数 | 現れ度合い |
---|---|---|---|
車 | 10 | 100 | 0.1 |
車 | 20 | 200 | 0.1 |
単語の希少性
言葉の希少性は、ある言葉がどれほど珍しいかを示す尺度です。これは、多くの文書の中で、その言葉がどの程度広く使われているかを数値化したものと言えます。たくさんの文書に現れる言葉は、特定の文書の特徴を表すとは考えにくいでしょう。例えば、「です」「ます」といった言葉は、ほとんど全ての文章に現れるため、特定の文章を特徴づけるものとは言えません。このようなよく使われる言葉は、希少性の値が小さくなります。
逆に、特定の文書にだけ現れる言葉は、その文書の特徴を表す重要な言葉である可能性が高いと考えられます。例えば、「量子コンピュータ」という単語は、科学技術の専門的な文書には現れても、日常会話や小説にはほとんど現れません。つまり、「量子コンピュータ」という言葉は、科学技術の文書を特徴づける言葉と言えるでしょう。このような特定の文書にしか現れない言葉は、希少性の値が大きくなります。
具体的な例を挙げると、「人工知能」という言葉は、科学技術に関する文書にはよく現れますが、料理のレシピにはほとんど現れません。そのため、「人工知能」という言葉の希少性は、科学技術の文書では低く、料理のレシピでは高くなります。このように、同じ言葉でも、それが使われる文書の種類によって希少性は変化します。
この希少性の値は、計算によって求めることができます。計算方法は、言葉が現れる文書の数を全体の文書の数で割った値を分母とし、全体の文書の数を分子とした分数の対数をとることで計算されます。全体の文書の数は変わりませんので、分母の言葉が現れる文書の数が少ないほど、希少性の値は大きくなります。つまり、特定の文書にしか現れない言葉ほど、その文書を特徴づける重要な言葉として、高い希少性の値を持つことになります。
言葉 | 出現文書 | 希少性 | 説明 |
---|---|---|---|
です、ます | 多くの文書 | 低い | 多くの文書に現れるため、特定の文書の特徴を表すとは言えない。 |
量子コンピュータ | 科学技術の専門文書 | 高い | 特定の文書にしか現れないため、その文書の特徴を表す重要な言葉。 |
人工知能 | 科学技術の文書 | 低い | 科学技術に関する文書にはよく現れる。 |
人工知能 | 料理のレシピ | 高い | 料理のレシピにはほとんど現れない。 |
計算方法
計算方法は、単語の出現頻度と、その単語を含む文章の数を基に、単語の重要度を数値化するものです。これは「ある文章中に、ある単語が何回出てきているか」と「その単語が、他の文章にもどれくらい出てきているか」を組み合わせて計算します。
まず、ある文章における特定の単語の出現回数を、その文章の全単語数で割ります。これを「単語頻度」と言います。例えば、ある文章に「人工知能」という言葉が10回出てきて、その文章の単語数が全部で100個だとすると、単語頻度は10割る100で0.1になります。
次に、全体の文章数を、その単語が出てくる文章数で割った値の対数を計算します。これを「逆文章頻度」と言います。全体の文章数が1000個で、「人工知能」という言葉が出てくる文章が100個だとすると、1000割る100は10になり、その対数は1になります。
最後に、単語頻度と逆文章頻度を掛け合わせます。これが計算方法の最終的な値です。先ほどの例で言うと、単語頻度が0.1で、逆文章頻度が1なので、掛け合わせると0.1になります。
この計算方法を使うと、ある文章の中でよく出てきて、他の文章にはあまり出てこない単語ほど、値が大きくなります。つまり、その文章の中で特徴的な単語ほど、高い値がつくということです。逆に、どの文章にもよく出てくる単語は、値が小さくなります。これは、どの文章にもよく出てくる単語は、特定の文章の特徴を表すとは言えないからです。このようにして、単語の重要度を数値で表すことができます。
用語 | 説明 | 計算式 | 例 |
---|---|---|---|
単語頻度 | ある文章における特定の単語の出現回数を、その文章の全単語数で割った値 | (単語の出現回数) / (文章の全単語数) | (“人工知能”の出現回数: 10回) / (文章の全単語数: 100個) = 0.1 |
逆文章頻度 | 全体の文章数を、その単語が出てくる文章数で割った値の対数 | log((全体の文章数) / (単語が出てくる文章数)) | log((全体の文章数: 1000個) / (“人工知能”が出てくる文章数: 100個)) = log(10) = 1 |
最終的な単語の重要度 | 単語頻度と逆文章頻度を掛け合わせた値 | (単語頻度) * (逆文章頻度) | 0.1 * 1 = 0.1 |
応用例
「単語の頻度・逆文書頻度」は、様々な場面で活用されています。特に、情報を探し出す時や、文章を分析する時に役立ちます。
例えば、調べたい事柄を検索窓に入力すると、検索機械はたくさんの情報の中から、入力した言葉に関連したものを探し出してくれます。この時、裏側では「単語の頻度・逆文書頻度」が活躍しています。検索機械は、入力された言葉を手がかりに、それぞれの情報がその言葉を含んでいる割合と、全体の中でその言葉を含む情報の少なさを計算します。そして、この二つの値を掛け合わせた値が高い情報ほど、入力された言葉と関連性が高いと判断し、検索結果の上位に表示するのです。
また、「単語の頻度・逆文書頻度」は、たくさんの文章から、重要な言葉を見つけ出す時にも役立ちます。例えば、あるテーマについて書かれた大量の記事から、そのテーマで特に注目すべき言葉を見つけ出すことができます。これは、個々の記事の中で多く使われている言葉の中でも、全体ではあまり使われていない言葉を見つけ出すことで実現できます。このような言葉は、そのテーマにとって特徴的な言葉である可能性が高いため、テーマの理解に役立ちます。
さらに、「単語の頻度・逆文書頻度」は、文章同士がどれくらい似ているかを測る時にも使われます。二つの文章に含まれる言葉の「単語の頻度・逆文書頻度」をそれぞれ計算し、比較することで、二つの文章がどれくらい似た内容を持っているかを数値化できます。例えば、二つの商品の説明文がどれくらい似ているかを調べたい場合、この方法を使うことで客観的な比較が可能になります。
このように、「単語の頻度・逆文書頻度」は、情報を扱う様々な場面で、文章の内容を理解し、分析するための強力な道具として活用されています。
活用場面 | 説明 | 例 |
---|---|---|
情報検索 | 検索キーワードに関連した情報を見つけ出す。情報がキーワードを含む割合と、全体の中でキーワードを含む情報の少なさを計算し、関連性を判断。 | 検索エンジンでのキーワード検索 |
重要な言葉の抽出 | 大量の文章から、特定のテーマに特徴的な言葉を見つけ出す。個々の文章で多く使われ、全体ではあまり使われていない言葉が重要となる。 | テーマに関する記事群からキーワード抽出 |
文章の類似度測定 | 二つの文章に含まれる言葉の頻度と逆文書頻度を比較し、類似度を数値化。 | 商品比較サイトでの類似商品特定 |
まとめ
「単語の頻度」と「単語の珍しさ」を組み合わせたものが「TF-IDF」と呼ばれる手法です。これは、ある文章の中で、ある単語がどれくらい重要なのかを測るために使われます。
まず、「単語の頻度(TF)」は、その言葉が一つの文章の中で何回出てくるかを示しています。例えば、「りんご」という単語が一つの文章に何度も出てくれば、その文章では「りんご」が重要な単語だと考えられます。次に、「単語の珍しさ(IDF)」は、たくさんの文章の中で、その言葉がどれくらい珍しいかを表しています。もし「りんご」という単語がどの文章にもたくさん出てくるとしたら、それはありふれた言葉なので、あまり重要ではないと考えられます。逆に、「ふじりんご」という単語はあまり多くの文章には出てこないでしょう。このような場合、「ふじりんご」は珍しい言葉なので、重要度が高いと判断されます。
「TF-IDF」は、この「単語の頻度」と「単語の珍しさ」を掛け合わせて計算されます。つまり、ある文章の中でたくさん出てきて、かつ他の文章にはあまり出てこない単語ほど、「TF-IDF」の値は高くなります。そして、この値が高い単語ほど、その文章の特徴を表す重要な単語だと考えられます。
この「TF-IDF」は、情報の探し出しや文章の分析など、様々な場面で使われています。例えば、たくさんの文章の中から、特定の言葉に関連する文章を見つけ出すときや、文章の内容を短くまとめるとき、文章同士がどれくらい似ているかを調べるときなどに役立ちます。
近年、言葉に関する技術が発展するにつれて、「TF-IDF」はより高度な文章分析にも使われるようになってきており、これからもますます重要になっていくと考えられます。例えば、膨大な量の文章の中から、ある事柄に関する意見や考え方の傾向を読み解いたり、隠れた関係性を発見したりする際に役立ちます。このように、「TF-IDF」は、文章を深く理解し、より効果的に活用するための重要な技術と言えるでしょう。
項目 | 説明 | 例 |
---|---|---|
単語の頻度 (TF) | ある単語が一つの文章の中で何回出てくるか | “りんご” が一つの文章に何度も出てくると、TFは高い |
単語の珍しさ (IDF) | たくさんの文章の中で、その単語がどれくらい珍しいか | “りんご” は多くの文章に出現する (IDFは低い) “ふじりんご” はあまり多くの文章には出てこない (IDFは高い) |
TF-IDF | TF と IDF を掛け合わせた値。値が高いほど、その文章の特徴を表す重要な単語 | ある文章で”ふじりんご” が多く出現し、他の文章ではあまり出現しない場合、TF-IDF値は高い |
TF-IDFの活用例 | 情報の探し出し、文章の分析、文章の要約、文章同士の類似度比較、意見や考え方の傾向分析、隠れた関係性の発見など | – |