KR20200080951A - Dialogue system having multiple dialogue domains - Google Patents
Dialogue system having multiple dialogue domains Download PDFInfo
- Publication number
- KR20200080951A KR20200080951A KR1020180170964A KR20180170964A KR20200080951A KR 20200080951 A KR20200080951 A KR 20200080951A KR 1020180170964 A KR1020180170964 A KR 1020180170964A KR 20180170964 A KR20180170964 A KR 20180170964A KR 20200080951 A KR20200080951 A KR 20200080951A
- Authority
- KR
- South Korea
- Prior art keywords
- conversation
- user
- unit
- domain
- speech
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/10—Speech classification or search using distance or distortion measures between unknown speech and reference templates
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
Abstract
Description
본 발명은 대화 시스템에 관한 것으로, 자세하게는 복수의 대화 도메인을 가지는 대화 시스템에 관한 것이다. The present invention relates to a conversation system, and more particularly, to a conversation system having a plurality of conversation domains.
본 발명은 미래창조과학부 SW컴퓨팅산업원천기술개발사업(SW)의 일환으로 (주)비트컴퓨터에서 주관하고 (주)솔트룩스가 공동 연구하여 수행된 연구로부터 도출된 것이다. [연구기간: 2018.04.01~2019.03.31, 연구관리 전문기관: 정보통신기술진흥센터, 연구과제명: 머신러닝기반 의료HER 클라우드 서비스 개발, 과제 고유번호: 2017-0-03355] The present invention was derived from a study conducted by Bitlux Co., Ltd. and jointly researched by Saltlux Co., Ltd. as part of the SW Computing Industry Source Technology Development Project (SW) by the Ministry of Science, ICT and Future Planning. [Research period: 2018.04.01~2019.03.31, Research management agency: Information and Communication Technology Promotion Center, Research project name: Machine learning-based medical HER cloud service development, task identification number: 2017-0-03355]
대화 시스템은 사용자의 발언(utterance)에 응답하여 시스템의 발언을 생성 및 제공하는 시스템으로, 대화 시스템은 특정 도메인이나 상황에서 가능한 대화 환경을 제공하기 위한 대화 도메인이 함께 제공된다. 사용자의 발언에 인칭대명사, 지시대명사, 관계대명사와 같은 대용어(anaphora)가 포함된 경우, 대화 시스템에서, 대용어의 의미를 파악하고 사용자의 의도를 파악하는데 어려움이 발생할 수 있다. The conversation system is a system that generates and provides a system speech in response to a user's utterance, and the conversation system is provided with a conversation domain for providing a conversation environment possible in a specific domain or situation. When the user's remark includes an anaphora such as a person pronoun, an instructive pronoun, or a relational pronoun, in the conversation system, it may be difficult to understand the meaning of the surrogate and to understand the user's intention.
본 발명의 기술적 과제는, 대용어의 의미를 파악할 수 있도록 복수의 대화 도메인을 가지는 대화 시스템을 제공하는 것이다. The technical problem of the present invention is to provide a conversation system having a plurality of conversation domains so as to grasp the meaning of a substitute term.
상기 기술적 과제를 달성하기 위한 본 발명의 기술적 사상의 일측면에 따른 복수의 대화 도메인을 가지는 대화 시스템은, 네트워크를 통하여 사용자로부터 사용자 발언을 수신하고 시스템 발언을 상기 사용자에게 송신하는 유저 인터페이스; 복수의 대화 도메인을 가지는 대화 도메인 관리부; 액션 온톨로지와 팩트 온톨로지를 가지는 자연어 이해부를 참조하여 상기 사용자 발언에 대한 자연어 처리를 하여, 상기 사용자 발언을 시맨틱 프레임으로 구성 및 벡터화하고, 상기 사용자 발언에 대한 자연어 처리 결과를 이용하여 상기 복수의 대화 도메인 중 하나를 선택하는 사용자 발언 전처리부; 구성된 상기 사용자 발언에 대한 시맨틱 프레임으로부터 엔티티, 의도, 및 대용어를 감지하고, 감지된 대용어가 지칭하는 엔티티를 탐색하여 감지하는 자연어 분석부; 및 상기 사용자 발언이 가지는 대용어를 지칭하는 엔티티를 토대로 상기 시스템 발언을 생성하도록 실행하는 시스템 발언 실행부;를 포함한다. A conversation system having a plurality of conversation domains according to an aspect of the technical idea of the present invention for achieving the above technical problem includes: a user interface that receives a user's speech from a user through a network and transmits the system's speech to the user; A conversation domain management unit having a plurality of conversation domains; By referring to the natural language understanding unit having an action ontology and a fact ontology, natural language processing is performed on the user speech, and the user speech is composed and vectorized into a semantic frame, and the plurality of conversation domains are used by using the natural language processing result for the user speech. A user speech preprocessing unit selecting one of the two; A natural language analysis unit that detects entities, intentions, and substitutes from the constructed semantic frame for the user's speech, and searches for and detects the entities indicated by the detected substitutes; And a system utterance executing unit executing to generate the system utterance based on an entity indicating a substitute word of the user utterance.
상기 대화 도메인 관리부는, 상기 복수의 대화 도메인 각각이 가지는 도메인 대화들을 시맨틱 프레임으로 구성 및 벡터화하여 상기 복수의 대화 도메인 각각에 대한 싱글 클러스터 모델을 생성하는 클러스터 모델 생성부를 더 포함할 수 있다. The conversation domain management unit may further include a cluster model generation unit configured to construct and vectorize domain conversations of each of the plurality of conversation domains into a semantic frame to generate a single cluster model for each of the plurality of conversation domains.
상기 자연어 분석부는, 구성된 상기 사용자 발언에 대한 시맨틱 프레임으로부터 엔티티, 의도, 및 대용어를 각각 감지하는 엔티티 검출부, 의도 검출부, 및 대용어 분해부를 포함하며, 상기 대용어 분해부는 상기 엔티티 검출부에서 감지된 엔티티로부터 상기 감지된 대용어의 후보인 후보 대용어들을 선정하는 후보 선정부, 상기 감지된 대용어를 상기 후보 대용어들로 각각 치환하는 후보 치환부; 및 상기 감지된 의도를 참조하여, 상기 감지된 대용어가 상기 후보 대용어들로 각각 치환된 상기 사용자 발언과 상기 선택된 대화 도메인의 유사도를 계산하는 유사도 계산부;를 포함할 수 있다. The natural language analysis unit includes an entity detection unit, an intention detection unit, and a surrogate decomposition unit that detect entities, intentions, and surrogates from the semantic frame for the configured user speech, and the surrogate decomposition unit is detected by the entity detection unit A candidate selection unit for selecting candidate substitutes that are candidates for the detected substitutes from the entity, and candidate replacement units for replacing the detected substitutes with the candidate substitutes; And a similarity calculating unit calculating the similarity between the user's speech and the selected conversation domain in which the detected substitute is replaced with the candidate substitutes, with reference to the sensed intention.
상기 유사도 계산부는, 벡터화된 상기 사용자 발언과 상기 선택된 대화 도메인에 대한 싱글 클러스터 모델 사이의 거리를 계산할 수 있다. The similarity calculating unit may calculate a distance between the vectorized user speech and a single cluster model for the selected conversation domain.
상기 사용자 발언에 대하여 구성된 시맨틱 프레임, 감지된 엔티티, 감지된 의도, 및 감지된 대용어를 가지는 시맨틱 프레임 컨텍스트을 저장하는 시맨틱 프레임 컨텍스트 저장부;를 더 포함하며, 상기 후보 선정부는, 상기 시맨틱 프레임 컨텍스트 저장부에 저장된 상기 시맨틱 프레임 컨텍스트가 가지는 감지된 엔티티로부터 상기 후보 대용어들을 선정할 수 있다. A semantic frame context storage unit for storing a semantic frame context having a semantic frame, a sensed entity, a sensed intention, and a sensed substitute for the user's speech; and further comprising the candidate selection unit storing the semantic frame context The candidate substitutes may be selected from the sensed entity of the semantic frame context stored in the unit.
상기 대용어 분해부는, 클러스터 모델 선택부를 더 포함하며, 상기 클러스터 모델 선택부는 상기 후보 대용어들로 각각 치환된 상기 사용자 발언과 상기 선택된 대화 도메인의 유사도가 기설정된 값 이상인 경우 선택된 대화 도메인을 선택하고, 상기 기설정된 값 미만인 경우, 상기 후보 대용어들로 각각 치환된 상기 사용자 발언과 상기 복수의 대화 도메인 중 선택되지 않은 대화 도메인의 유사도를 계산하여, 상기 기설정된 값 이상인 선택되지 않은 대화 도메인에 대한 싱글 클러스터 모델과 상기 선택된 대화 도메인에 대한 싱글 클러스터 모델을 결합하여 다중 클러스터 모델을 생성할 수 있다. The surrogate decomposition unit further includes a cluster model selection unit, and the cluster model selection unit selects the selected conversation domain when the similarity between the user speech and the selected conversation domain substituted with the candidate substitution terms is greater than or equal to a preset value. , When less than the preset value, calculates the similarity between the user's speech substituted with the candidate substitutes and the unselected chat domain among the plurality of chat domains, for an unselected chat domain equal to or greater than the preset value. A single cluster model and a single cluster model for the selected conversation domain can be combined to generate a multiple cluster model.
상기 사용자 발언 전처리부는, 상기 클러스터 모델 선택부에서 상기 다중 클러스터 모델을 생성하면, 상기 선택된 대화 도메인의 싱글 클러스터 모델 대신에 상기 생성된 다중 클러스터 모델이 선택되도록 할 수 있다. When the multi-cluster model is generated by the cluster model selection unit, the user remark pre-processing unit may allow the generated multi-cluster model to be selected instead of the single cluster model of the selected conversation domain.
상기 클러스터 모델 생성부는, 상기 액션 온톨로지와 상기 팩트 온톨로지를 참조하여 상기 복수의 대화 도메인 각각이 가지는 도메인 대화들 각각을 시맨틱 프레임으로 구성하는 모델 시맨틱 프레임 변환부; 구성된 상기 도메인 대화들 각각에 대한 시맨틱 프레임에서 상기 액션 온톨로지와 상기 팩트 온톨로지에 대응되는 키워드를 통하여 액션 벡터 및 팩트 벡터를 생성하는 모델 벡터 생성부; 및 구성된 상기 도메인 대화들 각각에 대한 시맨틱 프레임에서 생성된 상기 액션 벡터 및 상기 팩트 벡터를 참조하여 시맨틱 프레임 벡터를 구하고, 상기 도메인 대화들 각각에 대한 상기 시맨틱 프레임 벡터를 조합해서 상기 복수의 대화 도메인 각각에 대한 싱글 클러스터 모델을 생성하는 시맨틱 프레임 벡터 생성부;를 포함할 수 있다. The cluster model generation unit includes: a model semantic frame conversion unit configured to configure each of the domain conversations of each of the plurality of conversation domains as a semantic frame with reference to the action ontology and the fact ontology; A model vector generator for generating action vectors and fact vectors through keywords corresponding to the action ontology and the fact ontology in the semantic frame for each of the configured domain conversations; And a semantic frame vector with reference to the action vector and the fact vector generated in the semantic frame for each of the configured domain conversations, and combining the semantic frame vector for each of the domain conversations to each of the plurality of conversation domains. And a semantic frame vector generator for generating a single cluster model for.
상기 시스템 발언 실행부는, 표준 실행부 및 대용어 실행부를 포함하며, 상기 표준 실행부는, 상기 사용자 발언에서 감지된 대용어가 없는 경우, 상기 사용자 발언에서 감지된 엔티티 및 감지된 의도를 토대로 상기 시스템 발언을 생성하도록 실행하고, 상기 대용어 실행부는, 상기 사용자 발언에서 감지된 대용어가 있는 경우 상기 시스템 발언을 생성하도록 실행할 수 있다. The system speech execution unit includes a standard execution unit and a surrogate execution unit, and the standard execution unit, when there is no substitute word detected in the user speech, based on the entity sensed in the user speech and the sensed intention And the surrogate execution unit may execute to generate the system remark when there is a surrogate detected in the user remark.
본 발명에 따른 대화 시스템은, 사용자의 발언에 대용어가 포함된 경우에도 대용어의 의미 및 사용자의 의도를 파악할 수 있으며, 모든 대화 과정에 대응한 대화 도메인을 가지지 못하는 경우에도, 서로 다른 2개 이상의 대화 도메인을 결합한 다중 클러스터 모델을 생성하여, 새로운 형태의 대화 과정에 바로 대응할 수 있다. The conversation system according to the present invention can grasp the meaning of a substitute word and a user's intention even when the user's speech includes a substitute word, and even if the conversation domain does not have a conversation domain corresponding to all conversation processes, two different By creating a multi-cluster model that combines the above-mentioned dialogue domains, it can directly respond to a new type of dialogue process.
도 1은 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템을 나타내는 블록도이다.
도 2a는 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템의 대화 도메인 관리부의 구성을 나타내는 블록도이고, 도 2b는 대화 도메인 관리부의 동작을 설명하기 위한 블록도이다.
도 3a 및 도 3b는 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템에서 사용되는 시맨틱 프레임과 시맨틱 프레임 컨텍스트를 설명하는 개념도들이다.
도 4는 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템의 자연어 분석부의 동작을 설명하기 위한 블록도이다.
도 5a는 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템에서 다중 클러스터 모델을 생성하는 과정을 설명하기 위한 블록도이고, 도 5b는 다중 클러스터 모델의 개념을 설명하기 위한 개념도이다.
도 6은 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템의 시스템 발언 실행부의 동작을 설명하는 블록이다.
도 7은 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템에서 이루어지는 예시적인 대화 진행을 나타낸다. 1 is a block diagram illustrating a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention.
2A is a block diagram showing the configuration of a conversation domain management unit of a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention, and FIG. 2B is a block diagram for explaining the operation of the conversation domain management unit.
3A and 3B are conceptual views illustrating a semantic frame and a semantic frame context used in a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention.
Fig. 4 is a block diagram illustrating an operation of a natural language analysis unit of a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention.
5A is a block diagram illustrating a process of generating a multi-cluster model in a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention, and FIG. 5B is a conceptual diagram illustrating the concept of a multi-cluster model .
Fig. 6 is a block diagram illustrating an operation of a system speaking execution unit of a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention.
7 illustrates an exemplary conversation progression made in a conversation system having a plurality of conversation domains 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. The embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. The present invention can be applied to various changes and may have various forms, and specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to a specific disclosure form, and it should be understood that all modifications, equivalents, and substitutes included in the spirit and scope of the present invention are included. In describing each drawing, similar reference numerals are used for similar components. In the accompanying drawings, the dimensions of the structures are enlarged or reduced than actual ones for clarity of the present invention.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수개의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this specification are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions, unless the context clearly indicates otherwise. In this specification, terms such as “include” or “have” are intended to indicate that a feature, number, step, operation, component, part, or combination thereof described on the specification exists, and that one or more other features are present. It should be understood that the existence or addition possibilities of fields or numbers, steps, actions, components, parts or combinations thereof are not excluded in advance.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person skilled in the art to which the present invention pertains. Terms such as those defined in a commonly used dictionary should be interpreted as having meanings consistent with meanings in the context of related technologies, and are not to be interpreted as ideal or excessively formal meanings, unless explicitly defined herein. .
이하 도면 및 설명에서, 하나의 블록, 예를 들면, '~부' 또는 '~모듈'로 표시 또는 설명되는 구성요소는 하드웨어 블록 또는 소프트웨어 블록일 수 있다. 예를 들면, 구성요소들 각각은 서로 신호를 주고 받는 독립적인 하드웨어 블록일 수도 있고, 또는 하나의 프로세서에서 실행되는 소프트웨어 블록일 수도 있다.In the following drawings and descriptions, one block, for example, a component indicated or described as'~ unit' or'~ module' may be a hardware block or a software block. For example, each of the components may be an independent hardware block that exchanges signals with each other, or may be a software block executed in one processor.
본 발명의 구성 및 효과를 충분히 이해하기 위하여, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예들을 설명한다. In order to fully understand the configuration 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 a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention.
도 1을 참조하면, 복수의 대화 도메인을 가지는 대화 시스템(1, 이하 대화 시스템)은, 네트워크(50)를 통하여 사용자(10)로부터 발언을 수신하고, 사용자에게 발언을 송신하는 유저 인터페이스(UI, 100)를 포함한다. 네트워크(50)는 유선 인터넷 서비스, 근거리 통신망(LAN), 광대역 통신망(WAN), 인트라넷, 무선 인터넷 서비스, 이동 컴퓨팅 서비스, 무선 데이터 통신 서비스, 무선 인터넷 접속 서비스, 위성 통신 서비스, 무선 랜, 블루투스 등 유/무선을 통하여 데이터를 주고 받을 수 있는 것을 모두 포함할 수 있다. 네트워크(50)가 스마트폰 또는 태블릿 등과 연결되는 경우, 네트워크(50)는 3G, 4G, 5G 등의 무선 데이터 통신 서비스, 와이파이(Wi-Fi) 등의 무선 랜, 블루투스 등일 수 있다. Referring to FIG. 1, a conversation system having a plurality of conversation domains (1, hereinafter a conversation system) receives a utterance from the
유저 인터페이스(100)는 사용자(10)가 사용하는 단말기 등을 통하여 대화 시스템(1)에 엑세스하기 위한 인터페이스를 제공할 수 있다. 사용자(10)는 유저 인터페이스(100)를 통하여 사용자(10)의 발언(utterance, 이하 사용자 발언)을 대화 시스템(1)에 전송할 수 있고, 유저 인터페이스(100)를 통하여 대화 시스템(1)이 제공하는 사용자의 발언에 대한 시스템의 발언을 전달받을 수 있다. 발언(utterance) 대화 과정에서 사용자(10) 또는 대화 시스템(1)이 상대에게 전달하고자 하는 문장이다. 사용자의 발언은 입력 문장이라 호칭할 수 있고, 시스템의 발언은 출력 문장이라 호칭할 수 있다. The
대화 시스템(1)은 유저 인터페이스(100)와 연결되어 사용자(10)로부터 입력 문장을 수신하고, 유저 인터페이스(100)를 통하여 사용자(10)에게 출력 문장을 송신하는 대화 실행 관리자(200)를 포함한다. 또한, 대화 실행 관리자(200)은 대화 시스템(1)이 포함하는 구성 요소들을 제어하여 대화 과정을 진행할 수 있다. The
대화 시스템(1)은 사용자 발언 전처리부(300)를 포함한다. 사용자 발언 전처리부(300)는 자연어 이해부(500)를 참조하여, 사용자 발언에 대한 자연어 처리를 할 수 있다. 자연어 처리는 대상 어절을 최소의 의미 단위인 형태소로 분석하는 형태소 분석 과정, 이렇게 분석된 형태소 결과 중 가장 적합한 형태의 품사를 선택하는 과정으로서 문맥 좌우에 위치한 중의성 해소의 힌트가 되는 정보를 이용해서 적합한 분석 결과를 선택하는 품사 부착 과정, 명사구, 동사구, 부사구 등의 덩어리를 분석하는 구 단위 분석 과정, 중문, 복문 등의 문장을 단문 단위로 분해하는 절 단위 분석 과정, 및 문장을 이루고 있는 구성 성분 간 위계 관계를 분석하여 문장의 구조를 결정하는 구문 분석 과정을 포함할 수 있다. The
사용자 발언 전처리부(300)는 사용자 발언에 대한 자연어 처리 결과를 이용하여 대화 도메인 관리부(600)가 가지는 복수의 대화 도메인(610, 620, 630) 중 어느 하나를 선택할 수 있다. 복수의 대화 도메인(610, 620, 630) 각각은 대화 상황에 맞게 구성된 대화 모델일 수 있다. 사용자 발언 전처리부(300)는 사용자 발언을 시맨틱 프레임(도 3a의 SF)으로 변환하는 사용자 발언 시맨틱 프레임 변화부(310) 및 시맨틱 프레임(SF)으로 변환된 사용자 발언을 벡터화하는 발언 벡터 생성부(320)로 이루어질 수 있다. 사용자 발언 전처리부(300)는 자연어 이해부(500)가 가지는 액션 온톨로지(510) 및 팩트 온톨로지(520)를 활용하여, 사용자 발언을 시맨틱 프레임(SF)으로 변환하고 벡터화할 수 있다. The user speech pre-processing
시맨틱 프레임(SF)이란, 언어적 의미(linguistic semantics)를 사전적 지식(encyclopedic knowledge)으로 연결시키는 이론으로, 발언에 대한 자연어 처리 과정에서 액션 온톨로지(510)와 팩트 온톨로지(520)를 활용하여, 각 엔티티 및 동사를 추출하여 매핑시킬 수 있는 정형화된 프레임이다. 예를 들어 팔다(Sell)라는 언어는 구매자, 판매자, 상품, 금액 등의 맥락 없이는 이해할 수 없으므로, 언어의 해석을 위하여, 이러한 맥락을 프레임으로 구성한 것이 시맨틱 프레임(SF)이다. 시맨틱 프레임(SF)은 lexeme(의미의 최소 단위)에 적용될 수 있으나, 이에 한정되지 않으며, 핵심 의미 분석요소로 문법구조(grammatical construction)에 적용되거나, 복잡한 언어 단위(linguistic units), 또는 구성문법(construction grammar) 등에 적용될 수 있다. The semantic frame (SF) is a theory that connects linguistic semantics to encyclopedic knowledge, and utilizes the
시맨틱 프레임 저장부(550)에는 사용자 발언을 시맨틱 프레임(SF)으로 변환시키기 위한 매핑용 프레임이 저장되어 있다. 본 명세서에서, 시맨틱 프레임(SF)은 시맨틱 프레임 저장부(550)에 저장된 매핑용 프레임에, 발언에서 추출된 각 엔티티 및 동사가 매핑된 결과를 의미할 수 있다.The semantic
온톨로지(ontology)란 세상의 있는 사물이나 사건들에 대한 특징을 파악하고 개념화하여 일종의 데이터베이스와 같은 형태로 만드는 기술을 의미하며, 정보 시스템의 대상이 되는 자원의 개념을 명확하게 정의하고 상세하게 기술하여 관련된 사물 및 사건들에 대한 정확한 정보를 찾을 수 있도록 할 수 있다. 온톨로지는 예를 들면, 클래스(Class), 인스턴스(Instance), 릴레이션(Relation), 및 프로퍼티(Property)의 4가지로 구성될 수 있다. 클래스(Class)는 일반적으로 우리가 사물이나 개념에 붙이는 이름인 "컴퓨터", "키보드", "모니터" 등을 말한다. 인스턴스(Instance)는 클래스(Class)의 실질적인 형태로, "삼성전자 SM-500 컴퓨터", "LG전자 X키보드", "삼성전자 SM-520 모니터" 등과 같은 것을 일반적으로 인스턴스(Instance)라고 볼 수 있다. 프로퍼티(Property)는 클래스(Class) 또는 인스턴스(Instance)의 특정한 성질이나 정보를 값(Value)으로 가지고 있는 것이다. 삼성전자 12인치 SM-520 모니터에서, 인스턴스(Instance)인 "삼성전자 SM-520 모니터" 는 사이즈(Size)라는 프로퍼티(Property)로 12인치를 가지고 있는 것이다. 릴레이션(Relation)은 클래스(Class)와 인스턴스(Instance) 간의 관계를 표현할 수 있다. "사람은 동물이다"에서와 같이 "사람"인 클래스(Class)와 "동물"인 클래스(Class)는 'isA'와 같은 릴레이션(Relation)를 통해 '"사람" isA "동물"'과 같이 표현할 수 있다.Ontology refers to a technology that identifies and conceptualizes the characteristics of objects or events in the world and makes them into a kind of database, and clearly defines and describes in detail the concept of a resource that is the target of an information system. It can help to find accurate information about related objects and events. The ontology may be composed of four types, for example, Class, Instance, Relation, and Property. Class refers to "computer", "keyboard", and "monitor", which are the names we usually give to things or concepts. Instance is a practical form of class, such as "Samsung Electronics SM-500 computer", "LG Electronics X keyboard", "Samsung Electronics SM-520 monitor", etc., can be generally viewed as instances. have. A property is a value that contains specific properties or information of a class or instance. In the Samsung Electronics 12-inch SM-520 monitor, the instance "Samsung Electronics SM-520 monitor" has a property of 12 inches. Relation may express a relationship between a class and an instance. As in "People are Animals", the "Person" class and the "Animal" class can be expressed as ""Person" isA "Animal" through a relation such as'isA'. Can.
액션 온톨로지(Action Ontology, 510)란 일상생활에서 쓰이는 동사가 정의되어있는 데이터 집합이다. 액션 온톨로지(510)는 데이터간에 연결성을 가지고, 이러한 연결성을 통해 각 동사들에 대한 유사어, 반대어, 성격을 판단할 수 있으며, 동사를 통한 의도 분석을 수행할 수 있도록 하는 유기적인 데이터 집합이다.Action Ontology (510) is a data set that defines verbs used in everyday life. The
팩트 온톨로지(Fact Ontology, 520)란 일상생활에서 쓰이는 명사 및 엔티티(Entity)들이 정의되어있는 데이터 집합이다. 액션 온톨로지(510)와 마찬가지로, 팩트 온톨로지(520)를 구성하는 데이터 집합에 저장된 명사 및 엔티티(Entity)들은 서로간에 연결성을 가지는데, 이러한 연결성을 활용하여 유사어 및 반대어 그리고 해당 엔티티(Entity)가 가지고 있는 모든 속성 정보들을 활용할 수 있다.Fact Ontology (520) is a data set in which nouns and entities used in daily life are defined. Similar to the
발언 벡터 생성부(320)의 동작은 도 2a 및 도 2b에서 설명할 모델 벡터 생성부(654)와 거의 유사한 바, 자세한 설명은 생략하도록 한다. 모델 벡터 생성부(654)가 시맨틱 프레임(SF)으로 변환된 대화 도메인(610, 620, 630) 각각이 가지는 도메인 대화(DH)를 벡터화하고, 발언 벡터 생성부(320)는 시맨틱 프레임(SF)으로 변환된 사용자 발언을 벡터화할 수 있다. 일부 실시 예에서, 발언 벡터 생성부(320) 및 모델 벡터 생성부(654) 중 어느 하나는 생략될 수 있다. 예를 들면, 사용자 발언 전처리부(300)는 발언 벡터 생성부(320)를 별도로 포함하지 않고, 모델 벡터 생성부(654)를 호출하여, 시맨틱 프레임(SF)으로 변환된 사용자 발언을 벡터화할 수 있다. 또는 예를 들면, 클러스터 모델 생성부(650)는 모델 벡터 생성부(654)를 별도로 포함하지 않고, 발언 벡터 생성부(320)를 호출하여 시맨틱 프레임(SF)으로 변환된 도메인 대화(DH)를 벡터화할 수 있다. The operation of the speech
유사하게, 일부 실시 예에서, 사용자 발언 시맨틱 프레임 변화부(310) 및 모델 시맨틱 프레임 변환부(도 2a의 652) 중 어느 하나는 생략될 수 있다. 예를 들면, 사용자 발언 전처리부(300)는 사용자 발언 시맨틱 프레임 변화부(310)를 별도로 포함하지 않고, 모델 시맨틱 프레임 변환부(652)를 호출하여, 사용자 발언을 시맨틱 프레임(SF)으로 변환할 수 있다. 또는 예를 들면, 클러스터 모델 생성부(650)는 모델 시맨틱 프레임 변환부(652)를 별도로 포함하지 않고, 사용자 발언 시맨틱 프레임 변화부(310)를 호출하여 도메인 대화(DH)를 시맨틱 프레임(SF)으로 변환할 수 있다. Similarly, in some embodiments, any one of the user-speaking semantic
자연어 분석부(400)는 엔티티(Entity) 검출부(410), 의도(Intent) 검출부(420), 및 대용어(Anaphora) 분해부(430)를 포함할 수 있다. The natural
엔티티 검출부(410)는 사용자 발언에 대한 자연어 처리 결과로부터 엔티티들을 검출할 수 있다. 엔티티란, 대화 과정에서 사용되는 어휘 키워드들을 설정하기 위해 존재한다. 엔티티는 Thing, Location, Time, People과 같은 4가지 유형(type)으로 대용어를 위하여 대화 도메인에 설정될 수 있다. Thing은 사물, Location은 위치 및 장소, Time은 시간 및 날짜, People은 사람과 관련된 엔티티로 대용어를 위하여 대화 도메인에 정의될 수 있다.The
의도 검출부(420)는 사용자 발언에 대한 자연어 처리 결과로부터 의도를 검출할 수 있다. 의도란 발언의 의도로 사용되며, 하나의 의도에는 다수의 의역된(paraphrasing) 문장들을 설정할 수 있다. 의도 검출(Intent Classification 또는 Intent Detect)이란 특정 문장에 대한 의미를 결정하기 위해 대화 과정에서 설정된 의도 중 유사도가 높은 문장을 찾는 과정을 말한다.The
대용어 분해부(430)는 사용자 발언에 대한 자연어 처리 결과로부터 대용어(Anaphora)를 검출하여, 대용어가 지칭하는 엔티티를 탐색할 수 있다. 대용어란 앞에서 언급한 명사 또는 명사구를 지칭하는 대명사일 수 있다. The
대화 도메인 관리부(600)는 복수의 대화 도메인(610, 620, 630), 및 대화 도메인(610, 620, 630) 각각에 대하여 생성된 복수의 싱글 클러스터 모델(SCM1, SCM2, SCM3)을 포함할 수 있다. 클러스터 모델 생성부(650)는 대화 도메인(610, 620, 630) 각각에 대하여 싱글 클러스터 모델(SCM1, SCM2, SCM3)을 생성하고, 복수의 싱글 클러스터 모델(SCM1, SCM2, SCM3) 중 적어도 2개를 참조하여, 다중 클러스터 모델(Complex Cluster Model, 도 5b의 CCM)을 구성할 수도 있다. The
대용어 분해부(430)는 사용자 발언에서 대용어가 나타날 경우, 대용어에 대한 엔티티를 탐색하기 위하여 시맨틱 프레임 컨텍스트 저장부(750)에 저장된 시맨틱 프레임 컨텍스트(도 3b의 SFC)를 참조할 수 있다. The
시맨틱 프레임 컨텍스트(SFC)란 대화 도메인(610, 620, 630)을 통하여 이루어지는 대화들(사용자 발언 및 시스템의 발언)에 대한 시맨틱 프레임(SF)들과 각 발언별 대용어에 대한 인식 정보(감지된 대용어(도 3b의 DA), 감지된 엔티티(도 3b의 DE), 및 감지된 의도(도 3b의 DI))에 대한 정보를 가질 수 있다. Semantic frame context (SFC) is semantic frame (SF) for conversations (user remarks and system remarks) made through
대용어 분해부(430)는 시맨틱 프레임 컨텍스트(SFC)에서, 대화 도메인(610, 620, 630)이 가지는 엔티티의 유형 정보인 Thing, Location, Time, People를 참조하여 현재 대용어에 유효한 엔티티를 추출할 수 있다. 이렇게 감지된 엔티티(DE)를 대용어와 치환하여, 의도 검출부(420)에서 의도 검출을 수행함으로써 유사도가 더 높은 엔티티를 추출해 낼 수 있다. 대용어 분해부(430)에서 감지된 대용어(DA)에 대한 정보를 토대로 시스템 발언 실행부(700)에서 사용자(10)에게 역질문을 함으로써 대화의 신뢰도를 높일 수 있다.The
시스템 발언 생성부(800)는 시스템 발언 실행부(700)에서 수행하고자 하는 역질문 등과 같은 시스템의 발언을 자연어 생성부(850)를 참조하여 자연어로 생성할 수 있으며, 자연어로 생성된 시스템의 발언은 대화 실행 관리자(200)에 의하여 유저 인터페이스(100)를 통하여 사용자(10)에게 전달될 수 있다. The system
도 2a 내지 도 7에서는 도 1을 함께 참조하여, 복수의 대화 도메인을 가지는 대화 시스템(1)의 세부적인 구성 및 동작에 대해서 설명한다. 2A to 7, detailed configuration and operation of the
도 2a는 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템의 대화 도메인 관리부의 구성을 나타내는 블록도이고, 도 2b는 대화 도메인 관리부의 동작을 설명하기 위한 블록도이다. 도 2a에는 도시의 편의를 위하여 도 1에 도시한 복수의 대화 도메인(610, 620, 630) 중 하나의 대화 도메인(대화 도메인 1, 610, 이하 제1 대화 도메인)만을 나타냈으나, 도 2a 및 도 2b에 대한 설명은 다른 대화 도메인들, 예를 들면 제2 대화 도메인(대화 도메인 2, 620), 및 제3 대화 도메인(대화 도메인 3, 630)에도 동일하게 적용될 수 있다. 2A is a block diagram showing the configuration of a conversation domain management unit of a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention, and FIG. 2B is a block diagram for explaining the operation of the conversation domain management unit. In FIG. 2A, only one conversation domain (
도 2a 및 도 2b를 함께 참조하면, 대화 도메인 관리부(600)는 제1 대화 도메인(610) 및 클러스터 모델 생성부(650)를 포함한다. 제1 대화 도메인(610)은 도메인 대화들(DH)이 저장된 제1 도메인 대화 저장부(도메인 대화 저장부 1, 612)을 포함할 수 있다. 별도로 도시하지는 않았으나, 제2 대화 도메인(620) 및 제3 대화 도메인(630) 각각은 제2 도메인 대화 저장부 및 제3 도메인 대화 저장부를 포함할 수 있다. 2A and 2B, the conversation
클러스터 모델 생성부(650)은 모델 시맨틱 프레임 변환부(652), 모델 벡터 생성부(654), 및 시맨틱 프레임 벡터 생성부(656)을 포함할 수 있다. The cluster
모델 시맨틱 프레임 변환부(652)는 제1 대화 도메인(610)에 대하여, 제1 도메인 대화 저장부(612)에 저장된 도메인 대화들(DH)을 자연어 이해부(500)가 가지는 액션 온톨로지(510)와 팩트 온톨로지(520)를 활용하여 시맨틱 프레임(SF)으로 매핑시킬 수 있다. The model semantic frame conversion unit 652 has an
모델 벡터 생성부(654)는 시맨틱 프레임(SF)에서 구성한 액션 온톨로지(510)와 팩트 온톨로지(520)에 대응되는 키워드를 통하여 액션 벡터(AV)와 팩트 벡터(FV)를 생성할 수 있다. The model
시맨틱 프레임 벡터 생성부(656)는 도메인 대화들(DH) 각각을 구성하는 시맨틱 프레임(SF)에 대하여 액션 벡터(AV)와 팩트 벡터(FV)를 참조한 벡터값인 시맨틱 프레임 벡터를 구할 수 있고, 도메인 대화들(DH) 각각에 대한 시맨틱 프레임 벡터들(도 5b의 SSFV, 시맨틱 프레임 벡터(세트 1)를 조합해서, 제1 대화 도메인(610)이 가지는 제1 도메인 대화 저장부(612)에 저장된 도메인 대화들(DH)에 대한 군집 모델인 제1 클러스터 모델(클러스터 모델 1, SCM1)을 생성할 수 있다. The semantic frame
같은 방법으로, 도 1에 보인 제2 대화 도메인(620)에 대한 제2 클러스터 모델(클러스터 모델 2, SCM2) 및 제3 대화 도메인(630)에 대한 제3 클러스터 모델(클러스터 모델 3, SCM3)을 생성할 수 있다. In the same way, the second cluster model (
하나의 대화 도메인에 대한 클러스터 모델을 싱글 클러스터 모델(single cluster model)이라고 호칭할 수 있다. 예를 들면, 제1 대화 도메인(610)에 대한 싱글 클러스터 모델은 제1 클러스터 모델(SCM1)이고, 제2 대화 도메인(620)에 대한 싱글 클러스터 모델은 제2 클러스터 모델(SCM2)이고, 제3 대화 도메인(630)에 대한 싱글 클러스터 모델은 제3 클러스터 모델(SCM3)일 수 있다. 이와는 반대로 2개 이상의 대화 도메인에 대한 클러스터 모델은 다중 클러스터 모델(도 5b의 CCM)이라 호칭할 수 있다. The cluster model for one conversation domain may be called a single cluster model. For example, the single cluster model for the
도 3a 및 도 3b는 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템에서 사용되는 시맨틱 프레임과 시맨틱 프레임 컨텍스트를 설명하는 개념도들이다. 3A and 3B are conceptual views illustrating a semantic frame and a semantic frame context used in a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention.
도 3a를 참조하면, 사용자 발언이 입력되면, 자연어 이해부(500)를 참조한 사용자 발언 전처리부(300)에서의 사용자 발언에 대한 자연어 처리 과정에서, 사용자 발언 시맨틱 프레임 변화부(310)은 시맨틱 프레임(SF)을 구성할 수 있다. 시맨틱 프레임(SF)의 구성이란, 사용자 발언에 대하여, 액션 온톨로지(510)와 팩트 온톨로지(520)를 활용하여, 각각 엔티티와 동사를 추출하여, 정형화된 프레임에 맵핑시키는 방식을 의미한다. Referring to FIG. 3A, when a user speech is input, in the natural language processing process of the user speech in the user
사용자 발언으로 "나 내일 아침에 강남역에서 약속 있어"가 입력된 경우, "약속 있다"라는 동사가 추출되고, 액션 온톨로지(510)를 통해 '액션(약속)'으로써 {Agent : "나", Location : "강남역", Time : "내일 아침"}의 속성들을 가지게 되고, 각각의 속성들은 팩트 온톨로지(520)를 활용하여 키워드들에 대한 시맨틱 타입, 동의어 등을 속성을 맵핑하여, 시맨틱 프레임(SF)을 구성할 수 있다. When "I have an appointment at Gangnam Station tomorrow morning" is input as a user's remark, the verb "I have an appointment" is extracted, and as an'action (promise)' through the
액션 온톨로지(510)를 통해 "약속 있다"라는 동사, 즉 '액션(약속)'이 가지는 속성들을 벡터화한 것이 액션 벡터(도 2b의 AV)이고, 팩트 온톨로지(520)를 활용하여 키워들에 맵핑된 속성들을 벡터화한 것이 팩트 벡터(FV)이다. The action vector (AV in FIG. 2B) is a vectorization of the attributes of the verb “action” (promise), through the
시맨틱 프레임(SF), 액션 벡터(AV), 및 팩트 벡터(FV)는 사용자 발언 및 도메인 대화(도 2b의 DH)에 대해서 생성될 수 있다. 구체적으로 도 1에 보인 사용자 발언 시맨틱 프레임 변화부(310) 및 발언 벡터 생성부(320)에서 사용자 발언에 대한 시맨틱 프레임(SF), 액션 벡터(AV), 및 팩트 벡터(FV)을 생성할 수 있고, 도 2a에 보인 모델 시맨틱 프레임 변환부(652) 및 모델 벡터 생성부(654)에서 도메인 대화(DH)에 대한 시맨틱 프레임(SF), 액션 벡터(AV), 및 팩트 벡터(FV)을 생성할 수 있다. Semantic frames (SF), action vectors (AV), and fact vectors (FV) may be generated for user speech and domain conversation (DH in FIG. 2B). Specifically, the semantic frame (SF), the action vector (AV), and the fact vector (FV) for the user speech can be generated by the user speech semantic
도 3b를 참조하면, 대화 과정에서 발언들에 대하여 생성된 시맨틱 프레임(SF)들과, 각 발언별 감지된 의도(DI)들, 감지된 엔티티(DE)들, 및 감지된 대용어(DA)에 대한 정보를 시맨틱 프레임 컨텍스트(SFC)로 구성할 수 있다. Referring to FIG. 3B, semantic frames (SF) generated for speeches in a conversation process, sensed intentions (DI) for each speech, sensed entities (DEs), and sensed substitutes (DA) Information about can be configured as a semantic frame context (SFC).
즉 하나의 시맨틱 프레임(SF)은 사용자(10) 또는 시스템의 하나의 발언에 대하여 구성되며, 시맨틱 프레임 컨텍스트(SFC)는 하나의 선택된 대화 도메인을 통하여 진행되는 하나의 대화 과정에 대하여 구성될 수 있다. That is, one semantic frame (SF) is configured for one speech of the
도 4는 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템의 자연어 분석부의 동작을 설명하기 위한 블록도이다. Fig. 4 is a block diagram illustrating an operation of a natural language analysis unit of a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention.
도 4를 참조하면, 자연어 분석부(400)는 엔티티 검출부(410), 의도 검출부(420), 및 대용어 분해부(430)를 포함한다. 사용자 발언에서 대용어가 발견되지 않은 경우, 엔티티 검출부(410)에서 감지된 엔티티와 의도 검출부(420)에서 감지된 의도는 시스템 발언 실행부(700)의 표준 실행부(710)에 전달되며, 시스템 발언 실행부(700)에서 생성하고자 하는 시스템의 발언은 도 1에 보인 시스템 발언 생성부(800)에서 자연어 생성부(850)를 참조하여 자연어로 생성할 수 있으며, 자연어로 생성된 시스템의 발언은 대화 실행 관리자(200)에 의하여 유저 인터페이스(100)를 통하여 사용자(10)에게 전달될 수 있다. Referring to FIG. 4, the natural
대용어 분해부(430)는 후보 선정부(432), 후보 치환부(434), 유사도 계산부(436), 및 클러스터 모델 선택부(438)를 포함할 수 있다. The
사용자 발언에서 대용어가 발견된 경우, 후보 선정부(432)는 시맨틱 프레임 컨텍스트 저장부(750)에 저장된 시맨틱 프레임 컨텍스트(도 3b의 SFC)를 통해 해당 대용어에 대한 후보가 될 수 있는 엔티티들인 후보 대용어들의 목록을 선정할 수 있다. When a substitute word is found in the user's remark, the
후보 치환부(434)는 선정된 후보 대용어들인 엔티티들 각각을 치환하고, 유사도 계산부(436)는 후보 대용어들 각각으로 치환된 사용자 발언과 선택된 대화 도메인, 예를 들면 제1 대화 도메인(610)에 대한 제1 클러스터 모델(SCM1) 사이의 유사도 계산을 할 수 있다. 유사도 계산부(436)는 발언 벡터 생성부(320)에서 벡터화된 사용자 발언과 제1 클러스터 모델(SCM1) 사이의 거리를 계산하여, 사용자 발언과 선택된 대화 도메인, 예를 들면 제1 대화 도메인(610)과의 유사도를 계산할 수 있으며, 의도 검출부(410)에서 감지된 의도를 참조할 수 있다. 또한 유사도 계산부(436)는 선택되지 않은 대화 도메인, 예를 들면 제2 대화 도메인(620)에 대한 제2 클러스터 모델(SCM2)과 후보 대용어들 각각으로 치환된 사용자 발언 사이의 유사도, 및/또는 제3 대화 도메인(630)에 대한 제3 클러스터 모델(SCM3)과 후보 대용어들 각각으로 치환된 사용자 발언 사이의 유사도를 계산할 수 있다. The
클러스터 모델 선택부(438)는 유사도 계산부(436)에서 수행된 유사도 계산 결과를 토대로 클러스터 모델을 선택하여, 시스템 발언 실행부(700)의 대용어 실행부(720)에 전달할 수 있으며, 대용어 실행부에서 생성하고자 하는 시스템의 발언은 도 1에 보인 시스템 발언 생성부(800)에서 자연어 생성부(850)를 참조하여 자연어로 생성할 수 있으며, 자연어로 생성된 시스템의 발언은 대화 실행 관리자(200)에 의하여 유저 인터페이스(100)를 통하여 사용자(10)에게 전달될 수 있다. The cluster
도 5a는 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템에서 다중 클러스터 모델을 생성하는 과정을 설명하기 위한 블록도이고, 도 5b는 다중 클러스터 모델의 개념을 설명하기 위한 개념도이다. 5A is a block diagram illustrating a process of generating a multi-cluster model in a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention, and FIG. 5B is a conceptual diagram for explaining the concept of a multi-cluster model .
도 5a를 참조하면, 사용자 발언(UU)이 입력되면, 사용자 발언(UU)에 대한 자연어 처리 결과로부터 하나의 대화 도메인을 선택한다(S100). 예를 들면, 사용자 발언(UU)에 대한 자연어 처리 결과로부터 제1 대화 도메인(610)이 선택될 수 있다. 제1 대화 도메인(610)이 선택되는 경우, 대화 과정에서 제1 대화 도메인(610)의 제1 클러스터 모델(SCM1)이 사용될 수 있다. Referring to FIG. 5A, when a user speech (UU) is input, one conversation domain is selected from the natural language processing result for the user speech (UU) (S100). For example, the
사용자 발언(UU)에서 대용어가 검출된 경우, 시맨틱 프레임 컨텍스트(도 3b의 SFC)가 가지는 시맨틱 프레임(SF)들로부터 해당 대용어에 대한 후보가 될 수 있는 엔티티들인 후보 대용어들의 목록을 선정하고, 선정된 후보 대용어들을 치환한다(S200). When a substitute word is detected in the user's speech (UU), a list of candidate substitute words that are candidate entities for the substitute word is selected from the semantic frame (SF) of the semantic frame context (SFC of FIG. 3B ). And replaces the selected candidate substitutes (S200).
후보 대용어들로 감지된 대용어가 각각 치환된 사용자 발언(UU)들 각각과 선택된 대화 도메인의 유사도를 계산한다(S300). 예를 들면, 후보 대용어들로 감지된 대용어가 각각 치환된 벡터화된 사용자 발언(UU) 각각과 제1 대화 도메인(610)의 제1 클러스터 모델(SCM1) 사이의 거리를 측정하여 유사도를 계산할 수 있다. 계산된 유사도가 기설정된 값 이상인 경우, 선택된 대화 도메인, 예를 들면 제1 대화 도메인(610)을 참조하여 시스템 발언을 실행 및 생성할 수 있다(S600).The similarity between each of the user speeches (UUs) substituted with the substitutes sensed as candidate substitutes and the selected conversation domain is calculated (S300). For example, the similarity may be calculated by measuring the distance between each of the vectorized user speeches (UUs) in which the substitutes detected as candidate substitutes are replaced, and the first cluster model (SCM1) of the
계산된 유사도가 기설정된 값 미만인 경우, 후보 대용어들로 감지된 대용어가 각각 치환된 벡터화된 사용자 발언(UU)들 각각과 선택되지 않은 대화 도메인 각각과의 유사도를 계산한다(S400). 예를 들면, 후보 대용어들로 감지된 대용어가 각각 치환된 벡터화된 사용자 발언(UU)들 각각과 제2 대화 도메인(620)의 제2 클러스터 모델(SCM2) 사이의 유사도, 후보 대용어들로 감지된 대용어가 각각 치환된 벡터화된 사용자 발언(UU)들 각각과 제3 대화 도메인(630)의 제3 클러스터 모델(SCM3) 사이의 유사도를 계산한다. When the calculated similarity is less than a predetermined value, the similarity between each of the vectorized user speech (UUs), each of which is substituted with the substitutes sensed as candidate substitutes, and each of the unselected conversation domains is calculated (S400). For example, the similarity between each of the vectorized user speeches (UUs) in which the substitutes detected as candidate substitutes are replaced with the second cluster model (SCM2) of the
선택되지 않은 대화 도메인 중 계산된 유사도가 기설정된 값 이상인 것을 선택하여, 선택된 대화 도메인과 함께 다중 클러스터 모델을 생성한다(S500). 예를 들어, 후보 대용어들로 감지된 대용어가 각각 치환된 사용자 발언(UU)들 각각과 제2 대화 도메인(620)의 제2 클러스터 모델(SCM2) 사이의 유사도가 기설정된 값 이상인 경우, 선택된 대화 도메인인 제1 대화 도메인(610)의 제1 클러스터 모델(SCM1)과 제2 대화 도메인(620)의 제2 클러스터 모델(SCM2)을 결합하여, 다중 클러스터 모델(도 5b의 CCM)을 생성할 수 있다. Among the unselected conversation domains, the calculated similarity is selected to be greater than or equal to a preset value, and a multiple cluster model is generated together with the selected conversation domain (S500). For example, when the similarity between each of the user utterances (UUs), each of which is detected as candidate substitutes, and the second cluster model (SCM2) of the
이후, 다중 클러스터 모델(CCM)을 이용하여 시스템 발언을 실행하고 생성할 수 있다(S600). 또한, 다중 클러스터 모델(CCM)이 생성되면, 선택된 제1 대화 도메인(610)의 제1 클러스터 모델(SCM1) 대신에 생성된 다중 클러스터 모델(CCM)을 사용하여 대화 과정이 진행될 수 있다. 예를 들면, 사용자 발언 전처리부(도 1의 300)는 제1 대화 도메인(610)의 제1 클러스터 모델(SCM1) 대신에 생성된 다중 클러스터 모델(CCM)이 대화 과정에 사용되도록 선택할 수 있다. 즉, 사용자 발언 전처리부(300)은, 선택된 대화 도메인을 제1 대화 도메인(610)에서 제1 대화 도메인(610) 및 제2 대화 도메인(620)으로 변경할 수 있다. Thereafter, a system remark may be executed and generated using a multi-cluster model (CCM) (S600). In addition, when a multi-cluster model (CCM) is generated, a conversation process may be performed using the multi-cluster model (CCM) generated instead of the first cluster model (SCM1) of the selected
도 5b를 참조하면, 복수의 대화 도메인(610, 620, 630) 각각은 도메인 대화들(DH1, DH2, DH3)를 가지며, 자연어 이해부(500)가 가지는 액션 온톨로지(510) 및 팩트 온톨로지(520)를 활용하여 도메인 대화들(DH1, DH2, DH3)을 시맨틱 프레임(도 3a의 SF)으로 변환한다. 복수의 대화 도메인(610, 620, 630) 각각이 가지는 도메인 대화들(DH1, DH2, DH3)이 변환된 시맨틱 프레임(SF)들은 각각 세트(SSF1, SSF2, SSF3)을 구성할 수 있다. 즉, 제1 대화 도메인(610)이 가지는 도메인 대화들(DH1) 각각을 변환한 시맨틱 프레임(SF)들은 제1 시맨틱 프레임 세트(SSF1)을 구성하고, 제2 대화 도메인(620)이 가지는 도메인 대화들(DH2) 각각을 변환한 시맨틱 프레임(SF)들은 제2 시맨틱 프레임 세트(SSF2)을 구성하고, 제3 대화 도메인(620)이 가지는 도메인 대화들(DH2) 각각을 변환한 시맨틱 프레임(SF)들은 제3 시맨틱 프레임 세트(SSF3)을 구성할 수 있다. 제1 내지 제3 시맨틱 프레임 세트(SSF1, SSF2, SSF3)들은 액션 벡터(AV)와 팩트 벡터(FV)를 참조하여 각각 제1 내지 제3 시맨틱 프레임 벡터 세트(SSFV1, SSFV2, SSFV3)을 구성할 수 있다. 제1 대화 도메인(610)으로부터 구성된 제1 시맨틱 프레임 벡터 세트(SSFV1)은 군집 모델인 제1 클러스터 모델(SCM1)으로 생성될 수 있고, 제2 대화 도메인(620)으로부터 구성된 제2 시맨틱 프레임 벡터 세트(SSFV2)은 군집 모델인 제2 클러스터 모델(SCM2)으로 생성될 수 있고, 제3 대화 도메인(630)으로부터 구성된 제3 시맨틱 프레임 벡터 세트(SSFV3)은 군집 모델인 제3 클러스터 모델(SCM3)으로 생성될 수 있다. 제1 내지 제3 클러스터 모델(SCM1, SCM2, SCM3) 각각은 하나의 대화 도메인, 즉 제1 내지 제3 대화 도메인(610, 620, 630) 각각의 싱글 클러스터 모델이다. 5B, each of the plurality of
서로 다른 대화 도메인에 대한 싱글 클러스터 모델들을 결합하면 다중 클러스터 모델(CCM)이 생성될 수 있다. 예를 들면, 제1 클러스터 모델(SCM1)과 제2 클러스터 모델(SCM2)을 결합하여 다중 클러스터 모델(CCM)이 생성될 수 있으며, 시스템 발언을 실행 및 생성하는 과정에서, 선택된 대화 도메인의 싱글 클러스터 모델 대신에 다중 클러스터 모델(CCM)이 사용될 수 있다. By combining single cluster models for different conversation domains, multiple cluster models (CCM) can be generated. For example, a multi-cluster model (CCM) may be generated by combining the first cluster model (SCM1) and the second cluster model (SCM2), and in the process of executing and generating system speech, a single cluster of a selected conversation domain. Instead of a model, multiple cluster models (CCM) can be used.
도 6은 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템의 시스템 발언 실행부의 동작을 설명하는 블록이다.Fig. 6 is a block diagram illustrating an operation of a system speaking execution unit of a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention.
도 6을 참조하면, 시스템 발언 실행부(700)는 표준 실행부(710)와 대용어 실행부(720)를 포함한다. Referring to FIG. 6, the system
표준 실행부(710)는 대용어가 검출되지 않은 경우에, 사용자 발언에 엔티티와 의도가 있는 경우에, 시스템의 발언을 생성하도록 한다. The
대용어 실행부(720)는 대용어가 검출된 경우에, 사용자 발언에 대하여 시스템의 발언을 생성하도록 한다. The
시스템의 발언은 예를 들면, 텍스트, 스마트 카드, 또는 액션 스크립트로 생성될 수 있다. The system's remarks can be generated, for example, by text, smart card, or action script.
시스템 발언 실행부(700)는 대화 과정에서 사용자 발언 각각에 대하여 대용어의 유무에 따라서 대용어 실행부(720) 또는 표준 실행부(710)에서 시스템의 발언을 생성하도록 한다. The system
도 7은 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템에서 이루어지는 예시적인 대화 진행을 나타낸다. 7 illustrates exemplary conversation progress in a conversation system having a plurality of conversation domains according to an exemplary embodiment of the present invention.
도 7을 참조하면, 시스템의 발언과 사용자 발언으로 이루어지는 대화의 단위를 턴(Turn)으로 설정하여, 도 1 내지 도 6을 통하여 설명한 내용을 참조하며 대화 과정을 반복적으로 진행할 수 있다. 도 7에서는 시스템 발언이 먼저 이루어지고, 그에 대한 사용자 발언을 하나의 턴으로 예시하였으나, 이에 한정되지 않고, 사용자 발언 및 그에 대한 시스템 발언을 하나의 턴으로 설정할 수도 있다. Referring to FIG. 7, a unit of dialogue consisting of system remarks and user remarks is set to turn, and the conversation process may be repeatedly performed while referring to the contents described with reference to FIGS. 1 to 6. In FIG. 7, the system speech is made first, and the user's speech on the system speech is illustrated as one turn, but the present invention is not limited thereto, and the user's speech and the system speech on the speech may be set as one turn.
예를 들면, 대화 과정이 시작되면 턴 0(Turn 0)에서 'Greeting'이라는 감지된 의도를 가지는 '안녕하세요'라는 텍스트인 시스템 발언에 대하여, '불고기 피자 L 사이즈 할인 이벤트 하고 있어?'라는 사용자 발언이 입력되면, '하다'라는 액션(Action)을 기준으로 감지된 엔티티(불고기 피자(Thing), 할인 이벤트(Thing)) 및 감지된 의도(Event Promotions)를 맵핑하여 시맨틱 프레임을 생성할 수 있다. For example, when the conversation process starts, a user remarks,'Are you doing a barbecue pizza L size discount event?' for a system remark that is a text'Hello' with a sensed intention of'Greeting' at
턴 1(Turn 1)에서 턴 0(Turn 0)에서 맵핑된 사용자 발언에 대한 시맨틱 프레임을 참조하여 텍스트인 '네 할인 이벤트 진행하고 있습니다.'라는 시스템 발언이 출력될 수 있다. '그거 얼마야?'라는 사용자 발언이 입력되면, '얼마'라는 액션(Action)을 기준으로 감지된 엔티티(그거(Thing)가 대용어인 경우 후보 대용어들로 '불고기 피자', '할인 이벤트'가 선정되고, 이를 치환한 '불고기 피자 얼마야?'와 '할인 이벤트 얼마야?'에 대하여 유사도를 분석하여, 유사도가 더 높은 엔티티를 추출할 수 있다. A system remark that is text'Yes discount event is in progress' may be output by referring to the semantic frame for the user remark mapped in
턴 2(Turn 2)에서 시스템 발언은 예를 들면, 시스템의 발언은 예를 들면, 텍스트, 스마트 카드, 또는 액션 스크립트로 생성될 수 있다. 턴 2(Turn 2)에서는 유사도가 높은 엔티티 2가지가 추출된 경우에, 사용자에게 텍스트로 되묻거나, 스마트 카드를 제공하는 경우가 예시되어 있다. 텍스트란 사용자에게 "말씀하신 것이 무엇인가요?"와 같은 시스템 발언을 출력하는 것을 의미하고, 스마트 카드란 사용자에게 옵션을 선택할 수 있도록 시스템 발언을 출력하는 것을 의미한다. 액션 스크립트는 시스템 발언을 출력하기 위한 정보를 외부 API를 통해 가져와야 하는 경우에 사용될 수 있다. 이에 대하여 '불고기 피자 말하는 거야'라는 사용자 발언이 입력되는 경우, 앞선 시스템 발언 및 사용자 발언에 대한 시맨틱 프레임들을 가지고 구성된 시맨틱 프레임 컨텍스트를 참조하여, '얼마'라는 액션(Action)을 기준으로 감지된 엔티티(불고기 피자(Thing)), 및 감지된 의도(Buy Pizza)를 맵핑하여 시맨틱 프레임을 생성할 수 있다. In
턴 3(Turn 3)에서 불고기 피자(Thing)에 대한 가격 및 할인 정보를 외부 API를 통해 가져오는 액션 스크립트(Action Script)를 생성해서 턴 2에서 사용자 발언으로부터 생성된 시맨틱 프레임에 대응하는 '현재 50% 할인되어 15,000원입니다.'라는 시스템 발언을 출력할 수 있다. 이에 대해 사용자 발언으로 '그걸로 줘'가 입력되는 경우, '주다'라는 액션(Action)을 기준으로 감지된 엔티티(그걸(Thing))가 대용어인 경우 후보 대용어들로 '불고기 피자', '할인 이벤트', '할인', '15,000원'이 선정되고, 이를 치환한 후 유사도를 분석한다.In
턴 3(Turn 3)에서 수행한 유사도 분석 결과, 유사도가 높은 엔티티로 '불고기 피자' 1개만 추출된 경우, '주문되다'라는 액션(Action)에 '불고기 피자'라는 엔티티가 결합되어, 불고기 피자에 대한 주문 및 '불고기 피자로 주문 되었습니다.'라는 시스템 발언이 출력될 수 있다. As a result of the similarity analysis performed in
도 1 내지 도 7을 함께 참조하면, 제1 대화 도메인(610)이 피자 주문에 대한 대화 모델이 정의된 도메인이고, 제2 대화 도메인(620)이 치킨 주문에 대한 대화 모델이 정의된 도메인이고, 제3 대화 도메인(630)이 의류 주문에 대한 대화 모델이 정의된 도메인인 경우, 도 7은 제1 대화 도메인(610)이 선택되어 대화 과정이 수행된 것을 예시하고 있다. Referring to FIGS. 1 to 7 together, the
예를 들면, 1 대화 도메인(610)은 할인 이벤트에 대한 정보가 포함된 대화 모델이고, 제2 대화 도메인(620)과 제3 대화 도메인(630)은 할인 이벤트에 대한 정보가 포함되지 않은 대화 모델일 수 있다. For example, 1
만일, 치킨 주문에 대한 사용자 발언(UU)이 입력되어 제2 대화 도메인(620)이 선택된 경우, 대화 과정에서 할인 이벤트에 대한 사용자 발언(UU)이 입력되는 경우, 사용자 발언(UU)과 제2 대화 도메인(620)의 유사도 분석을 하는 경우 시맨틱 프레임(SF)으로 변환된 사용자 발언(UU)을 벡터화한 결과와 제2 클러스터 모델 2(SCM2)과 사이에서 계산된 유사도는 기설정된 값 미만일 수 있다. 이 경우, 사용자 발언(UU)과 선택되지 않은 제1 대화 도메인(610) 및 제3 대화 도메인(630) 각각의 유사도 분석을 하여, 할인 이벤트에 대한 정보가 포함된 제1 대화 도메인(610)과 사용자 발언(UU) 사이의 유사도가 기설정된 값 이상인 경우, 제1 대화 도메인(610)의 제1 클러스터 모델(SCM1)과 제2 대화 도메인(620)의 제2 클러스터 모델(SCM2)을 결합하여, 치킨 주문 및 할인 이벤트에 대한 정보를 모두 가지는 다중 클러스터 모델(CCM)을 생성한 후, 다중 클러스터 모델(CCM)을 참조하여 시스템 발언을 실행 및 생성할 수 있다. If the user's remark (UU) for the chicken order is input and the
따라서, 본 발명에 따른 복수의 대화 도메인을 가지는 대화 시스템(1)은 사용자 발언에 대용어가 포함된 경우에도 대용어의 의미 및 사용자의 의도를 파악할 수 있으며, 모든 대화 과정에 대응한 대화 도메인을 가지지 못하는 경우에도, 서로 다른 2개 이상의 대화 도메인을 결합한 다중 클러스터 모델을 생성하여, 새로운 형태의 대화 과정에 바로 대응할 수 있다. Accordingly, the
이상, 본 발명을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명은 상기 실시예에 한정되지 않고, 본 발명의 기술적 사상 및 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다. As described above, the present invention has been described in detail with reference to preferred embodiments, but the present invention is not limited to the above embodiments, and various modifications and changes by those skilled in the art within the technical spirit and scope of the present invention. This is possible.
1 : 복수의 대화 도메인을 가지는 대화 시스템, 10 : 사용자, 50 : 네트워크, 100 : 유저 인터페이스, 200 : 대화 실행 관리자, 300 : 사용자 발언 전처리부, 310 : 사용자 발언 시맨틱 프레임 변환부, 320 : 발언 벡터 생성부, 400 : 자연어 분석부, 410 : 엔티티 검출부, 420 : 의도 검출부, 430 : 대용어 분해부, 500 : 자연어 이해부, 510 : 액션 온톨로지, 520 : 팩트 온톨로지, 550 : 시맨틱 프레임 저장부, 600 : 대화 도메인 관리부, 610, 620, 630 : 대화 도메인, 650 : 클러스터 모델 생성부, 700 : 시스템 발언 실행부, 750 : 시맨틱 프레임 컨텍스트 저장부, 800 : 시스템 발언 생성부, 850 : 자연어 생성부, SCM1, SCM2, SCM3 : 클러스터 모델, CCM : 다중 클러스터 모델, DH : 도메인 대화, SF : 시맨틱 프레임, AV : 액션 벡터, FV : 팩트 벡터, SFC : 시맨틱 프레임 컨텍스트DESCRIPTION OF SYMBOLS 1: Conversation system having multiple conversation domains, 10: user, 50: network, 100: user interface, 200: conversation execution manager, 300: user speech preprocessing unit, 310: user speech semantic frame conversion unit, 320: speech vector Generation unit, 400: natural language analysis unit, 410: entity detection unit, 420: intention detection unit, 430: a large-word decomposition unit, 500: natural language understanding unit, 510: action ontology, 520: fact ontology, 550: semantic frame storage unit, 600 : Conversation domain management unit, 610, 620, 630: conversation domain, 650: cluster model generation unit, 700: system speech execution unit, 750: semantic frame context storage unit, 800: system speech generation unit, 850: natural language generation unit, SCM1 , SCM2, SCM3: Cluster model, CCM: Multiple cluster model, DH: Domain conversation, SF: Semantic frame, AV: Action vector, FV: Fact vector, SFC: Semantic frame context
Claims (9)
복수의 대화 도메인을 가지는 대화 도메인 관리부;
액션 온톨로지와 팩트 온톨로지를 가지는 자연어 이해부를 참조하여 상기 사용자 발언에 대한 자연어 처리를 하여, 상기 사용자 발언을 시맨틱 프레임으로 구성 및 벡터화하고, 상기 사용자 발언에 대한 자연어 처리 결과를 이용하여 상기 복수의 대화 도메인 중 하나를 선택하는 사용자 발언 전처리부;
구성된 상기 사용자 발언에 대한 시맨틱 프레임으로부터 엔티티, 의도, 및 대용어를 감지하고, 감지된 대용어가 지칭하는 엔티티를 탐색하여 감지하는 자연어 분석부; 및
상기 사용자 발언이 가지는 대용어를 지칭하는 엔티티를 토대로 상기 시스템 발언을 생성하도록 실행하는 시스템 발언 실행부;를 포함하는 대화 시스템.A user interface that receives a user's speech from the user via a network and sends a system speech to the user;
A conversation domain management unit having a plurality of conversation domains;
With reference to a natural language understanding unit having an action ontology and a fact ontology, the natural language processing of the user speech is performed, the user speech is composed and vectorized into a semantic frame, and the plurality of conversation domains are obtained using the natural language processing result for the user speech User speech pre-processing unit for selecting one of the;
A natural language analysis unit that detects entities, intentions, and substitutes from the constructed semantic frame for the user's speech, and searches for and detects the entities indicated by the detected substitutes; And
And a system speech execution unit executing to generate the system speech based on an entity indicating a substitute word of the user speech.
상기 대화 도메인 관리부는, 상기 복수의 대화 도메인 각각이 가지는 도메인 대화들을 시맨틱 프레임으로 구성 및 벡터화하여 상기 복수의 대화 도메인 각각에 대한 싱글 클러스터 모델을 생성하는 클러스터 모델 생성부를 더 포함하는 것을 특징으로 하는 대화 시스템.According to claim 1,
The conversation domain manager further comprises a cluster model generation unit configured to construct and vectorize domain conversations of each of the plurality of conversation domains into a semantic frame to generate a single cluster model for each of the plurality of conversation domains. system.
상기 자연어 분석부는, 구성된 상기 사용자 발언에 대한 시맨틱 프레임으로부터 엔티티, 의도, 및 대용어를 각각 감지하는 엔티티 검출부, 의도 검출부, 및 대용어 분해부를 포함하며,
상기 대용어 분해부는,
상기 엔티티 검출부에서 감지된 엔티티로부터 상기 감지된 대용어의 후보인 후보 대용어들을 선정하는 후보 선정부,
상기 감지된 대용어를 상기 후보 대용어들로 각각 치환하는 후보 치환부; 및
상기 감지된 의도를 참조하여, 상기 감지된 대용어가 상기 후보 대용어들로 각각 치환된 상기 사용자 발언과 상기 선택된 대화 도메인의 유사도를 계산하는 유사도 계산부;를 포함하는 것을 특징으로 하는 대화 시스템.According to claim 2,
The natural language analysis unit includes an entity detection unit, an intention detection unit, and a surrogate decomposition unit that detect entities, intentions, and surrogates, respectively, from the semantic frame for the configured user speech,
The large term decomposition unit,
A candidate selection unit for selecting candidate substitutes that are candidates for the detected substitutes from the entity detected by the entity detection unit,
A candidate replacement unit for substituting the detected substitutes with the candidate substitutes, respectively; And
And a similarity calculating unit for calculating the similarity between the user's speech and the selected conversational domain in which the sensed substitute is replaced with the candidate substitutes, referring to the sensed intention.
상기 유사도 계산부는, 벡터화된 상기 사용자 발언과 상기 선택된 대화 도메인에 대한 싱글 클러스터 모델 사이의 거리를 계산하는 것을 특징으로 하는 대화 시스템.According to claim 3,
And the similarity calculating unit calculates a distance between the vectorized user speech and a single cluster model for the selected conversation domain.
상기 사용자 발언에 대하여 구성된 시맨틱 프레임, 감지된 엔티티, 감지된 의도, 및 감지된 대용어를 가지는 시맨틱 프레임 컨텍스트을 저장하는 시맨틱 프레임 컨텍스트 저장부;를 더 포함하며,
상기 후보 선정부는, 상기 시맨틱 프레임 컨텍스트 저장부에 저장된 상기 시맨틱 프레임 컨텍스트가 가지는 감지된 엔티티로부터 상기 후보 대용어들을 선정하는 것을 특징으로 하는 대화 시스템.According to claim 3,
Further comprising; a semantic frame context storage unit for storing a semantic frame context having a semantic frame, a sensed entity, a sensed intention, and a sensed synonym configured for the user speech,
The candidate selection unit, the dialogue system, characterized in that for selecting the candidate substitutes from the sensed entity of the semantic frame context stored in the semantic frame context storage unit.
상기 대용어 분해부는, 클러스터 모델 선택부를 더 포함하며,
상기 클러스터 모델 선택부는,
상기 후보 대용어들로 각각 치환된 상기 사용자 발언과 상기 선택된 대화 도메인의 유사도가 기설정된 값 이상인 경우 선택된 대화 도메인을 선택하고, 상기 기설정된 값 미만인 경우, 상기 후보 대용어들로 각각 치환된 상기 사용자 발언과 상기 복수의 대화 도메인 중 선택되지 않은 대화 도메인의 유사도를 계산하여, 상기 기설정된 값 이상인 선택되지 않은 대화 도메인에 대한 싱글 클러스터 모델과 상기 선택된 대화 도메인에 대한 싱글 클러스터 모델을 결합하여 다중 클러스터 모델을 생성하는 것을 특징으로 하는 대화 시스템.According to claim 2,
The term decomposition unit further includes a cluster model selection unit,
The cluster model selection unit,
If the similarity between the user remarks and the selected conversation domains respectively substituted by the candidate substitutes is greater than or equal to a preset value, the selected conversation domain is selected, and if less than the preset value, the users substituted by the candidate substitutes respectively Multi-cluster model by combining the single cluster model for the unselected chat domain and the single cluster model for the selected chat domain by calculating the similarity between the speech and the unselected chat domain among the plurality of chat domains. Characterized in that the dialogue system.
상기 사용자 발언 전처리부는, 상기 클러스터 모델 선택부에서 상기 다중 클러스터 모델을 생성하면, 상기 선택된 대화 도메인의 싱글 클러스터 모델 대신에 상기 생성된 다중 클러스터 모델이 선택되도록 하는 것을 특징으로 하는 대화 시스템.The method of claim 6,
When the multi-cluster model is generated by the cluster model selection unit, the user remark pre-processing unit causes the generated multi-cluster model to be selected instead of the single cluster model of the selected chat domain.
상기 클러스터 모델 생성부는,
상기 액션 온톨로지와 상기 팩트 온톨로지를 참조하여 상기 복수의 대화 도메인 각각이 가지는 도메인 대화들 각각을 시맨틱 프레임으로 구성하는 모델 시맨틱 프레임 변환부;
구성된 상기 도메인 대화들 각각에 대한 시맨틱 프레임에서 상기 액션 온톨로지와 상기 팩트 온톨로지에 대응되는 키워드를 통하여 액션 벡터 및 팩트 벡터를 생성하는 모델 벡터 생성부; 및
구성된 상기 도메인 대화들 각각에 대한 시맨틱 프레임에서 생성된 상기 액션 벡터 및 상기 팩트 벡터를 참조하여 시맨틱 프레임 벡터를 구하고, 상기 도메인 대화들 각각에 대한 상기 시맨틱 프레임 벡터를 조합해서 상기 복수의 대화 도메인 각각에 대한 싱글 클러스터 모델을 생성하는 시맨틱 프레임 벡터 생성부;를 포함하는 것을 특징으로 하는 복수의 대화 도메인을 가지는 대화 시스템According to claim 2,
The cluster model generation unit,
A model semantic frame converter configured to configure each of the domain conversations of each of the plurality of conversation domains as a semantic frame with reference to the action ontology and the fact ontology;
A model vector generator for generating action vectors and fact vectors through keywords corresponding to the action ontology and the fact ontology in the semantic frame for each of the configured domain conversations; And
A semantic frame vector is obtained by referring to the action vector and the fact vector generated in the semantic frame for each of the configured domain conversations, and the semantic frame vector for each of the domain conversations is combined to each of the plurality of conversation domains. Semantic frame vector generation unit for generating a single cluster model for; a conversation system having a plurality of conversation domains comprising a
상기 시스템 발언 실행부는, 표준 실행부 및 대용어 실행부를 포함하며,
상기 표준 실행부는, 상기 사용자 발언에서 감지된 대용어가 없는 경우, 상기 사용자 발언에서 감지된 엔티티 및 감지된 의도를 토대로 상기 시스템 발언을 생성하도록 실행하고,
상기 대용어 실행부는, 상기 사용자 발언에서 감지된 대용어가 있는 경우 상기 시스템 발언을 생성하도록 실행하는 것을 특징으로 하는 대화 시스템.According to claim 1,
The system speech execution unit includes a standard execution unit and a substitute execution unit,
The standard execution unit executes to generate the system speech based on the entity and the sensed intention detected in the user speech when there is no substitute for the user speech,
And the surrogate execution unit executes to generate the system remark if there is a surrogate detected in the user remark.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180170964A KR102198295B1 (en) | 2018-12-27 | 2018-12-27 | Dialogue system having multiple dialogue domains |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180170964A KR102198295B1 (en) | 2018-12-27 | 2018-12-27 | Dialogue system having multiple dialogue domains |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200080951A true KR20200080951A (en) | 2020-07-07 |
KR102198295B1 KR102198295B1 (en) | 2021-01-05 |
Family
ID=71603373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180170964A KR102198295B1 (en) | 2018-12-27 | 2018-12-27 | Dialogue system having multiple dialogue domains |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102198295B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022092721A1 (en) * | 2020-10-30 | 2022-05-05 | 삼성전자 주식회사 | System and method for providing voice assistant service for text including anaphor |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102263656B1 (en) | 2021-02-26 | 2021-06-11 | 주식회사 델타엑스 | Communication system for inducing response and communication method for inducing response |
KR102638316B1 (en) * | 2022-02-26 | 2024-02-20 | 이병수 | Method for Translating User Setting Foreign Language |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110051519A (en) * | 2009-11-10 | 2011-05-18 | 한국전자통신연구원 | Semantic annotation apparatus for web services |
KR20160147303A (en) * | 2015-06-15 | 2016-12-23 | 포항공과대학교 산학협력단 | Method for dialog management based on multi-user using memory capacity and apparatus for performing the method |
JP2017534941A (en) * | 2014-08-22 | 2017-11-24 | マイクロソフト テクノロジー ライセンシング,エルエルシー | Orphan utterance detection system and method |
KR20180124716A (en) * | 2017-05-11 | 2018-11-21 | 경희대학교 산학협력단 | Method for intent-context fusioning in healthcare systems for effective dialogue management |
-
2018
- 2018-12-27 KR KR1020180170964A patent/KR102198295B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110051519A (en) * | 2009-11-10 | 2011-05-18 | 한국전자통신연구원 | Semantic annotation apparatus for web services |
JP2017534941A (en) * | 2014-08-22 | 2017-11-24 | マイクロソフト テクノロジー ライセンシング,エルエルシー | Orphan utterance detection system and method |
KR20160147303A (en) * | 2015-06-15 | 2016-12-23 | 포항공과대학교 산학협력단 | Method for dialog management based on multi-user using memory capacity and apparatus for performing the method |
KR20180124716A (en) * | 2017-05-11 | 2018-11-21 | 경희대학교 산학협력단 | Method for intent-context fusioning in healthcare systems for effective dialogue management |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022092721A1 (en) * | 2020-10-30 | 2022-05-05 | 삼성전자 주식회사 | System and method for providing voice assistant service for text including anaphor |
Also Published As
Publication number | Publication date |
---|---|
KR102198295B1 (en) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11100921B2 (en) | Pinyin-based method and apparatus for semantic recognition, and system for human-machine dialog | |
US11482212B2 (en) | Electronic device for analyzing meaning of speech, and operation method therefor | |
Yang et al. | A joint sequential and relational model for frame-semantic parsing | |
US10262062B2 (en) | Natural language system question classifier, semantic representations, and logical form templates | |
US9740677B2 (en) | Methods and systems for analyzing communication situation based on dialogue act information | |
US9792903B2 (en) | Methods and systems for determining ranking of dialogue sticker based on situation and preference information | |
EP2956931B1 (en) | Facilitating development of a spoken natural language interface | |
US20140316764A1 (en) | Clarifying natural language input using targeted questions | |
KR20170061016A (en) | Device and method of data recognition model construction, and data recognition devicce | |
US10579835B1 (en) | Semantic pre-processing of natural language input in a virtual personal assistant | |
US20150286943A1 (en) | Decision Making and Planning/Prediction System for Human Intention Resolution | |
KR102198295B1 (en) | Dialogue system having multiple dialogue domains | |
KR102100214B1 (en) | Method and appratus for analysing sales conversation based on voice recognition | |
US20160210117A1 (en) | Methods and systems for recommending dialogue sticker based on similar situation detection | |
EP4113357A1 (en) | Method and apparatus for recognizing entity, electronic device and storage medium | |
US10223349B2 (en) | Inducing and applying a subject-targeted context free grammar | |
CN110268472B (en) | Detection mechanism for automated dialog system | |
US20230229860A1 (en) | Method and system for hybrid entity recognition | |
Satapathy et al. | Phonsenticnet: A cognitive approach to microtext normalization for concept-level sentiment analysis | |
CN116541493A (en) | Interactive response method, device, equipment and storage medium based on intention recognition | |
JP2013190985A (en) | Knowledge response system, method and computer program | |
Patil et al. | Novel technique for script translation using NLP: performance evaluation | |
KR102358485B1 (en) | Dialogue system by automatic domain classfication | |
CN113569578B (en) | User intention recognition method and device and computer equipment | |
CN115034209A (en) | Text analysis method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |