特徴ベクトルを用いた全文検索について(1)

029be5ac1ce0db70c46dcd7152308e2e?s=47 masaya82
February 13, 2018
61

 特徴ベクトルを用いた全文検索について(1)

029be5ac1ce0db70c46dcd7152308e2e?s=128

masaya82

February 13, 2018
Tweet

Transcript

  1. 特徴ベクトルを用いた 全文検索について(1) 自然言語処理研究室 B3 福嶋 真也

  2. 参考文献 北 研二、津田 和彦、獅々堀 正幹 著 「情報検索アルゴリズム」 2002年 共立出版株式会社

  3. 特徴ベクトル法 特徴ベクトル法とは →特徴ベクトル(またはシグネチャー・ファイル)と呼ばれる二次 情報を索引として検索処理を高速化する手法 特徴ベクトルとは →対象の文書中にどのような索引語が出現したかという特徴を 0と1からなるビット列で表現したもの

  4. 特徴ベクトル法 流れ 文書集合のすべての文書から単語シグネチャー、文書シグネ チャーを作成 検索単語についても単語シグネチャーを作成 検索単語シグネチャーと文書シグネチャーを用いて検索を行う 単語シグネチャー・・・索引語となる単語の特徴を表すビット列 文書シグネチャー・・・文書の特徴を表すビット列

  5. 特徴ベクトルの構成法 ・単語シグネチャーの作成法 (前処理)対象の文書内から索引語となる単語を特定 ハッシュ関数を用いて整数に変換し、ビット長F、その中のm個 のビットが1、残りが0のビット列からなる単語シグネチャーを生 成 1 2 3 ・・・

    ( =0 or 1 ( 0≦i≦ F)) 3つの例を紹介 1、m=1のとき 2、m>1のとき(1) 3、m>1のとき(2)
  6. 特徴ベクトルの構成法 1、m=1のとき 以下のようなハッシュ関数を用意 H = + 1 :単語 :単語中の各文字の内部コードの和 :

    Fで割った余り 単語を入力し、ハッシュ値と対応するビットを1に
  7. 特徴ベクトルの構成法 例:w=“full”,F=8としてアルファベットの内部コードをaから順番 に0,1,…25としたとき H "" = 5 + 20 +

    11 + 11 8 + 1 = 8 Sign "" = 0 0 0 0 0 0 0 1 この方法ではF通りのパターンが生成可能 パターンを増やすためにはmを増加させる必要がある
  8. 特徴ベクトルの構成法 2、m>1のとき(1) 1のときのようなハッシュ関数をk個用意 そのハッシュ値と同じビット位置に1を置く 1の数mは1≦m≦kとなる できるだけハッシュ値が衝突を起こさないようなハッシュ関数を 用意することが重要

  9. 特徴ベクトルの構成法 3、m>1のとき(2) 1の に対して2進数表現を求めて、その末尾Fビット文 のビット列を単語シグネチャーに 1の例を使用すると Sum "" = 5

    + 20 + 11 + 11 = 47 1 "" = 0 0 1 0 1 1 1 1
  10. 特徴ベクトルの構成法 これまでは単語を分割せず単語シグネチャーを作成 →部分文字列の情報を単語シグネチャーに反映 方法 単語wに対し、隣接する2文字のハッシュ値を求め、その値と同 じビット位置を1にする

  11. 特徴ベクトルの構成法 例:1と同じ例で“fu”“ul”“ll”に対してハッシュ値を計算 H "" = 25 8 + 1 =

    2 H "" = 31 8 + 1 = 8 H "" = 22 8 + 1 = 7 "" = 0 1 0 0 0 0 1 1 何に利用するか →部分文字列検索に利用
  12. 特徴ベクトルの構成法 ・文書シグネチャーの作成法 (単語シグネチャーはm=1のときの方法を使用して求める) 文書内のすべての単語シグネチャーについてスーパーインポーズド・ コーティングを行うことで作成 数式で表すと文書D{ 1 , 2 ,

    … … }に対して _ = 1 | 2 |…| |…| スーパーインポーズド・コーティング ・・・単語シグネチャーのビットごとの論理和をとること
  13. 特徴ベクトルの構成法 例:文書D“full text search”に対して文書シグネチャーを構成 H "" = 8 H "ℎ"

    = 48 8 + 1 = 1 H "" = 65 8 + 1 = 2 "" = 0 0 0 0 0 0 0 1 "" = 0 1 0 0 0 0 0 0 "ℎ" = 1 0 0 0 0 0 0 0 _() = "" "" "ℎ" = 1 1 0 0 0 0 0 1
  14. 特徴ベクトルの構成法 日本語の場合・・・ 単語を部分文字列に分解し、それらの単語シグネチャーから文 書シグネチャーを構成する なぜ? →日本語は複合語が多数存在 分解しないと部分文字列で一致していても一致していないと 判断 例えば「全文検索法」を含む文字列に対して「検索法」で検索で きない

  15. 特徴ベクトルによる検索 方法 検索単語のシグネチャーを作成して、文書シグネチャーとビット ごとの論理積をとる 結果が検索単語シグネチャーと一致しないならその文書を排除、 一致するなら逐次検索を行い検索単語があるか確認 なぜ確認? 検索条件を満たす候補(アクチュアル・ドロップ)と満たさない候 補(フォルス・ドロップ)が存在 →条件を満たしているかの判定処理(フォルス・ドロップ・レゾ

    リューション)を行う必要がある。
  16. 特徴ベクトルによる検索 例:以下の文書集合に対しkey=“index”で検索 1 =full text search 2 =inverted index file

    3=sequential search algorithm 4=index search algorithm 5=information retrieval algorithm
  17. 特徴ベクトルによる検索 _ 1 =1 1 0 0 0 0 0

    1 _ 2 =0 1 0 1 1 0 0 0 _ 3 =1 1 0 0 0 0 1 0 _ 4 =1 0 0 1 0 0 1 0 _ 5 =0 0 0 1 0 1 1 0 =0 0 0 1 0 0 0 0 2 , 4 , 5 が一致→ 逐次検索で2 , 4 にindexがあることを確認
  18. 今回の発表内容 特徴ベクトルの構成法 ・単語シグネチャーの作成法 ・文書シグネチャーの作成法 特徴ベクトルによる検索 次は・・・ ・複数の検索単語である場合の検索 ・分割管理による特徴ベクトルの構成法