データ分析エンジニアのブログ

日常のことからプログラミングや機械学習まで@六本木

tf-idf法で単語の重み付けをやってみる!

前回Macmecabを入れることができたので、
tf-idf法という手法を使って文章内の単語の重み付けをやってみました。

ソースコードgithubに公開しています。
https://github.com/junishitsuka/python/blob/master/tf-idf.py

こちらの式を参考にtf-idfについて説明します。
前提としてtf-idfの値が高い単語ほど重要であると位置づけられています。
f:id:ishitsukajun:20140322020050p:plain

tfが文書内の特定の単語の頻度を表す値です。
多いものほど重要であるという考え方に沿った値であり、
「です」,「ます」,「私」など多くの文書に使われるような語が高くなります。

idfが単語の希少性を表す値です。
他の文章にあまり使われていない単語のほうが、その文章を特徴付けるという意味でしょうか。
複数の文章に表れる単語ほどidfの値は小さくなります。

やってみると意外に簡単に解析できるんだなと思いました。
かなりPythonで手間取ってしまうところもありましたが(笑)

ちなみにgithubでソースを公開したのは初めてです。
これから多くのプログラムを公開していけたらいいなと思います。