Upgrade to Pro — share decks privately, control downloads, hide ads and more …

文字列照合に基づく全文検索について

masaya82
January 23, 2018
170

 文字列照合に基づく全文検索について

masaya82

January 23, 2018
Tweet

Transcript

  1. SimpleSearch 例 キーワード abcaba テキストストリング abcabcababcab 位置 1 2 3

    4 5 6 7 8 9 10 11 12 13 text a b c a b c a b a b c a b 照合 状況 〇 〇 〇 〇 〇 × × × 〇 〇 〇 〇 〇 ◎ × × 〇 〇 × ×
  2. KMP法 例 キーワード abcaba テキストストリング abcabcaba 位置 1 2 3

    4 5 6 7 8 9 text a b c a b c a b a 照合状況 〇 〇 〇 〇 〇 × 〇 〇 〇 ◎
  3. KMP法 失敗関数 位置 1 2 3 4 5 6 7

    キー ワード a b c a b a a b c a b a a b c a b a f(i) 0 1 1 0 1 3 2
  4. AC法 例1:{”ab”,”bc”,”bab”,”d”,”abcde”}のキーワードからなるマシン AC s f(s) 1 0 2 3 3

    0 4 0 5 1 6 2 7 0 8 4 9 7 10 0 s output(s) 2 {“ab”} 4 {“bc”} 6 {“bab”,”ab”} 7 {“d”} 8 {“bc”} 9 {“d”} 10 {“abcde”} (a)goto関数 (b)failure関数 (c)output関数
  5. AC法 例2:テキストストリング”xbabcdexを例1の入力として入れた時 の遷移 0 0 3 5 6 8 9

    10 0 goto関数による 遷移 failure関数による 遷移 2 0 x b x b a c d e