KR101849750B1 - Interactive Automatic Question-Answering System - Google Patents

Interactive Automatic Question-Answering System Download PDF

Info

Publication number
KR101849750B1
KR101849750B1 KR1020170012966A KR20170012966A KR101849750B1 KR 101849750 B1 KR101849750 B1 KR 101849750B1 KR 1020170012966 A KR1020170012966 A KR 1020170012966A KR 20170012966 A KR20170012966 A KR 20170012966A KR 101849750 B1 KR101849750 B1 KR 101849750B1
Authority
KR
South Korea
Prior art keywords
unit
plug
query
natural language
analysis
Prior art date
Application number
KR1020170012966A
Other languages
Korean (ko)
Inventor
함영경
전은정
이경일
Original Assignee
주식회사 솔트룩스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 솔트룩스 filed Critical 주식회사 솔트룩스
Priority to KR1020170012966A priority Critical patent/KR101849750B1/en
Application granted granted Critical
Publication of KR101849750B1 publication Critical patent/KR101849750B1/en

Links

Images

Classifications

    • G06F17/30654
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • G06F17/30684

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention provides an interactive automatic question-answering system which can accurately understand a question of a user, and quickly and accurately answer the question. According to an aspect of the present invention, the interactive automatic question-answering system comprises: a dialog manager to receive a question of a user in a natural language form via a network, transmit an answer, and interactively give and take questions and answers from the user; a question-answering manager to manage the question of the user and a response to the question; a natural language understanding unit having a plurality of unit analysis processes to analyze the question of the user in a natural language form and generate unit natural language analysis results; and a plurality of modules and a plurality plug-ins to receive the unit natural language analysis results generated during the plurality of unit analysis processes of the natural language understanding unit to independently perform analysis. The question-answering manager classifies the unit natural language analysis results generated during the plurality of unit analysis processes of the natural language understanding unit to receive the unit natural language analysis results to transfer the unit natural language analysis results to a module or a plug-in corresponding to each unit natural language analysis result among the plurality of modules and the plurality of plug-ins to allow the module and the plug-in to perform analysis, and allows the user to ask a question by the dialog manager if an answer is not received from the plurality of modules and the plurality of plug-ins or additional information is requested.

Description

대화형 자동 질의응답 시스템{Interactive Automatic Question-Answering System}[0001] Interactive Automatic Question-Answering System [

본 발명은 대화형 자동 질의응답 시스템에 관한 것으로, 자세하게는 QA(Question-Answering) 모듈 및 QA 플러그인 기반의 대화형 자동 질의응답 시스템에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an interactive automatic question-and-answer system, and more particularly to an interactive automatic question-answering system based on a QA (Question-Answering) module and a QA plug-in.

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

웹에 존재하는 데이터의 양이 기하급수적으로 늘어남에 따라, 오늘날의 웹은 사용자가 원하는 거의 모든 정보를 갖고 있다고 볼 수 있을 정도에 이르고 있다. 따라서 사용자가 원하는 정보를 제공하기 위해서는, 웹에 존재하는 데이터를 사용자의 요구에 맞게 적절히 추출할 필요성이 있으며, 이에 따라 사용자의 질의와 관련된 문서를 검색하는 정보검색 연구가 활발히 진행되어, 많은 웹 기반 정보검색 시스템이 만들어졌다. As the amount of data on the Web exponentially grows, today's Web is reaching the point where almost all of the information you want is available. Therefore, in order to provide the information desired by the user, it is necessary to appropriately extract the data existing on the web according to the user's demand. Accordingly, information search researches for searching documents related to the user's query are actively conducted, An information retrieval system was created.

하지만 종래의 웹 기반 정보검색 시스템은 사용자가 직접적인 답변을 요구하는 경우, 관련 문서를 제공해주는 선에서 그친다는 한계를 보인다. 따라서 단순히 관련 문서를 제공하는 정보검색 시스템에서 한 걸음 더 나아가, 사용자의 질의를 명확히 파악하여, 그에 대한 답변 자체를 응답해주는 질의응답 시스템이 요구되고 있다. However, the conventional web-based information retrieval system is limited in that it provides a related document when a user requests a direct answer. Therefore, there is a need for a query and response system that takes a step further in an information retrieval system that simply provides a related document, grasps a user's query clearly, and responds to the answer itself.

본 발명의 기술적 과제는, 사용자의 질의를 정확히 이해하고, 빠르게 정확한 질의응답을 할 수 있는 대화형 자동 질의응답 시스템을 제공하는 것이다. SUMMARY OF THE INVENTION It is an object of the present invention to provide an interactive automatic question and answer system capable of accurately understanding a user's query and promptly and accurately responding to a query.

상기 기술적 과제를 달성하기 위한 본 발명의 기술적 사상의 일측면에 따른 대화형 자동 질의응답 시스템은 네트워크를 통하여 자연어 형태인 사용자의 질의를 수신하고 응답을 송신하며, 상기 사용자와 대화형으로 질문과 대답을 주고받는 대화 관리자, 상기 사용자의 질의 및 그에 대한 상기 응답을 관리하는 질의응답 관리자, 자연어 형태인 상기 사용자의 질의를 분석하며 각각 단위 자연어 분석 결과를 생성하는 복수의 단위 분석 과정을 가지는 자연어 이해부, 및 상기 자연어 이해부의 복수의 단위 분석 과정에서 각각 생성한 단위 자연어 분석 결과를 전달받아, 각각 독립적으로 분석을 수행하는 복수의 모듈 및 복수의 플러그인을 포함하며, 상기 질의응답 관리자는, 상기 자연어 이해부의 복수의 단위 분석 과정에서 각각 생성한 상기 단위 자연어 분석 결과를 구분하여 수신하여 상기 복수의 모듈 및 복수의 플러그인 중 상기 단위 자연어 분석 결과 각각에 대응되는 모듈 또는 플러그인에 전달하여 분석을 수행시키고, 상기 복수의 모듈 및 복수의 플러그인으로부터 답변을 수신하지 못하거나, 추가적인 정보를 요청받은 경우에 상기 대화 관리자를 통하여 상기 사용자에게 상기 질문을 하도록 한다. According to an aspect of the present invention, there is provided an interactive automatic question-answering system for receiving a query of a user in a natural language form through a network and transmitting a response, A query manager responsive to the user's query and the response to the query, a plurality of unit analysis processes for analyzing a query of the user in a natural language form and generating a unit natural language analysis result, And a plurality of modules and a plurality of plugins that receive the unit natural language analysis results respectively generated in the plurality of unit analysis processes of the natural language understanding unit and perform independent analysis respectively, And the unit natural < RTI ID = 0.0 > Analyzing the result of analysis and delivering the analyzed result to a module or a plug-in corresponding to each of the plurality of modules and the plurality of plug-ins, and receiving an answer from the plurality of modules and a plurality of plug- Or to ask the user through the dialog manager if additional information is requested.

상기 대화 관리자는, 상기 질문에 대한 상기 사용자의 대답을 상기 사용자의 질의와 함께 결합하여 상기 질의응답 관리자에 전달할 수 있다. The dialog manager may combine the user's answer to the query with the user's query and send it to the query response manager.

상기 대화 관리자는, 현재 질의에 대한 상기 사용자의 질의, 상기 질문 및 상기 사용자의 대답을 저장하는 숏텀 메모리, 및 상기 사용자와의 이전 질의, 그에 대한 질문 및 대답을 저장하는 사용자 메모리를 포함하며, 상기 사용자 메모리에 저장된 상기 사용자와의 이전 질의, 그에 대한 질문 및 대답을 참조하여, 상기 질문을 생성할 수 있다. Wherein the dialog manager comprises a user memory for storing a query of the user for the current query, a short memory storing the question and the user's answer, and a previous query with the user, a question and an answer thereto, The question may be generated by referring to the previous query with the user stored in the user memory, a question and an answer thereto.

상기 질의응답 관리자는, 상기 복수의 모듈 및 복수의 플러그인 중 분석이 수행 중인 모듈 또는 플러그인에서 일정 시간 내에 전달되는 답변 또는 일정 개수까지 전달된 답변을 기초로, 상기 응답을 생성할 수 있다. The query response manager may generate the response on the basis of a response transmitted to a predetermined number of times or a predetermined number of times in a module or plug-in under analysis among the plurality of modules and a plurality of plug-ins.

상기 질의응답 관리자는, 상기 일정 시간이 초과한 경우, 상기 분석이 수행 중인 모듈 또는 플러그인 중, 답변을 전달하지 않은 모듈 또는 플러그인의 분석을 중단시킬 수 있다. When the predetermined time period has elapsed, the query response manager may stop analysis of a module or plug-in that has not transmitted a response, out of modules or plug-ins being analyzed.

상기 질의응답 관리자는, 상기 일정 개수까지 답변이 전달된 경우, 상기 분석이 수행 중인 모듈 또는 플러그인 중, 답변을 전달하지 않은 모듈 또는 플러그인의 분석을 중단시킬 수 있다. The query response manager may stop analysis of a module or plug-in that has not delivered a response, out of the module or plug-in being analyzed, when a predetermined number of responses have been transmitted.

각각 지식데이터가 축적된 지식베이스인 복수의 도메인 DB를 더 포함하며, 상기 복수의 모듈은 상기 복수의 도메인 DB 중 적어도 하나를 참조하여 답변을 생성하고, 상기 복수의 플러그인은 상기 복수의 도메인 DB와 참조하지 않고 답변을 생성할 수 있다. Wherein each of the plurality of modules generates an answer with reference to at least one of the plurality of domain DBs, and the plurality of plug-ins include a plurality of domain DBs You can generate an answer without referring to it.

상기 복수의 플러그인 중 일부는 자체적으로 답변을 생성하고, 다른 일부는 외부 서비스와 연결되어 답변을 생성할 수 있다. Some of the plurality of plug-ins may generate responses themselves, and others may be associated with external services to generate responses.

상기 자연어 이해부는, 상기 복수의 단위 분석 과정 각각을 수행하는 시맨틱 롤 라벨링부, 형태소 분석부, 구문 분석부, 개체명 분석부, 의도 분류부 및 도메인 분석부를 포함하며, 상기 시맨틱 롤 라벨링부, 상기 형태소 분석부, 상기 구문 분석부, 상기 개체명 분석부, 상기 의도 분류부 및 상기 도메인 분석부 각각에서 수행되는 단위 분석 과정에서 생성되는 상기 단위 자연어 분석 결과를, 생성되는 순서대로 상기 질의응답 관리자에 전송할 수 있다. Wherein the natural language understanding unit includes a semantic roll labeling unit, a morphological analysis unit, a syntax analysis unit, a object name analysis unit, an intention classification unit, and a domain analysis unit, each of which performs the plurality of unit analysis processes, The unit natural language analysis result generated in the unit analysis process performed in each of the morphological analysis unit, the syntax analysis unit, the object name analysis unit, the intention classification unit, and the domain analysis unit is transmitted to the query response manager Lt; / RTI >

상기 질의응답 관리자는, 상기 복수의 모듈 및 복수의 플러그인 중 분석이 수행 중인 모듈 또는 플러그인에서 일정 시간 내에 전달되는 답변들의 유사도를 판단하여, 적어도 2개의 답변의 유사도가 일정 기준 이상인 경우, 유사도가 상기 일정 기준 이상의 적어도 2개의 답변을 기초로, 상기 응답을 생성하며, 유사도가 상기 일정 기준 이상인 적어도 2개의 답변이 전달된 경우, 상기 분석이 수행 중인 모듈 또는 플러그인 중, 답변을 전달하지 않은 모듈 또는 플러그인의 분석을 중단시킬 수 있다. Wherein the query response manager determines a similarity of answers transmitted in a predetermined time in a module or a plug-in under analysis among the plurality of modules and a plurality of plug-ins, and if the similarity of at least two answers is equal to or greater than a certain standard, Wherein the response is generated based on at least two answers that are equal to or greater than a certain criterion, and when at least two answers whose similarity is equal to or higher than the predetermined criterion are delivered, the module or plug- Can be stopped.

본 발명에 따른 대화형 자동 질의응답 시스템은, 사용자와 대화형으로 질문과 대답을 주고 받을 수 있어, 사용자의 질의를 정확하게 이해할 수 있어, 빠르게 정확한 질의응답을 할 수 있다. The interactive automatic question and answer system according to the present invention can interactively exchange questions and answers with a user, and can accurately understand a user's query, thereby enabling a quick and accurate question and answer.

그리고 필요한 모듈 및/또는 플러그인에 대한 분석만을 수행할 수 있어 질의에 응답을 구하는데 요구되는 부하가 최소화될 수 있고, 모듈 및/또는 플러그인 각각에서의 분석이 빨리 시작될 수 있어 질의에 대한 응답을 구하는 시간이 단축될 수 있다. And can only perform analysis on the required modules and / or plug-ins so that the load required to obtain a response to the query can be minimized and the analysis in each module and / or plug-in can be started quickly, Time can be shortened.

또한 복수의 모듈 및 복수의 플러그인 중에서 응답을 구하기 위한 답변을 일정 시간 내에 제공하거나, 일정 개수를 제공하는 것이 있는 경우, 분석이 진행 중인 다른 모듈 및/또는 플러그인에 대한 분석을 중단시킬 수 있으므로, 응답을 구하는데 요구되는 부하가 최소화되고, 응답을 구하는 시간이 단축될 수 있다. Also, if an answer to obtain a response from among a plurality of modules and a plurality of plugins is provided within a predetermined time, or if there is a certain number of times to be provided, the analysis can be stopped for other modules in process and / The load required to obtain the response can be minimized, and the time for obtaining the response can be shortened.

도 1은 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템을 나타내는 블록도이다.
도 2는 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템을 나타내는 블록도이다.
도 3은 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템의 동작을 설명하기 위한 블록도이다.
도 4는 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템의 동작을 설명하기 위한 블록도이다.
도 5는 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템의 동작을 설명하기 위한 블록도이다.
도 6은 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템을 나타내는 블록도이다.
도 7은 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템의 모듈 서버와 도메인 DB부를 상세히 나타내는 블록도이다.
도 8은 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템의 플러그인 서버 및, 플러그인 서버와 연결되는 외부 서비스/DB를 상세히 나타내는 블록도이다.
1 is a block diagram illustrating an interactive automatic question and answer system in accordance with an exemplary embodiment of the present invention.
2 is a block diagram illustrating an interactive automatic question and answer system in accordance with an exemplary embodiment of the present invention.
3 is a block diagram illustrating an operation of an interactive automatic question-answering system according to an exemplary embodiment of the present invention.
4 is a block diagram illustrating an operation of an interactive automatic question and answering system according to an exemplary embodiment of the present invention.
5 is a block diagram illustrating the operation of the interactive automatic question-answering system according to an exemplary embodiment of the present invention.
6 is a block diagram illustrating an interactive automatic question and answer system in accordance with an exemplary embodiment of the present invention.
7 is a block diagram illustrating a module server and a domain DB unit of the interactive 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 / DB connected to a plug-in server and a plug-in server of an interactive automatic question-answering system 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 interactive automatic question and answer system in accordance with an exemplary embodiment of the present invention.

도 1을 참조하면, 대화형 자동 질의응답 시스템(1)은 네트워크(20)를 통하여 사용자(10)로부터 질의를 수신하고, 응답을 송신하는 대화 관리자(100)를 포함한다. 네트워크(20)은 유선 인터넷 서비스, 근거리 통신망(LAN), 광대역 통신망(WAN), 인트라넷, 무선 인터넷 서비스, 이동 컴퓨팅 서비스, 무선 데이터 통신 서비스, 무선 인터넷 접속 서비스, 위성 통신 서비스, 무선 랜, 블루투스 등 유/무선을 통하여 데이터를 주고 받을 수 있는 것을 모두 포함할 수 있다. 네트워크(20)이 스마트폰 또는 태블릿 등과 연결되는 경우, 네트워크(20)은 3G, LTE(long term evolution) 등의 무선 데이터 통신 서비스, 와이파이(Wi-Fi) 등의 무선 랜, 블루투스 등일 수 있다. Referring to Fig. 1, an interactive automatic question and answer system 1 includes a dialog manager 100 that receives a query from a user 10 via a network 20 and transmits 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 smart phone or a tablet, the network 20 may be a wireless data communication service such as 3G, long term evolution (LTE), wireless LAN such as Wi-Fi, Bluetooth,

대화 관리자(100)는 사용자(10)가 사용하는 단말기 등을 통하여 대화형 자동 질의응답 시스템(1)에 엑세스하기 위한 인터페이스를 제공할 수 있다. 사용자(10)는 대화 관리자(100)를 통하여 대화형 자동 질의응답 시스템(1)에 질의를 전송할 수 있고, 대화 관리자(100)를 통하여 대화형 자동 질의응답 시스템(1)의 제공하는 질의에 대한 응답을 수신할 수 있다. The conversation manager 100 may provide an interface for accessing the interactive 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 interactive automatic question answering system 1 via the dialogue manager 100 and to the interactive automatic question answering system 1 via the dialogue manager 100 A response can be received.

또한 대화 관리자(100)는, 사용자(10)의 질의에 대하여, 명확한 응답을 하기 어려운 경우에, 질의를 정확하게 이해하기 위하여, 사용자(10)에게 대화형으로 질문을 할 수 있으며, 질문과 그에 대한 대답을 저장 및 관리할 수 있다. The dialogue manager 100 can also interactively ask the user 10 to correctly understand the query in the event that it is difficult to give a clear answer to the query of the user 10, You can store and manage your answers.

대화형 자동 질의응답 시스템(1)은 대화 관리자(100)와 연결되어 사용자(10)로부터 질의를 전달받고, 응답을 결정하여 대화 관리자(100)를 통하여 사용자(10)에게 응답을 전달하거나, 대화 관리자(100)를 통하여 질문과 대답을 주고받을 수 있도록 하는 질의응답 관리자(200)를 포함한다. 또한 질의응답 관리(200)에 의하여 대화형 자동 질의응답 시스템(1)이 포함하는 구성 요소들을 제어할 수 있다. The interactive automatic question and answer system 1 is connected to the conversation manager 100 to receive a query from the user 10 and to determine a response and to transmit a response to the user 10 via the conversation manager 100, And a question and answer manager 200 that allows the administrator 100 to exchange questions and answers. And can also control the components included in the interactive automatic question and answer system 1 by the question and answer management 200.

대화형 자동 질의응답 시스템(1)은 질의응답 관리자(200)가 전달받은 자연어 형태의 질의를 분석하는 자연어 이해부(300), 자연어 이해부(300)에 의하여 분석된 질의의 자연어 분석 결과를 질의응답 관리자(200)를 통하여 전달받아 질의에 대한 응답을 제공하기 위한 답변들을 제공하는 모듈 서버(500), 및 플러그인 서버(600)를 더 포함할 수 있다. The interactive automatic question and answer system 1 includes a natural language understanding unit 300 for analyzing a natural language type query received by the query response manager 200 and a natural language analysis result of a query analyzed by the natural language understanding unit 300, A module server 500 that provides answers to be provided via the response manager 200 and provides a response to the query, and a plug-in server 600.

본 명세서에서, "응답"이란, 사용자(1)의 질의에 대하여 대화형 자동 질의응답 시스템(1)이 제공하는 결과물, 예컨대, 사용자(1)의 질의라는 질문에 대한 정답을 의미하고, "답변"이란, 모듈 서브(500)의 각 모듈(510, 520, 530) 및/또는 플러그인 서버(600)의 각 플러그인(610, 620, 630, 640, 650, 660)에서 제공하는 분석 결과, 예컨태, 사용자(10)의 질의라는 질문에 대한 각 모듈(510, 520, 530) 및/또는 각 플러그인(610, 620, 630, 640, 650, 660)이 분석한 가답안을 의미한다. 또한 특별히 언급하거나 전제되지 않는 경우, "질문"이란 대화 관리자(100)가 질의에 대한 추가적인 정보를 얻기 위하여 사용자(10)에게 요청을 하는 것을 의미하고, "대답"이란, 대화 관리자(100)의 "질문"에 대한 사용자(10)의 추가 정보 제공인 추가 질의를 의미한다. 즉, 대화형 자동 질의응답 시스템(1)이 "응답"을 제공할 수 있는 질의란, 사용자(10)의 최초 질의와 대답(추가 질의)을 모두 포괄하는 것일 수 있다. In the present specification, the term "response" means a correct answer to the question provided by the interactive automatic question and answer system 1 about the query of the user 1, for example, the query of the user 1, 620, 630, 640, 650, and 660 of the modules 510, 520, 530 and / or the plug-in server 600 of the module sub 500, 530 and / or each of the plug-ins 610, 620, 630, 640, 650, and 660 with respect to the query of the user 10. Quot; means that the dialog manager 100 makes a request to the user 10 to obtain additional information about the query, and the "answer" Quot; additional query ", which is the provision of additional information of the user 10 to the "query ". That is, the query that the interactive automatic question and answer system 1 can provide the "response " may include both the initial query and the answer (additional query) of the user 10. [

본 명세서에서 "모듈"이란, QA 모듈을 의미하는 것으로, 불특정 다수의 정보를 선택하고 조합하여 주어진 문제의 시간과 공간에 적합한 해결책으로 활용이 가능한 것인 지식, 또는 지식을 구현하기 위하여 필요한 개체들 및 이들 사이의 관계를 가지고 있는 데이터인 지식 데이터가 축적된 지식베이스(knowledge base)를 참조하여, QA를 독자적으로 수행할 수 있는 모듈을 의미한다. 또한 "플러그인"이란, QA 플러그인을 의미하는 것으로, 수학연산, 단위변환 등과 같이 지식베이스(도메인 DB)를 참조하지 않고 자체적으로 QA를 수행할 수 있도록 구성되어 대화형 자동 질의응답 시스템(1)에 선택적으로 탑재될 수 있는 것들, 또는 QA를 제공할 수 있는 외부 서비스와 연결시켜줄 수 API(application programming interface)를 가지는 것들을 의미한다. 즉, 모듈과 플러그인은 각각이 다른 모듈이나 플러그인과는 독립적으로, 대화형 자동 질의응답 시스템(1) 내에서 QA를 수행할 수 있도록 구성된 것들을 의미한다. 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 module capable of independently performing QA by referring to a knowledge base in which knowledge data, which is data having a relationship therebetween, is accumulated. Also, the term "plug-in " means a QA plug-in. The " plug-in " means that the QA can be performed by itself without referring to a knowledge base (domain DB) Those that can be selectively loaded, or have an application programming interface (API) that can connect with external services that can provide QA. That is, the modules and plug-ins are configured to be able to perform the QA within the interactive automatic question and answer system 1, independently of each other module or plug-in.

대화형 자동 질의응답 시스템(1)은 자연어 생성부(400)를 더 포함하여, 각 모듈(510, 520, 530) 및/또는 각 플러그인(610, 620, 630, 640, 650, 660)이 자연어 형태의 답변을 제공하도록 하거나, 질의응답 관리자(200)가 자연어 형태의 응답을 제공하도록 할 수 있다. The interactive automatic question and answer system 1 further includes a natural language generation unit 400 so that each module 510, 520 and 530 and / or each of the plugins 610, 620, 630, 640, 650, Type answers, or the query response manager 200 may provide a natural-language response.

즉, 대화형 자동 질의응답 시스템(1)은, 자연어 형태인 사용자(10)의 질의에 대하여 자연어 이해부(300)에서 분석한 후, 이를 토대로 모듈 서버(500) 및/또는 플러그인 서버(600)에서 분석하고, 그 분석 결과인 답변을 자연어 생성부(400)를 통하여 자연어 형태인 응답으로 생성하여 사용자(10)에게 제공할 수 있다. In other words, the interactive automatic question and answer system 1 analyzes the query of the user 10 in the natural language form in the natural language understanding unit 300, and then analyzes the query in the natural language type understanding unit 300 using the module server 500 and / And generates a response in the form of a natural language through the natural language generation unit 400 and provides the response to the user 10.

질의응답 관리자(200)는 알림 수신부(210), 모듈/플러그인 검출부(220), 및 응답 결정부(230)를 포함한다. 알림 수신부(210)는 자연어 이해부(300)에서 분석된 질의의 자연어 분석 결과를 수신할 수 있다. 일부 실시 예에서, 자연어 이해부(300)는 질의에 대한 분석을 수행하는 과정에서, 모든 분석이 완료된 후에 알림 수신부(210)로 전송하지 않고, 분석 단계에서 따른 생성되는 단위 자연어 분석 결과를 일부분을 생성되는 순서대로 순차적으로 알림 수신부(210)에 전송할 수 있다. The query response manager 200 includes a notification receiving unit 210, a module / plug-in detecting unit 220, and a response determining unit 230. The notification receiving unit 210 can receive the result of the natural language analysis of the analyzed query in the natural language understanding unit 300. In some embodiments, the natural language understanding unit 300 does not transmit the analysis result to the notification receiving unit 210 after all the analysis is completed, To the notification receiving unit 210 sequentially in the order in which they are generated.

예를 들면, 자연어 이해부(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, object name analysis, intent classification, and domain analysis on a query . 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 data structure or a structured data having a tree structure. The formatted data provided by the natural language understanding unit 300 may be, for example, Relational DateBase (RDB), Comma-Seperated Variables (CSV), XML (extensible Markup Language), or JSON (JavaScript Object Notation).

알림 수신부(210)는 자연어 이해부(300)에서 수행되는 시맨틱 롤 라벨링, 형태소 분석, 구문 분석, 개체명 분석, 의도 분류, 및 도메인 분석 등의 복수의 단위 분석 과정 중 적어도 하나의 단위 분석 과정의 단위 자연어 분석 결과를 구분하여 수신할 수 있다. 알림 수신부(210)는, 자연어 이해부(300)에서 수신한 각각의 단위 자연어 분석 결과를 질의에 대한 응답이 마무리될 때까지 저장하고 있을 수 있다. 또한 알림 수신부(210)는 자연어 이해부(300)에서 수신한 각각의 단위 자연어 분석 결과를 모듈/플러그인 검출부(220)로 전달할 수 있다. The notification receiving unit 210 receives at least one unit analysis process among a plurality of unit analysis processes such as semantic role labeling, morphological analysis, syntax analysis, object name analysis, intent classification, and domain analysis performed in the natural language understanding unit 300 The unit natural language analysis result can be separately received. The notification receiving unit 210 may store the unit natural language analysis results received by the natural language understanding unit 300 until the response to the query is completed. In addition, the notification receiving unit 210 may transmit the unit natural language analysis results received by the natural language understanding unit 300 to the module / plug-in detection unit 220. [

모듈/플러그인 검출부(220)는 알림 수신부(210)로부터 전달받은 자연어 이해부(300)에서 수신한 각각의 단위 자연어 분석 결과를 토대로, 모듈 서브(500) 및/또는 플러그인 서버(600)로 전달하여, 모듈 서브(500)의 각 모듈(510, 520, 530) 및/또는 플러그인 서버(600)의 각 플러그인(610, 620, 630, 640, 650, 660) 중 해당 단위 자연어 분석 결과 각각에 대응되는 적합한 모듈 및/또는 플러그인에서 질의에 대한 답변을 분석하도록 할 수 있다. The module / plug-in detection unit 220 transmits the unit natural language analysis result received from the notification receiving unit 210 to the module sub 500 and / or the plug-in server 600 based on the unit natural language analysis result received from the natural language understanding unit 300 620, 630, 640, 650, and 660 of the modules 510, 520, and 530 of the module sub 500 and / or plug-in servers 610, 620, 630, 640, 650, and 660 of the plug- Allowing the appropriate modules and / or plug-ins to analyze the answer to the query.

따라서 모듈/플러그인 검출부(220)는 대화형 자동 질의응답 시스템(1)이 가지는 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660) 중 질의에 적합한 모듈 및/또는 플러그인에 대해서만 분석을 수행하도록 할 수 있다. 또한, 질의에 대한 자연어 이해부(300)에서의 분석이 모두 완료되기 이전에도, 부분적인 분석 결과인 단위 자연어 분석 결과를 수신하여, 해당 단위 자연어 분석 결과 에 대응되는 적합한 모듈 및/또는 플러그인을 먼저 구동시킬 수 있다. 따라서 필요한 모듈 및/또는 플러그인에 대한 분석만을 수행할 수 있어 대화형 자동 질의응답 시스템(1)에서 응답을 구하는데 요구되는 부하가 최소화되고, 또한 모듈(510, 520, 530) 및/또는 플러그인(610, 620, 630, 640, 650, 660)에서의 분석이 빨리 시작될 수 있어 응답을 구하는 시간이 단축될 수 있다. Accordingly, the module / plug-in detection unit 220 can detect the presence of a plurality of modules 510, 520, 530 and a plurality of plug-ins 610, 620, 630, 640, 650, 660 of the interactive automatic question- And to perform analysis only for the appropriate modules and / or plug-ins. Further, even before the completion of the analysis in the natural language understanding unit 300 for the query, a unit natural language analysis result as a partial analysis result is received, and an appropriate module and / or plugin corresponding to the unit natural language analysis result is first Can be driven. Therefore, it is possible to perform only analysis for necessary modules and / or plug-ins, so that the load required to obtain a response in the interactive automatic question and answer system 1 is minimized, and the load on modules 510, 520, 530 and / 610, 620, 630, 640, 650, 660) can be started quickly and the time for obtaining a response can be shortened.

복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660) 중 질의에 대한 분석을 수행하여 답변을 구한 모듈 및/또는 플러그인은 그 결과인 답변을 응답 결정부(230)로 전달한다. 응답 결정부(230)는 그 자체적으로, 또는 답변 랭킹부(240)를 참조하여 응답을 결정한 후, 사용자(10)에게 대화 관리자(100)를 통하여 응답을 제공할 수 있다. 또한 응답 결정부(230)는 질의에 대한 응답을 하기 위한 추가적인 정보가 필요한지를 판단하여, 대화 관리자(100)가 사용자(10)에게 질문을 하여 추가 질의(대답)를 요청하도록 할 수 있다. 응답 결정부(230)는 자연어 생성부(400)를 참조하여, 자연어 형태로 응답 또는 질문을 사용자(10)에게 제공할 수 있다. A module and / or plug-in that has performed an analysis of the query among a plurality of modules 510, 520, 530 and a plurality of plug-ins 610, 620, 630, 640, 650, 660, And transmits it to the determination unit 230. The response determination unit 230 may determine the response by itself or by referring to the answer ranking unit 240 and then provide the response to the user 10 through the dialogue manager 100. [ Also, the response determining unit 230 may determine whether additional information is required to respond to the query, and may cause the conversation manager 100 to ask the user 10 to request an additional query. The response determining unit 230 can refer to the natural language generating unit 400 and provide a response or a question to the user 10 in a natural language form.

일부 실시 예에서, 모듈(510, 520, 530) 및/또는 플러그인(610, 620, 630, 640, 650, 660)은 분석을 수행하여 답변을 응답 결정부(230)로 전달할 때, 자연어 생성부(400)를 참조하여, 자연어 형태의 답변을 응답 결정부(230)로 전달할 수 있다. In some embodiments, when modules 510, 520, 530 and / or plug-ins 610, 620, 630, 640, 650, 660 perform analysis and deliver responses to response determiner 230, And transmits the answer in the natural language form to the response determining unit 230 with reference to the response determining unit 400. [

일부 실시 예에서, 응답 결정부(230)는 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660) 중 일정 시간 내에 전달되는 답변들에 대하여만 답변을 수신한 후, 답변 랭킹부(240)를 참조하여 랭킹을 정한 후, 답변들 중 랭킹이 높은 답변을 응답으로 선정하여 사용자(10)에게 제공할 수 있다. 이 경우, 상기 일정 시간이 초과한 경우에는 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660) 중 분석이 진행 중인 모듈 및/또는 플러그인에 대한 분석을 중단시킬 수 있다. In some embodiments, the response determination unit 230 may determine only responses that are delivered within a certain time out of the plurality of modules 510, 520, 530 and the plurality of plug-ins 610, 620, 630, 640, 650, 660 After receiving the answer, the user can determine the ranking by referring to the answer ranking unit 240, and select a response having the highest ranking among the answers as a response, and provide the answer to the user 10. In this case, if the predetermined time has elapsed, the control unit may be configured to notify the module and / or the plug-in which analysis is in progress among the plurality of modules 510, 520, and 530 and the plurality of plug-ins 610, 620, 630, 640, 650, and 660 The analysis can be stopped.

