KR102358485B1 - 도메인 자동 분류 대화 시스템 - Google Patents

도메인 자동 분류 대화 시스템 Download PDF

Info

Publication number
KR102358485B1
KR102358485B1 KR1020190136910A KR20190136910A KR102358485B1 KR 102358485 B1 KR102358485 B1 KR 102358485B1 KR 1020190136910 A KR1020190136910 A KR 1020190136910A KR 20190136910 A KR20190136910 A KR 20190136910A KR 102358485 B1 KR102358485 B1 KR 102358485B1
Authority
KR
South Korea
Prior art keywords
domain
dialogue
corpus
cluster
word embedding
Prior art date
Application number
KR1020190136910A
Other languages
English (en)
Other versions
KR20210051523A (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 KR1020190136910A priority Critical patent/KR102358485B1/ko
Publication of KR20210051523A publication Critical patent/KR20210051523A/ko
Application granted granted Critical
Publication of KR102358485B1 publication Critical patent/KR102358485B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • 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
    • 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/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • 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)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

도메인 자동 분류 대화 시스템을 제공한다. 본 발명에 따른 복수의 도메인 자동 분류 대화 시스템은, 네트워크를 통하여 사용자로부터 입력 문장을 수신하고, 입력 문장에 대한 출력 문장을 사용자에게 송신하는 유저 인터페이스; 엔티티들을 벡터로 생성하도록 워드 임베딩을 수행하는 제1 워드 임베딩 모듈 및 벡터화된 엔티티들을 클러스터링하는 클러스터링 모듈을 포함하는 클러스터 생성부; 대화 말뭉치를 이루는 복수의 대화를 이루는 엔티티들을 제1 워드 임베딩 모듈에서 워드 임베딩한 벡터들 전체를 대상으로 클러스터링 생성부에서 클러스터링을 하여 생성된 복수의 대화 클러스터를 저장하는 대화 말뭉치 클러스터 저장부; 복수의 대화 클러스터 중, 대화 말뭉치를 이루는 복수의 대화 각각을 이루는 엔티티들를 워드 임베딩한 벡터들에 대응하는 대화 클러스터로 이루어지는 복수의 대화에 대한 대화별 클러스터와 도메인을 각각 입력과 출력으로 사용하여 도메인 분류 예측 모델을 학습시키는 도메인 분류 학습기를 포함하는 도메인 분류 학습부, 및 복수의 대화 클러스터 중 제1 워드 임베딩 모듈에서 입력 문장을 이루는 엔티티들을 워드 임베딩한 벡터들에 대응하는 복수의 클러스터 키로 이루어지는 입력 문장 클러스터을 이용하여 입력 문장에 대한 도메인을 판단하는 도메인 판단부를 포함한다.

Description

