KR101793578B1 - 효율적으로 질의를 처리하는 방법 및 장치 - Google Patents

효율적으로 질의를 처리하는 방법 및 장치 Download PDF

Info

Publication number
KR101793578B1
KR101793578B1 KR1020110032898A KR20110032898A KR101793578B1 KR 101793578 B1 KR101793578 B1 KR 101793578B1 KR 1020110032898 A KR1020110032898 A KR 1020110032898A KR 20110032898 A KR20110032898 A KR 20110032898A KR 101793578 B1 KR101793578 B1 KR 101793578B1
Authority
KR
South Korea
Prior art keywords
subset
candidate set
database
valid
document
Prior art date
Application number
KR1020110032898A
Other languages
English (en)
Other versions
KR20120115005A (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 KR1020110032898A priority Critical patent/KR101793578B1/ko
Priority to US13/273,569 priority patent/US9110973B2/en
Priority to JP2012031022A priority patent/JP5980520B2/ja
Publication of KR20120115005A publication Critical patent/KR20120115005A/ko
Application granted granted Critical
Publication of KR101793578B1 publication Critical patent/KR101793578B1/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

Landscapes

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

Abstract

효율적인 질의 처리 방법 및 그 장치가 개시된다. 질의 처리 방법은, 엔-그램을 이용하여 질의 문자열로부터 길이가 다른 복수 개의 부분 문자열로 구성된 유효 문자열 셋을 생성하고, 접근 비용에 기초하여 유효 문자열 셋의 서브셋 중 어느 하나의 서브셋을 후보셋으로 결정하며, 후보 셋을 이용하여 상기 질의 문자열이 존재하는 문서를 검색한다.

Description

효율적으로 질의를 처리하는 방법 및 장치{Method and apparatus for processing query efficiently}
효율적으로 질의 문자열을 처리하는 방법 및 그 장치에 관한 것이다.
텍스트 문서의 검색은 자연 언어(natural language)로 표현된 정보의 검색, 유전자열 분석(genetic sequence processing) 등의 다양한 분야에 널리 사용되고 있다. 단백질과 DNA의 열(sequence)에서 특별한 알파벳 열(예를 들어, DNA의 A, C, G, T)은 텍스트 문서로 간주된다. 이와 같은 텍스트 문서의 검색을 위한 대표적인 확률 모델로 엔-그램 모델(n-gram model)을 들 수 있다.
본 개시는 길이가 다른 복수 개의 부분 문자열을 사용하여 검색 성능을 향상시키는 질의 처리 방법 및 그 장치를 제공한다.
또한, 본 개시는 복수 개의 부분 문자열 셋의 서브셋을 효율적으로 결정하여 질의 처리 성능을 향상시키는 질의 처리 방법 및 그 장치를 제공한다.
일 유형에 따르는 질의 처리 방법은, 질의 문자열로부터 길이가 같거나 다른 복수 개의 부분 문자열들로 구성된 유효 문자열 셋을 생성하는 단계; 다수의 문서들의 정보가 저장된 데이터베이스에 대한 상기 유효 문자열 셋의 서브셋들의 접근 비용에 기초하여, 상기 서브셋들 중 어느 하나를 후보셋으로 결정하는 단계; 및 상기 후보셋을 이용하여 상기 데이터베이스에 저장된 정보로부터 상기 질의 문자열이 존재하는 문서를 검색하는 단계를 포함한다.
그리고, 일 유형에 따르는 질의 처리 장치는, 질의 문자열이 입력되고 상기 질의 문자열이 존재하는 문서가 출력되는 사용자 인터페이스; 다수의 문서들에 대한 정보가 저장된 데이터베이스; 및 상기 질의 문자열로부터 길이가 다른 복수 개의 부분 문자열들로 구성된 유효 문자열 셋을 생성하고, 상기 데이터베이스에 대한 상기 유효 문자열 셋의 서브셋들의 접근 비용에 기초하여 상기 서브셋들 중 어느 하나를 후보 셋으로 결정하며, 상기 후보셋을 이용하여 상기 데이터베이스에 저장된 정보로부터 상기 질의 문자열이 존재하는 문서를 검색하는 프로세서;를 포함한다.
상술한 질의 처리 방법 및 그 장치는 길이가 고정되어 있지 않은 복수 개의 부분 문자열을 사용하기 때문에 검색 성능을 향상시킬 수 있다.
뿐만 아니라, 기존의 역색인 데이터베이스의 구조를 변경시키지 않고, 후보셋에 포함되는 부분 문자열 또는 후보셋의 선정 방법을 개선하였기 때문에 기존의 역색인 데이터베이스를 그대로 활용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 질의 처리 장치의 블록도,
도 2는 본 발명의 일 실시예에 따른 질의 문자열에 따른 문서를 검색하는 방법을 설명하는 흐름도,
도 3은 본 발명의 일 실시예에 따른 문자열 셋 생성부의 세부 블럭도,
도 4는 본 발명의 일 실시예에 따른 트리 구조로 구현된 색인어의 구조를 도시한 도면,
도 5는 본 발명의 일 실시예에 따른 유효 문자열을 생성하는 과정을 설명하는 흐름도,
도 6은 본 발명의 일 실시예에 따른 후보셋 결정부의 세부 블록도,
도 7은 본 발명의 제1 실시예에 따른 후보셋을 결정하는 방법을 설명하는 흐름도,
도 8은 본 발명의 일 실시예에 따른 제1 실시예를 통해 후보 셋을 결정하는 방법을 설명하기 위한 도면이다.
도 9는 제2 실시예에 따른 후보셋을 결정하는 방법을 설명하는 흐름도, 그리고,
도 10은 본 발명의 일 실시예에 따른 제2 실시예를 통해 후보 셋을 결정하는 방법을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 질의 처리 장치의 블록도이다. 도 1을 참조하면, 질의 처리 장치(100)는 사용자 인터페이스(105), 프로세서(135) 및 스토리지(165)로 구성된다. 질의 처리 장치는 웹페이지 등으로 표시되는 검색 엔진을 구비하고, 질의 문자열에 대한 검색 결과를 출력할 수 있는 PC(Personal Computer), 휴대 단말기 등일 수도 있고, 사용자 단말과 인터넷등의 네트워크로 연결되어 있는 별도의 서버일 수도 있다. 따라서, 도 1에 도시된 질의 처리 장치(100)는 다른 PC, 휴대 단말기, 서버 등과 통신하기 위한 통신 모듈 등 다른 일반적인 구성 요소들을 더 포함할 수 있다.
사용자 인터페이스(105)는 사용자로부터 질의를 입력받고, 이 질의에 따른 문서의 검색 결과를 출력하는 장치이다. 여기서, 사용자 인터페이스는 사용자로부터 질의를 입력받기 위한 키보드, 마우스 등과 같은 입력 장치와 사용자에게 문서의 검색 결과를 표시하기 위한 출력 장치를 포함할 수 있으며, 웹페이지 등과 같은 GUI(Graphic User Interface)로 구현될 수도 있다. 여기에서, 질의는 어떤 문자열을 포함하고 있는 문서를 검색하라는 사용자의 요청을 의미한다. 이와 같은 질의에 포함되어 있는 문자열을 이하에서는 간단히 "질의 문자열"로 호칭하기로 한다.
스토리지(165)에는 임의의 문자열을 포함하고 있는 다수의 문서들의 정보가 저장되어 있다. 예를 들어, 스토리지(165)에는 문서 검색에 이용되는 부분 문자열인 색인어과 색인어가 포함된 문서의 식별 정보가 매칭된 역색인 데이터베이스(inverted index database)(150)가 저장되어 있을 수 있다. 이 역색인 데이터베이스(150)는 문서에 포함된 문자를 엔-그램으로 분리하고, 엔-그램으로 분리된 각 부분 문자열을 해당 문서에 대한 정보와 매칭됨으로써 생성될 수 있다. 또한, 문서의 식별 정보에 대응하는 문서가 저장된 문서 데이터베이스(160)를 더 포함할 수 있다. 한편, 문서 데이터베이스(160)는 질의 처리 장치에 포함될 수도 있지만, 질의 처리 장치와 통신 가능한 외부 장치 또는 서버에 포함될 수도 있다.
프로세서(135)는 질의 문자열이 입력되면 질의 문자열을 엔-그램으로 분리하고, 역색인 데이터베이스(150)에서 질의 문자열에 포함된 부분 문자열과 매칭된 문서의 식별 정보를 독출한다. 또한, 프로세서(135)는 검색된 문서의 식별 정보를 갖는 문서를 문서 데이터베이스(160)에서 독출한다. 프로세서(135)는 그 기능에 따라 문자열 셋 생성부(110), 후보셋 결정부(120) 및 문서 검색부(130)를 포함할 수 있다. 각 구성요소의 기능은 하기 문서의 검색 방법에서 보다 구체적으로 설명한다.
도 2는 본 발명의 일 실시예에 따른 프로세서가 질의 문자열에 따른 문서를 검색하는 방법을 개략적으로 설명하는 흐름도이다 도 2를 참조하면, 210 단계에서 입력부로부터 질의 문자열을 수신하면, 220 단계에서 문자열 셋 생성부(110)는 질의 문자열로부터 문서 검색을 위해 이용할 수 있는 부분 문자열 즉, 유효 문자열로 구성된 유효 문자열 셋을 생성한다. 유효 문자열은 길이가 다른 복수 개의 부분 문자열들일 수 있으며, 유효 문자열은 다른 유효 문자열에 포함되지 않는다.
그리고, 230 단계에서 후보셋 결정부(120)는 유효 문자열 셋의 서브셋들 중 어느 하나의 서브셋을 문서를 검색하기 위한 셋(이하 '문자열 셋'이라고 한다)로 결정하며, 240 단계에서 검색부(130)는 상기한 후보 셋을 이용하여 상기 질의 문자열이 존재하는 문서를 검색한다. 다음은 프로세서의 각 구성요소에 대한 기능 및 질의 처리 방법은 이하 보다 구체적으로서 설명한다.
도 3은 본 발명의 일 실시예에 따른 문자열 셋 생성부(110)의 세부 블럭도이다. 도 3에 도시된 바와 같이, 문자열 셋 생성부(110)는 질의 문자열을 길이가 다른 복수 개의 엔-그램으로 분리하는 엔-그램 분리부(310) 및 엔-그램 중 색인어 데이터베이스(140)에 저장된 색인어에 포함되는 엔-그램을 유효 문자열로 선택하는 문자열 선택부(330)를 포함한다.
색인어 데이터베이스(140)는 색인어에 대한 정보가 저장된 데이터베이스로서 색인어가 될 수 있는 문자열의 길이 범위도 저장되어 있을 수 있다. 또한, 색인어 데이터베이스(140)는 트리 구조로 구현될 수 있다. 예를 들어, 각 노드에 단위 문자가 배치되고, 길이 범위가 설정될 수 있다. 따라서, 부모 노드에서 자식 노드로 순차적으로 연결된 길이 범위 내의 문자가 색인어가 된다. 색인어 데이터베이스에 저장된 색인어는 역색인 데이터베이스(150)에 저장된 색인어와 일치할 수 있다. 설명의 편의를 도모하기 위해 색인어 데이터베이스를 별도로 설명하였으나, 문자열 선택부(330)는 엔-그램 중 역색인 데이터베이스(150)의 색인어에 포함된 엔-그램을 유효 문자열로 선택할 수 있음도 물론이다.
도 4는 본 발명의 일 실시예에 따른 트리 구조로 구현된 색인어의 구조를 도시한 도면이다. 도 4를 참조하면, 트리 구조의 각 노드에는 단위 문자가 배치되고, 색인어의 최소 길이는 3이고, 최대 길이는 5임을 알 수 있다. 그리고, 's', 'u' 및
'b'에 해당하는 노드는 순차적으로 연결되어 있기 때문에 'sub'은 색인어가 된다. 그러나,'s', 't', 'r' 및 'c'에 해당하는 노드는 순차적으로 연결되어 있지 않기 때문에 'stric'은 색인어가 될 수 없다.
도 5는 본 발명의 일 실시예에 따른 유효 문자열을 생성하는 과정을 설명하는 흐름도이다.
도 5에 도시된 바와 같이, 질의 문자열이 입력되면, 도 5의 510 단계에서 엔-그램 분리부(310)는 질의 문자열을 길이가 다른 복수 개의 엔-그램으로 분리할 수 있다. 엔-그램의 길이는 기설정된 길이 범위내에 포함될 수 있다. 예를 들어,, 질의 문자열이 m개의 문자로 구성되어 있고, 길이 범위가 i에서 k이면(이때, 2≤i<k≤m이다.), 엔-그램 분리부(310)는 질의 문자열을 길이가 i인 엔-그램, 길이가 i+1인 엔그램,,, 길이가 k-1인 엔그램, 길이가 k인 엔-그램으로 분리한다.
예를 들어, 'substring'이란 질의 문자열이 입력되면, 색인어 데이터베이스(140)에 저장된 길이 범위가 3 내지 5이므로, 엔-그램 분리부(310)는 질의 문자열을 길이가 3 이상 5이하인 제1 부분 문자열로 분리한다. 즉, 제1 부분 문자열은 'sub', 'ubs', 'bst', 'str', 'tri', 'rin', 'ing', 'subs', 'ubst', 'bstr', 'stri', 'trin', 'ring', 'subst', 'ubstr', 'bstri', 'strin', 'tring'이다.
그리고, 530 단계에서, 문자열 선택부(330)는 엔-그램 중 색인어 데이터베이스(140)에 저장된 색인어에 포함되는 엔-그램을 선택할 수 있다. 즉, 엔-그램 중 'sub', 'ubs', 'bst', 'str', 'stri', 'tri', 'trin', 'tring', 'rin', 'ring', 'ing'이 색인어에 포함되므로, 문자열 선택부(330)는 상기한 엔-그램들을 선택할 수 있다.
더 나아가, 550 단계에서 문자열 선택부(330)는 색인어에 포함된 엔-그램 중 다른 엔-그램에 포함되지 않는 엔-그램을 유효 문자열로 결정할 수 있다. 그리하여, 문자열 선택부(330)는 'sub', 'ubs', 'bst', 'strin', 'tring'을 유효 문자열로 결정할 수 있다.
상기와 같이, 길이가 다른 복수 개의 부분 문자열들을 이용하여 문서를 검색하면, 길이가 동일한 부분 문자열을 이용하여 문서를 검색하는 것보다 질의 처리 속도를 향상시킬 수 있다. 뿐만 아니라, 길이가 다른 부분 문자열이 서로 중복되지 않으면, 중복된 부분 문자열을 이용한 검색보다 질의 처리 시간을 단축시킬 수 있다.
도 6은 본 발명의 일 실시예에 따른 후보셋 결정부의 세부 블록도이다. 도 6를 참조하면, 후보셋 결정부(120)는 유효 문자열에 대한 셋(이하 '유효 문자열 셋'이라고 한다)의 서브셋을 서브셋 선택부(610) 및 역색인 데이터베이스(150)에 대한 서브셋의 접근 비용에 기초하여, 유효 문자열 셋의 서브셋 중에서 어느 하나의 서브셋을 후보 셋으로 예상하는 후보셋 예상부(630)를 포함할 수 있다.
본 실시예에서 역색인 데이터베이스(150)는 색인 트리와 포스팅 리스트로 구성된다. 색인 트리는 부분 문자열 형태인 색인어가 리프 노드에 존재하는 B+ 트리 구조이고, 포스팅 리스트는 특정 색인어를 포함하는 문서의 식별 정보와 색인어가 문서에 나타난 위치 정보들의 리스트이다. 그리고, 포스팅 리스트를 구성하는 각 요소인 문서 식별 정보와 위치 정보들을 통칭하여 포스팅이라고 한다.
먼저 후보셋 예상부(630)의 접근 비용을 산출하는 방법에 대해 설명한다. 후보셋 예상부(630)는 하기와 같은 수학식 1을 이용하여 접근 비용을 산출할 수 있다.
Figure 112011025945146-pat00001
여기서, Q는 유효 문자열 셋의 특정 서브셋, gi는 Q를 구성하는 i번째 부분 문자열, pi는 색인 트리에서 gi의 위치 정보, h-1은 색인 트리의 높이, li는 gi에 대한 포스팅 리스트를 포함하는 색인 구조에서의 리프 노드의 개수, Li는 gi의 포스팅 리스트이다.
또한, 수학식 1에 적용되는 함수 Fb는 하기 수학식 2와 같다.
Figure 112011025945146-pat00002
여기서,
Figure 112011025945146-pat00003
은 문서 데이터베이스에서 문서의 개수, B는 역색인 데이터베이스를 읽을 때 사용되는 버퍼의 크기이다. 그리고,
Figure 112011025945146-pat00004
이다.
상기와 같은 접근 비용은 서브셋에 포함된 유효 문자열 각각에 대하여 역색인 데이터베이스에서 유효 문자열의 포스팅 리스트를 접근하여 독출하는데 소요되는 비용(또는 데이터양)의 합(이하 Qa 값이라고 한다.)과 문서 데이터베이스에서 서브셋에 포함된 유효 문자열의 포스팅 리스트에 공통으로 포함된 문서의 식별 정보에 대응하는 문서를 접근하여 독출하는데 소요되는 비용(이하 Qb 값이라고 한다)으로 구분될 수 있다.
접근 비용 중 Qa 값은 유효 문자열과 상관없이 고정 비용이기 때문에 항상 증가한다. 반면에, 접근 비용 중제 Qb 값은 서브셋의 종류에 따라서 증가할 수도 있고 감소할 수도 있다.
한편, 후보셋 결정부(120)는 다양한 방법으로 후보 셋을 결정할 수 있다.
예를 들어, 후보셋 결정부(120)는 유효 문자열 셋의 서브셋 중 접근 비용이 최소인 서브셋을 후보 셋으로 결정할 수 있다.
도 7은 본 발명의 제1 실시예에 따른 후보셋을 결정하는 방법을 설명하는 흐름도이다.
도 7를 참조하면, 710 단계에서 서브셋 선택부(610)는 유효 문자열 셋의 서브셋을 트리 구조로 배열한다. 트리 구조로 배열함에 있어서, 서브셋 선택부(610)는 자식 노드에 해당하는 서브셋이 부모 노드의 서브셋을 포함할 수 있도록 한다.
그리고, 720 단계에서, 서브셋 선택부(610)는 트리 구조로 배열된 서브셋에서 깊이 우선 탐색(depth first search) 방법으로 선택할 서브셋이 있는지 여부를 판단한다. 우선 탐색 방법이라 함은 루트 노드에서 출발하여 루트 노드에서 가능한 멀리있는 하위 노드까지 탐색하고, 자식 노드를 갖지 않는 노드가 있으면, 백트랙킹(backtracking)하여 다른 노드를 탐색한다.
깊이 우선 탐색으로 선택할 서브셋이 있으면, 730 단계에서, 서브셋 선택부(610)는 상기한 서브셋을 선택한다. 서브셋 선택부(610)가 유효 문자열이 하나인 서브셋을 먼저 선택하고, 상기한 유효 문자열을 포함하는 다른 서브셋을 선택하는 방법으로 선택할 서브셋이 있는지 여부를 판단한다. 그리고, 후보셋 예상부(630)는 선택된 서브셋의 접근 비용 중 Qa 값을 산출한다. 접근 비용의 산출 방법은 앞에서 설명하였으므로 구체적인 설명은 생략한다.
Qa 값이 기준값 이상이면, 후보셋 예상부(630)는 선택된 서브셋 뿐만 아니라 선택된 서브셋에 대응하는 노드의 하위 노드에 포함된 서브셋의 접근 비용도 산출하지 않고, 720 내지 750 단계를 수행한다. 여기서 기준값이라 함은 이미 선택되어 산출된 서브셋의 접근 비용 중 최소값을 의미한다. 그리하여, 기선택된 서브셋이 없는 경우, 현재 선택된 서브셋의 접근 비용이 기준값이 되고 현재 선택된 서브셋이 예상 후보셋이 된다. 즉, 깊이 우선 탐색 방법에 의해 처음으로 서브셋이 선택되면, 후보셋 예상부(630)는, 740 내지 770 단계를 수행하지 않고, 처음으로 선택된 서브셋의 접근 비용을 기준값으로 하고 처음으로 선택된 서브셋을 예상 후보셋으로 한다.
한편, 접근 비용 중 Qa 값은 항상 증가하기 때문에 예상 후보셋의 접근 비용보다 현재 선택된 서브셋의 Qa 값이 크다면, 현재 선택된 서브셋의 접근 비용은 예상 후보셋의 접근 비용보다 항상 크다. 그리고, 현재 선택된 서브셋을 포함하는 모든 서브셋의 접근 비용도 예상 후보셋의 접근 비용보다 크다. 결국, 현재 선택된 서브셋뿐만 아니라, 상기한 서브셋을 포함하는 서브셋에 대한 접근 비용은 산출하지 않아도 무방하여 상기한 서브셋을 포함하는 서브셋에 대한 탐색을 종료하고 서브셋 선택부(610)는 백트랙킹하여 다른 문자열을 포함하는 서브셋이 있는지 여부를 판단한다.
그리고, Qa 값이 예상 후보셋의 접근 비용 미만이면, 760 단계에서 후보셋 예상부(630)는 선택된 서브셋의 접근 비용을 산출하고, 접근 비용과 예성 후보셋의 접근 비용을 비교한다.
그리고, 선택된 서브셋의 접근 비용이 예상 후보 셋의 접근 비용이하이면, 780 단계에서, 후보셋 예상부(630)는 예상 후보셋을 선택된 서브셋으로 업데이트한다.
상기와 같이, 후보셋 결정부(120)는 깊이 우선 탐색 방법으로 서브셋을 선택하여 접근 비용에 기초하여 후보셋을 예상한다. 그리고, 깊이 우선 탐색 방법으로 선택할 노드가 없으면, 790 단계에서, 후보셋 결정부(120)는 예상 후보셋 즉, 최소의 접근 비용을 갖는 서브셋을 후보 셋으로 결정한다.
도 10은 본 발명의 일 실시예에 따른 제1 실시예를 통해 후보 셋을 결정하는 방법을 설명하기 위한 도면이다.'삼성종합기술원'이라는 질의 문자열이 입력되면 문자열 셋 생성부(110)는 색인어 데이터베이스(140)를 기초로 '삼성', '성종', '종합기술' 및 '술원'이라는 유효 문자열을 생성할 수 있다. 그리고, 문자열 셋 생성부(110)는 상기한 유효 문자열 셋을 후보셋 결정부(120)로 인가한다.
그리고, 서브셋 선택부(610)는 도 8에 도시된 바와 같은 트리 구조로 유효 문자열 셋의 서브셋을 배열할 수 있다. 트리 구조의 각 노드에는 유효 문자열 셋의 서브셋이 배치된다.
후보셋 예상부(630)는 상위 노드에서 하위 노드 순으로 각 노드에 대한 접근 비용을 산출한다. 비용 산출 방법은 앞서 설명하였으므로, 구체적인 설명은 생략한다.
도 8에서, readCost(Q')는 서브셋(Q')에 대한 접근 비용 중 Qa 값을 의미하고, Cost(Q')는 서브셋(Q')에 대한 접근 비용을 의미한다. 후보셋 예상부(630)는 {삼성}, {삼성, 성종}, {삼성, 성종, 종합기술}, {삼성, 성종, 종합기술, 술원}, {삼성, 성종, 술원}, {삼성, 종합기술}, … 이와 같은 순서대로 접근 비용을 산출한다.
한편, 후보셋 결정부(120)는 {삼성, 성종}의 접근 비용 중 Qa 값이 25이고 예상 후보셋의 접근 비용 즉, 최소 접근 비용이 24이면 {삼성, 성종}에 임의의 유효 문자열의 추가한 서브셋도 최소 접근 비용보다 큰 접근 비용을 갖는다. 따라서, 후보셋 결정부(120)는 {삼성, 성종}에 해당하는 노드 및 하위 노드에 대하여 더 이상 접근 비용을 산출하지 않는다.
한편, 후보셋 결정부(120)는 유효 문자열 셋의 서브셋 중 유효 문자열이 하나 추가될 때의 접근 비용보다 작은 접근 비용을 갖는 서브셋을 후보 셋을 결정할 수도 있다.
도 9는 제2 실시예에 따른 후보셋을 결정하는 방법을 설명하는 흐름도이다. 도 9의 910 단계에서 서브셋 선택부(610)는 서브셋 중 유효 문자열의 개수가 1인 서브셋들을 선택하고, 선택된 서브셋들을 후보셋 예상부(630)에 인가한다.
920 단계에서 후보셋 예상부(630)는 선택된 서브셋 각각에 대해 접근 비용을 산출하고, 930 단계에서 최소의 접근 비용을 갖는 서브셋을 후보셋으로 예상하고, 상기한 최소의 접근 비용을 기준값으로 한다.
한편, 940 단계에서 서브셋 선택부(610)는 서브셋 중 예상된 후보셋, 즉, 예상 후보셋에 유효 문자열이 하나 추가되는 서브셋들이 존재하면, 950 단계에서, 서브셋 선택부(610)는 예상 후보셋에 유효 문자열이 하나 추가된 서브셋들을 선택하여 선택된 서브셋들을 후보셋 예상부(630)에 인가한다.
960 단계에서 후보셋 예상부(630)는 선택된 서브셋 각각에 대해 접근 비용을 산출하고, 산출된 접근 비용의 최소값과 기준값을 비교한다.
접근 비용의 최소값이 기준값 이하이면, 980 단계에서 후보셋 예상부(630)는 예상 후보셋을 최소의 접근 비용을 갖는 서브셋으로 엡데이트한다. 그리고, S940 단계 내지 S970 단계를 반복적으로 수행한다.
반면에, 접근 비용의 최소값이 기준값을 초과하거나 예상 후보셋에 유효 문자열이 하나 추가된 서브셋이 존재하지 않으면, 990 단계에서 후보셋 예상부(630)는 예상 후보셋을 후보셋으로 최종적으로 결정한다.
본 실시예에서 유효 문자열 개수가 1개인 서브셋들부터 선택하여 최소 질의 처리 비용을 갖는 서브셋을 후보셋으로 결정한다고 하였으나, 이에 한정되지 않는다. 유효 문자열 개수가 많은 경우, 최초 예상 후보셋은 유효 문자열 개수가 2 또는 그 이상의 서브셋들부터 선택하여 최소 질의 처리 비용을 갖는 서브셋을 후보셋으로 결정할 수도 있다.
도 10은 본 발명의 일 실시예에 따른 제2 실시예를 통해 후보 셋을 결정하는 방법을 설명하기 위한 도면이다.
질의 문자열 “삼성종합기술원”에 대해 유효 문자열 셋이 {삼성, 성종, 종합기술, 술원}이라고 주어졌다면, 우선 서브셋 선택부(610)는 유효 문자열을 하나 갖는 서브셋 즉 {삼성}, {성종}, {종합기술}, {술원}을 선택하여 후보셋 예상부(630)에 인가한다. 그리고, 후보셋 예상부(630)는 각 서브셋에 대한 접근 비용을 산출한다. 서브셋에 대한 접근 비용이 각각 10, 20, 25, 30이라고 하면, 후보셋 예상부(630)는 {삼성}을 후보셋으로 예상한다. 그리고 나서, 서브셋 선택부(610)는 예상 후보셋인 {삼성}에 유효 문자열을 하나 추가한 서브셋 즉, {삼성, 성종}, {삼성, 종합기술}, {삼성, 술원}을 선택하여 후보셋 예상부(630)에 인가한다. 후보셋 예상부(630)는 선택된 서브셋 각각에 대해 접근 비용을 산출한다. 서브셋에 대한 비용이 각각 12, 14, 8이면, {삼성, 술원}인 서브셋의 접근 비용이 예상 후보셋의 접근 비용보다 작으므로, 후보셋 예상부(630)는 예상 후보셋을 {삼성, 술원}로 업데이트한다.
다시 서브셋 선택부(610)는 {삼성, 술원}의 서브셋에 다른 문자열이 하나 추가된 서브셋인 {삼성, 술원, 성종}, {삼성, 술원, 종합기술}을 선택하여 후보셋 예상부(630)로 인가한다. 후보셋 예상부(630)는 선택된 서브셋 각각에 대해 접근 비용을 산출한다. {삼성, 술원, 성종}, {삼성, 술원, 종합기술}의 접근 비용이 각각 14, 15라고 한다면, 예상 후보셋의 접근 비용보다 크므로, 후보셋 예상부(630)는 {삼성, 술원}을 후보셋으로 최종적으로 결정하고, 후보셋 결정을 종료한다.
후보셋 결정부(120)가 제2 실시예에 따른 후보셋 결정방법보다 제1 실시예에 따른 후보셋 결정 방법으로 후보셋을 결정하면, 후보셋을 결정하는데 소요되는 시간을 단축할 수 있다. 그러나, 제2 실시예에 따른 후보셋 결정 방법은 제1 실시예에 따른 후보셋 결정 방법보다 정확도가 다소 저하될 수 있다. 따라서, 후보셋 결정부(120)는 제1 실시예에 따른 후보셋 결정 방법 및 제2 실시예에 따른 후보셋 결정 방법을 선택적으로 사용할 수 있다.
예를 들어, 유효 문자열의 개수가 기준 개수이하이면 후보셋 결정부(120)는 제1 실시예의 후보셋 결정 방법으로 후보 셋을 결정할 수 있고, 유효 문자열 개수가 기준 개수를 초과하면 후보셋 결정부(120)는 제2 실시예의 후보셋 결정 방법으로 후보 셋을 결정할 수 있다.
마지막으로, 역색인 데이터베이스(150)에서 후보 셋의 유효 문자열 모두와 매칭되어 있는 문서의 식별 정보를 결정한 후, 문서 검색부(130)는 문서 데이터베이스(160)에서 상기한 문서의 식별 정보와 매칭되어 있는 문서를 검색함으로써 질의가 존재하는 문서를 검색한다.
프로세서는 각 기능에 따라 별도의 구성요소가 분리하였으나, 이는 설명의 편의를 도모하기 위함일 뿐 하나의 칩 또는 그 이상의 칩으로 구현될 수 있음은 물론이다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magneticmedia), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명은 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 질의 처리 장치 105: 인터페이스
110: 문자열 셋 생성부 120: 후보셋 결정부
130: 문서 검색부 135: 프로세서
150: 역색인 데이터베이스 160: 문서 데이터베이스
165: 스토리지

