1 / 7

S tring Matching Techniques

S tring Matching Techniques. 필요성 색인(역화일, PAT 트리 등)되지 않은 텍스트에서의 검색 예: 검색기의 ‘ 출력 ’ 단계에서의 필터링 혹은 용어 검색 검색 소요 시간: 최악의 경우 O(n) 이 목표 임의의 (알파벳수= c) 에서 나온 두 문자가 같을 확률은 1/ c 이고, 각각 길이가 m 인 임의의 텍스트(문서)와 유형(검색용어)가 일치할 확률은, Prob[match] = 1/c m 이고

thad
Download Presentation

S tring Matching Techniques

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. String Matching Techniques

  2. 필요성 • 색인(역화일, PAT 트리 등)되지 않은 텍스트에서의 검색 • 예: 검색기의 ‘출력’단계에서의 필터링 혹은 용어 검색 • 검색 소요 시간: 최악의 경우 O(n)이 목표 • 임의의 (알파벳수=c)에서 나온 두 문자가 같을 확률은 1/c이고, 각각 길이가 m인 임의의 텍스트(문서)와 유형(검색용어)가 일치할 확률은, • Prob[match] = 1/cm이고 • 길이가 n인 임의의 텍스트에서 길이가 m인 임의의 유형(pattern)을 발견할 수 있는 횟수의 기대값은, • E[match] = (n - m + 1) / cm이다 • 최악의 알고리즘을 쓰면 비교횟수가 매우 큼 O(mn)

  3. A.1 Knuth-Moriss-Pratt 알고리즘 • 이전의 비교(comparison)를 기억 • 패턴의 초기 순차(initial sequence or heads)를 기억 • 유한 상태 인식기(기계)(Finite State Recognizer) 활용 • FSR의 각 상태가 패턴의 head를 기억 • FSR의 state transition diagram 작성 순서 • spine: 패턴의 정확한 매치 • default bus: 매치되는 것이 없을 때의 이동 • initial bus: 텍스트의 문자가 패턴의 첫 글자일때의 이동 • link: 패턴의 head와 매치되는 부문자열(텍스트의)에 해당 • initial bus는 link의 특수한 경우 • 그림 A.1~3 • ex) t h r t h r o w : initial bus의 필요성(그림 A.3)

  4. initial bus 작성시 주의사항 • 패턴 내에서 문자가 반복되는 경우 • ex) c a t c h : t에서 initial bus로는 연결 안함(그림 A.4) • link가 필요한 경우 • 패턴 catch의 경우, 텍스트 catch, catcocatch, catccatch에 대하여는 link가 필요 없으나 catcatch, catcacatch에 대하여는 link가 필요함(그림 A.5) • 추가 예) 패턴: c o c o a • (그림 A.6)

  5. 패턴의 중복(multiple occurence)과 중첩(overlapping) • 중복: 텍스트 내에서 패턴이 여러번 등장 • 중복을 허용하지 않으려면 final state에서 나가는 간선을 제거 • 중첩: 텍스트에 등장하는 패턴들의 구간이 겹치는 경우 • 패턴 aba, 텍스트 abababa: 중첩 허용시 3번 발견 • KMP 인식기의 최종 구성 • 텍스트의 모든 문자는 반드시 한번만 검사된다 • O(n)의 비교, O(m)의 인식기 구성 복잡도 • -> 최종 복잡도 = O(n+m) • failure links -> state trasition table

More Related