SlideShare a Scribd company logo
1 of 38
Download to read offline
第2回さくさくテキストマイニング勉強会




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

         Shintaro TAKEMURA
                   d.hatena.ne.jp/taos
                twitter.com/stakemura
      facebook.com/shintaro.takemura
背景
• 社内Google Codeみたいなものを想定してください
 – 登録されるプログラムが増え続けるとどうなる?
   → 欲しいものがすぐに見つからない状態に
 – 生産性を上げるためにより賢いアプローチが必要!


                     機能がたくさん
                     あるけど、何を
                      使えばいいか
                      わからない…
そこで提案
• 検索性能の強化(バイリンガルの如く)
 – 日英表記揺れを解決
  • 例:“vertex”と”頂点”
 – 語義あいまい性も解決
  • 例:”divide”と”separate”


• 推薦機能の搭載(貴方に合った結果を)
 – 操作履歴に基づく推薦

    本発表では扱いません
  • Amazonのおススメ機能
    を社内情報共有に応用
 – 集合知の活用!
システムの特徴
• フィールドが多い
 – 名称、作者名、概要、内容、マニュアルなど
 – 文字数に大きなばらつきがある
   (名称<概要<内容≪マニュアル)
   ⇒これが後々に問題に
• ドキュメント規模は小さい
 – PC1台で回せるレベル。分散不要
• リンク解析など高度な機能は不要
• 検索システムは自前で構築
 – Luceneで要求仕様を全部満たせるかわからなかった
 – この判断が正しかったかどうかは後半にて
言語横断検索のアプローチ
• 3つアプローチがある
 – 「対訳辞書」ベース
  • 日本語WordNetのような辞書を活用するアプローチ
  • 本発表のメイン(日・英間言語横断検索を扱う)
 – 「対訳コーパス」ベース
  • 辞書がない、あるいは併用する場合のアプローチ
  • 本発表の後半にて軽く触れる
 – 「機械翻訳」ベース
  • 機械翻訳を用いたアプローチ
  • 本発表では触れない
WordNet
• http://www.visuwords.com
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)
日本語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 例文
• 実は対訳辞書として使えます!
対訳辞書としてのWordNet
Search Engineでの位置づけ

                                                                          Text
                                           Browser
                 user interest
                                                                            Text

                                 Text Processing and Modeling

                          logical view                 logical view
                                           MeCab
                    Query
                                          NLTK etc.              Indexing
user feedback      Operations
                                                                                   Crawler
                                                     inverted index                / Data
                 query                   WordNet                                   Access

                    Searching                                     Index

         retrieved docs
                                                                                              Documents
                                                                                             (Web or DB)
                    Ranking
ranked docs
類義語の抽出
• 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?
 – 結論から言うと、そのままではまずかった
問題1:検索結果が良くない
• 現象
 – 意図しない検索結果(複数フィールドに起因)
 – 例:aaaで検索すると名称:bbbがトップに
  名称      aaa              bbb

  概要      hoge             fuga

  内容      hogehoge         aaaが…


                           aaaの… aaaから… aaa
  マニュアル                    により…


• 解決方法
 – UIを増やす        ランキングアルゴリズム(tf-idf)を見直す
