いろんなtf-idf
ちゃお……†
舞い降り……†
今回はtf-idfの話をしようと思います……†
tf-idfとは
tf-idfは、文書中の単語に関する重みの一種であり、主に情報検索や文章要約などの分野で利用される。 tf-idfは、tf(英: Term Frequency、単語の出現頻度)とidf(英: Inverse Document Frequency、逆文書頻度)の二つの指標にもとづいて計算される。 from tf-idf - Wikipedia
ということで、 による単語の重み付けの方法です. 上記Wikipediaの記事ではオーソドックスな例が挙げられてますが, 実はいろいろな重み付けの方法があります.
tf
以下、文書中の語の頻度を と記します.
2進重み (binary)
$$ \displaystyle tf = \begin{cases} 1 & (f_ij \gt 0) \\ 0 & (f_ij = 0) \end{cases} $$
単語が一度でもでてきたら1, 出てこなかったら0にする重み付け. ただし, これは単純すぎて出現頻度の高い語と低い語の差別化ができません. 検索質問文のように少数の語しか出てこない場合に使われるらしいです.
索引語頻度 (raw frequency)
$$ \displaystyle tf = f_{ij} $$
語の頻度をそのまま重みとして使う. これもわかりやすくて単純ですが, 出現頻度の高い語に過大な重みを与えてしまうという欠点があります.
対数化索引語頻度 (logarithmic term frequency)
出現頻度の高い語の影響を小さくするために対数化した重み付け. 1を足してるのは, 頻度0のときに にならないための対策だと思われます.
拡大正規化索引語頻度 (augmented normalized term frequency)
$$ \displaystyle tf = \begin{cases} 0.5 + 0.5 \frac{f_ij}{\max_k f_kj} & (f_ij \gt 0) \\ 0 & (f_ij = 0) \end{cases} $$
長い文書に対する影響を考慮して, 文書中で最も高い頻度の語 を用いて正規化する重み付け. 重みは になります.
idf
以下, 全文書数を, 索引語を を含む文書数をと記します.
重み付けなし
文書頻度の逆数 (inverse document frequency)
一番オーソドックスなIDF. 対数化することでIDFの値の変化を小さくしています.
inverse document frequency smooth
1を足してスムージングしています.
inverse document frequency max
確率的IDF (probabilistic inverse document frequency)
文書集合の半数以上の文書に含まれる語に対しては, 負の値の重みをつけます.
大域的頻度IDF (global frequency inverse document frequency)
文書集合全体を通しての索引語の頻度 (大域的頻度) と文書頻度とを組み合わせた重み付け. 上の式では, 索引語の大域的頻度をで表しています. が小さく, が大きいときに大きな重みを与えます.
その他
他にはエントロピーを用いたものや, 単語分布モデルに基づいたものがあります. (今回は省略)
それで結局どれがいいの?
英Wikipediaのtf-idf記事でおすすめされているものがよさげです.
参考
- https://ja.wikipedia.org/wiki/Tf-idf
- https://en.wikipedia.org/wiki/Tf-idf
- 情報検索アルゴリズム
- 作者: 北研二,津田和彦,獅々堀正幹
- 出版社/メーカー: 共立出版
- 発売日: 2002/01/01
- メディア: 単行本
- 購入: 6人 クリック: 552回
- この商品を含むブログ (38件) を見る