KR20190074828A - Automatic Question-Answering system having mutiple Question-Answering modules - Google Patents

Automatic Question-Answering system having mutiple Question-Answering modules Download PDF

Info

Publication number
KR20190074828A
KR20190074828A KR1020170176480A KR20170176480A KR20190074828A KR 20190074828 A KR20190074828 A KR 20190074828A KR 1020170176480 A KR1020170176480 A KR 1020170176480A KR 20170176480 A KR20170176480 A KR 20170176480A KR 20190074828 A KR20190074828 A KR 20190074828A
Authority
KR
South Korea
Prior art keywords
query
module
modules
unit
question
Prior art date
Application number
KR1020170176480A
Other languages
Korean (ko)
Other versions
KR102034646B1 (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 KR1020170176480A priority Critical patent/KR102034646B1/en
Publication of KR20190074828A publication Critical patent/KR20190074828A/en
Application granted granted Critical
Publication of KR102034646B1 publication Critical patent/KR102034646B1/en

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
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • G06F17/2755
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Abstract

Provided is an automatic question answering system capable of quickly and accurately answering a question. According to one aspect of the inventive concept of the present invention, the automatic question answering system comprises: a user interface receiving a question of a user in a form of a natural language from the user through a network, and transmitting an answer; at least one module server having a plurality of question answering (QA) modules capable of answering questions; a question analysis unit performing the analysis on the natural language of the question; a module selection execution unit selecting some of the plurality of QA modules based on an analysis result of the natural language of the question; and a question answering result integrating unit providing an answer for the question to the user through the user interface. The module selection execution unit comprises: a question answering action predicting unit receiving the analysis result of the natural language of the question and predicting, through learning, question action conformity for each of the plurality of QA modules with respect to the question; a question answering module selection unit selecting some of the plurality of QA modules with reference to a question answering coverage and the question action conformity set for each of the plurality of QA modules; and a question answering module execution unit providing the analysis result of the natural language of the question to some of the plurality of QA modules, which are selected at the question answering module selection unit, so that question answering is performed.

Description

복수의 질의 응답 모듈을 가지는 자동 질의 응답 시스템{Automatic Question-Answering system having mutiple Question-Answering modules}[0001] The present invention relates to an automatic question-answering system having a plurality of query response modules,

본 발명은 자동 질의 응답 시스템에 관한 것으로, 자세하게는 복수의 질의 응답(QA, Question-Answering) 모듈을 가지는 자동 질의 응답 시스템에 관한 것이다. The present invention relates to an automatic query response system, and more particularly to an automatic query response system having a plurality of QA (Question-Answering) modules.

본 발명은 과학기술정보통신부 SW컴퓨팅산업원천기술개발사업(SW)의 일환으로 (주)솔트룩스에서 주관하고 연구하여 수행된 연구로부터 도출된 것이다. [연구기간: 2017.03.01~2017.12.31, 연구관리 전문기관: 정보통신기술진흥센터, 연구과제명: WiseKB: 빅데이터 이해 기반 자가학습형 지식베이스 및 추론 기술 개발, 과제 고유번호: 2013-0-00109]The present invention is derived from research conducted and conducted by Saltlux Co., Ltd. as part of SW Technology Computing Industry Source Technology Development (SW) of Ministry of Science, Technology and Information. [Research period: 2017.03.01 ~ 2017.12.31] Research institute: Information and Communication Technology Promotion Center, Research title: WiseKB: Big data understanding based self-learning knowledge base and inference technology development, task number: 2013-0 -00109]

자동 질의 응답 시스템은 사용자의 질의에 대한 응답을 하기 위한 시스템으로, 사용자의 질의를 분석하여, 이에 대한 응답을 사용자에게 제공할 수 있다. 반면, 사용자의 다양한 질의에 대한 응답을 하기 위하여, 독자적으로 질의 응답을 수행할 수 있는 복수의 QA 모듈을 가지거나, 복수의 QA 모듈과 연결되는 자동 질의 응답 시스템이 요구되고 있다. The automatic question-and-answer system is a system for responding to a user's query, and can analyze the user's query and provide a response to the user. On the other hand, in order to respond to various queries of the user, there is a demand for an automatic question and answer system having a plurality of QA modules capable of performing a query response independently or connected to a plurality of QA modules.

그러나 복수의 QA 모듈을 가지거나 복수의 QA 모듈과 연결되는 자동 질의 응답 시스템은, 복수의 QA 모듈 각각이 독자적으로 질의 응답을 수행하므로, 복수의 QA 모듈 모두로부터 응답을 얻는 속도가 증가하고, 얻어진 응답에 대하여 랭킹을 하는데에 어려움이 있다. However, in the automatic question and answer system having a plurality of QA modules or connected to a plurality of QA modules, since each of the plurality of QA modules independently performs a query response, the speed of obtaining a response from all of the plurality of QA modules increases, There is a difficulty ranking in response.

본 발명의 기술적 과제는, 빠르게 정확한 질의 응답을 할 수 있는 자동 질의 응답 시스템을 제공하는 것이다. SUMMARY OF THE INVENTION It is an object of the present invention to provide an automatic question and answer system capable of quickly and accurately responding to queries.

상기 기술적 과제를 달성하기 위한 본 발명의 기술적 사상의 일측면에 따른 자동 질의 응답 시스템은 네트워크를 통하여 자연어 형태인 사용자의 질의를 사용자로부터 수신하고 응답을 송신하는 유저 인터페이스; 질의 응답을 수행할 수 있는 복수의 질의 응답(QA) 모듈을 가지는 적어도 하나의 모듈 서버; 상기 질의에 대한 자연어 분석을 수행하는 질의 분석부; 상기 질의의 자연어 분석 결과를 기초로 상기 복수의 QA 모듈 중 일부 개를 선택하는 모듈 선택 실행부; 및 상기 질의에 대한 상기 응답을 상기 유저 인터페이스를 통하여 상기 사용자에게 제공하는 질의 응답 결과 통합부;를 포함하며, 상기 모듈 선택 실행부는, 상기 질의의 자연어 분석 결과를 제공받아, 상기 질의에 대한 상기 복수의 QA 모듈별 질의 동작 적합도를 학습을 통해 예측하는 질의 응답 동작 예측부; 상기 복수의 QA 모듈별로 설정된 질의 응답 커버리지와 상기 질의 동작 적합도를 함께 참조하여, 상기 복수의 QA 모듈 중 일부 개를 선택하는 질의 응답 모듈 선택부; 및 상기 복수의 QA 모듈 중 상기 질의 응답 모듈 선택부에서 선택된 일부 개에 상기 질의의 자연어 분석 결과를 제공하여, 질의 응답을 수행하도록 하는 질의 응답 모듈 실행부;를 포함한다. According to an aspect of the present invention, there is provided an automatic query response system including: a user interface for receiving a user query in a natural language form through a network and transmitting a response; At least one module server having a plurality of QA modules capable of performing a query response; A query analyzer for performing a natural language analysis on the query; A module selection execution unit for selecting some of the plurality of QA modules based on a natural language analysis result of the query; And a query response result integration unit for providing the response to the query to the user through the user interface, wherein the module selection execution unit receives the natural language analysis result of the query, A query response operation predicting unit for predicting a query operation fitness of each QA module through learning; A query response module selection unit for selecting some of the plurality of QA modules with reference to the query response coverage set for each of the plurality of QA modules and the query operation suitability; And a query response module execution unit for providing a natural language analysis result of the query to some of the plurality of QA modules selected by the query response module selection unit to perform a query response.

본 발명에 따른 자동 질의 응답 시스템은, 복수의 QA 모듈 중 질의에 적합한 일부 개의 QA 모듈만을 선택하여 질의 응답을 수행하므로, 질의 응답 수행 및 응답 생성 과정 각각에서 부하를 최소화하고 시간을 단축하면서, 동시에 정확한 응답을 사용자에게 제공할 수 있다. The automatic query response system according to the present invention selects only a part of QA modules suitable for a query among a plurality of QA modules and performs a query response, so that the load is minimized and the time is shortened in both the query response execution and the response generation process, An accurate response can be provided to the user.

도 1은 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템을 나타내는 블록도이다.
도 2는 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템의 질의 분석부의 동작을 설명하기 위한 블록도이다.
도 3은 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템의 모듈 선택 실행부의 동작을 설명하기 위한 블록도이다.
도 4는 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템의 질의 응답 동작 예측부 및 질의 응답 모듈 선택부의 동작을 설명하기 위한 블록도이다.
도 5는 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템을 나타내는 블록도이다.
도 6은 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템의 도메인 모듈 서버와 도메인 DB부를 상세히 나타내는 블록도이다.
도 7은 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템의 플러그인 모듈 서버를 상세히 나타내는 블록도이다.
도 8은 본 발명의 예시적 실시 예에 따른 외부 서비스 모듈 서브와 이에 연결되는 외부 서비스/DB를 상세히 나타내는 블록도이다.
1 is a block diagram illustrating an automatic question-and-answer system in accordance with an exemplary embodiment of the present invention.
2 is a block diagram illustrating an operation of a query analyzing unit of an automatic question-answering system according to an exemplary embodiment of the present invention.
3 is a block diagram illustrating the operation of the module selection execution unit of the automatic question answering system according to an exemplary embodiment of the present invention.
4 is a block diagram for explaining the operation of the query response operation predicting unit and the query response module selecting unit of the automatic question and answer system according to the exemplary embodiment of the present invention.
5 is a block diagram illustrating an automated query response system in accordance with an exemplary embodiment of the present invention.
6 is a detailed block diagram illustrating a domain module server and a domain DB unit of the automatic question and answer system according to an exemplary embodiment of the present invention.
7 is a block diagram illustrating the plug-in module server of the automatic question-answering system according to an exemplary embodiment of the present invention in detail.
8 is a block diagram illustrating in detail an external service module sub and an external service / DB coupled thereto according to an exemplary embodiment of the present invention.

이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. The present invention is capable of various modifications and various forms, and specific embodiments are illustrated and described in detail in the drawings. It should be understood, however, that the invention is not intended to be limited to the particular forms disclosed, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for similar elements in describing each drawing. In the accompanying drawings, the dimensions of the structures are enlarged or reduced from the actual dimensions for the sake of clarity of the present invention.

본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수개의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprises", "having", and the like are used to specify that a feature, a number, a step, an operation, an element, a part or a combination thereof is described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be construed to have meanings consistent with the contextual meanings of the related art and are not to be construed as ideal or overly formal meanings as are expressly defined in the present application .

이하 도면 및 설명에서, 하나의 블록으로 표시 또는 설명되는 구성요소는 하드웨어 블록 또는 소프트웨어 블록일 수 있다. 예를 들면, 구성요소들 각각은 서로 신호를 주고 받는 독립적인 하드웨어 블록일 수도 있고, 또는 하나의 프로세서에서 실행되는 소프트웨어 블록일 수도 있다.In the drawings and the description below, the components indicated or described as one block may be a hardware block or a software block. For example, each of the components may be an independent hardware block that sends and receives signals to each other, or may be a software block that executes on one processor.

본 발명의 구성 및 효과를 충분히 이해하기 위하여, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예들을 설명한다. In order to fully understand the structure and effects of the present invention, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템을 나타내는 블록도이다.1 is a block diagram illustrating an automatic question-and-answer system in accordance with an exemplary embodiment of the present invention.

