KR20200101525A - 자연어 질의해석 방법 및 시스템 - Google Patents
자연어 질의해석 방법 및 시스템 Download PDFInfo
- Publication number
- KR20200101525A KR20200101525A KR1020190012738A KR20190012738A KR20200101525A KR 20200101525 A KR20200101525 A KR 20200101525A KR 1020190012738 A KR1020190012738 A KR 1020190012738A KR 20190012738 A KR20190012738 A KR 20190012738A KR 20200101525 A KR20200101525 A KR 20200101525A
- Authority
- KR
- South Korea
- Prior art keywords
- query
- natural language
- language query
- entity
- attribute
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004458 analytical method Methods 0.000 title claims abstract description 18
- 238000013528 artificial neural network Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 2
- 238000003672 processing method Methods 0.000 claims 9
- 238000010801 machine learning Methods 0.000 description 17
- 230000004044 response Effects 0.000 description 17
- 239000000284 extract Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 241001591024 Samea Species 0.000 description 3
- 230000003796 beauty Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000011835 investigation Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 244000240602 cacao Species 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/268—Morphological analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/096—Transfer learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
자연어 질의 해석 방법 및 시스템이 개시된다. 일 실시예에 따른 자연어 질의 처리 방법은 자연어 질의를 포함하는 입력 문장을 수신하는 단계, 입력 문장의 형태소 분석을 통하여, 복수의 텀(term)들을 추출하는 단계, 미리 정의된 스키마에 기초하여, 복수의 텀들의 유형들을 결정하는 단계, 텀들의 유형들에 기초하여, 적어도 하나의 성분 패턴을 결정하는 단계, 적어도 하나의 성분 패턴에 기초하여, 자연어 질의에 대응하는 문장 패턴을 결정하는 단계 및 문장 패턴에 기초하여 쿼리를 생성하는 단계를 포함한다.
Description
아래 실시예들은 자연어 질의 해석 방법 및 시스템에 관한 것이다.
최근에 웹 사이트상에서 무수히 많은 웹 문서 정보를 처리하여 사용자의 요구에 해당하는 것 만을 추출하여 사용자에게 제공하는 정보 검색 시스템이 널리 이용되고 있다. 그러나, 일반적으로 방대한 웹 문서 집합에서 정보 요구자가 원하는 문서를 정확히 추출하고 특정 질의에 대한 응답을 정확히 얻는 것은 매우 어렵다. 따라서, 단어가 매칭된 문서를 찾아주는 기존의 검색 시스템과는 달리 사용자의 의도를 파악하여 적합한 문서와 정답을 추천하는 자연어 질의응답 시스템이 출현하였다.
일반적으로, 질의응답 시스템은 질문에 대한 결과로 정답을 제시한다. 자연어 질의를 입력 받아 원하는 정보를 검색하기 위해서는 자연어 정보에 대한 의미 해석이 필수적이다. 종래의 자연어 질의의 해석을 위한 개체 인식(NER) 과정은 개체 사전에서 후보군을 모두 추출하거나, 기계학습을 통해 가능성이 높은 후보를 유추하는 방법을 사용한다. 개체 사전에서 후보군을 모두 추출하는 방식을 이용하는 경우에는 조합으로 파악해야 할 경우의 수가 기하 급수적으로 증가하는 문제가 있을 수 있다. 기계학습을 통해 가능성이 높은 후보를 유추하는 방법을 이용하는 경우에는 중의적인 의미의 질의에 대해 정답을 찾을 수 있는 확률이 낮다는 문제가 있을 수 있다.
실시예들은 중의성을 가진 개체에 대해 개체 도식(Schema)을 기반으로 정답 탐색 가능성을 향상하고자 한다.
실시예들은 일반적인 질의 문장 패턴의 인식을 통해 기계학습을 이용한 질의 해석의 단점 보완 하고자 한다.
실시예들은 질의 문장에 대한 패턴 유형을 정의하고 이를 통해 질의문의 의도를 파악하고자 한다.
실시예들은 가중치 데이터의 가중치를 계산하고자 한다.
실시예들은 지식그래프의 색인 문서량을 감소시키기 위해 트리플 단위 색인이 아닌 트리플의 묶음으로 색인하고자 한다.
일 실시예에 따른 자연어 질의 처리 방법은 자연어 질의를 포함하는 입력 문장을 수신하는 단계; 상기 입력 문장의 형태소 분석을 통하여, 복수의 텀(term)들을 추출하는 단계; 미리 정의된 스키마에 기초하여, 상기 복수의 텀들의 유형들을 결정하는 단계; 상기 텀들의 유형들에 기초하여, 적어도 하나의 성분 패턴을 결정하는 단계; 상기 적어도 하나의 성분 패턴에 기초하여, 상기 자연어 질의에 대응하는 문장 패턴을 결정하는 단계; 및 상기 문장 패턴에 기초하여 쿼리를 생성하는 단계를 포함한다.
상기 복수의 텀들의 유형들은 개체 유형, 개체명, 속성명, 속성값 중 적어도 하나를 포함할 수 있다.
상기 복수의 텀들의 유형들을 결정하는 단계는 상기 복수의 텀들을 미리 학습된 인공 신경망에 입력하여, 상기 복수의 텀들의 유형들을 결정하는 단계를 포함할 수 있다.
상기 적어도 하나의 성분 패턴은 특정부에 해당하는 제2 성분 패턴을 포함하고, 상기 적어도 하나의 성분 패턴은 서술부에 해당하는 제1 성분 패턴; 및 속성부에 해당하는 제3 성분 패턴 중 적어도 하나를 더 포함할 수 있다.
상기 쿼리를 생성하는 단계는 상기 문장 패턴에 포함된 특정부에 해당하는 성분 패턴에 기초하여 검색 쿼리를 생성하는 단계; 및 상기 문장 패턴에 포함된 속성부에 해당하는 성분 패턴에 기초하여 속성 쿼리를 생성하는 단계를 포함할 수 있다.
상기 검색 쿼리를 생성하는 단계는 상기 문장 패턴에 포함된 서술부에 해당하는 성분 패턴을 더 고려하여 상기 검색 쿼리를 생성하는 단계를 포함할 수 있다.
상기 검색 쿼리는 지식 그래프를 인덱싱하는 복수의 문서들 중 상기 자연어 질의에 응답하기 위한 문서를 검색하는 쿼리를 포함하고, 상기 속성 쿼리는 상기 검색 쿼리에 의하여 검색된 문서로부터 상기 자연어 질의에 의하여 요청되는 속성을 지시하는 쿼리를 포함할 수 있다.
상기 쿼리를 생성하는 단계는 지식 그래프를 인덱싱하는 문서의 구조를 고려하여, 상기 쿼리를 생성하는 단계를 포함할 수 있다.
상기 문서는 모든 개체의 공통 속성에 대한 정보를 포함하는 공통 속성부와, 개체 유형에 따른 개별 속성들에 대한 정보를 포함하는 개별 개체 속성부로 이루어질 수 있다.
일 실시예에 따른 자연어 질의 처리 장치는 자연어 질의를 포함하는 입력 문장을 수신하고, 상기 입력 문장의 형태소 분석을 통하여, 복수의 텀(term)들을 추출하고, 미리 정의된 스키마에 기초하여, 상기 복수의 텀들의 유형들을 결정하고, 상기 텀들의 유형들에 기초하여, 적어도 하나의 성분 패턴을 결정하고, 상기 적어도 하나의 성분 패턴에 기초하여, 상기 자연어 질의에 대응하는 문장 패턴을 결정하며, 상기 문장 패턴에 기초하여 쿼리를 생성하는 적어도 하나의 프로세서를 포함한다.
상기 복수의 텀들의 유형들은 개체 유형, 개체명, 속성명, 속성값 중 적어도 하나를 포함할 수 있다.
상기 프로세서는 상기 복수의 텀들을 미리 학습된 인공 신경망에 입력하여, 상기 복수의 텀들의 유형들을 결정할 수 있다.
상기 적어도 하나의 성분 패턴은 특정부에 해당하는 제2 성분 패턴을 포함하고, 상기 적어도 하나의 성분 패턴은 서술부에 해당하는 제1 성분 패턴; 및 속성부에 해당하는 제3 성분 패턴 중 적어도 하나를 더 포함할 수 있다.
상기 프로세서는 상기 문장 패턴에 포함된 특정부에 해당하는 성분 패턴에 기초하여 검색 쿼리를 생성하고, 상기 문장 패턴에 포함된 속성부에 해당하는 성분 패턴에 기초하여 속성 쿼리를 생성할 수 있다.
상기 프로세서는 상기 문장 패턴에 포함된 서술부에 해당하는 성분 패턴을 더 고려하여 상기 검색 쿼리를 생성할 수 있다.
상기 검색 쿼리는 지식 그래프를 인덱싱하는 복수의 문서들 중 상기 자연어 질의에 응답하기 위한 문서를 검색하는 쿼리를 포함하고, 상기 속성 쿼리는 상기 검색 쿼리에 의하여 검색된 문서로부터 상기 자연어 질의에 의하여 요청되는 속성을 지시하는 쿼리를 포함할 수 있다.
상기 프로세서는 지식 그래프를 인덱싱하는 문서의 구조를 고려하여, 상기 쿼리를 생성할 수 있다.
상기 문서는 모든 개체의 공통 속성에 대한 정보를 포함하는 공통 속성부와, 개체 유형에 따른 개별 속성들에 대한 정보를 포함하는 개별 개체 속성부로 이루어질 수 있다.
실시예들은 중의성을 가진 개체에 대해 개체 도식(Schema)을 기반으로 정답 탐색 가능성 향상할 수 있다.
실시예들은 일반적인 질의 문장 패턴의 인식을 통해 기계학습을 이용한 질의 해석의 단점 보완할 수 있다.
실시예들은 질의 문장에 대한 패턴 유형을 정의하고 이를 통해 질의문의 의도를 파악할 수 있다.
실시예들은 가중치 데이터의 가중치를 계산할 수 있다.
실시예들은 지식그래프의 색인 문서량을 감소시키기 위해 트리플 단위 색인이 아닌 트리플의 묶음으로 색인할 수 있다.
도 1은 일 실시예에 따른 자연어 질의 처리 시스템을 도시한 도면이다.
도 2는 일 실시예에 따른 쿼리 생성 방법을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 문서 단위의 색인 방법을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 자연어 질의 처리 방법의 순서도이다.
도 2는 일 실시예에 따른 쿼리 생성 방법을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 문서 단위의 색인 방법을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 자연어 질의 처리 방법의 순서도이다.
본 명세서에서 개시되어 있는 특정한 구조적 또는 기능적 설명들은 단지 기술적 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 실시예들은 다양한 다른 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이해되어야 한다. 예를 들어 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~간의에"와 "바로~간의에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 자연어 질의 처리 시스템을 도시한 도면이다.
도 1을 참조하면, 일 실시예에 따른 자연어 질의 처리 시스템(100)은 쿼리 생성부(110), 및 색인 엔진(120)을 포함할 수 있다. 본 명세서에서, 쿼리 생성부(110)는 자연어 질의 처리 장치로 지칭될 수 있다.
자연어 질의 처리 시스템(100)은 사용자의 질의와 관련된 문서를 검색하는 정보검색(Information Retrieval) 시스템과는 달리 사용자의 질의에 대한 답변이 될 수 있는 응답을 문서 집합내에서 탐색하여 사용자에게 제시해주는 시스템일 수 있다. 자연어는 사람들이 일상적으로 쓰는 언어를 인공적으로 만들어진 언어인 인공어와 구분하여 부르는 개념일 수 있다. 자연어 질의는 사용자로부터 받은 특정한 종류의 정보에 대한 자연어 형태의 질문을 포함할 수 있다. 예를 들어, 자연어 질의는 "이효리 남편의 직업은?"과 같은 형태의 질문일 수 있다.
자연어 질의 처리 시스템(100)은 자연어 질의를 포함하는 입력 문장을 수신하여 자연어 질의에 대응되는 응답을 출력할 수 있다. 예를 들어, 자연어 질의 처리 시스템(100)은 "이효리 남편의 직업은?"이라는 자연어 질의를 수신하여 이에 대한 응답으로 "가수"를 출력할 수 있다.
자연어 질의 처리 시스템(100)의 쿼리 생성부(110)에서 자연어 질의에 대응하는 쿼리를 생성하고, 색인 엔진(120)에서 쿼리에 대응하는 응답을 출력할 수 있다. 일 실시예에 따른 자연어 질의 처리 시스템(100)은 올바른 응답을 하기 위해서, 쿼리 생성부(110)는 정확한 쿼리를 생성할 수 있고, 정보 검색 시간을 단축하고 서비스 응답 시간을 향상시키기 위해서 문서 단위로 색인 엔진(120)에 색인할 수 있다.
쿼리 생성부(110)는 자연어 질의를 포함하는 입력 문장을 수신하여 자연어 질의에 대응하는 쿼리를 출력할 수 있다. 쿼리 생성부(110)는 키워드 스키마 데이터베이스(111), 개체인식 머신러닝 모듈(112) 및 패턴 분석 모듈(113)을 포함할 수 있다. 쿼리 생성부(110)는 키워드 스키마 데이터베이스(111)와 개체인식 머신러닝 모듈(112)을 복합적으로 사용하여 보다 정확한 쿼리를 생성할 수 있다. 도 1의 실시 예에서 키워드 스키마 데이터베이스(111), 개체인식 머신러닝 모듈(112) 및 패턴 분석 모듈(113)을 별도로 구성하여 도시한 것은 각 기능들을 구별하여 설명하기 위함이다. 실제로 제품을 구현하는 경우에 이들 모두를 적어도 하나의 프로세서에서 처리하도록 구성할 수도 있으며, 이들 중 일부만을 프로세서에서 처리하도록 구성할 수도 있다.
쿼리 생성부(110)는 형태소 분석 모듈(미도시)을 더 포함할 수 있다. 형태소 분석 모듈은 자연어 질의를 포함하는 입력 문장을 수신하여 형태소를 분석 및 정제하여 복수의 텀(term)들을 추출할 수 있다. 텀은 분석 대상의 최소 단위일 수 있다. 예를 들어, 형태소 분석 모듈은 "이효리 남편의 직업은?"이라는 자연어 질의를 수신하여 형태소를 분석 및 정제하여 “이효리”, “남편”, “직업” 텀들을 추출할 수 있다.
키워드 스키마 데이터베이스(111)와 개체인식 머신러닝 모듈(112)을 복합적으로 사용하여 형태소 분석 모듈을 통해 결정된 복수의 텀들의 유형을 결정할 수 있다. 텀들의 유형은 예를 들어 표 1과 같을 수 있다.
텀 유형 | 세부 텀 유형 | 의미 |
개체명 | E | name Entity, 이효리, 이상순, 무한도전 등 개체의 이름 |
속성값 |
V | name 외의 property value Entity, 가수, 탤런트 등 사전 정의된 속성의 값 |
C | category (genre나 classifiedBy property) | |
W | 태깅되지 않은 텍스트 | |
K | keywords | |
N | 숫자 (100, 백, 천 등) | |
D | 날짜, 시간 | |
개체유형 | T | Object Type, 사람, 영화, 방송 등 |
속성 | P | Object의 속성 (생일, 남편 등), 생일, 직업, 주소 등 속성의 이름 |
기타 | G | 관형격조사 : ~의 |
J | 접속조사 및 접속사 : ~와, ~과 , 그리고 등 | |
Y | 의존명사 : ~년생, ~년산, ~cc, ~달러 등 | |
H | 힌트 : 오늘, 이번주, 작년, 내년, 지금 등 | |
R | 범위조사 : 부터, 까지 등 |
키워드 스키마 데이터베이스(111)는 하위 개체들이 상위 개체들의 속성들을 포함하는 상속 구조로 키워드와 키워드에 대응되는 스키마가 저장 되어 있을 수 있다. 키워드 스키마 데이터베이스(111)의 'Thing'의 하위에 'CreativeWork'가 있을 수 있고, 'CreativeWork'의 하위에 이로부터 상속받은 'Movie', 'MusicRecording' 개체들이 있을 수 있다. 스키마는 키워드의 텀 유형 정보를 포함할 수 있다. 키워드 스키마 데이터베이스(111)에서 형태소 분석 모듈을 통해 분리된 “이효리”, “남편”, “직업”의 각 텀에 대해 해당하는 스키마를 찾을 수 있다. 예를 들어, 키워드 스키마 데이터베이스(111)는 텀 "이효리"에 대하여 "이효리-Person(개체)", "이효리-Character(개체)" 스키마들을, 텀 "남편"에 대하여 "남편-Person.spouse(속성)", "남편-Movie(개체)", "남편-MusicAlbum(개체)" 스키마들을 찾을 수 있다. 키워드 스키마 데이터베이스(111)만 사용하여 텀 유형을 결정하는 경우에는 분리된 각 텀들 각각에 대하여 키워드 스키마 데이터베이스(111)에서 각 텀들에 해당하는 스키마들을 찾아야 하고, 각 텀들에 대해 매핑된 모든 스키마 조합에 대하여 텀 유형을 파악해야 하는 바, 파악해야 할 경우의 수가 기하 급수적으로 증가할 수 있다. 보다 정확하고, 효율적으로 텀 유형을 결정하기 위하여 키워드 스키마 데이터베이스(111) 뿐만 아니라 개체인식 머신러닝 모듈(112)을 복합적으로 사용할 수 있다.
개체인식 머신러닝 모듈(112)은 질의 의도를 명확히 해석하기 위해 개체명 뿐만 아니라 개체 속성명 및 유형, 속성값과 질의어 까지 학습할 수 있다. 예를 들어, “이효리 남편의 직업은?”과 같은 자연어 질의를 이미 학습된 개체인식 머신러닝 모듈(112)에 입력하면, 개체인식 머신러닝 모듈(112)은 자연어 질의 “이효리 남편의 직업은?”에 대해 “이효리”는 “이효리-Person(개체)", "남편"은 "남편-Person.spouse(속성)", “직업”은 "직업-Person.jobTitle(속성)"이라는 결과를 출력할 수 있다. 개체인식 머신러닝 모듈(112)은 키워드 스키마 데이터베이스(111)의 데이터에 기초하여 학습될 수 있다.
개체인식 머신러닝 모듈(112)은 서로 다른 타입이 존재하는 키워드의 경우 머신러닝에 의해서는 상위 개체로 학습하여 그 결과를 반환할 수 있다. 예를 들어, “뷰티인사이드-TVSeries(개체)", “뷰티인사이드-Movie(개체)"와 같이 서로 다른 타입이 존재하는 키워드의 경우에는 상위 개체인 “뷰티인사이드-CreativeWokr(개체)"를 출력할 수 있다. 개체인식 머신러닝 모듈(112)이 이와 같이 상위 개체에 대하여 출력하는 경우에는, 세부 타입을 특정하기 위해 키워드 스키마 데이터베이스(111)에 대해 탐색한 결과를 가져와 키워드가 어느 것인지 특정하는 범위를 좁힐 수 있다.
패턴 분석 모듈(113)은 복수의 텀 유형들에 기초하여, 적어도 하나의 성분 패턴을 결정할 수 있다. 자연어 질의는 [개체 서술부] + [개체 특정부] + [개체 속성부]의 구조를 가지고 있다고 정의할 수 있다. 패턴 분석 모듈(113)은 복수의 텀 유형들을 수신하여, 복수의 텀 유형들을 개체 서술부, 개체 특정부, 개체 속성부 중 어느 하나로 매핑할 수 있다. 개체 서술부, 개체 특정부, 개체 속성부는 문장을 구성하는 문장 성분일 수 있다. 예를 들어 “A형 가수”의 경우 개체 특정부로만 구성될 수 있다. “서울에 사는 사람의 이름” 인 경우 “서울에 사는”이 개체 서술부이고, “사람”은 개체 특정부, “이름”은 개체 속성부일 수 있다. “서울에 살고 직업이 정치인인 사람의 가족 직장” 의 경우, “서울에 살고 직업이 정치인”이 개체 서술부, “사람”이 개체 특정부, “사람의 가족 직장”이 개체 속성부일 수 있다. 개체 서술부, 개체 특정부, 개체 속성부는 각각 반복되어 복수개의 정의가 있을 수 있다. 본 명세서에서, 개체 서술부, 개체 특정부, 개체 속성부는 각각 서술부, 특정부, 속성부로 지칭될 수 있다.
개체 서술부, 개체 특정부, 개체 속성부를 구성하는 성분 패턴은 미리 정의될 수 있다. 성분 패턴은 문장 성분인 개체 서술부, 개체 특정부, 개체 속성부를 구성하는 텀 유형의 패턴일 수 있다. 성분 패턴은 개체 특정부에 해당하는 제2 성분 패턴을 포함한다. 자연어 질의는 개체 특정부를 필수적으로 포함한다. 성분 패턴은 서술부에 해당하는 제1 성분 패턴 및 속성부에 해당하는 제3 성분 패턴을 포함할 수 있다. 자연어 질의는 개체 서술부, 개체 속성부를 선택적으로 포함한다. 이하에서, 설명되는 성분 패턴은 기술적 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 성분 패턴은 다양한 방식으로 정의될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
개체 서술부는 <P(O):OP><V(OP):O>와 같은 패턴으로 구성될 수 있다. 예를 들어, < >로 구분된 것은 한 텀을 의미하고, 괄호 안의 타입은 이 텀과 일치해야 하는 입력 값, 콜론( : ) 뒤의 타입은 이 텀으로 부터의 출력 값을 의미할 수 있다. <P(O):OP>는 속성명으로, 이전 개체 서술부의 개체유형과 일치해야 하며, 이 속성이 속하는 개체 유형 및 이 속성 자체를 다음으로 전달할 수 있다. <V(OP):O>는 속성의 값으로, 이전 텀에서 전달받은 개체의 유형 및 속성이 일치해야 하고, 이 값의 개체 유형을 다음으로 전달할 수 있다. 예를 들어, “직업(P:Person.jobTitle)이 가수(V:Person.jobTitle)인”의 경우, “직업”은 속성명(P)이고, 개체유형이 Person, 속성명이 jobTitle일 수 있다. “가수”는 개체유형이 Person, 속성명이 jobTitle로 이전 텀인 “직업”에서 전달받은 개체유형 및 속성명과 같은 속성값(V)으로 정의된 패턴에 부합될 수 있다. 다른 예로, “직업(P:Person.jobTitle)이 A형(V:Person.bloodType)인” 의 경우는 개체 유형이 같으나 속성명이 다르므로 패턴에 부합되지 않아 개체 서술부로 인식되지 않을 수 있다. 개체 서술부의 성분 패턴은 표 2와 같을 수 있다.
Pattern | 예제 |
<P(O)> <K> | 특기가 노래인 |
<P(O)> <D> | 생일이 1991년인 |
<P(O)> <V(O,P)> | 직업이 가수인 |
<P(O)> <E(O)> | 남편이 이상순인 |
<K> <P(O)> | 노래가 특기인 |
<D> <P(O)> | 1991년에 태어난 |
<V(O)> <P(O,P)> | 가수가 직업인 |
<N> <Y(O)> | 1981년생 |
<P(O)> <N> | 키가 180인 |
<P(O)> <N> <R> | 키가 180 이상인 |
<P(O)> <N> <R> <N> <R>? | 키가 180과 190 사이인 |
개체 특정부는 <V(O):O+><T(O):O>와 같은 패턴으로 구성될 수 있다. 개별 텀 정의의 + 접미사는 개별 텀 패턴이 반복될 수 있음을 의미할 수 있다. 위의 패턴은 복수개의 속성값 이후 개체 유형이 위치하는 패턴으로, 속성 값은 속성값과 개체 유형은 서로 개체 유형이 일치하도록 정의가 될 수 있다. 예를 들어, “A형(V:Person.bloodType) 가수(V:Person.jobTitle) 인 사람(T:Person)” 의 경우, “A형 가수”는 각각 Person 유형의 속성값(V)이 반복되고, 뒤의 사람은 개체 유형을 정의하여 해당 조건에 맞는 개체의 목록을 찾는 것을 의미할 수 있다. 개체 특정부의 성분 패턴은 표 3과 같을 수 있다.
Pattern | 예제1 | 예제2 |
<E(O)> | 이효리 | |
<V(O)>+ | 가수 | a형 가수 |
<C(O)>+ | 판타지 | SF 판타지 |
<T(O)> | 인물 | |
<E(O)> <T(O)> <V(O)>? | 범죄도시 영화 | |
<T(O)> <E(O)> <V(O)>? | 영화 괴물 | 인물 봉준호 감독 |
<V(O)>+ <E(O)> | 가수 이효리 | |
<V(O)>+ <T(O)> | 가수 인물 | |
<C(O)>+ <E(O)> | sf영화 괴물 | |
<C(O)>+ <V(O)> | 발라드 가수 | |
<C(O)>+ <T(O)> <E(O)>? | sf 영화 | sf 영화 스타트랙 |
<W(O)> <T(O)> <E(O)>? | 아버지 영화 | 아버지 영화 염력 |
<T(O)>? <E(O)> <V(O)> | 인물 봉준호 감독 | 봉준호 감독 |
개체 속성부는 <P(O):V>와 같은 패턴으로 구성될 수 있다. 개체 속성부는 항상 속성 타입(P)으로 시작하며, 개체 특정부에서 전달받은 개체 유형이 일치하도록 정의되고, 그 속성이 가질 수 있는 값의 유형을 다음으로 전달할 수 있다. 개체 속성부의 성분 패턴은 표 4와 같을 수 있다.
Pattern | 예제1 |
<P(O)> | 남편 |
<P(O)> <E(O)> | 남편 이상순 |
<P(O)> <T(O)> <E(O)> | 출연 인물 이효리 |
<P(O)> <E(O)> <T(O)> | 출연 범죄도시 영화 |
<P(O)> <T(O)> | 출연 인물 |
<P(O)> <V(O,P)> | 출연 배우 |
<P(O)> <K> | |
<P(O)> <D> | 개봉일 2010년 |
<D> <P(O)> | 2010년 수상 |
패턴 분석 모듈(113)은 성분 패턴에 기초하여, 자연어 질의에 대응하는 문장 패턴을 결정할 수 있다. 문장 패턴은 개체 서술부, 개체 특정부, 개체 속성부로 이루어진 패턴일 수 있다. 예를 들어, 문장 패턴은 '개체 특정부', '개체 특정부 + 개체 속성부', '개체 서술부 + 개체 특정부' 또는 '개체 서술부 + 개체 특정부 + 개체 속성부' 중 어느 하나일 수 있다.
표 5는 다양한 문장 패턴들의 예시를 포함한다. OBJECT는 개체 특정부를 지시하고, PREDICATON은 개체 서술부를 지시한다. 개체 속성부는 OBJECT의 뒤에 위치하며, 설명의 편의 상 표 5에서 개체 속성부는 생략한다.
문장 패턴 | 예제 |
OBJECT | 이효리 |
PREDICATON OBJECT | 직업이 가수인 이효리 |
PREDICATION+ OBJECT | 직업이 가수이고 수원에서 태어난 이효리 |
OBJECT+ | 이효리와 아이유 |
(PREDICATON+ OBJECT)+ | 직업이 가수인 이효리와 배우 이상순 |
쿼리 생성부(110)는 결정된 문장 패턴에 기초하여 쿼리를 생성할 수 있다. 쿼리는 개체를 찾는 검색 쿼리와 속성과 연결을 찾는 속성 쿼리를 포함할 수 있다. 문장 패턴에 포함된 개체 특정부에 해당하는 성분 패턴에 기초하여 검색 쿼리를 생성할 수 있다. 문장 패턴에 포함된 개체 서술부에 해당하는 성분 패턴을 더 고려하여 검색 쿼리를 생성할 수 있다. 문장 패턴에 포함된 개체 속성부에 해당하는 성분 패턴에 기초하여 속성 쿼리를 생성할 수 있다.
개체 서술부와 개체 특정부는 검색 쿼리로 만들어지므로, 각 텀에서 포함하고 있는 객체 유형과 속성명, 속성값을 기준으로 색인에서 찾는 검색 쿼리를 생성할 수 있다. 검색 쿼리를 이용하여 색인 엔진(120)에서 개체를 검색할 수 있다. 속성 쿼리는 검색된 객체에서 속성의 값을 찾아가기 위한 쿼리일 수 있다. 속성이 연속되는 경우는 속성의 값이 다른 개체인 경우로 이는 지식그래프 내에서 연결을 찾아 다음 개체를 연속적으로 탐색할 수 있다.
예를 들어, “직업(P:Person.jobTitle)이 가수(V:Person.jobTitle)인 사람(T:Person)의 출생지(P:Person.birthPlace)”는 개체 서술부 “직업(P:Person.jobTitle)이 가수(V:Person.jobTitle)인”와 개체 특정부인 “사람(T:Person)”, 속성부인 “출생지(P:Person.birthPlace)”로 분석되고, 이는 각각 PV(서술부) - T(특정부) - P(속성부) 패턴으로 인식될 수 있다. 개체 서술부와 개체 특정부는 검색 쿼리로 만들어지므로, 검색 쿼리는 “type:Person AND jobTitle:”가수”” 로 생성되고, 이 쿼리로 색인 엔진(120)에서 개체를 검색할 수 있다. 개체 속성부에 기초하여 생성된 속성 쿼리 "출생지(P:Person.birthPlace)”를 이용하여 검색된 “직업이 가수인 사람” 개체의 출생지(birthplace) 값을 찾을 수 있다.
생성된 쿼리를 이용하여 색인 엔진(120)에서 개체를 검색하여 자연어 질의에 대응하는 응답을 출력할 수 있다. 종래의 경우 지식그래프에서 원하는 정보를 찾기 위해서는 지식그래프를 트리플이 단위로 트리플스토어나 그래프 데이터베이스에 저장하여야 하였다. 트리플은 개체-속성-값 이라는 세 가지 정보의 묶음일 수 있다. 트리플 단위의 저장이나 색인은 과도한 처리량을 유발하여 서비스의 응답시간을 느리게 하는 요인이 될 수 있다.
일 실시예에 따른 색인 엔진(120)의 경우, 지식그래프의 색인 문서량을 감소시키기 위해 트리플 단위 색인이 아닌 트리플의 묶음으로 색인할 수 있다. 하나의 개체에 대한 정보는 여러 개의 속성 값으로 구성되며, 따라서 하나의 개체에 대한 정보는 여러 개의 트리플의 묶음으로 표현될 수 있다. 하나의 개체를 표현하는 문서는 여러 트리플을 포함하고 있고, 이 문서에 대한 색인으로 검색 시간을 단축시킬 수 있다. 문서 단위의 색인 방법은 아래에서 도 3을 참조하여 상세히 설명된다.
도 2는 일 실시예에 따른 쿼리 생성 방법을 설명하기 위한 도면이다.
도 2를 참조하면, 단계(210 내지 260)은 쿼리 생성부(110)에 의해 수행될 수 있다. 쿼리 생성부(110)는 하나 또는 그 이상의 하드웨어 모듈, 하나 또는 그 이상의 소프트웨어 모듈, 또는 이들의 다양한 조합에 의하여 구현될 수 있다. 아래에서, "이효리 남편의 직업은?" 이라는 자연어 질의를 수신하는 경우를 예로 들어 설명한다.
단계(210)에서, 쿼리 생성부(110)는 "이효리 남편의 직업은?" 이라는 자연어 질의를 포함하는 입력 문장을 수신할 수 있다.
단계(220)에서, 쿼리 생성부(110)는 입력 문장의 형태소 분석 및 정제를 통하여, 복수의 텀(term)들, "이효리", "남편" 및 "직업"을 추출할 수 있다.
단계(230)에서, 쿼리 생성부(110)는 키워드 스키마 데이터베이스(111)와 개체인식 머신러닝 모듈(112)을 복합적으로 사용하여, 텀들의 유형들, “이효리-Person(개체 E)", "남편-Person.spouse(속성 P)", "직업-Person.jobTitle(속성 P)"을 결정할 수 있다. 표 1의 세부 텀 유형으로 표현하면, "이효리", "남편" 및 "직업" 텀들을 <E(O):O> <P(O):V> <P(O):V>와 같이 표현할 수 있다.
단계(240)에서, 쿼리 생성부(110)는 텀 유형들에 기초하여, 성분 패턴을 결정할 수 있다. 쿼리 생성부(110)는 “이효리-Person(개체 E)"는 개체 특정부로, "남편-Person.spouse(속성 P)"와 "직업-Person.jobTitle(속성 P)"은 개체 속성부로 결정할 수 있다.
단계(250)에서, 쿼리 생성부(110)는 성분 패턴에 기초하여, 상기 자연어 질의에 대응하는 문장 패턴, "개체 특정부(E) + 개체 속성부(PP)"를 결정할 수 있다.
단계(260)에서, 쿼리 생성부(110)는 개체 특정부에 기초하여 검색 쿼리를, 개체 속성부에 기초하여 속성 쿼리를 생성할 수 있다.
도 3은 일 실시예에 따른 문서 단위의 색인 방법을 설명하기 위한 도면이다.
앞서 설명한바와 같이, 지식그래프를 일반적인 종래 기술과 같이 트리플들(개체-속성명-값)이나 이에 준하는 개별 값(value)의 연결로 색인할 경우, 물리적으로 적재 및 색인, 검색해야 할 문서의 양이 기하급수적으로 증가할 수 있다.
한 개체의 속성들은 같이 탐색될 경우가 많으며, 복수의 조건도 한 개체 내의 속성간 조건(예를 들어 "A형 가수")의 조합으로 되는 경우가 대부분 이므로, 일 실시예에 따르면 각 속성들을 트리플로 모두 분리하지 않고 개체 단위로 묶어서 적재 및 색인할 수 있다.
지식그래프는 스키마에 기반하고 있고, 스키마는 최상위 개체로 'Thing'을 공유할 수 있다. 'Thing'의 속성들은 모든 개체에서 공통 속성일 수 있다. 지식그래프에서의 색인은 하나의 색인 대상 문서(300)를 도 3과 같이 공통 속성부(310)와 개별 개체 속성부(320)로 영역을 나눌 수 있다.
공통 속성부(310)는 모든 개체의 공통 속성, 문서 자체의 속성으로, 직접적인 속성:값 형태(예를 들어, {name: "아이유", synonym: "IU", alternateName: "이지은"})로 색인될 수 있다.
개별 개체 속성부(320)는 개체 유형별로 스키마 정의에 따라 속성이 다르며, 이는 색인 엔진에서 색인 스키마를 미리 정의할 수 없으므로 각 속성들을 메타데이터 형태(예를 들어, {property: "jobTitle", path: "jobTitle", valueKeyword: "가수"}로 정의하고, 이런 속성 메타데이터 정의 집합들을 문서의 'values' 필드에 넣어 색인할 수 있다.
문서 단위의 색인 방법에 따르면, 속성 메타데이터는 그 구조 자체를 고정하여 정의할 수 있으므로, 색인 엔진에 그 구조를 미리 정의할 수 있고, 이 메타데이터 정의에서 찾기를 원하는 속성명, 속성값 등을 찾는 쿼리를 만들어 색인 엔진에서 검색할 수 있다. 또한, 적재되는 다양한 속성을 가지는 개체들, 앞으로 적재될 미래의 개체들에 대해 스키마가 정의되어 있지 않더라도 추후 색인 엔진에 대한 색인스키마 변경 없이 색인할 수 있다. 또한, 모든 개체는 동일한 구조의 문서로 색인되므로, 문서 구조는 하나만 존재하고, 색인엔진에서 지원하는 인덱스의 개수가 유한해질 수 있다. 또한, 쿼리 패턴 유형 등 지식그래프를 탐색하는 질의의 유형과 상관없이 항상 단일 구조로 색인할 수 있다.
예를 들어, "A형 가수”의 자연어 질의에 대하여, 이 질의는 “A형(V:Person.bloodType) 가수(V:Person.jobTitle)”로 분석되고, 이는 문서의 타입(type)이 “Person”인 것을 찾고, 개별 속성 값에서 path:”bloodType” AND valueKeyword:”a”인 속성과 path:”jobTitle” AND valueKeyword”가수” 인 속성이 모두 존재하는 개체를 찾는 검색 쿼리가 생성될 수 있다.
다양한 자연어 질의에 대응하여 자동으로 생성되는 쿼리의 예시들은 다음과 같다. 표 6은 "이효리 소속그룹 핑클 멤버 옥주현의 정보"에 대응하여 생성되는 쿼리의 예시이다.
Search(type:"Person" AND meta.provider:"datahub_homo" AND name:"이효리") { url name memberOf(name:"핑클") { url name member(name:"옥주현") { url name image[0] } } } |
표 7은 "직업이 가수나 탤런트인 사람"에 대응하여 생성되는 쿼리의 예시이다.
Search( @property("jobTitle", value:@in("가수", "탤런트")), orderBy: {meta.modelingScore:DESC} ) { url name jobTitle debut:performerIn(__type:"DebutEvent") } |
표 8은 "아이유가 출연한 것은?"에 대응하여 생성되는 쿼리의 예시이다.
Search(type:"Person" AND meta.provider:"datahub_homo" AND name:"아이유" ) { $url:url } -> Search(@property(actor, sameAs:$url), orderBy: { meta.modelingScore:DESC } ) { __type url name } |
표 9는 "골목식당에 나온 음식점"에 대응하여 생성되는 쿼리의 예시이다.
Search(type:"Place" AND @property("event.workFeatured.partOfSeries", sameAs:"http://cruise.kakao.com/datahub_tv_program/tv_series/81824") , orderBy: { @property("event.workFeatured", startDateDate):DESC meta.modelingScore: DESC }, size:100 ) { __type url name image } |
표 10은 "방탄소년단 리더는?"에 대응하여 생성되는 쿼리의 예시이다.
Search( meta.provider:"datahub_homo" AND type:"PerformingGroup" AND name:"방탄소년단" ) { member(@contains(roleName, "리더")) { name roleName image[0] url } } |
표 11은 "화유기 마지막회 시청률은?"에 대응하여 생성되는 쿼리의 예시이다.
Search( type:"TVSeries" AND name:"화유기" AND @property(numberOfEpisodes, @exists(valueNumber)) ) { $ep:numberOfEpisodes $url:url } -> Search( type:"ProgramRating" AND category:"종합" AND category:"회차" AND @property(mainEntityOfPage.episodeNumber, value:$ep) AND @property(mainEntityOfPage.partOfSeries, sameAs:$url) ) { ratingValue researchedAt mainEntityOfPage { episodeNumber } } |
도 4는 일 실시예에 따른 자연어 질의 처리 방법의 순서도이다.
도 4를 참조하면, 단계(410 내지 460)은 자연어 질의 처리 장치에 의해 수행될 수 있다. 자연어 질의 처리 장치는 하나 또는 그 이상의 하드웨어 모듈, 하나 또는 그 이상의 소프트웨어 모듈, 또는 이들의 다양한 조합에 의하여 구현될 수 있다.
단계(410)에서, 자연어 질의 처리 장치는 자연어 질의를 포함하는 입력 문장을 수신한다.
단계(420)에서, 자연어 질의 처리 장치는 입력 문장의 형태소 분석을 통하여, 복수의 텀(term)들을 추출한다.
단계(430)에서, 자연어 질의 처리 장치는 미리 정의된 스키마에 기초하여, 복수의 텀들의 유형들을 결정한다. 복수의 텀들의 유형들은 개체 유형, 개체명, 속성명, 속성값 중 적어도 하나를 포함할 수 있다. 자연어 질의 처리 장치는 복수의 텀들을 미리 학습된 인공 신경망에 입력하여, 복수의 텀들의 유형들을 결정할 수 있다.
단계(440)에서, 자연어 질의 처리 장치는 텀 유형들에 기초하여, 적어도 하나의 성분 패턴을 결정한다. 적어도 하나의 성분 패턴은 특정부에 해당하는 제2 성분 패턴을 포함하고, 적어도 하나의 성분 패턴은 서술부에 해당하는 제1 성분 패턴 및 속성부에 해당하는 제3 성분 패턴 중 적어도 하나를 더 포함할 수 있다.
단계(450)에서, 자연어 질의 처리 장치는 적어도 하나의 성분 패턴에 기초하여, 자연어 질의에 대응하는 문장 패턴을 결정한다.
단계(460)에서, 자연어 질의 처리 장치는 문장 패턴에 기초하여 쿼리를 생성한다. 쿼리는 검색 쿼리와 속성 쿼리를 포함하고, 자연어 질의 처리 장치는 문장 패턴에 포함된 특정부에 해당하는 성분 패턴에 기초하여 검색 쿼리를 생성할 수 있다. 자연어 질의 처리 장치는 문장 패턴에 포함된 속성부에 해당하는 성분 패턴에 기초하여 속성 쿼리를 생성할 수 있다. 자연어 질의 처리 장치는 문장 패턴에 포함된 서술부에 해당하는 성분 패턴을 더 고려하여 검색 쿼리를 생성할 수 있다.
검색 쿼리는 지식 그래프를 인덱싱하는 복수의 문서들 중 자연어 질의에 응답하기 위한 문서를 검색하는 쿼리를 포함할 수 있고, 속성 쿼리는 검색 쿼리에 의하여 검색된 문서로부터 자연어 질의에 의하여 요청되는 속성을 지시하는 쿼리를 포함할 수 있다. 또한, 자연어 질의 처리 장치는 지식 그래프를 인덱싱하는 문서의 구조를 고려하여, 검색 쿼리를 생성할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (19)
- 자연어 질의를 포함하는 입력 문장을 수신하는 단계;
상기 입력 문장의 형태소 분석을 통하여, 복수의 텀(term)들을 추출하는 단계;
미리 정의된 스키마에 기초하여, 상기 복수의 텀들의 유형들을 결정하는 단계;
상기 텀들의 유형들에 기초하여, 적어도 하나의 성분 패턴을 결정하는 단계;
상기 적어도 하나의 성분 패턴에 기초하여, 상기 자연어 질의에 대응하는 문장 패턴을 결정하는 단계; 및
상기 문장 패턴에 기초하여 쿼리를 생성하는 단계
를 포함하는 자연어 질의 처리 방법.
- 제1항에 있어서,
상기 복수의 텀들의 유형들은
개체 유형, 개체명, 속성명, 속성값 중 적어도 하나를 포함하는, 자연어 질의 처리 방법.
- 제1항에 있어서,
상기 복수의 텀들의 유형들을 결정하는 단계는
상기 복수의 텀들을 미리 학습된 인공 신경망에 입력하여, 상기 복수의 텀들의 유형들을 결정하는 단계
를 포함하는, 자연어 질의 처리 방법.
- 제1항에 있어서,
상기 적어도 하나의 성분 패턴은
특정부에 해당하는 제2 성분 패턴을 포함하고,
상기 적어도 하나의 성분 패턴은
서술부에 해당하는 제1 성분 패턴; 및
속성부에 해당하는 제3 성분 패턴
중 적어도 하나를 더 포함하는, 자연어 질의 처리 방법.
- 제1항에 있어서,
상기 쿼리를 생성하는 단계는
상기 문장 패턴에 포함된 특정부에 해당하는 성분 패턴에 기초하여 검색 쿼리를 생성하는 단계; 및
상기 문장 패턴에 포함된 속성부에 해당하는 성분 패턴에 기초하여 속성 쿼리를 생성하는 단계
를 포함하는, 자연어 질의 처리 방법.
- 제5항에 있어서,
상기 검색 쿼리를 생성하는 단계는
상기 문장 패턴에 포함된 서술부에 해당하는 성분 패턴을 더 고려하여 상기 검색 쿼리를 생성하는 단계
를 포함하는, 자연어 질의 처리 방법.
- 제5항에 있어서,
상기 검색 쿼리는
지식 그래프를 인덱싱하는 복수의 문서들 중 상기 자연어 질의에 응답하기 위한 문서를 검색하는 쿼리를 포함하고,
상기 속성 쿼리는
상기 검색 쿼리에 의하여 검색된 문서로부터 상기 자연어 질의에 의하여 요청되는 속성을 지시하는 쿼리를 포함하는, 자연어 질의 처리 방법.
- 제1항에 있어서,
상기 쿼리를 생성하는 단계는
지식 그래프를 인덱싱하는 문서의 구조를 고려하여, 상기 쿼리를 생성하는 단계
를 포함하는, 자연어 질의 처리 방법.
- 제8항에 있어서,
상기 문서는
모든 개체의 공통 속성에 대한 정보를 포함하는 공통 속성부와, 개체 유형에 따른 개별 속성들에 대한 정보를 포함하는 개별 개체 속성부로 이루어진, 자연어 질의 처리 방법.
- 하드웨어와 결합되어 제1항 내지 제9항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
- 자연어 질의를 포함하는 입력 문장을 수신하고,
상기 입력 문장의 형태소 분석을 통하여, 복수의 텀(term)들을 추출하고,
미리 정의된 스키마에 기초하여, 상기 복수의 텀들의 유형들을 결정하고,
상기 텀들의 유형들에 기초하여, 적어도 하나의 성분 패턴을 결정하고,
상기 적어도 하나의 성분 패턴에 기초하여, 상기 자연어 질의에 대응하는 문장 패턴을 결정하며,
상기 문장 패턴에 기초하여 쿼리를 생성하는 적어도 하나의 프로세서
를 포함하는 자연어 질의 처리 장치.
- 제11항에 있어서,
상기 복수의 텀들의 유형들은
개체 유형, 개체명, 속성명, 속성값 중 적어도 하나를 포함하는, 자연어 질의 처리 장치.
- 제11항에 있어서,
상기 프로세서는
상기 복수의 텀들을 미리 학습된 인공 신경망에 입력하여, 상기 복수의 텀들의 유형들을 결정하는, 자연어 질의 처리 장치.
- 제11항에 있어서,
상기 적어도 하나의 성분 패턴은
특정부에 해당하는 제2 성분 패턴을 포함하고,
상기 적어도 하나의 성분 패턴은
서술부에 해당하는 제1 성분 패턴; 및
속성부에 해당하는 제3 성분 패턴
중 적어도 하나를 더 포함하는, 자연어 질의 처리 장치.
- 제11항에 있어서,
상기 프로세서는
상기 문장 패턴에 포함된 특정부에 해당하는 성분 패턴에 기초하여 검색 쿼리를 생성하고,
상기 문장 패턴에 포함된 속성부에 해당하는 성분 패턴에 기초하여 속성 쿼리를 생성하는, 자연어 질의 처리 장치.
- 제15항에 있어서,
상기 프로세서는
상기 문장 패턴에 포함된 서술부에 해당하는 성분 패턴을 더 고려하여 상기 검색 쿼리를 생성하는, 자연어 질의 처리 장치.
- 제15항에 있어서,
상기 검색 쿼리는
지식 그래프를 인덱싱하는 복수의 문서들 중 상기 자연어 질의에 응답하기 위한 문서를 검색하는 쿼리를 포함하고,
상기 속성 쿼리는
상기 검색 쿼리에 의하여 검색된 문서로부터 상기 자연어 질의에 의하여 요청되는 속성을 지시하는 쿼리를 포함하는, 자연어 질의 처리 장치.
- 제11항에 있어서,
상기 프로세서는
지식 그래프를 인덱싱하는 문서의 구조를 고려하여, 상기 쿼리를 생성하는, 자연어 질의 처리 장치.
- 제18항에 있어서,
상기 문서는
모든 개체의 공통 속성에 대한 정보를 포함하는 공통 속성부와, 개체 유형에 따른 개별 속성들에 대한 정보를 포함하는 개별 개체 속성부로 이루어진, 자연어 질의 처리 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190012738A KR102150908B1 (ko) | 2019-01-31 | 2019-01-31 | 자연어 질의해석 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190012738A KR102150908B1 (ko) | 2019-01-31 | 2019-01-31 | 자연어 질의해석 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200101525A true KR20200101525A (ko) | 2020-08-28 |
KR102150908B1 KR102150908B1 (ko) | 2020-09-03 |
Family
ID=72265824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190012738A KR102150908B1 (ko) | 2019-01-31 | 2019-01-31 | 자연어 질의해석 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102150908B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220117944A (ko) * | 2021-02-17 | 2022-08-25 | 호서대학교 산학협력단 | 정보검색모델을 위한 데이터 전처리 및 학습 과정을 일괄처리 하는 방법 |
WO2024117314A1 (ko) * | 2022-11-30 | 2024-06-06 | 주식회사 미리내테크놀로지스 | 기계학습, 자연어처리 및 패턴기반 참조 라이브러리 기반 탐색 언어학습 시스템을 이용한 정음엔진구축방법 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220127702A (ko) | 2021-03-11 | 2022-09-20 | 고남현 | 구술 내용에 기반한 적합 파일형식 판단 방법 및 장치 |
KR20230081594A (ko) | 2021-11-30 | 2023-06-07 | 포항공과대학교 산학협력단 | 트랜스포머 신경망을 이용하여 관계형 데이터베이스에 대한 자연어 질의를 처리하는 장치 및 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100066919A (ko) * | 2008-12-10 | 2010-06-18 | 한국전자통신연구원 | 웹 기반의 정보 저장 및 검색 방법, 이를 위한 정보 관리 시스템 |
KR101662450B1 (ko) * | 2015-05-29 | 2016-10-05 | 포항공과대학교 산학협력단 | 다중 소스 하이브리드 질의응답 방법 및 시스템 |
KR101678787B1 (ko) * | 2015-07-15 | 2016-12-06 | 포항공과대학교 산학협력단 | 자동질의응답 방법 및 그 장치 |
KR101941692B1 (ko) * | 2017-10-18 | 2019-01-23 | 서강대학교산학협력단 | 한국어 개체명 인식방법 및 장치 |
-
2019
- 2019-01-31 KR KR1020190012738A patent/KR102150908B1/ko active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100066919A (ko) * | 2008-12-10 | 2010-06-18 | 한국전자통신연구원 | 웹 기반의 정보 저장 및 검색 방법, 이를 위한 정보 관리 시스템 |
KR101662450B1 (ko) * | 2015-05-29 | 2016-10-05 | 포항공과대학교 산학협력단 | 다중 소스 하이브리드 질의응답 방법 및 시스템 |
KR101678787B1 (ko) * | 2015-07-15 | 2016-12-06 | 포항공과대학교 산학협력단 | 자동질의응답 방법 및 그 장치 |
KR101941692B1 (ko) * | 2017-10-18 | 2019-01-23 | 서강대학교산학협력단 | 한국어 개체명 인식방법 및 장치 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220117944A (ko) * | 2021-02-17 | 2022-08-25 | 호서대학교 산학협력단 | 정보검색모델을 위한 데이터 전처리 및 학습 과정을 일괄처리 하는 방법 |
WO2024117314A1 (ko) * | 2022-11-30 | 2024-06-06 | 주식회사 미리내테크놀로지스 | 기계학습, 자연어처리 및 패턴기반 참조 라이브러리 기반 탐색 언어학습 시스템을 이용한 정음엔진구축방법 |
Also Published As
Publication number | Publication date |
---|---|
KR102150908B1 (ko) | 2020-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102150908B1 (ko) | 자연어 질의해석 방법 및 시스템 | |
US10503828B2 (en) | System and method for answering natural language question | |
Singh et al. | Relevance feedback based query expansion model using Borda count and semantic similarity approach | |
US8341112B2 (en) | Annotation by search | |
US9280535B2 (en) | Natural language querying with cascaded conditional random fields | |
KR101661198B1 (ko) | 단문/복문 구조의 자연어 질의에 대한 검색 및 정보 제공 방법 및 시스템 | |
US9448995B2 (en) | Method and device for performing natural language searches | |
US9710547B2 (en) | Natural language semantic search system and method using weighted global semantic representations | |
US8126897B2 (en) | Unified inverted index for video passage retrieval | |
US10943064B2 (en) | Tabular data compilation | |
CN104462085A (zh) | 检索关键词纠错方法及装置 | |
US8812504B2 (en) | Keyword presentation apparatus and method | |
US11699034B2 (en) | Hybrid artificial intelligence system for semi-automatic patent infringement analysis | |
EP2307951A1 (en) | Method and apparatus for relating datasets by using semantic vectors and keyword analyses | |
JP2011118689A (ja) | 検索方法及びシステム | |
KR101651780B1 (ko) | 빅 데이터 처리 기술을 이용한 연관 단어 추출 방법 및 그 시스템 | |
Duc et al. | Using relational similarity between word pairs for latent relational search on the web | |
KR20130093889A (ko) | 한국어 키워드 검색문 해석 장치 및 방법 | |
US20220269735A1 (en) | Methods and systems for dynamic multi source search and match scoring of software components | |
JP2020129377A (ja) | コンテンツ検索方法、装置、機器、および記憶媒体 | |
US9904674B2 (en) | Augmented text search with syntactic information | |
JP2015036892A (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
Boiński et al. | DBpedia and YAGO as knowledge base for natural language based question answering—the evaluation | |
Bhutani et al. | Online Schemaless Querying of Heterogeneous Open Knowledge Bases | |
KR20190061668A (ko) | 지식 네트워크 분석 방법 |