Claims (22)

  1. 프로세서에 의해, 질의 문자열로부터 길이가 다른 복수 개의 부분 문자열들로 구성된 유효 문자열 셋을 생성하는 단계;
    다수의 문서들의 정보가 저장된 데이터베이스에 대한 상기 유효 문자열 셋의 서브셋들의 접근 비용에 기초하여, 상기 프로세서에 의해, 상기 서브셋들 중 어느 하나를 후보셋으로 결정하는 단계; 및
    상기 프로세서의 의해, 상기 후보셋을 이용하여 상기 데이터베이스에 저장된 정보로부터 상기 질의 문자열이 존재하는 문서를 검색하는 단계를 포함하고,
    상기 유효 문자열 셋을 생성하는 단계는,
    상기 질의 문자열을 길이가 다른 복수 개의 엔-그램으로 분리하고,
    상기 복수 개의 엔-그램 중 상기 데이터베이스의 색인어에 포함되는 엔-그램을 선택하고,
    상기 선택된 엔-그램 중 다른 엔-그램에 포함되지 않는 엔-그램의 셋을 상기 유효 문자열 셋으로 결정하는 질의 처리 방법.
  2. 제 1 항에 있어서,
    상기 후보셋은
    접근 비용이 기준 값 이하를 갖는 서브셋인 질의 처리 방법.
  3. 제 2항에 있어서,
    상기 기준값은
    상기 유효 문자열 셋의 서브셋에 대한 접근 비용의 산출시, 기산출된 접근 비용 중 최소값인 질의 처리 방법.
  4. 제 1 항에 있어서,
    상기 접근 비용은,
    상기 데이터베이스에서 상기 서브셋에 포함된 부분 문자열 각각의 포스팅 리스트를 접근하여 독출하는데 소요되는 비용의 합과 상기 데이터베이스에서 상기 서브셋에 포함된 유효 문자열의 포스팅 리스트에 공통으로 포함된 문서의 식별 정보를 접근하여 독출하는데 소요되는 비용 중 적어도 하나인 질의 처리 방법.
  5. 제 1 항에 있어서,
    상기 유효 문자열 셋의 부분 문자열들 중 적어도 두 개의 부분 문자열의 길이는 서로 다른 질의 처리 방법.
  6. 제 1항에 있어서,
    상기 유효 문자열 셋의 부분 문자열은 상기 유효 문자열 셋의 다른 부분 문자열에 포함되지 않는 질의 처리 방법.
  7. 삭제
  8. 제 1항에 있어서,
    상기 후보셋은,
    상기 유효 문자열 셋의 서브셋들 중 상기 접근 비용이 최소인 서브셋으로 결정되는 질의 처리 방법.
  9. 제 1항에 있어서,
    상기 후보셋은,
    상기 유효 문자열 셋의 서브셋들 중 부분 문자열이 추가될 때의 접근 비용보다 접근 비용이 적은 서브셋으로 결정되는 질의 처리 방법.
  10. 제 1항에 있어서,
    상기 후보셋으로 결정하는 단계는,
    상기 유효 문자열 셋의 서브셋을 트리 구조로 정렬하고,
    깊이 우선 탐색 방법으로 상기 트리 구조에서의 서브셋를 선택하고,
    상기 선택된 서브셋의 접근 비용을 산출하고,
    최소의 접근 비용을 갖는 서브셋을 후보셋으로 결정하는 것을 포함하는 질의 처리 방법.
  11. 제 1항에 있어서,
    상기 후보셋으로 결정하는 단계는
    상기 유효 문자열 셋의 서브셋 중 부분 문자열의 개수가 동일한 제1 서브셋들을 선택하고,
    상기 제1 서브셋들 각각에 대한 접근 비용을 산출하며,
    최소의 접근 비용을 갖는 서브셋을 후보셋으로 예상하고,
    상기 유효 문자열 셋의 서브셋 중 상기 예상된 후보셋에 부분 문자열이 추가된 제2 서브셋을 선택하며,
    상기 제2 서브셋들 각각에 대한 접근 비용이 상기 예상된 후보셋의 접근 비용보다 크면, 상기 예상된 후보셋을 후보셋으로 결정하는 것을 포함하는 질의 처리 방법.
  12. 제 1항에 있어서,
    상기 데이터베이스는,
    색인 트리 및 포스팅 리스트를 포함하는 역색인 데이터베이스; 및
    식별 정보를 갖는 다수의 문서들이 저장된 문서 데이터베이스;를 포함하는 질의 처리 방법.
  13. 제 12항에 있어서,
    상기 문서를 결정하는 단계는,
    상기 역색인 데이터베이스에서 상기 후보셋의 부분 문자열 모두와 매칭되어 있는 문서의 식별 정보를 검색하고,
    상기 문서데이터베이스에서 상기 문서의 식별 정보를 갖는 문서를 검색하는 것을 포함하는 질의 처리 방법.
  14. 제 1항 내지 제 6항, 제 8항 내지 제 13항 중 어느 한 항의 방법을 상기 프로세서로 하여금 수행하도록 하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
  15. 질의 문자열이 입력되고 상기 질의 문자열이 존재하는 문서가 출력되는 사용자 인터페이스;
    다수의 문서들에 대한 정보가 저장된 데이터베이스; 및
    상기 질의 문자열로부터 길이가 다른 복수 개의 부분 문자열들로 구성된 유효 문자열 셋을 생성하고, 상기 데이터베이스에 대한 상기 유효 문자열 셋의 서브셋들의 접근 비용에 기초하여 상기 서브셋들 중 어느 하나를 후보 셋으로 결정하며, 상기 후보셋을 이용하여 상기 데이터베이스에 저장된 정보로부터 상기 질의 문자열이 존재하는 문서를 검색하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 질의 문자열을 길이가 다른 복수 개의 엔-그램으로 분리하고, 상기 복수 개의 엔-그램 중 상기 데이터베이스의 색인어에 포함되는 엔-그램을 선택하며, 상기 선택된 엔-그램 중 다른 엔-그램에 포함되지 않는 엔-그램의 셋을 상기 유효 문자열 셋으로 결정함으로써 상기 유효 문자열 셋을 생성하는 질의 처리 장치.
  16. 제 15항에 있어서,
    상기 접근 비용은,
    상기 데이터베이스에서 상기 서브셋에 포함된 부분 문자열 각각의 포스팅 리스트를 접근하여 독출하는데 소요되는 비용의 합과 상기 데이터베이스에서 상기 서브셋에 포함된 유효 문자열의 포스팅 리스트에 공통으로 포함된 문서의 식별 정보를 접근하여 독출하는데 소요되는 비용 중 적어도 하나인 질의 처리 장치.
  17. 제 15항에 있어서,
    상기 유효 문자열 셋의 부분 문자열들 중 적어도 두 개의 부분 문자열의 길이는 서로 다른 질의 처리 장치.
  18. 제 15항에 있어서,
    상기 유효 문자열 셋의 부분 문자열은 상기 유효 문자열 셋의 다른 부분 문자열에 포함되지 않는 질의 처리 장치.
  19. 제 15항에 있어서,
    상기 후보셋은,
    상기 유효 문자열 셋의 서브셋들 중 상기 접근 비용이 최소인 서브셋으로 결정되는 질의 처리 장치.
  20. 제 15항에 있어서,
    상기 후보셋은,
    상기 유효 문자열 셋의 서브셋들 중 부분 문자열이 추가될 때의 접근 비용보다 접근 비용이 적은 서브셋으로 결정되는 질의 처리 장치.
  21. 제 15항에 있어서,
    상기 데이터베이스는,
    색인 트리 및 포스팅 리스트를 포함하는 역색인 데이터베이스; 및
    식별 정보를 갖는 다수의 문서들이 저장된 문서 데이터베이스;를 포함하는 질의 처리 장치.
  22. 제 21항에 있어서,
    상기 프로세서는,
    상기 역색인 데이터베이스에서 상기 후보셋의 부분 문자열 모두와 매칭되어 있는 상기 문서의 식별 정보를 검색하고,
    상기 문서데이터베이스에서 상기 문서의 식별 정보를 갖는 문서를 검색하는 것을 포함하는 질의 처리 장치.
