KR102016602B1 - 대화 모델 기반의 질의응답 시스템 - Google Patents

대화 모델 기반의 질의응답 시스템 Download PDF

Info

Publication number
KR102016602B1
KR102016602B1 KR1020170108844A KR20170108844A KR102016602B1 KR 102016602 B1 KR102016602 B1 KR 102016602B1 KR 1020170108844 A KR1020170108844 A KR 1020170108844A KR 20170108844 A KR20170108844 A KR 20170108844A KR 102016602 B1 KR102016602 B1 KR 102016602B1
Authority
KR
South Korea
Prior art keywords
query
context
user
natural language
unit
Prior art date
Application number
KR1020170108844A
Other languages
English (en)
Other versions
KR20190023316A (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 KR1020170108844A priority Critical patent/KR102016602B1/ko
Publication of KR20190023316A publication Critical patent/KR20190023316A/ko
Application granted granted Critical
Publication of KR102016602B1 publication Critical patent/KR102016602B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

본 발명에 따른 대화 모델 기반의 질의응답 시스템은 네트워크를 통하여 자연어 형태인 사용자의 질의를 수신하고 응답을 송신하며, 사용자와 대화형으로 질문과 대답을 주고받는 커뮤니케이터; 자연어 이해부를 참조하여, 자연어 형태인 사용자의 질의에 대한 자연어 분석 결과를 생성하는 사용자 입력 전처리부; 질의 패턴 저장부, 현재 세션의 질의에 대한 대화 이력을 저장하는 단기 컨텍스트 저장부, 및 이전 세션의 질의에 대한 대화 이력 및 학습된 사용자 모델을 포함하는 장기 컨텍스트를 저장하는 장기 컨텍스트 저장부를 포함하는 컨텍스트 저장부; 단기 컨텍스트, 및 장기 컨텍스트를 참조하여, 자연어 분석 결과로부터 질의 컨텍스트를 생성하는 컨텍스트 관리부; 질의 컨텍스트를 시스템 질의로 변환하여, 지식 베이스로부터 시스템 응답을 수신하는 시스템 질의부; 및 시스템 응답을 자연어 생성부를 참조하여, 자연어 형태인 응답을 생성하는 사용자 응답 생성부;를 포함한다.

Description

대화 모델 기반의 질의응답 시스템{Question-answering system based dialogue model}
본 발명은 질의응답 시스템에 관한 것으로, 자세하게는 대화 모델(dialogue model) 기반의 질의응답 시스템에 관한 것이다.
본 발명은 산업통상자원부 국제공동기술개발사업의 일환으로 (주)솔트룩스에서 주관하고 연구하여 수행된 연구로부터 도출된 것이다. [연구기간: 2016.10.01~2017.09.30, 연구관리 전문기관: 한국산업기술진흥원, 연구과제명: 모바일에 최적화된 멀티모달 질의응답 프레임워크 개발, 과제 고유번호: N0001701]
질의응답 시스템은 사용자의 질의에 대한 응답을 하기 위한 시스템으로, 사용자가 질의의 의도를 명확하게 제시하고 그에 필요한 충분한 정보를 시스템에 입력하는 것을 전제로 한다.
그러나 사용자가 응답에 필요한 정보를 한번에 명확하게 제시한다는 것은 현실적이지 않으므로, 질의응답 시스템은 응답에 필요한 충분한 정보를 얻을 때까지 사용자에게 추가적인 정보를 얻기 위한 질문을 반복해야한다.
본 발명의 기술적 과제는, 사용자의 질의에 대하여 추가적인 정보를 얻지 않거나 추가적인 정보를 얻기 위한 질문을 최소화할 수 있는 대화 모델 기반의 질의응답 시스템을 제공하는 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 기술적 사상의 일측면에 따른 대화 모델 기반의 질의응답 시스템은 네트워크를 통하여 자연어 형태인 사용자의 질의를 수신하고 응답을 송신하며, 상기 사용자와 대화형으로 질문과 대답을 주고받는 커뮤니케이터; 자연어 이해부를 참조하여, 자연어 형태인 상기 사용자의 질의에 대한 자연어 분석 결과를 생성하는 사용자 입력 전처리부; 질의 패턴 저장부, 현재 세션의 질의에 대한 대화 이력을 저장하는 단기 컨텍스트 저장부, 및 이전 세션의 질의에 대한 대화 이력 및 학습된 사용자 모델을 포함하는 장기 컨텍스트를 저장하는 장기 컨텍스트 저장부를 포함하는 컨텍스트 저장부; 상기 단기 컨텍스트, 및 상기 장기 컨텍스트를 참조하여, 상기 자연어 분석 결과로부터 질의 컨텍스트를 생성하는 컨텍스트 관리부; 상기 질의 컨텍스트를 시스템 질의로 변환하여, 지식 베이스로부터 시스템 응답을 수신하는 시스템 질의부; 및 상기 시스템 응답을 자연어 생성부를 참조하여, 자연어 형태인 상기 응답을 생성하는 사용자 응답 생성부;를 포함한다.
상기 컨텍스트 관리부는, 상기 자연어 분석 결과로부터 상기 질의 패턴 저장부에 저장된 질의 패턴들로부터 후보 질의 패턴을 선정하고, 상기 자연어 분석 결과로부터 추출된 패턴 요소를 상기 후보 질의 패턴에 대응시켜 예비 질의 컨텍스트를 추출하는 예비 질의 컨텍스트 추출부; 상기 단기 컨텍스트, 및 상기 장기 컨텍스트를 참조하여, 상기 예비 질의 컨텍스트가 가지는 상기 후보 질의 패턴에 부족한 패턴 요소를 추가하여 상기 질의 컨텍스트를 생성하는 질의 컨텍스트 생성부; 및 생성된 상기 질의 컨텍스트를 반영하여, 상기 장기 컨텍스트 저장부에 저장된 상기 장기 컨텍스트를 재구성 및 학습하는 컨텍스트 학습부;를 포함할 수 있다.
상기 컨텍스트 관리부는, 생성된 상기 질의 컨텍스트는 상기 단기 컨텍스트 저장부에 저장하고, 상기 질의 컨텍스트의 생성 여부 및 경과 시간을 고려하여 상기 현재 세션을 종료한 후에는 상기 단기 컨텍스트에 저장된 종료된 세션의 상기 질의 컨텍스트을 상기 장기 컨텍스트 저장부에 저장하는 질의 세션 관리부;를 더 포함할 수 있다.
상기 컨텍스트 관리부에서 생성된 질의 컨텍스트를 검증하여, 상기 시스템 질의부에게 상기 질의 컨텍스트를 상기 시스템 질의로 변환하게 하거나, 상기 사용자 응답 생성부에게 상기 질의에 대한 추가적인 정보를 요청하는 자연어 형태인 상기 질문을 생성하게 하는 대화진행 계획부;를 더 포함할 수 있다.
상기 대화진행 계획부는, 자연어 형태인 상기 응답과 상기 질문을 함께 생성하도록 하여, 상기 커뮤니케이터를 통하여, 상기 사용자에게 상기 응답과 상기 질문을 함께 제공하도록 할 수 있다.
상기 컨텍스트 관리부는, 상기 질의 컨텍스트를 우선 순위가 포함되는 복수개 생성할 수 있다.
상기 장기 컨텍스트가 포함하는 상기 사용자 모델은, 사용자의 프로필, 사용자의 선호도 및, 시간 및 공간에 대한 정보를 함께 가질 수 있다.
상기 예비 질의 컨텍스트 추출부는 상기 후보 질의 패턴을 복수개 선정하고, 상기 질의 컨텍스트 생성부는, 상기 단기 컨텍스트, 및 상기 장기 컨텍스트를 참조하여, 복수개의 상기 후보 질의 패턴의 랭킹을 정할 수 있다.
네트워크를 통하여 자연어 형태인 사용자의 질의를 수신하고 응답을 송신하며, 상기 사용자와 대화형으로 질문과 대답을 주고받는 커뮤니케이터; 자연어 이해부를 참조하여, 자연어 형태인 상기 사용자의 질의에 대한 자연어 분석 결과를 생성하는 사용자 입력 전처리부; 복수의 질의 패턴을 저장하는 질의 패턴 저장부, 현재 세션의 질의에 대한 대화 이력을 저장하는 단기 컨텍스트 저장부, 및 이전 세션의 질의에 대한 대화 이력 및 학습된 사용자 모델을 포함하는 장기 컨텍스트를 저장하는 장기 컨텍스트 저장부를 포함하는 컨텍스트 저장부; 상기 자연어 분석 결과로부터 상기 질의 패턴 저장부에 저장된 상기 복수의 질의 패턴 중 복수개의 후보 질의 패턴을 선정하고, 상기 자연어 분석 결과로부터 추출된 패턴 요소를 상기 복수개의 후보 질의 패턴에 대응시켜 예비 질의 컨텍스트를 추출하는 예비 질의 컨텍스트 추출부; 상기 단기 컨텍스트, 및 상기 장기 컨텍스트를 참조하여, 상기 예비 질의 컨텍스트가 가지는 상기 복수개의 후보 질의 패턴에 부족한 패턴 요소를 추가하고 상기 복수개의 후보 질의 패턴의 랭킹을 정하여 질의 컨텍스트를 생성하는 질의 컨텍스트 생성부; 상기 질의 컨텍스트를 시스템 질의로 변환하여 지식 베이스에 전달하여, 상기 지식 베이스로부터 시스템 응답을 수신하는 시스템 질의부; 및 상기 시스템 응답을 자연어 생성부를 참조하여, 자연어 형태인 상기 응답을 생성하는 사용자 응답 생성부;를 포함한다.
상기 컨텍스트 관리부에서 생성된 질의 컨텍스트를 검증하여, 상기 시스템 질의부에게 상기 질의 컨텍스트를 상기 시스템 질의로 변환하게 하거나, 상기 사용자 응답 생성부에게 상기 질의에 대한 추가적인 정보를 요청하는 자연어 형태인 상기 질문을 생성하게 하는 대화진행 계획부;를 더 포함하며, 상기 대화 진행 계획부는, 상기 커뮤니케이터를 통하여 상기 사용자에게, 상기 응답을 제공하도록 하거나, 상기 질문을 제공하도록 하거나, 상기 응답과 상기 질문을 함께 제공하도록 결정할 수 있다.
본 발명에 따른 대화 모델 기반의 질의응답 시스템은 사용자의 질의에 대하여, 단기 컨텍스트뿐만 아니라 장기 컨텍스트를 참조하여, 질의 패턴의 부족한 패턴 요소를 추가할 수 있다. 따라서 사용자가 매 질의마다 입력해야 하는 정보의 부담을 경감시키고, 모호한 정보에 대해서 질문과 대답이 반복되는 경우에 발생될 수 있는 과부하를 최소화하여, 대화 모델 기반의 질의응답 시스템의 정확성과 실용성이 향상될 수 있다.
도 1은 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템을 나타내는 블록도이다.
도 2는 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템의 동작을 설명하기 위한 블록도이다.
도 3은 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템의 동작을 설명하기 위한 블록도이다.
도 4는 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템의 동작을 설명하기 위한 블록도이다.
도 5는 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템의 동작을 설명하기 위한 블록도이다.
도 6 및 도 7은 각각 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템의 도메인 DB부와 외부 DB부를 상세히 나타내는 블록도이다.
도 8은 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템의 동작을 설명하기 위한 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수개의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하 도면 및 설명에서, 하나의 블록으로 표시 또는 설명되는 구성요소는 하드웨어 블록 또는 소프트웨어 블록일 수 있다. 예를 들면, 구성요소들 각각은 서로 신호를 주고 받는 독립적인 하드웨어 블록일 수도 있고, 또는 하나의 프로세서에서 실행되는 소프트웨어 블록일 수도 있다.
본 발명의 구성 및 효과를 충분히 이해하기 위하여, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예들을 설명한다.
도 1은 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템을 나타내는 블록도이다.
도 1을 참조하면, 대화 모델 기반의 질의응답 시스템(1)은 커뮤니케이터(100), 사용자 입력 전처리부(200), 컨텍스트 관리부(300), 대화진행 계획부(400), 대화 모델 기반의 질의응답 시스템부(500), 및 사용자 응답 생성부(600)를 포함한다.
커뮤니케이터(100)는 네트워크(20)를 통하여 사용자(10)로부터 질의를 수신하고, 응답을 송신할 수 있다. 네트워크(20)는 유선 인터넷 서비스, 근거리 통신망(LAN), 광대역 통신망(WAN), 인트라넷, 무선 인터넷 서비스, 이동 컴퓨팅 서비스, 무선 데이터 통신 서비스, 무선 인터넷 접속 서비스, 위성 통신 서비스, 무선 랜, 블루투스 등 유/무선을 통하여 데이터를 주고받을 수 있는 것을 모두 포함할 수 있다. 네트워크(20)이 스마트폰 또는 태블릿 등과 연결되는 경우, 네트워크(20)은 3G, LTE(long term evolution) 등의 무선 데이터 통신 서비스, 와이파이(Wi-Fi) 등의 무선 랜, 블루투스 등일 수 있다.
커뮤니케이터(100)는 사용자(10)가 사용하는 단말기 등을 통하여 대화 모델 기반의 질의응답 시스템(1)에 엑세스하기 위한 인터페이스를 제공할 수 있다. 사용자(10)는 커뮤니케이터(100)를 통하여 대화 모델 기반의 질의응답 시스템(1)에 질의를 전송할 수 있고, 커뮤니케이터(100)를 통하여 대화 모델 기반의 질의응답 시스템(1)이 제공하는 질의에 대한 응답할 수 있다. 또는 대화 모델 기반의 질의응답 시스템(1)이 질의에 대하여 명확한 응답을 하기 어려운 경우에, 사용자(10)는 커뮤니케이터(100)를 통하여 대화형으로 질의를 정확하게 이해하기 위한 질문을 수신할 수 있고, 질문에 대한 대답을 전송할 수 있다.
본 명세서에서 "질의"란 사용자(10)가 대화 모델 기반의 질의응답 시스템(1)로부터 응답을 얻기 위하여 대화 모델 기반의 질의응답 시스템(1)에 자연어 형태로 입력한 것을 의미하고, "응답"이란 사용자(10)의 질의에 대하여 대화 모델 기반의 질의응답 시스템(1)이 제공하는 결과물, 예컨대, 사용자(10)의 질의에 대한 자연어 형태의 정답을 의미한다. 또한 "시스템 질의"란 자연어 형태인 사용자(10)의 "질의"로부터 생성된 질의 컨텍스트를 지식 베이스(800)에게 제공하기 위하여 변환된 쿼리(query)를 의미한다.
또한 특별히 언급하거나 전제되지 않는 경우 본 명세서에서 "질문"이란, 대화 모델 기반의 질의응답 시스템(1)이 질의에 대한 추가적인 정보를 얻기 위하여 사용자(10)에게 하는 자연어 형태의 요청을 의미하고, "대답"이란 대화 모델 기반의 질의응답 시스템(1)의 "질문"에 대하여 사용자(10)가 대화 모델 기반의 질의응답 시스템(1)에 추가로 입력하는 자연어 형태의 정보를 의미한다. 대화 모델 기반의 질의응답 시스템(1)의 입장에서는 사용자(10)의 "질의" 및 "대답"을 함께 하나의 질의로 인식할 수 있다.
사용자 입력 전처리부(200)는 커뮤니케이터(100)가 수신한 자연어 형태의 질의를 자연어 이해부(210)를 참조하여, 해석하여 컨텍스트 관리부(300)로 전달할 수 있다.
예를 들면, 자연어 이해부(210)는 질의에 대하여, 시맨틱 롤 라벨링(Semantic Role Labeling), 형태소 분석, 구문 분석, 개체명 분석, 의도 분류, 및 도메인 분석 등의 복수의 단위 분석 과정을 수행할 수 있다. 상기 복수의 단위 분석 과정 중 일부는 병렬적으로 수행될 수 있다. 상기 복수의 단위 분석 과정 중 일부는 순차적으로 수행될 수 있다.
일부 실시 예에서, 자연어 이해부(210)는 질의에 대한 자연어 분석 결과를 테이블(table) 구조 또는 트리(tree) 구조를 가지는 정형 데이터로 제공할 수 있다. 자연어 이해부(300)에서 제공하는 정형 데이터는 예를 들면, RDB(Relation DateBase), CSV(Comma-Seperated Variables), XML(eXtensible Markup Language), JSON(JavaScript Object Notation) 등일 수 있다.
사용자 입력 전처리부(200)는 자연어 이해부(210)에서 수행되는 시맨틱 롤 라벨링, 형태소 분석, 구문 분석, 개체명 분석, 의도 분류, 및 도메인 분석 등의 복수의 단위 분석 과정 중 적어도 하나의 단위 분석 과정의 단위 자연어 분석 결과를 구분하여 수신하거나, 전체 자연어 분석 결과를 함께 수신할 수 있다. 일부 실시 예에서, 사용자 입력 전처리부(200)는, 자연어 이해부(210)에서 수신한 각각의 단위 자연어 분석 결과를 질의에 대한 응답이 마무리될 때까지 저장하고 있을 수 있다. 또는 사용자 입력 전처리부(200)는 자연어 이해부(210)에서 수신한 각각의 단위 자연어 분석 결과를 구분하여, 컨텍스트 관리부(300)에 전달하거나, 전체 자연어 분석 결과를 함께 컨텍스트 관리부(300)에 전달할 수 있다.
컨텍스트 관리부(300)는 사용자 입력 전처리부(200)에서 전달받은 질의에 대한 자연어 분석 결과를 토대로, 질의 컨텍스트를 생성할 수 있다. 컨텍스트 관리부(300)는 질의에 대한 자연어 분석 결과로부터 예비 질의 컨텍스트를 추출한 후, 컨텍스트 저장부(350)에 저장된 질의 패턴을 기초로 추출된 예비 질의 컨텍스트에서 부족한 패턴 요소를 파악할 수 있다. 이후, 컨텍스트 관리부(300)는 컨텍스트 저장부(350)에 저장된 단기 컨텍스트 및 장기 컨텍스트를 참조하여, 예비 질의 컨텍스트를 구성하는 질의 패턴에서 부족한 패턴 요소를 추가하여 질의 컨텍스트를 생성하고, 대화진행부 계획부(400)에 전달할 수 있다. 장기 컨텍스트는 대화 이력과 사용자 모델을 포함할 수 있다.
질의 컨텍스트란, 질의에 대한 컨텍스트(context), 즉 질의의 내용 및 맥락을 함께 포함하는 것으로, 복수의 패턴 요소로 이루어지는 적어도 하나의 질의 패턴, 질의 패턴 또는 패턴 요소의 우선 순위 등으로 이루어질 수 있으며, 사용자(10)가 입력한 한번의 "질의"뿐만 아니라, 단기 컨텍스트 및 장기 컨텍스트를 모두 반영된 것을 의미한다. 예비 질의 컨텍스트란, 사용자(10)가 입력한 한번의 "질의"로부터만 추출한 컨텍스트를 의미하며, 질의의 내용 및 맥락이 완전히 파악되지 않은 것일 수 있다.
또한 컨텍스트 관리부(300)는 질의에 대한 자연어 분석 결과, 예비 질의 컨텍스트, 및 생성된 질의 컨텍스트를 컨텍스트 저장부(350)에 저장하고, 이를 토대로 사용자(10)에 대한 정보인 사용자 모델을 재구성 및 학습할 수 있다.
대화진행 계획부(400)는 생성된 질의 컨텍스트를 기초로, 지식 베이스(800)에 "시스템 질의"를 하거나 사용자(10)에게 "질문"을 하도록 할 수 있다.
생성된 질의 컨텍스트로부터 사용자(10)의 명확한 의도가 파악되는 경우에, 대화진행 계획부(400)는 시스템 질의부(500)에게 시스템 질의를 생성하도록 할 수 있다.
또는 생성된 질의 컨텍스트로부터 사용자(10)의 명확한 의도가 파악되지 않는 경우, 대화진행 계획부(400)는 사용자 응답 생성부(600)에게, 자연어 생성부(700)를 기초로 하여, 자연어의 "질문"을 생성하여 사용자(10)에게 제공하도록 할 수 있다.
시스템 질의부(500)는 질의 컨텍스트를 "시스템 질의"로 변환하여 지식 베이스(800)에 전달하여 그 결과인 "시스템 응답"을 수신할 수 있다. 시스템 질의부(500)는 질의 컨텍스트를 기초로, 사용자(10)가 "질의"에서 명시하지 않은 정보를 포함하여 "시스템 질의"를 생성할 수 있다.
사용자 응답 생성부(600)는 자연어 생성부(700)를 참조하여, "응답" 또는 "질문"을 생성할 수 있다. 시스템 질의부(500)가 "시스템 질의"에 대한 "시스템 응답"을 지식 베이스(800)로부터 수신한 경우, 사용자 응답 생성부(600)는 자연어 생성부(700)를 참조하여, "시스템 응답"으로부터 자연어 형태의 "응답"을 생성하여 커뮤니케이터(100)를 통하여 사용자(10)에게 제공할 수 있다.
대화진행 계획부(400)가 사용자(10)의 명확한 의도가 파악하지 못한 경우, 사용자 응답 생성부(600)는 자연어 생성부(700)를 참조하여, 자연어 형태의 "질문"을 생성하여 커뮤니케이터(100)를 통하여 사용자(10)에게 제공할 수 있다. 일부 실시 예에서, 사용자 응답 생성부(600)는 "질문"을 생성할 때, 지식 베이스(800)를 참조할 수 있다.
커뮤니케이터(100)는 사용자 응답 생성부(600)에서 생성된 "응답", 또는 "질문"을 네트워크(20)를 통하여 사용자(10)에게 제공될 수 있다.
본 발명에 따른 대화 모델 기반의 질의응답 시스템(1)은 사용자(10)의 질의에 대하여, 단기 컨텍스트뿐만 아니라 장기 컨텍스트를 참조하여, 질의 패턴의 부족한 패턴 요소를 추가할 수 있다. 따라서 사용자(10)가 매 질의마다 입력해야 하는 정보의 부담을 경감시키고, 모호한 정보에 대해서 질문과 대답이 반복되는 경우에 발생될 수 있는 과부하를 최소화하여, 대화 모델 기반의 질의응답 시스템(1)의 정확성과 실용성이 향상될 수 있다.
도 2는 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템의 동작을 설명하기 위한 블록도이다. 구체적으로 도 2는 도 1에서 설명한 사용자의 질의에 대한 사용자 입력 전처리부(200)에서의 동작을 설명하기 위한 블록도로, 도 2에 대한 설명 중 도 1과 중복되는 내용은 생략될 수 있다.
도 2를 참조하면, 사용자 입력 전처리부(200)는 커뮤니케이터(도 1의 100)가 수신한 자연어 형태의 질의를 자연어 이해부(210)를 참조하여 해석할 수 있다. 자연어 이해부(210)는 시맨틱 롤 라벨링부(SRL, 220), 형태소 분석부(230), 구문 분석부(240), 개체명 분석부(250), 의도 분류부(270) 및 도메인 분석부(280)를 포함할 수 있다. 시맨틱 롤 라벨링부(220)는 질의에 대한 의미 역할(Semantic Role)을 부여할 수 있다. 형태소 분석부(230)는 의미 역할이 부여된 질의를 형태소 단위로 분리할 수 있다. 구문 분석부(240) 및 개체명 분석부(250)는 형태소 단위로 분리된 질의에 구문 분석 및 개체명 분석을 할 수 있다. 의도 분류부(260) 및 도메인 분석부(270)는 의미 역할이 부여된 질의의 의도(intention) 분류 및 도메인 분석을 할 수 있다.
시맨틱 롤 라벨링부(SRL, 220), 형태소 분석부(230), 구문 분석부(242), 개체명 분석부(250), 의도 분류부(260) 및 도메인 분석부(270) 각각의 분석 단계에서 생성되는 분석 결과를 단위 자연어 분석 결과라 호칭하며, 하나의 질의에 대한 단위 자연어 분석 결과들을 함께 전체 자연어 분석 결과라 호칭한다.
도 3은 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템의 동작을 설명하기 위한 블록도이다. 구체적으로 도 3은 도 1에서 설명한 사용자의 질의에 대한 컨텍스트 관리부(300)에서의 동작을 설명하기 위한 블록도로, 도 3에 대한 설명 중 도 1과 중복되는 내용은 생략될 수 있다.
도 1 및 도 3을 함께 참조하면, 컨텍스트 관리부(300)는 사용자 입력 전처리부(200)에서 자연어 이해부(도 2의 210)를 참조하여 해석한 질의에 대한 자연어 분석 결과를 수신하여 질의 컨텍스트를 생성한다. 컨텍스트 관리부(300)는 컨텍스트 저장부(350)를 참조하여 질의 컨텍스트를 생성한다. 컨텍스트 관리부(300)는 예비 질의 컨텍스트 추출부(310), 및 질의 컨텍스트 생성부(320)를 포함한다.
예비 질의 컨텍스트 추출부(310)는 질의에 대한 자연어 분석 결과로부터 예비 질의 컨텍스트를 추출한다.
예비 질의 컨텍스트 추출부(310)는 질의 패턴 저장부(360)에 저장된 질의 패턴들로부터 후보 질의 패턴을 선정한다. 예비 질의 컨텍스트 추출부(310)는 질의에 대한 자연어 분석 결과로부터 예비 질의 컨텍스트를 추출한 후, 후보 질의 패턴을 선정할 수 있다. 예비 질의 컨텍스트는, 질의에 대한 자연어 분석 결과로부터 추출한 패턴 요소들로 이루어질 수 있다. 예비 질의 컨텍스트 추출부(310)는 하나의 후보 질의 패턴을 선정할 수도 있으나, 복수의 후보 질의 패턴을 선정할 수도 있다.
예비 질의 컨텍스트 추출부(310)는 선정된 하나의 후보 질의 패턴 또는 선정된 복수의 후보 질의 패턴에 예비 질의 컨텍스트를 이루는 질의에 대한 자연어 분석 결과로부터 추출한 패턴 요소를 대응시킬 수 있다.
질의 패턴은 여러 가지 패턴 요소들의 조합으로 이루어질 수 있다. 패턴 요소는 예를 들면, E(Entity), C(Class), P(Property), Q(Quantity), S(Special Word), 또는O(Order)일 수 있으나, 이에 한정되는 것은 아니다. 여기에서 S(Special Word)는 "가장", "최초"와 같은 특별한 의미를 부여하는 단어에 부여되는 패턴 요소일 수 있다.
질의 패턴 저장부(360)는 예를 들면, EP(Entity, Property) 패턴, EPP(Entity, Property1, Property2) 패턴, EQP(Entity, Property, Quantity) 패턴, ECP(Entity, Class, Property) 패턴, ECPPC(Entity, Class1, Property1, Property2, Class2) 패턴, ECPEPC(Entity1, Class1, Property1, Entity2, Property2, Class2) 패턴, EPO(Entity, Property, Order) 패턴, 또는 ESPE(Entity1, Special Word, Property, Order1) 패턴 등과 같은 다양한 질의 패턴을 저장하고 있을 수 있으나, 이에 한정되는 것은 아니다.
"한라산의 높이는?"이라는 질의의 질의 패턴은 한라산(E)과 높이(P)라는 패턴 요소를 가지는 EP 패턴일 수 있다. "명량을 만든 감독은?"이라는 질의의 질의 패턴은 명량(E), 만들다(P1), 및 감독(P2)이라는 패턴 요소를 가지는 EPP 패턴일 수 있다. "방탄소년단의 멤버는 몇 명인가?"라는 질의의 질의 패턴은 방탄소년단(E), 멤버(P), 및 몇 명(Q)이라는 패턴 요소를 가지는 EPQ 패턴일 수 있다. "드라마 힘쎈여자 도봉순의 극본을 쓴 사람은?"이라는 질의의 질의 패턴은 드라마(C1), 힘쎈여자 도봉순(E), 극본(P1), 쓰다(P2), 및 사람(C2)이라는 패턴 요소를 가지는 ECPPC 패턴일 수 있다. "애니메이션 트롤의 감독이 연출한 다른 애니메이션을 알려줘"라는 질의의 질의 패턴은 애니메이션(C1), 트롤(E), 감독(P1), 연출하다(P2), 다른 애니메이션(C2)이라는 패턴 요소을 가지는 ECPPC 패턴일 수 있다. "영화 쇼콜라에서 주인공 쇼콜라 역을 한 배우 이름은?"이라는 질의의 질의 패턴은 영화(C1), 쇼콜라(E1), 주인공(P1), 쇼콜라(E2), 역(P2), 및 배우(C2)라는 패턴 요소를 가지는 ECPEPC 패턴일 수 있다. "17회 FIFA 월드컵 개최국은?"이라는 질의의 질의 패턴은 17회(O), FIFA 월드컵(E), 및 개최국(P)이라는 패턴 요소를 가지는 EPO 패턴일 수 있다. "세계 가장 빠른 비행기?"라는 질의의 질의 패턴은 세상(E), 가장(S), 빠르다(P), 및 비행기(E)이라는 패턴 요소를 가지는 ESPE 패턴일 수 있다. 그러나 이와 같은 패턴 요소들의 분류, 및 패턴 요소들로 이루어지는 질의 패턴은 예시적인 것으로, 패턴 요소들을 다르게 분류하거나, 다른 질의 패턴을 구성할 수도 있다.
만일 질의에 대한 자연어 분석 결과로부터 추출한 패턴 요소가 선정된 질의 패턴이 가지는 패턴 요소에 모두 대응되는 경우에는, 질의 컨텍스트 생성부(320)는 예비 질의 컨텍스트 자체를 질의 컨텍스트로 생성할 수 있다.
그러나 질의는 일부 패턴 요소밖에 가지고 있지 않을 수 있다. 예를 들면, "높이는?"이라는 질의에 대하여 EP 패턴, EPC 패턴 등의 질의 패턴이 선정된 경우, 높이(P)라는 패턴 요소만을 가지고 있으므로, E(Entity) 및/또는 C(Class)라는 패턴 요소가 부족할 수 있다. 이 경우, 질의 컨텍스트 생성부(320)는 단기 컨텍스트 및/또는 장기 컨텍스트를 참조하여, 부족한 패턴 요소를 추가하여 질의 컨텍스트를 생성할 수 있다.
즉, 예비 질의 컨텍스트 추출부(310)는 질의에 대한 자연어 분석 결과에 대응되는 질의 패턴을 질의 패턴 저장부(360)로부터 선정할 수 있다. 이때, 질의에 대한 자연어 분석 결과와 매칭되는 질의 패턴이 있는 경우, 질의 컨텍스트 생성부(320)는 매칭되는 질의 패턴을 선정하여, 질의 컨텍스트를 생성할 수 있다.
만일 질의에 대한 자연어 분석 결과와 매칭 되는 질의 패턴이 없는 경우, 예비 질의 컨텍스트 컨텍스트 추출부(310)는 질의에 대한 자연어 분석 결과를 기초로 하나 또는 복수의 후보 질의 패턴을 선정한다.
질의 컨텍스트 생성부(320)는 후보 질의 패턴으로부터, 앞선 질의 중 유사한 질의 패턴이 있는지 검사하거나, 대화 모델 기반의 질의응답 시스템(1)에 정의되어 있는 질의 패턴 중 가장 유사한 질의 패턴을 검사한다. 또는 가능성 있는 후보 질의 패턴이 다수개일 경우, 단기/장기 컨텍스트를 고려하여 이들의 랭킹을 정할 수 있다. 또한 이후 사용자의 피드백을 고려하여, 질의 패턴의 랭킹을 변경할 수도 있다.
컨텍스트 저장부(350)는 단기 컨텍스트 저장부(370) 및 장기 컨텍스트 저장부(380)를 더 포함할 수 있다. 단기 컨텍스트 저장부(370)는 현재 세션의 질의에 대한 대화 이력을 저장하고 있을 수 있다. 장기 컨텍스트 저장부(380)는 이전 세션의 질의에 대한 대화 이력 및 이를 토대로 추출되고 학습된 사용자 모델을 저장하고 있을 수 있다.
예를 들어, 사용자(10)가 "이종민에 대해서 알려줘"라는 질의를 한 경우, 이 질의에는 패턴 요소로 이종민(E)만이 포함되어 있으며, 예비 질의 컨텍스트 추출부(310)는 패턴 요소인 이종민(E)으로부터 사용자(10)의 의도가 "이종민"에 대한 정보를 요구한다는 것은 분석할 수 있다. 그러나 패턴 요소인 이종민(E)을 가질 수 있는 질의 패턴은 다양하므로, 예비 질의 컨텍스트 추출부(310)는 질의 패턴 저장부(360)가 저장하고 있는 질의 패턴들 중 복수의 후보 질의 패턴을 선정할 수 있다.
질의 컨텍스트 생성부(320)는 우선 현재 세션의 질의에 대한 대화 이력을 저장하고 있는 단기 컨텍스트 저장부(370)를 참조하여, 어떤 "이종민"인지를 결정할 수 있는 패턴 요소를 찾을 수 있다. 예를 들면, 현재 세션에서 야구에 대한 대화 이력이 있는 경우에는 패턴 요소로 야구(P) 또는 야구 선수(P)를 선정하여, "야구 선수"인 "이종민"에 대하여 알려달라는 질의 컨텍스트를 생성할 수 있다.
만일, 현재 세션에서 단순히 스포츠에 대한 대화 이력, 또는 야구와 축구에 대한 대화 이력이 유사하게 있는 경우에는, 패턴 요소로 야구 선수(P)와 축구 선수(P) 중 무엇을 선정해야할지 어려울 수 있다.
그러나, 질의 컨텍스트 생성부(320)는 장기 컨텍스트를 저장하고 있는 장기 컨텍스트 저장부(380)를 참조하여 질의 컨텍스트를 생성할 수 있다. 장기 컨텍스트 저장부(380)는 대화 이력 저장부(382)와 사용자 모델 저장부(384)를 포함할 수 있다.
대화 이력 저장부(382)는 이전 세션의 질의에 대한 대화 이력을 저장하고 있을 수 있다. 대화 이력 저장부(382)에서 상대적으로 최근에 축구에 대한 대화 이력이 있는 경우에는 질의 컨텍스트 생성부(320)는 패턴 요소로 축구(P) 또는 축구 선수(P)를 선정하여, "축구 선수"인 "이종민"에 대하여 알려달라는 질의 컨텍스트를 생성할 수 있다.
사용자 모델 저장부(384)는 대화 모델 기반의 질의응답 시스템(1)에서 그동안 질의응답한 결과, 피드백한 결과, 대화 모델 기반의 질의응답 시스템(1)이 설치된 기기에서 사용자가 검색하거나 입력한 정보 등을 종합하여, 사용자의 프로필, 선호도 등을 저장하고 있을 수 있다. 따라서 사용자 모델 저장부(384)에 저장된 사용자의 선호도가 축구인 경우에는, 질의 컨텍스트 생성부(320)는 패턴 요소로 축구(P) 또는 축구 선수(P)를 선정하여, "축구 선수"인 "이종민"에 대하여 알려달라는 질의 컨텍스트를 생성할 수 있다.
사용자 모델 저장부(384)가 저장하는 사용자 모델은 시간 및/또는 공간에 대한 정보를 함께 가지고 있을 수 있다. 예를 들어, 사용자(10)가 "뭐 먹지?"라는 질의를 한 경우, 평일/휴일, 직장/집/야외, 및 아침/점심/저녁/밤 등의 시간 및/또는 공간에 대한 정보를 반영된 사용자 모델로부터, 식당, 메뉴, 또는 요리 등에 패턴 요소를 선정하여, 질의 컨텍스트를 생성할 수 있다. 즉, 평일의 점심 시간 무렵에 직장에서 "뭐 먹지?"라는 질의를 한 경우에는 직장 근처의 식당 또는 메뉴를 패턴 요소로 선정할 수 있다. 이 경우에도 단기 컨텍스트의 대화 이력, 또는 장기 컨텍스트의 대화 이력을 함께 참조할 수 있다.
질의 세션 관리부(330)는 현재 세션을 종료하기 전까지의 대화 이력, 즉 생성된 질의 컨텍스트를 단기 컨텍스트 저장부(370)에 저장할 수 있다. 또한 질의 세션 관리부(330)는 질의 컨텍스트의 생성 여부, 질의응답의 경과 시간 등을 고려하여, 현재 세션을 종료하고, 그때까지의 대화 이력, 즉 단기 컨텍스트 저장부(370)에 저장된 단기 컨텍스트를 장기 컨텍스트 저장부(380)에 저장할 수 있다.
컨텍스트 학습부(340)는 현재 세션이 종료된 경우, 종료된 세션의 단기 컨텍스트, 즉 종료된 세션에서 생성된 질의 컨텍스트를 반영하여, 대화 이력과 사용자 모델으로 이루어지는 장기 컨텍스트를 재구성 및 학습할 수 있다.
선정된 질의 컨텍스트는 대화진행 계획부(400)로 송신될 수 있다. 이때 선정된 질의 컨텍스트는 한가지일 수도 있으나, 복수개일 수도 있으며, 복수개의 질의 컨텍스트가 선정된 경우에는 우선 순위가 포함될 수도 있다. 단기 컨텍스트 및 장기 컨텍스트를 모두 참조하여도, 질의 컨텍스트를 명확히 선정하지 못한 경우에도 해당 정보, 예를 들면, 추출된 패턴 요소, 후보 질의 패턴, 및 예비 질의 컨텍스트를 대화진행 계획부(400)로 송신할 수 있다.
도 4는 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템의 동작을 설명하기 위한 블록도이다. 구체적으로 도 4는 도 1에서 설명한 대화진행 계획부(400)에서의 동작을 설명하기 위한 블록도로, 도 4에 대한 설명 중 도 1과 중복되는 내용은 생략될 수 있다.
도 1 및 도 4를 함께 참조하면, 대화진행 계획부(400)는 컨텍스트 관리부(300)에서 수행된 분석 결과를 수신하여, 사용자(10)의 질의에 대한 대화진행을 결정한다.
대화진행 계획부(400)는 질의 컨텍스트 검증부(410), 대화 정책(420), 및 대화 흐름 모델(430)을 포함할 수 있다. 질의 컨텍스트 검증부(410)는 대화 정책(420) 및 대화 흐름 모델(430)을 참조하여, 사용자(10)에게 응답을 하기 위한 시스템 질의를 할지, 사용자(10)에게 질문을 할지를 결정할 수 있다. 또는 질의 컨텍스트 검증부(410)는 사용자(10)에게 응답과 더불어 질문을 추가로 할지를 결정할 수 있다.
"이종민에 대해서 알려줘"라는 사용자(10)의 질의에 대하여 컨텍스트 관리부(300)에서 축구 선수(E) 및 이종민(P)이라는 패턴 요소를 가지는 질의 컨텍스트를 명확하게 선정한 경우, 대화진행 계획부(400)는 시스템 질의부(500)에게 "축구 선수인 이종민의 정보"에 대한 시스템 질의를 요청할 수 있다.
컨텍스트 관리부(300)에서 축구 선수(E) 및 이종민(P)이라는 패턴 요소를 가지는 질의 컨텍스트와 야구 선수(E) 및 이종민(P)이라는 패턴 요소를 가지는 질의 컨텍스트를 동일한 우선 순위를 가지며 선정한 경우, 대화진행 계획부(400)는 사용자 응답 생성부(600)에게 "축구 선수 이종민과 야구 선수 이종민 중 어느 이종민에 대한 정보를 원하시나요?"라는 질문을 생성하게 하거나, , 또는 시스템 질의부(500)에게 "축구 선수인 이종민의 정보"과 "야구 선수인 이종민의 정보"에 대한 시스템 질의를 요청한 후, 그 결과인 시스템 응답을 사용자 응답 생성부(600)에게 전달하고, 사용자 응답 생성부(600)에서 "축구 선수 이종민의 정보는 ...이고, 야구 선수 이종민의 정보는 ...입니다"라는 응답을 생성하도록 할 수 있다.
컨텍스트 관리부(300)에서 축구 선수(E) 및 이종민(P)이라는 패턴 요소를 가지는 질의 컨텍스트가 우선 순위, 야구 선수(E) 및 이종민(P)이라는 패턴 요소를 가지는 질의 컨텍스트가 차순위를 가지며 선정한 경우, 대화진행 계획부(400)는 시스템 질의부(500)에게 "축구 선수인 이종민의 정보"에 대한 시스템 질의를 요청한 후, 그 결과인 시스템 응답을 사용자 응답 생성부(600)에게 전달하고, 사용자 응답 생성부(600)에서 "축구 선수 이종민의 정보는 ...입니다"라는 응답과 "야구 선수 이종민에 대한 정보도 원하시나요?"라는 질문을 함께 생성하도록 할 수 있다.
대화 모델 기반의 질의응답 시스템(1)은 단기 컨텍스트뿐만 아니라, 장기 컨텍스트, 즉 이전 세션들의 대화 이력 및 사용자 모델을 참조하여 사용자(10)의 질의에 대한 응답을 할 수 있으므로, 사용자(10)의 질의로부터 추출할 수 없는 사용자(10)의 의도를 반영한 질의 컨텍스를 생성하여, 정확한 응답을 빨리 제공할 수 있다.
도 5는 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템의 동작을 설명하기 위한 블록도이다. 구체적으로 도 5은 도 1에서 설명한 지식 베이스(800)를 참조한 시스템 질의부(500) 및 사용자 응답 생성부(600)에서의 동작을 설명하기 위한 블록도로, 도 5에 대한 설명 중 도 1과 중복되는 내용은 생략될 수 있다.
도 1 및 도 5를 함께 참조하면, 시스템 질의부(500)는 지식 베이스(800)에 시스템 질의를 하여, 시스템 응답을 얻은 후, 사용자 응답 생성부(600)에서 사용자(10)에게 제공할 "응답"을 생성하도록 할 수 있다. 사용자 응답 생성부(600)는 추가적으로, 사용자(10)에게 할 "질문"을 생성하도록 할 수 있으며, 필요에 따라서 지식 베이스(800)를 참조하여, "질문"을 생성할 수 있다.
지식 베이스(800)는 DB 등록부(810), DB 관리부(820), 및 도메인 DB부(830)를 포함할 수 있다. DB 등록부(810) 및 DB 관리부(820)는 각각 도메인 DB부(830)가 포함하는 복수의 도메인 DB(832, 834, 836, 838)을 등록하고 관리할 수 있다. 지식 DB 등록부(810) 및 DB 관리부(820)는 각각 외부 DB부(840)를 등록하고 관리할 수 있다. 도 5에서는 도시의 편의를 위하여, 외부 DB부(840)가 지식 베이스(800) 내, 즉 대화 모델 기반의 질의응답 시스템(1) 내에 포함된 것으로 도시되었으나, 이에 한정되지 않는다. 예를 들면, 외부 DB부(840)는 대화 모델 기반의 질의응답 시스템(1)의 DB 등록부(810)에 등록되고, DB 관리부(820)에서 억세스 가능한 외부 서비스 및 외부 서비스가 포함하는 외부 DB일 수 있다. 즉, 외부 DB부(840)는 대화 모델 기반의 질의응답 시스템(1)의 DB 등록부(810)에 등록되고, DB 관리부(820)에서 억세스 가능한 외부 서비스 및 외부 서비스가 포함하는 외부 DB를 개념적으로 하나의 구성 요소처럼 도시한 것일 수 있다. DB 관리부(820)는 각각의 외부 서비스에 억세스하기 위한 API를 가지는 플러그인을 가질 수 있다.
도메인 DB부(830)는 예를 들면, 제1 내지 제4 도메인 DB(832, 834, 836, 838)을 포함할 수 있다. 제1 내지 제4 도메인 DB(832, 834, 836, 838)은 독립적으로 구축된 지식베이스일 수 있다. 예를 들면 제1 내지 제4 도메인 DB(832, 834, 836, 838) 각각은 일반 상식 지식베이스, 영화 도메인 지식베이스, 음악 도메인 지식베이스, 헬스 도메인 지식베이스, 퍼스널 어시스턴트 도메인 지식베이스, 음식 식당 도메인 지식베이스 등일 수 있다.
외부 DB부(840)는 복수의 서비스(841, 842, 843)와 각 서비스에 대응되는 복수의 외부 DB(846, 847, 848)을 포함할 수 있다. DB 관리부(820)는 제1 서비스(841), 제2 서비스(842), 제3 서비스(843) 등 외부 서비스와 연결되어 이들을 대화 모델 기반의 질의응답 시스템(1) 내의 지식 베이스로 활용할 수 있다. 제1 서비스(841), 제2 서비스(842), 및 제3 서비스(843)는 각각 독자적인 제1 외부 DB(846), 제2 외부 DB(847), 및 제3 외부 DB(848)와 연결되거나, 이를 포함할 수 있다. 예를 들면, 외부 서비스는 지리정보 서비스, 환율변환 서비스, 날씨 서비스 등일 수 있으며, 이들 외부 서비스와 연결되거나, 이들 외부 서비스가 포함하는 외부 DB는 예를 들면, Geo 정보 DB, 환율정보 DB, 세계날씨 DB 등일 수 있다.
시스템 질의부(500) 및/또는 사용자 응답 생성부(600)는 DB 등록부(810)에 등록된 정보를 토대로, 도메인 DB부(830) 및/또는 외부 DB부(840)가 가지는 복수의 도메인 DB(832, 834, 836) 및 복수의 외부 DB(846, 847, 848) 중 적어도 하나의 DB(지식 베이스)를 참조할 수 있고, 이러한 참조는 DB 관리부(820)에 의하여 제어 및 관리될 수 있다.
도 6 및 도 7은 각각 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템의 도메인 DB부와 외부 DB부를 상세히 나타내는 블록도이다.
도 6을 참조하면, 도메인 DB부(830a)는 예를 들면, 일반 상식 지식베이스(832a), 영화 도메인 지식베이스(834a), 음악 도메인 지식베이스(836a), 헬스 도메인 지식베이스(838a) 등 각 도메인에 해당하는 별도의 지식베이스를 포함할 수 있다.
도 7을 참조하면 외부 DB부(840a)는 예를 들면, 지리정보 서비스(841a) 및 이와 연결되거나 이에 포함되는 Geo 정보 DB(846a), 환율변환 서비스(842a) 및 이와 연결되거나 이에 포함되는 환율 정보 DB(847a), 및 날씨 서비스(843a) 및 이와 연결되거나 이에 포함되는 세계날씨 DB(848a) 중 적어도 하나일 수 있다.
지리정보 서비스(841a)를 통하여 두지역 사이의 거리 또는 경로 등과 같은 질의에 대한 답변을 생성할 수 있다. 환율변환 서비스(842a)를 통하여 현재 환율, 다른 화폐 사이의 환율 변환 등과 같은 질의에 대한 답변을 생성할 수 있다. 날씨 서비스(843a) 통하여, 현재 날씨, 날씨 예보, 과거 날씨 등과 같은 질의에 대한 답변을 생성할 수 있다.
도 8은 본 발명의 예시적 실시 예에 따른 대화 모델 기반의 질의응답 시스템의 동작을 설명하기 위한 블록도이다. 구체적으로 도 8은 도 1에서 설명한 자연어 생성부(700)를 참조한 사용자 응답 생성부(600)에서의 동작을 설명하기 위한 블록도로, 도 8에 대한 설명 중 도 1과 중복되는 내용은 생략될 수 있다.
도 1 및 도 8을 함께 참조하면, 사용자 응답 생성부(600)는 자연어 생성부(700)를 통하여, 시스템 응답을 자연어 형태인 "응답"으로 생성하여 사용자(10)에게 제공할 수 있다. 또한 사용자 응답 생성부(600)는 자연어 생성부(700)를 통하여, 자연어 형태인 "질문"으로 생성하여 사용자(10)에게 제공할 수 있다.
자연어 생성부(700)는 자연어 응답 생성부(710), 및 자연어 생성 규칙부(720)를 포함한다. 사용자 응답 생성부(600)는 자연어 응답 생성부(710)에서 자연어 생성 규칙부(720)를 참조하여 생성한 자연어 형태의 응답 또는 질문을 기초로, 사용자(10)에게 "응답"을 제공하거나 "질문"을 할 수 있다.
이상, 본 발명을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명은 상기 실시예에 한정되지 않고, 본 발명의 기술적 사상 및 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.
1 : 대화 모델 기반의 질의응답 시스템, 10 : 사용자, 20 : 네트워크, 100 : 커뮤니케이터, 200 : 사용자 입력 전처리부, 210 : 자연어 이해부, 300 : 컨텍스트 관리부, 350 : 컨텍스트 저장부, 400 : 대화진행 계획부, 500 :대화 모델 기반의 질의응답 시스템부, 600 : 사용자 응답 생성부, 700 : 자연어 생성부, 800 : 지식 베이스

Claims (10)

  1. 네트워크를 통하여 자연어 형태인 사용자의 질의를 수신하고 응답을 송신하며, 상기 사용자와 대화형으로 질문과 대답을 주고받는 커뮤니케이터;
    자연어 형태인 상기 사용자의 질의에 대한 자연어 분석 결과를 생성하는 사용자 입력 전처리부;
    질의 패턴 저장부, 현재 세션의 질의에 대한 대화 이력을 저장하는 단기 컨텍스트 저장부, 및 이전 세션의 질의에 대한 대화 이력 및 학습된 사용자 모델을 포함하는 장기 컨텍스트를 저장하는 장기 컨텍스트 저장부를 포함하는 컨텍스트 저장부;
    상기 단기 컨텍스트, 및 상기 장기 컨텍스트를 참조하여, 상기 자연어 분석 결과로부터 질의 컨텍스트를 생성하는 컨텍스트 관리부;
    상기 질의 컨텍스트를 시스템 질의로 변환하여, 지식 베이스로부터 시스템 응답을 수신하는 시스템 질의부; 및
    상기 시스템 응답을 자연어 생성부를 참조하여, 자연어 형태인 상기 응답을 생성하는 사용자 응답 생성부;를 포함하는 대화 모델 기반의 질의응답 시스템.
  2. 제1 항에 있어서,
    상기 컨텍스트 관리부는,
    상기 질의 패턴 저장부에 저장된 질의 패턴들로부터 상기 사용자의 질의에 대한 상기 자연어 분석 결과에 대응하는 후보 질의 패턴을 선정하고, 상기 자연어 분석 결과로부터 추출된 패턴 요소를 상기 후보 질의 패턴에 대응시켜 예비 질의 컨텍스트를 추출하는 예비 질의 컨텍스트 추출부;
    선정된 상기 후보 질의 패턴과 비교하여 상기 예비 질의 컨텍스트에 부족한 패턴 요소를, 상기 단기 컨텍스트 및 상기 장기 컨텍스트를 참조하여 상기 예비 질의 컨텍스트에 추가하여 상기 질의 컨텍스트를 생성하는 질의 컨텍스트 생성부; 및
    생성된 상기 질의 컨텍스트를 반영하여, 상기 장기 컨텍스트 저장부에 저장된 상기 장기 컨텍스트를 재구성 및 학습하는 컨텍스트 학습부;를 포함하는 것을 특징으로 하는 대화 모델 기반의 질의응답 시스템.
  3. 제2 항에 있어서,
    상기 컨텍스트 관리부는,
    생성된 상기 질의 컨텍스트는 상기 단기 컨텍스트 저장부에 저장하고, 상기 질의 컨텍스트의 생성 여부 및 경과 시간을 고려하여 상기 현재 세션을 종료한 후에는 상기 단기 컨텍스트에 저장된 종료된 세션의 상기 질의 컨텍스트을 상기 장기 컨텍스트 저장부에 저장하는 질의 세션 관리부;를 더 포함하는 것을 특징으로 하는 대화 모델 기반의 질의응답 시스템
  4. 제1 항에 있어서,
    상기 컨텍스트 관리부에서 생성된 질의 컨텍스트를 검증하여, 상기 시스템 질의부에게 상기 질의 컨텍스트를 상기 시스템 질의로 변환하게 하거나, 상기 사용자 응답 생성부에게 상기 질의에 대한 추가적인 정보를 요청하는 자연어 형태인 상기 질문을 생성하게 하는 대화진행 계획부;를 더 포함하는 것을 특징으로 하는 대화 모델 기반의 질의응답 시스템.
  5. 제4 항에 있어서,
    상기 대화진행 계획부는,
    자연어 형태인 상기 응답과 상기 질문을 함께 생성하도록 하여, 상기 커뮤니케이터를 통하여, 상기 사용자에게 상기 응답과 상기 질문을 함께 제공하도록 하는 것을 특징으로 하는 대화 모델 기반의 질의응답 시스템.
  6. 제1 항에 있어서,
    상기 컨텍스트 관리부는, 상기 질의 컨텍스트를 우선 순위가 포함되는 복수개 생성하는 것을 특징으로 하는 대화 모델 기반의 질의응답 시스템.
  7. 제1 항에 있어서,
    상기 장기 컨텍스트가 포함하는 상기 사용자 모델은, 사용자의 프로필, 사용자의 선호도 및, 시간 및 공간에 대한 정보를 함께 가지는 것을 특징으로 하는 대화 모델 기반의 질의응답 시스템.
  8. 제2 항에 있어서,
    상기 예비 질의 컨텍스트 추출부는 상기 후보 질의 패턴을 복수개 선정하고,
    상기 질의 컨텍스트 생성부는, 상기 단기 컨텍스트, 및 상기 장기 컨텍스트를 참조하여, 복수개의 상기 후보 질의 패턴의 랭킹을 정하는 것을 특징으로 하는 대화 모델 기반의 질의응답 시스템.
  9. 네트워크를 통하여 자연어 형태인 사용자의 질의를 수신하고 응답을 송신하며, 상기 사용자와 대화형으로 질문과 대답을 주고받는 커뮤니케이터;
    자연어 형태인 상기 사용자의 질의에 대한 자연어 분석 결과를 생성하는 사용자 입력 전처리부;
    복수의 질의 패턴을 저장하는 질의 패턴 저장부, 현재 세션의 질의에 대한 대화 이력을 저장하는 단기 컨텍스트 저장부, 및 이전 세션의 질의에 대한 대화 이력 및 학습된 사용자 모델을 포함하는 장기 컨텍스트를 저장하는 장기 컨텍스트 저장부를 포함하는 컨텍스트 저장부;
    상기 자연어 분석 결과로부터 상기 질의 패턴 저장부에 저장된 상기 복수의 질의 패턴 중 복수개의 후보 질의 패턴을 선정하고, 상기 자연어 분석 결과로부터 추출된 패턴 요소를 상기 복수개의 후보 질의 패턴에 대응시켜 예비 질의 컨텍스트를 추출하는 예비 질의 컨텍스트 추출부;
    상기 단기 컨텍스트, 및 상기 장기 컨텍스트를 참조하여, 상기 예비 질의 컨텍스트가 가지는 상기 복수개의 후보 질의 패턴에 부족한 패턴 요소를 추가하고 상기 복수개의 후보 질의 패턴의 랭킹을 정하여 질의 컨텍스트를 생성하는 질의 컨텍스트 생성부;
    상기 질의 컨텍스트를 시스템 질의로 변환하여 지식 베이스에 전달하여, 상기 지식 베이스로부터 시스템 응답을 수신하는 시스템 질의부; 및
    상기 시스템 응답을 자연어 생성부를 참조하여, 자연어 형태인 상기 응답을 생성하는 사용자 응답 생성부;를 포함하는 대화 모델 기반의 질의응답 시스템.
  10. 제9 항에 있어서,
    상기 질의 컨텍스트 생성부에서 생성된 질의 컨텍스트를 검증하여, 상기 시스템 질의부에게 상기 질의 컨텍스트를 상기 시스템 질의로 변환하게 하거나, 상기 사용자 응답 생성부에게 상기 질의에 대한 추가적인 정보를 요청하는 자연어 형태인 상기 질문을 생성하게 하는 대화진행 계획부;를 더 포함하며,
    상기 대화 진행 계획부는, 상기 커뮤니케이터를 통하여 상기 사용자에게, 상기 응답을 제공하도록 하거나, 상기 질문을 제공하도록 하거나, 상기 응답과 상기 질문을 함께 제공하도록 결정하는 것을 특징으로 하는 대화 모델 기반의 질의응답 시스템.
KR1020170108844A 2017-08-28 2017-08-28 대화 모델 기반의 질의응답 시스템 KR102016602B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170108844A KR102016602B1 (ko) 2017-08-28 2017-08-28 대화 모델 기반의 질의응답 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170108844A KR102016602B1 (ko) 2017-08-28 2017-08-28 대화 모델 기반의 질의응답 시스템

Publications (2)

Publication Number Publication Date
KR20190023316A KR20190023316A (ko) 2019-03-08
KR102016602B1 true KR102016602B1 (ko) 2019-08-30

Family

ID=65800354

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170108844A KR102016602B1 (ko) 2017-08-28 2017-08-28 대화 모델 기반의 질의응답 시스템

Country Status (1)

Country Link
KR (1) KR102016602B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021100975A1 (ko) * 2019-11-18 2021-05-27 주식회사 오투오 대화형 정보 검색장치

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020197074A1 (ko) * 2019-03-27 2020-10-01 한국과학기술원 지식 학습을 위한 대화 에이전트의 대화 주도 방법 및 장치
KR102192796B1 (ko) * 2019-03-27 2020-12-18 한국과학기술원 지식 학습을 위한 대화 에이전트의 대화 주도 방법 및 장치
CN111414464B (zh) * 2019-05-27 2023-04-07 腾讯科技(深圳)有限公司 一种问题生成方法、装置、设备及存储介质
KR102280792B1 (ko) * 2019-11-07 2021-07-22 주식회사 솔트룩스 대화 재구성 기반의 질의 응답 시스템
KR102326745B1 (ko) * 2020-02-10 2021-11-16 백기락 플랫폼 서비스의 로그인을 위한 제어 방법, 장치 및 시스템
WO2021261617A1 (ko) * 2020-06-25 2021-12-30 한국과학기술원 대화 의도 실시간 분석 방법
CN117114695B (zh) * 2023-10-19 2024-01-26 本溪钢铁(集团)信息自动化有限责任公司 基于钢铁行业智能客服的交互方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120104650A (ko) * 2011-02-25 2012-09-24 주식회사 솔트룩스 Rdf에 기반한 지리공간정보의 sparql 질의 처리 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021100975A1 (ko) * 2019-11-18 2021-05-27 주식회사 오투오 대화형 정보 검색장치

Also Published As

Publication number Publication date
KR20190023316A (ko) 2019-03-08

Similar Documents

Publication Publication Date Title
KR102016602B1 (ko) 대화 모델 기반의 질의응답 시스템
US10997371B2 (en) Automatic response server device, terminal device, response system, response method, and program
WO2019174428A1 (zh) 答复信息的获取方法及装置
CN103198155B (zh) 一种基于移动终端的智能问答交互系统及方法
CN108345692A (zh) 一种自动问答方法和系统
US20180075014A1 (en) Conversational artificial intelligence system and method using advanced language elements
CN105512228A (zh) 一种基于智能机器人的双向问答数据处理方法和系统
JPH02302876A (ja) 対話型言語解析装置
US10979242B2 (en) Intelligent personal assistant controller where a voice command specifies a target appliance based on a confidence score without requiring uttering of a wake-word
EP3610375B1 (en) Platform selection for performing requested actions in audio-based computing environments
KR20110083544A (ko) 성장형 개인 단어 데이터베이스 시스템을 이용한 언어 학습 장치 및 방법
US20150220864A1 (en) System and method for providing crowd sourcing platform for task allocation
Zeng et al. Overview of the NTCIR-14 short text conversation task: Dialogue quality and nugget detection subtasks
CN109145168A (zh) 一种专家服务机器人云平台
KR101849750B1 (ko) 대화형 자동 질의응답 시스템
US20230352017A1 (en) Platform selection for performing requested actions in audio-based computing environments
KR101739539B1 (ko) 지식 베이스의 검증 및 교정 시스템 및 방법
CN104933121A (zh) 一种用于外语学习、语言能力测试的方法、装置和系统
CN109739969A (zh) 答案生成方法和智能会话系统
JP5545489B2 (ja) 学習システム、シミュレーション装置、および学習方法
KR102102201B1 (ko) 장례 절차 관련 질의응답 서비스 제공 장치 및 방법
KR102016603B1 (ko) 온톨로지 기반의 대화 시스템
CN110837549B (zh) 一种信息处理方法、装置及存储介质
Lola et al. Chatbot for fitness management using IBM Watson
US20160314701A1 (en) Method and system for managing a wordgraph

Legal Events

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