More Related Content Similar to Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン (20) More from Koji Sekiguchi (20) Luceneインデックスの共起単語分析とSolrによる共起単語サジェスチョン2. 共起単語の分析と検索
• 分析
– Luceneインデックス I を分析し、ある単語と共起する単語を探して別のイン
デックス I* に登録
– term position vectorを用いる
• 検索(サジェスチョン)
– Luceneインデックス I にてある単語 t が検索されたとき、I* を t で検索して
t と共起する単語一覧を返す
– SolrのSearchComponentとして実装
Copyright (c) 2013 RONDHUIT 2
3. アーキテクチャ /update?
index=分析対象インデックス I のパス
search("TPP")
SearchComponent 共起分析対象
インデックス I
CooccurMakerRequestHandler
/cooccur?build=true 共起分析結果登録
/cooccur?reload=true
QueryComponent (内)
(外)
/cooccur?q=TPP 共起分析
findCoincidental
CooccurSuggesterComponent Terms
build, reload
register
CooccurFinder 共起分析結果
共起分析を行う インデックス I*
getSuggestions("TPP")
findCoincidental (外)
Terms
(内) 共起分析結果登録
(外)
CooccurSuggesterListener
共起単語検索
CooccurIndexManager (サジェスチョン)
newSearcher Solr内部インデックスを分析、
イベント 結果を外部インデックスに登録。
build, reload 登録した外部インデックスから共起単語を検索
Copyright (c) 2013 RONDHUIT 3
4. アルゴリズム(CooccurFinder)
① 調査対象フィールドの
すべての単語を調べるループ
調査対象フィールドの辞書 ② 当該単語を含むdocIdを
①
東京 1, 2, 5, … 順に調べるループ
大阪 1, 3, 4, … ③ 当該docIdについての ④ 当該単語「東京」をサーチ
term position vector(TPV)を取得
神奈川 4, 5, 7, …
String[] 江東区 足立区 北区 北砂 東京
千葉
⑥
埼玉
当該単語「東京」以外の単語の位置が、 ⑤ BitSetを用意し、当該単語「東京」の位置を
: ⑤で保存しておいた位置と近い場合 TPVから調べた結果のビットを立てる
(slop以内)は「共起」している
② としてインデックスに保存
0 1 1 0 0 ・・・ 1
TermsEnum DocsEnum
「東京」と共起する「江東区」のスコアは、次のように算出され、
インデックス時ブースト値として記録される
東京 江東区
a c b
性能のための最適化
•①のループでは、docFreq/numDocsが0.02〜10%(デフォルト)の単語のみ処理を行う(例:1万件のインデックスで、docFreqが2件から100件まで)
•②のループでは、maxDocsToAnalyzeまで(デフォルト1000)で打ち切る(最後の方のドキュメントが調査されない)
•⑤のBitSetは長さMAX_TERMS_PER_DOC(デフォルト1万)までしか用意しない
•すべての単語について、ストップワードの調査を行い、登録されているストップワードの場合は処理をスキップする
Copyright (c) 2013 RONDHUIT 4
5. CooccurSuggesterComponent
http://localhost:8983/solr/cooccur/cooccur?q=地震&rows=0
livedoorニュースコーパスでの例
Copyright (c) 2013 RONDHUIT 5
6. コーパスによる共起単語の違い
独女通信 スポーツウォッチ トピックニュース
仕事 風土,右手,ミオ,徴兵,エリナ, ブルドーザー,ナゴヤドー セキュリティー,祝日,雑
温厚,デコーレーションケー ム,すれ違い,城島,ローサ, 用,ゴシップ,試食,接待,土
キ,東南アジア,雑談,凶悪 道場,シニア,修行,ディレク 日,仕事場,土木,両立
ター,転職
韓国 緊迫,リメイク,リトル,シフト チュヨン,SBS,東亜,IOC, 起源,ハンギョレ,万歳,セ
チェンジ,徴兵,歯並び,上陸, 日報,地団駄,チェ,ガン レッソ大阪,ポッ
キリスト,教徒,美男 ヒ,UAE,TV プ,DKBnews,戦犯,捕鯨,
本籍,さりげ
サッカー リーグ,カクカクシカジカ,駅 キリンカップ,グローバル, キリンチャレンジカップ
伝,種目,JFL,スポーツバー,F プロサッカーリーグ,アス サッカー,チャレンジ,キ
IFA,ワールドカップ,観戦, リートファン,復権,傑作,船 リン,ワールドカップ,自
連盟 越,集計,明彦,健生 負,ガボン,セネガル,イデ
イリー,聖地,英寿
livedoorニュースコーパスでの例
Copyright (c) 2013 RONDHUIT 6
7. 参考文献
• High Frequency Terms/Phrases at the Index Level, Suri Babu B,
https://issues.apache.org/jira/browse/LUCENE-474
• livedoorニュースコーパス,
http://www.rondhuit.com/download.html#ldcc
Copyright (c) 2013 RONDHUIT 7