KR102496551B1 - 동의어 규칙을 이용한 문자열 매칭 방법 및 이를 구현하는 장치 및 프로그램 - Google Patents

동의어 규칙을 이용한 문자열 매칭 방법 및 이를 구현하는 장치 및 프로그램 Download PDF

Info

Publication number
KR102496551B1
KR102496551B1 KR1020200174847A KR20200174847A KR102496551B1 KR 102496551 B1 KR102496551 B1 KR 102496551B1 KR 1020200174847 A KR1020200174847 A KR 1020200174847A KR 20200174847 A KR20200174847 A KR 20200174847A KR 102496551 B1 KR102496551 B1 KR 102496551B1
Authority
KR
South Korea
Prior art keywords
string
gram
converted
received
stored
Prior art date
Application number
KR1020200174847A
Other languages
English (en)
Other versions
KR20220084901A (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 KR1020200174847A priority Critical patent/KR102496551B1/ko
Publication of KR20220084901A publication Critical patent/KR20220084901A/ko
Application granted granted Critical
Publication of KR102496551B1 publication Critical patent/KR102496551B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms
    • 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/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치가 동의어 규칙에 기초하여 문자열을 매칭하는 방법으로서, 문자열의 집합(T)에 속하는 저장 문자열들에 대해서 q-그램 역색인을 생성하는 단계, 하나 이상의 수신 문자열에서 동의어 규칙에 의해 변환된 문자열의 변환 q-그램을 생성하고, 변환 q-그램과 q-그램 역색인에 기초하여 전환 가능한 수신 문자열과 저장 문자열의 쌍이 남도록 필터링하는 단계, 남은 문자열의 쌍에 대해 수신 문자열에 동의어 규칙을 적용하여 저장 문자열로 전환 가능여부를 확인하는 단계, 그리고 전환이 가능한 수신 문자열과 저장 문자열을 문자열 쌍으로 선택하여 제공하는 단계를 포함한다.

Description

동의어 규칙을 이용한 문자열 매칭 방법 및 이를 구현하는 장치 및 프로그램{STRING MATCHING METHOD, APPARATUS AND PROGRAM IMPLEMENTING THE METHOD BY USING SYNONYM RULES}
동의어 규칙을 이용한 문자열 매칭 기술에 관한 것이다.
다양한 정보 검색, 기계 번역 등의 언어 처리하는 과정에서 동일한 주제에 대해서 하나 이상의 상이한 단어나 문장으로 표현할 수 있기 때문에 유사한 의미를 가지는 문자열에 대한 확장 기술이 개발되고 있다.
일반적으로 동의어 규칙을 사용하여 의미가 유사한 문자열의 쌍을 찾기 위한 종래기술은 문자열을 토큰의 집합으로 보고 규칙을 적용하여 문자열을 변환시킨 후 집합간의 유사도를 계산하여 의미가 같은 문자열인지 판단하였다.
다만, 이러한 방법은 동일한 토큰의 집합으로 구성되었지만 의미가 다른 두 문자열, 또는 한두 개의 토큰만 다르지만 의미가 다른 두 문자열에 대해 의미가 같다고 판단하는 한계를 가진다.
그러므로 동어의 규칙에 의해 문자열의 쌍을 찾는 과정에서 문자열 내의 토큰들의 순서까지 고려하여 같은 의미를 가지는 문자열을 매칭하는 기술이 요구된다.
해결하고자 하는 과제는 주어진 문자열의 집합에 대한 q-그램 역색인을 생성하고, 입력받은 문자열에 주어진 동의어 규칙들을 적용하여 생성된 q-그램 역색인에 기초하여 변환할 수 없는 문자열들을 필터링하여 동일한 의미를 가지는 서로 상이한 문자열들의 쌍을 빠르게 매칭하는 기술을 제공하기 위한 것이다.
상기 과제 이외에도 구체적으로 언급되지 않은 다른 과제를 달성하는 데 사용될 수 있다.
본 발명의 한 실시예에 따른 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치가 동의어 규칙에 기초하여 문자열을 매칭하는 방법으로서, 문자열의 집합(T)에 속하는 저장 문자열들에 대해서 q-그램 역색인을 생성하는 단계, 하나 이상의 수신 문자열에서 동의어 규칙에 의해 변환된 문자열의 변환 q-그램을 생성하고, 변환 q-그램과 q-그램 역색인에 기초하여 전환 가능한 수신 문자열과 저장 문자열의 쌍이 남도록 필터링하는 단계, 남은 문자열의 쌍에 대해 수신 문자열에 동의어 규칙을 적용하여 저장 문자열로 전환 가능여부를 확인하는 단계, 그리고 전환이 가능한 수신 문자열과 저장 문자열을 문자열 쌍으로 선택하여 제공하는 단계를 포함한다.
확인하는 단계는, 수신 문자열과 저장 문자열에서 동의어 규칙을 공유하는 부분 구조를 추출하여 수신 문자열에서 저장 문자열로 전환 여부를 확인할 수 있다.
확인하는 단계는, 수신 문자열의 끝단에 적용가능한 동의어 규칙들 중에서 저장 문자열에 적용된 접미 규칙을 검색하는 단계, 접미 규칙을 확인하는 경우, 수신 문자열과 저장 문자열에서 접미 규칙이 적용되는 부분을 제거하는 단계, 그리고 남은 수신 문자열에 동의어 규칙을 적용하면 남은 저장 문자열로 변환이 가능하다고 판단하는 단계를 포함할 수 있다.
필터링하는 단계는, 수신 문자열의 위치를 기준으로 해당 위치에 적용가능한 동의어 규칙에 의해 변환된 문자열에 대한 변환 q-그램을 생성할 수 있다.
필터링하는 단계는, 변환 q-그램마다 변환된 문자열에서 위치할 수 있는 위치 범위를 계산하는 단계, 변환 q-그램들 중에서 저장 문자열의 위치마다의 q-그램과 일치하면서 일치한 q-그램이 변환 q-그램의 위치 범위에 포함되는 지 확인하는 단계, 그리고 일치하지 않거나, 위치 범위에 포함되지 않으면, 해당 수신 문자열과 저장 문자열의 쌍을 필터링하는 단계를 포함할 수 있다.
필터링하는 단계는, 필터링 후 남은 문자열 쌍에 대해 수신 문자열에 대한 변환된 문자열들이 가질 수 있는 길이의 범위를 동적 프로그래밍으로 산출하고, 길이 범위에 저장 문자열의 길이가 속하지 않는 경우에 해당 수신 문자열과 저장 문자열의 쌍을 제거할 수 있다.
q-그램 역색인을 생성하는 단계는, 수신 문자열들을 포함하는 문자열의 집합(S)에 기초하여 동의어 규칙을 적용하여 수신 문자열의 위치마다 변환 q-그램을 생성하는 단계, 변환 q-그램마다 변환된 문자열에서 위치할 수 있는 위치 범위를 계산하는 단계, 저장 문자열의 각 위치에서의 q-그램과 변환 q-그램이 일치하는 문자열의 집합(S)의 문자열 개수를 카운트하는 단계, 그리고 카운트 개수가 가장 적은 순서대로 미리 설정된 k개를 선택하고, 선택된 카운트 수를 가지는 위치의 q-그램을 선택하여 저장 문자열의 q-그램 역색인에 삽입하는 단계(k는 자연수)를 포함할 수 있다.
q-그램 역색인을 생성하는 단계는, 저장 문자열에서 문자열의 순서에 따른 q-그램 중에서 미리 설정된 N개를 선택하여, 선택된 N개의 q-그램에 대한 q-그램 역색인을 생성하고(N은 자연수), 필터링하는 단계는, 수신 문자열에서 N개의 q-그램에 대한 위치까지 변환 q-그램을 생성하고, q-그램 역색인과 변환 q-그램에 기초하여 필터링을 수행할 수 있다.
q-그램 역색인을 생성하는 단계는, 저장 문자열에 대한 q-그램 역색인과 해시 테이블을 생성하고, 필터링하는 단계는, 수신 문자열의 개수가 임계치 미만이면, 수신 문자열의 변환 문자열이 해시 테이블에 포함되어 있는지를 확인하여 필터링을 수행할 수 있다.
본 발명의 한 실시예에 따른 컴퓨터로 판독 가능한 저장 매체에 저장되고, 프로세서에 의해 실행되는 프로그램으로서, 문자열의 집합(T)에 속하는 저장 문자열들에 대해서 q-그램 역색인을 생성하는 동작, 하나 이상의 수신 문자열에서 동의어 규칙에 의해 변환된 문자열의 변환 q-그램을 생성하고, 변환 q-그램과 q-그램 역색인에 기초하여 전환 가능한 수신 문자열과 저장 문자열의 쌍이 남도록 필터링하는 동작, 남은 문자열의 쌍에 대해 수신 문자열에 동의어 규칙을 적용하여 저장 문자열로 전환 가능여부를 확인하는 동작 그리고 전환이 가능한 수신 문자열과 저장 문자열을 문자열 쌍으로 선택하여 제공하는 동작을 실행하는 명령어들을 포함한다.
확인하는 동작은, 수신 문자열과 저장 문자열에서 동의어 규칙을 공유하는 부분 구조를 추출하여 동의어 규칙에 의해 수신 문자열에서 저장 문자열로 전환 여부를 확인할 수 있다.
필터링하는 동작은, 수신 문자열의 위치를 기준으로 해당 위치에 적용가능한 동의어 규칙에 의해 변환된 문자열에 대한 변환 q-그램을 생성하고,
변환 q-그램들 중에서 저장 문자열의 위치마다의 q-그램과 일치하지 않거나, 일치한 q-그램이 변환 q-그램의 위치 범위에 포함되지 않으면, 해당 수신 문자열과 저장 문자열의 쌍을 필터링할 수 있다.
제공된 문자열 쌍에서 수신 문자열에 대한 q-그램 역색인 생성하는 동작, 동의어 규칙을 적용하여 저장 문자열의 위치마다 제2 변환 q-그램을 생성하고 제2 변환 q-그램과 수신 문자열의 q-그램 역색인에 기초하여 일치하지 않는 수신 문자열과 저장 문자열의 쌍을 필터링하는 동작, 남은 문자열의 쌍에 대해 저장 문자열에 동의어 규칙을 적용하여 수신 문자열로 전환 가능여부를 확인하는 동작 그리고 전환이 가능한 저장 문자열과 수신 문자열을 문자열 쌍으로 선택하여 제공하는 동작을 실행하는 명령어들을 더 포함할 수 있다.
q-그램 역색인을 생성하는 동작은, 수신 문자열들을 포함하는 문자열의 집합(S)에서 동의어 규칙을 적용하여 수신 문자열의 위치마다 변환 q-그램을 생성하고, 변환 q-그램마다 변환된 문자열에서 위치할 수 있는 위치 범위를 계산하는 동작, 저장된 문자열의 집합(T)에 포함된 저장 문자열의 각 위치마다의 q-그램과 변환 q-그램이 일치하는 문자열 집합 S에서의 문자열 개수를 카운트하는 동작, 그리고 저장 문자열의 위치마다 카운트된 개수가 가장 적은 순서대로 미리 설정된 k개를 선택하고, 선택된 카운트 수를 가지는 위치들의 q-그램들을 저장 문자열의 q-그램 역색인에 삽입하는 동작(k는 자연수)을 실행하는 명령어들을 포함할 수 있다.
본 발명의 하나의 실시예는 입력받은 문자열들에 대해서 동의어 규칙에 기초하여 토큰들의 순서에 의해 의미가 달라지는 문자열을 필터링함으로써 동일한 의미를 가지는 서로 다른 문자열을 매칭할 수 있다.
본 발명의 하나의 실시예는 동의어 규칙에 기초한 서로 다른 문자열에 대해 관계를 정의하고 동일한 의미를 가지는 서로 상이한 문자열들을 빠르게 수집할 수 있다.
본 발명의 하나의 실시예는 입력받은 문자열들에 대해 같은 의미를 가지는 상이한 문자열을 매칭하여 검색에 활용함으로써, 검색 결과의 품질을 향상시키거나 데이터베이스에서 서로 다른 오브젝트를 나타내는 레코드들을 검출 또는 중복된 레코드들을 효과적으로 제거할 수 있다.
도 1은 본 발명의 하나의 실시예에 따른 문자열 매칭 장치를 나타낸 구성도이다.
도 2는 본 발명의 하나의 실시예에 따른 문자열 매칭 장치의 동작 방법을 나타낸 순서도이다.
도 3는 본 발명의 하나의 실시예에 따른 필터링하는 방법을 나타낸 순서도이다.
도 4는 본 발명의 하나의 실시예에 따른 q-그램 기반의 필터링 방법을 설명하기 위한 예시도이다.
도 5는 본 발명의 하나의 실시예에 따른 관계를 정의하기 위한 최적 부분 구조에 대한 예시도이다.
도 6은 본 발명의 다른 실시예에 따른 문자열 매칭 장치의 동작 방법을 나타낸 순서도이다.
도 7은 본 발명의 하나의 실시예에 따른 입력받은 문자열 집합에 기초하여 q-그램 역색인을 생성하는 순서도이다.
도 8은 본 발명의 하나의 실시예에 따른 매칭 방법과 기존 방법들간의 수행 시간을 비교한 그래프이다.
도 9는 본 발명의 하나의 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
첨부한 도면을 참고로 하여 본 발명의 실시예에 대해 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 도면부호가 사용되었다. 또한 널리 알려져 있는 공지기술의 경우 그 구체적인 설명은 생략한다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.  또한, 명세서에 기재된 "……부", "……기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 발명에서 설명하는 장치들은 적어도 하나의 프로세서, 메모리 장치, 통신 장치 등을 포함하는 하드웨어로 구성되고, 지정된 장소에 하드웨어와 결합되어 실행되는 프로그램이 저장된다. 하드웨어는 본 발명의 방법을 실행할 수 있는 구성과 성능을 가진다. 프로그램은 도면들을 참고로 설명한 본 발명의 동작 방법을 구현한 명령어(instructions)를 포함하고, 프로세서와 메모리 장치 등의 하드웨어와 결합하여 본 발명을 실행한다.
본 명세서에서 "전송 또는 제공"은 직접적인 전송 또는 제공하는 것뿐만 아니라 다른 장치를 통해 또는 우회 경로를 이용하여 간접적으로 전송 또는 제공도 포함할 수 있다.
명세서 상에서, 문자열(string)은 하나 이상의 토큰(token)들이 순서를 가지고 나열된 형태를 의미하며, 이하에서는 토큰은 단어를 나타내며 설명하지만, 단어 이외에도 문자 등을 더 의미할 수 있다.
명세서 상에서 제1 관계(smatch)는 문자열 s, 문자열 t, 그리고 규칙들의 집합 R이 주어졌을 때, R에 속한 규칙들을 s에 적용했을 때 t로 변환될 수 있으면 s와 t는 제1 관계(smatch)를 가진다고 하고 두 문자열의 쌍 (s,t)을 제1 관계(smatch)를 가지는 문자열 쌍이라고 한다. 한편, 규칙들의 집합 R에 기초하여 문자열 s에서 문자열 t로 변환되거나 문자열 t에서 문자열 s로 변환 가능한 경우, 두 문자열의 쌍(s, t)을 제2 관계(bsmatch)를 가지는 문자열 쌍이라고 한다.
여기서, 규칙들 모두 대칭적이라면 제1 관계를 가지는 문자열 쌍과 제2 관계를 가지는 문자열 쌍이 동일할 수 있다. 반면에, 규칙들이 비대칭적인 경우에는 제1 관계를 가지는 문자열 쌍이 반드시 제2 관계를 가지는 것은 아니지만, 제2 관계에 해당하는 문자열 쌍이 반드시 제1 관계를 가진다.
명세서 상에서, 동의어 규칙 (synonym rules)은 두 문자열의 쌍으로 나타내며, 하나의 문자열의 일부분을 상이한 문자열의 일부분으로 교체할 수 있음을 의미한다. 이에 따라, 문자열을 변환한다는 것은 문자열 s에 적용가능한 규칙 r을 적용하여 문자열 s를 일부 교체된 문자열로 변환하는 것을 나타낸다.
명세서 상에서, 문자열의 집합 S 또는 문자열의 집합 T는 각각 서로 다른 복수 개의 문자열들을 포함하고 있지만, 설명의 편의상 문자열 집합 S에서의 하나의 문자열을 수신 문자열로 지칭하고, 문자열의 집합 T에서 하나의 문자열을 저장 문자열로 지칭하여 설명한다.
도 1은 본 발명의 하나의 실시예에 따른 문자열 매칭 장치를 나타낸 구성도이다.
도 1에 도시한 바와 같이, 문자열 매칭 장치(100)는 입력받은 문자열 또는 문자열 집합S에 대해 동의어 규칙에 기초하여 문자열 집합 T와의 매칭된 문자열 쌍을 생성하여 제공한다.
문자열 매칭 장치(100)는 주어진 문자열의 집합T에 대해 q-그램 역색인을 생성하는 q-그램 역색인 생성부(110), 동의어 규칙을 적용할 때 변환되지 못한 문자열들을 필터링하는 문자열 필터링부(120), 그리고 필터링된 문자열들 중에서 문자열 간의 규칙 적용 여부에 기초하여 문자열 쌍의 관계를 정의하는 문자열 관계 판단부(130), 서로 변환되는 문자열들의 쌍을 선택하는 문자열 쌍 선택부(140)를 포함한다.
설명을 위해 q-그램 역색인 생성부(110), 문자열 필터링부(120), 문자열 관계 판단부 (130) 그리고 문자열 쌍 선택부(140)로 명명하여 부르나, 이들은 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치이다. 여기서, q-그램 역색인 생성부(110), 문자열 필터링부(120), 문자열 관계 판단부 (130) 그리고 문자열 쌍 선택부(140)는 하나의 컴퓨팅 장치에 구현되거나 별도의 컴퓨팅 장치에 분산 구현될 수 있다. 별도의 컴퓨팅 장치에 분산 구현된 경우, q-그램 역색인 생성부(110), 문자열 필터링부(120), 문자열 관계 판단부 (130) 그리고 문자열 쌍 선택부(140)는 통신 인터페이스를 통해 서로 통신할 수 있다. 컴퓨팅 장치는 본 발명을 수행하도록 작성된 소프트웨어 프로그램을 실행할 수 있는 장치이면 충분하고 예를 들면, 서버, 랩탑 컴퓨터 등일 수 있다.
q-그램 역색인 생성부110)는 문자열의 집합 T에 대해서 q-그램 역색인을 생성한다.
여기서, q-그램 역색인(q-gram inverted index)은 데이터 문자열들의 집합 내에 해당 q-그램을 포함하는 모든 문자열의 ID를 정렬된 순서로 갖는 리스트들로 구성된 자료구조이다.
다시 말해, q-그램과 위치를 입력으로 받았을 때 그 집합 내의 문자열 중에서 해당 위치에 입력 받은 q-그램을 가지고 있는 모든 문자열들을 반환하는 자료구조이다.
예를 들어, 문자열 집합으로 T1= New York Univ Library 와 T2= New York Public Library 가 있다고 한다면, q=2일 때 해당 문자열 T1과 T2의 q-그램 역색인(q-그램과 위치, 문자열 리스트)은 다음 표 1과 같다.
q-그램과 위치 문자열 리스트
New York,1 T1,T2
York Univ,2 T1
York Public,2 T2
Univ Library,3 T1
Public Library,3 T2
Library $,4 T1,T2
이처럼 q-그램 역색인 생성부(110)는 문자열의 집합 T에 대해 q-그램 역색인을 생성한다.
한편, q-그램 역색인 생성부(110)는 입력받는 문자열의 집합 S에 기초하여 문자열의 집합 T에 대해 q-그램 역색인을 생성할 수 있다. 이러한 구성은 추후에 상세하게 설명한다.
문자열 필터링부(120)는 문자열의 집합 T에 포함된 저장 문자열들의 q-그램 역색인에 기초하여 하나 이상의 수신 문자열과 제1 관계를 가질 수 없는 문자열의 쌍을 필터링한다.
이때, 문자열 필터링부(120)는 q-그램 기반 필터링(q-gram filtering)과 길이 기반 필터링(length filtering)을 이용하여 필터링을 수행하지만, 반드시 이에 한정하는 것은 아니고, 다양한 필터링 기법을 적용하여 제1 관계를 가질 수 없는 문자열들을 필터링할 수 있다.
상세하게는 문자열 필터링부(120)는 q-그램 기반 필터링 기법을 통해 수신 문자열로부터 변환된 문자열들이 각 위치에서 가질 수 있는 모든 q-그램들을 찾은 후, 한 위치라도 저장 문자열의 q-그램이 수신 문자열을 변환한 문자열로부터 만들어질 수 없으면, 해당 수신 문자열과 저장 문자열의 쌍을 제거할 수 있다.
그리고 문자열 필터링부(120)는 q-그램 기반 필터링을 거친 후 남은 문자열들에 대해서 길이 기반 필터링 기법을 통해 수신 문자열로부터 변환된 문자열들이 가질 수 있는 길이의 범위를 동적 프로그래밍으로 산출하면, 저장 문자열의 길이가 해당 범위에 속하지 않는 경우에 해당 수신 문자열과 저장 문자열의 쌍을 제거할 수 있다.
이러한 문자열 필터링부(120)는 하나 이상의 필터링 기법을 사용하여 제1 관계가 성립되지 않은 문자열 쌍을 필터링할 수 있으며, 필터링 기법은 추후에 사용자에 의해 용이하게 추가, 변경 가능하다.
이와 같이, 문자열 필터링부(120)는 하나의 저장 문자열과 하나의 수신 문자열을 비교하여 필터링 여부를 판단하는 과정에서 문자열 쌍이 도출된다.
예를 들어, 하나의 수신 문자열이 저장 문자열들과 일대일로 쌍을 이뤄 q-그램 기반 필터링과 길이 기반 필터링을 통해 모두 제거될 수도 있다.
다시 말해, 문자열 필터링부(120)는 일대일로 대응되는 수신 문자열과 저장 문자열을 비교하여 일치하거나 길이에 포함되는 경우, 문자열 쌍으로 남고, 아닌 경우에는 해당 수신 문자열과 저장 문자열은 제거된다.
문자열 관계 판단부(130)는 수신 문자열과 필터링된 저장 문자열의 집합 간에 제1 관계를 가지는 모든 문자열 쌍을 검색한다.
이때, 문자열 관계 판단부(130)는 동적 프로그래밍 (dynamic programming)을 사용하여 다항 시간 내에 신속하게 판단할 수 있다.
그리고 문자열 관계 판단부(130)는 필터링 후 남은 문자열 쌍을 동적 프로그래밍을 통해 제1 관계를 가지는 지 검증할 수 있다.
이외에도 문자열 관계 판단부(130)는 제1 관계뿐 아니라 문자열 쌍이 제2 관계를 가지는 지도 확인할 수 있다. 이때, 문자열 쌍에 대해서 제2 관계를 가지는 지 확인하는 방법은 제1 관계를 확인하는 방법과 동일하며, 이와 관련된 구성은 추후에 상세하게 설명한다.
문자열 쌍 선택부(140)는 제1 관계 또는 제2 관계를 가지는 문자열의 쌍을 선택하여 연동되는 디스플레이에 제공하거나 데이터베이스에 저장할 수 있다.
도 2는 본 발명의 하나의 실시예에 따른 문자열 매칭 장치의 동작 방법을 나타낸 순서도이다.
도 2에 도시한 바와 같이, 문자열 매칭 장치(100)는 문자열의 집합 T에 속한 저장 문자열들에 대한 q-그램 역색인을 생성한다(S110).
문자열 매칭 장치(100)는 미리 설정되거나 입력된 q값을 통해 q-그램 역색인을 생성한다. 문자열 매칭 장치(100)는 문자열들의 집합 T에 대한 문자열의 추가, 삭제, 변경등의 업데이트가 수행되면 자동으로 업데이트된 문자열의 집합 T에 대해서 q-그램 역색인을 생성할 수 있다.
문자열 매칭 장치(100)는 이러한 q-그램 역색인을 생성하면, 업데이트되기 전까지 별도의 S110 단계를 거치지 않고도 바로 S120 단계로 진행할 수 있다.
다음으로 문자열 매칭 장치(100)는 수신한 하나 이상의 수신 문자열에 대한 변환 q-그램을 생성한다(S120).
문자열 매칭 장치(100)는 하나의 문자열 또는 문자열의 집합 S으로 입력받을 수 있다. 여기서, 문자열 또는 문자열의 집합에 대해서 동일한 과정을 통해 문자열을 매칭함으로써 이하에서는 문자열의 집합 S을 기준으로 설명하며, 수신 문자열은 문자열의 집합 S에 속하는 하나의 문자열을 나타낸다.
문자열 매칭 장치(100)는 수신 문자열의 각 위치마다 동의어 규칙에 따른 변환된 문자열을 생성하고 해당 변환된 문자열에 대한 q-그램을 생성한다.
이때, 변환된 문자열에 대한 q-그램을 변환 q-그램으로 지칭하여 설명한다.
다음으로 문자열 매칭 장치(100)는 변환 q-그램과 저장 문자열의 q-그램 역색인에 기초하여 전환 가능한 문자열의 쌍이 남도록 필터링을 수행한다(S130).
문자열의 집합 S에 적용 가능한 동의어 규칙에 따른 변환된 문자열들과 문자열의 집합 T간에 모든 문자열의 쌍을 생성하여 비교함으로써 제1 관계를 판단할 수 있지만, 이러한 과정은 시간 또는 비용적인 측면에서 비효율적이기 때문에 문자열 매칭 장치(100)는 수신 문자열에 대해 제1 관계를 가질 수 없는 문자열의 집합 T을 빠르게 필터링을 수행한다.
먼저, 문자열 매칭 장치(100)는 문자열의 집합 S에서의 수신 문자열마다 동의어 규칙에 따른 변환된 문자열들이 각 위치에서 가질 수 있는 모든 q-그램들을 찾은 후 문자열의 집합 T에서의 저장 문자열의 각 위치마다 수신 문자열로부터 변환된 문자열에서 동일한 위치에 나타날 수 있는 지 확인할 수 있다.
그리고 문자열 매칭 장치(100)는 q-그램 기반으로 동일한 위치에 나타날 수 없다고 판단한 문자열 쌍을 제거한 후, 문자열의 길이를 이용하여 다시 한번 필터링을 수행할 수 있다.
문자열 매칭 장치(100)는 변환된 문자열들에 기초하여 가질 수 있는 길이의 범위를 동적 프로그래밍으로 산출하고, 저장 문자열의 길이와 비교할 수 있다.
상세하게는 문자열 매칭 장치(100)는 길이 기반 필터링를 통해 문자열의 길이만을 고려하여 한 문자열에 규칙을 적용했을 때 다른 문자열로 변환될 수 있는지 확인한다.
그리고 문자열 매칭 장치(100)는 산출된 길이의 범위에 저장 문자열의 길이가 속하지 않는다면, 전환이 불가하다 판단하여 제거한다.
이처럼 문자열 매칭 장치(100)는 동시에 두 종류의 필터링 기법을 적용하거나 선택적으로 하나의 필터링 기법을 적용할 수 있다.
또한, 문자열 매칭 장치(100)는 저장 문자열의 모든 q-그램을 확인하지 않고 사용자로부터 미리 입력받거나 미리 설정된 파라미터 K의 개수만큼만 선택하여 확인할 수 있다. 여기서, 파라미터 K가 작을수록 필터링에 소요되는 시간은 단축되지만, 걸러내는 문자열 쌍의 개수 또한 줄어드는 트레이드 오프가 발생하므로 파라미터 K는 추후에 설정 및 변경이 가능하다.
이처럼 문자열 매칭 장치(100)는 제1 관계를 가질 수 없는 문자열의 쌍들을 빠르게 제거할 수 있다.
다음으로 문자열 매칭 장치(100)는 남은 수신 문자열과 저장 문자열의 문자열 쌍마다 동의어 규칙에 의해 전환 가능 여부를 확인하여 관계 정의한다 (S140).
문자열 매칭 장치(100)는 동적 프로그래밍을 사용하여 다항 시간 내에 제1 관계에 해당되지 않는 문자열들을 빠르게 판단할 수 있다.
예를 들어, 동적 프로그래밍은 수신 문자열의 끝단에 적용 가능한 규칙들 중에서 우측 항이 저장 문자열의 접미사인 모든 규칙을 검색한다.
그리고 수신 문자열에서 해당 규칙의 좌측 항을 제거하고 남은 문자열과 저장 문자열에서 그 규칙의 우측 항(토큰들)을 제거하고 남은 문자열에 대해서 다시 수신 문자열의 끝단에 적용 가능한 규칙들 중에서 우측 항이 저장 문자열의 접미사인 모든 규칙을 검색한다.
다시 말해, 문자열 매칭 장치(100)는 문자열간의 제1 관계에 해당 여부를 판단하기 위해 최적 부분 구조(optimal substructure)를 추출하여 판단할 수 있다.
이에 수신 문자열과 저장 문자열의 모든 토큰에 대해 그러한 규칙들을 찾은 경우 수신 문자열과 저장 문자열이 서로 제1 관계(smatch)에 해당한다고 판단하며, 그렇지 못한 경우 수신 문자열과 저장 문자열은 제1 관계(smatch)를 가질 수 없다고 판단한다.
한편, 문자열 매칭 장치(100)는 문자열의 쌍을 최소화하기 위한 저장 문자열의 위치를 산출하여 q-gram 역색인을 생성할 수 있다.
또는 문자열 매칭 장치(100)는 사용자로부터 파라미터 N를 입력받거나 미리 파라미터 N이 설정된 경우, 저장 문자열마다 N개의 q-그램을 선택하여 역색인을 만들거나 변환된 문자열의 수가 적을 것으로 예상되는 문자열들은 해시 테이블(hash table)을 사용하여 처리하고 나머지 문자열들은 q-그램 역색인을 수행하거나 필터링하는 방법 등을 사용할 수 있다. (N은 자연수)
그리고 문자열 매칭 장치(100)는 필터링을 통해 제거되지 않은 문자열의 쌍 중에서 제1 관계(smatch)를 가지는 문자열 쌍을 선택하여 제공한다(S150).
문자열 매칭 장치(100)는 토큰들의 순서를 고려하여 동의어 규칙이 적용되는 문자열 쌍을 선택함으로써 의미가 유사하면서도 서로 상이한 문자열들을 제공할 수 있다.
이하에서 도 3 및 도 4를 통해 문자열 매칭 장치의 필터링 방법에 대해서 상세하게 설명한다.
도 3는 본 발명의 하나의 실시예에 따른 필터링하는 방법을 나타낸 순서도이고, 도 4는 본 발명의 하나의 실시예에 따른 q-그램 기반의 필터링 방법을 설명하기 위한 예시도이다.
도 3에 도시한 바와 같이, 문자열 매칭 장치(100)는 수신 문자열에서 동의어 규칙을 적용하여 생성가능한 변환 q-그램 생성한다(S131).
문자열 매칭 장치(100)는 수신 문자열의 모든 토큰의 위치에 대해서 변환 수신 문자열을 생성함에 있어, 생성가능한 변환 q-그램 생성한다.
여기서, q-그램은 앞서 설명한 S110단계에서의 동일한 q값이 설정된다. 그리고 변환 q-그램은 수신 문자열의 일부 구간에서 하나 이상의 동의어 규칙을 적용했을 때, 생성되는 q- 그램을 의미한다.
다시 말해, 문자열 매칭 장치(100)는 수신 문자열의 토큰 위치에 기초하여 변환 q-그램을 생성하기 위해서 수신 문자열을 변환하는 것으로 반드시 수신 문자열 전체에 대해 변환할 필요는 없다.
그러므로 문자열 매칭 장치(100)는 수신 문자열을 동의어 규칙에 따라 수신 문자열의 위치마다 동의어 규칙에 따라 해당 위치에서 생성가능한 변환 q-그램을 생성한다.
다음으로 문자열 매칭 장치(100)는 생성한 변환 q-그램마다 수신 문자열의 변환된 문자열에서 나타나는 위치의 범위를 계산한다(S132).
문자열 매칭 장치(100)는 수신 문자열의 토큰 위치에 기초하여 변환된 수신 문자열에서 해당 변환 q-그램이 나타나는 위치에 대한 범위를 산출할 수 있다.
예를 들어, 변환 q-그램을 생성하기 위해 변환된 수신 문자열 s의 부분 문자열이 s[i,j]인 경우 LMIN (s[1,i-1], R)+1부터 LMAX(s[1,i-1], R)+1까지로 범위를 산출할 수 있다. 여기서, s[i,j]은 문자열 s에 대해서 i번째부터 j번째의 토큰으로 구성된 부분 문자열을 나타낸다. LMIN (s[1,i-1], R)+1은 부분 문자열 s[1,i-1]의 변환된 문자열 중 최소 길이, LMAX(s[1,i-1], R)+1 은 부분 문자열 s[1,i-1]의 변환된 문자열 중 최대 길이를 나타낸다.
그리고 문자열 매칭 장치(100)는 저장 문자열의 위치마다 q-그램과 동일한 수신 문자열의 변환 q-그램이 존재하지 않으면, 해당 수신 문자열과 저장 문자열의 쌍을 필터링한다(S133)
상세하게는 문자열 매칭 장치(100)는 수신 문자열의 변환된 문자열들이 위치에서 가질 수 있는 모든 q-그램들을 찾은 후, 저장 문자열의 위치마다 저장 문자열의 k번째 q-그램이 수신 문자열의 변환된 문자열의 k번째에서 나타날 수 있는지 확인한다. 이때, 수신 문자열과 저장 문자열 간에 1대1 변환 여부를 확인하게 되므로 자동으로 문자열 쌍이 형성된다.
이처럼, 문자열 매칭 장치(100)는 저장 문자열의 모든 위치에 대해 해당하는 q-그램과 동일한 q-그램이 변환된 q-그램에 존재하는 지 확인하여, 그렇지 않은 경우, 수신 문자열과 저장 문자열의 쌍을 필터링한다.
이때, q-그램과 변환된 q-그램이 동일하면서, q-그램의 위치가 변환된 q-그램의 위치 범위에 포함되는 경우에 해당 문자열 쌍은 변환이 가능하다고 판단한다. 다시 말해, 문자열 매칭 장치(100)는 q-그램과 변환된 q-그램이 동일하더라도 q-그램의 위치가 변환된 q-그램의 위치 범위에 포함되지 않는 경우, 해당 문자열 쌍을 제거한다.
그리고 문자열 매칭 장치(100)는 q-그램 필터링을 수행한 다음 남은 문자열의 쌍을 이용하여 길이 기반의 필터링을 수행할 수 있다.
다음으로 문자열 매칭 장치(100)는 수신 문자열이 변환된 문자열의 최대 길이와 최소 길이를 산출하여 길이 범위 선정한다(S134).
예를 들어, 수신 문자열S의 부분 문자열 s[1,i]에 동의어 규칙(R)들을 적용하여 변환한 문자열들에 대해 길이의 최대값과 최소값을 M[i]와 m[i]로 나타내면, 문자열 매칭 장치(100)는 이 값들은 다음 수학식 1인 재귀식을 이용한 동적 프로그래밍을 사용하여 계산할 수 있다.
Figure 112020135749601-pat00001
여기서, M[|s|]와 m[|s|]는 각각 수신 문자열S의 변환된 문자열들의 최대 길이 LMAX(s,R)와 최소 길이 LMIN(s,R)를 나타내며, r.lhs는 동의어 규칙에 의해 변환된 좌측항(left-hand side, lhs), r.rhs는 동의어 규칙에 의해 변환된 우측항(reft-hand side, rhs)를 나타낸다.
그리고 R(s, i)는 규칙 집합 R의 규칙 중에서 좌측항이 s[1, i]의 접미 문자열인 규칙들의 집합을 의미한다. 예를 들어, s=ABCDE 일 때 규칙은 (BC, X) 이라고 가정하면, 규칙의 좌측항인 BC를 가지는 s의 부분 문자열은 s[1,3]으로 나타낸다. 다시 말해, 규칙(BC, X)는 s의 부분 문자열 ABC의 접미 문자열이며, 규칙 R(s, 3)에 포함된다.
다음으로 문자열 매칭 장치(100)는 선정된 길이 범위에서 저장 문자열의 길이가 벗어나면 해당 수신 문자열과 저장 문자열의 쌍을 필터링한다(S135).
만약 저장 문자열T의 길이가 LMIN(s,R) 보다 작거나 LMAX(s,R) 보다 크다면, 수신 문자열(s)을 변환했을 때 길이가 |t|인 문자열이 만들어질 수 없다는 뜻이므로 수신 문자열(s)을 변환하여 저장 문자열(t)을 만들어낼 수 없다. 그러므로 저장 문자열(t)의 길이가 변환된 문자열로부터 산출된 길이 범위를 벗어나면 (s,t) 쌍은 제1 관계(smatch 관계)를 가질 수 없기 때문에 해당 저장 문자열에 대해서는 필터링한다.
이와 같이, 문자열 매칭 장치(100)는 문자열 쌍에 대해 q-그램 필터링을 전부 수행한 후, 남은 문자열 쌍에 대한 길이 기반 필터링을 수행할 수 있고, q-그램 필터링을 수행함과 동시에 q-그램 필터링된 남은 문자열 쌍에 대해 길이 기반 필터링을 수행할 수 있다.
한편, 도 3에서는 먼저 q-그램 필터링과 길이 기반 필터링을 함께 도시하여 설명하였지만, 반드시 이에 한정하는 것은 아니며, 두 가지 필터링 이외에도 다른 필터링 기법을 적용하거나 둘 중 하나의 필터링 기법을 적용할 수 있다.
도 4에 도시한 바와 같이, 수신 문자열(s) 의 변환된 문자열에서 나타날 수 있는 모든 q-그램들과 그 q-그램들의 위치를 수신 문자열의 q-그램과 q-그램 역색인에 기초하여 생성한다.
도 4은 q=3일 때 수신 문자열 s = “ABCDEFGH”의 4번째 위치에서부터 규칙을 적용하여 변환된 q-그램들을 생성하는 상황을 나타낸다.
이에, 문자열 매칭 장치(100)는 4번째 토큰 D에 규칙 r=D->VW을 적용하여 문자열 VW를 생성한다. VW 의 길이가 2이므로, 3-그램을 만들기 위해서는 추가적인 단어/문자가 필요하다.
이에 도 4의 (a)를 보면, EF를 X로 변환하는 규칙을 추가로 적용하고, 적용한 규칙들의 우측 항을 연결하였을 때, VWX라는 문자열이 생성된다.
이때, 4번째 토큰에 따른 W로 시작하는 3-그램을 생성할 수 없으므로 수신 문자열의 토큰 G부터 적용 가능한 규칙을 하나 더 적용한다. 이에 G를 YZ로 변환하는 규칙을 적용함으로써 규칙 r의 우측 항 토큰 V로 시작하는 q-그램 VWX와 토큰 W로 시작하는 q-그램 WXY를 생성할 수 있다.
다시 말해, 수신 문자열S의 4번째 위치의 토큰에서의 변환된 문자열 V와W에 대한 변환 q-그램을 생성하기 위해 VWXYZ의 변환된 문자열을 생성한다.
예를 들어, 변환 3-그램에 대해 (ABC, 1), (BCV, 2) (CVW, 3), (VWX, 4), (WXY, 5), (XYZ, 6)로 형성되며, 이를 통해 4번째 위치의 변환 q-그램 위치는 V에 대한 3-그램은 (VWX, 4)가 되고, W에 대한 3-그램은 (WXY, 5)가 된다.
반면에, 도 4의 (b)를 보면, 4번째 토큰에 다른 VW 이후에 적용하는 동의어 규칙에서 다른 규칙이 적용되어 E가 UZ로 변환하는 것을 알 수 있다.
이를 통해 변환 3-그램에 대해 (ABC, 1), (BCV, 2) (CVW, 3), (VWU, 4), (WUZ, 5)로 형성되며, 이를 통해 V에 대한 3-그램은 (VWU,4)가 되고, W에 대한 3-그램은 (WUZ,5)가 된다
다만 변환 q-그램이 수신 문자열의 변환된 문자열 내에서 나타날 수 있는 위치는 수신 문자열 에서 규칙 r이 적용된 위치의 앞부분, 즉 수신 문자열의 부분 문자열 ABC를 변환했을 때의 길이에 따라 달라진다. ABC가 최소 1개부터 최대 4개의 토큰을 가지는 문자열로 변환 가능하다고 하면, 4번째 위치의 VW에 대한 변환된 q-그램의 위치는 다음과 같이 나타낼 수 있다.
ABC가 J로 변환되는 경우, JVWXYZ 에 대해 (JVW, 1), (VWX, 2), (WXY, 3), (XYZ, 4)로 3-그램은 (VWZ, 2)가 되고, W에 대한 3-그램은 (WXY, 3)가 된다.
또한, 4개의 토큰으로 변환되는 경우, KLMNVWXYZ에 대해 (KLM, 1), (LMN, 2), (MNV, 3), (NVW, 4), (VWX, 5), (WXY, 6)으로 3-그램은 (VWZ, 5)가 되고, W에 대한 3-그램은 (WXY, 6)가 된다.
변환 문자열 VWUZ에 대해서도 동일하게 적용이 가능하며, 그러므로, q-그램 VWX와 VWU의 위치는 2부터 5사이의 값을 가질 수 있고, WXY와 WUZ는 3부터 6사이의 값을 가진다.
이처럼 문자열 매칭 장치(100)는 수신 문자열(s)의 변환된 문자열에 나타날 수 있는 q-그램들과 q-그램들의 위치 범위를 계산하면, 저장 문자열(t) 의 각 q-그램이 수신 문자열(s)를 변환시켜서 같은 위치에 나타날 수 있는지 확인할 수 있다. 저장 문자열(t)의 q-그램 중 어느 하나라도 수신 문자열(s)를 변환시켜서 생성될 수 없다면 수신 문자열(s)와 저장 문자열(t)는 제1 관계를 가질 수 없으므로 제거한다.
이하에서는 도 5를 이용하여 문자열간의 관계 정의하는 구성에 대해서 상세하게 설명한다.
도 5는 본 발명의 하나의 실시예에 따른 관계를 정의하기 위한 최적 부분 구조에 대한 예시도이다.
도 5에 도시한 바와 같이, 동의어 규칙을 수신 문자열(s)에 적용하였을 때 저장 문자열(t)로 변환될 수 있는 제1 관계를 가지는 경우, 수신 문자열(s)의 끝단에 적용 가능한 규칙들 중에 저장 문자열(t)의 접미 문자열을 우측 항으로 가지는 규칙(r)이 존재한다.
또한, 수신 문자열(s)에서 그 규칙이 적용되는 끝단(문자열)을 제거하고 남은 문자열과 저장 문자열(t)에서 그 규칙이 적용되는 문자열을 제거하고 남은 문자열이 제1 관계를 가진다. 다시 말해, 두 문자열의 제1 관계를 판단하는 문제는 최적 부분구조(optimal substructure)를 가진다.
그러므로 해당 부분 구조를 확인하면, 신속하게 두 문자열의 제1 관계 여부를 확인할 수 있다.
도 5의 (a)와 같이, 수신 문자열 s=ABCDEF 와 저장 문자열 t=UVWXYZ의 문자열 쌍에 대한 관계를 정의하기 위해서 먼저, 문자열 매칭 장치(100)는 수신 문자열 끝단 F에서 적용가능한 접미 규칙 r(F, YZ)이 존재하여 F를 저장 문자열 t의 접미 문자열 YZ로 변환이 가능함을 확인한다.
그러면, 문자열 매칭 장치(100)는 F가 제거된 수신 문자열 s=ABCDE의 와 YZ가 제거된 저장 문자열 t=UVWX가 서로 제1 관계라고 판단할 수 있다.
예를 들어, m[i,j]를 s의 부분 문자열 s[1,i]와 t의 부분 문자열 t[1,j]가 smatch 관계를 가질 경우 TRUE, 그렇지 않으면 FALSE 값을 가지는 이진 변수라고 할 때, m[i,j]는 다음 수학식 2와 같이 재귀적으로 정의된다.
Figure 112020135749601-pat00002
위의 식에서 첫번째 경우는 s와 t 모두 토큰이 0개인 경우로, 두 문자열이 모두 비어있는 것(empty string, null string)으로 적용가능한 규칙은 존재하지 않지만, 항상 동일하기 때문에 제1 관계를 갖는다. 두 번째 경우는 두 문자열 중 하나는 토큰이 0개, 다른 하나는 그렇지 않은 경우로, 제1 관계를 가질 수 없는 경우이다. 세 번째 경우는 앞서 언급한 성질을 이용한 경우로, 조건에 따라 제1 관계를 가질 수 있다. 이러한 세 가지 외에 다른 경우에서는 모두 제1 관계를 가질 수 없다.
그러므로, 문자열 매칭 장치(100)는 수학식 2에 기초하여 조건이 맞는 규칙을 찾고, 이 재귀함수를 이용한 동적 프로그래밍을 사용하면 두 문자열이 제1 관계를 갖는지 확인할 수 있다.
한편, 문자열 매칭 장치(100)는 수신 문자열과 저장 문자열과의 제1 관계를 검증하면, 동일한 방법으로 제2 관계에 해당하는 지 검증할 수 있다.
상세하게는 문자열 매칭 장치(100)는 저장 문자열에 규칙을 적용했을 때 수신 문자열로 변환 가능한지 확인하는 과정을 추가적으로 수행하여 제2 관계를 검증할 수 있다.
이하에서는 도 6을 이용하여 제2 관계(bsmatch)를 가지는 문자열의 쌍을 제공하는 방법에 대해서 상세하게 설명한다.
이하의 도 6의 순서는 앞서 설명한 도 2에서와 같이, 제1 관계를 가지는 문자열의 쌍을 검출한 후 동일한 문자열의 집합간의 제2 관계를 가지는 문자열을 검출하기 위해 수행할 수 있다.
도 6은 본 발명의 다른 실시예에 따른 문자열 매칭 장치의 동작 방법을 나타낸 순서도이다.
도 6에 도시한 바와 같이, 문자열 매칭 장치(100)는 입력받은 수신 문자열 또는 문자열의 집합 S에 속한 수신 문자열에 대한 q-그램 역색인 생성한다(S210).
문자열 매칭 장치(100)는 미리 설정되거나 입력된 q값을 통해 입력받은 문자열에 대한 q-그램 역색인을 생성한다.
이때, 제1 관계를 가지는 문자열의 쌍에 대해서 제2 관계를 가지는 지 확인하고자 할 때, 문자열 매칭 장치(100)는 제1 관계를 가지는 문자열 쌍에 해당하는 수신 문자열에 대해서 q-그램 역색인을 생성할 수 있다.
문자열 매칭 장치(100)는 문자열의 집합 T에 속한 저장 문자열에 대한 변환 q-그램을 생성하고, 변환 q-그램과 수신 문자열의 q-그램 역색인에 기초하여 필터링 수행한다(S220).
문자열 매칭 장치(100)는 문자열의 집합 T에 적용 가능한 동의어 규칙에 따른 변환된 문자열들에 기초하여 변환 q-그램을 생성한다. 그리고, 문자열 매칭 장치(100)는 변환 q-그램과 수신 문자열의 q-그램 역색인에 기초하여 q-그램 필터링 기법을 적용한 후, 길이 기반의 필터링을 적용할 수 있다.
이러한 필터링 구성은 앞서 설명한 도 2의 S130 단계와 도 3의 설명에서 구체적으로 구현되는 방식은 동일하므로 중복되는 설명은 생략한다.
이와 같이, 문자열 매칭 장치(100)는 저장 문자열마다 동의어 규칙에 따른 변환된 문자열들이 각 위치에서 가질 수 있는 모든 q-그램을 찾은 후 문자열의 집합 S에서의 수신 문자열의 각 위치마다 저장 문자열로부터 변환된 문자열이 동일한 위치에 나타날 수 있는지 확인할 수 있다.
그리고 문자열 매칭 장치(100)는 저장 문자열의 변환된 문자열들에 기초하여 가질 수 있는 길이의 범위를 동적 프로그래밍으로 산출하고, 수신 문자열의 길이와 비교하여 산출된 길이의 범위에 수신 문자열의 길이가 속하지 않는다면, 전환이 불가하다 판단하여 제거한다.
이러한 필터링 과정을 반복하면, 전환이 불가한 문자열의 집합 T의 저장 문자열과 수신 문자열의 쌍이 제거되기 때문에, 필터링을 거치면 문자열의 집합 T의 저장 문자열들 중에서도 일부가 남게 된다.
그러므로 남은 저장 문자열과 수신 문자열을 이용하여 각각 1대 1로 다수의 문자열 쌍을 형성할 수 있다.
다음으로 문자열 매칭 장치(100)는 남은 수신 문자열과 저장 문자열의 문자열 쌍마다 동의어 규칙에 의해 전환 가능 여부를 확인하여 관계를 정의한다(S230).
문자열 매칭 장치(100)는 동적 프로그래밍을 사용하여 다항 시간 내에 제2 관계에 해당되지 않는 문자열들을 빠르게 판단할 수 있다.
이때, 도 2의 S240 단계와 도 5에서 설명한 방법으로 최적 부분 구조를 추출하여 신속하게 판단할 수 있다.
그리고 문자열 매칭 장치(100)는 제2 관계를 가지는 문자열 쌍을 선택하여 제공한다(S240).
문자열 매칭 장치(100)는 저장 문자열과 수신 문자열이 제2 관계를 가지는 문자열 쌍만을 추출하여 제공할 수 있다.
이하에서는 도 7을 이용하여 입력받는 문자열의 집합 S에 기초하여 문자열의 집합 T의 q-그램 역색인을 생성하는 과정에 대해서 설명한다.
도 7은 본 발명의 하나의 실시예에 따른 입력받은 문자열 집합에 기초하여 q-그램 역색인을 생성하는 순서도이다.
도 7에 도시한 바와 같이, 문자열 매칭 장치(100)는 문자열의 집합 S에 포함된 수신 문자열에서 동의어 규칙을 적용하여 생성가능한 변환 q-그램을 생성한다(S310).
문자열 매칭 장치(100)는 수신 문자열 집합마다 변환 수신 문자열 에서 나타날 수 있는 q-그램 계산한다(S210).
문자열 매칭 장치(100)는 동의어 규칙을 적용하여 변환 수신 문자열에서 생성 가능한 q-그램을 산출한다.
이때, 수신 문자열 집합의 모든 수신 문자열에 대해 계산하지 않고 미리 설정된 개수의 샘플 문자열에 대해서만 계산함으로써 수행 시간을 단축시킬 수 있다.
그리고 문자열 매칭 장치(100)는 생성한 변환 q-그램마다 수신 문자열의 변환된 문자열에서 나타나는 위치의 범위를 계산한다(S320).
문자열 매칭 장치(100)는 수신 문자열의 토큰 위치에 기초하여 변환된 수신 문자열이 q-그램으로 나타나는 위치에 대한 범위를 산출할 수 있다.
다음으로 문자열 매칭 장치(100)는 저장 문자열 각 위치마다의 q-그램과 변환 q-그램이 일치하는 문자열 집합 S의 문자열 개수를 카운트한다(S330).
다시 말해, 저장 문자열의 위치마다 q-그램과 수신 문자열의 변환 q-그램을 비교하여 저장 문자열의 q-그램이 변환 q-그램과 일치하면 해당 위치에 기초하여 카운트한다.
이때, q-그램이 변환 q-그램과 일치한다는 것은 동일한 q-gram 이면서 q-그램의 저장 문자열의 위치가 변환 q-그램의 위치에 대한 범위 이내에 포함된 경우를 나타낸다.
이와 같이, 저장 문자열의 위치에 기초하여 q-그램과 동일한 변환 q-그램을 가지는 문자열의 집합 S에 속하는 문자열들의 개수를 계산할 수 있다.
다시 말해, 저장 문자열의 첫번째 위치에 대한 3-그램과 동일한 변환 q-그램을 가지는 문자열(문자열의 집합 S에 포함된 문자열)이 2개가 있고, 두번째 위치에 대한 3-그램과 동일한 변환 q-그램을 가지는 문자열(문자열의 집합 S에 포함된 문자열)이 5개가 있다고 계산할 수 있다.
다음으로 문자열 매칭 장치(100)는 저장 문자열의 위치에 기초하여 카운트된 개수가 가장 적은 순서대로 k개를 선택하고, 선택된 카운트를 가지는 위치들을 추출한다(S340).
예를 들어, t=ABCDE 이고, k= 2, q=3인 경우 3-그램은 (ABC, 1), (BCD, 2), (CDE, 3), (DE$,4)로 나타난다. 이에 t 문자열의 위치에 기초하여 생성된 q-그램과 동일한 문자열 집합 S의 카운트된 개수가 5,1,2,3이라고 한다면, 문자열 매칭 장치(100)는 카운트된 개수가 가장 적은 순서대로 2개를 선택하게 되고, 1과 2를 가지는 위치인 2번째(BCD, 2)와 3번째(CDE, 3)를 선택할 수 있다.
여기서, k는 자연수로 추후에 관리자에 의해 용이하게 변경 및 설정 가능하다.
그리고 문자열 매칭 장치(100)는 선택한 k개의 위치에 있는 q-그램들을 저장 문자열의 q-그램 역색인에 삽입한다(S350).
문자열 매칭 장치(100)는 가장 적은 수의 카운트된 k개의 위치에서의 q-그램을 키(key)로 사용하여 저장 문자열의 q-그램 역색인에 삽입한다.
다시 말해, 문자열 매칭 장치(100)는 각 문자열의 모든 위치에서 동의어 규칙에 따라 변환되는 문자열이 동일해야 함으로써, 실질적으로 매칭 성능을 유지시키면서도 저장 문자열과 수신 문자열의 매칭 쌍을 최소화하여 매칭 속도를 향상시킬 수 있다.
이러한 과정을 각 저장 문자열 집합의 각 문자열마다 반복하여 수행된다.
이와 같이, 문자열 매칭 장치(100)는 저장 문자열마다 미리 설정된 N개의 q-그램을 선택하여 q-그램 역색인을 생성함으로써, 저장 문자열마다 매칭되는 수신 문자열의 개수를 최소화하기 위한 문자열의 쌍을 최소화하는 위치 정보를 산출하여 q-그램 역색인을 생성할 수 있다.
한편, 문자열 매칭 장치(100)는 저장 문자열마다 처음 N개의 q-그램을 선택해서 q-그램 역색인을 생성하고, q-그램 기반 필터링을 적용할 때는 처음 N개의 위치만 고려할 수 있다.
또한, 문자열 매칭 장치(100)는 어떤 문자열 s에 대해 변환된 문자열의 개수가 적은 경우에는 q-그램 역색인을 사용하지 않고 변환된 문자열을 모두 만들어 본 후 각각의 변환된 문자열이 T에 존재하는지 확인할 수 있다.
다시 말해, 문자열 매칭 장치(100)는 변환된 문자열의 개수가 미리 설정된 최소 개수 이하인 경우, q-그램 역색인을 생성하지 않고 동의어 규칙을 적용하여 변환 가능한 모든 문자열을 생성할 수 있다.
문자열 매칭 장치(100)는 저장 문자열의 그룹으로부터 해시 테이블과 q-그램 역색인을 모두 만든 후, 수신 문자열 그룹의 각 문자열에 대해 변환된 문자열의 개수가 적은 수신 문자열은 해시 테이블을 사용하여 처리할 수 있다.
예를 들어, 먼저 저장 문자열들에 대해 해시 함수(hash function)를 사용하여 해시 값을 만든 후 이를 key로 사용하여 저장 문자열에 접근하는 해시 테이블을 생성한다. 이에 문자열 매칭 장치(100)는 해시 테이블을 사용하여 수신 문자열의 각 변환된 문자열과 동일한 문자열이 저장 문자열 집합에 존재하는지 상수 시간 안에 확인할 수 있다.
다시 말해, 문자열 매칭 장치(100)는 수신 문자열의 변환된 문자열 중 어느 하나라도 해시 테이블에 존재하면 그 수신 문자열과 해시 테이블에 존재하는 저장 문자열의 쌍은 제1 관계를 가지는 것으로 판단한다. 반면에, 문자열 매칭 장치(100)는 수신 문자열의 모든 변환된 문자열이 해시 테이블에 존재하지 않으면, 그 수신 문자열과 제1 관계를 형성하는 저장 문자열이 존재하지 않다는고 판단한 후, 다음 수신 문자열을 처리할 수 있다.
또한 문자열 매칭 장치(100)는 변환된 문자열의 개수가 많은 수신 문자열은 q-그램 역색인 및 앞서 설명한 필터링 방법들을 사용할 수 있다. 이때 수신 문자열에 대해 변환된 문자열의 개수를 직접 계산하는 것은 시간이 오래 걸리므로, 문자열 매칭 장치(100)는 동적 프로그래밍을 통해 변환된 문자열 개수의 상한(upper bound)을 대신 사용하여 문자열의 그룹 S를 분할할 수 있다.
예를 들어, 문자열 매칭 장치(100)는 수신 문자열의 변환된 문자열의 개수의 상한이 임계치 미만이면, 수신 문자열의 변환 문자열이 해시 테이블에 포함되어 있는지를 확인하여 필터링을 수행할 수 있다. 그리고 문자열 매칭 장치(100)는 수신 문자열의 변환된 문자열의 개수의 상한이 임계치 이상이면, q-그램 역색인 및 앞서 설명한 필터링 방법들을 사용할 수 있다.
다시 말해, 문자열 매칭 장치(100)는 수신 문자열의 변환 문자열 개수가 임계치 미만이면, 해시 테이블을 통해 각 변환된 문자열이 문자열의 집합 T에 포함되는 지 확인할 수 있다. 그리고 문자열 매칭 장치(100)는 수신 문자열의 변환 문자열 개수의 상한이 임계치 이상인 문자열 그룹에 대해 변환 q-그램을 생성하고 필터링을 수행할 수 있다.
여기서, 임계치는 추후에 사용자에 의해 용이하게 변경 및 설정이 가능하다.
이와 같이, 문자열 매칭 장치(100)는 문자열의 그룹 T에 대해서 q-그램 역색인을 생성한 후, 앞서 설명한 도 2의 S120 단계로 연결되어 제1 관계를 갖는 문자열 쌍을 검출할 수 있다.
또한, 문자열 매칭 장치(100)는 동일한 방법으로 문자열의 그룹 T와 문자열 그룹 S에 대한 주체를 변경하여 수행한 경우, 도 6의 S220 단계로 연결되어 제2 관계를 갖는 문자열 쌍을 검출할 수 있다.
도 7은 본 발명의 하나의 실시예에 따른 매칭 방법과 기존 방법들간의 수행 시간을 비교한 그래프이다.
상세하게는 도 7은 각 데이터 셋에 대해 문자열 개수를 변화시키면서 알고리즘들의 수행 시간을 측정한 결과를 나타낸 것으로, 도 7의 (a)는 AOL(American online) 검색 질의 문자열의 집합에서 WordNet에서 수집한 동의어 규칙을 포함하여 (b)는 Swiss-Prot 데이터셋에서 수집한 단백질과 유전자 이름 및 이들에 대한 동의어 규칙을 포함하고, (c) 주소 문자열의 집합과 지명 등과 관련된 동의어 규칙(United States Postal Service, USPS)에 대해서 각 알고리즘들의 수행 시간을 측정한 결과이다.
본 발명에서 제안하는 알고리즘(Join-NV, Join-BK, Join-FK, Join-HB)과 기존에 알려진 알고리즘(Pass-Join, Pkduck-Join, SI-Join)을 비교한 그래프이다.
여기서, 본 발명에서 제안하는 알고리즘은 T의 문자열에 대해 해시 테이블을 만들고 각 수신 문자열의 모든 변형된 문자열을 나열하여 smatch 관계를 확인하는 방법(Join-NV), T의 문자열마다 수신 문자열 쌍의 개수를 최소화하기 위한 N개의 q-그램을 선택하여 q-그램 역색인을 만드는 방법(Join-BK), T의 문자열마다 처음 N개의 q-그램을 선택해서 q-그램 역색인을 만드는 방법(Join-FK) 그리고 문자열의 집합 S를 분할 처리하는 방법(Join-HB)을 각각 수행한다.
제안 알고리즘과 비교 대상이 되는 Pass-Join은 문자열을 세그먼트 집합으로 분할하고 세그먼트에 대해 반전 된 인덱스를 만든 다음 각 문자열에 대해 일부 하위 문자열을 선택하고 선택한 하위 문자열을 사용하여 반전 된 인덱스를 사용하여 후보 쌍을 찾는 알고리즘이다. 그리고 Pkduck-Join 알고리즘은 약어 사전에 기초하여 적용가능한 집합, 파생된 문자열등과의 유사성을 측정하고 후보 쌍을 찾는 알고리즘이며, SI-Join 알고리즘은 동의어와의 효율적인 문자열 유사성 조인을 위해 서명 및 길이 필터링 전략을 결합한 알고리즘이다.
도 7의 (a), (b), 그리고 (c)에 도시한 바와 같이, 다양한 데이터 셋에 대해서 각각의 동의어 규칙을 적용하더라도 사실상 제안하는 알고리즘(Join-BK, Join-FK, Join-HB)이 기존의 알고리즘에 비해 수행 시간이 가장 빠른 것으로 가장 좋은 성능을 보이는 것을 알 수 있다.
상세하게는 (a)에서는 Join-BK 알고리즘이 가장 좋은 성능을 보이고, (b)에서는 Join-HB 알고리즘이, (c)에서는 Join-HB가 가장 좋은 성능을 보이는 것을 알 수 있다.
또한, SI-Join과 Pkduck-Join은 문자열을 토큰의 집합으로 보기 때문에 동일한 토큰의 집합으로 구성되었지만 의미가 다른 두 문자열에 대해 의미가 같다고 판단하는 한계를 가지지만 제안하는 알고리즘들은 동일한 토큰의 집합이더라도 토큰들의 순서까지 동일해야 의미가 같다고 판단한다.
도 9는 본 발명의 하나의 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
도 9를 참고하면, q-그램 역색인 생성부(110), 문자열 필터링부(120), 문자열 관계 판단부 (130) 그리고 문자열 쌍 선택부(140)는 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치(300)에서, 본 발명의 동작을 실행하도록 기술된 명령들(instructions)이 포함된 프로그램을 실행한다.
컴퓨팅 장치(300)의 하드웨어는 적어도 하나의 프로세서(310), 메모리(320), 스토리지(330), 통신 인터페이스(340)를 포함할 수 있고, 버스를 통해 연결될 수 있다. 이외에도 입력 장치 및 출력 장치 등의 하드웨어가 포함될 수 있다. 컴퓨팅 장치(300)는 프로그램을 구동할 수 있는 운영 체제를 비롯한 각종 소프트웨어가 탑재될 수 있다.
프로세서(310)는 컴퓨팅 장치(300)의 동작을 제어하는 장치로서, 프로그램에 포함된 명령들을 처리하는 다양한 형태의 프로세서(310)일 수 있고, 예를 들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 등 일 수 있다. 메모리(320)는 본 발명의 동작을 실행하도록 기술된 명령들이 프로세서(310)에 의해 처리되도록 해당 프로그램을 로드한다. 메모리(320)는 예를 들면, ROM(read only memory), RAM(random access memory) 등 일 수 있다. 스토리지(330)는 본 발명의 동작을 실행하는데 요구되는 각종 데이터, 프로그램 등을 저장한다. 통신 인터페이스(340)는 유/무선 통신 모듈일 수 있다.
이와 같이, 본 발명에 따르면 동의어 규칙에 기초한 서로 다른 문자열에 대해 관계를 정의하고 동일한 의미를 가지는 서로 상이한 문자열들을 빠르게 수집할 수 있다.
본 발명에 따르면 입력받은 문자열에 대해 같은 의미를 가지는 상이한 문자열을 매칭하여 검색에 활용함으로써, 검색 결과의 품질을 향상시키거나 데이터베이스에서 서로 다른 오브젝트를 나타내는 레코드들을 검출 또는 중복된 레코드들을 효과적으로 제거할 수 있다.
이상에서 본 발명의 바람직한 하나의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (14)

  1. 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치가 동의어 규칙에 기초하여 문자열을 매칭하는 방법으로서,
    문자열의 집합(T)에 속하는 저장 문자열들에 대해서 q-그램 역색인을 생성하는 단계,
    하나 이상의 수신 문자열에서 상기 동의어 규칙에 의해 변환된 문자열의 변환 q-그램을 생성하고, 상기 변환 q-그램과 상기 q-그램 역색인에 기초하여 전환 가능한 상기 수신 문자열과 저장 문자열의 쌍이 남도록 필터링하는 단계,
    남은 문자열의 쌍에 대해 상기 수신 문자열과 상기 저장 문자열 각각의 끝단에 적용 가능한 접미 규칙을 검색하고, 상기 접미 규칙이 적용되는 부분을 순차적으로 제거하여, 상기 저장 문자열로 전환 가능여부를 확인하는 단계, 그리고
    전환이 가능한 상기 수신 문자열과 상기 저장 문자열을 문자열 쌍으로 선택하여 제공하는 단계,
    를 포함하는 문자열 매칭 방법.
  2. 제1항에서,
    상기 확인하는 단계는,
    상기 수신 문자열과 상기 저장 문자열에서 상기 동의어 규칙을 공유하는 부분 구조를 추출하여 상기 수신 문자열에서 상기 저장 문자열로 전환 여부를 확인하는 문자열 매칭 방법.
  3. 제1항에서,
    상기 확인하는 단계는,
    상기 수신 문자열의 끝단에 적용가능한 상기 동의어 규칙들 중에서 상기 저장 문자열에 적용된 상기 접미 규칙을 검색하는 단계,
    상기 접미 규칙을 확인하는 경우, 상기 수신 문자열과 상기 저장 문자열에서 상기 접미 규칙이 적용되는 부분을 제거하는 단계, 그리고
    남은 수신 문자열에 동의어 규칙을 적용하면 남은 저장 문자열로 변환이 가능하다고 판단하는 단계
    를 포함하는 문자열 매칭 방법.
  4. 제1항에서,
    상기 필터링하는 단계는,
    상기 수신 문자열의 위치를 기준으로 해당 위치에 적용가능한 동의어 규칙에 의해 변환된 문자열에 대한 변환 q-그램을 생성하는 문자열 매칭 방법.
  5. 제4항에서,
    상기 필터링하는 단계는,
    상기 변환 q-그램마다 상기 변환된 문자열에서 위치할 수 있는 위치 범위를 계산하는 단계,
    변환 q-그램들 중에서 상기 저장 문자열의 위치마다의 q-그램과 일치하면서 일치한 상기 q-그램이 상기 변환 q-그램의 위치 범위에 포함되는 지 확인하는 단계, 그리고
    일치하지 않거나, 위치 범위에 포함되지 않으면, 해당 수신 문자열과 저장 문자열의 쌍을 필터링하는 단계,
    를 포함하는 문자열 매칭 방법.
  6. 제5항에서,
    상기 필터링하는 단계는,
    필터링 후 남은 문자열 쌍에 대해 상기 수신 문자열에 대한 변환된 문자열들이 가질 수 있는 길이의 범위를 동적 프로그래밍으로 산출하고, 상기 길이 범위에 저장 문자열의 길이가 속하지 않는 경우에 해당 수신 문자열과 저장 문자열의 쌍을 제거하는 문자열 매칭 방법.
  7. 제1항에서,
    상기 q-그램 역색인을 생성하는 단계는,
    상기 수신 문자열들을 포함하는 문자열의 집합(S)에 기초하여 상기 동의어 규칙을 적용하여 상기 수신 문자열의 위치마다 변환 q-그램을 생성하는 단계,
    상기 변환 q-그램마다 상기 변환된 문자열에서 위치할 수 있는 위치 범위를 계산하는 단계,
    상기 저장 문자열의 각 위치에서의 q-그램과 변환 q-그램이 일치하는 상기 문자열의 집합(S)의 문자열 개수를 카운트하는 단계, 그리고
    상기 문자열 카운트 개수가 가장 적은 순서대로 미리 설정된 k개를 선택하고, 선택된 카운트 수를 가지는 위치의 q-그램을 선택하여 저장 문자열의 q-그램 역색인에 삽입하는 단계, (k는 자연수)
    를 포함하는 문자열 매칭 방법.
  8. 제1항에서,
    상기 q-그램 역색인을 생성하는 단계는,
    상기 저장 문자열에서 문자열의 순서에 따른 q-그램 중에서 미리 설정된 N개를 선택하여, 선택된 N개의 q-그램에 대한 q-그램 역색인을 생성하고, (N은 자연수)
    상기 필터링하는 단계는,
    상기 수신 문자열에서 상기 N개의 q-그램에 대한 위치까지 변환 q-그램을 생성하고, 상기 q-그램 역색인과 상기 변환 q-그램에 기초하여 필터링을 수행하는 문자열 매칭 방법.
  9. 제1항에서,
    상기 q-그램 역색인을 생성하는 단계는,
    상기 저장 문자열에 대한 q-그램 역색인과 해시 테이블을 생성하고,
    상기 필터링하는 단계는,
    상기 수신 문자열의 개수가 임계치 미만이면, 상기 수신 문자열의 변환 문자열이 상기 해시 테이블에 포함되어 있는지를 확인하여 필터링을 수행하는 문자열 매칭 방법.
  10. 컴퓨터로 판독 가능한 저장 매체에 저장되고, 프로세서에 의해 실행되는 프로그램으로서,
    문자열의 집합(T)에 속하는 저장 문자열들에 대해서 q-그램 역색인을 생성하는 동작,
    하나 이상의 수신 문자열에서 동의어 규칙에 의해 변환된 문자열의 변환 q-그램을 생성하고, 상기 변환 q-그램과 상기 q-그램 역색인에 기초하여 전환 가능한 상기 수신 문자열과 저장 문자열의 쌍이 남도록 필터링하는 동작,
    남은 문자열의 쌍에 대해 상기 수신 문자열과 상기 저장 문자열 각각의 끝단에 적용 가능한 접미 규칙을 검색하고, 상기 접미 규칙이 적용되는 부분을 순차적으로 제거하여 상기 저장 문자열로 전환 가능여부를 확인하는 동작 그리고
    전환이 가능한 상기 수신 문자열과 상기 저장 문자열을 문자열 쌍으로 선택하여 제공하는 동작,
    을 실행하는 명령어들을 포함하는 프로그램.
  11. 제10항에서,
    상기 확인하는 동작은,
    상기 수신 문자열과 상기 저장 문자열에서 상기 동의어 규칙을 공유하는 부분 구조를 추출하여 상기 동의어 규칙에 의해 상기 수신 문자열에서 상기 저장 문자열로 전환 여부를 확인하는 프로그램.
  12. 제10항에서
    상기 필터링하는 동작은,
    상기 수신 문자열의 위치를 기준으로 해당 위치에 적용가능한 동의어 규칙에 의해 변환된 문자열에 대한 변환 q-그램을 생성하고,
    변환 q-그램들 중에서 상기 저장 문자열의 위치마다의 q-그램과 일치하지 않거나, 일치한 상기 q-그램이 상기 변환 q-그램의 위치 범위에 포함되지 않으면, 해당 수신 문자열과 저장 문자열의 쌍을 필터링하는 프로그램.
  13. 제10항에서
    제공된 문자열 쌍에서 상기 수신 문자열에 대한 q-그램 역색인 생성하는 동작,
    상기 동의어 규칙을 적용하여 상기 저장 문자열의 위치마다 제2 변환 q-그램을 생성하고 제2 변환 q-그램과 수신 문자열의 q-그램 역색인에 기초하여 일치하지 않는 상기 수신 문자열과 저장 문자열의 쌍을 필터링하는 동작,
    남은 문자열의 쌍에 대해 상기 저장 문자열에 동의어 규칙을 적용하여 상기 수신 문자열로 전환 가능여부를 확인하는 동작 그리고
    전환이 가능한 상기 저장 문자열과 상기 수신 문자열을 문자열 쌍으로 선택하여 제공하는 동작,
    을 실행하는 명령어들을 더 포함하는 프로그램.
  14. 제10항에서,
    상기 q-그램 역색인을 생성하는 동작은,
    수신 문자열들을 포함하는 문자열의 집합(S)에서 상기 동의어 규칙을 적용하여 상기 수신 문자열의 위치마다 변환 q-그램을 생성하고, 상기 변환 q-그램마다 상기 변환된 문자열에서 위치할 수 있는 위치 범위를 계산하는 동작,
    저장된 문자열의 집합(T)에 포함된 저장 문자열의 각 위치마다의 q-그램과 상기 변환 q-그램이 일치하는 문자열 집합 S에서의 문자열 개수를 카운트하는 동작, 그리고
    상기 저장 문자열의 위치마다 카운트된 개수가 가장 적은 순서대로 미리 설정된 k개를 선택하고, 선택된 카운트 수를 가지는 위치들의 q-그램들을 상기 저장 문자열의 q-그램 역색인에 삽입하는 동작, (k는 자연수)
    을 실행하는 명령어들을 포함하는 프로그램.
