tf-idf (ティーエフ・アイディーエフ)とKaren
情報検索入門シリーズ。
"Maniac"という英単語は、あえてカタカナで書くならマニアックではなくメイニアックである。
そういうわけでこのブログのタイトルは「検索メイニアック」である。
さて、マニアックとメイニアックはどちらが一般的に使われる語だろうか?
「マニアック」のウェブ検索結果
「メイニアック」のウェブ検索結果
ということでマニアックの「ヒット数」のほうが圧倒的に多い。
この「ヒット数」のことを文書頻度(document frequency)という。略してdf。
「メイニアック」のようにdfの低い語のほうが、一般にはクエリターム(検索キーワード)として有用である。
つまり欲しい文書(個々の検索対象。例えば単一のウェブページ)を特定するのにより役立つ。
例えば、「検索」と「メイニアック」という2つのクエリタームで検索を行いたい場合、
「検索」のウェブ検索結果
を見るとわかるように、「検索」のほうはdfが大きすぎて所望の文書を探し出すのにあまり有効ではなさそうである。
なので、「検索」よりは「メイニアック」のほうを重視した検索が行いたい。
そこで出てくるのがidf(inverse document frequency)である。
これは、dfの逆数のようなもの、つまり、低いdfのクエリタームには高い重みを付与するものである。
先ほどの例だと、「検索」のidfは非常に低く、「メイニアック」のidfは非常に高くなる。
さて、検索対象の各文書に以下のようなスコアを与え、スコア順に並べてユーザに提示することを考えよう。
文書スコア=その文書が含むクエリタームの重みの和
このとき、上記の「重み」としてidfを採用することが考えられる。
こうすれば、「検索」だけを含む文書よりも、「メイニアック」だけを含む文書のスコアが高くなり、
さらに、両方を含む文書のスコアが最も高くなるだろう。
さらに、「検索」「メイニアック」をそれぞれ1回ずつ含む文書よりも、
例えば10回ずつ含む文書を優先して検索したいならば、
各クエリタームの(文書内)頻度情報、すなわちtf(term frequency)も加味して文書スコアを計算すればよい。
単純には、上記の「重み」としてtfとidfをかけたものを採用することが考えられる。
これがいわゆるtf-idfの基本である。
ここまでは、情報検索の教科書や、英語版Wikipediaのtf-idfの項にも書いてある。
しかし(研究者の間でも)意外と知られていないのは、
idfの概念を発明したのが私の英ケンブリッジ大学時代の恩師Karen Sparck Jonesであるということ。これが言いたかった。
情報検索の研究をこれからまじめにやってみたいと思っている人は、一度
The Sparck Jones / Robertson IDF page
を訪れることをお奨めする。idfの誕生と進化の過程がわかる。
上記ページの作成者Stephen Robertsonもまた私の英国での恩師。
二人とも情報検索研究の世界では超有名人である。
それもYodaやMace Winduレベルである。
こういう体中脳みそで出来ている人達と喋っていると、
自分の小さな脳みそまで刺激され、頭蓋の中でカラカラ音をたてて精一杯回転する。
もちろん最終的にはオーバーヒートする。
検索界の偉人の話はまた別の機会に。