KR1020110032898A 2011-04-08 2011-04-08 효율적으로 질의를 처리하는 방법 및 장치 KR101793578B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020110032898A KR101793578B1 (ko) 2011-04-08 2011-04-08 효율적으로 질의를 처리하는 방법 및 장치
US13/273,569 US9110973B2 (en) 2011-04-08 2011-10-14 Method and apparatus for processing a query
JP2012031022A JP5980520B2 (ja) 2011-04-08 2012-02-15 効率的にクエリを処理する方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110032898A KR101793578B1 (ko) 2011-04-08 2011-04-08 효율적으로 질의를 처리하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20120115005A KR20120115005A (ko) 2012-10-17
KR101793578B1 true KR101793578B1 (ko) 2017-11-20

Family

ID=46966910

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110032898A KR101793578B1 (ko) 2011-04-08 2011-04-08 효율적으로 질의를 처리하는 방법 및 장치

Country Status (3)

Country Link
US (1) US9110973B2 (ko)
JP (1) JP5980520B2 (ko)
KR (1) KR101793578B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101341507B1 (ko) * 2012-04-13 2013-12-13 연세대학교 산학협력단 수정된 b+트리 노드 검색 방법 및 장치
CN103793440B (zh) * 2012-11-02 2018-03-27 阿里巴巴集团控股有限公司 信息显示方法和装置
US9208254B2 (en) * 2012-12-10 2015-12-08 Microsoft Technology Licensing, Llc Query and index over documents
CN107436911A (zh) * 2017-05-24 2017-12-05 阿里巴巴集团控股有限公司 模糊查询方法、装置及查询系统
US11645273B2 (en) 2021-05-28 2023-05-09 Ocient Holdings LLC Query execution utilizing probabilistic indexing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100125594A1 (en) * 2008-11-14 2010-05-20 The Regents Of The University Of California Method and Apparatus for Improving Performance of Approximate String Queries Using Variable Length High-Quality Grams

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3459053B2 (ja) * 1995-01-12 2003-10-20 株式会社日立製作所 文書検索方法および装置
KR19990084950A (ko) 1998-05-12 1999-12-06 이계철 역화일을 이용한 데이터 부분검색 장치 및 그 방법
KR100725664B1 (ko) 2005-08-26 2007-06-08 한국과학기술원 2단계 n-gram 역색인 구조 및 그 구성 방법과 질의처리 방법 및 그 색인 도출 방법
JP2007286742A (ja) 2006-04-13 2007-11-01 Ricoh Co Ltd 文書検索装置
JP4439496B2 (ja) 2006-07-18 2010-03-24 株式会社東芝 検索処理装置及びプログラム
JP2009104669A (ja) 2009-02-12 2009-05-14 Toshiba Corp 文書検索方法、システム及びプログラム
KR101615164B1 (ko) * 2009-03-20 2016-04-26 삼성전자주식회사 엔-그램 기반의 질의 처리 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100125594A1 (en) * 2008-11-14 2010-05-20 The Regents Of The University Of California Method and Apparatus for Improving Performance of Approximate String Queries Using Variable Length High-Quality Grams