일부 실시 예에서, 응답 결정부(230)는 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660) 중 유사성이 높은 답변이 2개 이상이 수신되는 경우, 해당 답변을 응답으로 선정하여 사용자(10)에게 제공할 수 있다. 이 경우, 상기 유사성이 높은 답변이 2개 이상 수신되는 경우에는 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660) 중 분석이 진행 중인 모듈 및/또는 플러그인에 대한 분석을 중단시킬 수 있다. In some embodiments, the response determination unit 230 may determine that two or more responses having high similarity among the plurality of modules 510, 520, 530 and the plurality of plug-ins 610, 620, 630, 640, 650, It is possible to select the answer as a response and provide it to the user 10. In this case, when two or more answers having high similarity are received, a plurality of modules 510, 520, 530 and a plurality of plug-ins 610, 620, 630, 640, 650, / / Stop the analysis on the plugin.

일부 실시 예에서, 응답 결정부(230)는 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660)으로부터 일정 시간 내에 답변을 수신하지 못하거나, 추가적인 정보를 요청받은 경우에, 대화 관리자(100)를 통하여, 사용자(10)에게 질문을 하도록 할 수 있다. In some embodiments, the response determination unit 230 may not receive a response from the plurality of modules 510, 520, 530 and the plurality of plugins 610, 620, 630, 640, 650, If additional information is requested, the user can be prompted to ask the user 10 through the dialogue manager 100.

따라서 응답 결정부(230)에 동작에 의하여, 질의응답 시스템(1)에서 응답을 구하는데 요구되는 부하가 최소화되고, 응답을 구하는 시간이 단축될 수 있다. Therefore, by the operation of the response determining unit 230, the load required to obtain the response in the question answering system 1 is minimized, and the time for obtaining the response can be shortened.

이와 같은 본 발명의 일 실시 예에 따른 대화형 자동 질의응답 시스템(1)은 질의 분석 과정과 응답 결정 과정 각각에서, 부하를 최소화하고 응답을 구하는 시간을 단축하면서, 동시에 정확한 응답을 사용자(10)에게 제공할 수 있다. The interactive automatic question answering system 1 according to an embodiment of the present invention minimizes the load and shortens the time to obtain a response in each of the query analysis process and the response decision process, .

도 2는 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템을 나타내는 블록도이다. 도 2는 응답 결정부(230)에 대하여 상세하게 도시하고 있으며, 도 1에 대한 설명과 중복되는 내용은 생략될 수 있다.2 is a block diagram illustrating an interactive automatic question and answer system in accordance with an exemplary embodiment of the present invention. FIG. 2 is a detailed view of the response determining unit 230, and the description overlapping with the description of FIG. 1 may be omitted.

도 2를 참조하면, 대화형 자동 질의응답 시스템(1a)은 대화 관리자(100), 질의응답 관리자(200), 모듈 서버(500), 및 플러그인 서버(600)를 포함할 수 있다. 대화형 자동 질의응답 시스템(1a)은 자연어 이해부(300)를 더 포함할 수 있다.2, the interactive automatic question answering system 1a may include a conversation manager 100, a query response manager 200, a module server 500, and a plug-in server 600. [ The interactive automatic question and answer system 1a may further include a natural language understanding unit 300. [

대화형 자동 질의응답 시스템(1a)이 네트워크(20)를 통하여 사용자(10)로부터 자연어 형태의 질의를 수신하면, 자연어 이해부(300)에서는 질의응답 관리자(200)를 통하여 질의를 전달받아, 질의에 대한 자연어 이해를 위한 복수의 단위 분석 과정을 수행한다. 자연어 이해부(300)에서 수행 중인 질의에 대한 복수의 단위 분석 과정 중 각 단위 분석 과정에 대한 단위 자연어 분석 결과가 생성되면, 이를 질의응답 관리자(200)로 송신한다. When the interactive automatic question and answer system 1a receives a natural language query from the user 10 via the network 20, the natural language understanding unit 300 receives the query through the query response manager 200, And a plurality of unit analysis processes for natural language understanding. When a unit natural language analysis result for each unit analysis process among a plurality of unit analysis processes for a query being performed by the natural language understanding unit 300 is generated, the unit natural language analysis result is transmitted to the query response manager 200.

적어도 하나의 단위 분석 과정의 단위 자연어 분석 결과를 알림 수신부(210)가 수신하면, 모듈/플러그인 검출부(220)는 수신된 단위 자연어 분석 결과 각각을 모듈 서브(500)의 복수의 모듈(510, 520, 530) 및 플러그인 서버(600)의 복수의 플러그인(610, 620, 630, 640, 650, 660) 중 상기 단위 자연어 분석 결과 각각에 대응되는 적합한 모듈 및/또는 플러그인에 전달하며, 단위 자연어 분석 결과를 전달받은 모듈 및/또는 플러그인은 답변을 구하여, 응답 결정부(230)로 전달한다. The module / plug-in detection unit 220 receives each of the received natural language analysis results from the plurality of modules 510 and 520 of the module sub 500 620, 630, 640, 650, and 660 of the plug-in server 600 and the appropriate module and / or plug-in corresponding to the result of the unit natural language analysis, The module and / or the plug-in receives the response, and transmits the response to the response determining unit 230.

응답 결정부(230)는 추가 질의 판단부(232), 답변 시간 관리부(234), 답변 유사도 판단부(236) 및 답변 랭킹 판단부(238)를 포함할 수 있다. The response determining unit 230 may include an additional query determining unit 232, an answer time managing unit 234, an answer similarity determining unit 236, and an answer ranking determining unit 238.

답변 시간 관리부(234)는 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660)으로부터 답변이 전달되는 시간 및/또는 개수를 파악하여 관리할 수 있다. The answer time management unit 234 can recognize and manage the time and / or the number of times the answers are delivered from the plurality of modules 510, 520, 530 and the plurality of plugins 610, 620, 630, 640, 650, 660 have.

일부 실시 예에서, 답변 시간 관리부(234)는 일정 시간까지만 응답 결정부(230)에 모듈 및/또는 플러그인으로부터 답변들이 전달되도록 한 후, 일정 시간이 경과되는 경우, 답변을 아직 전달하지 않은 모듈 및/또는 플러그인에서의 분석을 중단시키거나, 일시간으로 중지시킬 수 있다. 이후, 답변 랭킹 판단부(238)는 답변 랭킹부(240)를 참조하여, 일정 시간 내에 전달된 답변들에 대하여, 랭킹을 정한 후, 답변들 중 랭킹이 높은 답변을 질의에 대한 응답으로 선정할 수 있다. In some embodiments, the response time management unit 234 allows the responses to be delivered from the module and / or the plug-in to the response determining unit 230 only up to a predetermined time, and if a predetermined time has elapsed, You can stop the analysis at the plug-in, or stop it at one hour. Then, the answer ranking determining unit 238 refers to the answer ranking unit 240, determines a ranking for the answers delivered within a predetermined time, and selects a response with a high ranking among the answers as a response to the inquiry .

일부 실시 예에서, 답변 시간 관리부(234)는 일정 개수까지만 응답 결정부(230)에 모듈 및/또는 플러그인으로부터 답변들이 전달되도록 한 후, 일정 개수의 답변이 전달된 경우, 답변을 아직 전달하지 않은 모듈 및/또는 플러그인에서의 분석을 중단시키거나, 일시간으로 중지시킬 수 있다. 이후, 답변 랭킹 판단부(238)는 답변 랭킹부(240)를 참조하여, 일정 개수의 전달된 답변들에 대하여, 랭킹을 정한 후, 답변들 중 랭킹이 높은 답변을 질의에 대한 응답으로 선정할 수 있다. In some embodiments, the response time management unit 234 allows the responses to be forwarded from the module and / or plug-in to the response determination unit 230 until a certain number of times, and when a certain number of responses are delivered, The analysis in the module and / or plug-in can be interrupted or stopped at one hour. Then, the answer ranking determining unit 238 refers to the answer ranking unit 240, determines a ranking for a certain number of the transmitted answers, and selects an answer with a high ranking among the answers as a response to the inquiry .

일부 실시 예에서, 답변 시간 관리부(234)는 일정 시간까지 응답 결정부(230)에 모듈 및/또는 플러그인으로부터 답변이 전달되지 않거나, 일정 개수까지의 답변이 전달되지 않거나, 답변을 생성하기 위한 정보가 부족하다는 응답을 받는 경우, 이를 추가 질의 판단부(232)에 전달할 수 있다. In some embodiments, the answer time management unit 234 does not answer the response from the module and / or the plug-in to the response determining unit 230 until a predetermined time, does not forward a predetermined number of answers, It may transmit the response to the additional query determiner 232. [

추가 질의 판단부(232)는 응답 결정부(230)로부터 답변이 전달되지 않거나, 답변을 생성하기 위한 정보가 부족하다는 응답을 받는 경우, 대화 관리자(100)를 통하여 사용자(10)에게 추가 질의를 요청하기 위한 질문을 보내도록 요청할 수 있다. 또는 일부 실시 예에서, 추가 질의 판단부(232)는 응답 결정부(230)에게 일정한 추가 시간 동안 모듈 및/또는 플러그인으로부터 답변을 더 기다리도록 요청할 수 있다. The additional query determiner 232 may provide an additional query to the user 10 via the conversation manager 100 when the response is not transmitted from the response determining unit 230 or a response is received that the information for generating the answer is insufficient You can ask to send a question to ask. Or in some embodiments, the additional query determiner 232 may request the response determiner 230 to wait further for an answer from the module and / or plugin for a certain additional time.

답변 유사도 판단부(236)는 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660)으로부터 전달되는 답변들의 유사도를 판단할 수 있다. 예를 들면, 답변 유사도 판단부(236)는 모듈 및/또는 플러그인으로부터 응답 결정부(230)에 전달된 답변 중 적어도 2개의 답변의 유사도가, 일정 기준 이상인 경우, 답변을 아직 전달하지 않은 모듈 및/또는 플러그인에서의 분석을 중단시키거나, 일시간으로 중지시킬 수 있다. The response similarity degree determiner 236 can determine the similarity of the responses transmitted from the plurality of modules 510, 520, and 530 and the plurality of plugins 610, 620, 630, 640, 650, and 660. For example, the response similarity determining unit 236 may determine that the similarity of at least two of the answers sent from the module and / or the plug-in to the response determining unit 230 is higher than a predetermined reference, You can stop the analysis at the plug-in, or stop it at one hour.

일부 실시 예에서, 적어도 2개의 답변의 유사도가 일정 기준 이상의 유사도를 가지는 경우, 이중 하나, 또는 이들을 종합하여, 질의에 대한 응답으로 선정할 수 있다. In some embodiments, if the similarity of at least two answers has a degree of similarity that is equal to or greater than a certain criterion, one of them, or a combination thereof, may be selected in response to the query.

일부 실시 예에서, 적어도 2개의 답변의 유사도가 일정 기준 이상의 유사도를 가지는 경우, 일정 기준 이상의 유사도를 가지는 답변들에 대하여, 답변 랭킹 판단부(238)에서 답변 랭킹부(240)를 참조하여 랭킹을 정한 후, 답변들 중 랭킹이 높은 답변을 질의에 대한 응답으로 선정할 수 있다. In some embodiments, if the similarity of at least two answers has a degree of similarity that is equal to or higher than a predetermined standard, the answer ranking unit 238 refers to the answer ranking unit 240 for answers having a degree of similarity higher than a certain standard, After selecting the answer, you can select the answer with the highest ranking among the answers in response to the inquiry.

도 3은 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템의 동작을 설명하기 위한 블록도이다. 도 3에 대한 설명 중 도 1 또는 도 2에 대한 설명과 중복되는 내용은 생략될 수 있다.3 is a block diagram illustrating an operation of an interactive automatic question-answering system according to an exemplary embodiment of the present invention. The description overlapping with the description of FIG. 1 or FIG. 2 in the description of FIG. 3 may be omitted.

도 3을 참조하면, 대화형 자동 질의응답 시스템(1b)은 대화 관리자(100), 질의응답 관리자(200), 모듈 서버(500), 및 플러그인 서버(600)를 포함할 수 있다. 3, the interactive automatic question answering system 1b may include a dialog manager 100, a query response manager 200, a module server 500, and a plug-in server 600. [

응답 결정부(230)는 추가 질의 판단부(232) 및 답변 시간 관리부(234)를 포함할 수 있다. 복수의 모듈(510, 520, 530) 및 플러그인(610, 620, 630, 640, 650, 660)은, 분석을 수행하는 과정에서 답변을 생성하기 위한 정보가 부족한 경우, 답변을 응답 결정부(230)에 제공하지 못하거나, 응답 결정부(230)에 추가적인 정보를 요청할 수 있다. The response determination unit 230 may include an additional query determination unit 232 and an answer time management unit 234. [ When the information for generating an answer is insufficient in the course of performing the analysis, the plurality of modules 510, 520, 530 and the plug-ins 610, 620, 630, 640, 650, , Or may request additional information from the response determining unit 230. [

예를 들면, 답변 시간 관리부(234)는 기정의된 제1 시간까지 복수의 모듈(510, 520, 530) 및 플러그인(610, 620, 630, 640, 650, 660)으로부터 답변을 전달받지 못하는 경우, 추가 질의 판단부(232)에 답변이 전달되지 않음을 통지할 수 있다. 이 경우, 추가 질의 판단부(232)는 대화 관리자(100)를 통하여, 사용자(10)에게 "질의을 다시 해주세요" 등과 같은 질문을 할 수 있다. 이에 대해서 사용자(10)가 대답을 하면, 대화 관리자(100)는 사용자(10)의 최초 질의와 질문에 대한 대답을 함께 결합하여 질의응답 관리자(200)에 전달하여, 다시 질의에 대한 분석이 진행되도록 할 수 있다. For example, if the response time management unit 234 does not receive a response from the plurality of modules 510, 520, 530 and the plug-ins 610, 620, 630, 640, 650, 660 until the first predetermined time , It may notify the additional query determiner 232 that the answer is not transmitted. In this case, the additional query determiner 232 can ask the user 10 via the conversation manager 100, such as " repeat the query ". When the user 10 answers to this, the conversation manager 100 combines the initial query of the user 10 and the answer to the query together and transmits the combined query to the query response manager 200, .

예를 들면, 답변 시간 관리부(234)는 복수의 모듈(510, 520, 530) 및 플러그인(610, 620, 630, 640, 650, 660)으로부터 추가적인 정보를 요청받은 경우, 추가 질의 판단부(232)에 추가적인 정보의 요청을 통지할 수 있다. 이 경우, 추가 질의 판단부(232)는 대화 관리자(100)를 통하여, 사용자(10)에게 추가적인 정보를 요청하는 질문을 할 수 있다. 이에 대해서 사용자(10)가 대답을 하면, 대화 관리자(100)는 사용자(10)의 최초 질의와 질문에 대한 대답을 함께 질의응답 관리자(200)에 전달하여, 다시 질의에 대한 분석이 진행되도록 할 수 있다. 예를 들면, 사용자(10)가 "날씨가 어때"라는 질의를 한 경우, 복수의 모듈(510, 520, 530) 및 플러그인(610, 620, 630, 640, 650, 660)으로부터 위치와 시간 정보가 필요하다는 요청을 답변 시간 관리부(234)에 요청할 수 있다. 이 경우, 추가 질의 판단부(232)는 대화 관리자(100)를 통하여, 사용자(10)에게 "어느 지역의 날씨를 묻는건가요?", 또는 "현재 서울의 날씨를 말씀하시는건가요?"와 같은 질문을 할 수 있다. 사용자(10)가 해당 질문에 대하여 "서울" 또는 "맞아"와 같은 대답을 하면, 대화 관리자(100)는 기존 질의와 사용자의 대답을 함께 결합하여 질의응답 관리자(200)에 "서울 날씨는 어때" 또는 "현재 서울의 날씨는 어때"와 같이 완성된 질의로 전달하여, 이에 대한 분석이 진행되도록 할 수 있다. For example, when additional information is requested from a plurality of modules 510, 520, and 530 and plug-ins 610, 620, 630, 640, 650, and 660, the response time management unit 234 may include an additional query determiner 232 May be notified of the request for additional information. In this case, the additional query determiner 232 may ask the user 10 through the conversation manager 100 to request additional information. When the user 10 answers to this, the conversation manager 100 transmits the initial query of the user 10 and the answer to the question together to the query response manager 200 so that the analysis of the query is performed again . For example, when the user 10 makes a query of "What is the weather", the location and time information from the plurality of modules 510, 520, 530 and plugins 610, 620, 630, 640, 650, May request the response time management unit 234 to request the response time management unit 234. [ In this case, the additional query determiner 232 notifies the user 10 via the conversation manager 100 of a question such as "Which weather do you ask?" Or " can do. When the user 10 answers "Seoul" or "yes" to the question, the conversation manager 100 combines the existing query and the user's answer together and transmits to the question and answer manager 200, "Or" What is the current weather in Seoul? ".

이와 같은 대화 관리자(100)를 통한 질문 및 대답은 1회로 끝나는 것이 아니고, 질의에 대한 정확한 응답을 얻을 때까지 반복적으로 수행될 수 있다. Such a question and answer through the dialogue manager 100 can be repeatedly performed until an accurate answer to the inquiry is obtained, rather than ending one session.

예를 들면, 사용자(10)가 "내가 살이 쪘는지 어떻게 알 수 있을까?"라는 최초 질의를 한 경우, 복수의 모듈(510, 520, 530) 및 플러그인(610, 620, 630, 640, 650, 660)으로부터 살이 쪘는지 여부를 알기 위해서는 BMI 지수가 필요하다는 요청을 받을 수 있다. 이 경우, 대화 관리자(100)는 사용자(10)에게 "BMI 지수를 알아볼까요?"와 같은 질문을 할 수 있다. 이에 대해 사용자(10)가 "그래"라고 답을 하는 경우, 대화 관리자(100)는 질의응답 관리자(200)에게 "내 BMI 지수는 얼마야"라는 질의를 전달할 수 있으며, 이에 대한 분석을 하는 과정에서 복수의 모듈(510, 520, 530) 및 플러그인(610, 620, 630, 640, 650, 660)는 키와 체중이 필요하다는 요청을 할 수 있다. 이 경우, 대화 관리자(100)는 사용자(10)에게 다시 "키와 체중이 어떻게 되세요"라는 질문을 할 수 있으며, 사용자(10)가 키와 체중을 답하면, 이를 토대로, 대화형 자동 질의응답 시스템(1b)은 "BMI 지수는 XX이네요" 또는 "BMI 지수가 XX이므로 살이 찌지 않은 정상이네요"와 같은 응답을 할 수 있다. For example, if the user 10 made an initial query of "How can I know if I am fat," a plurality of modules 510, 520, 530 and plugins 610, 620, 630, 640, 650, 660), you may be asked to require a BMI index. In this case, the conversation manager 100 may ask the user 10, such as "Would you like to see the BMI index?" If the user 10 answers yes to this, the dialogue manager 100 may send a query to the query response manager 200, "What is my BMI index?" A plurality of modules 510, 520, 530 and plug-ins 610, 620, 630, 640, 650, 660 can make a request that keys and weight are needed. In this case, the conversation manager 100 may ask the user 10 "What is the key and the weight" again, and when the user 10 answers the key and weight, the interactive automatic question and answer system (1b) can respond like "BMI index is XX" or "BMI index is XX, so it's normal".

일부 실시 예에서, 추가 질의 판단부(232)는, 대화 관리자(100)에게 질문을 하도록 하는 대신에, 답변 시간 관리부(234)에게 복수의 모듈(510, 520, 530) 및 플러그인(610, 620, 630, 640, 650, 660)으로부터 답변을 더 기다리도록 요청할 수 있다. 이 경우, 답변 시간 관리부(234)는 추가 질의 판단부(232)에 요청에 기초하여, 추가적인 시간 동안에 답변을 더 기다릴 수 있다. In some embodiments, instead of having the dialog manager 100 ask a question, the additional query determiner 232 may provide a plurality of modules 510, 520, 530 and plug-ins 610, 620 , 630, 640, 650, 660). In this case, the answer time management unit 234 may wait for an additional time during an additional time based on the request to the additional query determination unit 232. [

도 4는 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템의 동작을 설명하기 위한 블록도이다. 구체적으로 도 4는 도 3에서 설명한 사용자(10)와 대화 관라자(100) 사이의 질문과 대답을 완료하여 질의가 완성된 이후의 동작을 설명하기 위한 블록도로, 도 4에 대한 설명 중 도 1 내지 도 3에 대한 설명과 중복되는 내용은 생략될 수 있다. 4 is a block diagram illustrating an operation of an interactive automatic question and answering system according to an exemplary embodiment of the present invention. 4 is a block diagram for explaining an operation after the completion of a query and an answer between the user 10 and the conversation person 100 described in FIG. 3, and FIG. 4 And the description of FIG. 3 may be omitted.

도 4를 참조하면, 대화형 자동 질의응답 시스템(1c)은 대화 관리자(100), 질의응답 관리자(200), 모듈 서버(500), 및 플러그인 서버(600)를 포함할 수 있다. 대화형 자동 질의응답 시스템(1c)은 자연어 이해부(300)를 더 포함할 수 있다.4, the interactive automatic question answering system 1c may include a conversation manager 100, a query response manager 200, a module server 500, and a plug-in server 600. [ The interactive automatic question and answer system 1c may further include a natural language understanding unit 300. [

대화형 자동 질의응답 시스템(1c)이 네트워크(20)를 통하여 사용자(10)로부터 자연어 형태의 질의를 수신하면, 자연어 이해부(300)에서는 질의응답 관리자(200)를 통하여 질의를 전달받아, 질의에 대한 자연어 이해를 위한 복수의 단위 분석 과정을 수행한다. 자연어 이해부(300)에서 수행 중인 질의에 대한 복수의 단위 분석 과정 중 적어도 하나의 단위 분석 과정의 단위 자연어 분석 결과를 알림 수신부(210)가 수신하면, 모듈/플러그인 검출부(220)는 수신된 단위 자연어 분석 결과 각각을 모듈 서브(500)의 복수의 모듈(510, 520, 530) 및 플러그인 서버(600)의 복수의 플러그인(610, 620, 630, 640, 650, 660) 중 해당 단위 자연어 분석 결과 각각에 대응되는 적합한 모듈 및/또는 플러그인에 전달한다. When the interactive automatic question and answer system 1c receives the natural language query from the user 10 via the network 20, the natural language understanding unit 300 receives the query through the query response manager 200, And a plurality of unit analysis processes for natural language understanding. When the notification receiving unit 210 receives the unit natural language analysis result of at least one unit analysis process among the plurality of unit analysis processes for the query being performed by the natural language understanding unit 300, the module / plug- 620, 630, 640, 650, and 660 of the plug-in server 600 and the plurality of modules 510, 520, and 530 of the module sub 500, To the appropriate modules and / or plug-ins corresponding to each.

예를 들어, 복수의 모듈(510, 520, 530) 및 플러그인(610, 620, 630, 640, 650, 660) 중 제1 모듈(510), 제2 모듈(520), 제1 플러그인(610), 및 제2 플러그인(620)이 단위 자연어 분석 결과를 전달받아서 각각 독립적으로 분석을 수행할 수 있다. 이때, 제1 모듈(510), 제2 모듈(520), 제1 플러그인(610), 및 제2 플러그인(620) 각각이 전달받은 단위 자연어 분석 결과는, 자연어 이해부(300)의 동일한 단위 분석 과정에서 생성된 동일한 단위 자연어 분석 결과일 수도 있고, 다른 단위 분석 과정에서 생성된 단위 자연어 분석 결과일 수도 있다. 단위 자연어 분석 결과를 수신하지 않은 제3 모듈(530) 및 제3 내지 제6 플러그인(630, 640, 650, 660)은 분석을 수행하지 않고 유휴(idle) 상태로 있거나, 다른 질의에 대한 분석을 수행할 수 있다. For example, a first module 510, a second module 520, a first plug-in 610, and a second plug-in module 610 of a plurality of modules 510, 520, and 530 and plugins 610, 620, 630, 640, 650, And the second plug-in 620 receive the unit natural language analysis result, and can independently perform the analysis. At this time, the unit natural language analysis results received by the first module 510, the second module 520, the first plug-in 610, and the second plug-in 620 are transmitted to the natural language understanding unit 300, The result may be the same unit natural language analysis result generated in the process, or the unit natural language analysis result generated in the other unit analysis process. The third module 530 and the third through sixth plug-ins 630, 640, 650, and 660 that have not received the unit natural language analysis result are in an idle state without performing analysis, Can be performed.

분석을 수행 중인 제1 모듈(510), 제2 모듈(520), 제1 플러그인(610), 및 제2 플러그인(620) 중, 분석이 완료되어 답변을 생성한 모듈 및/또는 플러그인은, 다른 모듈 및/또는 플러그인의 분석 수행 여부를 고려하지 않고, 응답 결정부(230)로 답변을 전달한다. The modules and / or plug-ins that have been analyzed and generated answers, among the first module 510, the second module 520, the first plug-in 610, and the second plug-in 620 under analysis, The response is sent to the response determination unit 230 without considering whether to perform the analysis of the module and / or the plug-in.

일부 실시 예에서, 답변 시간 관리부(234)는, 모듈/플러그인 검출부(220)로부터 단위 자연어 분석 결과가 최초로 모듈 서버(500) 및/또는 플러그인 서버(600)에 전달한 시점부터 경과 시간을 관리할 수 있다. 일부 실시 예에서, 답변 시간 관리부(234)는 답변이 응답 결정부(230)로 최초로 전달된 시점부터 경과 시간을 관리할 수 있다. In some embodiments, the response time management unit 234 can manage the elapsed time from the point in time when the unit natural language analysis result is first transmitted from the module / plug-in detection unit 220 to the module server 500 and / or the plug-in server 600 have. In some embodiments, the answer time management unit 234 can manage the elapsed time from the point in time when the answer is first delivered to the response determination unit 230. [

답변 시간 관리부(234)는 경과 시간이 기정의된 제2 시간이 될 때까지 답변들을 전달받은 후에, 응답 결정부(230)는 이 답변들 중에서 응답을 결정할 수 있다. 또한 응답 결정부(230)는 상기 제2 시간이 경과하면, 아직 답변을 생성하지 않은 모듈 및/또는 플러그인에서의 분석을 중단시키거나, 일시간으로 중지시킬 수 있다. The response time management unit 234 may receive the answers until the elapsed time becomes the second predetermined time, and the response determination unit 230 may determine a response from the responses. In addition, the response determining unit 230 may stop the analysis in the module and / or the plug-in that has not yet generated the answer, or may stop the analysis in one hour, after the second time has elapsed.

상기 제2 시간은, 대화형 자동 질의응답 시스템(1c)의 관리자가 설정할 수도 있고, 이전에 수행된 질의에 대한 응답을 하는 데에 소요된 시간을 기초로 대화형 자동 질의응답 시스템(1c)이 자체적으로 설정할 수도 있다. The second time may be set by the administrator of the interactive automatic question answering system 1c or may be set by the interactive automatic question answering system 1c based on the time taken to respond to the previously performed query It can be set by itself.

답변 시간 관리부(234)는 상기 제2 시간 동안에 답변이 전달되지 않는 경우, 상기 제2 시간보다 큰 제3 시간 동안, 응답 결정부(230)로 답변이 전달되도록 경과 시간을 연장시킬 수 있다. The answer time management unit 234 may extend the elapsed time so that the answer is delivered to the response determination unit 230 during a third time greater than the second time when no answer is delivered during the second time.

도 5는 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템의 동작을 설명하기 위한 블록도이다. 구체적으로 도 5는 도 3에서 설명한 사용자(10)와 대화 관라자(100) 사이의 질문과 대답을 완료하여 질의가 완성된 이후의 동작을 설명하기 위한 블록도로, 도 5에 대한 설명 중 도 1 내지 도 3에 대한 설명과 중복되는 내용은 생략될 수 있다. 5 is a block diagram illustrating the operation of the interactive automatic question-answering system according to an exemplary embodiment of the present invention. Specifically, FIG. 5 is a block diagram for explaining an operation after the completion of a query and an answer between the user 10 and the conversation partner 100 explained in FIG. 3, and FIG. 5 And the description of FIG. 3 may be omitted.

도 5를 참조하면, 대화형 자동 질의응답 시스템(1d)은 대화 관리자(100), 질의응답 관리자(200), 모듈 서버(500), 및 플러그인 서버(600)를 포함할 수 있다. 대화형 자동 질의응답 시스템(1d)은 자연어 이해부(300)를 더 포함할 수 있다.5, the interactive automatic question and answer system 1d may include a conversation manager 100, a query response manager 200, a module server 500, and a plug-in server 600. [ The interactive automatic question and answer system 1d may further include a natural language understanding unit 300. [

대화형 자동 질의응답 시스템(1d)이 네트워크(20)를 통하여 사용자(10)로부터 자연어 형태의 질의를 수신하면, 자연어 이해부(300)에서는 질의응답 관리자(200)를 통하여 질의를 전달받아, 질의에 대한 자연어 이해를 위한 복수의 단위 분석 과정을 수행한다. 자연어 이해부(300)에서 수행 중인 질의에 대한 복수의 단위 분석 과정 중 적어도 하나의 단위 분석 과정의 단위 자연어 분석 결과를 알림 수신부(210)가 수신하면, 모듈/플러그인 검출부(220)는 수신된 단위 자연어 분석 결과 각각을 모듈 서브(500)의 복수의 모듈(510, 520, 530) 및 플러그인 서버(600)의 복수의 플러그인(610, 620, 630, 640, 650, 660) 중 단위 자연어 분석 결과 각각에 대응되는 적합한 모듈 및/또는 플러그인에 전달한다. When the interactive automatic question and answer system 1d receives the natural language query from the user 10 via the network 20, the natural language understanding unit 300 receives the query through the query response manager 200, And a plurality of unit analysis processes for natural language understanding. When the notification receiving unit 210 receives the unit natural language analysis result of at least one unit analysis process among the plurality of unit analysis processes for the query being performed by the natural language understanding unit 300, the module / plug- 620, 630, 640, 650, and 660 of the plug-in server 600 and the plurality of modules 510, 520, and 530 of the module sub 500, Lt; / RTI > and / or plug-in corresponding to < / RTI >

예를 들어, 복수의 모듈(510, 520, 530) 및 플러그인(610, 620, 630, 640, 650, 660) 중 제1 모듈(510), 제2 모듈(520), 제1 플러그인(610), 및 제2 플러그인(620)이 단위 자연어 분석 결과를 전달받아서 각각 독립적으로 분석을 수행할 수 있다. 이때, 제1 모듈(510), 제2 모듈(520), 제1 플러그인(610), 및 제2 플러그인(620) 각각이 전달받은 단위 자연어 분석 결과는, 자연어 이해부(300)의 동일한 단위 분석 과정에서 생성된 동일한 단위 자연어 분석 결과일 수도 있고, 다른 단위 분석 과정에서 생성된 단위 자연어 분석 결과일 수도 있다. 단위 자연어 분석 결과를 수신하지 않은 제3 모듈(530) 및 제3 내지 제6 플러그인(630, 640, 650, 660)은 분석을 수행하지 않고 유휴(idle) 상태로 있거나, 다른 질의에 대한 분석을 수행할 수 있다. For example, a first module 510, a second module 520, a first plug-in 610, and a second plug-in module 610 of a plurality of modules 510, 520, and 530 and plugins 610, 620, 630, 640, 650, And the second plug-in 620 receive the unit natural language analysis result, and can independently perform the analysis. At this time, the unit natural language analysis results received by the first module 510, the second module 520, the first plug-in 610, and the second plug-in 620 are transmitted to the natural language understanding unit 300, The result may be the same unit natural language analysis result generated in the process, or the unit natural language analysis result generated in the other unit analysis process. The third module 530 and the third through sixth plug-ins 630, 640, 650, and 660 that have not received the unit natural language analysis result are in an idle state without performing analysis, Can be performed.

분석을 수행 중인 제1 모듈(510), 제2 모듈(520), 제1 플러그인(610), 및 제2 플러그인(620) 중, 분석이 완료되어 답변을 생성한 모듈 및/또는 플러그인은, 다른 모듈 및/또는 플러그인의 분석 수행 여부를 고려하지 않고, 응답 결정부(230)로 답변을 전달한다. The modules and / or plug-ins that have been analyzed and generated answers, among the first module 510, the second module 520, the first plug-in 610, and the second plug-in 620 under analysis, The response is sent to the response determination unit 230 without considering whether to perform the analysis of the module and / or the plug-in.

답변 유사도 판단부(236)는, 응답 결정부(230)로 전달된 답변이 2개 이상이 되는 경우, 답변들의 유사도를 판단할 수 있다. 응답 결정부(230)로 전달된 답변 중 적어도 2개의 답변의 유사도가 일정 기준 이상인 경우, 유사도가 일정 기준 이상인 적어도 2개의 답변 모두 또는 이들 중 하나를 질의에 대한 응답으로 선정할 수 있다. The answer similarity degree determining unit 236 can determine the similarity degree of answers when the number of answers transmitted to the response determining unit 230 is two or more. When the similarity degree of at least two answers among the answers sent to the response decision unit 230 is equal to or greater than a certain standard, at least two answers having a similarity degree equal to or higher than a certain standard level or one of them may be selected as a response to the query.

또한 답변 유사도 판단부(236)는 전달된 답변 중 일정 기준 이상의 유사도를 가지는 적어도 2개의 답변이 있는 경우, 아직 답변을 생성하지 않은 모듈 및/또는 플러그인에서의 분석을 중단시키거나, 일시간으로 중지시킬 수 있다. Also, if there are at least two answers having a similarity degree that is equal to or higher than a certain reference among the transmitted answers, the answer similarity degree determination unit 236 may stop the analysis in the module and / or the plug- .

일부 실시 예에서, 일정 기준 이상의 유사도를 가지는 적어도 2개의 답변 중 응답을 선정하기 위하여, 답변 랭킹 판단부(238)는 답변 랭킹부(240)를 참조하여, 일정 기준 이상의 유사도를 가지는 적어도 2개의 답변들에 대하여, 랭킹을 정한 후, 답변들 중 랭킹이 높은 답변을 질의에 대한 응답으로 선정할 수 있다. In some embodiments, the answer ranking determining unit 238 refers to the answer ranking unit 240 to select at least two answers having similarities higher than a certain standard, , A ranking can be selected, and an answer having a high ranking among the answers can be selected as a response to the inquiry.

추가 질의 판단부(232)에 대해서는 도 3에서 자세히 설명한 바, 생략하도록 한다. The additional query determiner 232 is described in detail with reference to FIG. 3, and is omitted.

도 2를 다시 참조하면, 대화형 자동 질의응답 시스템(1a)은 답변 시간 관리부(234)와 답변 유사도 판단부(236)를 함께 사용하여, 질의에 대한 응답을 제공할 수 있다. Referring again to FIG. 2, the interactive automatic question answering system 1a may provide a response to a query using the answer time management unit 234 and the answer similarity determination unit 236 together.

예를 들면, 답변 시간 관리부(234)에서 관리하는 경과 시간이 기정의된 제2 시간이 되기 전에도, 답변 유사도 판단부(236)에서 일정 기준 이상의 유사도를 가지는 적어도 2개의 답변을 찾은 경우에는, 이를 질의에 대한 응답으로 제공할 수 있다. 또는 답변 유사도 판단부(236)에서 일정 기준 이상의 유사도를 가지는 적어도 2개의 답변을 찾기 이전에도, 답변 시간 관리부(234)에서 관리하는 경과 시간이 기정의된 제2 시간이 되는 경우, 그때까지 전달받은 답변들에 대하여, 답변 랭킹 판단부(238)에서 답변 랭킹부(240)를 참조하여 랭킹을 정한 후, 답변들 중 랭킹이 높은 답변을 질의에 대한 응답으로 선정할 수 있다. For example, even if the answer similarity determining unit 236 finds at least two answers having a degree of similarity equal to or higher than a predetermined reference even before the elapsed time managed by the answer time managing unit 234 reaches the predetermined second time, It can be provided in response to a query. Or when the answer similarity determining unit 236 finds at least two answers having a degree of similarity equal to or higher than a certain standard, the elapsed time managed by the answer time managing unit 234 becomes the second appointed time, For the answers, the answer ranking unit 238 determines the ranking by referring to the answer ranking unit 240, and selects a response having a high ranking among the answers as a response to the inquiry.

도 6은 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템을 나타내는 블록도이다. 도 6에 대한 설명 중 도 1 내지 도 5에 대한 설명과 중복되는 내용은 생략될 수 있다.6 is a block diagram illustrating an interactive automatic question and answer system in accordance with an exemplary embodiment of the present invention. The description of FIG. 6 which is the same as the description of FIG. 1 to FIG. 5 may be omitted.

도 6을 참조하면, 대화형 자동 질의응답 시스템(2)은 네트워크(20)를 통하여 사용자(10)로부터 질의를 수신하고, 응답을 송신하는 대화 관리자(100), 질의응답 관리자(200), 자연어 이해부(300), 자연어 생성부(400), 모듈 서버(500), 플러그인 서버(600), 및 도메인 DB부(700)를 포함한다. 일부 실시 예에서, 대화형 자동 질의응답 시스템(2)은 모듈/플러그인 모델(900)을 더 포함할 수 있다.6, the interactive automatic question-answering system 2 includes a dialog manager 100, a question and answer manager 200, a natural language processor, and the like, which receives a query from the user 10 via the network 20 and transmits a response. A natural language generation unit 400, a module server 500, a plug-in server 600, and a domain DB unit 700. As shown in FIG. In some embodiments, the interactive automatic question and answer system 2 may further include a module / plug-in model 900.

대화형 자동 질의응답 시스템(2)은 플러그인 서버(600)가 가지는 제1 내지 제6 플러그인(610, 620, 630, 640, 650, 660) 중 적어도 하나의 플러그인과 네트워크(20a)를 통하여 외부 서비스/DB(800)와 연결될 수 있다. The interactive automatic question and answer system 2 is connected to at least one plug-in among the first to sixth plug-ins 610, 620, 630, 640, 650 and 660 of the plug- / DB (800).

대화 관리자(100)는 커뮤니케이터(110), 세션 관리자(120), 숏텀(Short Term) 메모리(122), 사용자 메모리(124), 대화 흐름 관리자(130), 대화 정책(132) 및 대화 흐름 모델(134)을 포함할 수 있다.The conversation manager 100 includes a communicator 110, a session manager 120, a short term memory 122, a user memory 124, a conversation flow manager 130, a conversation policy 132, 134).

커뮤니케이터(110)는 사용자(10)와 대화형 자동 질의응답 시스템(2) 사이에서 대화를 진행하도록 하는 인터페이스를 제공할 수 있다. 예를 들면, 커뮤니케이터(110)는 대화창과 같은 인터페이스를 제공할 수 있다. The communicator 110 may provide an interface to allow the conversation to proceed between the user 10 and the interactive automatic question and answer system 2. For example, the communicator 110 may provide an interface such as a chat window.

세션 관리자(120)는 현재 질의에 대한 사용자와의 대화(질의, 질문 및 대답) 즉 현재 세션, 및 사용자와의 이전의 대화, 즉 이전 세션을 관리할 수 있다. 현재 질의에 대한 사용자와의 대화는 숏텀 메모리(122)에 저장될 수 있으며, 사용자와의 이전의 대화, 즉 이전 질의에 대한 사용자와의 대화(질의, 질문 및 대답)는 사용자 메모리(124)에 저장될 수 있다. The session manager 120 may manage the conversation (query, question and answer) with the user for the current query, i.e., the current session, and the previous conversation with the user, i.e., the previous session. The conversation with the user for the current query may be stored in the short memory 122 and the previous conversation with the user, i.e., the conversation (query, question and answer) with the user to the previous query, Lt; / RTI >

예를 들어, 사용자(10)가 "날씨가 어때"라는 질의를 한 경우, 해당 질의는 숏텀 메모리(122)에 저장될 수 있다. 이후에, 추가적인 정보를 요청하기 위하여 "어느 지역의 날씨를 묻는건가요?"라는 질문을 한 경우, 사용자(10)가 "서울"이라고 대답한 경우, 해당 대답 또한 숏텀 메모리(122)에 저장될 수 있다. 숏텀 메모리(122)에 저장된 "날씨가 어때"라는 질의와 "서울"이라는 대답은 함께 질의응답 관리자(200)로 전달되어, 질의에 대한 응답을 요청할 수 있다. For example, if the user 10 makes a query of "What is the weather?", The query may be stored in the short memory 122. If the user 10 then asks " Seoul, " and then the answer is also stored in the short memory 122 have. The query "what is the weather" stored in the short memory 122 and the answer "Seoul" are sent to the query response manager 200 to request a response to the query.

만일, 사용자 메모리(124)에 저장된 사용자(10)와의 이전의 대화에 "서울의 날씨"라는 정보가 저장된 경우, 대화 관리자(100)는 사용자 메모리(124)에 저장된 사용자(10)와의 이전의 대화를 참조하여, "현재 서울의 날씨를 말씀하시는건가요?"와 같은 질문을 생성하여 사용자(10)에게 할 수 있다. The conversation manager 100 may determine that the previous conversation with the user 10 stored in the user memory 124 has been completed by the user if the information of "Seoul weather" is stored in the previous conversation with the user 10 stored in the user memory 124. [ Quot ;, " Are you talking about the current weather in Seoul? "

대화 흐름 관리자(130)는 대화 정책(132) 및 대화 흐름 모델(134)을 참조하여, 사용자(10)에게 제공할 질문을 자연어 형태로 생성하도록 할 수 있다. The conversation flow manager 130 may refer to the conversation policy 132 and the conversation flow model 134 to cause the user 10 to generate a question in natural language form.

질의 응답 관리자(200)는 알림 수신부(210), 모듈/플러그인 검출부(220), 모듈 정보 저장부(222), 플러그인 정보 저장부(224), 응답 결정부(230), 및 답변 랭킹부(240)를 포함한다. The query response manager 200 includes a notification reception unit 210, a module / plug-in detection unit 220, a module information storage unit 222, a plug-in information storage unit 224, a response determination unit 230, ).

모듈 서버(500)는 복수의 모듈(510, 520, 530)을 가지는 질의응답 모듈부(580) 및, 질의응답 모듈부(580)가 가지는 복수의 모듈(510, 520, 530) 각각에 대한 정보를 가지는 모듈 등록부(590)를 포함한다. 질의응답 모듈부(580)가 가지는 복수의 모듈(510, 520, 530)은 예를 들면, FBQA(Factoid Based Question Answering) 모듈, TBQA(Template Based Question Answering) 모듈, GBQA(Generated Based Question Answering) 모듈, IRQA(Informationu Retrievalu Based Question Answering) 모듈 등일 수 있다. The module server 500 includes a query response module 580 having a plurality of modules 510, 520 and 530 and information on each of a plurality of modules 510, 520 and 530 of the query response module 580 And a module registration unit 590 having a module registration unit 590. The plurality of modules 510, 520, and 530 of the QA module 580 may include, for example, a Factoid Based Question Answering (FBQA) module, a Template Based Question Answering (TBQA) module, a Generated Based Question Answering , An IRQA (Information Retrieval Based Question Answering) module, and the like.

플러그인 서버(600)는 복수의 플러그인(610, 620, 630, 640, 650, 660)을 가지는 질의응답 플러그인부(680) 및, 질의응답 플러그인부(680)가 가지는 복수의 플러그인(610, 620, 630, 640, 650, 660) 각각에 대한 정보를 가지는 플러그인 등록부(690)를 포함한다. 질의응답 플러그인부(680)가 가지는 복수의 플러그인(610, 620, 630, 640, 650, 660)은 예를 들면, 수학연산 플러그인, 거리계산 플러그인, 단위변환 플러그인, 환율변환 플러그인, 시간날짜 플러그인, 날씨 플러그인 등일 수 있다. The plug-in server 600 includes a query response plug-in portion 680 having a plurality of plugins 610, 620, 630, 640, 650 and 660 and a plurality of plugins 610, 620, 630, 640, 650, and 660, respectively. The plurality of plug-ins 610, 620, 630, 640, 650 and 660 of the query response plug-in unit 680 may include a mathematical operation plug-in, a distance calculation plug-in, a unit conversion plug- Weather plugins, and the like.

모듈 정보 저장부(222) 및 플러그인 정보 저장부(224)는 각각 모듈 등록부(590) 및 플러그인 등록부(690)로부터, 복수의 모듈(510, 520, 530) 각각 및 복수의 플러그인(610, 620, 630, 640, 650, 660) 각각에 대한 정보를 저장할 수 있다. 모듈/플러그인 검출부(220)는 모듈 정보 저장부(222) 및 플러그인 정보 저장부(224)에 저장된 정보를 기초로, 수신된 단위 자연어 분석 결과에 대응되는 적합한 모듈 및/또는 플러그인을 선정하고, 단위 자연어 분석 결과를 전달할 수 있다. The module information storage unit 222 and the plugin information storage unit 224 respectively store a plurality of modules 510, 520 and 530 and a plurality of plugins 610, 620, and 630 from the module registration unit 590 and the plugin registration unit 690, 630, 640, 650, and 660, respectively. The module / plug-in detection unit 220 selects an appropriate module and / or plug-in corresponding to the received unit natural language analysis result based on the information stored in the module information storage unit 222 and the plug-in information storage unit 224, Natural language analysis results.

자연어 이해부(300)는 시맨틱 롤 라벨링부(SRL, 310), 형태소 분석부(320), 구문 분석부(322), 개체명 분석부(324), 의도 분류부(330) 및 도메인 분석부(340)를 포함할 수 있다. 시맨틱 롤 라벨링부(310)는 질의에 대한 의미 역할(Semantic Role)을 부여할 수 있다. 형태소 분석부(320)는 의미 역할이 부여된 질의를 형태소 단위로 분리할 수 있다. 구문 분석부(322) 및 개체명 분석부(324)는 형태소 단위로 분리된 질의에 구문 분석 및 개체명 분석을 할 수 있다. 의도 분류부(330) 및 도메인 분석부(340)는 의미 역할이 부여된 질의의 의도(intention) 분류 및 도메인 분석을 할 수 있다. The natural language understanding unit 300 includes a semantic role labeling unit (SRL) 310, a morphological analysis unit 320, a syntax analysis unit 322, an entity name analysis unit 324, an intention classification unit 330, 340). 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 322 and the object name analyzer 324 can perform parsing and object name analysis on queries separated by morpheme units. The intention classifying unit 330 and the domain analyzing unit 340 can perform intention classification and domain analysis of a query to which a semantic role is assigned.

시맨틱 롤 라벨링부(SRL, 310), 형태소 분석부(320), 구문 분석부(322), 개체명 분석부(324), 의도 분류부(330) 및 도메인 분석부(340) 각각의 분석 단계에서 생성되는 분석 결과를 단위 자연어 분석 결과라 호칭하며, 시맨틱 롤 라벨링부(SRL, 310), 형태소 분석부(320), 구문 분석부(322), 개체명 분석부(324), 의도 분류부(330) 및 도메인 분석부(340) 각각은 다른 분석 단계와는 독립적으로 생성된 단위 자연어 분석 결과를 알림 수신부(210)로 전달할 수 있다. In the analysis steps of the semantic roll labeling unit (SRL) 310, morphological analysis unit 320, syntax analysis unit 322, entity name analysis unit 324, intention classification unit 330 and domain analysis unit 340 The result of analysis is called a unit natural language analysis result and includes a semantic roll labeling unit SRL 310, a morphological analysis unit 320, a syntax analysis unit 322, an object name analysis unit 324, an intention classification unit 330 And the domain analysis unit 340 may transmit the unit natural language analysis results generated independently of the other analysis steps to the notification receiving unit 210. [

알림 수신부(210)는 각각의 분석 단계에서 전달된 단위 자연어 분석 결과를 모듈/플러그인 검출부(220)에 제공하며, 모듈/플러그인 검출부(220)는 모듈 정보 저장부(222) 및 플러그인 정보 저장부(224)를 참조하여, 각 단위 자연어 분석 결과에 대응되는 적합한 모듈 및/또는 플러그인을 선정하여 단위 자연어 분석 결과를 전송할 수 있다. 이때, 하나의 단위 자연어 분석 결과는 하나의 모듈 또는 플러그인에 전달될 수도 있으나, 2개 이상의 모듈 및/또는 플러그인에 동시에 전달될 수도 있다. The notification receiving unit 210 provides the module / plug-in detection unit 220 with the unit natural language analysis result delivered in each analysis step. The module / plug-in detection unit 220 includes a module information storage unit 222 and a plug- 224), the unit natural language analysis result can be transmitted by selecting an appropriate module and / or plug-in corresponding to each unit natural language analysis result. At this time, one unit of natural language analysis result may be transmitted to one module or plug-in, but may be simultaneously transmitted to two or more modules and / or plug-ins.

질의응답 모듈부(580)가 가지는 복수의 모듈(510, 520, 530)은 도메인 DB부(700)가 가지는 복수의 도메인 DB(710, 720, 730, 740) 중 적어도 하나의 도메인 DB를 참조하여, 답변을 생성할 수 있다. 복수의 도메인 DB(710, 720, 730, 740)은 지식 데이터가 축적된 지식베이스일 수 있다. 복수의 도메인 DB(710, 720, 730, 740)은 예를 들면, 일반 상식 지식베이스, 영화 도메인 지식베이스, 음악 도메인 지식베이스, 헬스 도메인 지식베이스, 퍼스널 어시스턴트 도메인 지식베이스, 음식 식당 도메인 지식베이스 등일 수 있다. The plurality of modules 510, 520 and 530 of the query response module 580 refer to at least one domain DB among the plurality of domain DBs 710, 720, 730 and 740 of the domain DB unit 700 , You can create an answer. The plurality of domain DBs 710, 720, 730, and 740 may be knowledge bases in which knowledge data is accumulated. The plurality of domain DBs 710, 720, 730, and 740 may include, for example, a general common knowledge base, a movie domain knowledge base, a music domain knowledge base, a health domain knowledge base, a personal assist domain knowledge base, .

질의응답 플러그인부(680)가 가지는 복수의 플러그인(610, 620, 630, 640, 650, 660)은 예를 들면, 수학연산 플러그인, 거리계산 플러그인, 단위변환 플러그인, 환율변환 플러그인, 시간날짜 플러그인, 날씨 플러그인 등일 수 있다. 예를 들면, 복수의 플러그인(610, 620, 630, 640, 650, 660) 중 수학연산 플러그인, 단위변환 플러그인, 시간날짜 플러그인 등과 같은 일부 플러그인(610, 630, 650)은 도메인 DB(710, 720, 730, 740)를 참조하지 않고 자체적으로 QA를 수행할 수 있도록 구성될 수 있다. 예를 들면, 복수의 플러그인(610, 620, 630, 640, 650, 660) 중 거리계산 플러그인, 환율변환 플러그인, 날씨 플러그인 등 다른 일부 플러그인(620, 640, 660)은 QA를 제공할 수 있는 제1 서비스(810), 제2 서비스(820), 제3 서비스(830) 등 외부 서비스와 연결되어 QA를 수행할 수 있다. 제1 서비스(810), 제2 서비스(820), 및 제3 서비스(830)는 각각 독자적인 제1 외부 DB(812), 제2 외부 DB(822), 및 제3 외부 DB(832)와 연결되거나, 이를 포함할 수 있다. 예를 들면, 외부 서비스는 지리정보 서비스, 환율변환 서비스, 날씨 서비스 등일 수 있으며, 이들 외부 서비스와 연결되거나, 이들 외부 서비스가 포함하는 외부 DB는 예를 들면, Geo 정보 DB, 환율정보 DB, 세계날씨 DB 등일 수 있다. The plurality of plug-ins 610, 620, 630, 640, 650 and 660 of the query response plug-in unit 680 may include a mathematical operation plug-in, a distance calculation plug-in, a unit conversion plug- Weather plugins, and the like. For example, some plugins 610, 630, 650, such as a math operation plugin, a unit conversion plugin, a time date plugin, etc., among a plurality of plugins 610, 620, 630, 640, 650, 660, , 730, and 740). For example, some of the plug-ins 610, 620, 630, 640, 650, 660, some of the plug-ins 620, 640, 660, such as distance calculation plug- 1 service 810, a second service 820, a third service 830, and the like to perform QA. The first service 810, the second service 820 and the third service 830 are connected to the first external DB 812, the second external DB 822 and the third external DB 832, respectively, Or may include. For example, the external service may be a geographical information service, a currency conversion service, a weather service, and the like. The external DB that is connected to the external service or included in the external service may include, for example, a Geo information DB, Weather DB, and the like.

자연어 생성부(400)는 응답 생성부(410), 모듈 자연어 생성 규칙부(420), 및 플러그인 자연어 생성 규칙부(430)를 포함한다. 응답 결정부(230)와 답변 랭킹부(240)는 응답 생성부(410)를 참조하여, 자연어 형태의 응답을 생성할 수 있다. 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660)은 각각 모듈 자연어 생성 규칙부(420) 및 플러그인 자연어 생성 규칙부(430)를 참조하여, 자연어 형태의 답변을 생성할 수 있다. The natural language generation unit 400 includes a response generation unit 410, a module natural language generation rule unit 420, and a plugin natural language generation rule unit 430. The response determining unit 230 and the answer ranking unit 240 can generate a natural-language response by referring to the response generating unit 410. [ A plurality of modules 510, 520, and 530 and a plurality of plugins 610, 620, 630, 640, 650, and 660 refer to the module natural language generation rule unit 420 and the plugin natural language generation rule unit 430, You can create a natural-language answer.

일부 실시 예에서, 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660)은 모듈/플러그인 모델(900)을 참조하여, 단위 자연어 분석 결과로부터 답변을 생성할 수 있다. In some embodiments, the plurality of modules 510, 520, 530 and the plurality of plugins 610, 620, 630, 640, 650, 660 refer to the module / plugin model 900, Can be generated.

모듈/플러그인 모델(900)은 질의응답 로직(910), 질의응답 실행조건(920) 및 자연어 생성 룰(930)을 포함할 수 있다. 질의응답 로직(910)은 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660)에서, 질의에 대한 단위 자연어 분석 결과로부터 답변을 생성하기 위한 논리를 제공할 수 있다. 질의응답 실행조건(920)은 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660)에서, 질의에 대한 단위 자연어 분석 결과로부터 답변을 생성하는 과정에서 참조해야하는 조건들을 제공할 수 있다. 자연어 생성 룰(930)은 복수의 모듈(510, 520, 530) 및 복수의 플러그인(610, 620, 630, 640, 650, 660)이 각각 모듈 자연어 생성 규칙부(420) 및 플러그인 자연어 생성 규칙부(430)를 참조하여, 자연어 형태의 답변을 생성하기 위한 규칙을 제공할 수 있다. Module / plug-in model 900 may include query response logic 910, query response execution conditions 920, and natural language generation rules 930. [ The query response logic 910 includes logic for generating an answer from the unit natural language analysis results for the query in the plurality of modules 510, 520, 530 and the plurality of plugins 610, 620, 630, 640, 650, Can be provided. The query response execution condition 920 is a process of generating an answer from the result of the unit natural language analysis on the query in the plurality of modules 510, 520, 530 and the plurality of plugins 610, 620, 630, 640, 650, 660 Can provide the conditions that should be referenced in. The natural language generation rule 930 includes a plurality of modules 510, 520 and 530 and a plurality of plugins 610, 620, 630, 640, 650 and 660, The user can provide a rule for generating a response in the form of a natural language,

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

도 7을 참조하면, 모듈 서버(500)는 복수의 모듈(510a, 520a, 530a)을 가지는 질의응답 모듈부(580) 및, 질의응답 모듈부(580)가 가지는 복수의 모듈(510a, 520a, 530a) 각각에 대한 정보를 가지는 모듈 등록부(590)를 포함한다. 7, the module server 500 includes a query response module unit 580 having a plurality of modules 510a, 520a, and 530a, and a plurality of modules 510a, 520a, and 560b of the query response module unit 580, And a module registration unit 590 having information on each of the modules 530a and 530a.

복수의 모듈(510a, 520a, 530a)은 각각 FBQA 모듈(510a), TBQA 모듈(520a), 및 GBQA 모듈(530a)일 수 있다. FBQA 모듈(510a)은 단문 형태의 질의를 키워드 기반의 패턴 매칭을 통하여, 자동으로 SPARQL 형태의 질의를 생성한 후, 도메인 DB부(700), 즉 지식베이스에 질의하여 답변을 생성할 수 있다. TBQA 모듈(520a)은 미리 작성된 템플릿들을 기반으로, 질의로부터 템플릿 매핑을 하여 템플릿으로부터 질의를 완성한 후, 도메인 DB부(700), 즉 지식베이스에 질의하여 답변을 생성할 수 있다. GBQA 모듈(530a)은 단문보다 복잡한 형태의 질의들을 구문분석 등을 활용하여 분석해서, 자동으로 SPARQL 형태의 질의를 생성하고, 도메인 DB부(700), 즉 지식베이스에 질의하여 답변을 생성할 수 있다. The plurality of modules 510a, 520a, and 530a may be FBQA module 510a, TBQA module 520a, and GBQA module 530a, respectively. The FBQA module 510a can automatically generate a SPARQL-type query through keyword-based pattern matching, and then generate an answer by querying the domain DB unit 700, i.e., the knowledge base, using a short-form query. The TBQA module 520a may generate a response by querying the domain DB unit 700, i.e., the knowledge base, after completing the query from the template 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 using syntax analysis, etc., and automatically generates a SPARQL-type query, and generates an answer by querying the domain DB unit 700, i.e., have.

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

도메인 DB부(700)는 예를 들면, 일반 상식 지식베이스(710a), 영화 도메인 지식베이스(720a), 음악 도메인 지식베이스(730a), 헬스 도메인 지식베이스(740a) 등 각 도메인에 해당하는 별도의 지식베이스를 포함할 수 있다. The domain DB unit 700 includes a common domain knowledge base 710a, a movie domain knowledge base 720a, a music domain knowledge base 730a, and a health domain knowledge base 740a. Knowledge base.

구체적으로, 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)들은, 자연어 이해부(도 5의 300)가 가지는 복수의 분석 단계에서 각각 생성되는 자연어 분석 결과 중 일부만을 필요로 할 수 있으므로, 자연어 이해부(300)가 가지는 복수의 분석 단계가 모두 완료되기 전에도, 복수의 모듈(510a, 520a, 530a) 중 적어도 일부의 모듈은 분석이 시작될 수 있다. Therefore, the plurality of modules 510a, 520a, and 530a of the query response module 580 need only some of the natural language analysis results generated in the plurality of analysis steps of the natural language understanding unit 300 So that analysis of at least some of the plurality of modules 510a, 520a, and 530a can be started even before the plurality of analysis steps of the natural language understanding unit 300 are completed.

도 8은 본 발명의 예시적 실시 예에 따른 대화형 자동 질의응답 시스템의 플러그인 서버 및, 플러그인 서버와 연결되는 외부 서비스/DB를 상세히 나타내는 블록도이다.8 is a block diagram illustrating in detail an external service / DB connected to a plug-in server and a plug-in server of an interactive automatic question-answering system according to an exemplary embodiment of the present invention.

도 8을 참조하면, 플로그인 서버(600)는 복수의 플러그인(610a, 620a, 630a, 640a, 650a, 660a)를 가지는 질의응답 플러그인부(680), 및 질의응답 플러그인부(680)가 가지는 복수의 플러그인(610a, 620a, 630a, 640a, 650a, 660a) 각각에 대한 정보를 가지는 플러그인 등록부(690)을 포함한다. 복수의 플러그인(610a, 620a, 630a, 640a, 650a, 660a) 중 일부 플러그인(620a, 640a, 660a)은 외부 서비스/DB(800)와 네트워크(20a)를 통하여 연결될 수 있다. 8, the plug-in server 600 includes a query response plug-in unit 680 having a plurality of plug-ins 610a, 620a, 630a, 640a, 650a, and 660a, and a plurality of query response plug- And a plug-in register 690 having information on each of the plug-ins 610a, 620a, 630a, 640a, 650a, and 660a. Some of the plugins 620a, 640a, and 660a of the plurality of plugins 610a, 620a, 630a, 640a, 650a, and 660a may be connected to the external service / DB 800 through the network 20a.

복수의 플러그인(610a, 620a, 630a, 640a, 650a, 660a)은 각각 수학연산 플러그인(610a), 거리계산 플러그인(620a), 단위변환 플러그인(630a), 환율변환 플러그인(640a), 시간날짜 플러그인(650a), 및 날씨 플러그인(660a)일 수 있다. The plurality of plug-ins 610a, 620a, 630a, 640a, 650a and 660a are connected to a mathematical operation plug-in 610a, a distance calculation plug-in 620a, a unit conversion plug-in 630a, a currency conversion plug-in 640a, 650a, and a weather plugin 660a.

외부 서비스/DB(800)는 예를 들면, 지리정보 서비스(810a) 및 이와 연결되거나 이에 포함되는 Geo 정보 DB(812a), 환율변환 서비스(820a) 및 이와 연결되거나 이에 포함되는 환율 정보 DB(822a), 및 날씨 서비스(830a) 및 이와 연결되거나 이에 포함되는 세계날씨 DB(832a) 중 적어도 하나일 수 있다. The external service / DB 800 includes, for example, a geographical information service 810a and a Geo information DB 812a, a currency conversion service 820a connected to the Geographic Information service 810a, and a currency exchange information DB 822a , And weather service 830a, and a global weather database 832a associated with or included in the weather service 830a.

수학연산 플러그인(610a)은 사칙연상 등 수학연산에 관한 질의에 대한 답변을 자체적으로 생성할 수 있다. 거리계산 플러그인(620a)은 지리정보 서비스(810a)와 연결되기 위한 API를 가질 수 있으며, 지리정보 서비스(810a)를 통하여 두지역 사이의 거리 또는 경로 등과 같은 질의에 대한 답변을 생성할 수 있다. 단위변환 플러그인(630a)은 단위 변환에 관한 질의에 대한 답변을 자체적으로 생성할 수 있다. 환율변환 플러그인(640a)은 환율변환 서비스(820a)와 연결되기 위한 API를 가질 수 있으며, 환율변환 서비스(810a)를 통하여 현재 환율, 다른 화폐 사이의 환율 변환 등과 같은 질의에 대한 답변을 생성할 수 있다. 시간날짜 플러그인(650a)은 시간, 날짜에 대한 질의, 세계 시계, 양음력 변환 등과 같은 질의에 대한 답변을 자체적으로 생성할 수 있다. 날씨 플러그인(660a)은 날씨 서비스(830a)와 연결되기 위한 API를 가질 수 있으며, 날씨 서비스(830a) 통하여, 현재 날씨, 날씨 예보, 과거 날씨 등과 같은 질의에 대한 답변을 생성할 수 있다. The mathematical operation plug-in 610a can itself generate an answer to a query regarding a mathematical operation, such as associating an oblique rule. The distance calculation plug-in 620a may have an API to be associated with the geographic information service 810a and may generate an answer to the query such as distance or path between the two regions through the geographic information service 810a. The unit conversion plug-in 630a can itself generate an answer to the inquiry about the unit conversion. The currency conversion plugin 640a may have an API to be associated with the currency conversion service 820a and may generate an answer to the query such as current exchange rate, exchange rate conversion between different currencies, etc. through the exchange rate conversion service 810a have. The time date plug-in 650a can itself generate responses to queries such as time, date queries, world clocks, volume transitions, and the like. The weather plugin 660a may have an API to be associated with the weather service 830a and may generate responses to queries such as current weather, weather forecasts, past weather, etc. through the weather service 830a.

이와 같이, 지식베이스와 참조하지 않고 자체적으로 또는 외부 서비스와 연결하여 답변을 생성할 수 있는 질의에 대해서는 플러그인(610a, 620a, 630a, 640a, 650a, 660a)을 통하여 빠르게 답변을 생성할 수 있다. As such, queries can be generated quickly through plugins 610a, 620a, 630a, 640a, 650a, and 660a for queries that can be generated by themselves or external services without reference to the knowledge base.

이상, 본 발명을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명은 상기 실시예에 한정되지 않고, 본 발명의 기술적 사상 및 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다. 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, 1a, 1b, 1c, 1d, 2 : 대화형 자동 질의응답 시스템, 10 : 사용자, 20, 20a : 네트워크, 100 : 대화 관리자, 200 : 질의응답 관리자, 300 : 자연어 이해부, 400 : 자연어 생성부, 500 : 모듈 서버, 600 : 플러그인 서버, 700 : 도메인 DB부, 900 : 모듈/플러그인 모델1, 1a, 1b, 1c, 1d, 2: Interactive automatic question and answer system, 10: User, 20, 20a: Network, 100: Dialogue manager, 200: Query response manager, 300: Module 500, plug-in server 700, domain DB portion 900, module / plug-in model

Claims (10)

네트워크를 통하여 자연어 형태인 사용자의 질의를 수신하고 응답을 송신하며, 상기 사용자와 대화형으로 질문과 대답을 주고받는 대화 관리자;
상기 사용자의 질의 및 그에 대한 상기 응답을 관리하는 질의응답 관리자;
자연어 형태인 상기 사용자의 질의를 분석하며 각각 단위 자연어 분석 결과를 생성하는 복수의 단위 분석 과정을 가지는 자연어 이해부; 및
상기 자연어 이해부의 복수의 단위 분석 과정에서 각각 생성한 단위 자연어 분석 결과를 전달받아, 각각 독립적으로 분석을 수행하는 복수의 모듈 및 복수의 플러그인;을 포함하며,
상기 질의응답 관리자는,
상기 자연어 이해부의 복수의 단위 분석 과정에서 각각 생성한 상기 단위 자연어 분석 결과를 구분하여 수신하여, 상기 복수의 모듈 및 복수의 플러그인 중 상기 단위 자연어 분석 결과 각각에 대응되는 모듈 또는 플러그인에 전달하여 분석을 수행시키고,
상기 복수의 모듈 및 복수의 플러그인으로부터 답변을 수신하지 못하거나, 추가적인 정보를 요청받은 경우에 상기 대화 관리자를 통하여 상기 사용자에게 상기 질문을 하도록 하는 대화형 자동 질의응답 시스템.
A dialog manager for receiving a query of a user in a natural language form over a network, sending a response, and interactively exchanging questions and answers with the user;
A query response manager managing the user's query and the response thereto;
A natural language understanding unit having a plurality of unit analysis processes for analyzing a query of the user in a natural language form and generating a unit natural language analysis result; And
And a plurality of modules and a plurality of plug-ins that receive the unit natural language analysis results respectively generated in the plurality of unit analysis processes of the natural language understanding unit and independently perform analysis,
The query response manager,
The unit natural language analysis results generated in the plurality of unit analysis processes of the natural language understanding unit are separately received and transmitted to modules or plug-ins corresponding to the unit natural language analysis results of the plurality of modules and the plurality of plug- Lt; / RTI &
An interactive automatic question-answering system for not receiving answers from said plurality of modules and a plurality of plug-ins, or for asking said user through said dialogue manager if additional information is requested.
제1 항에 있어서,
상기 대화 관리자는, 상기 질문에 대한 상기 사용자의 대답을 상기 사용자의 질의와 함께 결합하여 상기 질의응답 관리자에 전달하는 것을 특징으로 하는 대화형 자동 질의응답 시스템.
The method according to claim 1,
Wherein the dialogue manager combines the user's answer to the question with the user's query and delivers the combined query to the query response manager.
제2 항에 있어서,
상기 대화 관리자는,
현재 질의에 대한 상기 사용자의 질의, 상기 질문 및 상기 사용자의 대답을 저장하는 숏텀 메모리, 및 상기 사용자와의 이전 질의, 그에 대한 질문 및 대답을 저장하는 사용자 메모리를 포함하며,
상기 사용자 메모리에 저장된 상기 사용자와의 이전 질의, 그에 대한 질문 및 대답을 참조하여, 상기 질문을 생성하는 것을 특징으로 하는 대화형 자동 질의응답 시스템.
3. The method of claim 2,
The conversation manager,
A user memory for storing a query of the user for the current query, a short memory storing the question and the user's answer, and a previous query with the user, a question and an answer thereto,
Wherein the query is generated by referring to a previous query with the user stored in the user memory, a question and an answer thereto.
제1 항에 있어서,
상기 질의응답 관리자는, 상기 복수의 모듈 및 복수의 플러그인 중 분석이 수행 중인 모듈 또는 플러그인에서 일정 시간 내에 전달되는 답변 또는 일정 개수까지 전달된 답변을 기초로, 상기 응답을 생성하는 것을 특징으로 하는 대화형 자동 질의응답 시스템.
The method according to claim 1,
Wherein the query response manager generates the response on the basis of an answer transmitted to a predetermined number of times or a predetermined number of times in a module or plug-in under analysis among the plurality of modules and a plurality of plug- Type automatic question and answer system.
제4 항에 있어서,
상기 질의응답 관리자는, 상기 일정 시간이 초과한 경우, 상기 분석이 수행 중인 모듈 또는 플러그인 중, 답변을 전달하지 않은 모듈 또는 플러그인의 분석을 중단시키는 것을 특징으로 하는 대화형 자동 질의응답 시스템.
5. The method of claim 4,
Wherein the query response manager stops analysis of a module or a plug-in that has not delivered a response, out of modules or plug-ins being analyzed, when the predetermined time has elapsed.
제4 항에 있어서,
상기 질의응답 관리자는, 상기 일정 개수까지 답변이 전달된 경우, 상기 분석이 수행 중인 모듈 또는 플러그인 중, 답변을 전달하지 않은 모듈 또는 플러그인의 분석을 중단시키는 것을 특징으로 하는 대화형 자동 질의응답 시스템.
5. The method of claim 4,
Wherein the query response manager stops analysis of a module or a plug-in that has not delivered a response, out of the module or plug-in being analyzed, when the response is delivered to the predetermined number.
제1 항에 있어서,
각각 지식데이터가 축적된 지식베이스인 복수의 도메인 DB를 더 포함하며,
상기 복수의 모듈은 상기 복수의 도메인 DB 중 적어도 하나를 참조하여 답변을 생성하고,
상기 복수의 플러그인은 상기 복수의 도메인 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 the plurality of modules generate an answer with reference to at least one of the plurality of domain DBs,
Wherein the plurality of plug-ins generate an answer without referring to the plurality of domain DBs.
제7 항에 있어서,
상기 복수의 플러그인 중 일부는 자체적으로 답변을 생성하고, 다른 일부는 외부 서비스와 연결되어 답변을 생성하는 것을 특징으로 하는 대화형 자동 질의응답 시스템.
8. The method of claim 7,
Wherein some of the plurality of plug-ins generate their own responses and others are associated with external services to generate responses.
제1 항에 있어서,
상기 자연어 이해부는,
상기 복수의 단위 분석 과정 각각을 수행하는 시맨틱 롤 라벨링부, 형태소 분석부, 구문 분석부, 개체명 분석부, 의도 분류부 및 도메인 분석부를 포함하며,
상기 시맨틱 롤 라벨링부, 상기 형태소 분석부, 상기 구문 분석부, 상기 개체명 분석부, 상기 의도 분류부 및 상기 도메인 분석부 각각에서 수행되는 단위 분석 과정에서 생성되는 상기 단위 자연어 분석 결과를, 생성되는 순서대로 상기 질의응답 관리자에 전송하는 것을 특징으로 하는 대화형 자동 질의응답 시스템.
The method according to claim 1,
The natural language understanding unit,
A semantic role analyzing unit, a syntax analyzing unit, an entity name analyzing unit, an intention classifying unit, and a domain analyzing unit, each of which performs the plurality of unit analyzing processes,
The unit natural language analysis result generated in the unit analysis process performed in each of the semantic roll labeling unit, the morpheme analysis unit, the syntax analysis unit, the object name analysis unit, the intention classification unit, and the domain analysis unit, To the query response manager in order.
제1 항에 있어서,
상기 질의응답 관리자는,
상기 복수의 모듈 및 복수의 플러그인 중 분석이 수행 중인 모듈 또는 플러그인에서 일정 시간 내에 전달되는 답변들의 유사도를 판단하여, 적어도 2개의 답변의 유사도가 일정 기준 이상인 경우, 유사도가 상기 일정 기준 이상의 적어도 2개의 답변을 기초로, 상기 응답을 생성하며,
유사도가 상기 일정 기준 이상인 적어도 2개의 답변이 전달된 경우, 상기 분석이 수행 중인 모듈 또는 플러그인 중, 답변을 전달하지 않은 모듈 또는 플러그인의 분석을 중단시키는 대화형 자동 질의응답 시스템.
The method according to claim 1,
The query response manager,
Wherein the degree of similarity of the responses transmitted within a predetermined time is determined in a module or plug-in under analysis among the plurality of modules and a plurality of plug-ins, and when the similarity degree of the at least two answers is equal to or greater than a certain standard, Based on the answer, generate the response,
And stopping analysis of a module or a plug-in that has not delivered a response, out of modules or plug-ins under analysis, when at least two answers having similarities exceeding the predetermined standard are delivered.
KR1020170012966A 2017-01-26 2017-01-26 Interactive Automatic Question-Answering System KR101849750B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170012966A KR101849750B1 (en) 2017-01-26 2017-01-26 Interactive Automatic Question-Answering System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170012966A KR101849750B1 (en) 2017-01-26 2017-01-26 Interactive Automatic Question-Answering System

Publications (1)

Publication Number Publication Date
KR101849750B1 true KR101849750B1 (en) 2018-04-17

Family

ID=62083208

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170012966A KR101849750B1 (en) 2017-01-26 2017-01-26 Interactive Automatic Question-Answering System

Country Status (1)

Country Link
KR (1) KR101849750B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102022412B1 (en) * 2018-12-20 2019-09-18 석동주 System for automatic generating of legal documents and a method thereof
KR102051890B1 (en) * 2018-05-31 2019-12-06 주식회사 빅트리 Method for Responding Based on Chat-Bot
KR20200023048A (en) * 2018-08-24 2020-03-04 주식회사 리스트 Machine-lead conversation service method and system
KR102098256B1 (en) * 2018-11-28 2020-04-07 주식회사 솔트룩스 Automatic Question-Answering system based on knowledge base
KR20200066119A (en) * 2018-11-30 2020-06-09 고려대학교 산학협력단 Method of fake news evaluation based on knowledge-based inference, recording medium and apparatus for performing the method
CN117332068A (en) * 2023-10-31 2024-01-02 北京百度网讯科技有限公司 Man-machine interaction method and device, electronic equipment and storage medium

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102051890B1 (en) * 2018-05-31 2019-12-06 주식회사 빅트리 Method for Responding Based on Chat-Bot
KR20200023048A (en) * 2018-08-24 2020-03-04 주식회사 리스트 Machine-lead conversation service method and system
KR102142957B1 (en) * 2018-08-24 2020-08-12 주식회사 리스트 Machine-lead conversation service method and system
KR102098256B1 (en) * 2018-11-28 2020-04-07 주식회사 솔트룩스 Automatic Question-Answering system based on knowledge base
KR20200066119A (en) * 2018-11-30 2020-06-09 고려대학교 산학협력단 Method of fake news evaluation based on knowledge-based inference, recording medium and apparatus for performing the method
KR102206781B1 (en) 2018-11-30 2021-01-25 고려대학교 산학협력단 Method of fake news evaluation based on knowledge-based inference, recording medium and apparatus for performing the method
KR102022412B1 (en) * 2018-12-20 2019-09-18 석동주 System for automatic generating of legal documents and a method thereof
CN117332068A (en) * 2023-10-31 2024-01-02 北京百度网讯科技有限公司 Man-machine interaction method and device, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
KR101849750B1 (en) Interactive Automatic Question-Answering System
KR101915778B1 (en) Automatic Question-Answering System
US11887597B2 (en) Voice application platform
US10671620B2 (en) Method for recommending a teacher in a network teaching system
US11797595B2 (en) Method, apparatus, and computer program product for user-specific contextual integration for a searchable enterprise platform
US10636425B2 (en) Voice application platform
US11960513B2 (en) User-customized question-answering system based on knowledge graph
US20190371321A1 (en) Voice Application Platform
US20220138432A1 (en) Relying on discourse analysis to answer complex questions by neural machine reading comprehension
KR102034646B1 (en) Automatic Question-Answering system having mutiple Question-Answering modules
US11238132B2 (en) Method and system for using existing models in connection with new model development
US11860945B2 (en) Information processing apparatus to output answer information in response to inquiry information
US20190371314A1 (en) Voice Application Platform
US11423232B2 (en) Systems and methods for deploying computerized conversational agents
Chan et al. Question-answering dialogue system for emergency operations
KR20190023316A (en) Question-answering system based dialogue model
US20200387980A1 (en) Automated mechanism to regulate membership in expert group system
Abedinzadeh et al. A trust-based service suggestion system using human plausible reasoning
CN114328947A (en) Knowledge graph-based question and answer method and device
KR20190076712A (en) Automatic Question-Answering System multiple Question-Answering modules
KR20210080561A (en) Consulting information processing method and device
Sambir et al. Recruiting software architecture using user generated data
CA3102093A1 (en) Voice application platform
KR20080096225A (en) System and method for providing realtime answering service in consideration of answerable index
US20240134897A1 (en) Systems and methods for time-series query focused document summarization from multiple documents

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant