tfとは
tfとは単語出現頻度のことです。文書をd、語をwとするとdの中にwが何回出ているかを意味します。本記事では、TF(d, w)とおきます。
dfとは
dfとは文書頻度のことです。文書の集合をD、語をwとすると、dfはwが出現している文書の数となります。本記事では、DF(D, w)とおきます。
idfとは
idfはdfの逆数にlogを取ったもので、式で書くと次のとおりです。
IDF(D, w) = log(|D| / DF(D, w))
|D| / DF(D, w)は、DF(D, w)が小さいほど大きな値をとります。英語の文書を考えると「the」、「You」といったような単語はどのような文書でも出てくるはずなので値は小さくなります。すなわち、特定の文書にしか出ないかどうかを表す指標といえます。
tf・idfとは
tf・idfとは、ある文書をdとしたときに、dの中にある語wが文書dの特徴を表しているかの指標となります。
式で書くと、
TFIDF(d, w) = TF(d, w) ・ IDF(D, w)
となります。
tfは「文書内に語wが何回出るか」でした。頻繁に出る語ほどその文書の主題を表していそうです。一方で、tfだけだと、「the」や「You」のような単語も特徴語と判断されてしまうので、idfをかけることによって「どの文書にも出てくるような語」を除くようにしています。
よって、tf・idfが大きいほどwは特徴語であろうと推測されます。
idfの定義再考
idfとは以下の式で表されました。
log(|D| / DF(D, w))
しかし、
|D| / DF(D, w)
だけでも「特定の文書にしか出ないかどうか」を表す指標といえそうです。なぜlogをとるのでしょうか。
ここでは、文書数|D|を大幅に増やした時のことを考えてみます。この時、「the」や「You」のような単語の場合は、DF(D, w)の値も大きく増えるはずですから、結果として、|D| / DF(D, w)の値はそこまで変動しないでしょう。
一方で、「ある特定の文書にしか出てこなさそうな単語」の場合はどうでしょうか。|D|が増えたとしてもDF(D, w)はほとんど増えないと考えられます。よって|D| / DF(D, w)の値は大きく増えます。
ここで、wが文書dの特徴語かどうかの指標を
TF(d, w)・|D| / DF(D, w)
で表したとします。
wとして、「ある特定の文書にしか出なさそうな単語」で、かつ今注目している文書にはあまり出てこない単語を考えてみます。このとき、文書にあまり出てこないことからwは明らかに特徴語にはならないと考えられます。しかし、|D|を増やしたとき、|D| / DF(D, w)が非常に大きくなるので、結果として特徴語であろうと判断されそうです。
しかし、logをとると文書数|D|を増やした時の|D| / DF(D, w)の変動は抑えられるので上記のようなことは起こりにくくなります。すなわち、logをとることによってTFとIDFの両方の影響をバランスよく含ませることができます。
以上がlogをとる理由です。