도 1을 참조하면, 자동 질의 응답 시스템(1)은 네트워크(20)를 통하여 사용자(10)로부터 질의를 수신하고, 응답을 송신하는 유저 인터페이스(UI, 100)를 포함한다. 네트워크(20)는 유선 인터넷 서비스, 근거리 통신망(LAN), 광대역 통신망(WAN), 인트라넷, 무선 인터넷 서비스, 이동 컴퓨팅 서비스, 무선 데이터 통신 서비스, 무선 인터넷 접속 서비스, 위성 통신 서비스, 무선 랜, 블루투스 등 유/무선을 통하여 데이터를 주고 받을 수 있는 것을 모두 포함할 수 있다. 네트워크(20)이 스마트폰 또는 태블릿 등과 연결되는 경우, 네트워크(20)은 3G, 4G, 5G 등의 무선 데이터 통신 서비스, 와이파이(Wi-Fi) 등의 무선 랜, 블루투스 등일 수 있다. Referring to Figure 1, an automatic question and answer system 1 includes a user interface (UI) 100 that receives a query from a user 10 via a network 20 and sends a response. The network 20 may be a wired Internet service, a local area network (LAN), a wide area network (WAN), an intranet, a wireless Internet service, a mobile computing service, a wireless data communication service, a wireless Internet access service, And can transmit / receive data through wire / wireless. When the network 20 is connected to a smartphone or a tablet, the network 20 may be a wireless data communication service such as 3G, 4G, or 5G, a wireless LAN such as a Wi-Fi, Bluetooth, or the like.

유저 인터페이스(100)는 사용자(10)가 사용하는 단말기 등을 통하여 자동 질의 응답 시스템(1)에 엑세스하기 위한 인터페이스를 제공할 수 있다. 사용자(10)는 유저 인터페이스(100)를 통하여 자동 질의 응답 시스템(1)에 질의를 전송할 수 있고, 유저 인터페이스(100)를 통하여 자동 질의 응답 시스템(1)의 제공하는 질의에 대한 응답을 수신할 수 있다. The user interface 100 may provide an interface for accessing the automatic question and answer system 1 through a terminal or the like used by the user 10. The user 10 can send a query to the automatic question and answer system 1 via the user interface 100 and receive a response to the query provided by the automatic question and answer system 1 via the user interface 100 .

자동 질의 응답 시스템(1)은 유저 인터페이스(100)와 연결되어 사용자(10)로부터 질의를 전달받고, 응답을 결정하여 유저 인터페이스(100)를 통하여 사용자(10)에게 응답을 전달하는 질의 응답 관리자(200)를 포함한다. 또한 질의 응답 관리(200)에 의하여 자동 질의 응답 시스템(1)이 포함하는 구성 요소들을 제어할 수 있다. The automatic question and answer system 1 is connected to the user interface 100 and receives a query from the user 10 and determines a response and transmits a response to the user 10 through the user interface 100. [ 200). Also, it can control the components included in the automatic question and answer system 1 by the query response management unit 200.

자동 질의 응답 시스템(1)은 질의 응답 관리자(200)가 전달받은 자연어 형태의 질의를 분석할 수 있도록 하는 자연어 이해부(300), 자연어 이해부(300)를 참조하여 분석된 질의를 질의 응답 관리자(200)로부터 전달받아 질의에 대한 응답을 각각 제공할 수 있는 복수의 모듈(510, 520, 530, 540, 610, 620, 630, 710, 720, 730)을 가지는 모듈 서버(500, 600, 700)를 더 포함할 수 있다. The automatic question-answering system 1 includes a natural language understanding unit 300 for allowing a query response manager 200 to analyze a query of a natural language type, a query response manager 300 for referring to the natural language understanding unit 300, (500, 600, 700) having a plurality of modules (510, 520, 530, 540, 610, 620, 630, 710, 720, 730) ).

예를 들면, 모듈 서브(500, 600, 700)는 도메인 모듈 서버(500), 플러그인 모듈 서버(600) 및 외부 서비스 모듈 서버(700) 중 적어도 하나를 포함할 수 있다. 예를 들면 복수의 모듈(510, 520, 530, 540, 610, 620, 630, 710, 720, 730)은 복수의 도메인 모듈(510, 520, 530, 540), 복수의 플러그인 모듈(610, 620, 630), 복수의 API 모듈(710, 720, 730) 중 적어도 일부 개를 포함할 수 있다. 일부 실시 예에서, 복수의 도메인 모듈(510, 520, 530, 540)은 제1 도메인 모듈(510), 제2 도메인 모듈(520), 제3 도메인 모듈(530), 및 제4 도메인 모듈(540)을 포함하고, 복수의 플러그인 모듈(610, 620, 630)은 제1 플러그인 모듈(610) 제2 플러그인 모듈(620), 및 제3 플러그인 모듈(630)을 포함하고, 복수의 API 모듈(710, 720, 730)은 제1 API 모듈(710), 제2 API 모듈(720), 및 제3 API 모듈(73)을 포함할 수 있으나, 모듈의 개수는 이에 한정되지 않는다. For example, the module sub 500, 600, 700 may include at least one of a domain module server 500, a plugin module server 600, and an external service module server 700. For example, the plurality of modules 510, 520, 530, 540, 610, 620, 630, 710, 720, 730 may include a plurality of domain modules 510, 520, 530, 540, a plurality of plug- , 630, and a plurality of API modules 710, 720, 730. In some embodiments, the plurality of domain modules 510, 520, 530, and 540 may include a first domain module 510, a second domain module 520, a third domain module 530, and a fourth domain module 540 The plurality of plug-in modules 610, 620 and 630 include a first plug-in module 610, a second plug-in module 620 and a third plug-in module 630, and the plurality of API modules 710 720 and 730 may include a first API module 710, a second API module 720 and a third API module 73, but the number of modules is not limited thereto.

본 명세서에서 "모듈"이란, QA 모듈을 의미하는 것으로, 불특정 다수의 정보를 선택하고 조합하여 주어진 문제의 시간과 공간에 적합한 해결책으로 활용이 가능한 것인 지식, 또는 지식을 구현하기 위하여 필요한 개체들 및 이들 사이의 관계를 가지고 있는 데이터인 지식데이터가 축적된 지식베이스(knowledge base)를 참조하여 QA(질의 응답)를 독자적으로 수행할 수 있는 도메인 모듈, 수학연산, 단위변환 등과 같이 지식베이스를 참조하지 않고 자체적으로 QA를 수행할 수 있도록 구성되어 자동 질의 응답 시스템(1)에 선택적으로 탑재될 수 있는 플러그인 모듈, QA를 제공할 수 있는 외부 서비스와 연결시켜줄 수 API(application programming interface)를 가지는 API 모듈을 의미한다. 각 QA 모듈은 도메인 모듈, 플러그인 모듈, 또는 API 모듈 중 어느 하나일 수 있다. 예를 들면, QA 모듈은 지식 베이스 기반 QA 모듈인 도메인 모듈, 수학연산 플러그인, 단위변환 플러그인, 시간날짜 플러그인과 같은 플러그인 모듈, 지리날씨 서비스, 환율변환 서비스, 검색 서비스 등 QA 모듈, 날씨 QA 모듈, 환율 QA 모듈, DB기반 QA 모듈, 검색기반 QA 모듈 등과 연결할 수 있는 API 모듈일 수 있다. The term "module" as used herein means a QA module. It is a module that selects and combines an unspecified number of pieces of information to form a knowledge or knowledge that can be utilized as a suitable solution for a given time and space. And a knowledge base such as a domain module, a mathematical operation, a unit conversion, and the like, which can independently perform a QA (query response) by referring to a knowledge base in which knowledge data is stored, A plug-in module that can be selectively loaded in the automatic question and answer system 1, and an API (application programming interface) that can be connected to an external service capable of providing QA, Module. Each QA module may be either a domain module, a plug-in module, or an API module. For example, the QA module includes a QA module such as a knowledge base QA module, a domain module, a mathematical operation plugin, a unit conversion plugin, a plugin module such as a time date plugin, a geography weather service, a currency conversion service, It can be an API module that can be connected with exchange rate QA module, DB based QA module, search based QA module and the like.

즉, 도메인 모듈, 플러그인 모듈, 및 API 모듈은 각각이 독립적으로 자동 질의 응답 시스템(1) 내에서 QA를 수행할 수 있도록 구성된 것들을 의미한다. 또한 본 명세서에서는 설명의 편의를 위하여, 복수의 도메인 모듈(510, 520, 530, 540)을 관리하는 도메인 모듈 서버(500), 복수의 플러그인 모듈(610, 620, 630)을 관리하는 플러그인 모듈 서버(600), 및 복수의 API 모듈(710, 720, 730)을 관리하는 외부 서비스 모듈 서버(700)가 독자적으로 구비된 것으로 도시되었으나, 이에 한정되지 않으며, 복수의 도메인 모듈(510, 520, 530, 540), 복수의 플러그인 모듈(610, 620, 630) 및 복수의 API 모듈(710, 720, 730)을 관리하는 하나의 모듈 서버가 구비되거나, 복수의 도메인 모듈(510, 520, 530, 540), 복수의 플러그인 모듈(610, 620, 630) 및 복수의 API 모듈(710, 720, 730) 중 서로 다른 일부개의 모듈을 관리하는 2개 이상의 모듈 서버가 구비될 수도 있다. That is, the domain module, the plug-in module, and the API module are configured so that they can independently perform the QA in the automatic question-and-answer system 1. In this specification, for convenience of explanation, a domain module server 500 for managing a plurality of domain modules 510, 520, 530 and 540, a plug-in module server for managing a plurality of plug-in modules 610, 620 and 630, And the external service module server 700 that manages a plurality of API modules 710, 720, and 730 is illustrated as an example of the external service module server 600. However, the present invention is not limited thereto and a plurality of domain modules 510, 520, and 530 540, 540, a plurality of plug-in modules 610, 620, 630 and a plurality of API modules 710, 720, 730, or a plurality of domain modules 510, 520, 530, 540 Two or more module servers for managing a plurality of different modules of the plurality of plug-in modules 610, 620, and 630 and the plurality of API modules 710, 720, and 730 may be provided.

본 명세서에서, "응답"이란, 사용자(10)의 질의에 대하여 자동 질의 응답 시스템(1)이 제공하는 결과물, 예컨대, 사용자(10)의 질의라는 질문에 대한 정답, 또는 복수의 도메인 모듈(510, 520, 530, 540), 복수의 플러그인 모듈(610, 620, 630) 및 복수의 API 모듈(710, 720, 730) 각각에서 제공하는 분석 결과, 예컨태, 사용자(10)의 질의라는 질문에 대한 복수의 도메인 모듈(510, 520, 530, 540), 복수의 플러그인 모듈(610, 620, 630) 및 복수의 API 모듈(710, 720, 730) 각각이 가답안을 의미할 수도 있다. 다만, 사용자(10)의 질의에 대한 정답인 자동 질의 응답 시스템(1)의 "응답"과 구분하기 위하여, 복수의 도메인 모듈(510, 520, 530, 540), 복수의 플러그인 모듈(610, 620, 630) 및 복수의 API 모듈(710, 720, 730) 각각이 가답안은 "답변"이라고 호칭할 수도 있다. In this specification, the term "response" refers to an answer provided by the automatic question and answer system 1 for the query of the user 10, such as a query for the query of the user 10, The query result of the analysis result provided by each of the plurality of plug-in modules 610, 620 and 630 and the plurality of API modules 710, 720 and 730, Each of the plurality of domain modules 510, 520, 530, 540, the plurality of plug-in modules 610, 620, 630 and the plurality of API modules 710, 720, 730 may mean an answer. In order to distinguish from the "answer" of the automatic question and answer system 1 which is the correct answer to the inquiry of the user 10, a plurality of domain modules 510, 520, 530, 540, a plurality of plugin modules 610, 620 , 630 and each of the plurality of API modules 710, 720, 730 may be referred to as "answers ".

