OSSの検索エンジンであるSolr/Luceneの勉強会に行っていました。
この中の発表『Solrで多様なランキングモデルを活用するためのプラグイン開発』で、
- SimilarityにはTF-IDFとBM25の二種類あり、Solr6からはBM25がデフォルトになっている
- SolrのTF-IDFは、同じ単語が大量に出てきた際にスコアが極端に大きくならないように、TFが補正されている(√がかかっている)
という話があり、私は情報検索については不勉強なので、BM25は初めて聞く単語でした。
特徴
[改訂第3版]Apache Solr入門には次のように書かれています。271ページからの引用です。
また、こちらのブログには次のように書かれています。また、『Information Retrieval: Imple- menting and Evaluating Search Engines』という教科書に詳しく解説されているという記述があります。
BM25って何? という質問には「文書長正規化したTF-IDF」と答えるようにしており,経験的に性能が良いことが知られている,という情報を加えれば使う分には十分だと思っている.
ただBM25を教科書で見かけると「背景には確率的情報検索てものがあってな」という記述を何度か見かけるし,一応検索をやってますというような人間がBM25が生まれた背景や,その背景とされる確率的情報検索について知りません,というわけにもいかない.
アプリケーションとして利用するには、とりあえずこのことを把握しておけば良さそうです。ただ、もしきちんと理解したいなら、鈍器のような本を読まなきゃいけなさそうです。
Python実装
文章の特徴量というと、検索エンジンだけでなく、データマイニング方面での実装も気になりますね。
ただし、機械学習や統計処理で使うライブラリでは、scikit-learn
ではTfIdfVectorizer
のような形では実装されていませんでした。ただし、以下のライブラリを代わりに作成した方がいるようですね。
トピックモデル用のライブラリgensim
では使われてるようですね。
ただ、テキストマイニングでは統計モデルの特徴量としてTF-IDFを使うので、「同じ単語が大量に出てきた際にスコアが極端に大きくならないようにTFを補正したり、BM25を利用する」ようなモチベーションはあるのでしょうか?
参考文献
こちらの本を引用しています。
[改訂第3版]Apache Solr入門――オープンソース全文検索エンジン (Software Design plus)
- 作者: 打田智子,大須賀稔,大杉直也,西潟一生,西本順平,平賀一昭,株式会社ロンウイット,株式会社リクルートテクノロジーズ
- 出版社/メーカー: 技術評論社
- 発売日: 2017/04/27
- メディア: 大型本
- この商品を含むブログを見る