KR1020200174847A 2020-12-14 2020-12-14 동의어 규칙을 이용한 문자열 매칭 방법 및 이를 구현하는 장치 및 프로그램 KR102496551B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200174847A KR102496551B1 (ko) 2020-12-14 2020-12-14 동의어 규칙을 이용한 문자열 매칭 방법 및 이를 구현하는 장치 및 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200174847A KR102496551B1 (ko) 2020-12-14 2020-12-14 동의어 규칙을 이용한 문자열 매칭 방법 및 이를 구현하는 장치 및 프로그램

Publications (2)

Publication Number Publication Date
KR20220084901A KR20220084901A (ko) 2022-06-21
KR102496551B1 true KR102496551B1 (ko) 2023-02-06

Family

ID=82221139

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200174847A KR102496551B1 (ko) 2020-12-14 2020-12-14 동의어 규칙을 이용한 문자열 매칭 방법 및 이를 구현하는 장치 및 프로그램

Country Status (1)

Country Link
KR (1) KR102496551B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101452638B1 (ko) 2013-06-21 2014-10-22 서울대학교산학협력단 유사 문자열 검색 방법 및 장치
KR101662957B1 (ko) 2015-07-30 2016-10-05 인하대학교 산학협력단 해싱기반의 순위다중패턴매칭 방법
JP2017538198A (ja) 2014-11-20 2017-12-21 オラクル・インターナショナル・コーポレイション 文脈検索文字列同義語の自動生成
JP2019192195A (ja) * 2018-04-24 2019-10-31 株式会社Nttドコモ 文章マッチングシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101452638B1 (ko) 2013-06-21 2014-10-22 서울대학교산학협력단 유사 문자열 검색 방법 및 장치
JP2017538198A (ja) 2014-11-20 2017-12-21 オラクル・インターナショナル・コーポレイション 文脈検索文字列同義語の自動生成
KR101662957B1 (ko) 2015-07-30 2016-10-05 인하대학교 산학협력단 해싱기반의 순위다중패턴매칭 방법
JP2019192195A (ja) * 2018-04-24 2019-10-31 株式会社Nttドコモ 文章マッチングシステム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Chuan Xiao 외 2명, "Ed-Join: An Efficient Algorithm for Similarity Joins With Edit Distance Constraints", Proceedings of the VLDB EndowmentVolume1 Issue1, 2008.08., pp.933-944. 1부.*
임마누 외 1명, "유사도 검색을 위한 데이터 재배열을 이용한 공간 효율적인 역 색인 기법", 정보과학회논문지 제42권 제10호, 2019.10., pp.1247-1253. 1부.*