자동 질의 응답 시스템(1)은 자연어 생성부(400)를 더 포함하여, 질의 응답 관리자(200)가 사용자(10)에게 자연어 형태의 응답을 제공하도록 할 수 있다. The automatic question and answer system 1 further includes a natural language generation unit 400 so that the question and answer manager 200 can provide the user 10 with a response in a natural language form.

즉, 자동 질의 응답 시스템(1)은, 자연어 형태인 사용자(10)의 질의에 대하여 자연어 이해부(300)를 참조하여 질의 분석부(210)에서 분석한 후, 이를 토대로 복수의 도메인 모듈(510, 520, 530, 540), 복수의 플러그인 모듈(610, 620, 630) 및 복수의 API 모듈(710, 720, 730) 중 일부개의 모듈에서 분석하고, 그 분석 결과를 자연어 생성부(400)의 도움을 받아 질의 응답 관리자(200)에서 자연어 형태인 응답으로 생성하여 사용자(10)에게 제공할 수 있다. That is, the automatic question-answering system 1 analyzes the query of the user 10 in a natural language form by the query analysis unit 210 with reference to the natural language understanding unit 300, 620, and 630 and a plurality of API modules 710, 720, and 730 and analyzes the analysis results in the modules of the natural language generation unit 400 And can generate the response in the form of a natural language in the Q & A manager 200 and provide it to the user 10.

질의 응답 관리자(200)는 질의 분석부(210), 모듈 선택 실행부(220), 및 질의 응답 결과 통합부(230)를 포함한다. 질의 분석부(210)는 자연어 이해부(300)를 참조하여 사용자(10)의 질의에 대한 자연어 분석을 수행할 수 있다. The query response manager 200 includes a query analysis unit 210, a module selection execution unit 220, and a query response result integration unit 230. The query analyzing unit 210 can perform a natural language analysis on the query of the user 10 by referring to the natural language understanding unit 300.

예를 들면, 자연어 이해부(300)는 질의에 대하여, 시맨틱 롤 라벨링(Semantic Role Labeling), 형태소 분석, 구문 분석, 개체명 분석, 필터링 분석, 의도 분류, 및 도메인 분석 등의 복수의 단위 분석 과정을 수행할 수 있다. 상기 복수의 단위 분석 과정 중 일부는 병렬적으로 수행될 수 있다. 상기 복수의 단위 분석 과정 중 일부는 순차적으로 수행될 수 있다. For example, the natural language understanding unit 300 performs a plurality of unit analysis processes such as Semantic Role Labeling, morphological analysis, syntax analysis, entity name analysis, filtering analysis, intention classification, and domain analysis Can be performed. Some of the plurality of unit analysis processes may be performed in parallel. Some of the plurality of unit analysis processes may be performed sequentially.

일부 실시 예에서, 자연어 이해부(300)는 질의에 대한 자연어 분석 결과를 테이블(table) 구조 또는 트리(tree) 구조를 가지는 정형 데이터로 제공하도록 할 수 있다. 자연어 이해부(300)에 의하여 제공될 수 있는 정형 데이터는 예를 들면, RDB(Relation DateBase), CSV(Comma-Seperated Variables), XML(eXtensible Markup Language), JSON(JavaScript Object Notation) 등일 수 있으나, 이에 한정되지 않는다. In some embodiments, the natural language understanding unit 300 may provide the natural language analysis result of the query as a table structure or a structured data having a tree structure. The formatted data that can be provided by the natural language understanding unit 300 may be, for example, Relational DateBase (RDB), Comma-Seperated Variables (CSV), Extensible Markup Language (XML), JavaScript Object Notation (JSON) But is not limited thereto.

질의 분석부(210)는 자연어 이해부(300)에서 수행되는 시맨틱 롤 라벨링, 형태소 분석, 구문 분석, 개체명 분석, 필터링 분석, 의도 분류, 및 도메인 분석 등의 복수의 단위 분석 과정 중 적어도 일부를 수행하도록 하여, 질의에 대한 자연어 분석 결과를 생성할 수 있다. 또한 질의 분석부(210)는 질의에 대한 자연어 분석 결과를 모듈 선택 실행부(220)로 전달할 수 있다. The query analyzing unit 210 analyzes at least a part of a plurality of unit analysis processes such as semantic role labeling, morphological analysis, syntax analysis, object name analysis, filtering analysis, intention classification, and domain analysis performed in the natural language understanding unit 300 So that the result of the natural language analysis on the query can be generated. In addition, the query analyzer 210 may transmit the natural language analysis result of the query to the module selection execution unit 220.

모듈 선택 실행부(220)는 질의에 대한 자연어 분석 결과를 참조하여, 복수의 모듈(510, 520, 530, 540, 610, 620, 630, 710, 720, 730) 중 일부 개를 선택하여 QA를 수행하도록 실행할 수 있다. 즉, 모듈 선택 실행부(220)는 자동 질의 응답 시스템(1)이 가지거나 연결할 수 있는 복수의 모듈(510, 520, 530, 540, 610, 620, 630, 710, 720, 730) 중 질의에 대한 자연어 분석 결과를 참조하여 선택된 일부 개의 모듈에서만 QA를 수행하도록 할 수 있다. The module selection execution unit 220 selects some of the plurality of modules 510, 520, 530, 540, 610, 620, 630, 710, 720, 730 by referring to the natural language analysis result of the query, To be performed. In other words, the module selection execution unit 220 determines whether or not the automatic question and answer system 1 has a plurality of modules 510, 520, 530, 540, 610, 620, 630, 710, 720, The QA can be performed only on a few selected modules by referring to the natural language analysis result.

따라서 복수의 모듈(510, 520, 530, 540, 610, 620, 630, 710, 720, 730) 중 적합한 일부 개의 모듈에서만 QA를 수행할 수 있어 자동 질의 응답 시스템(1)의 부하가 최소화되어 사용자(10)의 질의에 대한 응답을 구하는 시간이 단축될 수 있다. Therefore, QA can be performed only by a suitable one of the plurality of modules 510, 520, 530, 540, 610, 620, 630, 710, 720, 730. Thus, the load of the automatic question answering system 1 is minimized, The time required to obtain a response to the query of the server 10 can be shortened.

모듈 선택 실행부(220)는 복수의 모듈(510, 520, 530, 540, 610, 620, 630, 710, 720, 730) 중 선택된 일부 개의 모듈에서 수행된 QA 결과를 수신한 후, 질의 응답 결과 통합부(230)에 전달할 수 있다. The module selection execution unit 220 receives a QA result performed in a selected one of a plurality of modules 510, 520, 530, 540, 610, 620, 630, 710, 720, 730, To the integration unit 230.

질의 응답 결과 통합부(230)는 선택된 일부 개의 모듈에서 수행된 QA 결과를 통합하여 사용자(10)에게 유저 인터페이스(100)를 통하여 응답을 제공할 수 있다. 질의 응답 결과 통합부(230)는 자연어 생성부(400)를 참조하여, 자연어 형태로 응답을 사용자(10)에게 제공할 수 있다. The query response result integrating unit 230 may integrate the QA results of the selected modules and provide a response to the user 10 through the user interface 100. [ The query response result integrating unit 230 can provide a response to the user 10 in a natural language form by referring to the natural language generating unit 400. [

모듈 선택 실행부(220)에서 사용자(10)의 질의에 적합한 일부 개의 모듈만을 선택하여 QA를 수행할 수 있다. 따라서, 일부 실시 예에서 질의 응답 결과 통합부(230)는 선택된 일부 개의 모듈에서 수행된 QA 결과를 그대로 자연어 생성부(400)를 참조하여 자연어 형태로 생성한 후, 사용자(10)에게 유저 인터페이스(100)를 통하여 응답을 제공할 수 있다. 또는 일부 실시 예에서, 질의 응답 결과 통합부(230)는 선택된 일부 개의 모듈에서 수행된 QA 결과에 대한 랭킹을 정한 후, 랭킹이 높은 결과를 선정하여 사용자(10)에게 유저 인터페이스(100)를 통하여 응답을 제공할 수 있다. 일부 실시 예에서, 질의 응답 결과 통합부(230)는 선택된 일부 개의 모듈에서 수행된 QA 결과 중 유사성이 높은 결과가 2개 이상이 수신되는 경우, 해당 답변을 응답으로 선정하여 유저 인터페이스(100)를 통하여 사용자(10)에게 제공할 수 있다. The module selection execution unit 220 may select only a few modules suitable for the query of the user 10 and perform the QA. Therefore, in some embodiments, the query response result integrating unit 230 may generate the natural language word referring to the natural language generating unit 400 as a result of the QA performed in some selected modules, 0.0 > 100). ≪ / RTI > In some embodiments, the query response result integrating unit 230 determines a ranking for the QA result performed in the selected modules, selects a result having a high ranking, and transmits the result to the user 10 through the user interface 100 Can provide a response. In some embodiments, when two or more results of high similarity among the QA results performed on selected modules are received, the query response result integrating unit 230 selects the corresponding answer as a response and transmits the response to the user interface 100 To the user (10).

이와 같은 본 발명의 일 실시 예에 따른 자동 질의 응답 시스템(1)은 QA 수행 및 응답 생성 과정 각각에서, 부하를 최소화하고 시간을 단축하면서, 동시에 정확한 응답을 사용자(10)에게 제공할 수 있다. The automatic question answering system 1 according to the embodiment of the present invention can provide a correct response to the user 10 at the same time while minimizing the load and shortening the time in each of the QA execution and the response generation process.

도 2는 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템의 질의 분석부의 동작을 설명하기 위한 블록도이다.2 is a block diagram illustrating an operation of a query analyzing unit of an automatic question-answering system according to an exemplary embodiment of the present invention.

도 2를 참조하면, 질의 분석부(210)는 자연어 이해부(300)를 참조하여, 사용자(도 1의 10 참조)의 질의에 대한 자연어 분석을 수행할 수 있다. 질의 분석부(210)는 독자적으로 자연어 이해부(300)를 참조하여 질의에 대한 자연어 분석을 수행할 수도 있고, 자연어 이해부(300)에서 자연어 분석을 수행하도록 한 후 그 결과를 관리할 수도 있다. Referring to FIG. 2, the query analyzing unit 210 can perform a natural language analysis on a query of a user (see 10 in FIG. 1) by referring to the natural language understanding unit 300. The query analyzing unit 210 may perform a natural language analysis on the query by referring to the natural language understanding unit 300 independently or may perform a natural language analysis on the natural language understanding unit 300 and then manage the result .

자연어 이해부(300)는 시맨틱 롤 라벨링부(SRL, 310), 형태소 분석부(320), 구문 분석부(330), 개체명 분석부(340), 필터링 분석부(350), 의도 분류부(360) 및 도메인 분석부(370)를 포함할 수 있다. 시맨틱 롤 라벨링부(310)는 질의에 대한 의미 역할(Semantic Role)을 부여할 수 있다. 형태소 분석부(320)는 의미 역할이 부여된 질의를 형태소 단위로 분리할 수 있다. 구문 분석부(330) 및 개체명 분석부(340)는 각각 형태소 단위로 분리된 질의에 구문 분석 및 개체명 분석을 할 수 있다. 필터링 분석부(350)는 질의에 포함된 불필요한 피쳐(feature)를 제거하여 간결화된 질문 패턴을 생성할 수 있다. 의도 분류부(360) 및 도메인 분석부(370)는 필터링 분석부(350)에서 생성한 간결화된 질문 패턴을 기초로 의미 역할이 부여된 질의의 의도(intention) 분류 및 도메인 분석을 할 수 있다. The natural language understanding unit 300 includes a semantic role labeling unit (SRL) 310, a morphological analysis unit 320, a syntax analysis unit 330, an entity name analysis unit 340, a filtering analysis unit 350, 360 and a domain analysis unit 370. The semantic roll labeling unit 310 may assign a semantic role to the query. The morpheme analysis unit 320 can separate the query assigned with the semantic role into morpheme units. The parser 330 and the entity name analyzer 340 can perform parsing and object name analysis on queries separated by morpheme units, respectively. The filtering analysis unit 350 may generate a simplified query pattern by removing unnecessary features included in the query. The intention classification unit 360 and the domain analysis unit 370 can perform intention classification and domain analysis of a query to which a meaning role is assigned based on the simplified query pattern generated by the filtering analysis unit 350. [

일부 실시 예에서 자연어 이해부(300)는 어학 사전 정보(800)를 참조하여, 형태소 분석부(320)에서 분리된 형태소에 어깨 번호를 부여할 수 있다. 구체적으로, 의도 분류부(360)는 어학 사전 정보(800)를 참조하여, 동음이의어의 의미를 구분하는 어깨 번호를 분리된 형태소에 부여할 수 있다. In some embodiments, the natural language understanding unit 300 may refer to the dictionary dictionary information 800 and assign a shoulder number to the morpheme separated by the morpheme analysis unit 320. [ Specifically, referring to the dictionary dictionary information 800, the intention classification unit 360 can assign a shoulder number to the separated morpheme to distinguish the meaning of the homonym.

질의 분석부(210)는 자연어 이해부(300)를 참조한 자연어 분석을 통하여, 형태소 정보, 구문 정보, 질의 패턴 정보, 시공간 정보, 고유 명사 정보, 의도 정보, 어깨 번호 정보, 숫자 정보, 서수 정보, 및 도메인 정보 중 적어도 일부를 포함하는 자연어 분석 결과를 생성하여 모듈 선택 실행부(220)에 제공할 수 있다. 일부 실시 예에서, 의도 정보는 유하원칙(5W1H, 누가(who), 언제(when), 어디서(where), 무엇을(what), 어떻게(how), 왜(why))을 기초로 생성될 수 있으며, 의도 정보는 어깨 번호 정보를 가지고 있을 수 있다. The query analyzing unit 210 analyzes the natural language by referring to the natural language understanding unit 300. The natural language analyzing unit 210 analyzes the natural language by referring to the natural language analysis unit 300, And domain information, and provides the natural language analysis result to the module selection execution unit 220. In some embodiments, the intention information may be generated based on the descendant principle (5W1H, who, when, where, what, how, why) And the intention information may have shoulder number information.

도 3은 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템의 모듈 선택 실행부의 동작을 설명하기 위한 블록도이다.3 is a block diagram illustrating the operation of the module selection execution unit of the automatic question answering system according to an exemplary embodiment of the present invention.

도 3을 참조하면, 모듈 선택 실행부(220)는 질의 응답 동작 예측부(221), 질의 응답 모듈 선택부(222) 및 질의 응답 모듈 실행부(223)를 포함할 수 있다. 3, the module selection execution unit 220 may include a query response operation predicting unit 221, a query response module selection unit 222, and a query response module execution unit 223.

질의 응답 동작 예측부(221)는 질의 분석부(210)로부터 자연어 분석 결과를 제공받아, 질의 응답 모듈 선택 모델 학습기(224)를 통해 학습된 질의 응답 모듈 동작 예측 모델(225)과 관리자로부터 입력되어 기설정된 질의 응답 모듈 동작 규칙(226)을 기반으로 모듈들의 질의에 대한 적합도인 질의 동작 적합도를 예측할 수 있다. 예를 들면, "1+1=?"이라는 질의에 질의 응답 동작 예측부(221)는 수학 QA모듈이 100%, 다른 QA 모듈은 0%로 질의 동작 적합도를 예측할 수 있다. 예를 들면, "이순신이 태어난 나라는?"이란 질의에는 질의 응답 동작 예측부(221)는 지식 베이스 기반 QA 모듈이 80%, 검색 서비스가 50%로 질의 동작 적합도를 예측할 수 있다. The query response operation predicting unit 221 receives the natural language analysis result from the query analyzing unit 210 and inputs the query response module operation prediction model 225 learned through the query response module selection model learning unit 224 and the manager The fitness of the query operation, which is a fitness for the queries of the modules, can be predicted based on the predetermined query response module operation rule 226. [ For example, in the query "1 + 1 =?", The QA operation predicting unit 221 can estimate the query operation fitness to 100% for the math QA module and 0% for the other QA modules. For example, the question-and-answer motion estimating unit 221 can predict the query operation fitness by the knowledge base-based QA module 80% and the search service 50%.

질의 응답 모듈 선택 모델 학습기(224)는 각 모듈에서 생성된 질의 응답 결과 및/또는 질의 응답 결과에 대한 사용자(10)의 피드백을 가지는 질의 응답 모듈 로그(227), 및 관리자에 의해 입력된 질의 응답 학습 셋(228)을 사용하여, 질의 응답 모듈 동작 예측 모델(225)을 학습할 수 있다. 질의 응답 모듈 선택 모델 학습기(224)는 예를 들면, 선형 회귀(Linear Regression), 로지스틱 회귀(Logistic Regression), 정규화(Regularization) 등의 기계 학습 알고리즘 또는 DNN(Deep Neural Network), CNN(Convolutional Neural Network), RNN(Recurrent Neural Network) 등의 딥 러닝(deep learing)을 사용하여 질의 응답 모듈 동작 예측 모델(225)을 학습할 수 있다. The question and answer module selection model learning unit 224 includes a question and answer module log 227 having feedback of the user 10 on question and answer results and / or question and answer results generated in each module, The learning set 228 can be used to learn the query response module motion prediction model 225. The query-and-response module selection model learning unit 224 may be implemented by, for example, a machine learning algorithm such as a linear regression, a logistic regression, or a regularization or a DNN (Deep Neural Network), a CNN (Convolutional Neural Network ), And RNN (Recurrent Neural Network (RNN)), for example, to learn the query response module operation prediction model 225.

질의 응답 모듈 선택부(222)는 질의 응답 모듈 특성 저장부(229)에 저장된 모듈 특성과 질의 응답 동작 예측부(221)에서 예측한 질의 동작 적합도를 함께 참조하여, QA를 수행할 모듈을 선택할 수 있다. The query response module selection unit 222 may refer to both the module characteristics stored in the query response module property storage unit 229 and the query operation suitability predicted by the query response operation predicting unit 221 to select a module for performing the QA have.

질의 응답 모듈 특성 저장부(229)는 모듈 서버(500, 600, 700)가 가지는 복수의 모듈(도 1의 510, 520, 530, 540, 610, 620, 630, 710, 720, 730) 각각의 모듈 특성이 저장될 수 있다. 모듈 특성은 해당 모듈에서 수행할 수 있는 QA에 대한 커버리지인 질의 응답 커버리지(coverage)일 수 있다. 예를 들면, 모듈 특성은 피쳐 정보, 도메인 정보, 질의 패턴, 숫자(개수) 정보, 서수 정보, 정렬 정보 등 각각에 대한 QA 수행 유무 또는 QA 수행 확률 등의 정보를 가질 수 있다. The query response module property storage unit 229 stores a plurality of modules (510, 520, 530, 540, 610, 620, 630, 710, 720, and 730 of FIG. 1) Module properties can be stored. The module property may be the Q & A coverage, which is the coverage of the QA that can be performed by the module. For example, the module characteristic may have information such as feature information, domain information, query pattern, number (number) information, ordinal information, alignment information, etc., QA performance or QA performance probability.

따라서 질의 응답 모듈 선택부(222)는 학습을 통해 얻어진 질의에 대한 각 모듈별 질의 동작 적합도, 및 각 모듈별로 설정된 질의 응답 커버리지인 모듈 특성을 함께 참조하여, QA를 수행할 모듈을 선택할 수 있다. Therefore, the query response module selection unit 222 can select a module to perform the QA by referencing the query performance suitability of each query with respect to the query obtained through learning and the module characteristics as the query response coverage set for each module together.

질의 응답 모듈 실행부(223)는 복수의 모듈(510, 520, 530, 540, 610, 620, 630, 710, 720, 730) 중 질의 응답 모듈 선택부(222)에서 선택된 모듈에만 질의에 대한 자연어 분석 결과를 제공하여, QA를 수행하도록 할 수 있다. The question and answer module execution unit 223 executes only the modules selected by the query response module selection unit 222 among the plurality of modules 510, 520, 530, 540, 610, 620, 630, 710, 720, The results of the analysis can be provided so that QA can be performed.

도 4는 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템의 질의 응답 동작 예측부 및 질의 응답 모듈 선택부의 동작을 설명하기 위한 블록도이다.4 is a block diagram for explaining the operation of the query response operation predicting unit and the query response module selecting unit of the automatic question and answer system according to the exemplary embodiment of the present invention.

도 4를 도 3과 함께 참조하면, 질의 응답 동작 예측부(221)는 질의 응답 모듈 동작 예측 모델(225)로부터, 사용자(10)의 질의에 대한 모듈별 질의 동작 적합도를 구할 수 있다. 또한 질의 응답 모듈 선택부(222)는 모듈별 질의 동작 적합도, 및 질의 응답 모듈 특성 저장부(229)가 가지는 모듈별 질의 응답 커버리지를 함께 참조하여, QA를 수행할 모듈을 선택할 수 있다. Referring to FIG. 4 together with FIG. 3, the query response operation predicting unit 221 can obtain a query operation fitness per module with respect to the query of the user 10 from the query response module operation prediction model 225. The query response module selection unit 222 can also select a module to perform the QA by referring to the query operation suitability for each module and the query response coverage for each module included in the query response module property storage unit 229. [

예를 들면, 질의 응답 모듈 선택부(222)가 질의 동작 적합도 및 질의 응답 커버리지 각각에 대하여 60%의 문턱값(threshold)을 가지도록 설정된 경우, 질의 동작 적합도 및 질의 응답 커버리지가 모두 문턱값 이상인 모듈이 일정 개수 이상 있는 경우, 해당 모듈을 선택하여 QA를 수행하도록 할 수 있다. 반면, 질의 동작 적합도 및 질의 응답 커버리지가 모두 문턱값 이상인 모듈이 없으나, 질의 동작 적합도 및 질의 응답 커버리지 중 하나가 문턱값 이상인 모듈이 있는 경우, 해당 모듈을 선택하여 QA를 수행하도록 할 수 있다. 또는 질의 동작 적합도 및 질의 응답 커버리지가 모두 문턱값 이상인 모듈이 일정 개수 미만만 있는 경우, 질의 동작 적합도 및 질의 응답 커버리지가 모두 문턱값 이상인 모듈, 및 질의 동작 적합도 및 질의 응답 커버리지 중 하나가 문턱값 이상인 모듈을 함께 선택하여 QA를 수행하도록 할 수 있다. For example, if the query response module selector 222 is set to have a threshold of 60% for each of the query operation suitability and the query response coverage, the module with the query operation suitability and the query response coverage all being equal to or greater than the threshold value, If there are more than this schedule number, QA can be performed by selecting the relevant module. On the other hand, if there is no module having both the query operation suitability and the QA coverage threshold equal to or higher than the threshold value but the query operation suitability and the QA coverage are higher than the threshold value, the QA can be performed by selecting the corresponding module. Or a module in which both the query operation suitability and the query response coverage are both less than a certain number and the query operation suitability and the query response coverage are all equal to or more than the threshold value and one of the query operation suitability and the query response coverage is equal to or greater than the threshold value Modules can be selected together to perform QA.

이때, 질의 동작 적합도 및 질의 응답 커버리지 각각에 대한 문턱값은 동일하게 설정될 수도 있으나, 서로 다르게 설정될 수도 있다. 또한 질의 응답 모듈 선택부(222)가 QA를 수행하도록 선택할 모듈의 최소 개수는 자동 질의 응답 시스템(도 1의 1)의 부하 및 모듈 서버(500, 600, 700)가 가지는 모듈의 개수를 고려하여, 양의 정수(1, 또는 2 이상) 중에서 선택될 수 있다. At this time, the thresholds for the query operation suitability and the query response coverage may be set to the same value, but they may be set to be different from each other. The minimum number of modules to be selected by the QA module selection unit 222 to perform the QA is determined by considering the load of the automatic question and answer system (1 of FIG. 1) and the number of modules of the module servers 500, 600, and 700 , A positive integer (1, or 2 or more).

다시 도 3을 참조하면, 질의 응답 모듈 선택부(222)에서 선택된 모듈 각각에서 수행된 QA 결과는 질의 응답 결과 통합부(230)에서 통합되어, 사용자(10)에게 유저 인터페이스(100)를 통하여 응답으로 제공될 수 있다. 3, the QA results of the modules selected by the QA module selecting unit 222 are integrated in the QA unit 230 and transmitted to the user 10 through the user interface 100 . ≪ / RTI >

또한 사용자(10)가 제공받은 응답에 대한 피드백을 유저 인터페이스(100)를 통하여 입력하면, 질의 응답 모듈 로그(227)에 저장되어, 질의 응답 모듈 선택 모델 학습기(224)에서 질의 응답 모듈 동작 예측 모델(225)을 학습하는데 사용될 수 있다. When the feedback of the response provided by the user 10 is inputted through the user interface 100, the feedback is stored in the query response module log 227, and the query response module selection model learning device 224 generates a query response module operation prediction model Lt; RTI ID = 0.0 > 225 < / RTI >

도 5는 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템을 나타내는 블록도이다.5 is a block diagram illustrating an automated query response system in accordance with an exemplary embodiment of the present invention.

도 5를 참조하면, 자동 질의 응답 시스템(2)은 네트워크(20)를 통하여 사용자(10)로부터 질의를 수신하고, 응답을 송신하는 유저 인터페이스(100), 질의 응답 관리자(200), 자연어 이해부(300), 자연어 생성부(400), 모듈 서버(500, 600, 700), 및 도메인 DB부(550)를 포함한다. 일부 실시 예에서, 자동 질의 응답 시스템(2)은 모듈 모델(900)을 더 포함할 수 있다. 5, the automatic question-and-answer system 2 includes a user interface 100 that receives a query from the user 10 via the network 20 and transmits a response, a query response manager 200, A natural language generating unit 400, module servers 500, 600, and 700, and a domain DB unit 550. [ In some embodiments, the automatic question and answer system 2 may further include a module model 900.

질의 응답 관리자(200)는 질의 분석부(210), 모듈 선택 실행(220), 및 질의 응답 결과 통합부(230)를 포함할 수 있다. 자연어 형태인 사용자(10)의 질의에 대하여 자연어 이해부(300)를 참조하여 질의 분석부(210)에서 분석한 후, 이를 토대로 모듈 선택 실행부(220)에서 복수의 도메인 모듈(510, 520, 530, 540), 복수의 플러그인 모듈(610, 620, 630) 및 복수의 API 모듈(710, 720, 730) 중 일부개의 모듈을 선택하여 QA를 수행하도록 실행하고, 그 QA 결과를 자연어 생성부(400)의 자연어 생성 규칙부(410)를 참조하여 질의 응답 결과 통합부(230)에서 자연어 형태인 응답으로 생성하여 사용자(10)에게 제공할 수 있다. 사용자(10)가 제공받은 응답에 대한 피드백을 유저 인터페이스(100)를 통하여 입력하면 질의 응답 결과 통합부(230)는 질의에 대한 응답과 함께 사용자(10)의 피드백을 모듈 선택 실행부(220)에 전달할 수 있다. The query response manager 200 may include a query analysis unit 210, a module selection execution unit 220, and a query response result integration unit 230. The query analysis unit 210 analyzes the query of the user 10 in a natural language form with reference to the natural language understanding unit 300 and then analyzes the query in the domain module 510, 530, and 540, a plurality of plug-in modules 610, 620, and 630, and a plurality of API modules 710, 720, and 730 to perform QA, 400 in the form of a natural language response in the query response result integration unit 230 and provide the response to the user 10. [ When the user 10 inputs the feedback on the response provided by the user 10 through the user interface 100, the query response result integration unit 230 outputs the feedback of the user 10 to the module selection execution unit 220, .

자연어 이해부(300)는 시맨틱 롤 라벨링부(SRL, 310), 형태소 분석부(320), 구문 분석부(330), 개체명 분석부(340), 필터링 분석부(350), 의도 분류부(360) 및 도메인 분석부(370)를 포함할 수 있다. 시맨틱 롤 라벨링부(310)는 질의에 대한 의미 역할(Semantic Role)을 부여할 수 있다. 형태소 분석부(320)는 의미 역할이 부여된 질의를 형태소 단위로 분리할 수 있다. 구문 분석부(330) 및 개체명 분석부(340)는 각각 형태소 단위로 분리된 질의에 구문 분석 및 개체명 분석을 할 수 있다. 필터링 분석부(350)는 질의에 포함된 불필요한 피쳐(feature)를 제거하여 간결화된 질문 패턴을 생성할 수 있다. 의도 분류부(360) 및 도메인 분석부(370)는 필터링 분석부(350)에서 생성한 간결화된 질문 패턴을 기초로 의미 역할이 부여된 질의의 의도(intention) 분류 및 도메인 분석을 할 수 있다. The natural language understanding unit 300 includes a semantic role labeling unit (SRL) 310, a morphological analysis unit 320, a syntax analysis unit 330, an entity name analysis unit 340, a filtering analysis unit 350, 360 and a domain analysis unit 370. The semantic roll labeling unit 310 may assign a semantic role to the query. The morpheme analysis unit 320 can separate the query assigned with the semantic role into morpheme units. The parser 330 and the entity name analyzer 340 can perform parsing and object name analysis on queries separated by morpheme units, respectively. The filtering analysis unit 350 may generate a simplified query pattern by removing unnecessary features included in the query. The intention classification unit 360 and the domain analysis unit 370 can perform intention classification and domain analysis of a query to which a meaning role is assigned based on the simplified query pattern generated by the filtering analysis unit 350. [

자연어 생성부(400)는 자연어 생성 규칙부(410)를 포함할 수 있다. 질의 응답 결과 통합부(230)는 자연어 생성 규칙부(410)를 참조하여, 자연어 형태의 응답을 생성할 수 있다. The natural language generation unit 400 may include a natural language generation rule unit 410. The query response result integrating unit 230 can generate a natural language response by referring to the natural language creation rule unit 410. [

모듈 서브(500, 600, 700)는 예를 들면, 도메인 모듈 서버(500), 플러그인 모듈 서버(600) 및 외부 서비스 모듈 서버(700) 중 적어도 하나를 포함할 수 있다. Module sub-servers 500, 600 and 700 may include at least one of a domain module server 500, a plug-in module server 600 and an external service module server 700, for example.

도메인 모듈 서버(500)가 가지는 제1 내지 제4 도메인 모듈(510, 520, 530, 540)은 예를 들면, FBQA(Factoid Based Question Answering) 모듈, TBQA(Template Based Question Answering) 모듈, GBQA(Generated Based Question Answering) 모듈, DNQA(Deep Neural Based Question Answering), 또는 IRQA(Informationu Retrievalu Based Question Answering) 모듈일 수 있다. The first to fourth domain modules 510, 520, 530, and 540 of the domain module server 500 may include, for example, a Factoid Based Question Answering (FBQA) module, a Template Based Question Answering (TBQA) Based Question Answering module, a DNQA (Deep Neural Based Question Answering) module, or an IRQA (Information Retrieval Based Question Answering) module.

도메인 모듈 서버(500)가 가지는 제1 내지 제4 도메인 모듈(510, 520, 530, 540)은 도메인 DB부(550)가 가지는 복수의 도메인 DB(551, 552, 553, 554) 중 적어도 하나의 도메인 DB를 참조하여, 답변을 생성할 수 있다. 복수의 도메인 DB(551, 552, 553, 554)은 지식 데이터가 축적된 지식베이스일 수 있다. 도메인 DB(551, 552, 553, 554)은 예를 들면, 일반 상식 지식베이스, 역사 도메인 지식베이스, 인물 도메인 지식베이스, 영화 도메인 지식베이스, 음악 도메인 지식베이스, 헬스 도메인 지식베이스, 퍼스널 어시스턴트 도메인 지식베이스, 또는 음식 식당 도메인 지식베이스일 수 있다. The first to fourth domain modules 510, 520, 530 and 540 of the domain module server 500 are connected to at least one of the plurality of domain databases 551, 552, 553 and 554 of the domain DB unit 550 By referring to the domain DB, an answer can be generated. The plurality of domain DBs 551, 552, 553, and 554 may be knowledge bases in which knowledge data is accumulated. The domain DBs 551, 552, 553 and 554 may include, for example, a common knowledge base, a history domain knowledge base, a person domain knowledge base, a movie domain knowledge base, a music domain knowledge base, a health domain knowledge base, Base, or food restaurant domain knowledge base.

플러그인 모듈 서버(600)가 가지는 제1 내지 제3 플러그인 모듈(610, 620, 630)은 지식베이스를 참조하지 않고 자체적으로 QA를 수행할 수 있도록 구성되어 자동 질의 응답 시스템(2)에 탑재될 수 있다. 제1 내지 제3 플러그인 모듈(610, 620, 630)은 예를 들면, 수학연산 플러그인, 단위변환 플러그인, 시간날짜 플러그인, 거리계산 플러그인, 또는 환율변환 플러그인일 수 있다. The first to third plug-in modules 610, 620 and 630 of the plug-in module server 600 can be configured to perform the QA on their own without referring to the knowledge base and can be installed in the automatic question and answer system 2 have. The first to third plug-in modules 610, 620, 630 may be, for example, a mathematical operation plug-in, a unit conversion plug-in, a time date plug-in, a distance calculation plug-in, or a currency conversion plug-

자동 질의 응답 시스템(2)은 외부 서비스 모듈 서버(700)와 네트워크(20a)를 통하여 외부 서비스/DB(750)와 연결될 수 있다. 네트워크(20a)는 사용자(10)가 유저 인터페이스(100)와 질의 응답을 송수신하는 네트워크(20)와 동일한 종류일 수 있는 바, 자세한 설명은 생략한다. 외부 서비스 모듈 서버(700)가 가지는 제1 내지 제3 API 모듈(710, 720, 730)은 QA를 수행할 수 있는 외부 서비스(751, 753, 755)를 연결할 수 있는 API를 가질 수 있다. 예를 들면, 외부 서비스 모듈 서버(700)는 제1 API 모듈(710), 제2 API 모듈(720), 및 제3 API 모듈(730)을 포함할 수 있고, 제1 API 모듈(710), 제2 API 모듈(720), 및 제3 API 모듈(730) 각각은 네트워크(20a)를 통하여 제1 서비스(751), 제2 서비스(753), 및 제3 서비스(755)와 연결될 수 있다. 제1 서비스(751), 제2 서비스(753), 및 제3 서비스(755)는 각각 독자적인 제1 외부 DB(752), 제2 외부 DB(754), 및 제3 외부 DB(756)와 연결되거나, 이를 포함할 수 있다. 예를 들면, 제1 서비스(751), 제2 서비스(753), 및 제3 서비스(755)는 지리날씨 서비스, 환율변환 서비스, 또는 검색 서비스일 수 있으며, 제1 외부 DB(752), 제2 외부 DB(754), 및 제3 외부 DB(756)는 지리날씨 DB, 환율정보 DB, 또는 검색 DB일 수 있다. The automatic question and answer system 2 may be connected to the external service DB 750 through the external service module server 700 and the network 20a. The network 20a may be of the same type as the network 20 in which the user 10 sends and receives query responses to the user interface 100, and thus a detailed description thereof will be omitted. The first to third API modules 710, 720 and 730 of the external service module server 700 may have APIs for connecting external services 751, 753 and 755 capable of performing QA. For example, the external service module server 700 may include a first API module 710, a second API module 720, and a third API module 730, and the first API module 710, The second API module 720 and the third API module 730 may be connected to the first service 751, the second service 753 and the third service 755 via the network 20a. The first service 751, the second service 753 and the third service 755 are connected to a first external DB 752, a second external DB 754 and a third external DB 756, respectively, Or may include. For example, the first service 751, the second service 753, and the third service 755 may be a geography weather service, a currency conversion service, or a search service, and may include a first external DB 752, 2 external DB 754 and the third external DB 756 may be a geographical weather DB, an exchange rate information DB, or a search DB.

모듈 모델(900)은 질의 응답 로직(910), 질의 응답 실행조건(920) 및 자연어 생성 룰(NLG Rule, 930)을 포함할 수 있다. 질의 응답 로직(910)은 복수의 도메인 모듈(510, 520, 530, 540) 및 복수의 플러그인 모듈(610, 620, 630)에서, 질의에 대한 단위 자연어 분석 결과로부터 답변을 생성하기 위한 논리를 제공할 수 있다. 질의 응답 실행조건(920)은 복수의 도메인 모듈(510, 520, 530, 540), 복수의 플러그인 모듈(610, 620, 630)에서, 질의에 대한 단위 자연어 분석 결과로부터 답변을 생성하는 과정에서 참조해야하는 조건들을 제공할 수 있다. 자연어 생성 룰(930)은 복수의 도메인 모듈(510, 520, 530, 540), 복수의 플러그인 모듈(610, 620, 630)에서 수행된 QA 결과로부터 자연어 생성 규칙부(410)를 참조하여, 자연어 형태의 답변을 생성하기 위한 규칙을 제공할 수 있다. Module model 900 may include query response logic 910, query response execution conditions 920, and natural language generation rules (NLG Rule 930). The query response logic 910 provides logic for generating an answer from the results of unit natural language analysis for a query in a plurality of domain modules 510, 520, 530, 540 and a plurality of plugin modules 610, 620, 630 can do. The query response execution condition 920 is used to generate a response from a unit natural language analysis result of a query in a plurality of domain modules 510, 520, 530, 540 and a plurality of plugin modules 610, 620, 630 You can provide the conditions you need. The natural language generation rule 930 refers to the natural language generation rule part 410 from the QA results performed by the plurality of domain modules 510, 520, 530 and 540 and the plurality of plugin modules 610, 620 and 630, You can provide a rule to create a form of answer.

도 6은 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템의 도메인 모듈 서버와 도메인 DB부를 상세히 나타내는 블록도이다.6 is a detailed block diagram illustrating a domain module server and a domain DB unit of the automatic question and answer system according to an exemplary embodiment of the present invention.

도 6을 참조하면, 도메인 모듈 서버(500)는 복수의 도메인 모듈(510a, 520a, 530a, 540a)을 가지는 도메인 모듈부(580) 및, 도메인 모듈부(580)가 가지는 복수의 도메인 모듈(510a, 520a, 530a, 540a) 각각에 대한 정보를 가지는 도메인 모듈 등록부(590)를 포함한다. 도메인 모듈 등록부(590)는 복수의 도메인 모듈(510a, 520a, 530a, 540a) 각각에 대한 질의 응답 커버리지를 가질 수 있다. 6, the domain module server 500 includes a domain module 580 having a plurality of domain modules 510a, 520a, 530a, and 540a, and a plurality of domain modules 510a , 520a, 530a, and 540a, respectively. The domain module registration unit 590 may have a query response coverage for each of a plurality of domain modules 510a, 520a, 530a, and 540a.

복수의 도메인 모듈(510a, 520a, 530a, 540a)은 각각 FBQA 모듈(510a), TBQA 모듈(520a), GBQA 모듈(530a), DNQA 모듈(540a)일 수 있다. FBQA 모듈(510a)은 단문 형태의 질의를 키워드 기반의 패턴 매칭을 통하여, 자동으로 SPARQL 형태의 질의를 생성한 후, 도메인 DB부(550), 즉 지식베이스에 질의하여 답변을 생성할 수 있다. TBQA 모듈(520a)은 미리 작성된 템플릿들을 기반으로, 질의로부터 템플릿 매핑을 하여 템플릿에 기초한 질의를 완성한 후, 도메인 DB부(550), 즉 지식베이스에 질의하여 답변을 생성할 수 있다. GBQA 모듈(530a)은 단문보다 복잡한 형태의 질의들을 구문분석 등을 활용하여 분석해서, 자동으로 SPARQL 형태의 질의를 생성하고, 도메인 DB부(550), 즉 지식베이스에 질의하여 답변을 생성할 수 있다. DNQA 모듈(540a)은 딥 러닝 신경망(Neural Network)을 사용하여 질의를 생성하고, 도메인 DB부(550), 즉 지식베이스에 질의하여 답변을 생성할 수 있다. The plurality of domain modules 510a, 520a, 530a, and 540a may be FBQA module 510a, TBQA module 520a, GBQA module 530a, and DNQA module 540a, respectively. The FBQA module 510a can automatically generate a SPARQL-type query through keyword-based pattern matching of a short-form query, and then generate an answer by querying the domain DB unit 550, i.e., the knowledge base. The TBQA module 520a may generate a response by querying the domain DB unit 550, that is, the knowledge base, after completing the template-based query by performing template mapping from the query based on previously prepared templates. The GBQA module 530a analyzes a query of a more complex form than a short sentence by using a syntax analysis or the like to automatically generate a SPARQL type query and generate an answer by querying the domain DB unit 550, have. The DNQA module 540a may generate a query using a Deep Learning Neural Network and may generate an answer by querying the domain DB portion 550, i.e., the knowledge base.

일부 실시 예에서, 도메인 모듈부(580)는 IRQA 모듈을 더 포함할 수 있다. IRAQ 모듈은 질의에 대하여 검색 기반으로 답변을 생성할 수 있다. In some embodiments, the domain module portion 580 may further include an IRQA module. The IRAQ module can generate a search-based answer to a query.

도메인 DB부(550)는 예를 들면, 일반 상식 지식베이스(551a), 역사 도메인 지식베이스(552a), 인물 도메인 지식 베이스(553a), 영화 도메인 지식베이스(554a)등 각 도메인에 해당하는 별도의 지식베이스를 포함할 수 있다. 일부 실시 예에서, 도메인 DB부(550)는 음악 도메인 지식베이스, 헬스 도메인 지식베이스와 같은 지식 베이스를 더 포함할 수 있다. The domain DB unit 550 includes a common domain knowledge base 551a, a history domain knowledge base 552a, a person domain knowledge base 553a, and a movie domain knowledge base 554a. Knowledge base. In some embodiments, the domain DB portion 550 may further include a knowledge base such as a music domain knowledge base, a health domain knowledge base, and the like.

구체적으로, FBQA 모듈(510a)은 단문 형태의 질의에 대해 처리가 가능하며, 예로 "한라산의 높이는?"과 같은 형태의 질의로부터 "한라산 = class:Mountain", "높이=property:altitude"와 같이 엔티티(entity)와 프로퍼티(property) 등의 클래스(class)를 찾아내고, 해당 클래스들을 가지는 패턴(EP)에 맞는 미리 정의된 SPARQL을 통해 질의에 대한 답변을 생성할 수 있다. 예를 들면, 자연어 생성 룰(도 5의 930)에서 해당 EP 패턴에 대하여 제공하는 규칙이 단답형인 경우 1950m라는 답변을 생성하게 된다. FBQA 모듈(510a)은 EP(Entity, Property) 패턴, EPP(Entity, 2 Property) 패턴(예를 들면, 영화 명량(class:Movie)을 만든(property:create) 감독(property:director)은?), EPQ(Entity, Property, Quntity) 패턴(예를 들면, I.O.I(class:Artist)의 멤버(property:member)는 몇 명(quantity)인가?) 등 질의에 따라 다양하게 정의된 패턴을 가질 수 있다. Specifically, the FBQA module 510a can process a short-form query. For example, a query such as "height of Mt. Halla ?," It is possible to find a class such as an entity and a property and generate a response to a query through a predefined SPARQL corresponding to a pattern EP having the corresponding classes. For example, in the natural language generation rule (930 in FIG. 5), when the rule provided for the corresponding EP pattern is a short response type, an answer of 1950m is generated. The FBQA module 510a includes an EP (Entity, Property) pattern, an EPP (Entity, 2 Property) pattern (for example, a property: , And the EPQ (Entity, Property, Quntity) pattern (for example, how many members of the IOI (class: Artist) are the quantity?). .

구체적으로, TBQA 모듈(520a)은 단문 보다는 좀 더 복잡한 형태의 QA를 수행하며, 도메인에 따라 질의의 의도(intention)를 분류하고, 각 의도에 미리 정의된 SPARQL 템플릿에 맵핑하여 SPARQL을 생성하여, 질의에 대한 답변을 생성할 수 있다. 즉, TBAQ 모듈(520a)은 특정 도메인에 특화된 질의들을 처리할 수 있다. 예를 들면, "바람과 함께 사라지다의 여자 주인공은?"과 같은 질의에 대해서는 해당 질의의 의도에 미리 정의된 SPARQL 템플릿에 매핑하여 해당 질의에 대한 SPARQL을 생성한 후, 영화 도메인 지식베이스(720a)를 참조하여 답변을 생성할 수 있다.  Specifically, the TBQA module 520a performs a more complex type of QA than a short sentence. It generates an SPARQL by classifying the intention of a query according to a domain, mapping the intention to a SPARQL template defined in each intention, You can create an answer to the query. That is, the TBA module 520a may process queries specific to a particular domain. For example, a query such as " What is the main character of the girl disappearing with the wind? "Is mapped to a SPARQL template defined in advance in the intention of the query to generate a SPARQL for the query, To generate an answer.

예를 들면, 영화 도메인에 특화된 질의 중 질의의 의도가 영화 내용에 관한 것인지, 영화 배우에 관한 것인지, 영화 상영(극장, 시간 등)에 관한 것인지 등에 따라서, TBQA 모듈(520a)은 각각 정의된 복수의 SPARQL 템플릿을 가질 수 있으며, 세부적인 질의의 의도에 따라서, 더욱 다양한 SPARQL 템플릿을 가질 수 있다. For example, the TBQA module 520a may determine whether the intention of the query is related to the movie content, the movie actor, the movie screening (theater, the time, etc.) Of SPARQL templates, depending on the intent of the detailed query, you can have more SPARQL templates.

따라서 도메인 모듈부(580)가 가지는 복수의 도메인 모듈(510a, 520a, 530a, 540a)들은, 자연어 이해부(도 5의 300)의 질의에 대한 분석 결과에 따라서 질의 동작 적합도가 다를 수 있다. Therefore, the plurality of domain modules 510a, 520a, 530a, and 540a of the domain module unit 580 may have different query operation suitability according to the analysis result of the query of the natural language understanding unit 300 (FIG. 5).

도 7은 본 발명의 예시적 실시 예에 따른 자동 질의 응답 시스템의 플러그인 모듈 서버를 상세히 나타내는 블록도이다.7 is a block diagram illustrating the plug-in module server of the automatic question-answering system according to an exemplary embodiment of the present invention in detail.

도 7을 참조하면, 플로그인 모듈 서버(600)는 복수의 플러그인(610a, 620a, 630a)을 가지는 플러그인 모듈부(680), 및 플러그인 모듈부(680)가 가지는 복수의 플러그인(610a, 620a, 630a) 각각에 대한 정보를 가지는 플러그인 등록부(690)를 포함한다. 플러그인 등록부(690)는 복수의 플러그인(610a, 620a, 630a) 각각에 대한 질의 응답 커버리지를 가질 수 있다. 7, the plug-in module server 600 includes a plug-in module 680 having a plurality of plug-ins 610a, 620a, and 630a, and a plurality of plug-ins 610a, 620a, And a plug-in register 690 having information on each of the plug-in registers 630a and 630a. The plugin register 690 may have a query response coverage for each of the plurality of plugins 610a, 620a, 630a.

복수의 플러그인(610a, 620a, 630a)은 각각 수학연산 플러그인(610a), 단위변환 플러그인(620a), 시간날짜 플러그인(630a)일 수 있다. The plurality of plugins 610a, 620a, and 630a may be a mathematical operation plug-in 610a, a unit conversion plug-in 620a, and a time date plug-in 630a, respectively.

수학연산 플러그인(610a)은 사칙연산 등 수학연산에 관한 질의에 대한 답변을 자체적으로 생성할 수 있다. 단위변환 플러그인(620a)은 단위 변환에 관한 질의에 대한 답변을 자체적으로 생성할 수 있다. 시간날짜 플러그인(650a)은 시간, 날짜에 대한 질의, 세계 시계, 양음력 변환 등과 같은 질의에 대한 답변을 자체적으로 생성할 수 있다. The mathematical operation plug-in 610a can itself generate an answer to a query regarding mathematical operations such as arithmetic operations. The unit conversion plug-in 620a can itself generate an answer to the inquiry about the unit conversion. The time date plug-in 650a can itself generate responses to queries such as time, date queries, world clocks, volume transitions, and the like.

따라서 플러그인 모듈부(680)가 가지는 복수의 플러그인(610a, 620a, 630a)들은, 자연어 이해부(도 5의 300)의 질의에 대한 분석 결과, 즉 지식베이스를 참조하지 않고 자체적으로 답변을 생성할 수 있는지에 따라서 질의 동작 적합도가 다를 수 있다. Therefore, the plurality of plug-ins 610a, 620a, and 630a included in the plug-in module unit 680 can generate the answers themselves without referring to the analysis result of the query of the natural language understanding unit 300 The quality of the query operation may be different.

도 8은 본 발명의 예시적 실시 예에 따른 외부 서비스 모듈 서브와 이에 연결되는 외부 서비스/DB를 상세히 나타내는 블록도이다.8 is a block diagram illustrating in detail an external service module sub and an external service / DB coupled thereto according to an exemplary embodiment of the present invention.

도 8을 참조하면, 외부 서비스 모듈 서버(700)는 복수의 API 모듈(710a, 720a, 730a)을 가지는 API 모듈부(780), 및 API 모듈부(780)가 가지는 복수의 API 모듈(710a, 720a, 730a) 각각에 대한 정보를 가지는 외부 서비스 모듈 등록부(790)를 포함한다. 외부 서비스 모듈 등록부(790)는 복수의 API 모듈(710a, 720a, 730a) 각각과 연결되어 QA를 수행할 수 있는 복수의 외부 서비스(751a, 753a, 755a) 각각에 대한 질의 응답 커버리지를 가질 수 있다. 8, the external service module server 700 includes an API module 780 having a plurality of API modules 710a, 720a, and 730a, and a plurality of API modules 710a, And an external service module registration unit 790 having information on each of the external service modules 720a and 730a. The external service module registration unit 790 may have a query response coverage for each of a plurality of external services 751a, 753a, and 755a that are connected to the plurality of API modules 710a, 720a, and 730a, respectively, .

복수의 API 모듈(710a, 720a, 730a)은 외부 서비스/DB(750)와 네트워크(20a)를 통하여 연결될 수 있다. The plurality of API modules 710a, 720a, and 730a may be connected to the external service / DB 750 through the network 20a.

복수의 API 모듈(710a, 720a, 730a)은 지리날씨 서비스 API(710a), 환율변환 서비스 API(720a), 검색 서비스 API(730a)일 수 있으나, 이에 한정되지 않는다. The plurality of API modules 710a, 720a, and 730a may be, but not limited to, a geography weather service API 710a, a currency conversion service API 720a, and a search service API 730a.

외부 서비스/DB(750)는 예를 들면, 지리날씨 서비스(751a) 및 이와 연결되거나 이에 포함되는 지리날씨 DB(752a), 환율변환 서비스(753a) 및 이와 연결되거나 이에 포함되는 환율정보 DB(754a), 및 검색 서비스(755a) 및 이와 연결되거나 이에 포함되는 검색 DB(756a) 중 적어도 하나일 수 있으나, 이에 한정되지 않는다. The external service / DB 750 may include, for example, a geography weather service 751a and a geographical weather DB 752a, a currency conversion service 753a associated with or included therein, and a currency exchange information DB 754a ), And search service 755a, and a search DB 756a associated with or included therein, but are not limited thereto.

지리날씨 서비스 API(710a)는 지리날씨 서비스(751a)와 연결되기 위한 API를 가질 수 있으며, 지리날씨 서비스(751a)를 통하여 두지역 사이의 거리 또는 경로, 특정 지역의 현재 날씨, 날씨 예보, 과거 날씨 등과 같은 질의에 대한 답변을 생성할 수 있다. 환율변환 서비스 API(720a)는 환율변환 서비스(753a)와 연결되기 위한 API를 가질 수 있으며, 환율변환 서비스(753a)를 통하여 현재 환율, 다른 화폐 사이의 환율 변환 등과 같은 질의에 대한 답변을 생성할 수 있다. 검색 서비스 API(730a)는 검색 서비스(755a)와 연결되기 위한 API를 가질 수 있으며, 검색 서비스(755a)를 통하여 검색을 통하여 질의에 대한 답변을 생성할 수 있다. The geography weather service API 710a may have an API to be associated with the geography weather service 751a and may be provided to the geography weather service 751a via a geographic weather service 751a to determine the distance or path between the two regions, You can generate answers to queries such as weather. The exchange conversion service API 720a may have an API to be associated with the exchange rate conversion service 753a and may generate an answer to the query such as the current exchange rate, exchange rate between different currencies, etc. through the exchange rate conversion service 753a . The search service API 730a may have an API to be connected to the search service 755a and may generate an answer to the query through the search service 755a.

따라서 API 모듈부(780)가 가지는 복수의 API 모듈(710a, 720a, 730a)들은, 자연어 이해부(도 5의 300)의 질의에 대한 분석 결과, 외부 서비스/DB를 참조하여 자체적으로 답변을 구할 수 있는지에 따라서 질의 동작 적합도가 다를 수 있다. Therefore, the plurality of API modules 710a, 720a, and 730a of the API module unit 780 can obtain an answer to itself by referring to the external service / DB as a result of the analysis of the query of the natural language understanding unit 300 The quality of the query operation may be different.

이상, 본 발명을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명은 상기 실시예에 한정되지 않고, 본 발명의 기술적 사상 및 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, This is possible.

1, 2 : 자동 질의 응답 시스템, 10 : 사용자, 20, 20a : 네트워크, 100 : 유저 인터페이스, 200 : 질의 응답 관리자, 300 : 자연어 이해부, 400 : 자연어 생성부, 500 : 도메인 모듈 서버, 550 : 도메인 DB부, 600 : 플러그인 모듈 서버, 700 : 외부 서비스 모듈 서버, 900 : 모듈/플러그인 모델The present invention relates to an automatic query response system and a method and system for automatically inquiring response to a questionnaire response message in response to a request from a user, Domain DB unit 600: plug-in module server 700: external service module server 900: module / plug-in model

Claims (10)

네트워크를 통하여 자연어 형태인 질의를 사용자로부터 수신하고 응답을 송신하는 유저 인터페이스;
질의 응답을 수행할 수 있는 복수의 질의 응답(QA) 모듈을 가지는 적어도 하나의 모듈 서버;
상기 질의에 대한 자연어 분석을 수행하는 질의 분석부;
상기 질의의 자연어 분석 결과를 기초로 상기 복수의 QA 모듈 중 일부 개를 선택하는 모듈 선택 실행부; 및
상기 질의에 대한 상기 응답을 상기 유저 인터페이스를 통하여 상기 사용자에게 제공하는 질의 응답 결과 통합부;를 포함하며,
상기 모듈 선택 실행부는,
상기 질의의 자연어 분석 결과를 제공받아, 상기 질의에 대한 상기 복수의 QA 모듈별 질의 동작 적합도를 학습을 통해 예측하는 질의 응답 동작 예측부;
상기 복수의 QA 모듈별로 설정된 질의 응답 커버리지와 상기 질의 동작 적합도를 함께 참조하여, 상기 복수의 QA 모듈 중 일부 개를 선택하는 질의 응답 모듈 선택부; 및
상기 복수의 QA 모듈 중 상기 질의 응답 모듈 선택부에서 선택된 일부 개에 상기 질의의 자연어 분석 결과를 제공하여, 질의 응답을 수행하도록 하는 질의 응답 모듈 실행부;를 포함하는 자동 질의 응답 시스템.
A user interface for receiving a query in natural language form from a user via a network and sending a response;
At least one module server having a plurality of QA modules capable of performing a query response;
A query analyzer for performing a natural language analysis on the query;
A module selection execution unit for selecting some of the plurality of QA modules based on a natural language analysis result of the query; And
And a query response result integration unit for providing the response to the query to the user via the user interface,
Wherein the module selection execution unit comprises:
A query response operation predicting unit that receives a natural language analysis result of the query and predicts a query operation fitness for each of the plurality of QA modules for the query through learning;
A query response module selection unit for selecting some of the plurality of QA modules with reference to the query response coverage set for each of the plurality of QA modules and the query operation suitability; And
And a query response module executing unit for providing a natural language analysis result of the query to some of the plurality of QA modules selected by the query response module selection unit to perform a query response.
제1 항에 있어서,
상기 모듈 선택 실행부는 질의 응답 모듈 동작 예측 모델을 학습하는 질의 응답 모듈 선택 모델 학습기를 더 포함하고,
상기 질의 응답 동작 예측부는, 학습된 상기 질의 응답 모듈 동작 예측 모델기설정된 질의 응답 모듈 동작 규칙을 기반으로 상기 복수의 QA 모듈별 질의 동작 적합도를 예측하는 것을 특징으로 하는 자동 질의 응답 시스템.
The method according to claim 1,
Wherein the module selection execution unit further comprises a query response module selection model learning unit that learns a query response module operation prediction model,
Wherein the query response operation predicting unit predicts the query operation fitness for each of the plurality of QA modules based on the learned query response module operation prediction model and the query response module operation rule set in advance.
제2 항에 있어서,
상기 질의 응답 모듈 선택 모델 학습기는,
상기 복수의 QA 모듈 각각에서 수행된 질의 응답 결과, 및 상기 사용자의 상기 응답에 대한 피드백을 사용하여, 상기 질의 응답 모듈 동작 예측 모델을 학습하는 것을 특징으로 하는 자동 질의 응답 시스템.
3. The method of claim 2,
Wherein the query response module selection model learning device comprises:
Wherein the learning model learning unit learns the query response module operation prediction model using the query response result performed in each of the plurality of QA modules and the feedback on the response of the user.
제1 항에 있어서,
각각 지식데이터가 축적된 지식베이스인 복수의 도메인 DB를 더 포함하며,
상기 복수의 QA 모듈 중 일부 개는 상기 복수의 도메인 DB 중 적어도 하나를 참조하여 답변을 생성하는 것을 특징으로 하는 자동 질의 응답 시스템.
The method according to claim 1,
Further comprising a plurality of domain DBs each of which is a knowledge base on which knowledge data is accumulated,
Wherein some of the plurality of QA modules generate an answer with reference to at least one of the plurality of domain DBs.
제4 항에 있어서,
상기 복수의 QA 모듈 중 다른 일부 개는 상기 복수의 도메인 DB를 참조하지 않고 자체적으로 답변을 생성하는 플러그인 모듈인 것을 특징으로 하는 자동 질의 응답 시스템.
5. The method of claim 4,
Wherein the plurality of QA modules are plug-in modules that generate their own responses without referring to the plurality of domain DBs.
제4 항에 있어서,
상기 복수의 QA 모듈 중 다른 일부 개는 네트워크를 통하여 외부 서비스와 연결되어 답변을 생성하는 것을 특징으로 하는 자동 질의 응답 시스템.
5. The method of claim 4,
Wherein some of the plurality of QA modules are connected to an external service through a network to generate an answer.
제4 항에 있어서,
상기 복수의 QA 중 모듈 중 상기 복수의 도메인 DB 중 적어도 하나를 참조하는 일부개는, 상기 사용자의 질의를 키워드 기반의 패턴 매칭을 통하여 SPARQL 형태의 질의를 생성하여 답변을 생성하는 FBQA 모듈, 미리 작성된 템플릿들을 기반으로 상기 사용자의 질의로부터 템플릿 매핑을 하여 템플릿에 기초한 질의를 생성하하여 답변을 생성하는 TBQA 모듈, 상기 사용자의 질의를 구문분석으로 분석하여 SPARQL 형태의 질의를 생성하여 답변을 생성하는 GBQA 모듈, 및 딥 러닝 신경망(Neural Network)을 사용하여 질의를 생성하여 답변을 생성하는 DNQA 모듈을 포함하는 것을 특징으로 하는 자동 질의 응답 시스템.
5. The method of claim 4,
Some of the modules referring to at least one of the plurality of domain DBs among the plurality of QA modules include an FBQA module for generating a SPARQL type query through pattern matching of a keyword based on the user's query to generate a response, A TBQA module for generating a query based on a template by performing template mapping from the user's query based on the templates, a TBQA module for analyzing the user's query by parsing to generate a SPARQL-type query, Module, and a DNQA module for generating a query using a Deep Learning Neural Network to generate an answer.
제1 항에 있어서,
상기 질의 분석부가 참조하는 자연어 이해부를 더 포함하며,
상기 자연어 이해부는, 시맨틱 롤 라벨링, 형태소 분석, 구문 분석, 개체명 분석, 필터링 분석, 의도 분류, 및 도메인 분석을 수행하는 것을 특징으로 하는 자동 질의 응답 시스템.
The method according to claim 1,
Further comprising a natural language understanding unit referenced by said query analysis unit,
Wherein the natural language understanding unit performs semantic role labeling, morphological analysis, syntax analysis, object name analysis, filtering analysis, intent classification, and domain analysis.
제8 항에 있어서,
상기 질의의 자연어 분석 결과는, 상기 의도 분류에 의한 의도 정보를 포함하며,
상기 의도 정보는, 상기 형태소 분석을 통하여 분리된 형태소에 어학 사전 정보를 참조하여 부여되며 동음이의어의 의미를 구분하는 어깨 번호를 가지는 것을 특징으로 하는 자동 질의 응답 시스템.
9. The method of claim 8,
Wherein the natural language analysis result of the query includes intention information based on the intention classification,
Wherein the intention information is assigned with reference to language dictionary information in the morpheme separated through the morphological analysis and has a shoulder number for distinguishing the meaning of the homonym.
제1 항에 있어서,
상기 질의 응답 모듈 선택부는,
상기 복수의 QA 모듈 중, 상기 질의 응답 커버리지 및 상기 질의 동작 적합도 중 적어도 하나가 설정된 문턱값 이상인 일부 개를 선택하는 것을 특징으로 하는 자동 질의 응답 시스템.
The method according to claim 1,
Wherein the query response module selection unit comprises:
Wherein at least one of the query response coverage and the query operation fitness among the plurality of QA modules is selected to be equal to or larger than a set threshold value.
KR1020170176480A 2017-12-20 2017-12-20 Automatic Question-Answering system having mutiple Question-Answering modules KR102034646B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170176480A KR102034646B1 (en) 2017-12-20 2017-12-20 Automatic Question-Answering system having mutiple Question-Answering modules

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170176480A KR102034646B1 (en) 2017-12-20 2017-12-20 Automatic Question-Answering system having mutiple Question-Answering modules

Publications (2)

Publication Number Publication Date
KR20190074828A true KR20190074828A (en) 2019-06-28
KR102034646B1 KR102034646B1 (en) 2019-10-22

Family

ID=67066263

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170176480A KR102034646B1 (en) 2017-12-20 2017-12-20 Automatic Question-Answering system having mutiple Question-Answering modules

Country Status (1)

Country Link
KR (1) KR102034646B1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021049706A1 (en) * 2019-09-09 2021-03-18 주식회사 솔트룩스 System and method for ensemble question answering
KR20210033782A (en) * 2019-09-19 2021-03-29 에스케이텔레콤 주식회사 System and Method for Robust and Scalable Dialogue
KR20210051519A (en) * 2019-10-30 2021-05-10 주식회사 솔트룩스 Multi-lingual support question-answering system
KR20210085728A (en) * 2019-12-31 2021-07-08 (주)위드캣 A method and apparatus for question-answering on educational contents in interactive query system
KR20220030088A (en) 2020-09-02 2022-03-10 고려대학교 산학협력단 Apparatus, method and system for determining answer regarding question
WO2022065561A1 (en) * 2020-09-28 2022-03-31 주식회사 마인즈랩 Method for classifying intention of character string and computer program
KR20220042941A (en) * 2020-09-28 2022-04-05 주식회사 마인즈랩 Intent classifier creation interface provision method and computer program
GB2619971A (en) * 2022-06-24 2023-12-27 Ieso Digital Health Ltd A computer-implemented method for providing care

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220058180A (en) 2020-10-30 2022-05-09 주식회사 케이티 Apparatus, method and computer program for providing question answering service
KR102492277B1 (en) 2022-06-28 2023-01-26 (주)액션파워 Method for qa with multi-modal information

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120061133A (en) * 2010-10-25 2012-06-13 한국전자통신연구원 Question type and domain identifying apparatus and method
KR20170053023A (en) * 2015-11-05 2017-05-15 주식회사 나눔기술 Intelligent peripheral)distributed processing system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120061133A (en) * 2010-10-25 2012-06-13 한국전자통신연구원 Question type and domain identifying apparatus and method
KR20170053023A (en) * 2015-11-05 2017-05-15 주식회사 나눔기술 Intelligent peripheral)distributed processing system and method

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021049706A1 (en) * 2019-09-09 2021-03-18 주식회사 솔트룩스 System and method for ensemble question answering
KR20210033782A (en) * 2019-09-19 2021-03-29 에스케이텔레콤 주식회사 System and Method for Robust and Scalable Dialogue
KR20210051519A (en) * 2019-10-30 2021-05-10 주식회사 솔트룩스 Multi-lingual support question-answering system
KR20210085728A (en) * 2019-12-31 2021-07-08 (주)위드캣 A method and apparatus for question-answering on educational contents in interactive query system
KR20220030088A (en) 2020-09-02 2022-03-10 고려대학교 산학협력단 Apparatus, method and system for determining answer regarding question
WO2022065561A1 (en) * 2020-09-28 2022-03-31 주식회사 마인즈랩 Method for classifying intention of character string and computer program
KR20220042940A (en) * 2020-09-28 2022-04-05 주식회사 마인즈랩 Method and computer program for classifying the intent of strings
KR20220042941A (en) * 2020-09-28 2022-04-05 주식회사 마인즈랩 Intent classifier creation interface provision method and computer program
GB2619971A (en) * 2022-06-24 2023-12-27 Ieso Digital Health Ltd A computer-implemented method for providing care

Also Published As

Publication number Publication date
KR102034646B1 (en) 2019-10-22

Similar Documents

Publication Publication Date Title
KR20190074828A (en) Automatic Question-Answering system having mutiple Question-Answering modules
Battle et al. Characterizing exploratory visual analysis: A literature review and evaluation of analytic provenance in tableau
US10671620B2 (en) Method for recommending a teacher in a network teaching system
US9053436B2 (en) Methods and system for providing simultaneous multi-task ensemble learning
KR101915778B1 (en) Automatic Question-Answering System
Mokryn et al. Help Me: Opportunistic smart rescue application and system
Qiu et al. Hierarchical query graph generation for complex question answering over knowledge graph
US20220188661A1 (en) Stateful, Real-Time, Interactive, and Predictive Knowledge Pattern Machine
KR101849750B1 (en) Interactive Automatic Question-Answering System
Fernández et al. A system for relevance analysis of performance indicators in higher education using Bayesian networks
KR20190023316A (en) Question-answering system based dialogue model
Wang Fuzzy comprehensive evaluation of physical education based on high dimensional data mining
KR20190076712A (en) Automatic Question-Answering System multiple Question-Answering modules
Costa et al. Adaptive learning for dynamic environments: A comparative approach
Dan Intelligent English resource recommendation and teaching effect based on symmetric SDAE collaborative filtering algorithm
US11599814B2 (en) Automated exception featurization and search
US20230185812A1 (en) Relevance-independent position effects estimator for digital item ranking
KR20160093489A (en) Content collection and recommendation system and method
Guimarães et al. Identifying journalistically relevant social media texts using human and automatic methodologies
Yuan et al. A Survey on spatiotemporal and semantic data mining
Vijjapu Machine Learning based Recommendations to aid Educational Planning and academic advising through the Virtual Academic Advisor System
Ducasse et al. Finding it now: Construction and configuration of networked classifiers in real-time stream mining systems
Tikhonova et al. Detection the relevance of urban functions for value-based smart city management
Maia et al. TweeProfiles3: visualization of spatio-temporal patterns on Twitter
Zhou Data-driven cyber-physical-social system for knowledge discovery in smart cities.

Legal Events

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