KR20210065750A - 검색 장치 및 방법 - Google Patents

검색 장치 및 방법 Download PDF

Info

Publication number
KR20210065750A
KR20210065750A KR1020190154846A KR20190154846A KR20210065750A KR 20210065750 A KR20210065750 A KR 20210065750A KR 1020190154846 A KR1020190154846 A KR 1020190154846A KR 20190154846 A KR20190154846 A KR 20190154846A KR 20210065750 A KR20210065750 A KR 20210065750A
Authority
KR
South Korea
Prior art keywords
token
tokens
search term
search
length
Prior art date
Application number
KR1020190154846A
Other languages
English (en)
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 KR1020190154846A priority Critical patent/KR20210065750A/ko
Publication of KR20210065750A publication Critical patent/KR20210065750A/ko

Links

Images

Classifications

    • 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/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems

Landscapes

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

Abstract

검색 장치 및 방법이 개시된다. 일 실시예에 따른 검색 장치는, 문서에 포함된 문자열을 각각 길이가 최대 토큰 길이 이하인 복수의 토큰 단위로 토큰화하는 토큰화부; 상기 토큰화를 통해 생성된 복수의 토큰을 포함하는 토큰 집합을 저장하는 저장부; 및 사용자로부터 검색어를 수신하고, 상기 최대 토큰 길이 및 상기 검색어의 길이에 기초하여 상기 검색어를 선택적으로 토큰화하고, 상기 토큰 집합에 포함된 복수의 토큰 중 상기 검색어에 매칭되는 토큰 또는 상기 검색어에 대한 토큰화를 통해 생성된 상기 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 검색하여 상기 문서에 상기 검색어가 포함되어 있는지 여부를 판단하는 검색부를 포함한다.

Description

