Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WordNetで作ろう! 言語横断検索サービス

9,439 views

Published on

第2回さくさくテキストマイニング勉強会資料です @stakemura #sakuTextMining

Published in: Technology
  • Dating for everyone is here: ❶❶❶ http://bit.ly/2F4cEJi ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ♥♥♥ http://bit.ly/2F4cEJi ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

WordNetで作ろう! 言語横断検索サービス

  1. 1. 第2回さくさくテキストマイニング勉強会 WordNetで作ろう!言語横断検索サービス Shintaro TAKEMURA d.hatena.ne.jp/taos twitter.com/stakemura facebook.com/shintaro.takemura
  2. 2. 背景• 社内Google Codeみたいなものを想定してください – 登録されるプログラムが増え続けるとどうなる? → 欲しいものがすぐに見つからない状態に – 生産性を上げるためにより賢いアプローチが必要! 機能がたくさん あるけど、何を 使えばいいか わからない…
  3. 3. そこで提案• 検索性能の強化(バイリンガルの如く) – 日英表記揺れを解決 • 例:“vertex”と”頂点” – 語義あいまい性も解決 • 例:”divide”と”separate”• 推薦機能の搭載(貴方に合った結果を) – 操作履歴に基づく推薦 本発表では扱いません • Amazonのおススメ機能 を社内情報共有に応用 – 集合知の活用!
  4. 4. システムの特徴• フィールドが多い – 名称、作者名、概要、内容、マニュアルなど – 文字数に大きなばらつきがある (名称<概要<内容≪マニュアル) ⇒これが後々に問題に• ドキュメント規模は小さい – PC1台で回せるレベル。分散不要• リンク解析など高度な機能は不要• 検索システムは自前で構築 – Luceneで要求仕様を全部満たせるかわからなかった – この判断が正しかったかどうかは後半にて
  5. 5. 言語横断検索のアプローチ• 3つアプローチがある – 「対訳辞書」ベース • 日本語WordNetのような辞書を活用するアプローチ • 本発表のメイン(日・英間言語横断検索を扱う) – 「対訳コーパス」ベース • 辞書がない、あるいは併用する場合のアプローチ • 本発表の後半にて軽く触れる – 「機械翻訳」ベース • 機械翻訳を用いたアプローチ • 本発表では触れない
  6. 6. WordNet• http://www.visuwords.com
  7. 7. Princeton WordNet 3.0とは• 出発点は英英辞典 – プリンストン大学で開発 • http://wordnet.princeton.edu/ – 多国語対応を推進する動きあり。 • http://www.globalwordnet.org/ – 約11万7千のsynset(同義語の集合) – 約15万語(名詞/動詞/形容詞/副詞) – synset間にいくつかの関係が定義 • hypernym : X hypernym Y → XはYの上位概念(synset) • hyponym : X hyponym Y → XはYの下位概念(synset) • holonym : X holonym Y → XはYを持つ(has-a) • meronym : X meronym Y → XはYの一部(part-of)
  8. 8. 日本語WordNet ver 1.1のスペック• NICTで開発 – http://nlpwww.nict.go.jp/wn-ja/• 無償・BSDライセンス• SQLite3のDBとして格納(インデックス込み) – 57,238 synset – 93,834 words – 158,058 語義(synsetと単語のペア) – 135,692 定義文 – 48,276 例文• 実は対訳辞書として使えます!
  9. 9. 対訳辞書としてのWordNet
  10. 10. Search Engineでの位置づけ Text Browser user interest Text Text Processing and Modeling logical view logical view MeCab Query NLTK etc. Indexinguser feedback Operations Crawler inverted index / Data query WordNet Access Searching Index retrieved docs Documents (Web or DB) Rankingranked docs
  11. 11. 類義語の抽出• WordNetから類義語抽出手順(日→英の場合) – MeCabで標準形と品詞を取得 – 名詞・副詞・動詞・形容詞のみ抽出 – SQLにてword→sense→関連sense→関連word • select * from word where lemma=? and pos=?, (標準形,品詞) • select * from sense where wordid=?, (word["wordid"],) • select * from sense where synset=? and lang=?, (sense["synset"], “en”) • select * from word where wordid=? and pos=?, (sense2["wordid"], 品詞)• これでOK? – 結論から言うと、そのままではまずかった
  12. 12. 問題1:検索結果が良くない• 現象 – 意図しない検索結果(複数フィールドに起因) – 例:aaaで検索すると名称:bbbがトップに 名称 aaa bbb 概要 hoge fuga 内容 hogehoge aaaが… aaaの… aaaから… aaa マニュアル により…• 解決方法 – UIを増やす ランキングアルゴリズム(tf-idf)を見直す
  13. 13. 情報検索(Information Retrieval)とは• 以下の順で解説 – Precision/Recall Karen Sparck – Vector Space Model Jones – tf-idf (Spärck Jones 1972) – PRP - Probability Ranking Principle (Rijsbergen 1979) Keith van – BIM - Binary Independence Model Rijsbergen – Naive Bayes – Okapi BM25 (Robertson 1994) – BM25F (Robertson 2004) Stephen Robertson
  14. 14. 何が起きたか?• 検索性能の尺度 – 検索速度 – 更新速度 – 文書容量 – Recall (再現率) • 検索漏れに関連 • WordNetで改善したが… – Precision (適合率) • 検索精度に関連 • 新たな問題として浮上
  15. 15. PrecisionとRecall• Precision (適合率) – 「全検索結果」に対して「検索要求を満たす結果」の 割合 – “MacBook Air 重さ” で 100件 ヒット、うち 85 件が重さ がわかるドキュメント = 85/100 = 0.85• Recall (再現率) – 「検索要求を満たす全ドキュメント」に対しての「検 索要求を満たす検索結果」の割合 – Web上に 90件あると仮定して、ウェブ検索して 85 件が 得られた → 85/90 = 0.94
  16. 16. PrecisionとRecallのイメージ• Precision: |C| / |B|• Recall: |C| / |A| – どちらも高いほうがよい 検索ノイズも検索漏れも少ないほうがよい 全文書集合 適合文書 検索された文書 C A B
  17. 17. PrecisionとRecallのトレードオフ• Precisionのみを高めたい – 適合しない可能性が少しでもある文書を、検索結果か ら除外 – Recallの低下(= 検索漏れの発生)• Recallのみを高めたい p ideal – 適合する可能性が少しでもある better 文書を、検索結果として採用 – Precisionの低下(= 検索ノイズの発生) typical• 両者はトレードオフ関係 – 評価尺度には調和平均のF値を利用 F = 2 / ( 1 / Recall + 1 / Precision ) r
  18. 18. ベクトル空間モデル(Vector Space Model) • ベクトルで考えてみよう(Bag of Words) – 文章(document)は単語(term)の集合体 – 検索クエリも単語(term)の集合体 query document Q A B C D E ○ ○ ○ {D, E} term 0 0term 1 1 ○ 2 ○ 2 ○ ○ ○ {A, B, E} 3 3 ○ 4 4 ○ 5 5 ○ ○ 6 6 ○ ○ 0, 2, 5, 6
  19. 19. 検索と最近傍探索• ベクトル空間モデルにおける検索とは – ベクトル空間内で 近いベクトルを探すこと – 検索ではCosine類似度が一般に用いられる ������(������1 ) ∙ ������(������2 ) d������������������(������1 , ������2 ) = ������ ������1 |������(������2 )|  q
  20. 20. 単語の重みを考慮する • 相関係数を2値からScalarに – ある or なしだと 1か0かの2値表現 – 出現頻度を反映させてScalarに出来ないか? Query document Q A B C D E {D, E} term 0 1.0 0 1.5 0.4term 1 1 0.8 2 0.1 2 0.4 1.2 0.2 {A, B, E} 3 3 1.5 4 4 0.5 5 5 1.6 2.5 6 6 0.2 1.0 1.5
  21. 21. tf - term frequency• ある単語が各々の文章にどのくらい出現するか? ni 単語iの出現頻度 tf i   k nk 文書で出現する総単語数• 問題点 – すべての単語が等しい重要度の場合 • 例:ツール,エラー,ファイル…• 解決方法 – 頻繁に登場する語の影響力を薄める → そこでidf
  22. 22. idf - inverse document frequency• ある単語がどのくらいの数の文書に出現するか? 総ドキュメント数 |D| idf i  log 単語iを含む | {d : d  ti } | ドキュメント数 レア語では高く 頻出語では低く
  23. 23. tf-idfによるスコアリング• 以下の場合に高い – 少数のドキュメントにtがたくさん出現する場合• 以下の場合に低い – ひとつのドキュメントに t が少なく出現する場合 – たくさんのドキュメントに t が出現する場合
  24. 24. tf-idfの計算例:インデックス化文書1 言語(2),計算(1),問題(2)文書2 計算(1),問題(2),情報(1)文書3 言語(1),問題(3),情報(2)文書4 問題(1),情報(1)言語 文書1,文書3計算 文書1,文書2問題 文書1,文書2,文書3,文書4情報 文書2,文書3,文書4
  25. 25. tf-idfの計算例:tf,idfの計算単語の出現頻度(term frequency) tf 文書1 文書2 文書3 文書4 idf 言語 2 0 1 0 2 計算 1 1 0 0 2 問題 2 2 3 1 1 情報 0 1 2 1 1.3 全文書数 / 単語の出現する文書数 (inverse document frequency)
  26. 26. tf-idfの計算例:検索結果の絞り込みtf-idf 文書1 文書2 文書3 文書4言語 4 0 2 0計算 2 2 0 0問題 2 2 3 1情報 0 1.3 2.6 1.3 6 (2) 5 (1) 検索キーワードが、「言語、問題」なら 文章1が第1候補
  27. 27. PRP - Probability Ranking Principle• 情報要求に対して確率論を当てはめるための考え方• 文書dとクエリqの適合性を確率として表現 – P(R|d,q) … これを求めたい – Rはdとqが関連することを表す – R=1 … 関連あり R=0 … 関連なし – 文書をP(R|d,q)に従ってランキング• メリット – tf-idf などのヒューリスティクスも、確率モデルにより アルゴリズムとして解釈しなおすことができる – 後に示すように、tf-idfによく似たパラメータが出てく る
  28. 28. Binary Independence Model [1]• 仮定 A0 – 文章Dの適合性は、他の文書に依存しない• P(R=1|D)によるランク付け – R={0,1} … 適合度を示す確率変数 – D … 文章の中身(この時点ではクエリは考えない) – ベイズの定理より • ������ ������ ������ ∝ ������ ������ ������ ������(������)• 関係演算子 ∼ を「ランク順位が等しい」とおくと ������ ������ = 1 ������ ������ ������ ������ = 1 ������(������ = 1) ������ ������ = 1 ������ ∼ = ������ ������ = 0 ������ ������ ������ ������ = 0 ������(������ = 0) 与えられたクエリに対して定数。ラ ンクするだけなら推定の必要なし
  29. 29. Binary Independence Model [2]• 仮定 A1 – ������ = *������������ + … 文章を0 or 1の2値単語ベクトルで表現• 仮定 A2 – ������������ … はRが与えられた時に相互に独立 • 実際にはそんなわけがない(単語並び替えても同じ?) • が、仮定しなければ組み合わせ爆発を起こす • Naive Bayes分類の仮定でもある• よって ������ ������ ������ = 1 ������ ������ ������������ ������ = 1 ������ ������ = 1 ������ ∼ = ������ ������ ������ = 0 ������ ������ ������������ ������ = 1
  30. 30. Binary Independence Model [3]• 仮定 A3 – ������ 0 ������ = 1 = ������ 0 ������ = 0 – 空文章は、R=0 or 1どちらのクラスにも等しく出現• ここで追加定義 – ������������ = ������ ������������ = 1 ������ = 1 – ������������ = ������ ������������ = 1 ������ = 0• よって ������������ 1 − ������������ ������∈������ ������ ������ ������∉������ 1 − ������ ������ ������������ (1 − ������������ ) ������ ������ = 1 ������ ∼ = 1 − ������������ ������������ (1 − ������������ ) ������ 1 − ������ ������∈������ ������
  31. 31. 推定• この時点での推定 – もし、全文章がR=0 or 1どちらのクラスに属するかが自 明であれば、以下の定義でクエリがどのクラスに属す るかが確率で求まる Smoothing ������1 ������ + 0.5 ������0 ������ + 0.5 ������������ = ������������ = ������1 + 1.0 ������0 + 1.0 – なお������������ ������ は各々のクラスでの観察回数 – また確率0を避けるために、適当にスムージング• 使い道 – 学習データがある際の文章分類タスクといってよい – もちろんこのままでは検索には使えない
  32. 32. 推定例(BIM 文章のクラス情報あり)• 適合文章: ������1 = “a b c b d”, ������2 = “a b e f b”, ������1 =2• 不適合: ������3 = “b g c d”, ������4 = “b d e”, ������5 = “a b e g”, ������0 =3 word a b c d e f g h ������1 ������ 2 2 1 1 1 1 0 0 ������0 ������ 1 3 1 2 2 0 2 0 ������������ 2.5/3 2.5/3 1.5/3 1.5/3 1.5/3 1.5/3 0.5/3 0.5/3 ������������ 1.5/4 3.5/4 1.5/4 2.5/4 2.5/4 0.5/4 2.5/4 0.5/4• 新規文章: ������6 = “b g h” b gh 2.5 3.5 ������������ 1 − ������������ ∙ 1− … 1.64 3 4 ������ ������ = 1 ������6 ∼ = = ������������ 1 − ������������ 3.5 2.5 ������∈������6 ∙ 1− … 13.67 4 3
  33. 33. Binary Independence Model [4]• 仮定 A4 – ������������ = ������������ ������������ ������ ∉ ������ … クエリに出現しない単語は適合、 不適合文書において同じくらい出現と仮定• 仮定 A5 – ������������ = 0.5 ������������ ������ ∈ ������ … クエリに出現する単語は、適合文 章に50%の確率で出現する• 仮定 A6 – ������������ ≈ ������������ /������ … 不適合文章を全体で近似 IDF• 結果 ������������ 1 − ������������ 1 − ������������ ������ − ������������ + 0.5 ������ ������ = 1 ������ ∼ = = ������ ������∈������ ������ 1 − ������������ ������∈������∩������ ������������ ������∈������∩������ ������������ + 0.5
  34. 34. 推定例(BIM)• 文章: ������1 = “a b c b d”, ������2 = “a b e f b”, ������3 = “b g c d”, ������4 = “b d e”, ������5 = “a b e g”, ������6 = “b g h”, N=6 word a b c d e f g h ������ ������ 2 6 2 3 3 1 3 1 ������ − ������������ + 0.5 4.5 0.5 4.5 3.5 3.5 5.5 3.5 5.5 ������������ + 0.5 /2.5 /6.5 /2.5 /3.5 /3.5 /1.5 /3.5 /1.5• クエリ: Q = “a c h” a c ������ − ������������ + 0.5 4.5 4.5 ������ ������ = 1 ������1 ∼ = ∙ ������∈������1 ∩������ ������������ + 0.5 2.5 2.5• ランキング ������6 > ������1 > ������3 > ������5 > ������2 > ������4
  35. 35. BM25• 概要(詳細は割愛) – ������������ を文章D内での単語wの出現回数とした場合 – ������(������������ )を2つのポワソン分布から成ると考える ������ ������ ������ −������1,������ ������1,������ ������ ������ −������0,������ ������0,������ ������ ������ ������������ = ������ ������ = 1 + ������(������ = 0) ������������ ! ������������ !• 結果 ������(������|������ = 1) ������������ ∙ (1 + ������) ������log ≈ ( × log ) ������(������|������ = 0) ������������ + ������( 1 − ������ + ������ ∙ ������������ /������������������������ ������������ ������ 文章長の平均
  36. 36. BM25F• 概要(詳細は割愛) – BM25を複数のフィールドに対応させたもの • 各フィールドの平均長などがパラメータに – BM25Fでやっと納得のいく結果が得られた • 自前の検索エンジンなのですぐ対応できた• ただしLuceneでのBM25F対応は難しい – フィールド毎の単語頻度が取得できないため – どうしても必要であれば、Luceneを改造するか、自前 で集計するしかないかも(要調査)
  37. 37. まとめ・課題• まとめ – WordNetを用いた日英間言語横断検索 – 情報検索基礎(tf-idfからBM25F) – Luceneと言えども万能ではない• 課題 – 多言語対応 – Luceneの理解を深める – より発展的なトピック
  38. 38. 参考文献• Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schütze, Introduction to Information Retrieval• Michael McCandless, Erik Hatcher, and Otis Gospodnetid, Lucene in Action, Second Edition• Stephen Robertson, Hugo Zaragoza, SIGIR 2007 Tutorials - The Probabilistic Relevance Model: BM25 and beyond.• Donald Metzler, Victor Lavrenko, SIGIR 2009 Tutorials - Probabilistic Models for Information Retrieval

×