KR20190136369A - 오토마타 기반 실시간 확률 패턴 매칭 장치 및 방법 - Google Patents

오토마타 기반 실시간 확률 패턴 매칭 장치 및 방법 Download PDF

Info

Publication number
KR20190136369A
KR20190136369A KR1020180061979A KR20180061979A KR20190136369A KR 20190136369 A KR20190136369 A KR 20190136369A KR 1020180061979 A KR1020180061979 A KR 1020180061979A KR 20180061979 A KR20180061979 A KR 20180061979A KR 20190136369 A KR20190136369 A KR 20190136369A
Authority
KR
South Korea
Prior art keywords
probability
pattern
automata
weighted
substrings
Prior art date
Application number
KR1020180061979A
Other languages
English (en)
Other versions
KR102061413B1 (ko
Inventor
한요섭
마르코 코그네타
이홍래
Original Assignee
연세대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 연세대학교 산학협력단 filed Critical 연세대학교 산학협력단
Priority to KR1020180061979A priority Critical patent/KR102061413B1/ko
Publication of KR20190136369A publication Critical patent/KR20190136369A/ko
Application granted granted Critical
Publication of KR102061413B1 publication Critical patent/KR102061413B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3346Query execution using probabilistic model

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

실시간 확률 패턴 매칭 장치 및 방법을 공개한다. 본 발명의 실시예에 따르면, 실시간 확률 패턴 매칭 장치는 검출하고자 하는 적어도 하나의 패턴 각각에 대한 다수의 하위 문자열과 다수의 하위 문자열 각각으로부터 대응하는 패턴이 나타날 확률을 계산하는 확률 유한 오토마타를 생성하고, 확률 유한 오토마타를 다수의 하위 문자열 각각에 대한 확률을 누적 합으로 계산하기 위한 가중 오토마타로 모델링하는 가중 오토마타 모델링부, 입력되는 텍스트에서 하위 문자열 패턴 매칭이 수행될 문자열을 지정하기 위한 윈도우를 설정하는 윈도우 설정부 및 윈도우에 의해 지정된 문자열에서 기지정된 위치의 문자로부터 연속하는 문자들에 대한 하위 문자열로부터 패턴이 나타날 확률을 가중 오토마타를 이용하여 누적 합으로 계산하고, 누적 합을 기지정된 임계값과 비교하여, 텍스트 내에서 적어도 하나의 패턴을 검출하기 위한 역추적 여부를 판정하는 패턴 확률 판정부를 포함한다.

Description

오토마타 기반 실시간 확률 패턴 매칭 장치 및 방법{REAL-TIME STOCHASTIC PATTERN MATCHING APPARATUS AND METHOD BASED ON AUTOMATA}
본 발명은 실시간 확률 패턴 매칭 장치 및 방법에 관한 것으로, 특히 가중 오토마타 기반 실시간 확률 패턴 매칭 장치 및 방법에 한 것이다.
패턴 매칭은 텍스트 내에 지정된 패턴이 존재하는지 여부를 판별하는 것을 목적으로 한다. 이러한 패턴 매칭은 지정된 패턴의 종류 및 텍스트 내에서 매칭된 부분에 대한 결과를 반환하는 방식에 따라 구분될 수 있다.
일예로 패턴의 종류에 따라 구분되는 경우, 패턴 매칭은 패턴이 유한한 문자열의 집합으로 주어지는 경우 또는 패턴이 정규 표현식으로 주어지는 경우 등으로 구분될 수 있다.
그리고 패턴 매칭의 결과를 반환하는 방식에 따라 구분되는 경우, grep-like 응용 프로그램과 같이 텍스트에서 매칭된 패턴의 마지막 인덱스(위치)만을 반환하는 경우 또는 매칭된 패턴의 시작 인덱스와 마지막 인덱스를 모두 반환하는 경우 등으로 구분될 수 있다.
한편 최근에는 다수의 사용자가 동시 접속하여 텍스트를 입력하는 라이브 채팅 시스템과 같은 스트리밍 시스템에서는 비속어와 같은 다양한 금지어를 차단하기 위해 패턴 매칭이 요구되고 있고, 생물정보학의 DNA(deoxyribonucleic acid)나 RNA(ribo nucleic acid) 정보와 같이 대용량의 데이터에서 특정 패턴을 검출하기 위해서도 패턴 매칭이 요구되고 있다. 또한 악성 코드 탐지 등과 같은 다양한 분야에서 패턴 매칭이 요구되고 있다.
그러나 상기한 기존의 패턴 매칭은 텍스트 전체가 미리 제공된 상태에서 지정된 패턴이 존재하는지 여부를 판별하도록 구성된다. 따라서 텍스트가 계속적으로 입력되어 전체 텍스트를 정확히 판단할 수 없는 스트리밍과 같은 시스템에서는 패턴 매칭을 수행할 수 없다는 한계가 있다. 또한 주어진 텍스트의 크기가 매우 큰 경우에도, 대용량의 버퍼 메모리가 필요할 뿐만 아니라, 패턴 매칭을 위한 소요 시간이 크게 증가하여 실시간 시스템에 적용하기 어렵다는 한계가 있다.
한국 등록 특허 제10-1488615호 (2015.01.26 등록)
본 발명의 목적은 가중된 확률 유한 오토마타를 기반으로 실시간으로 패턴 매칭을 수행할 수 있는 확률 패턴 매칭 장치 및 방법을 제공하는데 있다.
본 발명의 다른 목적은 스트리밍 또는 대용량 입력 데이터에 대해 적은 저장 공간으로 고속으로 패턴 매칭을 수행할 수 있는 확률 패턴 매칭 장치 및 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 예에 따른 확률 패턴 매칭 장치는 검출하고자 하는 적어도 하나의 패턴 각각에 대한 다수의 하위 문자열과 다수의 하위 문자열 각각으로부터 대응하는 패턴이 나타날 확률을 계산하는 확률 유한 오토마타를 생성하고, 상기 확률 유한 오토마타를 상기 다수의 하위 문자열 각각에 대한 확률을 누적 합으로 계산하기 위한 가중 오토마타로 모델링하는 가중 오토마타 모델링부; 입력되는 텍스트에서 하위 문자열 패턴 매칭이 수행될 문자열을 지정하기 위한 윈도우를 설정하는 윈도우 설정부; 및 상기 윈도우에 의해 지정된 문자열에서 기지정된 위치의 문자로부터 연속하는 문자들에 대한 하위 문자열로부터 패턴이 나타날 확률을 상기 가중 오토마타를 이용하여 누적 합으로 계산하고, 상기 누적 합을 기지정된 임계값과 비교하여, 상기 텍스트 내에서 상기 적어도 하나의 패턴을 검출하기 위한 역추적 여부를 판정하는 패턴 확률 판정부; 를 포함한다.
상기 가중 오토마타 모델링부는 상기 적어도 하나의 패턴 각각에 대한 다수의 하위 문자열과 다수의 하위 문자열 각각으로부터 대응하는 패턴이 나타날 확률이 미리 저장되는 패턴 저장부; 상기 패턴 저장부에 저장된 상기 다수의 하위 문자열과 상기 다수의 하위 문자열 각각에 대한 확률에 따라 상기 확률 유한 오토마타를 생성하는 확률 유한 오토마타 생성부; 및 상기 확률 유한 오토마타에 기지정된 초기 상태와 λ 전이 조건 및 가중 셀프 루프를 추가하여 상기 가중 오토마타로 변환하는 가중 오토마타 변환부; 를 포함할 수 있다.
상기 가중 오토마타 변환부는 상기 확률 유한 오토마타에 시작 확률이 1이고 종료 확률이 0인 별도의 초기 상태를 추가하고, 추가된 상기 초기 상태로부터 상기 확률 유한 오토마타에서 시작 확률이 0이 아닌 모든 상태로 전이하기 위한 조건인 λ 전이 조건을 추가하며, 상기 초기 상태에 상기 적어도 하나의 패턴 각각에 대한 다수의 하위 문자열에 대해 1의 가중 확률값을 갖는 전이 조건인 가중 셀프 루프를 추가하여 상기 가중 오토마타로 변환할 수 있다.
상기 가중 오토마타 변환부는 상기 λ 전이 조건의 확률을 상기 확률 유한 오토마타에서 시작 확률이 0이 아닌 모든 상태 각각의 시작 확률로 설정하고, 상기 확률 유한 오토마타에서 시작 확률이 0이 아닌 모든 상태 각각의 시작 확률을 0으로 변경할 수 있다.
상기 패턴 확률 판정부는 상기 누적 합이 상기 임계값 이상이면, 상기 다수의 하위 문자열 각각의 확률을 상기 임계값과 비교하고, 상기 다수의 하위 문자열 각각의 확률 중 적어도 하나가 상기 임계값 이상이면, 상기 임계값 이상인 하위 문자열을 역추적을 위해 출력할 수 있다.
상기 윈도우 설정부는 상기 누적 합이 상기 임계값 미만이거나, 상기 다수의 하위 문자열 각각의 확률이 상기 임계값 미만이면, 상기 텍스트에서 상기 윈도우의 위치를 기지정된 방향으로 이동시킬 수 있다.
상기 실시간 확률 패턴 매칭 장치는 상기 패턴 확률 판정부에서 상기 하위 문자열이 출력되면, 상기 텍스트에서 상기 윈도우의 현재 위치로부터 상기 하위 문자열에 대응하는 패턴을 역추적하는 역추적부; 를 더 포함할 수 있다.
상기 역추적부는 상기 텍스트에서 상기 하위 문자열에 대응하는 패턴이 역추적되면, 상기 텍스트에서 역추적된 패턴의 시작 위치 및 종료 위치를 출력할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 예에 따른 확률 패턴 매칭 방법은 검출하고자 하는 적어도 하나의 패턴 각각에 대한 다수의 하위 문자열과 다수의 하위 문자열 각각으로부터 대응하는 패턴이 나타날 확률을 계산하는 확률 유한 오토마타를 생성하는 단계; 상기 확률 유한 오토마타를 상기 다수의 하위 문자열 각각에 대한 확률을 누적 합으로 계산하기 위한 가중 오토마타로 모델링하는 단계; 입력되는 텍스트에서 하위 문자열 패턴 매칭이 수행될 문자열을 지정하기 위한 윈도우를 설정하는 단계; 상기 윈도우에 의해 지정된 문자열에서 기지정된 위치의 문자로부터 연속하는 문자들에 대한 하위 문자열로부터 패턴이 나타날 확률을 상기 가중 오토마타를 이용하여 누적 합으로 계산하는 단계; 및 상기 누적 합을 기지정된 임계값과 비교하여, 상기 텍스트 내에서 상기 적어도 하나의 패턴을 검출하기 위한 역추적 여부를 판정하는 단계; 를 포함한다.
따라서, 본 발명의 실시간 확률 패턴 매칭 장치 및 방법은 실시간 채팅 프로그램과 같이 다수의 사용자에 의해 텍스트가 스트리밍되어 전송되는 시스템에서 실시간 패턴 매칭을 수행할 수 있도록 한다. 또한 생물정보학의 RNA 정보와 같이 대용량의 데이터에 대해 지정된 패턴을 탐지해야 하는 시스템에서 적은 저장 공간으로 고속으로 빠르게 패턴 매칭을 수행할 수 있도록 한다.
도1 은 본 발명의 일 실시예에 따른 실시간 확률 패턴 매칭 장치의 개략적 구조를 나타낸다.
도2 는 도1 의 가중 오토마타 모델링부의 구조의 일예를 나타낸다.
도3 은 확률 유한 오토마타의 일예를 그래프로 나타낸 것이다.
도4 는 본 실시예에 따른 가중 오토마타의 일예를 그래프로 나타낸 것이다.
도5 는 본 실시예에 따른 실시간 확률 패턴 매칭 장치의 패턴 매칭 방법을 설명하기 위한 도면이다.
도6 은 본 발명의 일 실시예에 따른 실시간 확률 패턴 매칭 방법을 설명하기 위한 도면이다.
도7 은 도6 의 가중 오토마타 변환 단계를 상세하게 나타낸 도면이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도1 은 본 발명의 일 실시예에 따른 실시간 확률 패턴 매칭 장치의 개략적 구조를 나타낸다.
도1 을 참조하면, 본 실시예에 따른 실시간 확률 패턴 매칭 장치는 텍스트 입력부(100), 윈도우 설정부(200), 가중 오토마타 모델링부(400) 및 역추적부(500)를 포함한다.
텍스트 입력부(100)는 패턴이 포함되어 있는지 포함되어야 하는 텍스트(T)가 입력된다. 여기서 텍스트 입력부(100)는 전체 텍스트가 저장된 저장 매체로 구현될 수도 있으나, 라이브 채팅 시스템과 같은 스트리밍 시스템에서 온라인을 통해 전송되는 텍스트를 인가받는 통신 모듈로 구현될 수도 있다. 또한 텍스트 입력부(100)는 통신 모듈을 통해 인가된 텍스트(T)를 임시 저장하는 입력 버퍼 메모리로 구현될 수도 있다.
윈도우 설정부(200)는 텍스트 입력부(100)로부터 전달되는 텍스트(T)에 대해 패턴을 탐색할 기설정된 크기의 윈도우를 설정하여, 탐색 대상 문자열(ω)을 한정한다. 상기한 바와 같이, 텍스트가 스트리밍 형태로 인가되는 경우, 전체 텍스트(T)의 범위를 판단할 수 없다. 또한 텍스트의 크기가 매우 큰 경우에, 전체 텍스트(T)에 대해 한번에 패턴 매칭을 수행하는 것은 매우 어려울 뿐만 아니라, 패턴 매칭 시간이 길어지는 문제가 있다.
이에 윈도우 설정부(200)는 전체 텍스트(T) 중 패턴을 탐색할 일부 영역을 설정하여, 탐색 대상이 되는 문자열(ω)을 한정하기 위해 제공된다. 윈도우 설정부(200)는 텍스트 입력부(100)로부터 인가되는 텍스트(T) 중 지정된 크기의 문자열(ω)을 임시 저장하는 버퍼 메모리로 구현될 수 있다.
윈도우 설정부(200)에 의해 설정되는 윈도우의 크기는 모든 패턴에 대한 탐색이 가능해야 하는 반면, 버퍼 메모리 용량을 최적화하고, 불필요한 패턴 탐색을 줄이기 위해 최적의 크기로 설정될 필요가 있다. 윈도우의 크기는 이후 설명하는 확률 유한 오토마타(Probabilistic finite automata : PFA)(P)에 기반하여 수학식 1과 같이 설정될 수 있다.
Figure pat00001
여기서, l은 윈도우 길이를 나타내고, Q는 PFA(P)의 상태 집합으로 상태의 개수를 나타내고, μ와 σ는 각각 PFA(P)로 나타낼 수 있는 문자열 길이의 평균과 분산을 나타내며, p는 임계값을 나타낸다. 그리고 c는
Figure pat00002
로 계산되며, P(∑i*)는 패턴 집합(∑)에서 하나의 문자(∑i)와 하나의 문자에서 열거 가능한 모든 문자열의 집합(∑*)에 대한 유한 확률 오토마타를 나타낸다. 즉, 패턴 집합(∑)의 특정 문자(∑i)에 대한 유한 확률 오토마타에 따른 확률값이 임계값(p) 이상인 하위 문자열의 최대값을 나타낸다.
유한 확률 오토마타에 대한 상세한 설명은 후술하도록 한다.
그리고 윈도우 설정부(200)는 텍스트 입력부(100)로부터 스트리밍되는 문자열이 순차적으로 인가되는 경우, 선입선출법(FIFO)에 따라 문자열을 인가받고 가장 이전 인가된 문자열을 제외시키도록 구성될 수 있다. 또한 윈도우 설정부(200)는 텍스트 입력부(100)에 전체 텍스트가 저장된 경우, 전체 텍스트의 최초 문자열의 위치인 초기 인덱스로부터 최종 문자열의 위치인 최종 인덱스까지 순차적으로 슬라이딩하면서, 탐색 대상이 되는 문자열(ω)을 지정할 수도 있다.
한편 가중 오토마타 모델링부(300)는 미리 지정된 적어도 하나의 패턴과 적어도 하나의 패턴 각각의 하위 문자열로부터 패턴이 나타날 확률이 지정된 패턴 집합이 저장되고, 저장된 적어도 하나의 패턴 및 확률에 대응하는 가중 오토마타 모델을 생성한다.
여기서 가중 오토마타 모델(Weighted automata)은 확률 유한 오토마타에서 각 상태 및 상태 전이에 따른 확률의 누적 합을 계산할 수 있도록 수정한 오토마타 모델을 의미한다. 가중 오토마타 모델에 대한 상세한 설명은 후술하도록 한다.
그리고 패턴 확률 판정부(400)는 가중 오토마타 모델링부(300)에서 모델링된 가중 오토마타 모델에 따라 문자열(ω)에 포함된 하위 문자열로부터 적어도 하나의 패턴이 나타날 확률을 누적 합으로 계산한다. 패턴 확률 판정부(400)는 문자열(ω)의 지정된 초기 위치로부터 순차적으로 지정된 패턴에 대응하는 하위 문자열이 나타날 확률을 계산하여 누적 합한다. 일예로 패턴 확률 판정부(400)는 윈도우 설정부(200)에 의해 지정되는 문자열(ω)의 맨 마지막 문자 또는 맨 앞 문자부터 나타나는 패턴의 하위 문자열의 확률을 누적 합할 수 있다. 즉 윈도우에 의해 지정된 문자열(ω)에서 지정된 패턴에 대응하는 접미어(suffix) 또는 접두어(prefix)가 나타나는지 확인하고, 확인된 접미어(suffix) 또는 접두어(prefix)가 패턴 내의 문자열의 일부일 확률의 누적 합을 계산한다. 그리고 누적 합이 기지정된 임계값(p) 이상인지 판별한다.
여기서 윈도우의 맨 앞 문자부터 문자열을 판별하는 경우, 판별되는 문자열을 접두어라 하고, 윈도우의 맨 뒤 문자부터 문자열을 판별하는 경우, 판별되는 문자열을 접미어라 한다. 이하에서는 윈도우의 맨 뒤문자부터 판별하는 접미어 판별을 하는 것으로 가정하여 설명하지만, 접두어 판별을 수행할 수도 있다.
패턴 확률 판정부(400)는 누적 합이 임계값(p) 이상이면, 문자열(ω)에 지정된 패턴 집합의 패턴이 나타날 확률이 높으며, 임계값(p) 미만이면, 문자열(ω)에 지정된 패턴이 나타날 확률이 낮은 것으로 판단한다.
그리고 누적 합이 임계값(p) 이상으로, 문자열(ω)에 지정된 패턴이 존재할 확률이 높으면, 역추적부(500)가 문자열(ω)에 포함된 패턴을 다시 역추적하여 판별한다. 역추적부(500)는 패턴 확률 판정부(400)에서 임계값(p) 이상으로 판별된 하위 문자열을 판별하고, 하위 문자열에 대응하는 패턴을 문자열(ω)에 에서 탐색한다. 패턴이 탐색되면 탐색된 패턴의 시작 인덱스(i) 및 마지막 인덱스(j)를 반환할 수 있다. 여기서 시작 인덱스(i)와 마지막 인덱스(j)는 텍스트(T)의 문자들을 배치 순서에 따라 인덱싱 하였을 때, 판별된 패턴의 시작 위치 및 마지막 위치를 나타낸다.
즉 본 실시예에 따른 실시간 확률 패턴 매칭 장치는 확률 유한 오토마타를 수정한 가중 오토마타를 기반으로 지정된 패턴이 나타날 가능성을 윈도우에 의해 지정된 문자열(ω) 중 일부 문자열로부터 확률에 기반하여 판단하고, 판단 결과에 따라 역추적을 수행하여 매칭되는 패턴을 검출한다. 따라서 적어도 하나의 패턴 각각의 전체 문자열을 직접 비교하는 기존의 패턴 매칭에 비하여, 패턴이 검출될 확률이 기지정된 임계값 이상인 경우에만 역추적을 수행하여 패턴을 검출하여, 패턴 매칭 속도를 향상 시킬 수 있다.
확률 유한 오토마타를 이용하여 패턴 매칭을 수행하고자 하는 시도는 기존에도 제안된 바 있다. 확률 유한 오토마타를 이용한 패턴 매칭에서는 텍스트를 문자열의 집합이 아닌 문자열의 분포로 정의하고, 패턴 집합은 개별 패턴의 확률적 분포로 정의되는 확률 유한 오토마톤(Probabilistic finite automaton)으로 표현한다. 개별 패턴이 확률 유한 오토마톤으로 표현되는 경우, 패턴 집합 내의 패턴들은 각각 가중치가 미리 할당되고, 패턴 집합은 확률 분포를 형성한다.
그리고 확률 유한 오토마톤 패턴 매칭은 기지정된 임계값(p)다 큰 확률을 가지는 입력 텍스트의 모든 일치하는 하위 문자열을 검색하고, 검색된 문자열의 인덱스(시작, 끝)를 반환한다.
확률 유한 오토마톤 패턴 매칭에서도 기지정된 임계값보다 큰 확률을 가지는 하위 문자열을 검색함에 따라, 임계값(p) 보다 낮은 확률을 갖는 하위 문자열을 검색하지 않도록 함으로써, 패턴 매칭의 속도를 향상 시킬 수 있다.
그러나 확률 유한 오토마톤 패턴 매칭은 확률의 누적 합을 이용하지 않으므로, 일부 접두어 또는 일부 접미어가 나타날 확률이 임계값(p)보다 낮더라도, 이것이 모든 접두어 또는 접미어가 임계값(p) 미만으로 나타난다는 것을 제시하지 못한다. 예를 들어 확률 유한 오토마톤 패턴 매칭이 문자열(ω)에서 마지막 문자부터 패턴 "AABCD"를 탐색하는 접미어 탐색을 수행하는 경우, 접미어 "CD"로부터 패턴 "AABCD"가 문자열(ω) 내에 존재할 확률이 0.00001로 임계값(p) 0.0001 미만일 수 있다. 그러나 접미어 "CD" 로부터 패턴 "AABCD"가 문자열(ω) 내에 존재할 확률이 임계값(p) 미만인 것이, 접미어 "BCD" 또는 접미어 "ABCD"로부터 패턴 "AABCD"가 문자열(ω) 내에 존재할 확률이 확률이 임계값(p) 미만이라는 것을 검증하지는 못한다. 즉 접미어 "BCD" 또는 접미어 "ABCD" 로부터 패턴 "AABCD"가 문자열(ω) 내에 존재할 확률은 임계값(p) 이상일 수 있다.
이에 확률 유한 오토마톤 패턴 매칭은 접미어 "CD", "BCD" 및 "ABCD"에 각각에 대해 모두 패턴 매칭을 수행하여, 패턴 "AABCD"가 문자열(ω) 내에 존재할 가능성을 판단한다. 따라서 패턴 매칭 시간이 증가하게 되어 실시간 패턴 매칭에 부적합하다.
그에 비해, 본 실시예에서 제안하는 가중 오토마타 패턴 매칭은 확률의 누적 합을 이용하므로, 접미어 "CD"로부터 패턴 "AABCD"가 문자열(ω) 내에 존재할 확률 0.00001과 접미어 "BCD"로부터 패턴 "AABCD"가 존재할 확률 0.00007 및 접미어 "ABCD"로부터 패턴 "AABCD"가 존재할 확률 0.00012을 모두 더한 누적합 0.0002(= 0.00001 + 0.0007 + 0.0012)을 임계값(p)과 비교한다. 그리고 누적합이 임계값(p) 이상이면 역추적을 수행하도록 하고, 임계값(p) 미만이면 역추적을 수행하지 않도록 한다. 즉 일부 접미어의 확률이 임계값(p) 미만이어도 누적 합된 확률이 임계값(p) 이상이면 역추적을 수행할 수 있도록 하고, 누적 합으로도 임계값(p) 미만이면 역추적을 수행하지 않도록 한다. 따라서 누적 합이 임계값(p) 미만인 경우에, 개별 접미어에 대해 패턴 매칭을 별도록 수행하지 않도록 할 수 있다. 또한 패턴의 문자열 전체에 대한 매칭을 수행하지 않고, 일부 하위 문자열로부터 패턴이 존재할 확률을 판별하여 패턴 매칭을 수행하므로, 매우 고속으로 패턴 매칭을 수행할 수 있다.
도2 는 도1 의 가중 오토마타 모델링부의 구조의 일예를 나타내고, 도3 은 확률 유한 오토마타의 일예를 그래프로 나타낸 것이며, 도4 는 본 실시예에 따른 가중 오토마타의 일예를 그래프로 나타낸 것이다.
도2 를 참조하면, 가중 오토마타 모델링부(300)는 패턴 저장부(310), 확률 유한 오토마타 생성부(320) 및 가중 오토마타 변환부(330)를 포함한다.
패턴 저장부(310)는 텍스트에서 탐색할 적어도 하나의 패턴을 저장한다. 여기서 패턴 저장부(310)에는 상기한 바와 같이, 미리 지정된 적어도 하나의 패턴과 각 패턴의 하위 문자열로부터 패턴이 존재할 확률이 지정된 패턴 집합이 저장된다. 이때 적어도 하나의 패턴 각각 다수의 하위 문자열의 집합 형태로 저장될 수 있으며, 각 하위 문자열로부터 패턴이 존재할 확률이 함께 저장될 수 있다.
예를 들어, 패턴 저장부(310)에는 탐색하고자 하는 패턴의 전체 문자열 "ABCD"와 전체 문자열 뿐만 아니라, 패턴의 하위 문자열 "D", "CD", "BCD"(여기서는 접미어 매칭을 기준으로 설명함)과 하위 문자열 각각이 나타난 경우에 문자열(ω) 내에 패턴의 전체 문자열 "ABCD"가 존재할 확률이 함께 저장될 수 있다.
경우에 따라서 패턴의 전체 문자열이 존재할 확률은 패턴 저장장치에 저장되지 않을 수 있다. 그리고 전체 문자열 "ABCD"은 패턴 저장부(310)에 저장되지 않고, 역추적부(500)에 저장되도록 구성될 수도 있다.
이는 가중 오토마타 모델링부(300)에서 모델링된 가중 오토마타를 이용하는 패턴 확률 판정부(400)가 전체 문자열에 대한 패턴 매칭을 수행하기 위한 구성이 아니라, 하위 문자열로부터 계산되는 확률에 기초하여 전체 문자열 매칭을 생략할 수 있도록 하기 위한 구성이기 때문이다.
적어도 하나의 패턴은 탐색하고자 하는 패턴으로, 패턴 매칭 장치가 적용되는 분야 및 용도에 따라 다양하게 지정될 수 있다. 그리고 각 패턴의 확률 또한 패턴 매칭 장치가 적용되는 분야 및 용도에서 이전 획득된 정보로서, 일예로 통계적 방식에 따라 미리 획득되어 저장될 수 있다.
확률 유한 오토마타 생성부(320)는 패턴 저장부(310)에 저장된 적어도 하나의 패턴 및 하위 문자열의 확률에 기초하여 확률 유한 오토마타를 생성한다. 여기서 확률 유한 오토마타는 도3 에서 원으로 표시되는 다수의 상태(state)(q1 ~ q5) 및 각 상태를 연결하는 선으로 표시되는 전이 조건(transition)(t)을 포함하여 생성될 수 있다. 확률 유한 오토마타를 생성하는 방법은 공지된 기술이므로 여기서는 상세하게 설명하지 않는다.
확률 유한 오토마타에서 각각의 상태(q)는 시작 확률과 종료 확률(Ip, Fp)을 포함하고, 전이 조건(t)은 하위 문자열(도3 에서는 a 및 b) 및 문자열 확률을 포함할 수 있다.
도3 을 참조하여 확률 유한 오토마타를 설명하면, 제1 상태(q1)에서 지정된 패턴의 문자열이 시작될 확률을 0.8이고 종료될 확률은 0.3이다. 그리고 제2 상태(q2)에서 문자열이 시작될 확률은 0.1이고 종료될 확률은 0.2이며, 제5 상태(q5)에서 시작될 확률은 0.1 이고 종료될 확률은 0.6이다. 한편, 제3 및 제4 상태(q3 및 q4)에서 문자열이 시작될 확률은 0인 반면, 종료될 확률은 각각 0.5, 0.3이다.
제1 상태(q1)에서 상태가 시작되는 경우, 제1 상태(q1)에서 상태가 시작될 확률은 0.8이고, 하위 문자열 "a" 또는 "b"가 나타나는 경우, 제2 상태(q2)로 전이되며, "a"가 나타날 확률은 각각 0.5 및 0.2이다. 제2 상태(q2)에서 종료될 확률은 0.2이다.
따라서, 제1 상태(q1)에서 시작되어, 문자열 "a"가 나타날 확률은 제1 상태의 시작 확률(0.8) * 제2 상태로 전이될 확률(0.5) * 제2 상태에서 종료될 확률(0.2)로서 0.008로 계산될 수 있다.
한편, 제1 상태(q1)에서 시작되어 "b"가 나타나 제2 상태(q2)로 전이될 확률은 0.2이다. 그리고 제2 상태(q2)에서 "a"가 나타나 제5 상태로 전이될 확률은 각각 0.2 및 0.2이다. 한편, 제5 상태(q5)에서 종료될 확률은 0.6이다.
따라서, 제1 상태(q1)에서 시작되어, 접미어 문자열 "ab"가 나타날 확률은 제1 상태의 시작 확률(0.8) * 제2 상태로 전이될 확률(0.2) * 제5 상태로 전이될 확률(0.2) * 제5 상태에서 종료될 확률(0.6)로서 0.0192로 계산될 수 있다.
도3 에서 도시된 바와 같이, 확률 유한 오토마타는 초기 상태가 지정되지 않고 다양한 초기 상태(도3 에서는 q1, q2, q5)가 지정될 수 있다. 이러한 다양한 초기 상태로 인해, 일부 문자열"ab"의 접미어가 다른 문자열 "aab", "bab" 등으로부터 패턴이 나타날 확률을 모두 반영하지 못한다.
이에 가중 오토마타 변환부(330)는 확률 유한 오토마타 생성부(320)에서 생성된 확률 유한 오토마타에 초기 상태를 추가로 지정하여 가중 오토마타로 변환한다.
도4 는 도3 의 확률 유한 오토마타를 변환한 가중 오토마타를 나타낸다. 도3 의 확률 유한 오토마타와 비교하면, 도4 의 가중 오토마타는 초기 상태(q0)와 초기 상태로부터 각 상태로의 전이 조건이 추가되었음을 알 수 있다. 초기 상태(q0)는 유일한 시작 상태로서, 시작 확률이 1.0으로 지정된다. 그리고 초기 상태(q0)는 종료 확률이 0.0으로 지정된다. 즉 초기 상태(q0)에서는 종료될 수 없다. 또한 초기 상태(q0)에는 패턴 집합(∑)에 대해 가중치 1의 셀프 전이 조건이 추가된다. 여기서 셀프 전이 조건은 패턴 집합(∑)에 존재하는 모든 문자들에 대해 가중치를 제공하기 위해 설정되며, 이전 계산된 하위 문자열에 대한 확률에 새로운 하위 문자열을 추가하여 발생되는 하위 문자열의 확률을 가산하기 위해 설정된다.
한편, 초기 상태(q0)가 유일한 시작 상태이므로, 도3 의 확률 유한 오토마타에서 초기 확률이 존재하던 상태들(q1, q2, q5)의 시작 확률은 모두 0.0으로 변환된다. 대신 초기 상태(q0)로부터 기존 초기 확률이 존재하던 각 상태들로 λ 전이 조건이 생성된다. λ 전이 조건은 초기 상태로부터 각 상태로의 전이 확률을 나타내는 공백 문자열 전이를 나타낸다. λ 전이 조건은 기존 초기 확률이 존재하던 각 상태들(q1, q2, q5)의 시작 확률에 따라 생성된다. 즉 초기 상태(q0)로부터 제1 상태(q1)으로의 전이 확률은 0.8이고, 제2 상태(q2) 및 제5 상태(q5)으로의 전이 확률은 각각 0.1이다.
이외 나머지 상태(q3, q4) 및 전이 조건은 기존 확률 유한 오토마타와 동일하게 유지된다.
여기서 가중 오토마타에서 추가된 초기 상태(q0)는 텍스트에서 현재 지정된 윈도우의 탐색을 시작할 위치를 지정하며, 패턴의 접미어에 대응하는 문자열이 탐색되지 않는 경우에 이전 확률을 초기화하기 위한 상태로 볼 수 있다.
도5 는 본 실시예에 따른 실시간 확률 패턴 매칭 장치의 패턴 매칭 방법을 설명하기 위한 도면이다.
도5 는 생물정보학의 RNA(ribo nucleic acid) 정보의 일부를 나타낸다. RNA 정보는 염기 정보인 A, G, C, U, T로 구성될 수 있다. 비록 적은 종류의 염기 정보로 구성되지만 RNA 정보 자체는 매우 대용량의 염기 정보의 나열로 구성된다. 따라서 특정 염기 패턴을 도출하는 것은 용이하지 않으며 패턴 매칭을 이용할 수 있다.
그리고 패턴의 하위 문자열들과 하위 문자열 각각에 대한 확률값은 표1 과 같이 미리 지정되는 것으로 가정한다.
Figure pat00003
도5 에서는 윈도우가 염기 정보 텍스트를 화살표 방향으로 슬라이딩하면서, 문자열(ω1, ω3, ω4)를 지정하며, 지정된 문자열(ω1, ω3, ω4)에서 특정 패턴을 탐색하는 경우를 나타내었다.
가중 오토마타에 기반하는 본 실시예의 패턴 매칭 장치는 (a)에서 접미어 "C"가 나타날 확률(P(C))과 접미어 "GC"가 나타날 확률(P(GC)), 접미어 "UGC"가 나타날 확률(P(UGC)), 접미어 "AUGC"가 나타날 확률(P(AUGC)) 등을 누적 합하고, 누적 합이 기설정된 임계값(p)보다 큰지 판별한다.
그리고 누적 합이 임계값(p) 이상이면, 해당 문자열(ω1) 내에서 임계값(p) 이상의 확률을 갖는 패턴을 역추적한다. 임계값(p)가 0.001인경우, 표1 에서 접미어 "AUGC"가 나타날 확률(P(AUGC))이 0.0012로 임계값(p) 이상이므로, 접미어 "AUGC" 또는 접미어 "AUGC"의 인덱스를 출력한다. 이에 패턴 매칭 장치는 접미어 "AUGC"에 대응하는 기저장된 패턴을 확인하고, 확인된 패턴을 현재 윈도우 위치(인덱스)로부터 역추적하여 검출할 수 있도록 한다.
그리고 윈도우 설정부(200)는 윈도우를 문자 단위로 화살표 방향으로 슬라이딩한다.
한편, (b)에서는 접미어 "C"가 나타날 확률(P(C))과 접미어 "TC"가 나타날 확률(P(TC)), 접미어 "CTC"가 나타날 확률(P(CTC)), 접미어 "GCTC"가 나타날 확률(P(GCTC)) 등을 누적 합하고, 누적 합이 기설정된 임계값(p)보다 큰지 판별한다.
누적 합이 임계값(p) 이상이면, 해당 문자열(ω3) 내에서 임계값(p) 이상의 확률을 갖는 패턴을 분석한다. 그러나 누적 합이 임계값(p) 이상이더라도, 임계값(p) 이상인 갖는 패턴이 존재하지 않을 수 있다. 이에 패턴 매칭 장치는 표1 로부터 임계값 이상인 접미어가 존재하지 않는 것을 판별할 수도 있다. 이경우, 패턴 전체 문자열에 대한 역추적을 수행할 필요가 없다. 따라서 윈도우 설정부(200)는 윈도우를 문자 단위로 화살표 방향으로 슬라이딩한다.
(c)에서는 접미어 "U"가 나타날 확률(P(U))과 접미어 "CU"가 나타날 확률(P(CU)), 접미어 "TCU"가 나타날 확률(P(TCU)), 접미어 "CTCU"가 나타날 확률(P(CTCU)) 등을 누적 합하고, 누적 합이 기설정된 임계값(p)보다 큰지 판별한다.
만일 누적 합이 임계값(p) 미만이면, 해당 문자열(ω4) 내에서 임계값(p) 이상의 확률을 갖는 패턴의 접미어이 존재하지 않는 것으로 판별할 수 있다. 이 경우에도 패턴 매칭 장치는 역추적을 수행하지 않고, 윈도우 설정부(200)는 윈도우를 문자 단위로 화살표 방향으로 슬라이딩한다.
도6 은 본 발명의 일 실시예에 따른 실시간 확률 패턴 매칭 방법을 설명하기 위한 도면이고, 도7 은 도6 의 가중 오토마타 변환 단계를 상세하게 나타낸 도면이다.
도1 내지 도5 를 참조하여, 도6 의 실시간 확률 패턴 매칭 방법을 설명하면, 우선 미리 지정된 적어도 하나의 패턴의 하위 문자열과 각 하위 문자열로부터 대응하는 패턴이 문자열(ω) 내에 존재할 확률로부터 기설정된 방식으로 확률 유한 오토마타를 생성한다(S10).
여기서 유한 확률 오토마타는 각 패턴의 하위 문자열 집합과 하위 문자열 집합의 확률에 따라 다수의 상태 및 전이 조건을 갖도록 생성될 수 있으며, 다수의 상태 각각은 시작 확률 및 종료 확률이 지정될 수 있다.
확률 유한 오토마타가 생성되면, 생성된 확률 유한 오토마타를 가중 오토마타로 변환한다(S20).
도7 을 참조하면, 확률 유한 오토마타를 가중 오토마타로 변환하는 단계(S20)는 우선 생성된 확률 유한 오토마타에 시작 확률이 1이고 종료 확률이 0인 별도의 초기 상태(q0)를 추가한다(S21). 그리고 초기 상태(q0)로부터 확률 유한 오토마타에서 시작 확률이 0이 아닌 모든 상태로 λ 전이 조건을 추가한다(S22). 이에 초기 상태(q0)를 제외한 나머지 상태의 시작 확률을 모두 0으로 변경한다(S23). 여기서 λ 전이 조건의 확률은 확률 유한 오토마타에서 시작 확률이 0이 아닌 각 상태의 시작 확률로 설정된다.
한편, 초기 상태(q0)에 이전 하위 문자열에 대해 계산된 확률을 가중하기 위한 가중 셀프 루프를 추가한다(S24). 여기서 가중 셀프 루프 또한 전이 조건으로서, 하위 문자열 집합(∑)에 대해 1의 가중 확률값을 갖는 전이 조건이다.
확률 유한 오토마타가 가중 오토마타 변환되면, 텍스트(T)에서 패턴 매칭을 수행할 문자열(ω)을 지정하는 윈도우를 설정한다(S30). 여기서 윈도우의 길이는 확률 유한 오토마타에 기반하여 수학식 1에 따라 지정될 수 있다.
윈도우가 설정되면, 패턴 매칭이 수행되어야 할 텍스트가 입력된다(S40). 여기서 텍스트는 전체 텍스트가 미리 저장되어 있을 수도 있으나, 스트리밍 형태로 연속적으로 입력되는 텍스트일 수도 있다.
그리고 입력되는 텍스트에서 설정된 윈도우에 의해 지정되는 문자열(ω)에 대해 가중 오토마타 기반으로 하위 문자열에 대한 확률 누적 합을 계산한다(S50).
누적 합이 계산되면, 계산된 누적 합이 기지정된 임계값(p) 이상인지 판별한다(S60). 만일 누적 합이 임계값(p) 이상이면, 하위 문자열 각각의 확률이 임계값(p) 이상인지 판별한다(S70).
하위 문자열 각각의 확률 중 적어도 하나의 하위 문자열의 확률이 임계값 이상이면, 텍스트(T)에서 현재 윈도우의 위치로부터 임계값 이상인 하위 문자열에 대응하는 패턴을 역추적한다(S80). 그리고 역추적을 통해 패턴이 검출되면, 검출된 패턴의 인덱스를 출력할 수 있다.
그리고 윈도우를 텍스트에서 다음 문자로 이동시킨다(S90). 한편, 누적 합이 임계값(p) 미만이거나, 누적 합이 임계값(p) 이상이어도 각 하위 문자열의 확률이 임계값 미만이면, 역추적을 수행하지 않고, 윈도우를 텍스트에서 다음 문자로 이동시킨다(S90).
결과적으로 본 실시예에 따른 패턴 매칭 방법은 적어도 하나의 패턴 각각의 전체 문자열을 텍스트의 문자열들과 비교하여 검출하지 않고, 적어도 하나의 패턴 각각 하위 문자열 집합에 대한 확률의 누적 합으로부터 텍스트에 적어도 하나의 패턴이 존재할지 여부를 사전에 판별하고, 패턴이 존재할 확률이 높은 경우에 패턴의 전체 문자열을 이용하여 패턴 매칭시켜 검출한다. 따라서 고속으로 패턴 매칭을 수행할 수 있다. 또한 윈도우를 설정하여 지정된 문자열(ω)에 대해 패턴 매칭을 수행하므로 대용량의 텍스트나 스트리밍 텍스트에 대해서도 용이하게 패턴 매칭을 수행할 수 있다.
본 실시예에 따른 실시간 패턴 매칭 장치는 CPU를 포함하며, 프로그램을 구동할 수 있는 장치이거나, 또는 실시간 패턴 매칭을 위한 별도의 단말 장치일 수 있으며, 예를 들어, 컴퓨터, 노트북, 태블릿 PC 등일 수 있다. 본 발명에 따른 실시간 패턴 매칭 방법은 프로그램 형태로 구현될 수 있으며, 본 발명에 따른 실시간 패턴 매칭 장치에서 동작할 수 있다.
본 발명에 따른 방법은 컴퓨터에서 실행 시키기 위한 매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다. 여기서 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 또한 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함하며, ROM(판독 전용 메모리), RAM(랜덤 액세스 메모리), CD(컴팩트 디스크)-ROM, DVD(디지털 비디오 디스크)-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함할 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 텍스트 입력부 200: 윈도우 설정부
200: 가중 오토마타 모델링부 400: 패턴 확률 판정부
500: 역추적부

Claims (14)

  1. 검출하고자 하는 적어도 하나의 패턴 각각에 대한 다수의 하위 문자열과 다수의 하위 문자열 각각으로부터 대응하는 패턴이 나타날 확률을 계산하는 확률 유한 오토마타를 생성하고, 상기 확률 유한 오토마타를 상기 다수의 하위 문자열 각각에 대한 확률을 누적 합으로 계산하기 위한 가중 오토마타로 모델링하는 가중 오토마타 모델링부;
    입력되는 텍스트에서 하위 문자열 패턴 매칭이 수행될 문자열을 지정하기 위한 윈도우를 설정하는 윈도우 설정부; 및
    상기 윈도우에 의해 지정된 문자열에서 기지정된 위치의 문자로부터 연속하는 문자들에 대한 하위 문자열로부터 패턴이 나타날 확률을 상기 가중 오토마타를 이용하여 누적 합으로 계산하고, 상기 누적 합을 기지정된 임계값과 비교하여, 상기 텍스트 내에서 상기 적어도 하나의 패턴을 검출하기 위한 역추적 여부를 판정하는 패턴 확률 판정부; 를 포함하는 실시간 확률 패턴 매칭 장치.
  2. 제1 항에 있어서, 상기 가중 오토마타 모델링부는
    상기 적어도 하나의 패턴 각각에 대한 다수의 하위 문자열과 다수의 하위 문자열 각각으로부터 대응하는 패턴이 나타날 확률이 미리 저장되는 패턴 저장부;
    상기 패턴 저장부에 저장된 상기 다수의 하위 문자열과 상기 다수의 하위 문자열 각각에 대한 확률에 따라 상기 확률 유한 오토마타를 생성하는 확률 유한 오토마타 생성부; 및
    상기 확률 유한 오토마타에 기지정된 초기 상태와 λ 전이 조건 및 가중 셀프 루프를 추가하여 상기 가중 오토마타로 변환하는 가중 오토마타 변환부; 를 포함하는 실시간 확률 패턴 매칭 장치.
  3. 제2 항에 있어서, 상기 가중 오토마타 변환부는
    상기 확률 유한 오토마타에 시작 확률이 1이고 종료 확률이 0인 별도의 초기 상태를 추가하고, 추가된 상기 초기 상태로부터 상기 확률 유한 오토마타에서 시작 확률이 0이 아닌 모든 상태로 전이하기 위한 조건인 λ 전이 조건을 추가하며, 상기 초기 상태에 상기 적어도 하나의 패턴 각각에 대한 다수의 하위 문자열에 대해 1의 가중 확률값을 갖는 전이 조건인 가중 셀프 루프를 추가하여 상기 가중 오토마타로 변환하는 실시간 확률 패턴 매칭 장치.
  4. 제3 항에 있어서, 상기 가중 오토마타 변환부는
    상기 λ 전이 조건의 확률을 상기 확률 유한 오토마타에서 시작 확률이 0이 아닌 모든 상태 각각의 시작 확률로 설정하고, 상기 확률 유한 오토마타에서 시작 확률이 0이 아닌 모든 상태 각각의 시작 확률을 0으로 변경하는 실시간 확률 패턴 매칭 장치.
  5. 제1 항에 있어서, 상기 패턴 확률 판정부는
    상기 누적 합이 상기 임계값 이상이면, 상기 다수의 하위 문자열 각각의 확률을 상기 임계값과 비교하고, 상기 다수의 하위 문자열 각각의 확률 중 적어도 하나가 상기 임계값 이상이면, 상기 임계값 이상인 하위 문자열을 역추적을 위해 출력하는 실시간 확률 패턴 매칭 장치.
  6. 제5 항에 있어서, 상기 윈도우 설정부는
    상기 누적 합이 상기 임계값 미만이거나, 상기 다수의 하위 문자열 각각의 확률이 상기 임계값 미만이면, 상기 텍스트에서 상기 윈도우의 위치를 기지정된 방향으로 이동시키는 실시간 확률 패턴 매칭 장치.
  7. 제5 항에 있어서, 상기 실시간 확률 패턴 매칭 장치는
    상기 패턴 확률 판정부에서 상기 하위 문자열이 출력되면, 상기 텍스트에서 상기 윈도우의 현재 위치로부터 상기 하위 문자열에 대응하는 패턴을 역추적하는 역추적부; 를 더 포함하는 실시간 확률 패턴 매칭 장치.
  8. 제7 항에 있어서, 상기 역추적부는
    상기 텍스트에서 상기 하위 문자열에 대응하는 패턴이 역추적되면, 상기 텍스트에서 역추적된 패턴의 시작 위치 및 종료 위치를 출력하는 실시간 확률 패턴 매칭 장치.
  9. 검출하고자 하는 적어도 하나의 패턴 각각에 대한 다수의 하위 문자열과 다수의 하위 문자열 각각으로부터 대응하는 패턴이 나타날 확률을 계산하는 확률 유한 오토마타를 생성하는 단계;
    상기 확률 유한 오토마타를 상기 다수의 하위 문자열 각각에 대한 확률을 누적 합으로 계산하기 위한 가중 오토마타로 모델링하는 단계;
    입력되는 텍스트에서 하위 문자열 패턴 매칭이 수행될 문자열을 지정하기 위한 윈도우를 설정하는 단계;
    상기 윈도우에 의해 지정된 문자열에서 기지정된 위치의 문자로부터 연속하는 문자들에 대한 하위 문자열로부터 패턴이 나타날 확률을 상기 가중 오토마타를 이용하여 누적 합으로 계산하는 단계; 및
    상기 누적 합을 기지정된 임계값과 비교하여, 상기 텍스트 내에서 상기 적어도 하나의 패턴을 검출하기 위한 역추적 여부를 판정하는 단계; 를 포함하는 실시간 확률 패턴 매칭 방법.
  10. 제9 항에 있어서, 상기 확률 유한 오토마타를 생성하는 단계는
    미리 저장된 상기 적어도 하나의 패턴 각각에 대한 다수의 하위 문자열과 다수의 하위 문자열 각각으로부터 대응하는 패턴이 나타날 확률에 따라 상기 확률 유한 오토마타를 생성하는 실시간 확률 패턴 매칭 방법.
  11. 제10 항에 있어서, 상기 가중 오토마타로 모델링하는 단계는
    상기 확률 유한 오토마타에 시작 확률이 1이고 종료 확률이 0인 별도의 초기 상태를 추가하는 단계;
    상기 초기 상태에 상기 적어도 하나의 패턴 각각에 대한 다수의 하위 문자열에 대해 1의 가중 확률값을 갖는 전이 조건인 가중 셀프 루프를 추가하는 단계;
    추가된 상기 초기 상태로부터 상기 확률 유한 오토마타에서 시작 확률이 0이 아닌 모든 상태로 전이하기 위한 조건인 λ 전이 조건을 추가하고, 상기 λ 전이 조건의 확률을 상기 확률 유한 오토마타에서 시작 확률이 0이 아닌 모든 상태 각각의 시작 확률로 설정하는 단계; 및
    상기 확률 유한 오토마타에서 시작 확률이 0이 아닌 모든 상태 각각의 시작 확률을 0으로 변경하는 단계; 를 포함하는 실시간 확률 패턴 매칭 방법.
  12. 제9 항에 있어서, 상기 역추적 여부를 판정하는 단계는
    상기 누적 합이 상기 임계값 이상이면, 상기 다수의 하위 문자열 각각의 확률을 상기 임계값과 비교하는 단계;
    상기 다수의 하위 문자열 각각의 확률 중 적어도 하나가 상기 임계값 이상이면, 역추적을 위해 상기 임계값 이상인 하위 문자열을 출력하는 단계; 및
    상기 누적 합이 상기 임계값 미만이거나, 상기 다수의 하위 문자열 각각의 확률이 상기 임계값 미만이면, 상기 텍스트에서 상기 윈도우의 위치를 기지정된 방향으로 이동시키는 단계; 를 더 포함하는 실시간 확률 패턴 매칭 방법.
  13. 제12 항에 있어서, 상기 실시간 확률 패턴 매칭 방법은
    역추적을 위한 상기 하위 문자열이 출력되면, 상기 텍스트에서 상기 윈도우의 현재 위치로부터 상기 하위 문자열에 대응하는 패턴을 역추적하는 단계; 를 더 포함하는 실시간 확률 패턴 매칭 방법.
  14. 제13 항에 있어서, 상기 역추적하는 단계는
    상기 텍스트에서 상기 하위 문자열에 대응하는 패턴이 역추적되면, 상기 텍스트에서 역추적된 패턴의 시작 위치 및 종료 위치를 출력하는 실시간 확률 패턴 매칭 방법.
KR1020180061979A 2018-05-30 2018-05-30 오토마타 기반 실시간 확률 패턴 매칭 장치 및 방법 KR102061413B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180061979A KR102061413B1 (ko) 2018-05-30 2018-05-30 오토마타 기반 실시간 확률 패턴 매칭 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180061979A KR102061413B1 (ko) 2018-05-30 2018-05-30 오토마타 기반 실시간 확률 패턴 매칭 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190136369A true KR20190136369A (ko) 2019-12-10
KR102061413B1 KR102061413B1 (ko) 2019-12-31

Family

ID=69002787

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180061979A KR102061413B1 (ko) 2018-05-30 2018-05-30 오토마타 기반 실시간 확률 패턴 매칭 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102061413B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111833867A (zh) * 2020-06-08 2020-10-27 北京嘀嘀无限科技发展有限公司 语音指令识别方法、装置、可读存储介质和电子设备
CN117971358B (zh) * 2024-03-29 2024-06-07 苏州元脑智能科技有限公司 有限状态自动机验证方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101488615B1 (ko) 2013-09-04 2015-02-04 연세대학교 산학협력단 정규 표현식 기반의 매칭을 위한 오토마타 인코딩 장치 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4208326B2 (ja) * 1999-03-05 2009-01-14 株式会社リコー 情報索引装置
WO2015107659A1 (ja) * 2014-01-16 2015-07-23 三菱電機株式会社 検索装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101488615B1 (ko) 2013-09-04 2015-02-04 연세대학교 산학협력단 정규 표현식 기반의 매칭을 위한 오토마타 인코딩 장치 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111833867A (zh) * 2020-06-08 2020-10-27 北京嘀嘀无限科技发展有限公司 语音指令识别方法、装置、可读存储介质和电子设备
CN111833867B (zh) * 2020-06-08 2023-12-05 北京嘀嘀无限科技发展有限公司 语音指令识别方法、装置、可读存储介质和电子设备
CN117971358B (zh) * 2024-03-29 2024-06-07 苏州元脑智能科技有限公司 有限状态自动机验证方法及装置

Also Published As

Publication number Publication date
KR102061413B1 (ko) 2019-12-31

Similar Documents

Publication Publication Date Title
CN109635273B (zh) 文本关键词提取方法、装置、设备及存储介质
CN107102981B (zh) 词向量生成方法和装置
JP5661813B2 (ja) セマンティックオブジェクトの特徴付けおよび検索
JPWO2004062110A1 (ja) データ圧縮方法、プログラム及び装置
WO2021073119A1 (zh) 基于意图识别模型的实体消歧方法、装置和计算机设备
CN112989055B (zh) 文本识别方法、装置、计算机设备和存储介质
CN110569496A (zh) 实体链接方法、装置及存储介质
CN110750615B (zh) 文本重复性判定方法和装置、电子设备和存储介质
CN111460083A (zh) 文档标题树的构建方法、装置、电子设备及存储介质
CN110046637B (zh) 一种合同段落标注模型的训练方法、装置及设备
US20100114560A1 (en) Systems and methods for evaluating a sequence of characters
KR101977231B1 (ko) 커뮤니티 검출 방법 및 커뮤니티 검출 프레임워크 장치
JP7116309B2 (ja) コンテキスト情報生成方法、コンテキスト情報生成装置およびコンテキスト情報生成プログラム
CN111611452A (zh) 搜索文本的歧义识别方法、系统、设备及存储介质
CN113986950A (zh) 一种sql语句处理方法、装置、设备及存储介质
KR102061413B1 (ko) 오토마타 기반 실시간 확률 패턴 매칭 장치 및 방법
JP2023537815A (ja) プログラムレベルのコンテキスト情報のマイニングと低レベルのシステムの来歴グラフへの統合
US10482075B2 (en) Information processing device, information processing method, and recording medium
CN115618054A (zh) 视频推荐方法及装置
JP2017059216A (ja) クエリ校正システムおよび方法
CN110543544A (zh) 文本处理方法、存储介质和电子设备
KR102146625B1 (ko) 오토마타 기반 증분적 중위 확률 계산 장치 및 방법
KR102289411B1 (ko) 가중치 기반의 피처 벡터 생성 장치 및 방법
JP2014235584A (ja) 文書分析システム、文書分析方法およびプログラム
CN110083679B (zh) 搜索请求的处理方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant