KR101577890B1 - 자연어 대화 시스템을 위한 다중 도메인 식별 방법 및 장치 - Google Patents
자연어 대화 시스템을 위한 다중 도메인 식별 방법 및 장치 Download PDFInfo
- Publication number
- KR101577890B1 KR101577890B1 KR1020140010672A KR20140010672A KR101577890B1 KR 101577890 B1 KR101577890 B1 KR 101577890B1 KR 1020140010672 A KR1020140010672 A KR 1020140010672A KR 20140010672 A KR20140010672 A KR 20140010672A KR 101577890 B1 KR101577890 B1 KR 101577890B1
- Authority
- KR
- South Korea
- Prior art keywords
- domain
- unlabeled
- clusters
- cluster
- negative
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Machine Translation (AREA)
Abstract
각 도메인의 말뭉치에 대한 모델링을 통하여 입력 발화에 상응하는 다중 도메인을 식별하는 방법 및 장치에 관한 기술이 개시된다. 자연어 대화 시스템을 위한 다중 도메인 식별 방법은, 적어도 하나의 도메인 각각에 대한 말뭉치를 수집하는 단계와, 적어도 하나의 도메인 각각에 대한 말뭉치를 포지티브 이그잼플(positive example)과 언레이블된 이그잼플(unlabeled example)로 분류하고, 언레이블된 이그잼플로부터 네거티브 이그잼플(negative example)를 선별하는 단계와, 네거티브 이그잼플을 선별하고 남아 있는 잔여 언레이블된 이그잼플로부터 네거티브 이그잼플을 재선별함으로써, 포지티브 이그잼플과 네거티브 이그잼플로 최종 분류될 수 있도록 하는 적어도 하나의 도메인 식별 모델을 생성하는 단계를 포함한다. 따라서, 입력 발화에 대해 하나 이상의 도메인을 식별하여, 하나 이상의 도메인에 따른 시스템 발화를 제공할 수 있다.
Description
본 발명은 입력 발화에 상응하는 도메인을 식별하는 방법에 관한 것으로, 더욱 상세하게는 각 도메인의 말뭉치에 대한 모델링을 통하여 입력 발화에 상응하는 다중 도메인을 식별하는 방법 및 장치에 관한 것이다.
자연어 대화 시스템(Natural Language Dialogue System)은 자연어를 이용하여 컴퓨터와 의사 소통하는 인터페이스를 제공할 수 있다. 자연어 대화 시스템은 최근 다양한 분야에서 활용되고 있으며 유비쿼터스 시대를 위한 필수적인 지능형 인터페이스로 활발한 연구가 진행되고 있다.
도 1은 한 개의 도메인에 대한 대화 서비스를 제공하는 자연어 대화 시스템의 구성을 설명하기 위한 블록도이다. 도 1을 참조하면, 자연어 대화 시스템은 음성 인식부(11)를 통해 사용자의 입력 발화를 텍스트 형태로 변환하고, 자연어 이해부(12)에서 사용자의 의도를 이해하고, 대화 관리부(13)에서 시스템이 수행할 행동을 결정하고, 응답 생성부(14)에서 이를 자연어 형태로 표현하며, 음성 합성부(15)에서 시스템의 응답을 음성으로 생성하여 사용자에게 응답할 수 있다.
도 2는 한 개 이상의 도메인에 대한 대화 서비스를 제공하는 자연어 대화 시스템을 설명하기 위한 블록도이다. 도 2를 참조하면, 자연어 대화 시스템은 도메인 식별부(20)에서 사용자의 입력 발화로부터 사용자가 의도한 한 개의 도메인을 식별해낼 수 있고, 식별된 도메인에 대한 언어 이해, 대화 관리, 응답 생성 과정을 수행할 수 있다.
즉, 자연어 대화 시스템은 사용자에게 한 개 이상의 도메인에 대한 대화 서비스를 제공할 수 있다. 예를 들어, 사용자는 자연어 대화 시스템을 통해 TV 프로그램을 검색하거나, 음악을 검색하거나, 교통 정보를 확인하거나, 일기 예보를 확인하고, 영화 티켓을 예매하는 등의 일을 할 수 있다.
그러나, 자연어 대화 시스템이 제공하는 도메인들은 서로 완전하게 상호 배타적이지 않은 경우, 자연어 대화 시스템은 사용자의 입력 발화로부터 한 개 이상의 도메인을 식별해내고 식별된 한 개 이상의 도메인에 대한 대화 서비스를 제공하는데 한계점이 있다. 즉, 종래의 도메인 식별부(20)는 한 개의 입력 발화에 대해 동시에 한 개 이상의 도메인을 식별하기 어려운 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 도메인의 말뭉치에 대한 모델링을 통하여 입력 발화에 상응하는 하나 이상의 도메인을 식별하는 방법을 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 도메인의 말뭉치에 대한 모델링을 통하여 입력 발화에 상응하는 하나 이상의 도메인을 식별하는 장치를 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 자연어 대화 시스템을 위한 다중 도메인 식별 방법은, 적어도 하나의 도메인 각각에 대한 말뭉치를 수집하는 단계와, 적어도 하나의 도메인 각각에 대한 말뭉치를 포지티브 이그잼플(positive example)과 언레이블된 이그잼플(unlabeled example)로 분류하고, 언레이블된 이그잼플로부터 네거티브 이그잼플(negative example)를 선별하는 단계와, 네거티브 이그잼플을 선별하고 남아 있는 잔여 언레이블된 이그잼플로부터 네거티브 이그잼플을 재선별함으로써, 포지티브 이그잼플과 네거티브 이그잼플로 최종 분류될 수 있도록 하는 적어도 하나의 도메인 식별 모델을 생성하는 단계를 포함한다.
여기에서, 상기 자연어 대화 시스템을 위한 다중 도메인 식별 방법은, 적어도 하나의 도메인 식별 모델에 기반하여 입력 발화에 상응하는 하나 이상의 도메인을 선별하는 단계를 더 포함할 수 있다.
여기에서, 상기 언레이블된 이그잼플로부터 네거티브 이그잼플(negative example)를 선별하는 단계는, 적어도 하나의 도메인 중 하나를 해당 도메인으로 하고, 해당 도메인의 말뭉치를 상기 포지티브 이그잼플(positive example)로 하고, 나머지 도메인의 말뭉치를 언레이블된 이그잼플(unlabeled example)로 구분하는 단계와, 포지티브 이그잼플을 하나의 포지티브 클러스터로 설정하고, 언레이블된 이그잼플 각각을 언레이블된 클러스터로 설정하는 클러스터 초기화 단계와, 하나의 포지티브 클러스터에 포함된 발화와 각각의 언레이블된 클러스터에 포함된 발화 사이의 발화 거리에 기반한 클러스터 병합을 통하여 계층적 클러스터링을 수행하는 단계를 포함할 수 있다.
여기에서, 상기 발화 거리는, 하나의 포지티브 클러스터에 포함된 발화와 각각의 언레이블된 클러스터 각각에 포함된 발화의 전체 어휘 개수와 공통된 어휘 개수의 비율에 따라 산출될 수 있다.
여기에서, 상기 계층적 클러스터링을 수행하는 단계는, 각각의 언레이블된 클러스터 중에서 하나의 포지티브 클러스터와 가장 가까운 발화 거리에 있는 클러스터를 잔여 언레이블된 클러스터로 선별하고, 나머지 언레이블된 클러스터를 네거티브 클러스터로 선별하여 병합할 수 있다.
여기에서, 상기 적어도 하나의 도메인 식별 모델을 생성하는 단계는, 하나의 포지티브 클러스터와 잔여 언레이블된 클러스터 사이의 발화 거리와, 네거티브 클러스터와 잔여 언레이블된 클러스터 사이의 발화 거리에 기반하여 잔여 언레이블된 클러스터로부터 네거티브 클러스터를 재선별하는 과정을 반복하고, 재선별된 네거티브 클러스터를 네거티브 클러스터에 병합할 수 있다.
여기에서, 상기 적어도 하나의 도메인 식별 모델을 생성하는 단계는, 네거티브 클러스터가 재선별되지 않을 때까지 반복하여 수행될 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 실시예에 따른 다중 도메인을 식별하는 자연어 대화 시스템은, 입력 발화를 텍스트로 변환하는 음성 인식부와, 입력 발화와 관련성이 높은 도메인에 포함되는 포지티브 이그잼플(positive example)과 입력 발화와 관련성이 낮은 도메인에 포함된 네거티브 이그잼플(negative example)로 분류될 수 있도록 하는 적어도 하나의 도메인 식별 모델을 저장하는 도메인 식별 모델 저장부와, 적어도 하나의 도메인 식별 모델에 기반하여 입력 발화에 상응하는 하나 이상의 도메인을 선정하는 도메인 식별부를 포함한다.
상기와 같은 본 발명에 따른 자연어 대화 시스템을 위한 다중 도메인 식별 방법 및 이를 이용하는 자연어 대화 시스템은, 입력 발화에 대해 하나 이상의 도메인을 식별하여, 하나 이상의 도메인에 따른 시스템 발화를 제공할 수 있다.
또한, 하나 이상의 도메인에 포함된 말뭉치를 활용한 시스템 발화를 생성 또는 제공할 수 있기 때문에, 사용자가 원하는 서버스를 보다 정확하게 제공할 수 있다.
도 1은 한 개의 도메인에 대한 대화 서비스를 제공하는 자연어 대화 시스템의 구성을 설명하기 위한 블록도이다.
도 2는 한 개 이상의 도메인에 대한 대화 서비스를 제공하는 자연어 대화 시스템을 설명하기 위한 블록도이다.
도 3은 도메인들이 상호 연관됨을 설명하기 위한 개념도이다.
도 4는 본 발명의 실시예에 따른 도메인 식별 모델을 모델링하는 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 실시예에 따라 도메인의 말뭉치를 분류하는 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시예에 따라 도메인의 말뭉치를 분류하는 방법을 더욱 상세히 설명하기 위한 개념도이다.
도 7은 본 발명의 실시예에 따른 도메인 식별 모듈을 설명하기 위한 블록도이다.
도 2는 한 개 이상의 도메인에 대한 대화 서비스를 제공하는 자연어 대화 시스템을 설명하기 위한 블록도이다.
도 3은 도메인들이 상호 연관됨을 설명하기 위한 개념도이다.
도 4는 본 발명의 실시예에 따른 도메인 식별 모델을 모델링하는 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 실시예에 따라 도메인의 말뭉치를 분류하는 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시예에 따라 도메인의 말뭉치를 분류하는 방법을 더욱 상세히 설명하기 위한 개념도이다.
도 7은 본 발명의 실시예에 따른 도메인 식별 모듈을 설명하기 위한 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
먼저, 본 출원에서 사용되는 용어를 간략하게 설명하면 다음과 같다.
도메인(domain)은 입력 발화가 사용될 수 있는 상황을 분류하는 개념으로, 예를 들어, TV 프로그램 검색, 음악 검색, 교통 정보 확인, 일기 예보 확인 및 영화 티켓 예매 등과 같이 분류될 수 있다. 또한, 각각의 도메인은 상황에 따른 말뭉치(corpus)의 집합을 의미할 수 있다.
포지티브 이그잼플(positive example)은 입력 발화가 사용될 가능성이 높은 도메인에 포함된 말뭉치를 의미할 수 있으며, 네거티브 이그잼플(negative example)는 입력 발화가 사용될 가능성이 낮은 도메인에 포함된 말뭉치를 의미할 수 있으며, 언레이블된 이그잼플(unlabeled example)은 포지티브 이그잼플에 속하지도 않고, 네거티브 이그잼플에 속하지 않는 것으로 아직 분류되지 않은 말뭉치를 의미할 수 있다.
포지티브 클러스터(positive cluster)은 포지티브 이그잼플의 각각 또는 다수의 포지티브 이그잼플의 집합을 의미할 수 있고, 네거티브 클러스터(negative cluster)는 네거티브 이그잼플의 각각 또는 다수의 네거티브 이그잼플의 집합을 의미할 수 있다. 또한, 언레이블된 클러스터(unlabeled cluster)는 언레이블된 이그잼플의 각각 또는 다수의 언레이블된 이그잼플의 집합을 의미할 수 있다.
그리고, 도메인 식별 모델은, 본 발명의 실시예에 따른 자연어 대화 시스템이 입력 발화에 상응하는 도메인을 결정하기 위해 활용하는 모델링된 데이터베이스를 의미할 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 3은 도메인들이 상호 연관됨을 설명하기 위한 개념도이다.
도 3을 참조하면, 본 발명의 실시예에 따른 자연어 대화 시스템은 다수의 도메인에 포함된 말뭉치를 이용하여 입력 발화를 처리할 수 있다.
예를 들어, 자연어 대화 시스템은 3개로 구분되는 도메인에 포함된 말뭉치를 활용할 수 있다. 다만, 본 발명의 실시예에 따른 자연어 대화 시스템은 3 개 이상으로 구분되는 도메인에 포함된 말뭉치를 활용할 수 있음은 물론이다.
‘A’라는 입력 발화(입력 발화 A)는 도메인 A(31)의 말뭉치에 포함될 수 있다. 즉, 입력 발화 A는 도메인 A(31)와 가장 관련성이 높을 수 있으며, 이러한 경우, 도메인 A(31)를 입력 발화 A의 해당 도메인이라고 정의할 수 있다.
그러나, 입력 발화 A는 도메인 A(31)뿐만 아니라, 도메인 B(32) 또는 도메인 C(33)와 관련될 수 있다. 이는 각각의 도메인에 포함되는 말뭉치는 상호 배타적이지 않고, 서로 연관될 수 있기 때문이다. 예를 들어, 도메인 A(31)에 포함되는 말뭉치와 유사한 말뭉치가 도메인 B(32) 또는 도메인 C(33)에 포함될 수도 있다.
상세하세는, 도메인 A(31)는 입력 발화 A와 관련성이 높은 말뭉치인 포지티브 이그잼플 A로 구성될 수 있다. 또한, 도메인 B(32) 및 도메인 C(33)는 입력 발화 A와 관련성이 높은 말뭉치인 포지티브 이그잼플 A뿐만 아니라, 입력 발화 A와 관련성이 낮은 말뭉치인 네거티브 이그잼플 A를 포함할 수 있다.
따라서, 입력 발화 A가 수신되면, 도메인 A(31)에 포함된 말뭉치 뿐만 아니라, 도메인 B(32) 및 도메인 C(33)에 포함된 포지티브 이그잼플 A를 활용할 필요성이 있다. 즉, 본 발명의 실시예에 따른 자연어 대화 시스템은 입력 발화 A에 대해서 도메인 A(31), 도메인 B(32) 및 도메인 C(33)를 식별하여 활용할 필요성이 있다.
도 4는 본 발명의 실시예에 따른 도메인 식별 모델을 모델링하는 방법을 설명하기 위한 흐름도이다.
본 발명의 실시예에 따른 자연어 대화 시스템은 도메인 식별 모델을 이용하여 하나 이상의 도메인을 식별하여 활용할 수 있다.
도 4를 참조하여 도메인 식별 모델을 생성하는 방법을 설명하면 다음과 같다.
적어도 하나의 도메인 각각에 대한 말뭉치를 수집할 수 있으며, 수집된 말뭉치를 포지티브 이그잼플과 언레이블된 이그잼플로 분류할 수 있다. 즉, 적어도 하나의 도메인 각각에 대한 말뭉치를 포지티브 이그잼플과 언레이블된 이그잼플로 분류할 수 있다(S410).
적어도 하나의 도메인 중 하나를 해당 도메인으로 하고, 해당 도메인의 말뭉치를 포지티브 이그잼플로 하고, 나머지 도메인의 말뭉치를 언레이블된 이그잼플로 구분할 수 있다. 예를 들어, 다수의 도메인에 하나의 도메인을 해당 도메인으로 결정하고, 해당 도메인의 말뭉치를 포지티브 이그잼플로 하고, 해당 도메인을 제외한 나머지 도메인의 말뭉치를 언레이블된 이그잼플로 분류하여 모델링을 시작할 수 있다. 따라서, 해당 도메인을 바꾸어 가면서 모델링을 수행함으로써 다수의 도메인 식별 모델을 생성할 수 있다.
포지티브 이그잼플과 언레이블된 이그잼플로 분류된 말뭉치로부터 네거티브 이그잼플을 선별할 수 있다(S420). 언레이블된 이그잼플은 아직 포지티브 이그잼플과 네거티브 이그잼플로 분류되지 않은 상태의 말뭉치로, 언레이블된 이그잼플로부터 네거티브 이그잼플을 선별할 수 있다. 즉, 수동으로 모든 언레이블된 이그잼플로부터 네거티브 이그재플을 식별하는 것은 많은 시간과 비용이 필요로 하고, 새로운 도메인이 추가된 경우 이러한 작업이 재수행 되어야 한다는 한계점을 해결할 수 있다.
언레이블된 이그잼플로부터 네거티브 이지잼플을 선별하고 나면, 전체 말뭉치는 포지티브 이그잼플, 네거티브 이그잼플 및 네거티브 이그잼플을 선별하고 남아 있는 잔여 언레이블된 이그잼플로 분류될 수 있다.
네거티브 이그잼플을 선별하고 남아 있는 잔여 언레이블된 이그잼플로부터 네거티브 이그잼플을 재선별할 수 있고(S430), 재선별 과정의 반복을 통하여 포지티브 이그잼플과 네거티브 이그잼플로 최종 분류될 수 있도록 하는 적어도 하나의 도메인 식별 모델을 생성할 수 있다(S440).
결론적으로, 본 발명에 따른 자연어 대화 시스템은, 적어도 하나의 도메인 식별 모델에 기반하여 입력 발화에 상응하는 하나 이상의 도메인을 선별하여 활용할 수 있다.
예를 들어, 예를 들어 "저는 포항에 갈 예정입니다."라는 사용자의 입력 발화는 자동차 네비게이션 혹은 호텔 예약 도메인 모두에 속할 수 있으므로 해당 두 도메인을 모두 검출해 그에 부합하는 대화 서비스를 제공할 수 있다.
더 나아가, 본 발명의 실시예에 따른 자연어 대화 시스템을 위한 다중 도메인 식별 방법은, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
도 5는 본 발명의 실시예에 따라 도메인의 말뭉치를 분류하는 방법을 설명하기 위한 흐름도이고, 도 6은 본 발명의 실시예에 따라 도메인의 말뭉치를 분류하는 방법을 더욱 상세히 설명하기 위한 개념도이다.
도 5 및 도 6을 참조하여, 네거티브 이그잼플을 선별하는 과정(S420)을 더욱 상세히 설명한다.
포지티브 이그잼플을 하나의 포지티브 클러스터로 설정하고, 언레이블된 이그잼플 각각을 언레이블된 클러스터로 설정함으로써 클러스터를 초기화할 수 있다(S421).
다음으로, 하나의 포지티브 클러스터에 포함된 발화와 각각의 언레이블된 클러스터에 포함된 발화 사이의 발화 거리에 기반한 클러스터 병합을 통하여 계층적 클러스터링을 수행할 수 있다(S423). 여기서, 발화 거리는 전체 어휘 개수와 공통된 어휘 개수의 비율에 따라 산출될 수 있다. 예컨대, 하나의 포지티브 클러스터에 포함된 발화와 각각의 언레이블된 클러스터에 포함된 발화 사이의 발화 거리는, 하나의 포지티브 클러스터에 포함된 발화와 각각의 언레이블된 클러스터 각각에 포함된 발화의 전체 어휘 개수와 공통된 어휘 개수의 비율에 따라 산출될 수 있다.
상세하게는, 발화 거리를 산출하는 방법은 다음과 같다.
수학식 1에서, x와 y는 발화를 의미하고, 는 x 발화와 y 발화에 포함된 전체 어휘 개수를 의미한다. 또한, 는 x 발화와 y 발화에 공통적으로 포함된 어휘 개수를 의미한다. 따라서, 는 x 발화와 y 발화 사이의 발화 거리를 의미할 수 있다.
수학식 2에서 X는 x 발화를 포함하는 클러스터를 의미하고, Y는 y 발화를 포함하는 클러스터를 의미하며, 는 X 클러스터와 Y 클러스터 사이의 거리를 의할 수 있다. 즉, X 클러스터와 Y 클러스터 사이의 거리는 각 클러스터 포함된 가장 가까운 발화 사이의 거리, 즉 가장 가까운 발화 거리에 의해 결정될 수 있다.
즉, 계층적 클러스터링은, 각각의 언레이블된 클러스터 중에서 하나의 포지티브 클러스터와 가장 가까운 발화 거리에 있는 클러스터를 잔여 언레이블된 클러스터로 선별하고, 나머지 언레이블된 클러스터를 네거티브 클러스터로 선별하여 병합하는 과정을 통하여 수행될 수 있다. 여기서, 잔여 언레이블된 클러스터는 하나의 포지티브 클러스터와 병합하지 않으면, 이는 포지티브 클러스터에 포함되는 포지티브 이그잼플을 증가시킬 필요가 없기 때문이다. 즉, 하나의 포지티브 클러스터는 고정될 수 있다.
결론적으로, 계층적 클러스터링을 수행한 결과로, 하나의 포지티브 클러스터, 잔여 언레이블된 클러스터 및 네거티브 클러스터를 생성할 수 있다(S425).
도 6을 참조하면, P1, P2 및 P3는 포지티브 이그잼플을 나타내고, U1, U2, U3, U4, U5, U6는 엔레이블된 이그잼플을 나타낸다.
포지티브 이그잼플인 P1, P2 및 P3는 하나의 포지티브 클러스터 묶이는 것을 알 수 있다. 또한, 엔레이블된 이그잼플 중에서 포지티브 클러스터와 발화 거리가 가까운 U1, U2는 잔여 언레이블된 클러스터로 남게되고, 나머지 언레이블된 이그잼플인 U3, U4, U5, U6는 서로 병합하여 네거티브 클러스터를 구성하게 된다.
따라서, 클러스터 초기화 및 계층적 클러스터링을 거쳐 포지티브 이그잼플과 확연히 구분될 수 있는 신뢰할 수 있는 네거티브 이그잼플을 선별할 수 있다.
도 4를 다시 참조하여, 네거티브 이그잼플을 재선별하는 과정을 통하여 적어도 하나의 도메인 식별 모델을 생성하는 과정을 보다 상세히 설명한다.
계층적 클러스터링을 거쳐 분류된 하나의 포지티브 클러스터, 잔여 언레이블된 클러스터 및 네거티브 클러스터를 기반으로 하여 적어도 하나의 도메인 식별 모델을 생성할 수 있다.
하나의 포지티브 클러스터와 잔여 언레이블된 클러스터 사이의 발화 거리와, 네거티브 클러스터와 잔여 언레이블된 클러스터 사이의 발화 거리에 기반하여 잔여 언레이블된 클러스터로부터 네거티브 클러스터를 재선별하는 과정을 반복하고, 재선별된 네거티브 클러스터를 네거티브 클러스터에 병합하는 과정을 수행하여 적어도 하나의 도메인 식별 모델을 생성할 수 있다. 여기서, 재선별 과정은 네거티브 클러스터가 더 이상 재선별되지 않을 때까지 반복될 수 있다.
즉, 네거티브 클러스터가 더 이상 재선별되지 않을 때까지 재선별 과정을 반복하고, 남게 되는 잔여 언레이블된 클러스터는 제거할 수 있으며, 이를 통하여 전체 말뭉치는 포지티브 이그잼플과 네거티브 이그잼플로 구분될 수 있다.
도 7은 본 발명의 실시예에 따른 도메인 식별 모듈을 설명하기 위한 블록도이다.
도 7을 참조하면, 본 발명의 실시예에 따른 자연어 대화 시스템은 도메인 식별 모델 저장부(730)에 저장된 다수의 도메인 식별 모델을 활용하여 하나 이상의 도메인을 식별할 수 있다.
도 7은 본 발명의 실시예에 따른 자연어 대화 시스템의 주요한 구성을 나타낸다. 즉, 자연어 대화 시스템은 음성 인식부(710), 도메인 식별부(720) 및 도메인 식별 모델 저장부(730)를 포함하여 구성될 수 있다. 여기서, 도메인 식별 모델 저장부(730)는 자연어 대화 시스템의 내부에 위치할 수 있을 뿐만 아니라 외부에 위치하여 도메인 식별부(720)와 연동할 수 있는 것으로 구현될 수도 있다.
또한, 본 발명의 실시예에 따른 자연어 대화 시스템은 도 1 또는 도 2에 도시된 자연어 이해부(12), 대화 관리부(13), 응답 생성부(14) 및 응답 합성부(15)를 더 포함할 수 있음은 물론이다.
먼저, 음성 인식부(710)는 입력 발화를 인식하여 텍스트로 변환하여 도메인 식별부로 전달할 수 있다.
도메인 식별부(720)는 텍스트로 변환된 입력 발화에 상응하는 하나 이상의 도메인을 식별 또는 결정하는 기능을 수행할 수 있다. 여기서, 도메인 식별부(720)는 도메인 식별을 수행하는 적어도 하나의 도메인 식별 모듈을 포함할 수 있으며, 도메인 식별 모델 저장부(730)에 저장되어 있는 적어도 하나의 도메인 식별 모델을 활용할 수 있다. 즉, 도메인 식별부(720)는 적어도 하나의 도메인 식별 모델에 기반하여 입력 발화에 상응하는 하나 이상의 도메인을 선별할 수 있다.
예를 들어, 도메인 식별부(720)는 제1 도메인 식별 모듈(721), 제2 도메인 식별 모듈(722) 및 제3 도메인 식별 모듈(723)을 포함할 수 있으며, 각각의 도메인 식별 모듈이 연동하여 입력 발화에 상응하는 하나 이상의 도메인을 식별할 수 있다. 여기서, 각각의 도메인 식별 모듈은 이진 분류기일 수 있다.
도메인 식별 모델 저장부(730)는 입력 발화와 관련성이 높은 도메인에 포함되는 포지티브 이그잼플(positive example)과 입력 발화와 관련성이 낮은 도메인에 포함된 네거티브 이그잼플(negative example)로 분류될 수 있도록 하는 적어도 하나의 도메인 식별 모델을 저장할 수 있다. 예를 들어, 도메인 식별 모델 저장부(730)는 제1 도메인 식별 모델(731), 제2 도메인 식별 모델(732) 및 제3 도메인 식별 모델(733)을 포함하여 구성될 수 있다.
적어도 하나의 도메인 식별 모델이 모델링 되는 과정은 다음과 같다.
적어도 하나의 도메인 중 하나를 해당 도메인으로 하고, 해당 도메인의 말뭉치를 포지티브 이그잼플(positive example)로 하고, 나머지 도메인의 말뭉치를 언레이블된 이그잼플(unlabeled example)로 구분할 수 있다.
다음으로, 포지티브 이그잼플을 하나의 포지티브 클러스터로 설정하고, 언레이블된 이그잼플 각각을 언레이블된 클러스터로 설정할 수 있으며, 하나의 포지티브 클러스터에 포함된 발화와 각각의 언레이블된 클러스터에 포함된 발화 사이의 발화 거리에 기반한 클러스터 병합을 통하여 모델링될 수 있다.
여기서, 발화 거리는, 하나의 포지티브 클러스터에 포함된 발화와 각각의 언레이블된 클러스터 각각에 포함된 발화의 전체 어휘 개수와 공통된 어휘 개수의 비율에 따라 산출될 수 있다.
또한, 클러스터 병합은, 각각의 언레이블된 클러스터 중에서 하나의 포지티브 클러스터와 가장 가까운 발화 거리에 있는 클러스터를 잔여 언레이블된 클러스터로 선별하고, 나머지 언레이블된 클러스터를 네거티브 클러스터로 선별하여 병합하는 과정을 통하여 수행될 수 있다.
더 나아가, 적어도 하나의 도메인 식별 모델은 네거티브 클러스터를 재선별하는 과정을 반복하여 모델링될 수 있다.
예컨대, 하나의 포지티브 클러스터와 잔여 언레이블된 클러스터 사이의 발화 거리와, 네거티브 클러스터와 잔여 언레이블된 클러스터 사이의 발화 거리에 기반하여 잔여 언레이블된 클러스터로부터 네거티브 클러스터를 재선별하는 과정을 반복하고, 재선별된 네거티브 클러스터를 네거티브 클러스터에 병합하는 과정을 수행하여 적어도 하나의 도메인 식별 모델을 생성할 수 있다.
상술한 본 발명의 실시예에 따른 자연어 대화 시스템의 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.
상술한 본 발명의 실시예에 따른 자연어 대화 시스템을 위한 다중 도메인 식별 방법 및 이를 이용하는 자연어 대화 시스템은, 입력 발화에 대해 하나 이상의 도메인을 식별하여, 하나 이상의 도메인에 따른 시스템 발화를 제공할 수 있다.
따라서, 하나 이상의 도메인에 포함된 말뭉치를 활용한 시스템 발화를 생성 또는 제공할 수 있기 때문에, 사용자가 원하는 서버스를 보다 정확하게 제공할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
11, 710: 음성 인식부 12: 자연어 이해부
13: 대화 관리부 14: 응답 생성부
15: 응답 합성부 20, 720: 도메인 식별부
31: 도메인 A 32: 도메인 B
33: 도메인 C 721: 제1 도메인 식별 모듈
722: 제2 도메인 식별 모듈 723: 제3 도메인 식별 모듈
730: 도메인 식별 모델 저장부 731: 제1 도메인 식별 모델
732: 제2 도메인 식별 모델 733: 제3 도메인 식별 모델
13: 대화 관리부 14: 응답 생성부
15: 응답 합성부 20, 720: 도메인 식별부
31: 도메인 A 32: 도메인 B
33: 도메인 C 721: 제1 도메인 식별 모듈
722: 제2 도메인 식별 모듈 723: 제3 도메인 식별 모듈
730: 도메인 식별 모델 저장부 731: 제1 도메인 식별 모델
732: 제2 도메인 식별 모델 733: 제3 도메인 식별 모델
Claims (12)
- 자연어 대화 시스템 상에서 실행되는 도메인 식별 방법에 있어서,
적어도 하나의 도메인 각각에 대한 말뭉치를 수집하는 단계;
상기 적어도 하나의 도메인 각각에 대한 말뭉치를 포지티브 이그잼플(positive example)과 언레이블된 이그잼플(unlabeled example)로 분류하고, 상기 언레이블된 이그잼플로부터 네거티브 이그잼플(negative example)를 선별하는 단계;
상기 네거티브 이그잼플을 선별하고 남아 있는 잔여 언레이블된 이그잼플로부터 상기 네거티브 이그잼플을 재선별함으로써, 상기 포지티브 이그잼플과 상기 네거티브 이그잼플로 최종 분류될 수 있도록 하는 적어도 하나의 도메인 식별 모델을 생성하는 단계; 및
상기 적어도 하나의 도메인 식별 모델에 기반하여 입력 발화에 상응하는 하나 이상의 도메인을 선별하는 단계를 포함하는 자연어 대화 시스템을 위한 다중 도메인 식별 방법. - 삭제
- 청구항 1에 있어서,
상기 언레이블된 이그잼플로부터 네거티브 이그잼플(negative example)를 선별하는 단계는,
상기 적어도 하나의 도메인 중 하나를 해당 도메인으로 하고, 상기 해당 도메인의 말뭉치를 상기 포지티브 이그잼플(positive example)로 하고, 나머지 도메인의 말뭉치를 상기 언레이블된 이그잼플(unlabeled example)로 구분하는 단계;
상기 포지티브 이그잼플을 하나의 포지티브 클러스터로 설정하고, 상기 언레이블된 이그잼플 각각을 언레이블된 클러스터로 설정하는 클러스터 초기화 단계; 및
상기 하나의 포지티브 클러스터에 포함된 발화와 상기 각각의 언레이블된 클러스터에 포함된 발화 사이의 발화 거리에 기반한 클러스터 병합을 통하여 계층적 클러스터링을 수행하는 단계를 포함하는 자연어 대화 시스템을 위한 다중 도메인 식별 방법. - 청구항 3에 있어서,
상기 발화 거리는,
상기 하나의 포지티브 클러스터에 포함된 발화와 상기 각각의 언레이블된 클러스터 각각에 포함된 발화의 전체 어휘 개수와 공통된 어휘 개수의 비율에 따라 산출되는 것을 특징으로 하는 자연어 대화 시스템을 위한 다중 도메인 식별 방법. - 청구항 3에 있어서,
상기 계층적 클러스터링을 수행하는 단계는,
상기 각각의 언레이블된 클러스터 중에서 상기 하나의 포지티브 클러스터와 가장 가까운 상기 발화 거리에 있는 클러스터를 상기 잔여 언레이블된 클러스터로 선별하고,
나머지 언레이블된 클러스터를 상기 네거티브 클러스터로 선별하여 병합하는 것을 특징으로 하는 자연어 대화 시스템을 위한 다중 도메인 식별 방법. - 청구항 5에 있어서,
상기 적어도 하나의 도메인 식별 모델을 생성하는 단계는,
상기 하나의 포지티브 클러스터와 상기 잔여 언레이블된 클러스터 사이의 발화 거리와, 상기 네거티브 클러스터와 상기 잔여 언레이블된 클러스터 사이의 발화 거리에 기반하여 상기 잔여 언레이블된 클러스터로부터 상기 네거티브 클러스터를 재선별하는 과정을 반복하고, 상기 재선별된 네거티브 클러스터를 상기 네거티브 클러스터에 병합하는 것을 특징으로 하는 자연어 대화 시스템을 위한 다중 도메인 식별 방법. - 청구항 6에 있어서,
상기 적어도 하나의 도메인 식별 모델을 생성하는 단계는,
상기 네거티브 클러스터가 재선별되지 않을 때까지 반복하여 수행되는 것을 특징으로 하는 자연어 대화 시스템을 위한 다중 도메인 식별 방법. - 다중 도메인에서 구현되는 자연어 대화 시스템에 있어서,
입력 발화를 텍스트로 변환하는 음성 인식부;
상기 입력 발화와 관련성이 높은 도메인에 포함되는 포지티브 이그잼플(positive example)과 상기 입력 발화와 관련성이 낮은 도메인에 포함된 네거티브 이그잼플(negative example)로 분류될 수 있도록 하는 적어도 하나의 도메인 식별 모델을 저장하는 도메인 식별 모델 저장부; 및
상기 적어도 하나의 도메인 식별 모델에 기반하여 입력 발화에 상응하는 하나 이상의 도메인을 선정하는 도메인 식별부를 포함하되,
상기 적어도 하나의 도메인 식별 모델은,
적어도 하나의 도메인 중 하나를 해당 도메인으로 하고, 상기 해당 도메인의 말뭉치를 상기 포지티브 이그잼플(positive example)로 하고, 나머지 도메인의 말뭉치를 언레이블된 이그잼플(unlabeled example)로 구분하고,
상기 포지티브 이그잼플을 하나의 포지티브 클러스터로 설정하고, 상기 언레이블된 이그잼플 각각을 언레이블된 클러스터로 설정하며,
상기 하나의 포지티브 클러스터에 포함된 발화와 상기 각각의 언레이블된 클러스터에 포함된 발화 사이의 발화 거리에 기반한 클러스터 병합을 통하여 모델링된 것을 특징으로 하는 다중 도메인을 식별하는 자연어 대화 시스템. - 삭제
- 청구항 8에 있어서,
상기 발화 거리는,
상기 하나의 포지티브 클러스터에 포함된 발화와 상기 각각의 언레이블된 클러스터 각각에 포함된 발화의 전체 어휘 개수와 공통된 어휘 개수의 비율에 따라 산출되는 것을 특징으로 하는 다중 도메인을 식별하는 자연어 대화 시스템. - 청구항 8에 있어서,
상기 클러스터 병합은,
상기 각각의 언레이블된 클러스터 중에서 상기 하나의 포지티브 클러스터와 가장 가까운 상기 발화 거리에 있는 클러스터를 잔여 언레이블된 클러스터로 선별하고,
나머지 언레이블된 클러스터를 상기 네거티브 클러스터로 선별하여 병합하는 것을 특징으로 하는 다중 도메인을 식별하는 자연어 대화 시스템. - 청구항 11에 있어서,
상기 적어도 하나의 도메인 식별 모델은,
상기 하나의 포지티브 클러스터와 상기 잔여 언레이블된 클러스터 사이의 발화 거리와, 상기 네거티브 클러스터와 상기 잔여 언레이블된 클러스터 사이의 발화 거리에 기반하여 상기 잔여 언레이블된 클러스터로부터 상기 네거티브 클러스터를 재선별하는 과정을 반복하고, 상기 재선별된 네거티브 클러스터를 상기 네거티브 클러스터에 병합하여 생성된 것을 특징으로 하는 다중 도메인을 식별하는 자연어 대화 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140010672A KR101577890B1 (ko) | 2014-01-28 | 2014-01-28 | 자연어 대화 시스템을 위한 다중 도메인 식별 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140010672A KR101577890B1 (ko) | 2014-01-28 | 2014-01-28 | 자연어 대화 시스템을 위한 다중 도메인 식별 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150089723A KR20150089723A (ko) | 2015-08-05 |
KR101577890B1 true KR101577890B1 (ko) | 2015-12-16 |
Family
ID=53886105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140010672A KR101577890B1 (ko) | 2014-01-28 | 2014-01-28 | 자연어 대화 시스템을 위한 다중 도메인 식별 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101577890B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102574593B1 (ko) | 2018-03-29 | 2023-09-05 | 삼성전자주식회사 | 챗봇을 이용한 서비스 제공 방법 및 그 장치 |
US11347966B2 (en) | 2018-07-20 | 2022-05-31 | Samsung Electronics Co., Ltd. | Electronic apparatus and learning method of electronic apparatus |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004226881A (ja) | 2003-01-27 | 2004-08-12 | Casio Comput Co Ltd | 会話システム及び会話処理プログラム |
KR101309042B1 (ko) * | 2012-09-17 | 2013-09-16 | 포항공과대학교 산학협력단 | 다중 도메인 음성 대화 장치 및 이를 이용한 다중 도메인 음성 대화 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101005337B1 (ko) * | 2008-09-29 | 2011-01-04 | 주식회사 버즈니 | 웹 문서에서의 의견 추출 및 분석 장치 및 그 방법 |
KR101134701B1 (ko) * | 2010-08-09 | 2012-04-13 | 숭실대학교산학협력단 | 상품평 극성 분류를 위한 특징별 서술어 긍정 및 부정 사전 자동 구축 시스템 및 방법 |
-
2014
- 2014-01-28 KR KR1020140010672A patent/KR101577890B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004226881A (ja) | 2003-01-27 | 2004-08-12 | Casio Comput Co Ltd | 会話システム及び会話処理プログラム |
KR101309042B1 (ko) * | 2012-09-17 | 2013-09-16 | 포항공과대학교 산학협력단 | 다중 도메인 음성 대화 장치 및 이를 이용한 다중 도메인 음성 대화 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20150089723A (ko) | 2015-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9367526B1 (en) | Word classing for language modeling | |
CN111125343A (zh) | 适用于人岗匹配推荐系统的文本解析方法及装置 | |
US20060143576A1 (en) | Method and system for resolving cross-modal references in user inputs | |
JP2020521210A (ja) | 情報処理方法及び端末、コンピュータ記憶媒体 | |
CN112256845B (zh) | 意图识别方法、装置、电子设备和计算机可读存储介质 | |
CN104903954A (zh) | 使用基于人工神经网络的亚语音单位区分的说话人验证及识别 | |
CN110428823A (zh) | 口语理解装置和使用该装置的口语理解方法 | |
US20130035929A1 (en) | Information processing apparatus and method | |
CN100368960C (zh) | 信息处理方法和设备 | |
KR102267561B1 (ko) | 음성 언어 이해 장치 및 방법 | |
WO2022048194A1 (zh) | 事件主体识别模型优化方法、装置、设备及可读存储介质 | |
CN110246496A (zh) | 语音识别方法、系统、计算机设备及储存介质 | |
CN110381115B (zh) | 信息推送方法、装置、计算机可读存储介质和计算机设备 | |
US20210182736A1 (en) | Learning data generation device, learning data generation method, and non-transitory computer readable recording medium | |
JP2004198597A5 (ko) | ||
KR101577890B1 (ko) | 자연어 대화 시스템을 위한 다중 도메인 식별 방법 및 장치 | |
US7263486B1 (en) | Active learning for spoken language understanding | |
CN112035668B (zh) | 事件主体识别模型优化方法、装置、设备及可读存储介质 | |
CN104199811A (zh) | 短句解析模型建立方法及系统 | |
AU2019290658B2 (en) | Systems and methods for identifying and linking events in structured proceedings | |
US8266599B2 (en) | Output from changed object on application | |
CN105512145A (zh) | 信息分类方法及装置 | |
KR102069101B1 (ko) | 고객의 소리 데이터로부터 주요 자질 추출 방법 및 이를 이용한 데이터 유형 분류 방법 | |
CN114254622A (zh) | 一种意图识别方法和装置 | |
US20210133213A1 (en) | Method and system for performing hierarchical classification of data |
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 | ||
LAPS | Lapse due to unpaid annual fee |