Also Published As

Publication number Publication date
KR20220084901A (ko) 2022-06-21

Similar Documents

Publication Publication Date Title
JP5240475B2 (ja) 近似パターン合致の方法および装置
US7433869B2 (en) Method and apparatus for document clustering and document sketching
Janssens et al. A hybrid mapping of information science
US9460196B2 (en) Conditional string search
Shahana et al. Survey on feature subset selection for high dimensional data
WO2007008263A2 (en) Self-organized concept search and data storage method
CN111444330A (zh) 提取短文本关键词的方法、装置、设备及存储介质
JP6870421B2 (ja) 判定プログラム、判定装置および判定方法
JP2006018829A (ja) 自動分類生成
JP2014519123A (ja) インデックスドキュメントの発見
CN110083756B (zh) 识别知识图数据结构中的冗余节点
US20030158725A1 (en) Method and apparatus for identifying words with common stems
US10565188B2 (en) System and method for performing a pattern matching search
EP1575172A2 (en) Compression of logs of language data
KR102496551B1 (ko) 동의어 규칙을 이용한 문자열 매칭 방법 및 이를 구현하는 장치 및 프로그램
JP5439235B2 (ja) 文書分類方法、文書分類装置、およびプログラム
CN116383644A (zh) 一种数据增强方法、装置、设备及存储介质
CN115759065A (zh) 一种基于消解原理公共子句消除的sat预处理方法
CN113609247A (zh) 一种基于改进Simhash算法的大数据文本去重技术
JP2004046438A (ja) テキスト検索方法及び装置及びテキスト検索プログラム及びテキスト検索プログラムを格納した記憶媒体
KR100659370B1 (ko) 시소러스 매칭에 의한 문서 db 형성 방법 및 정보검색방법
US20040054677A1 (en) Method for processing text in a computer and a computer
JP2006285419A (ja) 情報処理装置および方法、並びにプログラム
KR102117281B1 (ko) 빈도 테이블을 이용한 챗봇 발언 생성 방법
JP2010176626A (ja) 文書クラスタリングプログラム及び文書クラスタリング方法

Legal Events

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