情報検索(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
何が起きたか?
• 検索性能の尺度
 – 検索速度
 – 更新速度
 – 文書容量
 – Recall (再現率)
   • 検索漏れに関連
   • WordNetで改善したが…
 – Precision (適合率)
   • 検索精度に関連
   • 新たな問題として浮上
PrecisionとRecall
• Precision (適合率)
  – 「全検索結果」に対して「検索要求を満たす結果」の
    割合
  – “MacBook Air 重さ” で 100件 ヒット、うち 85 件が重さ
    がわかるドキュメント = 85/100 = 0.85


• Recall (再現率)
  – 「検索要求を満たす全ドキュメント」に対しての「検
    索要求を満たす検索結果」の割合
  – Web上に 90件あると仮定して、ウェブ検索して 85 件が
    得られた → 85/90 = 0.94
PrecisionとRecallのイメージ
• Precision: |C| / |B|
• Recall: |C| / |A|
   – どちらも高いほうがよい
     検索ノイズも検索漏れも少ないほうがよい

                         全文書集合

                適合文書             検索された文書

                             C

                         A       B
PrecisionとRecallのトレードオフ
• Precisionのみを高めたい
  – 適合しない可能性が少しでもある文書を、検索結果か
    ら除外
  – Recallの低下(= 検索漏れの発生)
• Recallのみを高めたい
                                             p   ideal
  – 適合する可能性が少しでもある                                         better
    文書を、検索結果として採用
  – Precisionの低下(= 検索ノイズの発生)
                                                 typical
• 両者はトレードオフ関係
  – 評価尺度には調和平均のF値を利用
    F = 2 / ( 1 / Recall + 1 / Precision )
                                                             r
ベクトル空間モデル(Vector Space Model)
  • ベクトルで考えてみよう(Bag of Words)
       – 文章(document)は単語(term)の集合体
       – 検索クエリも単語(term)の集合体

           query              document
               Q                  A       B       C       D       E
           ○                                          ○       ○        {D, E}
                   term




       0                  0
term




       1                  1                   ○
       2   ○              2   ○       ○                       ○        {A, B, E}
       3                  3   ○
       4                  4                           ○
       5                  5           ○                       ○
       6                  6   ○                               ○

                                                          0, 2, 5, 6
検索と最近傍探索
• ベクトル空間モデルにおける検索とは
  – ベクトル空間内で 近いベクトルを探すこと
  – 検索ではCosine類似度が一般に用いられる




                       ������(������1 ) ∙ ������(������2 )   d
������������������(������1 , ������2 ) =
                       ������ ������1 |������(������2 )|     
                                                 q
単語の重みを考慮する
  • 相関係数を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.4
term




       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
tf - term frequency
• ある単語が各々の文章にどのくらい出現するか?


             ni         単語iの出現頻度
    tf i 
                k
                   nk   文書で出現する総単語数
• 問題点
  – すべての単語が等しい重要度の場合
     • 例:ツール,エラー,ファイル…
• 解決方法
  – 頻繁に登場する語の影響力を薄める → そこでidf
idf - inverse document frequency
• ある単語がどのくらいの数の文書に出現するか?

                                 総ドキュメント数
                  |D|
 idf i  log                     単語iを含む
             | {d : d  ti } |   ドキュメント数


     レア語では高く


      頻出語では低く
tf-idfによるスコアリング




• 以下の場合に高い
 – 少数のドキュメントにtがたくさん出現する場合
• 以下の場合に低い
 – ひとつのドキュメントに t が少なく出現する場合
 – たくさんのドキュメントに t が出現する場合
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
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)
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候補
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によく似たパラメータが出てく
    る
Binary Independence Model [1]
• 仮定 A0
  – 文章Dの適合性は、他の文書に依存しない
• P(R=1|D)によるランク付け
  – R={0,1} … 適合度を示す確率変数
  – D … 文章の中身(この時点ではクエリは考えない)
  – ベイズの定理より
     • ������ ������ ������ ∝ ������ ������ ������ ������(������)
• 関係演算子 ∼ を「ランク順位が等しい」とおくと
                  ������ ������ = 1 ������   ������ ������ ������ = 1 ������(������ = 1)
   ������ ������ = 1 ������ ∼              =
                  ������ ������ = 0 ������   ������ ������ ������ = 0 ������(������ = 0)
                                    与えられたクエリに対して定数。ラ
                                    ンクするだけなら推定の必要なし
Binary Independence Model [2]
• 仮定 A1
  – ������ = *������������ + … 文章を0 or 1の2値単語ベクトルで表現
• 仮定 A2
  – ������������ … はRが与えられた時に相互に独立
    • 実際にはそんなわけがない(単語並び替えても同じ?)
    • が、仮定しなければ組み合わせ爆発を起こす
    • Naive Bayes分類の仮定でもある
• よって
                   ������ ������ ������ = 1     ������ ������ ������������ ������ = 1
    ������ ������ = 1 ������ ∼              =
                   ������ ������ ������ = 0     ������ ������ ������������ ������ = 1
Binary Independence Model [3]
• 仮定 A3
  – ������ 0 ������ = 1 = ������ 0 ������ = 0
  – 空文章は、R=0 or 1どちらのクラスにも等しく出現
• ここで追加定義
  – ������������ = ������ ������������ = 1 ������ = 1
  – ������������ = ������ ������������ = 1 ������ = 0
• よって
                          ������������         1 − ������������
                    ������∈������ ������
                            ������
                                 ������∉������ 1 − ������
                                             ������         ������������ (1 − ������������ )
  ������ ������ = 1 ������ ∼                                =
                               1 − ������������                 ������������ (1 − ������������ )
                            ������ 1 − ������             ������∈������
                                      ������
推定
• この時点での推定
 – もし、全文章がR=0 or 1どちらのクラスに属するかが自
   明であれば、以下の定義でクエリがどのクラスに属す
   るかが確率で求まる                                 Smoothing
            ������1 ������ + 0.5        ������0 ������ + 0.5
     ������������ =              ������������ =
              ������1 + 1.0           ������0 + 1.0
 – なお������������ ������ は各々のクラスでの観察回数
 – また確率0を避けるために、適当にスムージング
• 使い道
 – 学習データがある際の文章分類タスクといってよい
 – もちろんこのままでは検索には使えない
推定例(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
Binary Independence Model [4]
• 仮定 A4
  – ������������ = ������������ ������������ ������ ∉ ������ … クエリに出現しない単語は適合、
    不適合文書において同じくらい出現と仮定
• 仮定 A5
  – ������������ = 0.5 ������������ ������ ∈ ������ … クエリに出現する単語は、適合文
    章に50%の確率で出現する
• 仮定 A6
  – ������������ ≈ ������������ /������ … 不適合文章を全体で近似
                                                                                           IDF
• 結果
                       ������������ 1 − ������������                    1 − ������������                  ������ − ������������ + 0.5
  ������ ������ = 1 ������ ∼                         =                         =
                        ������
                   ������∈������ ������
                              1 − ������������       ������∈������∩������
                                                          ������������         ������∈������∩������
                                                                                    ������������ + 0.5
推定例(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
BM25
• 概要(詳細は割愛)
   – ������������ を文章D内での単語wの出現回数とした場合
   – ������(������������ )を2つのポワソン分布から成ると考える
                                            ������                                 ������
                              ������ −������1,������ ������1,������
                                             ������
                                                                 ������ −������0,������ ������0,������
                                                                               ������

        ������ ������������ = ������ ������ = 1                       + ������(������ = 0)
                                   ������������ !                             ������������ !




• 結果
    ������(������|������ = 1)                       ������������ ∙ (1 + ������)                    ������
log               ≈        (                                         × log )
    ������(������|������ = 0)            ������������ + ������( 1 − ������ + ������ ∙ ������������ /������������������������      ������������
                      ������
                                                                           文章長の平均
BM25F
• 概要(詳細は割愛)
 – BM25を複数のフィールドに対応させたもの
   • 各フィールドの平均長などがパラメータに
 – BM25Fでやっと納得のいく結果が得られた
   • 自前の検索エンジンなのですぐ対応できた
• ただしLuceneでのBM25F対応は難しい
 – フィールド毎の単語頻度が取得できないため
 – どうしても必要であれば、Luceneを改造するか、自前
   で集計するしかないかも(要調査)
まとめ・課題
• まとめ
 – WordNetを用いた日英間言語横断検索
 – 情報検索基礎(tf-idfからBM25F)
 – Luceneと言えども万能ではない
• 課題
 – 多言語対応
 – Luceneの理解を深める
 – より発展的なトピック
参考文献
• 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

More Related Content

What's hot

AWS + MLflow + SageMakerの環境を動かしてみたお話
AWS + MLflow + SageMakerの環境を動かしてみたお話AWS + MLflow + SageMakerの環境を動かしてみたお話
AWS + MLflow + SageMakerの環境を動かしてみたお話ItohHiroki
 
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズムTakuya Akiba
 
正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?kwatch
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題tmaehara
 
機械学習のマイクロサービスでの運用の実験について #mlops
機械学習のマイクロサービスでの運用の実験について #mlops機械学習のマイクロサービスでの運用の実験について #mlops
機械学習のマイクロサービスでの運用の実験について #mlopsHiroaki Kudo
 
03 2 断片的情報の構造化_KJ法の実践
03 2 断片的情報の構造化_KJ法の実践03 2 断片的情報の構造化_KJ法の実践
03 2 断片的情報の構造化_KJ法の実践nishio
 
Cythonやってみた!
Cythonやってみた!Cythonやってみた!
Cythonやってみた!YukiFukuda3
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデートAkira Inoue
 
CUDA 6の話@関西GPGPU勉強会#5
CUDA 6の話@関西GPGPU勉強会#5CUDA 6の話@関西GPGPU勉強会#5
CUDA 6の話@関西GPGPU勉強会#5Yosuke Onoue
 
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介Ryohei Ueda
 
子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得Yuya Unno
 
画像認識と深層学習
画像認識と深層学習画像認識と深層学習
画像認識と深層学習Yusuke Uchida
 
可読性について リーダブルコード Part2(ループとロジックの単純化)
可読性について リーダブルコード Part2(ループとロジックの単純化)可読性について リーダブルコード Part2(ループとロジックの単純化)
可読性について リーダブルコード Part2(ループとロジックの単純化)tak
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミングPreferred Networks
 
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)昌桓 李
 
データドリフトの紹介
データドリフトの紹介データドリフトの紹介
データドリフトの紹介Sho Tanaka
 

What's hot (20)

AWS + MLflow + SageMakerの環境を動かしてみたお話
AWS + MLflow + SageMakerの環境を動かしてみたお話AWS + MLflow + SageMakerの環境を動かしてみたお話
AWS + MLflow + SageMakerの環境を動かしてみたお話
 
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
 
直交領域探索
直交領域探索直交領域探索
直交領域探索
 
正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?正規表現リテラルは本当に必要なのか?
正規表現リテラルは本当に必要なのか?
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
 
Ooc 2020
Ooc 2020Ooc 2020
Ooc 2020
 
機械学習のマイクロサービスでの運用の実験について #mlops
機械学習のマイクロサービスでの運用の実験について #mlops機械学習のマイクロサービスでの運用の実験について #mlops
機械学習のマイクロサービスでの運用の実験について #mlops
 
03 2 断片的情報の構造化_KJ法の実践
03 2 断片的情報の構造化_KJ法の実践03 2 断片的情報の構造化_KJ法の実践
03 2 断片的情報の構造化_KJ法の実践
 
動的計画法を極める!
動的計画法を極める!動的計画法を極める!
動的計画法を極める!
 
CMSI計算科学技術特論A(13) 古典分子動力学法の高速化2
CMSI計算科学技術特論A(13) 古典分子動力学法の高速化2CMSI計算科学技術特論A(13) 古典分子動力学法の高速化2
CMSI計算科学技術特論A(13) 古典分子動力学法の高速化2
 
Cythonやってみた!
Cythonやってみた!Cythonやってみた!
Cythonやってみた!
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
 
CUDA 6の話@関西GPGPU勉強会#5
CUDA 6の話@関西GPGPU勉強会#5CUDA 6の話@関西GPGPU勉強会#5
CUDA 6の話@関西GPGPU勉強会#5
 
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介
 
子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得
 
画像認識と深層学習
画像認識と深層学習画像認識と深層学習
画像認識と深層学習
 
可読性について リーダブルコード Part2(ループとロジックの単純化)
可読性について リーダブルコード Part2(ループとロジックの単純化)可読性について リーダブルコード Part2(ループとロジックの単純化)
可読性について リーダブルコード Part2(ループとロジックの単純化)
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
 
データドリフトの紹介
データドリフトの紹介データドリフトの紹介
データドリフトの紹介
 

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

Identifying Users’ Topical Tasks in Web Search
Identifying Users’ Topical Tasks in Web SearchIdentifying Users’ Topical Tasks in Web Search
Identifying Users’ Topical Tasks in Web Searchharapon
 
Abstractive Text Summarization @Retrieva seminar
Abstractive Text Summarization @Retrieva seminarAbstractive Text Summarization @Retrieva seminar
Abstractive Text Summarization @Retrieva seminarKodaira Tomonori
 
テキストマイニングで発掘!? 売上とユーザーレビューの相関分析
テキストマイニングで発掘!? 売上とユーザーレビューの相関分析テキストマイニングで発掘!? 売上とユーザーレビューの相関分析
テキストマイニングで発掘!? 売上とユーザーレビューの相関分析Shintaro Takemura
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010Nobuaki Oshiro
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905Nobuaki Oshiro
 
蔵書選定のための学位論文タイトルマイニング
蔵書選定のための学位論文タイトルマイニング蔵書選定のための学位論文タイトルマイニング
蔵書選定のための学位論文タイトルマイニングgenroku
 
Search on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 SpringSearch on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 SpringEiji Shinohara
 
機械学習を用いたWeb上の産学連携関連文書の抽出
機械学習を用いたWeb上の産学連携関連文書の抽出機械学習を用いたWeb上の産学連携関連文書の抽出
機械学習を用いたWeb上の産学連携関連文書の抽出National Institute of Informatics
 
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと Haruka Ozaki
 
Information retrieval model
Information retrieval modelInformation retrieval model
Information retrieval modelYuku Takahashi
 
Neural Models for Information Retrieval
Neural Models for Information RetrievalNeural Models for Information Retrieval
Neural Models for Information RetrievalKeisuke Umezawa
 
Scalaプログラミング・マニアックス
Scalaプログラミング・マニアックスScalaプログラミング・マニアックス
Scalaプログラミング・マニアックスTomoharu ASAMI
 
卒論執筆・スライド作成のポイント
卒論執筆・スライド作成のポイント卒論執筆・スライド作成のポイント
卒論執筆・スライド作成のポイントTsubasa Hirakawa
 
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...Naoaki Okazaki
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門Yuichiro Kobayashi
 
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」Kenji Shirane
 
[DL輪読会] Towards an Automatic Turing Test: Learning to Evaluate Dialogue Respo...
[DL輪読会] Towards an Automatic Turing Test: Learning to Evaluate Dialogue Respo...[DL輪読会] Towards an Automatic Turing Test: Learning to Evaluate Dialogue Respo...
[DL輪読会] Towards an Automatic Turing Test: Learning to Evaluate Dialogue Respo...Deep Learning JP
 

Similar to WordNetで作ろう! 言語横断検索サービス (20)

Identifying Users’ Topical Tasks in Web Search
Identifying Users’ Topical Tasks in Web SearchIdentifying Users’ Topical Tasks in Web Search
Identifying Users’ Topical Tasks in Web Search
 
Abstractive Text Summarization @Retrieva seminar
Abstractive Text Summarization @Retrieva seminarAbstractive Text Summarization @Retrieva seminar
Abstractive Text Summarization @Retrieva seminar
 
テキストマイニングで発掘!? 売上とユーザーレビューの相関分析
テキストマイニングで発掘!? 売上とユーザーレビューの相関分析テキストマイニングで発掘!? 売上とユーザーレビューの相関分析
テキストマイニングで発掘!? 売上とユーザーレビューの相関分析
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
 
蔵書選定のための学位論文タイトルマイニング
蔵書選定のための学位論文タイトルマイニング蔵書選定のための学位論文タイトルマイニング
蔵書選定のための学位論文タイトルマイニング
 
LDA入門
LDA入門LDA入門
LDA入門
 
Search on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 SpringSearch on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 Spring
 
機械学習を用いたWeb上の産学連携関連文書の抽出
機械学習を用いたWeb上の産学連携関連文書の抽出機械学習を用いたWeb上の産学連携関連文書の抽出
機械学習を用いたWeb上の産学連携関連文書の抽出
 
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
 
Information retrieval model
Information retrieval modelInformation retrieval model
Information retrieval model
 
Katayama m
Katayama mKatayama m
Katayama m
 
Neural Models for Information Retrieval
Neural Models for Information RetrievalNeural Models for Information Retrieval
Neural Models for Information Retrieval
 
Scalaプログラミング・マニアックス
Scalaプログラミング・マニアックスScalaプログラミング・マニアックス
Scalaプログラミング・マニアックス
 
卒論執筆・スライド作成のポイント
卒論執筆・スライド作成のポイント卒論執筆・スライド作成のポイント
卒論執筆・スライド作成のポイント
 
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...
Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word repres...
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門
 
第28回Tokyo.R
第28回Tokyo.R第28回Tokyo.R
第28回Tokyo.R
 
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
Drupal、group、quiz、webformを利用したeラーニングサイト「sqt」
 
[DL輪読会] Towards an Automatic Turing Test: Learning to Evaluate Dialogue Respo...
[DL輪読会] Towards an Automatic Turing Test: Learning to Evaluate Dialogue Respo...[DL輪読会] Towards an Automatic Turing Test: Learning to Evaluate Dialogue Respo...
[DL輪読会] Towards an Automatic Turing Test: Learning to Evaluate Dialogue Respo...
 

Recently uploaded

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (12)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

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

  • 1. 第2回さくさくテキストマイニング勉強会 WordNetで作ろう! 言語横断検索サービス Shintaro TAKEMURA d.hatena.ne.jp/taos twitter.com/stakemura facebook.com/shintaro.takemura
  • 2. 背景 • 社内Google Codeみたいなものを想定してください – 登録されるプログラムが増え続けるとどうなる? → 欲しいものがすぐに見つからない状態に – 生産性を上げるためにより賢いアプローチが必要! 機能がたくさん あるけど、何を 使えばいいか わからない…
  • 3. そこで提案 • 検索性能の強化(バイリンガルの如く) – 日英表記揺れを解決 • 例:“vertex”と”頂点” – 語義あいまい性も解決 • 例:”divide”と”separate” • 推薦機能の搭載(貴方に合った結果を) – 操作履歴に基づく推薦 本発表では扱いません • Amazonのおススメ機能 を社内情報共有に応用 – 集合知の活用!
  • 4. システムの特徴 • フィールドが多い – 名称、作者名、概要、内容、マニュアルなど – 文字数に大きなばらつきがある (名称<概要<内容≪マニュアル) ⇒これが後々に問題に • ドキュメント規模は小さい – PC1台で回せるレベル。分散不要 • リンク解析など高度な機能は不要 • 検索システムは自前で構築 – Luceneで要求仕様を全部満たせるかわからなかった – この判断が正しかったかどうかは後半にて
  • 5. 言語横断検索のアプローチ • 3つアプローチがある – 「対訳辞書」ベース • 日本語WordNetのような辞書を活用するアプローチ • 本発表のメイン(日・英間言語横断検索を扱う) – 「対訳コーパス」ベース • 辞書がない、あるいは併用する場合のアプローチ • 本発表の後半にて軽く触れる – 「機械翻訳」ベース • 機械翻訳を用いたアプローチ • 本発表では触れない
  • 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. 日本語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 例文 • 実は対訳辞書として使えます!
  • 10. Search Engineでの位置づけ Text Browser user interest Text Text Processing and Modeling logical view logical view MeCab Query NLTK etc. Indexing user feedback Operations Crawler inverted index / Data query WordNet Access Searching Index retrieved docs Documents (Web or DB) Ranking ranked docs
  • 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. 問題1:検索結果が良くない • 現象 – 意図しない検索結果(複数フィールドに起因) – 例:aaaで検索すると名称:bbbがトップに 名称 aaa bbb 概要 hoge fuga 内容 hogehoge aaaが… aaaの… aaaから… aaa マニュアル により… • 解決方法 – UIを増やす ランキングアルゴリズム(tf-idf)を見直す
  • 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. 何が起きたか? • 検索性能の尺度 – 検索速度 – 更新速度 – 文書容量 – Recall (再現率) • 検索漏れに関連 • WordNetで改善したが… – Precision (適合率) • 検索精度に関連 • 新たな問題として浮上
  • 15. PrecisionとRecall • Precision (適合率) – 「全検索結果」に対して「検索要求を満たす結果」の 割合 – “MacBook Air 重さ” で 100件 ヒット、うち 85 件が重さ がわかるドキュメント = 85/100 = 0.85 • Recall (再現率) – 「検索要求を満たす全ドキュメント」に対しての「検 索要求を満たす検索結果」の割合 – Web上に 90件あると仮定して、ウェブ検索して 85 件が 得られた → 85/90 = 0.94
  • 16. PrecisionとRecallのイメージ • Precision: |C| / |B| • Recall: |C| / |A| – どちらも高いほうがよい 検索ノイズも検索漏れも少ないほうがよい 全文書集合 適合文書 検索された文書 C A B
  • 17. PrecisionとRecallのトレードオフ • Precisionのみを高めたい – 適合しない可能性が少しでもある文書を、検索結果か ら除外 – Recallの低下(= 検索漏れの発生) • Recallのみを高めたい p ideal – 適合する可能性が少しでもある better 文書を、検索結果として採用 – Precisionの低下(= 検索ノイズの発生) typical • 両者はトレードオフ関係 – 評価尺度には調和平均のF値を利用 F = 2 / ( 1 / Recall + 1 / Precision ) r
  • 18. ベクトル空間モデル(Vector Space Model) • ベクトルで考えてみよう(Bag of Words) – 文章(document)は単語(term)の集合体 – 検索クエリも単語(term)の集合体 query document Q A B C D E ○ ○ ○ {D, E} term 0 0 term 1 1 ○ 2 ○ 2 ○ ○ ○ {A, B, E} 3 3 ○ 4 4 ○ 5 5 ○ ○ 6 6 ○ ○ 0, 2, 5, 6
  • 19. 検索と最近傍探索 • ベクトル空間モデルにおける検索とは – ベクトル空間内で 近いベクトルを探すこと – 検索ではCosine類似度が一般に用いられる ������(������1 ) ∙ ������(������2 ) d ������������������(������1 , ������2 ) = ������ ������1 |������(������2 )|  q
  • 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.4 term 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. tf - term frequency • ある単語が各々の文章にどのくらい出現するか? ni 単語iの出現頻度 tf i   k nk 文書で出現する総単語数 • 問題点 – すべての単語が等しい重要度の場合 • 例:ツール,エラー,ファイル… • 解決方法 – 頻繁に登場する語の影響力を薄める → そこでidf
  • 22. idf - inverse document frequency • ある単語がどのくらいの数の文書に出現するか? 総ドキュメント数 |D| idf i  log 単語iを含む | {d : d  ti } | ドキュメント数 レア語では高く 頻出語では低く
  • 23. tf-idfによるスコアリング • 以下の場合に高い – 少数のドキュメントにtがたくさん出現する場合 • 以下の場合に低い – ひとつのドキュメントに t が少なく出現する場合 – たくさんのドキュメントに t が出現する場合
  • 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. 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. 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. 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. Binary Independence Model [1] • 仮定 A0 – 文章Dの適合性は、他の文書に依存しない • P(R=1|D)によるランク付け – R={0,1} … 適合度を示す確率変数 – D … 文章の中身(この時点ではクエリは考えない) – ベイズの定理より • ������ ������ ������ ∝ ������ ������ ������ ������(������) • 関係演算子 ∼ を「ランク順位が等しい」とおくと ������ ������ = 1 ������ ������ ������ ������ = 1 ������(������ = 1) ������ ������ = 1 ������ ∼ = ������ ������ = 0 ������ ������ ������ ������ = 0 ������(������ = 0) 与えられたクエリに対して定数。ラ ンクするだけなら推定の必要なし
  • 29. Binary Independence Model [2] • 仮定 A1 – ������ = *������������ + … 文章を0 or 1の2値単語ベクトルで表現 • 仮定 A2 – ������������ … はRが与えられた時に相互に独立 • 実際にはそんなわけがない(単語並び替えても同じ?) • が、仮定しなければ組み合わせ爆発を起こす • Naive Bayes分類の仮定でもある • よって ������ ������ ������ = 1 ������ ������ ������������ ������ = 1 ������ ������ = 1 ������ ∼ = ������ ������ ������ = 0 ������ ������ ������������ ������ = 1
  • 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. 推定 • この時点での推定 – もし、全文章がR=0 or 1どちらのクラスに属するかが自 明であれば、以下の定義でクエリがどのクラスに属す るかが確率で求まる Smoothing ������1 ������ + 0.5 ������0 ������ + 0.5 ������������ = ������������ = ������1 + 1.0 ������0 + 1.0 – なお������������ ������ は各々のクラスでの観察回数 – また確率0を避けるために、適当にスムージング • 使い道 – 学習データがある際の文章分類タスクといってよい – もちろんこのままでは検索には使えない
  • 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. Binary Independence Model [4] • 仮定 A4 – ������������ = ������������ ������������ ������ ∉ ������ … クエリに出現しない単語は適合、 不適合文書において同じくらい出現と仮定 • 仮定 A5 – ������������ = 0.5 ������������ ������ ∈ ������ … クエリに出現する単語は、適合文 章に50%の確率で出現する • 仮定 A6 – ������������ ≈ ������������ /������ … 不適合文章を全体で近似 IDF • 結果 ������������ 1 − ������������ 1 − ������������ ������ − ������������ + 0.5 ������ ������ = 1 ������ ∼ = = ������ ������∈������ ������ 1 − ������������ ������∈������∩������ ������������ ������∈������∩������ ������������ + 0.5
  • 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. BM25 • 概要(詳細は割愛) – ������������ を文章D内での単語wの出現回数とした場合 – ������(������������ )を2つのポワソン分布から成ると考える ������ ������ ������ −������1,������ ������1,������ ������ ������ −������0,������ ������0,������ ������ ������ ������������ = ������ ������ = 1 + ������(������ = 0) ������������ ! ������������ ! • 結果 ������(������|������ = 1) ������������ ∙ (1 + ������) ������ log ≈ ( × log ) ������(������|������ = 0) ������������ + ������( 1 − ������ + ������ ∙ ������������ /������������������������ ������������ ������ 文章長の平均
  • 36. BM25F • 概要(詳細は割愛) – BM25を複数のフィールドに対応させたもの • 各フィールドの平均長などがパラメータに – BM25Fでやっと納得のいく結果が得られた • 自前の検索エンジンなのですぐ対応できた • ただしLuceneでのBM25F対応は難しい – フィールド毎の単語頻度が取得できないため – どうしても必要であれば、Luceneを改造するか、自前 で集計するしかないかも(要調査)
  • 37. まとめ・課題 • まとめ – WordNetを用いた日英間言語横断検索 – 情報検索基礎(tf-idfからBM25F) – Luceneと言えども万能ではない • 課題 – 多言語対応 – Luceneの理解を深める – より発展的なトピック
  • 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