第一章 イントロダクション
- 検索における課題は、 表記揺れ と ランキング問題
- 大規模なWebサイトでは、 全文検索エンジン が利用される
- データベース + 全文検索エンジン
- 全文検索エンジン は 転置インデックス を利用
- 検索システムの全体像
- ユーザーインターフェース
- クエリプリプロセッサ
- クエリポストプロセッサ
- 検索エンジン
- 転置インデックス利用
- インデクサ
- 検索エンジンに登録する機能
- ドキュメントのデータベース
- 検索履歴
- データ活用基盤
- 適合性コントローラー
第二章 検索エンジンの仕組み
- 転置インデックス は、 tableとしては行に単語、列に出てくる箇所の0,1として表す
- 転置インデックス は、0の無駄な空間をなくすために、 ターム辞書, ポスティングリスト を利用
- 転置インデックスを利用した検索の流れ (クエリ処理)
- テキスト解析
- 辞書引き
- ポスティングリスト走査
- ランキング
第三章 テキスト解析
- 英語のテキスト解析は、大文字小文字を区別しない、複数形、三人称単数、現在進行形をまとめてstem変換(ステミング)する
- 日本語のテキスト解析は、 形態素解析機 もしくは N-Gram
- 形態素解析機は、辞書を利用してトークンにする
- N-Gramは、x文字ごとにトークンにする
- そのほかの処理として、Unicode正規化、ストップワード、類義語の展開がある
第四章 ポスティングリストの走査とランキングのアルゴリズム
- ランキングを考慮しないときは、ポスティングリストを順番に進めていくだけ
- ドキュメントベクトルとクエリベクトルのコサイン類似度が「近さ」の指標
- TF-IDFによる重み付のドキュメントベクトル
- $$weight(t,d) = (1 + log(tf_{t,d}))・log(N/{df_t})$$
- $weight(t,d)$は、あるタームとあるドキュメントの重み
- $tf_{t,d}$は、ドキュメント$d$中のターム $t$の出現回数
- $df_t$は、ターム $t$ が出現するドキュメント数
- ランキングを考慮するときは、TF-IDFを計算して進めていく
- パフォーマンスは、レイテンシとスループットを計算する