도메인 자동 분류 대화 시스템{Dialogue system by automatic domain classfication}
본 발명은 대화 시스템에 관한 것으로, 자세하게는 대화 도메인을 자동으로 분류하는 도메인 자동 분류 대화 시스템에 관한 것이다.
본 발명은 산업자원통상부 로봇산업핵심기술개발사업-인공지능융합로봇시스템기술의 일환으로 (주)아이피엘에서 주관하고, (주)솔트룩스에서 수행된 연구로부터 도출된 것이다. [연구기간: 2019.01.01.~2019.12.31., 연구관리 전문기관: 한국산업기술평가관리원, 연구과제명: 가정용 소셜로봇 및 서비스 개발 시스템, 과제 고유번호: 10077633]
대화 시스템은 사용자의 발언(utterance)에 응답하여 시스템의 발언을 생성 및 제공하는 시스템으로, 대화 시스템은 특정 대화 도메인(이하, 도메인이라 함)이나 상황에서 가능한 대화 환경을 제공하기 위한 도메인 대화 모델이 함께 제공된다. 사용자의 발언에 적합한 도메인이 파악되지 않는 경우, 사용자의 의도에 맞는 시스템의 발언의 생성 및 제공에 어려움이 발생할 수 있다.
본 발명의 기술적 과제는, 사용자의 발언으로부터 적합한 도메인을 파악할 수 있는, 도메인 자동 분류 대화 시스템을 제공하는 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 기술적 사상의 일측면에 따른 도메인 자동 분류 대화 시스템은, 네트워크를 통하여 사용자로부터 입력 문장을 수신하고, 상기 입력 문장에 대한 출력 문장을 상기 사용자에게 송신하는 유저 인터페이스; 엔티티들을 벡터로 생성하도록 워드 임베딩을 수행하는 제1 워드 임베딩 모듈, 및 벡터화된 상기 엔티티들을 클러스터링하는 클러스터링 모듈을 포함하는 클러스터 생성부; 대화 말뭉치를 이루는 복수의 대화를 이루는 엔티티들을 상기 제1 워드 임베딩 모듈에서 워드 임베딩한 벡터들 전체를 대상으로 상기 클러스터링 생성부에서 클러스터링을 하여 생성된 복수의 대화 클러스터를 저장하는 대화 말뭉치 클러스터 저장부; 상기 복수의 대화 클러스터 중, 상기 대화 말뭉치를 이루는 복수의 대화 각각을 이루는 엔티티들를 워드 임베딩한 벡터들에 대응하는 대화 클러스터로 이루어지는 상기 복수의 대화에 대한 대화별 클러스터와 도메인을 각각 입력과 출력으로 사용하여 도메인 분류 예측 모델을 학습시키는 도메인 분류 학습기를 포함하는 도메인 분류 학습부; 및 상기 복수의 대화 클러스터 중, 상기 제1 워드 임베딩 모듈에서 상기 입력 문장을 이루는 엔티티들을 워드 임베딩한 벡터들에 대응하는 복수의 클러스터 키로 이루어지는 입력 문장 클러스터을 이용하여 상기 입력 문장에 대한 도메인을 판단하는 도메인 판단부;를 포함한다.
대화 말뭉치를 이루는 복수의 대화를 도메인 별로 분류하여 복수의 도메인 대화 말뭉치를 생성하는 도메인 분류부; 상기 복수의 도메인 대화 말뭉치 각각을 이루는 엔티티들을 워드 임베딩하여 복수의 도메인 워드 임베딩을 생성하는 제2 워드 임베딩 모듈; 상기 복수의 도메인 워드 임베딩 각각에 대하여 복수의 도메인 대화 모델을 생성하는 대화 모델 생성부;를 포함하는 대화 말뭉치 도메인 관리부를 더 포함할 수 있다.
상기 출력 문장은, 복수의 도메인 대화 모델 중, 상기 도메인 판단부에서 판단된 상기 입력 문장 클러스터에 대한 도메인에 해당하는 도메인 대화 모델에서 생성될 수 있다.
상기 제2 워드 임베딩 모듈은, 예측 기반으로 워드 임베딩을 수행할 수 있다. 상기 제2 워드 임베딩 모듈은, Word2Vec 또는 글로브(Global Vectors for Word Representation, GloVe)를 기반으로 워드 임베딩을 수행할 수 있다.
상기 도메인 분류 학습부는, 상기 입력 문장에 대한 도메인을 판단 결과에 대한 상기 사용자의 피드백을 저장하는 도메인 분류 로그;를 더 포함하며, 상기 도메인 분류 모델 학습기는, 상기 도메인 분류 로그에 저장된 상기 사용자의 피드백을 사용하여 상기 도메인 분류 예측 모델을 재생성하거나 업데이트할 수 있다.
상기 대화 도메인 말뭉치 분류부는, 상기 도메인 상기 도메인 분류 로그에 저장된 상기 사용자의 피드백이 도메인이 올바르게 분류된 것일 경우, 상기 입력 문장을 상기 복수의 도메인 대화 말뭉치 중 해당하는 도메인에 대한 도메인 대화 말뭉치에 저장할 수 있다.
상기 제1 워드 임베딩 모듈은, 미리 학습된 언어 모형으로 워드 임베딩을 수행할 수 있다.
상기 제1 워드 임베딩 모듈은, ELMo(Embeddings from Language Model) 기반의 워드 임베딩을 수행할 수 있다.
상기 클러스터링 생성부는, 밀도 기반 클러스터링을 할 수 있다.
상기 클러스터링 생성부는, DBSCAN(Density-based spatial clustering of applications with noise) 방식으로 클러스터링을 할 수 있다.
본 발명에 따른 도메인 자동 분류 대화 시스템은, 사용자의 입력 문장에 대하여 미리 학습된 언어 모형으로 워드 임베딩을 수행하여, 엔티티를 벡터로 생성하고, 대화 말뭉치 클러스터를 이루는 복수의 대화 클러스터 중 입력 문장을 이루는 단어인 엔티티를 워드 임베딩한 벡터들 각각에 대응하는 대화 클러스터인 복수의 클러스터 키로 이루어지는 입력 문장 클러스터를 생성한 후, 도메인 분류 예측 모델에서 입력 문장 클러스터를 입력으로 사용하여, 입력 문장에 대한 도메인을 분류하여 출력으로 제공한다.
입력 문장에 대한 워드 임베딩을 수행하는 과정에서, 서로 다른 도메인에서 다른 의미를 갖는 같은 표기의 단어를 하나의 벡터로 만들어버리는 문제를 해결하기 위하여, 미리 학습된 언어 모형, 예를 들면, ELMo 기반의 워드 임베딩을 수행하여, 엔티티를 벡터로 생성하여, 문맥에 따라서 다르게 워드 임베딩을 할 수 있다. 또한, 밀도 기반 클러스터링을 하여 생성한 복수의 대화 클러스터에 대응하는 복수의 클러스터 키로 이루어지는 입력 문장 클러스터를 생성하여 도메인 분류를 수행한다.
따라서 본 발명에 따른 도메인 자동 분류 대화 시스템은, 오픈 도메인 환경에서 입력 문장이 주어졌을 때도, 입력 문장의 도메인을 판단하여, 알맞은 출력 문장을 생성할 수 있다.
도 1은 본 발명의 예시적 실시 예에 따른 도메인 자동 분류 대화 시스템을 나타내는 블록도이다.
도 2는 본 발명의 예시적 실시 예에 따른 도메인 자동 분류 대화 시스템의 클러스터 생성부에서 생성된 대화 말뭉치 클러스터를 설명하기 위한 개념도이다.
도 3은 본 발명의 예시적 실시 예에 따른 도메인 자동 분류 대화 시스템에서 도메인 분류 예측 모델을 생성하는 과정을 설명하기 위한 블록도이다.
도 4는 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템의 클러스터 생성부에서 사용자의 입력 문장에 대한 클러스터를 생성하는 과정을 설명하기 위한 블록도이다.
도 5는 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템의 자연어 이해부의 주요 구성을 나타내는 블록도이다.
도 6은 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템의 대화 말뭉치 도메인 관리부의 주요 구성을 나타내는 블록도이다.
도 7은 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템에서 도메인 자동 분류를 하는 과정을 설명하기 위한 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수개의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하 도면 및 설명에서, 하나의 블록, 예를 들면, '~부' 또는 '~모듈'로 표시 또는 설명되는 구성요소는 하드웨어 블록 또는 소프트웨어 블록일 수 있다. 예를 들면, 구성요소들 각각은 서로 신호를 주고 받는 독립적인 하드웨어 블록일 수도 있고, 또는 하나의 프로세서에서 실행되는 소프트웨어 블록일 수도 있다.
본 발명의 구성 및 효과를 충분히 이해하기 위하여, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예들을 설명한다.
도 1은 본 발명의 예시적 실시 예에 따른 도메인 자동 분류 대화 시스템을 나타내는 블록도이다.
도 1을 참조하면, 도메인 자동 분류 대화 시스템(1, 이하 대화 시스템)은, 네트워크(20)를 통하여 사용자(10)로부터 발언(utterance)을 수신하고, 사용자에게 대화 시스템(1)의 발언을 송신하는 유저 인터페이스(UI, 100)를 포함한다. 네트워크(20)는 유선 인터넷 서비스, 근거리 통신망(LAN), 광대역 통신망(WAN), 인트라넷, 무선 인터넷 서비스, 이동 컴퓨팅 서비스, 무선 데이터 통신 서비스, 무선 인터넷 접속 서비스, 위성 통신 서비스, 무선 랜, 블루투스 등 유/무선을 통하여 데이터를 주고 받을 수 있는 것을 모두 포함할 수 있다. 네트워크(20)가 스마트폰 또는 태블릿 등과 연결되는 경우, 네트워크(20)는 3G, 4G, 5G 등의 무선 데이터 통신 서비스, 와이파이(Wi-Fi) 등의 무선 랜, 블루투스 등일 수 있다.
유저 인터페이스(100)는 사용자(10)가 사용하는 단말기 등을 통하여 대화 시스템(1)에 엑세스하기 위한 인터페이스를 제공할 수 있다. 사용자(10)는 유저 인터페이스(100)를 통하여 사용자(10)의 발언을 대화 시스템(1)에 전송할 수 있고, 유저 인터페이스(100)를 통하여 사용자(10)의 발언에 대한 대화 시스템(1)의 발언을 전달받을 수 있다. 발언(utterance)은 대화 과정에서 사용자(10) 또는 대화 시스템(1)이 상대에게 전달하고자 하는 문장이다. 사용자(10)의 발언은 입력 문장(30)이라 호칭할 수 있고, 대화 시스템(1)의 발언은 출력 문장(40)이라 호칭할 수 있다. 사용자(10)의 발언인 입력 문장(30)이 질의인 경우, 대화 시스템(1)의 발언인 출력 문장(40)은 질의에 대한 응답일 수 있다.
대화 시스템(1)은 유저 인터페이스(100)와 연결되어, 입력 문장(30)을 수신하는 클러스터 생성부(200)를 포함한다. 클러스터 생성부(200)는 자연어 이해부(800)를 참조하여, 자연어 처리가 수행되어 컴퓨터가 읽을 수 있는 형태로 처리된 입력 문장(30)을 수신할 수 있다. 자연어 처리는 대상 어절을 최소의 의미 단위인 형태소로 분석하는 형태소 분석 과정, 이렇게 분석된 형태소 결과 중 가장 적합한 형태의 품사를 선택하는 과정으로서 문맥 좌우에 위치한 중의성 해소의 힌트가 되는 정보를 이용해서 적합한 분석 결과를 선택하는 품사 부착 과정, 명사구, 동사구, 부사구 등의 덩어리를 분석하는 구 단위 분석 과정, 중문, 복문 등의 문장을 단문 단위로 분해하는 절 단위 분석 과정, 및 문장을 이루고 있는 구성 성분 간 위계 관계를 분석하여 문장의 구조를 결정하는 구문 분석 과정을 포함할 수 있다. 또한, 클러스터 생성부(200)는 대화 말뭉치 저장부(700)로부터 대화 말뭉치 저장부(700)가 가지는 대화들을 수신할 수 있다.
말뭉치란, 언어 연구를 위해 텍스트들을 컴퓨터가 읽을 수 있는 형태로 모아 놓은 언어 자료를 의미하며, 대화 말뭉치는 복수의 대화를 컴퓨터가 읽을 수 있는 형태로 모아 놓은 언어 자료를 의미한다.
대화 말뭉치 저장부(700)는 복수의 대화로 이루어지는 대화 말뭉치이 저장될 수 있다. 대화 말뭉치 저장부(700)는 대화 말뭉치를 이루는 각각의 대화 및 해당 대화의 도메인을 함께 저장할 수 있다. 즉, 대화 말뭉치 저장부(700)에 저장된 대화 말뭉치를 이루는 각각의 대화는, 해당 대화에 대하여 분류된 도메인이 함께 저장될 수 있다.
일부 실시 예에서, 대화 말뭉치 저장부(700)는 대화 시스템(1)의 외부에 존재하는 대화 말뭉치에 대한 정보를 저장할 수 있으며, 대화 말뭉치 저장부(700)는 저장된 외부에 존재하는 대화 말뭉치에 대한 정보를 참조하여, 네트워크(20)를 통하여 외부에 존재하는 대화 말뭉치에 억세스하여, 외부에 존재하는 대화 말뭉치를 이루는 대화들을 대화 시스템(1)에서 이용할 수 있도록 불러들이거나, 대화 말뭉치 저장부(700) 내에 저장해 놓을 수 있다.
클러스터 생성부(200)는 대화 말뭉치 저장부(700)에 저장된 대화 말뭉치를 클러스터링하여 복수의 대화 클러스터(도 2의 CL)로 이루어지는 대화 말뭉치 클러스터를 생성하여 대화 말뭉치 클러스터 저장부(250)에 저장할 수 있다. 클러스터 생성부(200)는 대화 말뭉치 저장부(700)에 저장된 대화 말뭉치를 이루는 복수의 대화 각각을 이루는 단어인 엔티티(entity)들을 벡터로 워드 임베딩한 후, 복수의 대화로 이루어지는 대화 말뭉치에 대한 벡터화된 엔티티들 전체를 대상으로 클러스터링을 하여, 복수의 대화 클러스터(CL)를 생성할 수 있다.
클러스터 생성부(200)는 입력 문장(30)을 클러스터링하여 입력 문장 클러스터(350)를 생성할 수 있다. 클러스터 생성부(200)는 입력 문장(30)을 이루는 단어인 엔티티(entity)들을 벡터로 워드 임베딩한 후, 입력 문장 클러스터(350)를 생성할 수 있다. 구체적으로, 클러스터 생성부(200)는 대화 말뭉치 클러스터 저장부(250)에 저장된 복수의 대화 클러스터(CL)를 참조하여, 입력 문장(30)에 대한 벡터화된 엔티티들에 대응하는 대화 클러스터(CL)를 선정하여 입력 문장 클러스터(350)를 생성할 수 있다.
클러스터 생성부(200)는 미리 학습된 언어 모형으로 워드 임베딩을 수행하여, 엔티티를 벡터로 생성할 수 있다. 예를 들면, 클러스터 생성부(200)는 ELMo(Embeddings from Language Model) 기반의 워드 임베딩을 수행하여, 엔티티를 벡터로 생성할 수 있다. ELMo 기반의 워드 임베딩은 기존의 워드 임베딩, 예를 들면 예측 기반으로 워드 임베딩이 서로 다른 도메인에서 다른 의미를 갖는 같은 표기의 단어를 하나의 벡터로 만들어버리는 문제를 해결하기 위하여, 문맥에 따라서 다르게 워드 임베딩을 할 수 있다.
클러스터 생성부(200)는 복수의 대화로 이루어지는 대화 말뭉치에 대한 벡터화된 엔티티들 전체를 대상으로 밀도 기반 클러스터링을 하여, 복수의 대화 클러스터(CL)를 생성할 수 있다. 예를 들면, 클러스터 생성부(200)는 DBSCAN(Density-based spatial clustering of applications with noise) 방식으로 복수의 대화로 이루어지는 대화 말뭉치에 대한 벡터화된 엔티티들 전체를 대상으로 클러스터링을 하여, 복수의 대화 클러스터(CL)를 생성할 수 있다.
클러스터 생성부(200)에서 대화 말뭉치를 이루는 복수의 대화 각각 또는 입력 문장(30)을 벡터로 워드 임베딩하면, 복수의 대화 각각 또는 입력 문장(30)은, 대화 또는 입력 문장(30)을 이루는 단어인 엔티티를 워드 임베딩한 벡터들로 이루어지는 문장 벡터(sentence vector)로 변환될 수 있다.
대화 말뭉치 클러스터를 이루는 복수의 대화 클러스터(CL) 중, 입력 문장(30)을 이루는 단어인 엔티티를 워드 임베딩한 벡터들 각각에 대응하는 대화 클러스터(CL)를 클러스터 키(cluster key)라 호칭할 수 있다. 입력 문장 클러스터(350)는 입력 문장(30)에 대한 문장 벡터를 이루는 벡터들 각각에 대응하는 복수의 클러스터 키(클러스터 1, 클러스터 2, ..., 클러스터 K)로 이루어질 수 있다.
도메인 판단부(500)는 도메인 분류 학습부(400)가 가지는 도메인 분류 예측 모델(420)을 참조하여, 입력 문장 클러스터(350)의 도메인을 판단할 수 있다. 도메인 도메인 분류 학습부(400)는 대화 말뭉치 클러스터 저장부(250)에 저장된 대화 말뭉치 클러스터 및 각 대화의 도메인을 학습하여 도메인 분류 예측 모델(420)을 생성할 수 있다. 도메인 분류 학습부(400)에서 도메인 분류 예측 모델(420)을 생성하는 방법은 도 3을 통하여 자세히 설명하도록 한다.
입력 문장 클러스터(350)을 이용하여 도메인 판단부(500)에서 도메인이 판단된 입력 문장(30)의 워드 임베딩된 결과를 대화 말뭉치 도메인 관리부(600)에 대입하여, 입력 문장(30)에 대한 대화 시스템(1)의 발언이 생성될 수 있으며, 대화 시스템(1)의 발언은 자연어 생성부(900)를 참조하여 출력 문장(40)으로 생성되며, 출력 문장(40)을 유저 인터페이스(100)에서 네트워크(20)을 통하여 사용자(10)에게 제공될 수 있다.
대화 말뭉치 도메인 관리부(600)는 대화 말뭉치 저장부(700)에 저장된 대화 말뭉치가 포함하는 복수의 대화를 도메인 별로 분류하여, 도메인 별로 워드 임베딩하고, 도메인 별로 대화 모델을 생성하여 그 결과를 저장해서 가질 수 있다. 대화 말뭉치 도메인 관리부(600)는 예측 기반으로 워드 임베딩을 수행하여, 대화 말뭉치 저장부(700)에 저장된 대화 말뭉치가 포함하는 복수의 대화를 도메인 별로 워드 임베딩할 수 있다. 예를 들면, 대화 말뭉치 도메인 관리부(600)는 Word2Vec 또는 글로브(Global Vectors for Word Representation, GloVe)를 기반으로 워드 임베딩을 수행하여, 대화 말뭉치 저장부(700)에 저장된 대화 말뭉치가 포함하는 복수의 대화를 도메인 별로 워드 임베딩할 수 있다. 또한, 대화 말뭉치 도메인 관리부(600)는 도메인 별로 워드 임베딩된 대화들을 사용하여, 도메인별 대화모델을 생성할 수 있다.
도메인 판단부(500)에서 도메인이 판단된 입력 문장(30)의 워드 임베딩된 결과는, 대화 말뭉치 도메인 관리부(600)가 가지는 해당 도메인에 대한 대화모델을 사용하여 입력 문장(30)에 대한 대화 시스템(10)의 발언이 생성될 수 있다.
도 2는 본 발명의 예시적 실시 예에 따른 도메인 자동 분류 대화 시스템의 클러스터 생성부에서 생성된 대화 말뭉치 클러스터를 설명하기 위한 개념도이다.
도 2를 참조하면, 대화 말뭉치 클러스터 저장부(250)는 복수의 대화 클러스터(CL)를 저장할 수 있다. 복수의 대화 클러스터(CL)는 복수의 대화로 이루어지는 대화 말뭉치에 대한 벡터화된 엔티티들 전체를 대상으로 밀도 기반 클러스터링을 하여 생성될 수 있다. 예를 들면, 복수의 대화 클러스터(CL)는 DBSCAN 방식으로 복수의 대화로 이루어지는 대화 말뭉치에 대한 벡터화된 엔티티들 전체를 대상으로 클러스터링을 하여 생성될 수 있다.
DBSCAN 방식으로 복수의 대화 클러스터(CL)로 클러스터링된 벡터화된 엔티티들은 대화 말뭉치에 속한 각각의 어휘들의 의미에 따라서 유사한 의미를 지닌 어휘들끼리 클러스터 갯수를 따로 지정하지 않아도 대화 클러스터(CL)를 형성할 수 있게 된다. 이는 설정된 반경거리 이내의 벡터화된 엔티티들가 아니면, 다른 클러스터를 형성하기 때문에 의미가 전혀 다르지만 설정된 클러스터 개수 때문에 벡터 공간상 거리가 최대한 가까운 임베딩 벡터들을 묶어버려, 각각의 클러스터가 가지는 의미를 해치게 되는 문제점을 보완할 수 있다.
도 3은 본 발명의 예시적 실시 예에 따른 도메인 자동 분류 대화 시스템에서 도메인 분류 예측 모델을 생성하는 과정을 설명하기 위한 블록도이다.
도 3을 참조하면, 대화 말뭉치 저장부(700)는 복수의 대화를 이루는 각각의 대화(대화X) 및 해당 대화의 도메인(도메인Y)을 함께 저장할 수 있다. 즉, 대화 말뭉치 저장부(700)는 도메인을 알고 있는 복수의 대화를 저장할 수 있다.
클러스터 생성부(200)는 제1 워드 임베딩 모듈(210) 및 클러스터링 모듈(220)을 포함할 수 있다. 여기에서 제1 워드 임베딩 모듈(210)은 대화 말뭉치 도메인 관리부(도 6의 600)가 포함하는 제2 워드 임베딩 모듈(도 6의 630)과의 구분이 필요없는 경우에는 워드 임베딩 모듈이라고도 호칭할 수 있다.
제1 워드 임베딩 모듈(210)은 미리 학습된 언어 모형으로 워드 임베딩을 수행하여, 엔티티를 벡터로 생성할 수 있다. 예를 들면, 제1 워드 임베딩 모듈(210)은 ELMo(Embeddings from Language Model) 기반의 워드 임베딩을 수행하여, 엔티티를 벡터로 생성할 수 있다. ELMo 기반의 워드 임베딩은 기존의 워드 임베딩, 예를 들면 예측 기반으로 워드 임베딩이 서로 다른 도메인에서 다른 의미를 갖는 같은 표기의 단어를 하나의 벡터로 만들어버리는 문제를 해결하기 위하여, 문맥에 따라서 다르게 워드임 베딩을 할 수 있다.
제1 워드 임베딩 모듈(210)은 대화 말뭉치 저장부(700)에 저장된 대화 말뭉치를 이루는 복수의 대화 각각을 이루는 단어인 엔티티(entity)들을 벡터로 워드 임베딩할 수 있다.
클러스터링 모듈(220)은, 벡터화된 엔티티들에 대하여 밀도 기반 클러스터링을 할 수 있다. 예를 들면, 클러스터링 모듈(220)는 DBSCAN(Density-based spatial clustering of applications with noise) 방식으로 벡터화된 엔티티들에 대하여 클러스터링을 할 수 있다.
클러스터링 모듈(220)은, 제1 워드 임베딩 모듈(210)에서 생성한 대화 말뭉치 저장부(700)에 저장된 복수의 대화로 이루어지는 대화 말뭉치에 대한 벡터화된 엔티티들 전체를 대상으로 밀도 기반 클러스터링을 하여, 복수의 대화 클러스터(도 2의 CL)를 생성하여, 대화 말뭉치 클러스터 저장부(250)에 저장할 수 있다.
대화별 클러스터 조합부(280)는 대화 말뭉치를 이루는 복수의 대화 각각을 이루는 단어인 엔티티를 포함하는 대화 클러스터(CL), 즉 클러스터 키로 대체하여 복수의 클러스터 키로 이루어지는 대화별 클러스터를 생성하여, 복수의 대화 각각에 대한 대화별 클러스터와 도메인의 쌍으로 이루어지는 질의 유형 학습 셋(410)을 생성한다.
도메인 분류 학습부(400)는 질의 유형 학습 셋(410)을 이용하여 도메인 분류 예측 모델(420)을 생성하도록 학습하는 도메인 분류 모델 학습기(450)를 포함한다. 도메인 분류 예측 모델(420)은 관리자로부터 입력되어 기설정된 도메인 분류 동작 규칙(430)을 기반으로, 도메인 분류를 수행할 수 있다. 도메인 분류 로그(490)는 도메인 분류에 대한 사용자(도 1의 10)의 피드백을 저장할 수 있다.
즉, 도메인 분류 학습기(450)는 복수의 클러스터 키로 이루어지는 대화별 클러스터, 및 도메인을 각각 입력, 및 출력으로 사용하여, 도메인 분류 예측 모델(420)을 생성할 수 있다. 따라서, 도메인 분류 예측 모델(420)은 도 1에 보인 입력 문장 클러스터(350)를 입력으로 사용하여, 입력 문장(도 1의 30)에 대한 도메인을 분류할수 있다.
도 4는 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템의 클러스터 생성부에서 사용자의 입력 문장에 대한 클러스터를 생성하는 과정을 설명하기 위한 블록도이다.
도 4를 참조하면, 사용자(10)로부터 네트워크(20)를 통해서 유저 인터페이스(100)가 수신한 입력 문장(30)은 자연어 이해부(800)를 참조하여 자연어 처리가 수행되어, 컴퓨터가 읽을 수 있는 형태로 처리되어 클러스터링 생성부(200)에 에 전달된다.
클러스터 생성부(200)의 제1 워드 임베딩 모듈(210)은 입력 문장(30)을 이루는 단어인 엔티티(entity)들을 벡터로 워드 임베딩한 후, 클러스터링 모듈(220)에서 대화 말뭉치 클러스터 저장부(250)에 저장된 복수의 대화 클러스터(도 2의 CL)를 참조하여, 입력 문장(30)에 대한 벡터화된 엔티티들에 대응하는 대화 클러스터(CL)를 선정하여 입력 문장 클러스터(350)를 생성할 수 있다.
제1 워드 임베딩 모듈(210)은 미리 학습된 언어 모형으로 워드 임베딩을 수행하여, 엔티티를 벡터로 생성할 수 있다. 예를 들면, 제1 워드 임베딩 모듈(210)는 ELMo(Embeddings from Language Model) 기반의 워드 임베딩을 수행하여, 엔티티를 벡터로 생성할 수 있다. ELMo 기반의 워드 임베딩은 기존의 워드 임베딩, 예를 들면 예측 기반으로 워드 임베딩이 서로 다른 도메인에서 다른 의미를 갖는 같은 표기의 단어를 하나의 벡터로 만들어버리는 문제를 해결하기 위하여, 문맥에 따라서 다르게 워드 임베딩을 할 수 있도록 하는 방법이다.
클러스터링 모듈(220)은 입력 문장(30)에 대한 벡터화된 엔티티들에 대응되는 복수의 대화 클러스터(CL)를 선정하여, 입력 문장 클러스터(350)를 생성할 수 있다. 따라서 입력 문장 클러스터(350)를 이루는 복수의 클러스터 키(클러스터 1, 클러스터 2, ..., 클러스터 K)는 로 이루어질 수 있다. 따라서, 입력 문장 클러스터(350)를 이루는 복수의 클러스터 키(클러스터 1, 클러스터 2, ..., 클러스터 K)는 밀도 기반 클러스터링을 한 것과 유사한 클러스터링 결과를 가질 수 있다.
즉, 입력 문장(30)에 대한 벡터화된 엔티티들만으로는, 밀도 기반 클러스터링을 하기에는 벡터화된 엔티티들의 개수가 적을 수 있다. 그러나, 클러스터링 모듈(220)은 입력 문장(30)에 대한 벡터화된 엔티티들에 대응하는, 밀도 기반 클러스터링을 하여 얻어진 복수의 대화 클러스터(CL)을 선정하므로, 입력 문장 클러스터(350)를 이루는 복수의 클러스터 키(클러스터 1, 클러스터 2, ..., 클러스터 K)는 밀도 기반 클러스터링을 한 것과 유사한 클러스터링 결과를 가질 수 있다.
도 5는 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템의 자연어 이해부의 주요 구성을 나타내는 블록도이다.
도 5를 참조하면, 자연어 이해부(800)는 유저 인터페이스(100)가 수신한 자연어 형태의 입력 문장(30)을 해석하는 자연어 분석부(810)를 포함할 수 있다. 자연어 분석부(810)는 형태소 분석부(811), 구문 분석부(812), 개체명 분석부(813), 필터링 분석부(814), 의도 분류부(815), 도메인 분석부(816) 및 시맨틱 롤 라벨링부(SRL, 817)를 포함할 수 있다.
형태소 분석부(811)는 입력 문장(30)을 최소의 의미 단위인 형태소 단위로 분리할 수 있다. 구문 분석부(812) 및 개체명 분석부(813)는 각각 형태소 단위로 분리된 입력 문장(30)에 대한 구문 분석 및 개체명 분석을 할 수 있다.
구문 분석부(812)에서는 형태소 분석 결과 중 가장 적합한 형태의 품사를 선택하는 과정으로서 문맥 좌우에 위치한 중의성 해소의 힌트가 되는 정보를 이용해서 적합한 분석 결과를 선택하는 품사 부착 과정, 명사구, 동사구, 부사구 등의 덩어리를 분석하는 구 단위 분석 과정, 중문, 복문 등의 문장을 단문 단위로 분해하는 절 단위 분석 과정, 및 문장을 이루고 있는 구성 성분 간 위계 관계를 분석하여 문장의 구조를 결정하는 구문 분석 과정이 수행될 수 있다.
필터링 분석부(814)는 입력 문장(30) 중 불필요한 피쳐를 제거하여 간결화된 문장을 생성할 수 있다.
의도 분류부(815) 및 도메인 분석부(816)는 필터링 분석부(814)에서 생성한 간결화된 문장을 기초로 의미 역할이 부여된 질의의 의도 분류 및 도메인 분석을 할 수 있다. 의도 분류부(815)는, 입력 문장(30)에 대한 자연어 처리 결과로부터 의도를 검출할 수 있다. 의도란 발언의 의도로 사용되며, 하나의 의도에는 다수의 의역된(paraphrasing) 문장들을 설정할 수 있다. 의도 검출(Intent Classification 또는 Intent Detect)이란 특정 문장에 대한 의미를 결정하기 위해 대화 과정에서 설정된 의도 중 유사도가 높은 문장을 찾는 과정을 말한다.
도메인 분석부(816)에서 수행되는 도메인 분석은, 도메인 분류 예측 모델(도 1의 420)에서, 입력 문장(30)에 대한 도메인 분류를 수행하는 과정에서 참조될 수 있다. 시맨틱 롤 라벨링부(SRL, 817)은 입력 문장(30)에 대한 의미 역할을 부여할 수 있다. 시맨틱 롤 라벨링이란, 입력 문장(30)의 형태소들에, E(Entity), P(Property), Q(Quntity), C(Class Information, 클래스 정보) 등과 같은 라벨(label)이 부여하는 것을 의미할 수 있다.
자연어 이해부(800)는 자연어 분석부(810)에서 수행된 자연어 처리 결과를 받아서, 입력 문장(30)에 대한 분류를 수행하는 질의 분류부(820)를 더 포함할 수 있다. 질의 분류부(820)는 입력 문장(30)에 대한 시맨틱 패턴 정보를 생성할 수 있다. 시맨틱 패턴은, 입력 문장(30) 전체에 대한 라벨의 구성, 예를 들면, EP(Entity, Property) 패턴, EPP(Entity, 2 Property) 패턴, EPQ(Entity, Property, Quntity) 패턴 등을 의미할 수 있다. 질의 분류부에서 생성한 시맨틱 패턴 정보는 입력 문장(30)에 대한 출력 문장(40)을 생성하는데에 사용될 수 있다.
도 6은 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템의 대화 말뭉치 도메인 관리부의 주요 구성을 나타내는 블록도이다.
도 6을 참조하면, 대화 말뭉치 도메인 관리부(600)는 대화 말뭉치 도메인 분류부(610), 제2 워드 임베딩 모듈(630), 및 대화 모델 생성부(650)를 포함할 수 있다. 여기에서 제2 워드 임베딩 모듈(630)은 클러스터 생성부(도 3의 200)가 포함하는 제1 워드 임베딩 모듈(210)과의 구분이 필요없는 경우에는 워드 임베딩 모듈이라고도 호칭할 수 있다.
대화 말뭉치 도메인 분류부(610)는 대화 말뭉치 저장부(700)에 저장된 대화 말뭉치를 이루는 복수의 대화를 도메인 별로 분류하여, 복수의 도메인 대화 말뭉치(620)로 분류한다. 대화 말뭉치 저장부(700)에 저장된 대화 말뭉치를 이루는 복수의 대화가 N개의 도메인을 가지고 있는 경우, 복수의 도메인 대화 말뭉치(620)는 제1 도메인 대화 말뭉치 내지 제N 도메인 대화 말뭉치인 N개의 도메인 대화 말뭉치로 분류될 수 있다.
제2 워드 임베딩 모듈(630)은 복수의 도메인 대화 말뭉치(620) 각각에 포함되는 대화들을 이루는 단어인 엔티티(entity)들을 벡터로 워드 임베딩할 수 있다. 제2 워드 임베딩 모듈(630)은 도메인 별로 분류된 대화들로 이루어지는 도메인 대화 말뭉치별로 워드 임베딩을 하여, 복수의 도메인 워드 임베딩(640)을 생성할 수 있다. 대화 말뭉치 저장부(700)에 저장된 대화 말뭉치를 이루는 복수의 대화가 N개의 도메인을 가지고 있는 경우, 즉 복수의 도메인 대화 말뭉치(620)는 제1 도메인 대화 말뭉치 내지 제N 도메인 대화 말뭉치인 N개의 도메인 대화 말뭉치로 분류되어 있는 경우, 복수의 도메인 워드 임베딩(640)은 N개의 도메인 각각에 대하여 분류된 제1 도메인 워드 임베딩 내지 제N 도메인 워드 임베딩인 N개의 도메인 워드 임베딩을 포함할 수 있다.
제2 워드 임베딩 모듈(630)은 예측 기반으로 워드 임베딩을 수행하여, 도메인 별로 분류된 대화들로 이루어지는 도메인 대화 말뭉치별로 워드 임베딩을 하여, 복수의 도메인 워드 임베딩(640)을 생성할 수 있다. 예를 들면, 제2 워드 임베딩 모듈(630)은 Word2Vec 또는 글로브(Global Vectors for Word Representation, GloVe)를 기반으로 워드 임베딩을 수행하여, 복수의 도메인 워드 임베딩(640)을 생성할 수 있다. 복수의 도메인 대화 말뭉치(620)는 도메인 별로 분류되어 있어, 서로 다른 도메인에서 다른 의미를 갖는 같은 표기의 단어를 하나의 벡터로 만들어버리는 문제가 발생하지 않으므로, 제2 워드 임베딩 모듈(630)은 예측 기반으로 워드 임베딩을 수행하여, 도메인 별로 분류된 대화들로 이루어지는 도메인 대화 말뭉치별로 워드 임베딩을 하여, 복수의 도메인 워드 임베딩(640)을 생성할 수 있다.
대화 모델 생성부(650)는 도메인 별로 생성된 복수의 도메인 워드 임베딩(640) 각각에 대하여 복수의 도메인 대화 모델(660)을 생성할 수 있다. 대화 말뭉치 저장부(700)에 저장된 대화 말뭉치를 이루는 복수의 대화가 N개의 도메인을 가지고 있는 경우, 즉 복수의 도메인 대화 말뭉치(620)가 제1 도메인 대화 말뭉치 내지 제N 도메인 대화 말뭉치인 N개의 도메인 대화 말뭉치로 분류되어, 복수의 도메인 워드 임베딩(640)이 제1 도메인 워드 임베딩 내지 제N 도메인 워드 임베딩인 N개의 도메인 워드 임베딩으로 이루어지는 경우, 대화 모델 생성부(650)는 N개의 도메인 각각 별인 제1 도메인 대화 모델 내지 제N 도메인 대화 모델로 이루어지는 N개의 도메인 대화 모델을 생성할 수 있다. 복수의 도메인 대화 모델(660)에 포함되는 제1 도메인 대화 모델 내지 제N 도메인 대화 모델로 이루어지는 N개의 도메인 대화 모델 각각은, 입력 문장(도 1의 30)에 대응하는 도메인에 따라 선택되어, 출력 문장(도 1의 40)을 생성할 수 있다.
도 7은 본 발명의 예시적 실시 예에 따른 복수의 대화 도메인을 가지는 대화 시스템에서 도메인 자동 분류를 하는 과정을 설명하기 위한 블록도이다.
도 7을 참조하면, 사용자(10)가 네트워크(20)를 통하여 입력한 입력 문장(30)은 도 4에서 설명한 것과 같이 입력 문장 클러스터(350)로 변환될 수 있다. 입력 문장 클러스터(350)는 도메인 분류 예측 모델(420)을 참조하여, 도메인 판단부(500)에서 도메인이 판단될 수 있다. 도메인 판단부(500)는 입력 문장 클러스터(350)가 가지는 복수의 클러스터 키(클러스터 1, 클러스터 2, ..., 클러스터 K)를 도메인 분류 예측 모델(420)을 참조하여, 입력 문장(350)의 도메인을 판단할 수 있다.
도메인 분류 예측 모델(420)은, 대화별 클러스터 조합부(280)는 대화 말뭉치를 이루는 복수의 대화 각각을 이루는 단어인 엔티티를 포함하는 대화 클러스터(CL), 즉 클러스터 키로 대체하여 복수의 클러스터 키로 이루어지는 대화별 클러스터를 생성하여, 복수의 대화 각각에 대한 대화별 클러스터와 도메인의 쌍으로 이루어지는 질의 유형 학습 셋(410)을 생성한다.
도메인 분류 예측 모델(420)은, 도메인 분류 학습기(도 3의 450)에서 질의 유형 학습 셋(도 3의 410)을 이용하여 생성될 수 있다. 질의 유형 학습 셋(410)은, 대화 말뭉치를 이루는 복수의 대화 각각을 이루는 단어인 엔티티를 포함하는 대화 클러스터(도 2의 CL), 즉 클러스터 키로 대체하여 복수의 클러스터 키로 이루어지는 대화별 클러스터와 도메인의 쌍으로 이루어질 수 있다.
도메인 분류 학습기(450)는 복수의 클러스터 키로 이루어지는 대화별 클러스터, 및 도메인을 각각 입력, 및 출력으로 사용하여, 도메인 분류 예측 모델(420)을 생성하므로, 도메인 분류 예측 모델(420)은 입력 문장 클러스터(350)를 입력으로 사용하여, 입력 문장(30)에 대한 도메인을 분류할수 있다.
도메인이 판단된 입력 문장(30), 정확히는 입력 문장(30)의 자연어 처리 결과는 복수의 도메인 대화 모델(660) 중 판단된 도메인에 대응되는 도메인 대화 모델, 예를 들면, 입력 문장(30)에 대한 도메인이 제2 도메인으로 판단된 경우, 입력 문장(30)은 제2 도메인 대화 모델에 의하여 출력인 대화 시스템(도 1의 1)의 발언이 생성될 수 있으며, 대화 시스템(1)의 발언은 자연어 생성부(900)를 참조하여 출력 문장(40)으로 생성되며, 출력 문장(40)을 유저 인터페이스(100)에서 네트워크(20)을 통하여 사용자(10)에게 제공될 수 있다.
출력 문장(40)을 수신한 사용자(10)의 도메인 분류에 대한 피드백은 도메인 분류 로그(490)에 저장될 수 있다. 도메인 분류 로그(490)에 저장된 사용자(10)의 도메인 분류에 대한 피드백은 도메인 분류 예측 모델(420)을 재생성하거나 업데이트하는데에 사용될 수 있다.
도메인 분류 로그(490)에 저장된 사용자(10)의 도메인 분류에 대한 피드백이, 도메인이 올바르게 분류된 것일 경우, 입력 문장(30)은 대화 말뭉치 도메인 분류부(610)에 의하여 도메인 복수의 도메인 대화 말뭉치(620) 중 해당하는 도메인에 대한 도메인 대화 말뭉치, 예를 들면 제2 도메인 대화 말뭉치에 저장될 수 있다. 이는 사용자(10)의 피드백에 의하여 업데이트된 제2 도메인 대화 말뭉치는, 다시 제2 워드 임베딩 모듈(630)에 의하여 워드 임베딩이 되어, 복수의 도메인 워드 임베딩(640) 중 제2 도메인 워드 임베딩이 재생성 또는 업데이트될 수 있고, 대화 모델 생성부(650)에 의하여 복수의 도메인 대화 모델(660) 중 제2 도메인에 대한 대화 모델인 제2 도메인 대화 모델이 재생성 또는 업데이트될 수 있다.
도 1 내지 도 7을 함께 참조하면, 본 발명에 따른 도메인 자동 분류 대화 시스템(1)은 사용자(10)의 입력 문장(30)에 대하여 미리 학습된 언어 모형으로 워드 임베딩을 수행하여, 엔티티를 벡터로 생성하고, 대화 말뭉치 클러스터를 이루는 복수의 대화 클러스터(CL) 중 입력 문장(30)을 이루는 단어인 엔티티를 워드 임베딩한 벡터들 각각에 대응하는 대화 클러스터(CL)인 복수의 클러스터 키(클러스터 1, 클러스터 2, ..., 클러스터 K)로 이루어지는 입력 문장 클러스터(350)를 생성한 후, 도메인 분류 예측 모델(420)에서 입력 문장 클러스터(350)를 입력으로 사용하여, 입력 문장(30)에 대한 도메인을 분류하여 출력으로 제공한다.
따라서 입력 문장(30)에 대한 워드 임베딩을 수행하는 과정에서, 서로 다른 도메인에서 다른 의미를 갖는 같은 표기의 단어를 하나의 벡터로 만들어버리는 문제를 해결하기 위하여, 미리 학습된 언어 모형, 예를 들면, ELMo 기반의 워드 임베딩을 수행하여, 엔티티를 벡터로 생성하여, 문맥에 따라서 다르게 워드 임베딩을 할 수 있다.
또한, 밀도 기반 클러스터링을 하여 생성한 복수의 대화 클러스터(CL)에 대응하는 복수의 클러스터 키(클러스터 1, 클러스터 2, ..., 클러스터 K)로 이루어지는 입력 문장 클러스터(350)를 생성하여 도메인 분류를 수행한다.
따라서 본 발명에 따른 도메인 자동 분류 대화 시스템(1)은, 오픈 도메인 환경에서 입력 문장(30)이 주어졌을 때도, 입력 문장(30)의 도메인을 판단하여, 알맞은 출력 문장(40)을 생성할 수 있다.
이상, 본 발명을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명은 상기 실시예에 한정되지 않고, 본 발명의 기술적 사상 및 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.
1 : 도메인 자동 분류 대화 시스템, 10 : 사용자, 20 : 네트워크, 30 : 입력 문장, 40 : 출력 문장, 100 : 유저 인터페이스, 200 : 클러스터 생성부, 210 : 제1 워드 임베딩 모듈, 220 : 클러스터링 모듈, 250 : 대화 말뭉치 클러스터 저장부, CL : 대화 클러스터, 280 : 대화별 클러스터 조합부, 350 : 입력 문장 클러스터, 400 : 도메인 분류 학습부, 410 : 질의 유형 학습 셋, 420 : 도메인 분류 예측 모델, 430 : 도메인 분류 동작 규칙, 450 : 도메인 분류 모델 학습기, 490 : 도메인 분류 로그, 500 : 도메인 판단부, 600 : 대화 말뭉치 도메인 관리부, 610 : 대화 말뭉치 도메인 분류부, 620 : 도메인 대화 말뭉치, 630 : 제2 워드 임베딩 모듈, 640 : 도메인 워드 임베딩, 650 : 대화 모델 생성부, 660 : , 700 : 대화 말뭉치, 800 : 자연어 이해부, 900 : 자연어 생성부

