1 / 24

k 単語近接検索について

k 単語近接検索について. 定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻. 内容. k 単語の近接検索 (proximity search) の                                                                                         時間アルゴリズム 平面走査による方法 分割統治による方法 平面走査アルゴリズムの検索速度の実験 html ファイル 185MB. 背景. 電子化された文書の普及 WWW, メール 新聞 , 辞書 , 書籍

neka
Télécharger la présentation

k 単語近接検索について

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. k単語近接検索について 定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻

  2. 内容 • k 単語の近接検索(proximity search)の                                                                                         時間アルゴリズム • 平面走査による方法 • 分割統治による方法 • 平面走査アルゴリズムの検索速度の実験 • htmlファイル 185MB

  3. 背景 • 電子化された文書の普及 • WWW, メール • 新聞, 辞書, 書籍 • ゲノムデータベース • 大量の文書からの検索 • 文書のランキングが必要

  4. 文書のランキング • 検索結果が多い場合に重みをつける • キーワードの重要度 • tf*idf法 • 参照回数 • 近接検索 (proximity search)

  5. Proximity Search • キーワードが近くに現れている場所を探す • 狭い範囲に全てのキーワードが含まれているならそこは有益な情報を含むと考える

  6. 問題の定義(Proximity Search) 問題1 (naive proximity search) • 入力: k 種類の単語のテキスト T[1..N] での出現位置(合計 n 個) • 出力: 全ての単語の出現位置を含む   テキスト中の区間 [l,r] • (区間は、幅 r-l の小さい順にならべる) • 区間内の単語の出現順は任意

  7. 既存研究 • Manber, Baeza-Yates 91 • 距離 d以内の2単語の数を 時間で求める • メモリ • Gonnet, Baeza-Yates, Snider 92 • 距離 d以内の2単語を 時間 • Aref, Barbara, Johnson, Mehrotra 95 • 距離 d以内の k単語の列挙を 時間

  8. 既存の方法の問題点 • 3単語以上の場合に良いアルゴリズムがない • 2単語用のアルゴリズムを繰り返す • 単語間の距離 d を決めておく必要がある • 距離 d 以内の単語の組は      個 • 答えの数が多くなる 本研究 3単語以上で効率のよいアルゴリズムを提案 「極小」なもののみ求める

  9. 本研究の方法 • k単語を含む極小な区間の列挙を 時間 • 区間の最大値 d の制限はない • メモリ • 2つのアルゴリズム • 平面走査アルゴリズムの拡張 • 分割統治法

  10. A B C 極小 極小ではない A B A C 極小 A B B C 極小性 定義1 k 単語を含む区間が極小    別の区間を含まない

  11. naive proximity searchの問題点 • 検索結果に冗長なものが入る • 極小ではない区間を含む • 極小: 他の区間を含まない区間 • 区間の数が 個ある 問題2 (proximity search) naive proximity searchにおいて、極小な区間 のみを幅の狭い順に求める 極小な区間は n 個未満

  12. アルゴリズム(平面走査) • 各単語の出現位置のリストをソート • 各リストの先頭のものを取り出しソートし 区間 [l,r] を求める • 区間 [l,r] が極小ならヒープに入れる • 区間の左端の単語を取り除き、同じ単語をリストから取り出す。空なら 6 へ。 • 区間と単語の順序を更新し、3へ。 • ヒープの中の区間をソートして出力

  13. 次のAは現在の区間に含まれる 次のAは現在の区間に含まれる 左端の単語を捨て、同じ単語を入れる 現在の区間は極小ではない 例 A B C A B A C B A C

  14. 計算量 • 定理1: k 種類、合計 n 個の単語の出現位置が与えられたとき、問題2 (proximity search)は 時間でできる。 • 証明: • 出現位置のソート: • 出現位置のリストのマージ: • 極小な区間のソート:

  15. 分割統治による方法 • 単語の位置をソートする必要がない • ある単語の頻度が小さいときに有効 定理2: 最も少ない単語の頻度が l のとき、m 個の 極小な区間は 時間。

  16. アルゴリズム(分割統治) • n 個の単語の位置の中間値 v を求める。 • 単語の位置を v より小さいもの(L)と大きいもの (R)に分ける。k 個の単語に対し L 中で最右のものと R 中で最左のものを求める。 • L, R 両方にまたがる区間を平面走査で求める。 • L (R) が k 個の単語を全て含んでいればその中の区間を再帰的に求める。

  17. 中間値 A B A B A C B A C B A C B A L R C B A C L R 例

  18. 実際的な高速化 • 出現位置は整数 radix sortを使う • 区間の幅の最大値 d を設定する • 区間の数の上限を設定する • ヒープの根に幅が最大のものを入れ、 それより大きいものはヒープに入れない • 区間の数の上限がない場合 • 区間を配列に入れておき最後にradix sort

  19. 検索速度の実験 • データ • htmlファイル51,783個 • テキストサイズ: 185Mバイト (1つは平均3.5KB) • suffix arrayサイズ: 639Mバイト • (91-95年の毎日新聞全記事 485Mバイト) • マシン • Sun Ultra60 • UltraSPARC-II 360MHz, メモリ2GB, ディスク18GB

  20. 実装方法 • 平面走査アルゴリズム • 位置のソートは基数 のradixソート • 区間の幅の最大値は1000 • 区間の数は無制限

  21. キーワード http www jp h t p e n 個数 283719 214524 319914 3747125 7304053 2610014 6939739 4371063 検索時間(秒) 0.698 0.505 0.778 2.333 4.721 1.820 4.410 2.752 1キーワードの検索時間 個数に比例した時間 (radix sort)

  22. 極小な区間の検索時間 キーワード http www jp h t p e t h n キーワード数 818157 13661192 22361980 区間数 377405 3180532 4400220 検索時間(秒) 2.414 16.351 26.811 ソート以外 0.443 7.487 12.595 検索時間の約半分は極小な区間を求める時間 時間はキーワードの総数にほぼ比例

  23. まとめ • k 単語近接検索を 時間で行うアルゴリズムの提案 • 実際にはほぼ 時間 • htmlファイルでの検索速度の実験 • 通常の検索では速度は問題ない

  24. 課題 • 分割統治アルゴリズムの実装、平面走査との比較 • 高次元への拡張(分割統治アルゴリズム) • セブンイレブン、ローソン、ファミリーマートが近くにあるところを見つける • 計算量の下限を求める

More Related