검색 장치 및 방법{APPARATUS AND METHOD FOR SEARCH}
개시되는 실시예들은 검색어를 이용한 검색 기술과 관련된다.
종래 n-그램(n-gram)을 이용한 검색 기술은 문서를 길이가 n 이내인 복수의 토큰으로 토큰화하여 저장하고, 저장된 토큰화에 대한 검색을 수행하므로, 길이가 n 이내인 검색어에 대해서만 검색을 지원한다. 따라서, 검색 정확도를 향상시키기 위해서는 n의 크기를 늘려야 하나, n의 크기가 커질수록 요구되는 저장 공간의 크기가 늘어나게 되며, n의 크기가 작은 경우 검색 정확도가 떨어진다는 문제점이 존재한다.
한국 등록특허공보 제10-1174057호 (2012.08.08. 공고)
개시되는 실시예들은 검색 장치 및 방법을 제공하기 위한 것이다.
일 실시예에 따른 검색 장치는, 문서에 포함된 문자열을 각각 길이가 최대 토큰 길이 이하인 복수의 토큰 단위로 토큰화하는 토큰화부; 상기 토큰화를 통해 생성된 복수의 토큰을 포함하는 토큰 집합을 저장하는 저장부; 및 사용자로부터 검색어를 수신하고, 상기 최대 토큰 길이 및 상기 검색어의 길이에 기초하여 상기 검색어를 선택적으로 토큰화하고, 상기 토큰 집합에 포함된 복수의 토큰 중 상기 검색어에 매칭되는 토큰 또는 상기 검색어에 대한 토큰화를 통해 생성된 상기 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 검색하여 상기 문서에 상기 검색어가 포함되어 있는지 여부를 판단하는 검색부를 포함한다.
상기 검색부는, 상기 검색어의 길이가 상기 최대 토큰 길이를 초과하는 경우, 상기 검색어를 길이가 상기 최대 토큰 길이와 동일한 토큰 단위로 토큰화하여 상기 검색어에 대한 복수의 토큰을 생성할 수 있다.
상기 검색부는, 상기 토큰 집합이 상기 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 모두 포함하고, 상기 매칭되는 각 토큰 사이의 거리가 최대 거리 이내인 경우, 상기 문서에 검색어가 포함되어 있는 것으로 판단할 수 있다.
상기 최대 거리는, 상기 검색어에 대한 복수의 토큰의 개수 및 상기 토큰 집합에 포함된 복수의 토큰 중 상기 최대 토큰 길이를 가진 인접 토큰 사이의 거리에 기초하여 결정될 수 있다.
상기 최대 거리는, 아래의 수학식 1
[수학식 1]
Dmax=(n-1)*m
(이때, Dmax는 상기 최대 거리, n은 상기 검색어에 대한 복수의 토큰의 개수, m은 상기 최대 토큰 길이를 가진 인접 토큰 사이의 거리)에 기초하여 결정될 수 있다.
상기 매칭되는 각 토큰 사이의 거리는, 상기 매칭되는 각 토큰에 할당된 인덱스 값에 기초하여 결정될 수 있다.
상기 토큰화부는, 상기 토큰 집합에 포함된 복수의 토큰 중 동일한 길이를 가진 인접 토큰 사이의 거리가 일정한 값을 가지도록 상기 토큰 집합에 포함된 복수의 토큰 각각에 상기 인덱스 값을 할당할 수 있다.
상기 검색부는, 상기 검색어의 길이가 상기 최대 토큰 길이 이내인 경우, 상기 토큰 집합에 포함된 복수의 토큰 중 상기 검색어에 매칭되는 토큰을 검색하고, 상기 토큰 집합이 상기 검색어에 매칭되는 토큰을 포함하는 경우, 상기 문서에 상기 검색어가 포함되어 있는 것으로 판단할 수 있다.
일 실시예에 따른 검색 방법은, 문서에 포함된 문자열을 각각 길이가 최대 토큰 길이 이하인 복수의 토큰 단위로 토큰화하는 단계; 상기 토큰화를 통해 생성된 복수의 토큰을 포함하는 토큰 집합을 저장하는 단계; 사용자로부터 검색어를 수신하는 단계; 상기 최대 토큰 길이 및 상기 검색어의 길이에 기초하여 상기 검색어를 선택적으로 토큰화하는 단계; 및 상기 토큰 집합에 포함된 복수의 토큰 중 상기 검색어에 매칭되는 토큰 또는 상기 검색어에 대한 토큰화를 통해 생성된 상기 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 검색하여 상기 문서에 상기 검색어가 포함되어 있는지 여부를 판단하는 단계를 포함한다.
상기 선택적으로 토큰화하는 단계는, 상기 검색어의 길이가 상기 최대 토큰 길이를 초과하는 경우, 상기 검색어를 길이가 상기 최대 토큰 길이와 동일한 토큰 단위로 토큰화하여 상기 검색어에 대한 복수의 토큰을 생성할 수 있다.
상기 판단하는 단계는, 상기 토큰 집합이 상기 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 모두 포함하고, 상기 매칭되는 각 토큰 사이의 거리가 최대 거리 이내인 경우, 상기 문서에 검색어가 포함되어 있는 것으로 판단할 수 있다.
상기 최대 거리는, 상기 검색어에 대한 복수의 토큰의 개수 및 상기 토큰 집합에 포함된 복수의 토큰 중 상기 최대 토큰 길이를 가진 인접 토큰 사이의 거리에 기초하여 결정될 수 있다.
상기 최대 거리는, 아래의 수학식 1
[수학식 1]
Dmax=(n-1)*m
(이때, Dmax는 상기 최대 거리, n은 상기 검색어에 대한 복수의 토큰의 개수, m은 상기 최대 토큰 길이를 가진 인접 토큰 사이의 거리)에 기초하여 결정될 수 있다.
상기 매칭되는 각 토큰 사이의 거리는, 상기 매칭되는 각 토큰에 할당된 인덱스 값에 기초하여 결정될 수 있다.
상기 토큰화하는 단계는, 상기 토큰 집합에 포함된 복수의 토큰 중 동일한 길이를 가진 인접 토큰 사이의 거리가 일정한 값을 가지도록 상기 토큰 집합에 포함된 복수의 토큰 각각에 상기 인덱스 값을 할당하는 단계를 포함할 수 있다.
상기 판단하는 단계는, 상기 검색어의 길이가 상기 최대 토큰 길이 이내인 경우, 상기 토큰 집합에 포함된 복수의 토큰 중 상기 검색어에 매칭되는 토큰을 검색하고, 상기 토큰 집합이 상기 검색어에 매칭되는 토큰을 포함하는 경우, 상기 문서에 상기 검색어가 포함되어 있는 것으로 판단할 수 있다.
본 발명의 실시예들에 따르면, 검색 대상인 문서를 길이가 최대 토큰 길이 이내의 복수의 토큰으로 토큰화하여 저장하고, 저장된 복수의 토큰에 대한 검색을 통해 문서에 대한 검색을 수행하되, 검색어의 길이와 무관하게 검색이 가능하도록 함으로써, 검색 정확도를 유지하면서 토큰 저장을 위한 저장 공간의 크기를 최소화할 수 있다.
도 1은 일 실시예에 따른 검색 장치의 구성도
도 2는 일 실시예에 따른 토큰 집합의 일 예를 도시한 예시도
도 3은 일 실시예에 따른 검색 방법의 순서도
도 4는 일 실시예에 따른 검색어 길이에 따른 상세 검색 과정을 나타낸 순서도
도 5는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 일 실시예에 따른 검색 장치의 구성도이다.
도 1을 참조하면, 일 실시예에 따른 검색 장치(100)는 토큰화부(110), 저장부(120)검색부(130) 및 검색부(130)를 포함한다.
일 실시예에서, 검색 장치(100)는 사용자로부터 수신된 검색어를 이용하여 하나 이상의 문서에 대한 검색을 수행하고, 검색 결과를 사용자에게 제공하는 검색 서비스를 제공하기 위한 장치이다.
토큰화부(110)는 문서에 포함된 문자열을 각각 길이가 최대 토큰 길이 이하인 복수의 토큰 단위로 토큰화(tokenization)하고, 토큰화를 통해 생성된 복수의 토큰을 포함하는 토큰 집합을 저장부(120)에 저장한다.
이때, 일 실시예에 따르면, 문서는 이메일, 웹페이지, 전자 문서 등과 같이 컴퓨팅 장치에 의해 전자적인 형태로 작성되어 송수신되거나 저장되며 하나 이상의 문자열을 포함하는 다양한 형태의 문서를 의미한다.
또한, 일 실시예에 따르면, 토큰 길이는 토큰에 포함된 글자 수를 의미할 수 있으며, 최대 토큰 길이는 검색 장치(100)의 운영자 내지는 사용자에 의해 사전 설정되거나, 검색 장치(100)를 이용하는 하나 이상의 사용자의 검색어 패턴에 기초하여 결정될 수 있다.
예를 들어, 검색 장치(100)를 통해 검색을 수행한 하나 이상의 사용자의 검색어가 대부분 5글자 미만인 경우, 최대 토큰 길이는 5글자로 결정될 수 있다. 그러나, 최대 토큰 길이를 결정하는 방식 및 기준은 반드시 특정한 실시예로 한정되는 것은 아니며, 저장 공간의 크기, 검색 속도, 검색 정확도 등을 고려하여 다양하게 변경 가능하다.
한편, 일 실시예에 따르면, 토큰화부(110)는 최대 토큰 길이가 n인 경우, 문서에 포함된 문자열을 길이가 1인 토큰 단위 내지 길이가 n인 토큰 단위 각각으로 반복 토큰화하여 복수의 토큰을 생성할 수 있다.
도 2는 일 실시예에 따른 토큰 집합의 일 예를 도시한 예시도이다.
구체적으로, 도 2는 최대 토큰 길이가 3일 때, "안녕하십니까"라는 문자열을 좌측부터 우측으로 한 글자씩 이동하면서 길이가 1인 토큰 단위 내지 길이가 3인 토큰 단위 각각으로 토큰화하여 생성된 복수의 토큰을 포함하는 토큰 집합(200)의 일 예를 도시하고 있다.
보다 구체적으로, 토큰 집합(200)은 길이가 1인 토큰 단위로 토큰화하여 생성된 복수의 토큰(즉, "안", "녕", "하", "십", "니" 및 "까"), 길이가 2인 토큰 단위로 토큰화하여 생성된 복수의 토큰(즉, "안녕", "녕하", "하십", "십니" 및 "니까") 및 길이가 3인 토큰 단위로 토큰화하여 생성된 복수의 토큰(즉, "안녕하", "녕하십", "하십니" 및 "십니까")을 포함한다.
한편, 일 실시예에 따르면, 토큰화부(110)는 토큰 집합을 생성한 후, 토큰 집합에 포함된 각 토큰에 인덱스 값을 할당할 수 있다. 구체적으로, 토큰화부(110)는 토큰 집합에 포함된 복수의 토큰 각각에 상이한 인덱스 값을 할당할 수 있으며, 각 토큰에 할당되는 인덱스 값은 토큰 집합에 포함된 토큰의 개수 이하의 값들 중 하나일 수 있다.
또한, 일 실시예에 따르면, 토큰화부(110)는 토큰 집합에 포함된 복수의 토큰 중 길이가 동일한 인접 토큰 사이의 거리가 일정한 값을 가지도록 인덱스 값을 할당할 수 있다. 이때, 토큰 사이의 거리는 토큰에 할당된 인덱스 값 사이의 차이를 의미할 수 있다. 또한, 길이가 동일한 인접 토큰은 토큰 집합에 포함된 길이가 동일한 복수의 토큰 중 인덱스 값의 차이가 가장 작은 두 토큰을 의미할 수 있다.
예를 들어, 도 2에 도시된 토큰 집합(200)의 경우, 15개의 토큰을 포함하고 있으므로, 도시된 예와 같이 각 토큰에는 15 이하의 값 중 하나에 해당하는 인덱스 값이 할당될 수 있다.
한편, 토큰 집합(200)에 포함된 토큰 중 인덱스 값이 "1"인 토큰 "안"과 인덱스 값이 "3"인 토큰 "안녕하" 사이의 거리는 2(즉, 3-1)이다. 또한, 토큰 집합(200)에 포함된 토큰 중 길이가 동일한 인접 토큰(예를 들어, 인덱스 값이 "5"인 토큰 "녕하"와 인덱스 값이 "8"인 토큰 "하십") 사이의 거리가 모두 3으로 동일하다.
다시 도 1을 참조하면, 검색부(130)는 사용자로부터 검색어를 수신하고, 최대 토큰 길이 및 수신된 검색어의 길이에 기초하여 수신된 검색어를 선택적으로 토큰화한다. 이때, 검색어의 길이는 검색어에 포함된 글자의 개수를 의미할 수 있다.
또한, 검색부(130)는 토큰 집합에 포함된 복수의 토큰 중 검색어에 매칭되는 토큰 또는 검색어에 대한 토큰화를 통해 생성된 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 검색하여 토큰 집합에 대응되는 문서에 검색어가 포함되어 있는지 여부를 판단한다.
구체적으로, 일 실시에에 따르면, 검색부(130)는 사용자로부터 수신된 검색어의 길이가 최대 토큰 길이 이하인 경우, 토큰 집합에 포함된 복수의 토큰 중 수신된 검색어에 매칭되는 토큰을 검색할 수 있다. 이때, 검색부(130)는 토큰 집합에 수신된 검색어에 매칭되는 토큰이 포함되어 있는 경우, 토큰 집합에 대응되는 문서에 수신된 검색어가 포함되어 있는 것으로 판단할 수 있다.
예를 들어, 검색어가 "안녕하"이고 최대 토큰 길이가 3인 경우, 검색어의 길이와 최대 토큰 길이가 동일하다. 따라서, 이 경우, 검색부(130)는 토큰 집합에 포함된 복수의 토큰 중 검색어 "안녕하"에 매칭되는 토큰을 검색할 수 있다. 또한, 검색부(130)는 토큰 집합에 포함된 복수의 토큰 중 검색어 "안녕하"에 매칭되는 토큰이 검색된 경우, 토큰 집합에 대응되는 문서에 검색어 "안녕하"가 포함되어 있는 것으로 판단할 수 있다.
보다 구체적인 예로, 토큰 집합이 도 2에 도시된 토큰 집합(200)과 동일한 경우, 토큰 집합(200)에 검색어 "안녕하"에 매칭되는 토큰(즉, 인덱스 값이 "3"인 토큰 "안녕하")가 포함되어 있으므로, 검색부(130)는 토큰 집합(200)에 대응되는 문서에 검색어 "안녕하"가 포함되어 있는 것으로 판단할 수 있다.
한편, 일 실시예에 따르면, 검색부(130)는 사용자로부터 수신된 검색어의 길이가 최대 토큰 길이를 초과하는 경우, 수신된 검색어를 길이가 최대 토큰 길이와 동일한 토큰 단위로 토큰화하여 검색어에 대한 복수의 토큰을 생성할 수 있다. 또한, 이 경우, 검색부(140)는 토큰 집합에 포함된 복수의 토큰 중 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 검색하여 토큰 집합에 대응되는 문서에 검색어가 포함되어 있는지 여부를 판단할 수 있다.
예를 들어, 검색어가 "안녕하십니까"이고 최대 토큰 길이가 3인 경우, 검색어의 길이가 최대 토큰 길이를 초과한다. 따라서, 이 경우, 검색부(130)는 수신된 검색어를 길이가 3인 토큰 단위로 토큰화하여 검색어에 대한 복수의 토큰(즉, "안녕하", "녕하십", "하십니" 및 "십니까")을 생성할 수 있다. 또한, 검색부(130)는 토큰 집합에 포함된 복수의 토큰 중 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 검색할 수 있다.
한편, 일 실시예에 따르면, 검색어에 대한 복수의 토큰이 생성된 경우, 검색부(130)는 토큰 집합이 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 모두 포함하고, 매칭되는 각 토큰 사이의 거리가 최대 거리 이내인 경우, 토큰 집합에 대응되는 문서에 검색어 "안녕하십니까"가 포함되어 있는 것으로 판단할 수 있다.
이때, 일 실시예에 따르면, 최대 거리는 검색어의 대한 복수의 토큰의 개수 및 토큰 집합에 포함된 복수의 토큰 중 최대 토큰 길이를 가진 인접 토큰 사이의 거리에 기초하여 결정될 수 있다. 보다 구체적으로, 검색부(130)는 예를 들어, 아래의 수학식 1에 기초하여 최대 거리를 결정할 수 있다.
[수학식 1]
Dmax=(n-1)*m
수학식 1에서, Dmax는 최대 거리, n은 검색어의 대한 복수의 토큰의 개수, m은 최대 토큰 길이를 가진 인접 토큰 사이의 거리를 나타낸다.
예를 들어, 토큰 집합이 도 2에 예시된 토큰 집합(200)과 동일하고, 검색어에 대한 토큰이 "안녕하", "녕하십", "하십니" 및 "십니까"인 경우, 토큰 집합(200)에 포함된 토큰들 중 최대 토큰 길이를 가진 인접 토큰 사이의 거리가 3이므로, 수학식 1에 따른 최대 거리는 9이다.
또한, 토큰 집합(200)에 포함된 토큰들 중 인덱스 값이 "3"인 토큰 "안녕하", 인덱스 값이 "6"인 토큰 "녕하십", 인덱스 값이 "9"인 토큰 "하십니" 및 인덱스 값이 "12"인 토큰 "십니까"는 각각 검색어에 대한 토큰 "안녕하", "녕하십", "하십니" 및 "십니까"에 매칭되고, 매칭되는 각 토큰 사이의 거리가 9이하이다. 따라서, 검색부(130)는 토큰 집합(200)에 대응되는 문서에 검색어 "안녕하십니까"가 포함되어 있는 것으로 판단할 수 있다.
도 3은 일 실시예에 따른 검색 방법의 순서도이다.
도 3에 도시된 방법은 예를 들어, 도 1에 도시된 검색 장치(100)에 의해 수행될 수 있다.
도 3을 참조하면, 우선, 검색 장치(100)는 문서에 포함된 문자열을 각각 길이가 최대 토큰 길이 이하인 복수의 토큰 단위로 토큰화한다(310).
이후, 검색 장치(100)는 310 단계의 토큰화를 통해 생성된 복수의 토큰을 포함하는 토큰 집합을 저장한다(320).
이때, 일 실시예에 따르면, 검색 장치(100)는 토큰 집합에 포함된 복수의 토큰 중 길이가 동일한 인접 토큰 사이의 거리가 일정한 값을 가지도록 복수의 토큰 각각에 인덱스 값을 할당할 수 있다.
이후, 검색 장치(100)는 사용자로부터 검색어를 수신한다(330).
이후, 검색 장치(100)는 토큰 집합 및 수신된 검색어에 기초하여 토큰 집합에 대응되는 문서에 수신된 검색어가 포함되어 있는지 여부를 판단한다(340).
한편, 도 3에 도시된 순서도에서 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 4는 일 실시예에 따른 검색어 길이에 따른 상세 검색 과정을 나타낸 순서도이다.
도 4에 도시된 방법은 예를 들어, 도 1에 도시된 검색 장치(100)에 의해 수행될 수 있다.
도 4를 참조하면, 우선, 검색 장치(100)는 사용자로부터 검색어를 수신한다(401).
이후, 검색 장치(100)는 검색어의 길이가 최대 토큰 길이 이하인지 여부를 판단한다(402).
이때, 검색어의 길이가 최대 토큰 길이 이하인 경우, 검색 장치(100)는 토큰 집합에 검색어와 매칭되는 토큰이 포함되어 있는지 여부를 판단하고(403), 포함되어 있는 경우, 토큰 집합에 대응되는 문서에 검색어가 포함되어 있는 것으로 판단한다(404).
반면, 토큰 집합에 검색어와 매칭되는 토큰이 포함되어 있지 않은 경우, 검색 장치는 토큰 집합에 대응되는 문서에 검색어가 포함되어 있지 않은 것으로 판단한다(405).
한편, 검색어의 길이가 최대 토큰 길이를 초과하는 경우, 검색 장치(100)는 길이가 최대 토큰 길이와 동일한 토큰 단위로 검색어를 토큰화하여 검색어에 대한 복수의 토큰을 생성한다(406).
이후, 검색 장치(100)는 토큰 집합에 검색어에 대한 복수의 토큰 각각과 매칭되는 토큰이 모두 포함되어 있고(407), 매칭되는 토큰 사이의 거리가 최대 거리 이하인 경우(408), 토큰 집합에 대응되는 문서에 검색어가 포함되어 있는 것으로 판단한다(409).
반면, 검색 장치(100)는 토큰 집합에 검색어에 대한 복수의 토큰 각각과 매칭되는 토큰이 모두 포함되어 있지 않거나(407), 매칭되는 토큰 사이의 거리가 최대 거리를 초과하는 경우(408), 토큰 집합에 대응되는 문서에 검색어가 포함되어 있지 않은 것으로 판단한다(410).
한편, 도 4에 도시된 순서도에서 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 5는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 본 발명의 실시예들에 따른 검색 장치(100)에 포함되는 하나 이상의 컴포넌트일 수 있다. 컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 검색 장치
110: 토큰화부
120; 저장부
130: 검색부