Claims (11)

  1. 네트워크를 통하여 사용자로부터 입력 문장을 수신하고, 상기 입력 문장에 대한 출력 문장을 상기 사용자에게 송신하는 유저 인터페이스;
    엔티티들을 벡터로 생성하도록 워드 임베딩을 수행하는 제1 워드 임베딩 모듈, 및 벡터화된 상기 엔티티들을 클러스터링하는 클러스터링 모듈을 포함하는 클러스터링 생성부;
    대화 말뭉치를 이루는 복수의 대화를 이루는 엔티티들을 상기 제1 워드 임베딩 모듈에서 워드 임베딩한 벡터들 전체를 대상으로 상기 클러스터링 생성부에서 클러스터링을 하여 생성된 복수의 대화 클러스터를 저장하는 대화 말뭉치 클러스터 저장부;
    상기 복수의 대화 클러스터 중, 상기 대화 말뭉치를 이루는 복수의 대화 각각을 이루는 엔티티들를 워드 임베딩한 벡터들에 대응하는 대화 클러스터로 이루어지는 상기 복수의 대화에 대한 대화별 클러스터와 도메인을 각각 입력과 출력으로 사용하여 도메인 분류 예측 모델을 학습시키는 도메인 분류 학습기를 포함하는 도메인 분류 학습부;
    상기 복수의 대화 클러스터 중, 상기 제1 워드 임베딩 모듈에서 상기 입력 문장을 이루는 엔티티들을 워드 임베딩한 벡터들에 대응하는 복수의 클러스터 키로 이루어지는 입력 문장 클러스터를 이용하여 상기 입력 문장에 대한 도메인을 판단하는 도메인 판단부; 및
    대화 말뭉치를 이루는 복수의 대화를 도메인 별로 분류하여 복수의 도메인 대화 말뭉치를 생성하는 대화 말뭉치 도메인 분류부, 상기 복수의 도메인 대화 말뭉치 각각을 이루는 엔티티들을 워드 임베딩하여 복수의 도메인 워드 임베딩을 생성하는 제2 워드 임베딩 모듈, 상기 복수의 도메인 워드 임베딩 각각에 대하여 복수의 도메인 대화 모델을 생성하는 대화 모델 생성부를 포함하는 대화 말뭉치 도메인 관리부;를 포함하는 것을 특징으로 하는 도메인 자동 분류 대화 시스템.
  2. 삭제
  3. 제1 항에 있어서,
    상기 출력 문장은, 복수의 도메인 대화 모델 중, 상기 도메인 판단부에서 판단된 상기 입력 문장 클러스터에 대한 도메인에 해당하는 도메인 대화 모델에서 생성되는 것을 특징으로 하는 도메인 자동 분류 대화 시스템.
  4. 제1 항에 있어서,
    상기 제2 워드 임베딩 모듈은, 예측 기반으로 워드 임베딩을 수행하는 것을 특징으로 하는 도메인 자동 분류 대화 시스템.
  5. 제4 항에 있어서,
    상기 제2 워드 임베딩 모듈은, Word2Vec 또는 글로브(Global Vectors for Word Representation, GloVe)를 기반으로 워드 임베딩을 수행하는 것을 특징으로 하는 도메인 자동 분류 대화 시스템.
  6. 제1 항에 있어서,
    상기 도메인 분류 학습부는, 상기 입력 문장에 대한 도메인을 판단 결과에 대한 상기 사용자의 피드백을 저장하는 도메인 분류 로그;를 더 포함하며,
    상기 도메인 분류 학습기는, 상기 도메인 분류 로그에 저장된 상기 사용자의 피드백을 사용하여 상기 도메인 분류 예측 모델을 재생성하거나 업데이트하는 것을 특징으로 하는 도메인 자동 분류 대화 시스템.
  7. 제6 항에 있어서,
    상기 대화 말뭉치 도메인 분류부는,
    상기 도메인 분류 로그에 저장된 상기 사용자의 피드백이 도메인이 올바르게 분류된 것일 경우, 상기 입력 문장을 상기 복수의 도메인 대화 말뭉치 중 해당하는 도메인에 대한 도메인 대화 말뭉치에 저장하는 것을 특징으로 하는 도메인 자동 분류 대화 시스템.
  8. 제1 항에 있어서,
    상기 제1 워드 임베딩 모듈은, 미리 학습된 언어 모형으로 워드 임베딩을 수행하는 것을 특징으로 하는 도메인 자동 분류 대화 시스템.
  9. 제8 항에 있어서,
    상기 제1 워드 임베딩 모듈은, ELMo(Embeddings from Language Model) 기반의 워드 임베딩을 수행하는 것을 특징으로 하는 도메인 자동 분류 대화 시스템.
  10. 제1 항에 있어서,
    상기 클러스터링 생성부는, 밀도 기반 클러스터링을 하는 것을 특징으로 하는 도메인 자동 분류 대화 시스템.
  11. 제10 항에 있어서,
    상기 클러스터링 생성부는, DBSCAN(Density-based spatial clustering of applications with noise) 방식으로 클러스터링을 하는 것을 특징으로 하는 도메인 자동 분류 대화 시스템.
KR1020190136910A 2019-10-30 2019-10-30 도메인 자동 분류 대화 시스템 KR102358485B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190136910A KR102358485B1 (ko) 2019-10-30 2019-10-30 도메인 자동 분류 대화 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190136910A KR102358485B1 (ko) 2019-10-30 2019-10-30 도메인 자동 분류 대화 시스템

Publications (2)

Publication Number Publication Date
KR20210051523A KR20210051523A (ko) 2021-05-10
KR102358485B1 true KR102358485B1 (ko) 2022-02-04

Family

ID=75917549

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190136910A KR102358485B1 (ko) 2019-10-30 2019-10-30 도메인 자동 분류 대화 시스템

Country Status (1)

Country Link
KR (1) KR102358485B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113723115B (zh) * 2021-09-30 2024-02-09 平安科技(深圳)有限公司 基于预训练模型的开放域问答预测方法及相关设备
KR102624944B1 (ko) * 2022-01-19 2024-01-15 네이버 주식회사 라이브 커머스 플랫폼에서의 실시간 인스펙터를 위한 방법, 컴퓨터 장치, 및 컴퓨터 프로그램

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101751113B1 (ko) * 2015-06-15 2017-06-27 포항공과대학교 산학협력단 기억 능력을 이용하는 다중 사용자 기반의 대화 관리 방법 및 이를 수행하는 장치
KR102410825B1 (ko) * 2017-08-14 2022-06-20 삼성전자주식회사 문장의 도메인 판단 방법 및 장치

