tfidfについて
授業でtfidfを勉強してちょっと分かりづらかったのでまとめておく。
tfidfとは?
情報検索で使うアルゴリズムの一つ。
それぞれの単語に重みをつけて、クエリーから文書をベクトル空間で表し
文書とクエリーの類似度でランク付けを行う。
その値が高いほど重要。
tfidf = w = tf・idf
w:重みということ。
tfとは?
Term frequency(単語出現頻度)
同じ文書に何回も現れる単語ほど検索の有力な手がかり。
つまり一つの文書の中に多く書かれてる単語を探すってことか。
f =frequency of term in a document
単語が一つの文書で出現する頻度
つまりブラウザ上で
Ctrl-Fとか使ってある単語を検索したときに、ヒットする数
tf = f/max(f) = 単語の頻度/文章で出現する単語の中で一番多い単語の数
修正(2009 1/6) tf = f/max(f) = 単語の頻度/文章で出現する総単語数
(yukobaさん ありがとうございます!)
idfとは?
Inverse document frequency(逆文書出現頻度)
色々な文書に書かれている単語は検索の有力な手がかりにならない。
つまり差別化できないから、その単語は低めに扱うよってことか。
df = number of documents containing term i
単語iがどれだけの文書で現れるか。
idf = inverse doument frequency of term i
= log_2(N/df)
N:総文書数。
これは検索エンジンに当てはめると
df = 検索したときのヒットページ数
idf = log_2(検索エンジンの総ドキュメント数/df)
結局tf-idfの式は
w = tfidf = tf・log_2(N/df)