Claims (16)

  1. 문서에 포함된 문자열을 각각 길이가 최대 토큰 길이 이하인 복수의 토큰 단위로 토큰화하는 토큰화부;
    상기 토큰화를 통해 생성된 복수의 토큰을 포함하는 토큰 집합을 저장하는 저장부; 및
    사용자로부터 검색어를 수신하고, 상기 최대 토큰 길이 및 상기 검색어의 길이에 기초하여 상기 검색어를 선택적으로 토큰화하고, 상기 토큰 집합에 포함된 복수의 토큰 중 상기 검색어에 매칭되는 토큰 또는 상기 검색어에 대한 토큰화를 통해 생성된 상기 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 검색하여 상기 문서에 상기 검색어가 포함되어 있는지 여부를 판단하는 검색부를 포함하는 검색 장치.
  2. 청구항 1에 있어서,
    상기 검색부는, 상기 검색어의 길이가 상기 최대 토큰 길이를 초과하는 경우, 상기 검색어를 길이가 상기 최대 토큰 길이와 동일한 토큰 단위로 토큰화하여 상기 검색어에 대한 복수의 토큰을 생성하는 검색 장치.
  3. 청구항 2에 있어서,
    상기 검색부는, 상기 토큰 집합이 상기 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 모두 포함하고, 상기 매칭되는 각 토큰 사이의 거리가 최대 거리 이내인 경우, 상기 문서에 검색어가 포함되어 있는 것으로 판단하는 검색 장치.
  4. 청구항 3에 있어서,
    상기 최대 거리는, 상기 검색어에 대한 복수의 토큰의 개수 및 상기 토큰 집합에 포함된 복수의 토큰 중 상기 최대 토큰 길이를 가진 인접 토큰 사이의 거리에 기초하여 결정되는 검색 장치.
  5. 청구항 4에 있어서,
    상기 최대 거리는, 아래의 수학식 1
    [수학식 1]
    Dmax=(n-1)*m
    (이때, Dmax는 상기 최대 거리, n은 상기 검색어에 대한 복수의 토큰의 개수, m은 상기 최대 토큰 길이를 가진 인접 토큰 사이의 거리)
    에 기초하여 결정되는 검색 장치.
  6. 청구항 4에 있어서,
    상기 매칭되는 각 토큰 사이의 거리는, 상기 매칭되는 각 토큰에 할당된 인덱스 값에 기초하여 결정되는 검색 장치.
  7. 청구항 6에 있어서,
    상기 토큰화부는, 상기 토큰 집합에 포함된 복수의 토큰 중 동일한 길이를 가진 인접 토큰 사이의 거리가 일정한 값을 가지도록 상기 토큰 집합에 포함된 복수의 토큰 각각에 상기 인덱스 값을 할당하는 검색 장치.
  8. 청구항 2에 있어서,
    상기 검색부는, 상기 검색어의 길이가 상기 최대 토큰 길이 이내인 경우, 상기 토큰 집합에 포함된 복수의 토큰 중 상기 검색어에 매칭되는 토큰을 검색하고, 상기 토큰 집합이 상기 검색어에 매칭되는 토큰을 포함하는 경우, 상기 문서에 상기 검색어가 포함되어 있는 것으로 판단하는 검색 장치.
  9. 문서에 포함된 문자열을 각각 길이가 최대 토큰 길이 이하인 복수의 토큰 단위로 토큰화하는 단계;
    상기 토큰화를 통해 생성된 복수의 토큰을 포함하는 토큰 집합을 저장하는 단계;
    사용자로부터 검색어를 수신하는 단계;
    상기 최대 토큰 길이 및 상기 검색어의 길이에 기초하여 상기 검색어를 선택적으로 토큰화하는 단계; 및
    상기 토큰 집합에 포함된 복수의 토큰 중 상기 검색어에 매칭되는 토큰 또는 상기 검색어에 대한 토큰화를 통해 생성된 상기 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 검색하여 상기 문서에 상기 검색어가 포함되어 있는지 여부를 판단하는 단계를 포함하는 검색 방법.
  10. 청구항 9에 있어서,
    상기 선택적으로 토큰화하는 단계는, 상기 검색어의 길이가 상기 최대 토큰 길이를 초과하는 경우, 상기 검색어를 길이가 상기 최대 토큰 길이와 동일한 토큰 단위로 토큰화하여 상기 검색어에 대한 복수의 토큰을 생성하는 검색 방법.
  11. 청구항 10에 있어서,
    상기 판단하는 단계는, 상기 토큰 집합이 상기 검색어에 대한 복수의 토큰 각각에 매칭되는 토큰을 모두 포함하고, 상기 매칭되는 각 토큰 사이의 거리가 최대 거리 이내인 경우, 상기 문서에 검색어가 포함되어 있는 것으로 판단하는 검색 방법.
  12. 청구항 11에 있어서,
    상기 최대 거리는, 상기 검색어에 대한 복수의 토큰의 개수 및 상기 토큰 집합에 포함된 복수의 토큰 중 상기 최대 토큰 길이를 가진 인접 토큰 사이의 거리에 기초하여 결정되는 검색 방법.
  13. 청구항 12에 있어서,
    상기 최대 거리는, 아래의 수학식 1
    [수학식 1]
    Dmax=(n-1)*m
    (이때, Dmax는 상기 최대 거리, n은 상기 검색어에 대한 복수의 토큰의 개수, m은 상기 최대 토큰 길이를 가진 인접 토큰 사이의 거리)
    에 기초하여 결정되는 검색 방법.
  14. 청구항 12에 있어서,
    상기 매칭되는 각 토큰 사이의 거리는, 상기 매칭되는 각 토큰에 할당된 인덱스 값에 기초하여 결정되는 검색 방법.
  15. 청구항 14에 있어서,
    상기 토큰화하는 단계는, 상기 토큰 집합에 포함된 복수의 토큰 중 동일한 길이를 가진 인접 토큰 사이의 거리가 일정한 값을 가지도록 상기 토큰 집합에 포함된 복수의 토큰 각각에 상기 인덱스 값을 할당하는 단계를 포함하는 검색 방법.
  16. 청구항 10에 있어서,
    상기 판단하는 단계는, 상기 검색어의 길이가 상기 최대 토큰 길이 이내인 경우, 상기 토큰 집합에 포함된 복수의 토큰 중 상기 검색어에 매칭되는 토큰을 검색하고, 상기 토큰 집합이 상기 검색어에 매칭되는 토큰을 포함하는 경우, 상기 문서에 상기 검색어가 포함되어 있는 것으로 판단하는 검색 방법.