Also Published As

Publication number Publication date
KR20120115005A (ko) 2012-10-17
US20120259862A1 (en) 2012-10-11
JP5980520B2 (ja) 2016-08-31
JP2012221489A (ja) 2012-11-12
US9110973B2 (en) 2015-08-18

Similar Documents

Publication Publication Date Title
CN106462399B (zh) 代码推荐
CN102768681B (zh) 一种用于搜索输入的推荐系统及方法
CN107102981B (zh) 词向量生成方法和装置
JP5054593B2 (ja) 情報検索装置及びプログラム
US9411875B2 (en) Tag refinement strategies for social tagging systems
KR101126406B1 (ko) 유사어 결정 방법 및 시스템
WO2012095696A2 (en) Text segmentation with multiple granularity levels
KR101793578B1 (ko) 효율적으로 질의를 처리하는 방법 및 장치
JP2015506515A (ja) タグをドキュメントに自動的に追加するための方法、装置およびコンピュータ記憶媒体
KR101098832B1 (ko) 개인화 검색 장치 및 방법
KR101828995B1 (ko) 키워드 클러스터링 방법 및 장치
CN110750704B (zh) 一种查询自动补全的方法和装置
CN102831224B (zh) 一种数据索引库的建立方法、搜索建议生成方法和装置
JP2010097461A (ja) 文書検索装置、文書検索方法および文書検索プログラム
CN104199954A (zh) 一种用于搜索输入的推荐系统及方法
JP4237813B2 (ja) 構造化文書管理システム
CN104268176A (zh) 一种基于搜索关键词的推荐方法及系统
KR101615164B1 (ko) 엔-그램 기반의 질의 처리 장치 및 그 방법
US20200387815A1 (en) Building training data and similarity relations for semantic space
JP2008152641A (ja) 類似例文検索装置
KR101113787B1 (ko) 텍스트 색인 장치 및 방법
CN105630837A (zh) 一种媒体记录搜索方法和装置
KR100906809B1 (ko) 키워드 검색 방법
KR101452638B1 (ko) 유사 문자열 검색 방법 및 장치
KR101349969B1 (ko) 추천 질의어 제공 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal