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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for masaya82 masaya82
January 23, 2018
210

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

Avatar for masaya82

masaya82

January 23, 2018

More Decks by masaya82

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