pythonで機械学習の日本語形態素解析で出てくる、TFとIDFとTF-IDFについて、どうやって計算しているのか、すぐに忘れてしまうのでしっかりとメモを残しておく
TFはその単語の出現回数と文章中の単語数の総数で割った数
たとえば、次のような文章があります
猫と犬なら猫が好き
'猫', 'と', '犬', 'なら', '猫', 'が', '好き', 'です'
全体の単語数:8個
猫の出現回数:2個
2÷8=0.25
このように計算します
IDFは複数の文章中に特定のキーワードが含まれるか対数で表現
猫と犬なら猫が好き
猫カフェに遊びに行く
犬は強い
喫茶店でコーヒーを飲みました
日本人はカレーが好きです
海外旅行に行きたい
6個の文章があるとします
猫を含む文章は2つ
log(全文章の数/調べたい単語が出現した文章の数)
猫の場合だと
log(6/2) = 0.47712125472
となります
出現頻度が少ないほど、数が大きくなりレア度アップ特徴的なキーワード
TF-IDFはTFとIDFを書けた数
TF-IDFはそれぞれを掛け合わした数 TF x IDF = TF-IDF となります
上の猫の場合
TF:0.25
IDF:0.47712125472
それぞれを掛け算して
TF-IDF:0.11928031368
TF-IDFはどのように使うかというと
数字が大きいほど、全体の文章の中で、レアなワードとなります