KR101910491B1 - 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치 - Google Patents

가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치 Download PDF

Info

Publication number
KR101910491B1
KR101910491B1 KR1020160165608A KR20160165608A KR101910491B1 KR 101910491 B1 KR101910491 B1 KR 101910491B1 KR 1020160165608 A KR1020160165608 A KR 1020160165608A KR 20160165608 A KR20160165608 A KR 20160165608A KR 101910491 B1 KR101910491 B1 KR 101910491B1
Authority
KR
South Korea
Prior art keywords
gram
length
character string
string
grams
Prior art date
Application number
KR1020160165608A
Other languages
English (en)
Other versions
KR20180065156A (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 KR1020160165608A priority Critical patent/KR101910491B1/ko
Publication of KR20180065156A publication Critical patent/KR20180065156A/ko
Application granted granted Critical
Publication of KR101910491B1 publication Critical patent/KR101910491B1/ko

Links

Images

Classifications

    • G06F17/30985
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • 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/3332Query translation
    • G06F16/3335Syntactic pre-processing, e.g. stopword elimination, stemming
    • G06F17/30666

Landscapes

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

Abstract

본 발명은 유사문자열 검색을 위한 방법 및 그 장치에 관한 것으로, 더욱 상세하게는 질의 문자열에 포함된 q-그램의 선별능력이 좋지 않은 경우 선별 능력이 좋아지도록 질의 문자열에서 그램의 길이를 q 보다 늘려서 추출한 후 q-그램의 역리스트를 이용하여 추출한 그램의 역리스트를 동적으로 생성하여 사용하는 검색 방법 및 장치에 관한 것이다.

Description

가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치{A method and apparatus for efficient string similarity search based on generating inverted list of variable length grams }
본 발명은 유사문자열 검색을 위한 방법 및 그 장치에 관한 것으로, 더욱 상세하게는 질의 문자열에 포함된 q-그램의 선별능력이 좋지 않은 경우 선별 능력이 좋아지도록 질의 문자열에서 그램의 길이를 q 보다 늘려서 추출한 후 q-그램의 역리스트를 이용하여 추출한 그램의 역리스트를 동적으로 생성하여 사용하는 검색 방법 및 장치에 관한 것이다.
일반적으로 사용자가 검색 엔진에 특정 검색어를 입력하거나 데이터베이스에 특정 질의 문자열을 입력하면 이 특정 검색어 또는 질의 문자열과 동일한 문자열을 포함하는 검색 결과뿐만 아니라 이와 유사한 부분 문자열을 갖고 있는 검색 결과도 사용자에게 함께 제공될 수 있다. 이러한 기능은 사용자가 특정 검색어의 철자를 정확히 모르거나 검색어 자체를 정확히 몰라서 검색어를 잘못 입력하는 경우에도 사용자가 원하는 결과를 적절히 제공하기 위한 것이다.
유사 문자열 검색은 문자열 데이터베이스에서 주어진 질의 문자열과 유사한 문자열을 모두 찾아내는 연산이다. 데이터 생성 시 오류나 사전 지식의 부재 등으로 인하여 데이터베이스 내의 문자열과 질의 문자열이 잘못된 문자를 포함하는 경우가 매우 빈번하다. 따라서 데이터베이스로부터 유용한 데이터를 추출하기 위해서는 유사 문자열 검색이 필수적이라 할 수 있다.
유사 문자열 검색에서 질의 문자열과 데이터 문자열 사이의 유사도를 측정하기 위해 편집거리 유사도가 가장 많이 사용된다. 두 문자열 사이의 편집거리는 하나의 문자열을 다른 문자열로 변환하는데 필요한 편집연산의 최소 개수이다. 이때, 편집연산은 문자 하나를 삭제하거나 삽입하거나 치환하는 연산을 말한다. 예를 들어 "Tom Hanks"를 "Ton Hank"로 변환하기 위해 m을 n으로 치환하고 s를 삭제해야 하므로 두 문자열 사이의 편집거리는 2이다.
유사 문자열 검색은 데이터베이스 내의 각 문자열과 질의 문자열 사이의 편집거리를 계산하여 편집거리가 질의에 주어진 임계값 이하인 지를 확인함으로써 수행될 수 있다. 하지만, 대규모 데이터베이스 내의 각 문자열에 대해 일일이 편집거리를 계산하는 것은 매우 많은 비용을 요구한다. 효율적인 유사 문자열 검색을 위해 기존의 기법들은 검색 결과를 포함하는 후보 문자열 집합을 빠르게 생성한 후 후보 문자열 집합 내 문자열들과 질의 문자열의 편집거리 계산을 통해 검증하는 기법을 사용한다. 효율적인 유사 문자열 검색을 위해 대부분의 연구들은 빠른 속도로 적은 수의 후보 문자열을 생성하는데 초점을 맞추고 있다.
기존에는 문자열을 서로 중첩되는 q-그램(문자열의 길이 q인 부분 문자열)으로 분해한 후 유사한 문자열들 사이에 공유되어야 하는 q-그램 개수의 하한 값을 이용해 후보 문자열을 생성하였다. 대부분의 연구들이 후보를 생성하기 위해 필요한 최소 개수의 q-그램을 이용하는 접두부 필터링 (prefix filtering) 방법을 사용하였다.
q-그램 역색인을 사용하는 경우 후보 문자열을 즉시 추출해 낼 수 있는 장점을 가진다. 하지만, 질의 문자열로부터 서로 겹치지 않는 임의의 길이의 부분 문자열을 사용하는 경우 더욱 적은 후보를 생성할 수 있음에도 불구하고 선별할 수 있는 부분 문자열의 길이를 q로 한정하는 단점이 있다. 질의 문자열로부터 임의의 길이의 부분 문자열을 사용하기 위한 가장 간단한 방법으로 데이터베이스 내의 문자열들에 대한 임의의 길이의 부분 문자열에 대해 모두 역리스트를 생성하는 방법이 있다. 하지만 이 방법은 색인의 크기가 매우 커져서 색인을 메모리에 적재할 수 없으며 색인 탐색 비용이 질의 처리 비용을 압도하게 되므로 실용적으로 사용할 수 없는 방법이다.
가변 길이의 부분 문자열을 사용하여 후보를 생성하기 위한 기법으로 VGram, PASS-JOIN등이 제안되었지만 질의와 관계없이 일부 미리 결정된 부분 문자열들에 대한 역리스트를 구축하여 활용하기 때문에 질의에서 임의의 부분 문자열을 추출하여 사용하는 것은 여전히 불가능하다.
등록특허 제10-1452638호
따라서 본 발명의 목적은 고정된 길이의 q-그램 역인덱스를 사용하여 질의로부터 임의의 부분 문자열을 이용할 수 있는 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치를 제공함에 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치는 문자열 데이터베이스에서 문자열 데이터를 입력받는 단계; 상기 입력받은 문자열 데이터에 대한 q그램의 역리스트를 생성하는 단계; 위치기반 교집합을 수행하여 상기 q-그램간의 사이의 거리가 n인 문자열을 찾은 단계; 상기 q-그램의 문자열을 상기 문자열 데이터에서 찾는 단계;를 포함하는 것을 특징으로 한다.
상기 q-그램의 역리스트를 생성하는 단계는 상기 입력된 문자열 데이터를 한 단어씩 분해하는 단계; 상기 분해된 각 단어를 역리스트에 배치하는 단계; 상기 q그램을 키값으로하고 상기 역리스트의 인덱스를 값으로 하는 q-그램을 생성하는 단계를 포함하는 것을 특징으로 한다.
상기 위치기반 교집합을 수행하여 상기 생성된 q-그램간의 사이의 거리가 n인 문자열을 찾은 단계는 상기 생성된 q-그램의 접두부와 접미부의 길이를 구하는 단계; 상기 생성된 q-그램의 접미부의 길이와 상기 접미부의 길이의 차이를 구하는 단계; 상기 구해진 길이의 차이만큼 상기 생성된 q-그램 접미부 역인덱스 값에서 차감하는 단계; 상기 생성된 q-그램 접두부와 상기 차감된 q-그램 접미부의 역인덱스 값의 교집합하여 공통된 역인덱스 값을 구하는 단계를 포함하는 것을 특징으로 한다.
상기 q-그램의 접두부는 길이가 q인 상기 가변길이 그램의 접두부이고, 상기 q-그램의 접미부는 길이가 q인 접미부인 것을 특징으로 한다.
상기 가변길이 그램은 상기 문자열 데이터에서 연속되거나 또는 중첩되어 있는 것을 특징으로 한다.
본 발명은 기존의 q-그램 색인을 사용하는 경우 후보 문자열 생성을 위해 질의로부터 선택할 수 있는 부분 문자열의 길이가 q로 제안되는 문제점을 해결하기 위해 질의 문자열에서 선택된 가변길이 그램의 역리스트를 기 구축된 q-그램의 역리스트로부터 효과적으로 생성할 수 있는 효과를 갖는다.
또한, 본 발명의 유사문자열 검색기술은 생물정보학 분야에서 DNA 서열을 구성하기 위한 기본 도구인 read mapper에 적용하여 보다 빠르고 정확하게 DNA 서열을 찾아낼 수 있는 효과를 갖는다.
도 1은 두 문자열 사이의 편집거리를 이용하여 유사 문자열을 검색하는 방법을 나타낸 도면이다.
도 2는 본 발명에 따른 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법의 각 단계를 나타낸 도면이다.
도 3은 q-그램 문자열이 서브 문자열의 길이가 q 인 경우에 대한 역리스트 생성 방법의 실시예를 나타낸 도면이다
도 4는 위치기반 교집합을 수행하여 두 q-그램 사이의 거리가 n인 문자열을 찾기 위한 세부과정을 나타낸 도면이다.
도 5는 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법을 유전자의 게놈 구조에 적용한 실시예를 나타낸 도면이다.
도 6은 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 장치에 대한 구성을 나타내는 구조도 이다.
이하 첨부된 도면을 참조하여 본 발명에 따라 질의 문자열에서 그램의 길이를 q 보다 늘려서 추출한 후 q-그램의 역리스트를 이용하여 추출한 그램의 역리스트를 동적으로 생성하여 사용하는 검색 방법을 설명한다.
유사 문자열 검색에서 질의 문자열과 데이터 문자열 사이의 유사도를 측정하기 위해 가장 많이 사용되는 편집거리(edit distance) 방식을 많이 적용한다. 두 문자열 사이의 편집거리는 하나의 문자열을 다른 문자열로 변환하는데 필요한 편집연산의 최소 개수이다. 이때, 편집연산은 문자 하나를 삭제하거나 삽입하거나 치환하는 연산을 말한다.
도 1은 두 문자열 r과 s간의 편집거리를 계산을 위한 예시이다. 문자열 r을 s로 변환하기 위해서는 문자열 r의 맨앞에 A를 삽입하는 연산을 1번하고, 문자열 r의 맨 마지막 T를 삭제하는 연산을 1번하고, 마지막으로 문자열 r의 중간에 있는 G를 C로 변경하는 변경 연산을 1번 수행해야 한다. 결론적으로, 문자열 r과 s간의 편집거리는 3이 된다.
한편, 본 발명에서 사용되는 용어 '문자열'은 하나 이상의 문자로 이루어진 입력 단위 또는 검색 단위이며, 여기서 '문자'는 알파벳, 숫자, 특수기호, 여백(스페이스)등을 포함할 수 있다. 문자열은 하나 이상의 단어가 될 수 있고, 하나 또는 그 이상의 문장도 될 수 있다.
본 발명에서는 질의로부터 선별된 임의의 길이의 부분 문자열에 대한 역리스트를 q-그램 역리스트를 이용하여 동적으로 생성하는 방법을 위해서 q-그램 역리스트를 다음과 같이 정의한다.
[정의 1] 주어진 문자열 데이터베이스 D에 대해 어떤 q-그램 g의 역리스트 I(g)는 다음과 같이 정의된다.
I(g) = {(ID(s), p) | s■D and g=s[p, p+q-1]}
이때, 어떤 문자열 s에 대해 ID(s)는 s의 ID를 나타내며, s[p, p+q-1]는 문자열 s의 위치 p에서 시작해서 p+q-1에서 끝나는 길의 q인 부분 문자열을 나타낸다.
도 2는 본 발명에 따른 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법의 각 단계를 나타내는 것으로 문자열 데이터베이스에서 문자열 데이터를 입력받는 단계(S100), 상기 입력받은 문자열 데이터에 대한 q-그램의 역리스트를 생성하는 단계(S110), 위치기반 교집합을 수행하여 상기 q-그램간의 사이의 거리가 n인 문자열을 찾은 단계(S120), 상기 q-그램의 문자열을 상기 문자열 데이터에서 찾는 단계(S130)를 포함한다.
상기 q-그램의 역리스트를 생성하는 단계는 q-그램의 역리스트를 생성하는 단계는 상기 입력된 문자열 데이터를 한 단어씩 분해하는 단계, 상기 분해된 각 단어를 q-그램을 포함하는 모든 위치를 포함하는 역리스트에 배치하는 단계, 상기 q그램을 키값으로하고 상기 역리스트의 인덱스를 값으로 하는 q-그램을 생성하는 단계를 더 포함한다.
도 3은 q-그램 문자열이 서브 문자열의 길이가 q인 경우에 대한 역리스트를 생성하는 방법에 대한 실시예를 나타나낸다. 상기 실시 예에서는 q가 2인 것으로 가정한다.
도 3에서는 문자열 데이터베이스에서 2-그램 st는 1번 문자열의 0번째, 2번 문자열의 0번째, 3번 문자열의 5번째, 4번 문자열의 0번째 위치에 나타나므로 st의 역리스트 I(st)는 도 3의 오른쪽과 같다.
본 발명의 질의의 가변길이 부분 문자열에 대한 역리스트 생성을 위해 우선 정의 2와 같이 두 역리스트 간의 위치기반 교집합 연산을 정의하고, 보조정리 1을 통해 본 발명의 역리스트 생성 기법을 설명한다.
[정의 2] 주어진 두 역리스트 I(g1)과 I(g2)의 위치기반 교집합 I(g1)∩ΔnI(g2)는 다음과 같이 정의된다.
I(g1)∩ΔnI(g2) = {(s1,p1) | (s1,p1)■I(g1), (s2,p2)■I(g2), s1 = s2, and p2 ?? p1 = n }
상기 정의 2에서 정의된 인자 n을 받는 위치기반 교집합 연산은 두 개의 q-그램 g1과 g2를 모두 포함하며 두 q-그램 사이의 거리가 n인 문자열을 찾아내는 연산이다.
[보조정리 1]어떤 가변길이 그램 g에 대해 |g|가 g의 길이를 나타낸다고 했을때 q< |g| ≤2q 인 가변길이 그램 g의 역리스트 I(g)는 다음과 같이 생성할 수 있다.
I(g) = I(Pg) ∩Δn=B(Sg) I(Sg)
이때, Pg는 길이 q인 g의 접두부(prefix)를 의미하며, Sg는 길이 q인 g의 접미부(suffix)를 의미하고, n=B(Sg)는 g내의 Sg의 위치이다.
상기 정의 2와 상기 보조정리 1을 이용하여 상기 도 2에서 생성된 q-그램의 역리스트에서 q-그램간의 사이의 거리가 n인 문자열을 찾을 수 있다. 상기 도 3의 문자열 데이터베이스에서 4-그램 stri를 고려해 보면 다음과 같다.
상기 그림 3의 실시예에서 2-그램 역리스트를 사용하므로, Pstri = st이고 Sstri = ri이다. ri는 stri의 2번 위치에서 나타나므로 B(ri) = 2이다. 따라서 stri의 역리스트 I(stri)는 I(stri) = I(st) ∩Δn =2 I(ri)와 같이 생성할 수 있다(보조정리 1). I(st)와 I(ri)는 1, 2, 3, 4번 문자열을 공유하지만 위치의 차이가 2인 것은 1번 문자열뿐이므로 위치기반 교집합 연산의 정의에 따라 I(stri) = {(1,0)}이 된다. 이를 통해 4-그램 stri는 1번 문자열 string의 0번 위치에 포함되어 있음을 알 수 있다.
도 4는 상기 위치기반 교집합을 수행하여 두 q-그램 사이이의 거리가 n인 문자열을 찾기 위한 세부 과정을 나타낸다.
상기 정의 2과 보조정리 1에 따라서 상기 생성된 q-그램의 접두부와 접미부의 길이를 구하는 단계, 상기 생성된 q-그램의 접미부의 길이와 상기 접미부의 길이의 차이를 구하는 단계, 상기 구해진 길이의 차이만큼 상기 생성된 q-그램 접미부 역인덱스 값에서 차감하는 단계, 상기 생성된 q-그램 접두부와 상기 차감된 q-그램 접미부의 역인덱스 값의 교집합하여 공통된 역인덱스 값을 구하는 단계를 세부단계포함하고 있다.
본 발명의 가변길이 그램의 역리스트를 이용하여 문자열을 검색하는 방법을 유전자의 게놈 구조에 적용한 실시예는 도 5 와 같다.
문자열 데이터베이스에서 3-그램 'TAA'와 'ACT'를 고려하여 각각의 3-그램의 역리스트는 도 5의 참고 게놈 시퀀스(reference genome sequence)의 주소에 따라 TAA는 상기 참고 게놈 시퀀스에서 103, 115, 203, 215의 인덱스와 매칭이 되고, 'ACT'는 100과 105 인덱스와 매칭됨을 알 수 있고, 그에 따라 3-그램 역리스트를 생성할 수 있다. 상기 정의 2와 상기 보조정리 1을 이용하여 상기 도 5에서 생성된 q-그램의 역리스트에서 q-그램간의 사이의 거리가 n인 문자열을 찾을 수 있다. 상기 그림 5의 실시예에서는 3-그램 역리스트를 사용하므로, PTAAACT = TAA이고 STAAACT = ACT이다. ACT는 TAAACT의 2번 위치에서 나타나므로 B(ACT) = 2이다. 따라서 TAAACT의 역리스트 I(TAA)는 I(TAAACT) = I(TAA) ∩??n=2 I(ACT)와 같이 생성할 수 있다. 상기 I(TAA)의 상기 역 리스트의 인덱스 값과 I(ACT)의 상기 역 리스트의 인덱스 값에서 TAAACT에서 Sg의 위치가 2이므로(B(ACT)=2) 2를 뺀 인덱스 값의 교집합을 수행하면 103이 나온다. 따라서, TAAACT는 상기 참고 게놈 시퀀스의 103의 인덱스 값 위치에 포함되어 있음을 알 수 있다.
도 6 은 일 실시예에 따라 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 장치에 대한 구성을 나타내는 구조도이다.
도 6을 참조하면 일 실시예에 따른 문자열 검색 장치는 서버(620), 문서 DB(640), 및 색인 DB(650)를 포함할 수 있고, 네트워크(610)를 통해 다수의 사용자 단말기(600)와 통신하도록 연결될 수 있다.
사용자 단말기(600)는 예를 들어 예를 들어 스마트폰, 태블릿 PC, 노트북 컴퓨터 등의 휴대용 모바일 단말기 또는 데스크탑 컴퓨터와 같은 비-휴대용 단말기일 수 있고, 사용자 단말기(600)를 통해 사용자가 질의 문자열을 입력할 수 있다.
네트워크(610)는 사용자 단말기(600)와 서버(620) 사이에 데이터 송수신 경로를 제공하는 임의의 형태의 네트워크로서, LAN, WAN, 인터넷망, 및/또는 이동통신망 중 하나를 포함할 수 있다.
서버(610)는 사용자 단말기(600)로부터 질의 문자열을 수신받고 이 문자열을 문서 DB(640)에서 검색하여 검색결과를 사용자 단말기(600)에 제공하는 서비스 서버일 수 있고, 이를 위해 검색 어플리케이션(630)을 포함할 수 있다. 검색 어플리케이션(630)은 도2 내지 도5을 참조하여 설명한 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법을 수행할 수 있는 검색엔진 또는 임의의 어플리케이션이 될 수 있다.
이를 위해 서버(620)는 프로세서, 메모리, 저장부, 통신부 등으로 구성될 수 있고, 검색 어플리케이션(630)이 저장부에 저장되어 있다가 프로세서의 제어 하에 메모리에 로딩되어 실행될 수 있다. 또한 서버(620)는 사용자로부터 질의 문자열을 입력받고 검색 결과를 사용자에게 제공할 수 있는 웹서버 또는 DB 서버일 수 있다.
도시된 실시예에서 서버(620)는 문서 DB(640)와 색인 DB(650)와 통신가능하게 연결된다. 대안적인 실시예에서 서버(620)가 문서 DB(640)와 색인 DB(650) 중 적어도 하나를 포함할 수도 있다. 문서 DB(640)는 다수의 문자열들을 저장하는 저장수단일 수 있고, 색인 DB(650)는 색인 정보가 필요한 경우 이 색인 정보를 저장하는 저장수단일 수 있다.
한편, 본 발명은 전술한 전형적인 바람직한 실시예에만 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위 내에서 여러 가지로 개량, 변경, 대체 또는 부가하여 실시할 수 있는 것임은 당해 기술분야에서 통상의 지식을 가진 자라면 용이하게 이해할 수 있을 것이다. 이러한 개량, 변경, 대체 또는 부가에 의한 실시가 이하의 첨부된 특허청구범위의 범주에 속하는 것이라면 그 기술사상 역시 본 발명에 속하는 것으로 보아야 한다.
600: 사용자 단말기 610: 네트워크
620: 서버 630: 검색 어플리케이션
640: 문서 DB 650: 색인 DB

Claims (10)

  1. 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법에 있어,
    상기 검색방법은 문자열 데이터베이스에서 문자열 데이터를 입력받는 단계;
    상기 입력받은 문자열 데이터에 대한 q그램의 역리스트를 생성하는 단계;
    위치기반 교집합을 수행하여 상기 q-그램간의 사이의 거리가 n인 문자열을 찾은 단계;
    상기 q-그램의 문자열을 상기 문자열 데이터에서 찾는 단계;를 포함하되,
    상기 q-그램의 역리스트를 생성하는 단계는,
    상기 입력된 문자열 데이터를 한 단어씩 분해하는 단계;
    상기 분해된 각 단어를 역리스트에 배치하는 단계;
    상기 q그램을 키값으로하고 상기 역리스트의 인덱스를 값으로 하는 q-그램을 생성하는 단계;를 포함하고,
    상기 위치기반 교집합을 수행하여 상기 생성된 q-그램간의 사이의 거리가 n인 문자열을 찾은 단계는,
    상기 생성된 q-그램의 접두부와 접미부의 길이를 구하는 단계;
    상기 생성된 q-그램의 접두부의 길이와 상기 접미부의 길이의 차이를 구하는 단계;
    상기 구해진 길이의 차이만큼 상기 생성된 q-그램 접미부 역인덱스 값에서 차감하는 단계;
    상기 생성된 q-그램 접두부와 상기 차감된 q-그램 접미부의 역인덱스 값의 교집합하여 공통된 역인덱스 값을 구하는 단계;를 포함하는 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 q-그램의 접두부는 길이가 q인 상기 가변길이 그램의 접두부이고, 상기 q-그램의 접미부는 길이가 q인 접미부인 것을 특징으로 하는 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색방법.
  5. 제4항에 있어서, 상기 가변길이 그램은 상기 문자열 데이터에서 연속되거나 또는 중첩되어 있는 것을 특징으로 하는 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
KR1020160165608A 2016-12-07 2016-12-07 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치 KR101910491B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160165608A KR101910491B1 (ko) 2016-12-07 2016-12-07 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160165608A KR101910491B1 (ko) 2016-12-07 2016-12-07 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180065156A KR20180065156A (ko) 2018-06-18
KR101910491B1 true KR101910491B1 (ko) 2018-10-22

Family

ID=62767891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160165608A KR101910491B1 (ko) 2016-12-07 2016-12-07 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101910491B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006519445A (ja) * 2003-03-03 2006-08-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 文字列検索の方法および設備

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171029B2 (en) * 2007-10-05 2012-05-01 Fujitsu Limited Automatic generation of ontologies using word affinities
KR100920745B1 (ko) * 2008-03-04 2009-10-07 재단법인대구경북과학기술원 질의 처리 방법, 역 리스트 관리 방법, 역 리스트 관리를위한 압축 방법, 및 구문 역 리스트 관리 방법
KR101452638B1 (ko) 2013-06-21 2014-10-22 서울대학교산학협력단 유사 문자열 검색 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006519445A (ja) * 2003-03-03 2006-08-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 文字列検索の方法および設備

Also Published As

Publication number Publication date
KR20180065156A (ko) 2018-06-18

Similar Documents

Publication Publication Date Title
US7277029B2 (en) Using language models to expand wildcards
US8914275B2 (en) Text prediction
US7769804B2 (en) Server side search with multi-word word wheeling and wildcard expansion
CN107704102B (zh) 一种文本输入方法及装置
US20080312911A1 (en) Dictionary word and phrase determination
CN112989055B (zh) 文本识别方法、装置、计算机设备和存储介质
WO2008151465A1 (en) Dictionary word and phrase determination
CN102768681A (zh) 一种用于搜索输入的推荐系统及方法
CN102867049B (zh) 一种基于单词查找树实现的汉语拼音快速分词方法
CN110046637B (zh) 一种合同段落标注模型的训练方法、装置及设备
CN104423623B (zh) 一种选词处理方法及电子设备
US10152473B2 (en) English input method and input device
JP4114600B2 (ja) 可変長文字列検索装置及び可変長文字列検索方法並びにプログラム
KR20080085165A (ko) 입력 데이터 확장 시스템 및 방법, 및 와일드카드 삽입 및입력 데이터 확장 시스템
CN104156454A (zh) 搜索词的纠错方法和装置
CN111198936B (zh) 一种语音搜索方法、装置、电子设备及存储介质
CN112784009A (zh) 一种主题词挖掘方法、装置、电子设备及存储介质
KR20100067629A (ko) 입력 순서와 무관한 문자 입력 메커니즘을 제공하는 방법, 기기 및 컴퓨터 프로그램 제품
CN109508390B (zh) 基于知识图谱的输入预测方法、装置和电子设备
KR101910491B1 (ko) 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치
KR101452638B1 (ko) 유사 문자열 검색 방법 및 장치
CN115130455A (zh) 文章处理方法、装置、电子设备以及存储介质
US20140181065A1 (en) Creating Meaningful Selectable Strings From Media Titles
CN113626600B (zh) 文本处理方法、装置、计算机设备和存储介质
KR102222769B1 (ko) 전화번호 검색 방법 및 장치

Legal Events

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