KR1020190154846A 2019-11-27 2019-11-27 검색 장치 및 방법 KR20210065750A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190154846A KR20210065750A (ko) 2019-11-27 2019-11-27 검색 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190154846A KR20210065750A (ko) 2019-11-27 2019-11-27 검색 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20210065750A true KR20210065750A (ko) 2021-06-04

Family

ID=76391984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190154846A KR20210065750A (ko) 2019-11-27 2019-11-27 검색 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20210065750A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102540939B1 (ko) * 2022-10-05 2023-06-08 (주)유알피 자연어 검색의 적절도 향상 시스템 및 적절도 향상 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101174057B1 (ko) 2008-12-19 2012-08-16 한국전자통신연구원 인덱스 분석장치와 인덱스 검색장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101174057B1 (ko) 2008-12-19 2012-08-16 한국전자통신연구원 인덱스 분석장치와 인덱스 검색장치 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102540939B1 (ko) * 2022-10-05 2023-06-08 (주)유알피 자연어 검색의 적절도 향상 시스템 및 적절도 향상 방법

Similar Documents

Publication Publication Date Title
US10726204B2 (en) Training data expansion for natural language classification
US8560302B2 (en) Method and system for generating derivative words
US10198491B1 (en) Computerized systems and methods for extracting and storing information regarding entities
US9047268B2 (en) Character and word level language models for out-of-vocabulary text input
US10565520B2 (en) Feature extraction for machine learning
KR102482391B1 (ko) 전자 장치에서 수신된 입력 문자열에 대한 대체물들로서 후보 단어들을 제시하는 방법
US20120166182A1 (en) Autocompletion for Partially Entered Query
US20170177180A1 (en) Dynamic Highlighting of Text in Electronic Documents
US20120060147A1 (en) Client input method
CN102893239A (zh) 电子设备的文本输入系统及文本输入方法
EP2643770A2 (en) Text segmentation with multiple granularity levels
CN113692597A (zh) 电子邮件内容修改系统
KR20160056994A (ko) 이모티콘 추천 방법 및 이모티콘을 추천하는 사용자 단말
US20210141860A1 (en) Artificial intelligence based context dependent spellchecking
US9910917B2 (en) Presenting tags of a tag cloud in a more understandable and visually appealing manner
KR20210065750A (ko) 검색 장치 및 방법
US8972241B2 (en) Electronic device and method for a bidirectional context-based text disambiguation
JP2016519370A (ja) データ処理装置、データ処理方法及び電子機器
US10699069B2 (en) Populating spreadsheets using relational information from documents
WO2015075920A1 (ja) 入力支援装置、入力支援方法及び記録媒体
CN108170682A (zh) 一种基于专业词汇的中文分词方法及计算设备
US11341190B2 (en) Name matching using enhanced name keys
KR102158544B1 (ko) 모바일 기기의 입력 인터페이스 내에서 맞춤법 검사를 지원하는 방법 및 시스템
CN113204613A (zh) 地址生成方法、装置、设备和存储介质
KR101986129B1 (ko) 데이터 정렬 방법과 장치 및 이를 수행하기 위한 컴퓨팅 장치

Legal Events

Date Code Title Description
A201 Request for examination