Also Published As

Publication number Publication date
KR20210051523A (ko) 2021-05-10

Similar Documents

Publication Publication Date Title
JP5901001B1 (ja) 音響言語モデルトレーニングのための方法およびデバイス
CN109754809B (zh) 语音识别方法、装置、电子设备及存储介质
KR20190046623A (ko) 자기-학습 자연 언어 이해를 갖는 다이얼로그 시스템
US11289083B2 (en) Electronic apparatus and method for controlling thereof
CN110444198A (zh) 检索方法、装置、计算机设备和存储介质
JP2005084681A (ja) 意味的言語モデル化および信頼性測定のための方法およびシステム
CN110268472B (zh) 用于自动化对话系统的检测机构
US20220358292A1 (en) Method and apparatus for recognizing entity, electronic device and storage medium
EP2988298B1 (en) Response generation method, response generation apparatus, and response generation program
KR102358485B1 (ko) 도메인 자동 분류 대화 시스템
CN117980991A (zh) 利用约束谱聚类的基于说话者转换的在线说话者日志化
CN113591462A (zh) 弹幕回复生成方法、装置及电子设备
CN114416943A (zh) 对话模型的训练方法、装置、电子设备及存储介质
CN113761883A (zh) 一种文本信息识别方法、装置、电子设备及存储介质
Rajendran et al. Language dialect based speech emotion recognition through deep learning techniques
Sun et al. Learning OOV through semantic relatedness in spoken dialog systems.
CN112633007B (zh) 一种语义理解模型构建方法及装置、语义理解方法及装置
CN113918710A (zh) 文本数据处理方法、装置、电子设备和可读存储介质
JP7096199B2 (ja) 情報処理装置、情報処理方法、およびプログラム
KR20210130024A (ko) 대화 시스템 및 그 제어 방법
EP4024393A2 (en) Training a speech recognition model
KR102204395B1 (ko) 개체명 인식을 이용한 음성인식 띄어쓰기 보정 방법 및 시스템
KR100400220B1 (ko) 대화 모델을 이용한 자동 통역 장치 및 방법
CN116978367A (zh) 语音识别方法、装置、电子设备和存储介质
CN115620726A (zh) 语音文本生成方法、语音文本生成模型的训练方法、装置

Legal Events

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