検索と自然言語処理
のキソのキソ
一橋大学附属図書館 小野 亘
SearchからDiscoveryへ
• データの規模が大きくなると、検索した
結果の評価が難しくなる
– 普通に検索しただけでは膨大な検索結果にな
る。
– 従来の適合率、再現率だけでは評価できない
• 検索結果に何らかの「評価」を加えて、
そこから必要なものを「発見」する必要
がある
• 分析、組織化、パーソナライズ、レコメン
ド・・・
参考 『Search Discovery & Analytics』が 提唱する企業でのビッグデータ
ディスカバリと検索技術
• 分析、組織化
– 関連度、重要度、利用度、出現頻度、ファ
セット、クラスタリング、トピック(キー
ワード)抽出など
• パーソナライズ
– 属性によるフィルタリングなど
• レコメンド(レコメンデーション:推
薦)
– 関連するもの、もしかして・・・、協調フィ
ルタリング、利用履歴、提供側による重み付
問題1
• [経済×近代]というキーワード検索をし
たとして、次の検索結果をキーワードと
の関連度で並べ直してください。
① 近代経済学と近代
② 近代経済学と経済学の近代
③ 近代経済学と経済
「近代」と「経済」の単語数でプ
ロット近
代
経済
① 近代経済学と近代
② 近代経済学と経済学の近代
③ 近代経済学と経済
キーワード: 近代×経済
① ②
③
答え
• このグラフを単純に見れば、
– ②
– ①③
という順番に関連していることがパッと見て分
かります。
ベクトル空間モデル
• これは単語が2つ(=2次元)で、結果が
3種類(ベクトルが3本)ですが、単語も
増えて、結果が膨大になれば、コン
ピュータに計算させるしかありません。
・このグラフをn次元のベクトルと見立て
て、ベクトル間の近さを計算するのが
「コサイン類似度」
その他類似度のアルゴリズムな
ど
• レーベンシュタイン距離
– 二つの文字列がどの程度異なっているかを示
す数値
• 機械学習
– 確率論的
– 分類などなど
• GETA(連想検索エンジン)
– このツールを使うと、比較的簡単に文書と文
書の関連が分かる。
類似度の応用
• 先ほどの例では、キーワードと検索結果の類
似度を使うと検索結果の並べ替えができた。
• ある本とその他の本の類似度を調べれば、あ
る本に関連する本(似たような本)を関連す
る順にピックアップできます(単純なレコメ
ンド)。
• 類似度によって関連するまとまり(クラスタ
=葡萄の房)を自動的に抽出することもでき
ます(クラスタリング)。
• 「もしかして」=キーワードのサジェストも
これの応用
問題2
• 「近代経済学は、「限界革命」以降の経
済学体系のうち、マルクス経済学以外の
ものの総称であり、ミクロ経済学とマク
ロ経済学に大別される。」
からキーワードを抽出してください。
Nグラム法
• ひたすらn字づつキーワードに切ってい
く
– 2グラム(bigram)なら:近代 代経 経済 済学 学は 、「 限界 界革
革命 」 以降 降の の経 経済
済学 学体 体系 系の のう うち 、マル ルク ク
ス ス経 経済 済学 学以 以外 外の のも
もの のの の総 総称 称で であ あり 、
ミク ロ経 経済 済学 学と マク クロ ロ経
経済 済学 学に に大 大別 別さ され れる。
日本語形態素解析を使ってみる
"近代":名詞,一般
"経済":名詞,一般
"学":名詞,接尾,一般,
"は":助詞,係助詞
"、":記号,読点
"「":記号,括弧開
"限界":名詞,一般
"革命":名詞,一般
"」":記号,括弧閉
"以降":名詞,副詞可能
"の":助詞,連体化
"経済":名詞,一般
"学":名詞,接尾,一般,
"体系":名詞,一般
"の":助詞,連体化
"うち":名詞,非自立,副詞可能,
"、":記号,読点
"マルクス":名詞,固有名詞,人名,姓,
"経済":名詞,一般
"学":名詞,接尾,一般,
"以外":名詞,非自立,副詞可能,
"の":助詞,連体化
"もの":名詞,非自立,一般,
“の”:助詞,連体化
"総称":名詞,サ変接続
"で":助動詞,
"あり":助動詞,
"、":記号,読点
"ミクロ":名詞,一般
"経済":名詞,一般
"学":名詞,接尾,一般,
"と":助詞,並立助詞
"マクロ":名詞,一般
"経済":名詞,一般
"学":名詞,接尾,一般,
"に":助詞,格助詞,一般,
"大別":名詞,サ変接続
"さ":動詞,自立,
"れる":動詞,接尾,
"。":記号,句点
助詞、助動詞、記号を削除
"近代":名詞,一般
"経済":名詞,一般
"学":名詞,接尾,一般,
"限界":名詞,一般
“革命”:名詞,一般
“以降”:名詞,副詞可能
"経済":名詞,一般
"学":名詞,接尾,一般,
“体系”:名詞,一般
"うち":名詞,非自立,副詞可能,
"マルクス":名詞,固有名詞,人名,姓,
"経済":名詞,一般
"学":名詞,接尾,一般,
"以外":名詞,非自立,副詞可能,
"もの":名詞,非自立,一般,
“総称”:名詞,サ変接続
"ミクロ":名詞,一般
"経済":名詞,一般
"学":名詞,接尾,一般,
"マクロ":名詞,一般
"経済":名詞,一般
"学":名詞,接尾,一般,
"大別":名詞,サ変接続
"さ":動詞,自立,
"れる":動詞,接尾,
さらに重要単語を抽出
• 単語の出現回数を数える
– たくさんあれば重要?
• 共起頻度を数える
– いろんな文書を調べると「経済」と「近代」はか
なりの頻度で一緒に現れるので関係が深いに違い
ない
• tf-idf法
– その文書(フレーズ)の中での単語の出現回数
(tf)を計算して、これに多くの文書に出現する
ような一般的な単語を除外(idf)する。
もう少し単語の意味を・・・
• 複合語の処理
– 近接度、共起頻度
• 係り受け解析
– 構文解析
• 活用語尾の処理
– 語幹の抽出
– ステミング、レマタイズ
レコメンド
• 『近代経済学入門』の読者に次の本を推薦す
るには?
① 書名が同じか似ている本をとりあえず推薦する
② 同じ本を借りた別の人が借りた本の中から貸出
回数が多い本を推薦する
• 貸出回数以外の指標があればなおよい
– クリック回数、タグやレビューがついた数、いいね!の
数など
③ ②の結果から、その人の属性や、状況(=空気
を読む)が分かれば、それで絞る
④ 目次や抄録、内容紹介文があれば、それらの似
たものを推薦(類似度の応用)
⑤ この本を読んだら次に読む確率が高い本を推薦
する(機械学習の応用)

検索と自然言語処理