素人がTF-IDFでキーワード抽出 をやってみた 
2014/10/19 
清水健吾
自己紹介 
•清水健吾(@smzkng) 
•株式会社ルクサ 
•2014年度新卒 
•NLP素人(1ヶ月未満)
GoogleAds動的検索広告 
•Googleの検索結果に広告を埋め込む 
•通常の方法 
–キーワードを登録する 
•動的検索広告 
–ウェブサイトを登録する 
–Googleがサイトを自動的にクロール、キー ワードを抽出して登録する
GoogleAds動的検索広告 
•利点 
–キーワード抽出を自動でやってくれる 
•欠点 
–お金がかかる 
これ自分でできんじゃね?
自動で抽出
どうやんの?
テキストマイニング!!
テキストマイニング 
•商品のページからテキストを抽出 
•MeCabで形態素解析 
•辞書に「はてなキーワード」と 「Wikipedia」の単語を追加 
•MeCabはPythonから使いました
さっきの商品ページを形態素解析した例
単語に分割できたけど、 
どうやってキーワードだと判別するの? 
単純なワードカウント 
TF-IDF
単純なワードカウント 
仮説)ひとつの文書のなかでたくさん出て 
くる単語は、その文書が最も伝えたいこと 
商品ページのなかに出てくる単語を数え、 出現回数が多い順に選んでいく
単純なワードカウント 
順位 
単語 
出現回数 
1 
夜景 
22 
2 
工場 
19 
3 
木 
9 
4 
土 
8 
5 
日 
8 
•単純なワードカウントでは曜日などの一般的 な単語が上位に出てきてしまっている
TF-IDF 
TF = Term Frequency 
IDF = Inverse Document Frequency 
たくさん出てくる単語ほど重要! 
他の文書でも横断的に使われる単語は重要じゃない! 
スコア=TF×IDF 
スコアが高い単語をキーワードとして抽出 
 
 
s d 
s d 
t d 
t d n 
n 
TF 
, 
, 
, 
 log 1 
t 
t DF 
N 
IDF 
t d n , 
:文書d内の単語tの出現回数 
N 
t DF 
:全文書の数 
:単語tを含む文書の数
結果比較 
順位 
ワードカウント 
TF-IDF 
1 
夜景 
夜景 
2 
工場 
工場 
3 
木 
クルーズ 
4 
土 
探検 
5 
日 
ツアー 
•単純なワードカウントでは曜日などの一般的 な単語が上位に出てきてしまっている 
•TF-IDFの方では、より商品を特徴付けるよう な単語が上位に上がっていることがわかる
まとめ 
•素人がTF-IDFやってみました。 
•単純なワードカウントより良さそう。 
•もっといい方法をご存知の方は是非教え て下さい!

素人がTF-IDFでキーワード抽出をやってみた