KR20200143039A - 대화 시나리오 데이터베이스 구축 방법 및 장치 - Google Patents
대화 시나리오 데이터베이스 구축 방법 및 장치 Download PDFInfo
- Publication number
- KR20200143039A KR20200143039A KR1020190070823A KR20190070823A KR20200143039A KR 20200143039 A KR20200143039 A KR 20200143039A KR 1020190070823 A KR1020190070823 A KR 1020190070823A KR 20190070823 A KR20190070823 A KR 20190070823A KR 20200143039 A KR20200143039 A KR 20200143039A
- Authority
- KR
- South Korea
- Prior art keywords
- conversation
- scenario
- sentence
- intention pattern
- database
- 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 본 발명은 대화 시나리오 데이터베이스 구축에 관한 것으로서, 보다 상세하게는 대화 시나리오를 SNS, 라디오, 방송에서 자동으로 검색, 수집, 정제, 학습하여 자동으로 대화 영역을 확장하거나 대화 품질을 개선시키고자 하는 온톨로지 대화 관계망에 적용되는 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법에 관한 것이다.
이와 같은 목적을 달성하기 위한 본 발명의 특징은 온톨로지 대화 관계망에 적용되는 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법으로서, (a) 대화 형식의 음성 파일 또는 대화 형식의 게시글, 댓글로부터 아이디 또는 이름별로 문장을 추출하는 단계; (b) 상기 단계 (a)에서 추출된 문장으로부터 게시글, 댓글의 대화 전개에 따라 아이디 또는 이름별로 대화 문장을 트리 형태로 표현하는 단계; (c) 상기 단계 (b)의 각 트리에서 대화 시나리오를 추출하는 단계;(d) 상기 단계 (c)에서 생성된 대화 시나리오의 각 문장을 의미벡터로 표현하는 단계; (e) 상기 단계 (d)에서 생성된 대화 시나리오의 각 문장을 의도패턴으로 표현하는 단계; (f) 상기 대화 시나리오를 의도패턴과 의미벡터로 데이터베이스화 시키는 단계; 및 (g) 상기 단계 (e)에서 기존 의도패턴이 없는 문장을 새로운 의도패턴을 만드는 단계를 포함한다.
이와 같은 목적을 달성하기 위한 본 발명의 특징은 온톨로지 대화 관계망에 적용되는 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법으로서, (a) 대화 형식의 음성 파일 또는 대화 형식의 게시글, 댓글로부터 아이디 또는 이름별로 문장을 추출하는 단계; (b) 상기 단계 (a)에서 추출된 문장으로부터 게시글, 댓글의 대화 전개에 따라 아이디 또는 이름별로 대화 문장을 트리 형태로 표현하는 단계; (c) 상기 단계 (b)의 각 트리에서 대화 시나리오를 추출하는 단계;(d) 상기 단계 (c)에서 생성된 대화 시나리오의 각 문장을 의미벡터로 표현하는 단계; (e) 상기 단계 (d)에서 생성된 대화 시나리오의 각 문장을 의도패턴으로 표현하는 단계; (f) 상기 대화 시나리오를 의도패턴과 의미벡터로 데이터베이스화 시키는 단계; 및 (g) 상기 단계 (e)에서 기존 의도패턴이 없는 문장을 새로운 의도패턴을 만드는 단계를 포함한다.
Description
본 발명은 대화 시나리오 데이터베이스 구축에 관한 것으로서, 보다 상세하게는 대화 시나리오를 SNS, 라디오, 방송에서 자동으로 검색, 수집, 정제, 학습하여 자동으로 대화 영역을 확장하거나 대화 품질을 개선시키고자 하는 온톨로지 대화 관계망에 적용되는 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법에 관한 것이다.
인간은 인간 이외의 대상과 자연스럽게 대화를 주고받는 오랜 꿈을 가지고 왔다. 현재 인공지능(AI)과 빅데이터가 몰고 온 제4차 산업혁명이 진행되고 있으며, 인공지능의 핵심은 인간과 사물과의 자연스러운 대화 커뮤니케이션이다.
그러나 현재까지 대화 시나리오는 사람이 직접 시나리오를 정제해서 구축하므로, 많은 비용과 시간, 인력이 소요되었다. 이렇게 사람이 직접 시나리오를 수집하고 정제해서 구축하므로 상대적으로 많은 시간이 필요로 하게 되며, 이로써 과거의 대화를 할 수 밖에 없어 현재 발생하고 있는 사건이나 사고, 각종 트랜드나 이슈에 대한 즉각적인 대화가 가능하지 못하였다.
즉 제한된 영역에서 제한된 대화만 구사하게 되므로 대화 영역을 확장하거나 대화품질을 개선하지 못하는 한계가 있었다.
본 발명은 이와 같은 문제점을 해결하기 위하여 창안된 것으로서, 대화 시나리오를 SNS, 라디오, 방송에서 자동으로 검색, 수집, 정제, 학습하여 자동으로 대화 영역을 확장하거나 대화 품질을 개선시키고자 하는 온톨로지 대화 관계망에 적용되는 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법을 제공하는데 목적이 있다.
이와 같은 목적을 달성하기 위한 본 발명에 따른 특징은 온톨로지 대화 관계망에 적용되는 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법으로서, (a) 대화 형식의 음성 파일 또는 대화 형식의 게시글, 댓글로부터 아이디 또는 이름별로 문장을 추출하는 단계; (b) 상기 단계 (a)에서 추출된 문장으로부터 게시글, 댓글의 대화 전개에 따라 아이디 또는 이름별로 대화 문장을 트리 형태로 표현하는 단계; (c) 상기 단계 (b)의 각 트리에서 대화 시나리오를 추출하는 단계; (d) 상기 단계 (c)에서 생성된 대화 시나리오의 각 문장을 의미벡터로 표현하는 단계; (e) 상기 단계 (d)에서 생성된 대화 시나리오의 각 문장을 의도패턴으로 표현하는 단계; (f) 상기 대화 시나리오를 의도패턴과 의미벡터로 데이터베이스화 시키는 단계; 및 (g) 상기 단계 (e)에서 기존 의도패턴이 없는 문장을 새로운 의도패턴을 만드는 단계를 포함한다.
바람직하게는 상기 단계 (e) 이후, 상기 온톨로지 다차원 공간상에 상기 데이터베이스화 시킨 연속적의 의미벡터를 의미단어 또는 의미노드 그리고 의미큐브 중 하나로 표시하는 단계를 더 포함한다.
바람직하게는 상기 단계 (a)의 대화 형식의 음성 파일은 음성인식을 통하여 텍스트로 변경한 후 추출되는 것이다.
바람직하게는 상기 단계 (a)의 대화 형식의 게시글로부터의 추출은, 특정 단어(word)를 검색어로 지정하며, 이 지정된 검색어로 검색된 게시글 및 댓글을 데이터 파싱하여 추출하는 것이다.
바람직하게는 상기 단계 (a)에서 추출된 문장은 의미벡터로 자동 변환되는 것이다.
이와 같은 목적을 달성하기 위한 본 발명의 다른 특징은 대화 시나리오를 추출하는 대화 시나리오 추출부; 상기 대화 시나리오 추출부에 의하여 생성된 대화 시나리오의 각 문장을 학습하는 대화 시나리오 학습부; 상기 대화 시나리오 학습부에 의해서 생성된 의미벡터를 이용하여 대화 시나리오 각 문장의 의도패턴을 분류하는 대화 시나리오 의도패턴 분류부; 상기 대화 시나리오 의도패턴 분류부에 의해서 분류되지 않은 의도패턴에 대해서 새로운 의도패턴을 만드는 의도패턴 생성부; 상기 대화 시나리오 의도패턴과 의미벡터를 저장하는 대화 시나리오 데이터베이스; 및 상기 대화 시나리오 데이터베이스에 저장된 상기 대화 시나리오의 연속적인 의미벡터와 의도패턴을 온톨로지 다차원 공간상에 표시하는 온톨로지 관계 매핑부를 포함한다.
본 발명에 의하면, 대화 시나리오 수집, 정제, 구축을 자동화하므로 대화 시나리오 구축비용을 절감할 수 있는 효과가 있다.
또한 사람이 직접 시나리오를 수집하면, 정제해서 구축하는데 많은 시간이 필요하므로 과거의 대화를 하게 되지만, 대화 시나리오를 자동으로 수집해서 대화에 반영하기 때문에 현재 발생하고 있는 사건이나 사고, 각종 트랜드나 이슈에 대한 즉각적인 대화가 가능해서 대화 품질을 높이는 효과가 있다.
또한 다양한 주제에 대해서 끊임없이 대화 시나리오를 수집하기 때문에 다양한 관점이 반영된 주제에 대한 대화가 가능한 효과가 있다.
도 1은 본 발명에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법을 설명하기 위한 순서도.
도 2는 본 발명에 따른 대화 시스템을 위한 대화 시나리오의 데이터베이스 구축 장치를 개략적으로 도시한 도면.
도 3은 도 2에 따른 대화 시스템을 위한 대화 시나리오의 데이터베이스 구축 장치를 세부적으로 도시한 도면.
도 4 내지 도 5는 본 발명에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 중 문장 추출의 일예를 나타낸 화면.
도 6은 본 발명에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스의 구축 중 문장 분석의 일예를 나타낸 화면.
도 7은 본 발명에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 중 대화 시나리오 학습의 일예를 나타낸 화면.
도 8는 본 발명에 따라 구축된 대화 시스템을 위한 대화 시나리오 데이터베이스가 온톨로지 대화 관계망에 표시된 일예를 나타낸 도면.
도 9는 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 표현된 일예.
도 10은 본 발명에 따른 대화 시나리오 데이터페이스에 저장된 대화 시나리오가 3차원 저작도구로 표현된 화면.
도 11는 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 3차원 저작도구로 표현된 시나리오 입력 화면의 일예.
도 12은 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 3차원 저작도구로 표현된 시나리오 수정 화면의 일예.
도 13는 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 3차원 저작도구로 표현된 시나리오 삭제 화면의 일예.
도 14는 본 발명에 따른 대화 시나리오 자동 수집 및 온톨로지 대화 관계망을 이용한 연속 대화가 이루어지는 시퀀스를 블럭 다이어그램으로 도시한 도면.
도 15는 본 발명에 따른 대화 시나리오 자동 수집 및 온톨로지 대화 관계망을 이용한 연속 대화가 이루어지는 시퀀스를 순서도로써 도시한 도면.
도 16은 본 발명에 따른 온톨로지 대화 관계망을 이용한 연속 대화 중, 신규 대화문장이 입력되었을 경우, 온톨로지 대화 관계망으로 매핑하는 방법을 수행하는 순서도.
도 17은 본 발명에 따른 온톨로지 대화 관계망을 이용한 연속 대화를 이용하여 대화 품질 개선을 구현하기 위한 시퀀스를 블럭 다이어그램으로 도시한 도면.
도 18은 본 발명에 따른 온톨로지 대화 관계망을 이용한 연속 대화 시스템의 구성을 나타내는 도면.
도 19는 본 발명에 따른 온톨로지 대화 관계망 구조의 일 실시예를 도시한 도면.
도 20은 본 발명에 따른 온톨로지 대화 관계망에서 일반대화 분류 구조의 일 실시예를 도시한 도면.
도 21은 본 발명에 따른 온톨로지 대화 관계망에서 전문대화 분류 구조의 일 실시예를 도시한 도면.
도 22는 본 발명에 따른 온톨로지 대화 관계망에서 전문대화 중 병원 콜센터에서 상담원과 주고받는 대화 분류 구조의 일 실시예를 도시한 도면.
도 23은 본 발명에 따른 온톨로지 대화 관계망에서 일상대화와 감성대화 및 전문대화가 연결되는 분류 구조의 일 실시예를 도시한 도면.
도 2는 본 발명에 따른 대화 시스템을 위한 대화 시나리오의 데이터베이스 구축 장치를 개략적으로 도시한 도면.
도 3은 도 2에 따른 대화 시스템을 위한 대화 시나리오의 데이터베이스 구축 장치를 세부적으로 도시한 도면.
도 4 내지 도 5는 본 발명에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 중 문장 추출의 일예를 나타낸 화면.
도 6은 본 발명에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스의 구축 중 문장 분석의 일예를 나타낸 화면.
도 7은 본 발명에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 중 대화 시나리오 학습의 일예를 나타낸 화면.
도 8는 본 발명에 따라 구축된 대화 시스템을 위한 대화 시나리오 데이터베이스가 온톨로지 대화 관계망에 표시된 일예를 나타낸 도면.
도 9는 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 표현된 일예.
도 10은 본 발명에 따른 대화 시나리오 데이터페이스에 저장된 대화 시나리오가 3차원 저작도구로 표현된 화면.
도 11는 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 3차원 저작도구로 표현된 시나리오 입력 화면의 일예.
도 12은 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 3차원 저작도구로 표현된 시나리오 수정 화면의 일예.
도 13는 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 3차원 저작도구로 표현된 시나리오 삭제 화면의 일예.
도 14는 본 발명에 따른 대화 시나리오 자동 수집 및 온톨로지 대화 관계망을 이용한 연속 대화가 이루어지는 시퀀스를 블럭 다이어그램으로 도시한 도면.
도 15는 본 발명에 따른 대화 시나리오 자동 수집 및 온톨로지 대화 관계망을 이용한 연속 대화가 이루어지는 시퀀스를 순서도로써 도시한 도면.
도 16은 본 발명에 따른 온톨로지 대화 관계망을 이용한 연속 대화 중, 신규 대화문장이 입력되었을 경우, 온톨로지 대화 관계망으로 매핑하는 방법을 수행하는 순서도.
도 17은 본 발명에 따른 온톨로지 대화 관계망을 이용한 연속 대화를 이용하여 대화 품질 개선을 구현하기 위한 시퀀스를 블럭 다이어그램으로 도시한 도면.
도 18은 본 발명에 따른 온톨로지 대화 관계망을 이용한 연속 대화 시스템의 구성을 나타내는 도면.
도 19는 본 발명에 따른 온톨로지 대화 관계망 구조의 일 실시예를 도시한 도면.
도 20은 본 발명에 따른 온톨로지 대화 관계망에서 일반대화 분류 구조의 일 실시예를 도시한 도면.
도 21은 본 발명에 따른 온톨로지 대화 관계망에서 전문대화 분류 구조의 일 실시예를 도시한 도면.
도 22는 본 발명에 따른 온톨로지 대화 관계망에서 전문대화 중 병원 콜센터에서 상담원과 주고받는 대화 분류 구조의 일 실시예를 도시한 도면.
도 23은 본 발명에 따른 온톨로지 대화 관계망에서 일상대화와 감성대화 및 전문대화가 연결되는 분류 구조의 일 실시예를 도시한 도면.
이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 1은 본 발명에 다른 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법을 설명하기 위한 순서도이다.
도 1에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법은, 먼저 문장을 추출한다(S110). 문장의 추출은 대화 형식의 음성 파일 또는 대화 형식의 게시글, 댓글로부터 아이디 또는 이름별로 문장을 추출한다.
단계 (S110)에서 문장이 추출되면, 추출된 문장으로부터 게시글, 댓글의 대화 전개에 따라 아이디 또는 이름별로 대화 문장을 트리 형태로 표현한다(S120).
그리고 단계 (S120)에서 표현된 각 트리에서 대화 시나리오를 추출하고(S130), 생성된 대화 시나리오의 각 문장을 의미벡터로 표현한다(S140).
이어서, 생성된 대화 시나리오의 각 문장을 의도패턴으로 표현하고(S150), 상기 대화 시나리오를 의도패턴과 의미벡터로 데이터베이스화 시킨다(S160).
여기서, 기존 의도패턴이 없는 문장은 새로운 의도패턴을 만든다(S170)
이렇게 데이터베이스화 된 시나리오의 연속적의 의미벡터과 의미벡터를 온톨로지 다차원 공간상에 연속적으로 표시한다(S160).
도 1에 따른 본 발명의 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법을 도 2 내지 도 3의 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 장치를 통하여 설명하면 다음과 같다.
도 2는 본 발명에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 장치를 개략적으로 도시한 도면이며, 도 3은 도 2에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 장치를 세부적으로 도시한 도면이다.
도 2 내지 도 3에 도시된 바와 같이, 본 발명에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 장치(100)는 문장을 추출하는 문장추출부(110)와, 문장추출부(110)에 의하여 추출된 문장으로부터 대화 시나리오를 추출하는 시나리오추출부(120)와, 시나리오추출부(120)에 의하여 추출된 각 문장에서 의미벡터를 추출하는 의미벡터추출부(130)와, 의미벡터추출부(130)에 의하여 각 문장의 의도를 분류하는 의도패턴분류부 (140)와, 의도패턴분류부(140)에서 분류하지 못한 의도패턴을 생성하는 의도패턴생성부(150), 대화 시나리오를 의도패턴과 의미벡터로 저장하는 대화 시나리오 데이터베이스(160)와, 대화 시나리오 데이터베이스(160)에 저장된 대화 시나리오의 연속적인 의도패턴, 의미벡터를 온톨로지 다차원 공간상에 표시하는 온톨로지 관계 매핑부(170)을 포함한다.
문장추출부(110)와, 문장추출부(110)에 의하여 추출된 문장으로부터 대화 시나리오를 추출하는 시나리오추출부(120)와, 시나리오추출부(120)에 의하여 추출된 각 문장에서 의미벡터를 추출하는 의미벡터추출부(130)와, 의미벡터추출부(130)에 의하여 각 문장의 의도를 분류하는 의도패턴분류부 (140)와, 의도패턴분류부(140)에서 분류하지 못한 의도패턴을 생성하는 의도패턴생성부(150), 대화 시나리오를 의도패턴과 의미벡터로 저장하는 대화 시나리오 데이터베이스(160)와, 대화 시나리오 데이터베이스(160)에 저장된 대화 시나리오의 연속적인 의도패턴, 의미벡터를 온톨로지 다차원 공간상에 표시하는 온톨로지 관계 매핑부(170)을 포함한다.
문장추출부(110))은 대화 형식의 음성 파일 또는 대화 형식의 게시글, 댓글로부터 아이디 또는 이름별로 문장을 추출하는데, 이 문장추출부(110)은 대화 형식의 음성 파일을 추출하는 음성 파일 추출모듈(111)과, 대화 형식의 게시글, 댓글로부터 문장을 추출하는 게시글 추출모듈(112)을 포함하는데, 도 3에 도시된 바와 같이 콜센터 및 라디오 그리고 TV 방송 등의 대화 형식의 음성 파일은 음성 파일 추출모듈(111)을 통하여 문장이 추출되며, SNS 등에 게시된 대화 형식의 문장은 검색어 생성기(113)에 검색어가 선택되면 게시글 추출모듈(112)에 의하여 아이디 또는 이름별로 게시글, 댓글을 검색하고 게시글, 댓글을 파싱하여 문장을 추출한다. 예를 들면, 콜센터에서 제공되는 기존 음성녹취 파일을 음성 인식 후, 텍스트로부터 문장을 추출하거나, 또한 콜센터에서 고객과 상담원 간의 상담 내용을 실시간으로 음성 인식 후, 텍스트로부터 문장을 추출 할 수도 있다. 한편 SNS는 트위터나 페이스 북 등에서 다양한 주제에 대해서 대화를 나눈 게시글로부터 문장을 추출하는데, 먼저 준비된 검색어로 SNS를 검색하고, 이 검색어(특정 단어)로 검색된 게시글 링크의 각각을 추출한 뒤에, 각 링크의 게시글이 가르키는 최초로 입력된 게시글의 처음부터 그 게시글로부터 시작된 토론에 대한 마지막 게시글(댓글) 까지를 하나의 대화 주제로 생각하여 해당 대화 주제에 대한 게시글(댓글)을 모두 추출한다.
시나리오추출부(120)는 문장추출부(110)에 의하여 대화 형식의 음성 파일 또는 대화 형식의 게시글, 댓글로부터 아이디 또는 이름별로 대화 문장을 추출한다.
예를 들어, 트위터의 경우, 하나의 게시글에는 하나 이상의 댓글이 달릴 수 있으며, 이 댓글에 대해서 또 다른 댓글이 나무의 줄기처럼 하위에 연속적으로 파생해서 달린다. 이렇게 게시글, 댓글의 대화 전개에 따라 트리 모양으로 아이디 또는 이름별로 대화 문장이 연속적으로 표시되며, 하나의 게시글로 시작되는 하나의 트리에서는 댓글 수 만큼, 시나리오가 생기며, 다 다음 댓글 수 만큼 시나리오가 가지를 치면서 많아진다.
즉, 하나의 게시글에 처음 댓글이 3개 달렸으며, 이중 하나의 댓글에 댓글이 2개 달렸다면 총 대화 시나리오는 4개가 된다.
의미벡터추출부(130)는 대화 시나리오를 구성하는 각 문장을 의미벡터로 표현한다. 기존에 word2vec, sentence2vec 알고리즘에 의해서 단어 또는 문장을 의미벡터로 표현하는 기술은 공지된 기술이다. 이 기술을 활용하여 대화 시나리오를 구성하는 각 문장을 의미벡터로 표현할 수 있다.
의도패턴분류부(140)는 대화 시나리오를 구성하는 각 문장의 의도패턴을 분류한다. 의도 패턴 분류하는 방법은 DNN, CNN, SVM 등 알고리즘을 이용하여 정답으로 분류한 의도패턴을 학습하여, 학습모델을 생성하고, 이 학습 모델에 의해서 새롭게 입력되는 문장에 대해서 의도패턴을 분류할 수 있다.
의도패턴생성부(150)는 의도패턴분류부(140)에 의해서 분류하지 못한 의도패턴을 새롭게 생성하는 역할을 수행한다. 이때 의도패턴을 분류하지 못한 경우는 특정 의도패턴으로 분류했을 때, 특정 의도패턴으로 분류한 확률값(예: 0.5 이하)이 예상치(예: 0.8)보다 너무 낮을 경우도 포함한다. 이때, 예상치는 학습문장으로 학습한 알고리즘을 테스트문장으로 테스트했을 때, 정답으로 분류한 확률값 평균(0.95)보다 10~20% 정도 낮은 수이다.
의도패턴생성부(150)에서는 하나의 문장으로부터 영역 후보 단어, 동작(엑션) 후보 단어를 추출하고 워드넷 등을 이용하여 상위어, 하위어 정보를 이용해서, 상위어로 구성된 영역단어와 동작단어 조합으로 의도패턴을 생성한다.
대화 시나리오 데이터베이스(160)는 대화 시나리오가 의도패턴과 의미벡터로 데이터베이스화 되어있다. 이때 대화 시나리오는 문장단위 질문과 답변으로 구성된 의도패턴과 의미벡터가 연속적으로 저장된다. 문장, 시나리오의 의미벡터는 인간이 직관적으로 파악하는데 도움을 주기 위해서 의도패턴으로도 표현한다.
온톨로지 관계 매핑부(170)는 앞서 대화 시나리오의 연속적인 의도패턴, 의미벡터가 저장된 대화 시나리오 데이터베이스(160)가 구축되면, 온톨로지 대화 관계망에 이 저장된 연속적인 의도패턴, 의미벡터의 대화 시나리오를 매핑 및 표시하는 기능을 수행한다. 온톨로지 대화 관계망은 300~600개의 벡터로 구성된 다차원공간이지만, 다차원 벡터를 물리적으로 표현할 수 없기 때문에 3차원으로 공간압축해서 표시한다. 온톨로지 대화 관계망은 3차원 공간상의 하나의 점을 노드로 표현하는데, 각 노드는 데이터베이스(160)에 저장된 의도패턴, 의미벡터로부터 나타낼 수 있다.
온톨로지 대화 관계망에는 온톨로지 관계 매핑부(170)을 통하여 대화 시나리오 데이터베이스(160)에 저장된 대화 시나리오의 연속적 의도패턴, 의미벡터를 업로드 할 수 있고, 시나리오 자체를 하나의 의미벡터로 만들어서 업로드 할 수 있으며, 유사 문장, 유사 시나리오를 검색할 때에는 입력한 시나리오와 가장 가까운 시나리오를 의미벡터 공간상에서 거리 계산에 의해서 매핑 할 수 있다. 이때 의미벡터 공간상에 문장, 시나리오를 표현할 수 있지만, 문장, 시나리오는 각각 별개의 의미공간을 가진다. 그리고 문장, 시나리오의 의미공간을 하나의 의미공간에 사상하여 동시에 문장, 시나리오를 공간상에 표현할 수도 있다. 사상하는 방법 중 문장은 단어 벡터의 합이나 곱 등으로 표현하고, 시나리오는 문장벡터의 합이나 곱 등으로 표현하는 방법 등을 이용하며, 문장 시나리오의 의미벡터는 인간이 직관적으로 파악하는데 도움을 주기 위해서 하나 이상의 의도패턴으로 표시된다.
한편, 대화 시나리오 데이터베이스(160)에 저장된 대화 시나리오는 온톨로지 관계 매핑부(170)를 통하여 온톨로지 대화 관계망에서 관리자가 대화 시나리오를 직접 입력할 수 있으며, 시나리오를 구성하는 문장의 관계를 다음의 [실시예 1]과 같이 의미패턴의 연속성(sequence)으로 표시한다.
[실시예 1]
시나리오1 = (질문1) - (답변1) - (질문2) - (답변2) .... (질문N) - (답변N)
시나리오1 = (어디서 봤더라?) - (제 이름이 궁금하세요?) - (아니 너를 봤던 장소 말이야) - (우리가 마지막 만났던 장소 말이죠?) .... (그래) - (아마도, 제 생각에는 우리가 지난 얄리 주체 세미나에서 마지막으로 봤던 것 같아요.)
시나리오1 = (이름+모호) - (이름+확인) - (장소+모호) - (장소+확인) .... (별명+승낙) - (별명+답변)
여기서 의도패턴 "이름모호"는 영역단어 "이름"과 동작단어 "모호"가 결합된 것이며, "어디서 봤더라?"와 같은 문장을 대표하는 의도패턴이다.
하나의 의도패턴은 하나 이상의 문장을 의미적으로 표현하며, 같은 뜻을 가진 수많은 문장을 대표하는 대표단어 라고도 할 수 있다.
*그리고, "의미모호", "이름확인" 등의 의미패턴은 "(질문1)", "(답변1)"처럼 하나의 시나리오를 구성하는 각각의 질문, 답변의 연속성을 대표하기도 한다.
도 4 내지 도 5는 본 발명에 따른 대화 시스템을 위한 대화 시나리오의 데이터베이스 구축 중 문장 추출의 일예를 나타낸 화면이다.
도 4에 도시된 바와 같이 문장 추출은 디비피디아(DBpedia)나 워드넷(WordNet)으로부터 단어(Word)를 추출하여, 이 단어를 검색어로 활용하며, 검색어에 의하여 크롤링 방식 등으로 SNS 게시글 및 댓글 데이터를 웹을 통해서 파싱한다. 이는 트위터에서 게시물이 올라오면 리트윗하면서 특정 주제에 대해서 대화를 주고받는 형식과 비슷하게 댓글이 달리므로 가능하다.
도 5는 처음 게시물을 올린 사용자의 글에 대해서 리트윗하면서 다른 사용자가 계속 댓글을 달게 되며, 이때 대화 전개가 트리형태와 유사하다. 여기서 각각의 트리를 모두 대화 시나리오로 보며 이해를 돕기 위하여 댓글 아이디 별로 대화 시나리오를 표현하면 다음 [실시예 2]와 같다.
[실시예 2]
시나리오1 : ffebreze - hatter365 - fffebreze
시나리오2 : ffebreze - ffebreze - Teahya - ffebreze - Teahya
도 6은 본 발명에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 중 의도패턴 분석의 일예를 나타낸 화면으로, 도시된 바와 같이 게시글을 파싱한 뒤에는 해당 게시글이 대화 시나리오에서 어떤 의도를 내포하는지 머신러닝의 지도 학습에 의하여 대화 의도패턴을 분류한다.
도 7은 본 발명에 따른 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 중 대화 시나리오 학습의 일예를 나타낸 화면이다. 하나의 주제에 대해서 질문, 답변이 번갈아가면서 나타나지 않고, 질문과 답변이 중복되어서 발생할 수도 있어서(예; 질문1, 답변1, 질문2, 질문2, 답변2, 질문3, 답변3, 답변3, 답변3 등) 이러한 질문, 답변 중에 시나리오에 적합한 질문과 답변을 선별하고, 도 7에 도시된 바와 같이 선별된 대화 시나리오가 하나의 질문과 그 질문에 대한 하나의 답변의 반복 학습을 보여주고 있다.
도 8는 본 발명에 따라 구축된 대화 시스템을 위한 대화 시나리오 데이터베이스가 온톨로지 대화 관계망에 매핑 된 일예를 나타낸 화면이다.
시나리오는 문장단위 질문과 답변으로 구성된 의미벡터의 시퀀스로 표시된다. 하나의 시나리오를 구성하는 각각의 질문과 답변은 다차원 의미벡터를 가지고 있으며, 각각 질문과 답변 문장이 하나의 의도패턴으로 자동적으로 각각 매핑된다.
대량의 시나리오가 다차원 의미벡터값으로 입력되면, 이 입력된 의미벡터값과 기존 의도패턴 사이의 벡터 거리를 비교하고, 일정한 값 안에 들어왔을 때, 입력된 의미벡터값에 기존 의도패턴을 부여할 수도 있다.
대량의 시나리오가 다차원 의미벡터값 뿐만 아니라, 의도패턴과 대화문장이 동시에 입력되어 들어올 때에는 각각의 의도패턴 공간으로 대화 시나리오(각각의 질문 문장, 답변 문장)를 매핑하면 된다. 이때, 의도패턴은 시나리오의 "대화문장"을 자동으로 분석해서 의도패턴을 추출할 수도 있고, 사람이 직접 "대화문장"에 어울리는 의도패턴을 부착할 수도 있다.
[실시예 3]
시나리오1 = [의도패턴][대화문장][의미벡터], [의도패턴][대화문장][의미벡터] ....
시나리오1 = [이름모호][어디서 본 것 같아요][2.382, 6.108, ...], [이름확인][제이 이름이 궁금하세요?][8.730, 1,383, ....] ....
[의도패턴]를 자동으로 분류하는 방법은 자연어처리 방법 중, 규칙기반, 통계기반, 머신러닝 기반으로 분석할 수 있으며, 머신러닝 기반의 경우, 지도학습에 의한 학습모델을 바탕으로 입력된 문장의 의도패턴을 분류하게 된다.
도 9은 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 표현된 일예로서, 대화 시나리오는 보통 2turn(질문1-답변1-질문2-답변2 관계) 이상으로 표시되고, 평면적으로 하나의 공간에 표시할 수 있는 시나리오 개수도 제한 적이며, 현재 시나리오와 공간적으로 가까운 시나리오도 알 수 없는 문제가 발생한다. 또한, 시나리오를 입력하거나 수정하더라도, 다른 시나리오와의 의미 공간상의 상관관계를 전혀 알 수 없는 문제점이 있다.
대화 시나리오는 의도패턴의 연속적인 나열로써 표시하며, 그림 상단 첫 번째 시나리오처럼, "이름모호", "C이름확인", "C승낙", "KE이름아이유"처럼 중복을 방지하기 위해서 특정 문자와 결합하여 표시할 수도 있다.
도 10은 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 3차원 시나리오 저작도구로 표현된 화면으로, 도 10과 같이 시나리오는 3차원 공간상에 표시할 수 있다. 시나리오의 각 질문과 답변은 하나의 의도패턴으로 표시된다. 각 시나리오에 소속된 의도패턴 사이의 의미적인 밀접성에 따라 가까운 공간상에 표시되기도 하고 멀리 공간상에 표시되기도 하기 때문에, 시나리오를 구성하는 의도패턴 사이의 의미관계 파악이 훨씬 쉽다.
도 11는 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 3차원 시나리오 저작도구로 표현된 시나리오 입력 화면의 일예로서, 도 11에 도시된 바와 같이 시나리오는 우측 의도패턴을 좌측 여백 공간으로 드래그해서 의도패턴의 시퀀스(예: 주말일정-일정답변-취미질의-취미답변)로 하나의 시나리오를 표현하고, 이렇게 시나리오 입력이 완료되면 3차원 대화 관계망 속에 시나리오가 자동으로 매핑된다. 그리고 우측 의도패턴은 모두 다차원 의미벡터 값을 가지고 있으며, 영역단어를 추출해서 조합(주말+일정)해서 만들거나, 해당 의도패턴을 구성하는 많은 문장의 의미벡터합이나 곱으로 만들 수도 있다.
우측 의도패턴(예:주말일정확인)는 다양한 문장을 대표하며, "주말일정확인"을 함의하는 아래의 [표 1]과 같은 다양한 문장구성을 가진다.
의도패턴 | 문장 예 |
주말일정확인 | 주말 일정이 어떻게 되세요? |
주말 일정을 알려주세요. | |
주말 일정이 궁금해요. | |
주말 일정을 말해줘요. | |
주말 일정이 있나요? |
도 12은 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 3차원 시나리오 저작도구로 표현된 시나리오 수정 화면의 일예로서, 검색 기능에 의해서 시나리오를 검색할 수 있으며, 검색된 시나리오를 수정하는 기능을 제공한다. 시나리오가 수정되면 3차원 공간상에서 즉시 수정된 시나리오가 반영된다.
도 13는 본 발명에 따른 대화 시나리오 데이터베이스에 저장된 대화 시나리오가 3차원 시나리오 저작도구로 표현된 시나리오 삭제 화면의 일예로서, 시나리오는 삭제할 수 있으며, 삭제된 시나리오는 3차원 공간상에서도 완전히 삭제되어서 더 이상 볼 수 없게 된다.
도 14는 본 발명에 따른 대화 시나리오 자동 수집 및 온톨로지 대화 관계망을 이용한 연속 대화가 이루어지는 시퀀스를 블럭 다이어그램으로 도시한 도면이고, 도 15는 본 발명에 따른 대화 시나리오 자동 수집 및 온톨로지 대화 관계망을 이용한 연속 대화가 이루어지는 시퀀스를 순서도로써 도시한 도면이다.
앞서 전술한 바와 같이, 온톨로지 대화 관계망은 300~600개의 벡터로 구성된 다차원벡터공간이지만, 다차원 벡터를 물리적으로 표현할 수 없기 때문에 3차원으로 공간압축(PCA 등 공간압축 알고리즘 사용)해서 표시한다. 온톨로지 대화 관계망은 3차원 공간상의 하나의 점을 노드로 표현하는데, 각 노드는 단어 의미벡터, 문장의미벡터, 시나리오 의미벡터를 나타낼 수 있다. '온톨로지 대화 관계망'이라 할 때는 그러한 노드 및, 노드 간의 연결에 의한 시나리오 구성 등의 전체 구조를 표현하며, '온톨로지 대화 관계망 데이터베이스'라 할 때는 그러한 데이터 및 구조 관계를 저장하고 있는 저장부를 표현하나, 이하에서는 큰 의미 구별없이 혼용하여 사용하기로 한다.
또한 전술한 바와 같이, 의도패턴은, 유사한 의미의 여러 문장을 대표하는 문구이며, 하나의 단어로 이루어질 수도 있고, 여러 단어의 결합으로 이루어질 수도 있다. 예를 들어, 의도패턴 "이름모호확인"은 영역단어 "이름"과 영역단어 "모호", 동작단어 "확인"이 결합된 문구이며, "이름", "모호", "확인"의 의미벡터가 결합된 새로운 의미벡터이기도 하다. "어디서 봤더라"와 같은 문장을 대표하는 문구임은 앞서 설명한 바와 같다. 즉, 의도패턴 역시 온톨로지 대화 관계망 공간에서 하나의 의미벡터에 의해 나타낼 수 있으며, 하나의 노드를 가진다.
시나리오는 3차원의 온톨로지 대화 관계망 공간상에 표시할 수 있으며, 시나리오의 각 질문과 답변은 하나의 의미벡터로 표시될 수도 있다. 각 시나리오에 소속된 의미벡터 사이의 의미적인 밀접성에 따라 가까운 공간상에 표시되기도 하고 멀리 떨어진 공간상에 표시되기도 하기 때문에, 시나리오를 구성하는 노드사이의 의미관계 파악이 훨씬 쉽다.
이하에서는 도 14의 블럭 다이어그램 시퀀스 및 도 15의 순서도를 참조하여 온톨로지 대화 관계망을 이용한 연속 대화 수행과정을 설명한다.
먼저, 사용자가 말을 할 경우, 본 발명의 온톨로지 대화 관계망을 이용한 연속 대화 시스템(200, 도 18 참조)에 사용자의 음성이 입력된다(S210). 온톨로지 대화 관계망을 이용한 연속 대화 시스템(200)은 입력받은 음성에 대한 문장이해를 위해 문장을 분석한다(S220). 온톨로지 대화 관계망을 이용한 연속 대화 시스템(200)은 온톨로지 대화 관계망 데이터베이스로부터, 분석된 대화문장에 대하여, 해당 대화문장을 대표하는 의도패턴이 상기 대화문장과 매칭되어 있는지 파악한다(S230).
의도패턴이 매칭되어 있지 않은 경우(S240), 해당 대화문장에 대하여 의도패턴을 결정하여 상기 대화문장에 매칭시켜 온톨로지 대화 관계망 데이터베이스에 저장하는데(S250), 이에 대하여는 도 16을 참조하여 상세히 후술한다.
상기 대화문장에 의도패턴이 매칭되어 있지 않아 새로운 의도패턴을 결정하여 상기 대화문장에 매칭시킨 경우든지, 또는 상기 대화문장에 이미 의도패턴이 매칭되있는 경우든지, 해당 대화문장에 의도패턴이 매칭되어 온톨로지 대화 관계망 데이터베이스에 저장된 후, 온톨로지 대화 관계망 데이터베이스에서의 대화 시나리오에 따라, 상기 대화문장에 매칭된 의도패턴(이하 '제1 의도패턴'이라 한다)에 이어지는 의도패턴(이하 '제2 의도패턴'이라 한다)을 추출하고(S260), 해당 제2 의도패턴에 포함된 대화문장 중 하나를 선택하여(S270), 선택된 대화문장을 사용자에게 음성으로 출력하게 된다(S280). 예를 들어 제1 의도패턴은 현재 사용자가 말하여 입력된 질문 대화문장을 대표하는 의도패턴일 수 있고, 제2 의도패턴은 이에 대하여 온톨로지 대화 관계망을 이용한 연속 대화 시스템(200)이 답변하기로 결정한 답변 대화문장을 대표하는 의도패턴일 수 있다.
온톨로지 대화 관계망 데이터베이스에서의 대화 시나리오에 따라, 상기 대화문장에 매칭된 제1 의도패턴에 이어지는 의도패턴이 다수개 존재하는 경우가 있을 수 있다. 이러한 경우는 상기 다수개의 각 의도패턴의 시나리오에 부여되어 있는 가중치가 가장 높은 의도패턴을 제2 의도패턴으로 추출하도록 할 수 있다. 예를 들어 제1 의도패턴에 이어지는 시나리오가, 제1 의도패턴->'A'(가중치 0.7), 제1 의도패턴->'B'(가중치 0.2), 제1 의도패턴->'C'(가중치 0.1)와 같이 3가지가 있을 경우, 제1 의도패턴->'A'(가중치 0.7)로 결정하여 의도패턴 A를 제2 의도패턴으로 결정할 수 있는 것이다. 이와 같은 가중치는, 평소 사용자와의 대화를 진단 및 분석하는 대화품질 관리를 통해 미리 설정해 놓을 수 있는데, 이에 대하여는 도 17을 참조하여 후술한다.
도 16은 본 발명에 따른 온톨로지 대화 관계망을 이용한 연속 대화 중, 신규 대화문장이 입력되었을 경우, 온톨로지 대화 관계망으로 매핑하는 방법을 수행하는 순서도이다.
새로운 시나리오가 입력되면, 해당 시나리오의 질문과 답변 문장의 의미벡터값을 추출하고, 해당 질문 답변 의미벡터의 대화의도를 각각 분류해서 입력 시나리오("대화의도(의도패턴), 대화문장, 의미벡터"의 연속된 리스트)를 대화 관계망에 매핑한다.
즉, 사용자에 의해 입력된 대화문장에 의도패턴이 매칭되어 있지 않은 경우, 즉 새로운 시나리오가 입력된 경우(S240), 해당 대화문장의 의미벡터를 도출하고(S251), 상기 의미벡터로부터 상기 대화문장에 해당하는 의도패턴을 분류한다(S252). 의도패턴을 분류하는 방법은, 규칙기반, 통계기반, 머신 러닝(machine learning) 기반 중 하나 이상의 방법을 사용할 수 있다. 여기서 머신 러닝은, 도 14에서 '대화 시나리오 학습' 블럭에 해당된다.
상기 대화문장에 해당하는 의도패턴이 분류된 경우(S252), 그 의도패턴을 상기 대화문장의 의도패턴으로 결정하여 상기 대화문장에 매칭시켜 온톨로지 대화 관계망 데이터베이스에 저장한다(S253). 이때 전술한 바와 같이 분류된 의도패턴의 연속된 리스트, 대화문장의 연속된 리스트, 의미벡터의 연속된 리스트를 온톨로지 대화 관계망 데이터베이스에 저장할 수 있다.
상기 대화문장에 해당하는 의도패턴이 분류되지 않은 경우(S252), 상기 의미벡터가 가리키는 노드와 가장 가까운 노드에 매핑되어 있는 의도패턴을 온톨로지 대화 관계망 데이터베이스로부터 파악하여, 그 파악된 의도패턴을 상기 대화문장의 의도패턴으로 결정하여 상기 대화문장에 매칭시켜 온톨로지 대화 관계망 데이터베이스에 저장하며(S254), 이때도 역시 분류된 의도패턴의 연속된 리스트, 대화문장의 연속된 리스트, 의미벡터의 연속된 리스트를 온톨로지 대화 관계망 데이터베이스에 저장할 수 있다.
이때, 의미벡터가 가리키는 노드와 가장 가까운 노드에 매핑되어 있는 의도패턴은, 단일 단어일 수도 있고, 또는 단어의 조합으로 생성된 의미벡터가 가리키는 새로운 단어일 수도 있다.
하나의 시나리오는 질문 답변의 연속된 쌍으로 표현할 수 있는데, 각 질문 답변이 모여서 하나의 시나리오를 형성하듯이, 시나리오는 특정 대화 영역 정보(교육, 문학, 상식, 일상대화, 스포츠, 영화 등)를 가지고 있으며, 시나리오도 의도패턴의 조합으로 나타낼 수 있다.
시나리오 분류도 규칙기반, 통계기반, 머신 러닝 기반 중 하나 이상의 방법을 사용하여 각 시나리오를 분류할 수 있다. 따라서, 각 문장의 대화의도를 분류하기 전에 시나리오 분류를 먼저 선택하여, 해당 시나리오 분류에 속하는 대화의도(의도패턴)를 먼저 탐색하여, 검색시간을 줄일 수도 있다.
도 17은 본 발명에 따른 온톨로지 대화 관계망을 이용한 연속 대화를 이용하여 대화품질 개선을 구현하기 위한 시퀀스를 블럭 다이어그램으로 도시한 도면이다.
사용자는 시스템과 대화를 진행하면서 사용자의 반응이 긍정적인지 부정적인지 즉각적으로 알 수 있다. 긍정적인 반응, 부정적인 반응, 무시 반응, 화제 변경 반응 등 사용자의 반응은 사용자의 대화문장을 분석해서 알 수 있으며, 이때, 규칙기반, 통계기반, 머신러닝기반 등 다양한 분석 방법을 사용할 수 있다.
사용자 반응이 긍정적일 때, 현재 시나리오를 선호 대화 시나리오라고 인식할 수 있으며, 가중치 조정 등을 통해서 현재 시나리오가 채택될 확률을 높여서, 선호 시나리오가 계속 선택되고, 비 선호 시나리오는 우선 순위가 밀리게 하는 등, 실시간 사용자 반응을 통해서 지속적으로 대화 시나리오를 관리하여, 궁극적으로 연속 대화를 하면 할수록 대화품질이 개선되도록 하는 것을 목표로 한다.
이와 같은 과정을 도 17을 참조하여 설명하면, 지속적인 대화품질 관리는, 평소 사용자와 본 발명의 온톨로지 대화 관계망을 이용한 연속 대화 시스템(200) 간의 대화 시나리오 이력을 통해 이루어진다. 즉, 평소 사용자로부터 입력되는 문장을 분석하고, 분석된 대화문장으로부터 사용자의 반응을 분석한다. 사용자 반응이 긍정적인 것으로 분석된 경우 해당 대화문장 또는 해당 대화문장의 의도패턴으로 이어지는 대화 시나리오가 선택될 가능성을 높게 설정하고, 사용자 반응이 부정적인 것으로 분석된 경우 해당 대화문장 또는 해당 대화문장의 의도패턴으로 이어지는 대화 시나리오가 선택될 가능성을 낮게 설정하는 것이다.
여기서 긍정적 또는 부정적이라 함은 매우 포괄적으로 사용한 용어이다. 도 17의 예로서 도시한 바와 같이, 칭찬 반응, 긍정적인 반응, 부정적인 반응, 무시 반응, 화제 변경 반응 등, 세부적으로 나눌 수도 있지만, 이 모든 것을 포괄하는 것으로 긍정적 또는 부정적 반응으로 설명할 수 있다. 이는 2 종류의 반응으로 분석한다는 것이 아니라, 일종의 긍정도(degree) 또는 부정도(degree)를 준다는 것이 더 정확한 표현일 것이다. 즉, 문장분석에 의한 사용자의 반응이 더 호응적이고 좋은 반응일수록, 피드백을 통해 그와 같은 반응이 나온 대화 시나리오가 향후 선택될 가능성을 더 높게 하고, 반대일수록 그와 같은 반응이 나온 대화 시나리오가 향후 선택될 가능성을 더 낮게 하는 것이다.
향후 대화 시나리오가 선택될 가능성의 설정은, 해당 사용자 반응이 나온 대화 시나리오에, 기 설정된 기준에 따라 선호/비선호 대화 시나리오와 관련한 가중치를 부여함으로써 이루어질 수 있다. 이로써 향후 가중치가 높은 대화 시나리오가 선택될 확률을 높게 하는 것이다.
이때 사용자 반응의 분석은, 사용자의 대화문장을 규칙에 따라 분석함을 통하여 수행하거나(규칙기반), 대화문장의 통계를 기반하여 수행하거나(통계기반), 머신러닝(machine learning) 방식으로 수행(머신러닝 기반)할 수 있다.
또는 상기 사용자 반응의 분석은, 온톨로지 대화 관계망 데이터베이스에서 상기 사용자의 대화문장이 해당하는 의도패턴에 대한, 기 분석되어 매핑되어 있는 사용자 선호도에 의해 이루어질 수도 있다. 즉, 온톨로지 대화 관계망 데이터베이스 상에서 의도패턴 공간과, 사용자 선호도 공간이 별도로 구비될 수도 있고, 이때 각 의도패턴 공간의 특정 의도패턴 노드와 사용자 선호도 공간의 동일 노드의 사용자 선호도가 매핑되도록 할 수 있다. 즉, 사용자의 그 의도패턴에 대하여 사용자 반응으로 분석된 사용자 선호도가 기 매핑되어 있어, 이로부터 해당 대화에 대한 가중치를 설정할 수도 있는 것이다.
도 18은 본 발명에 따른 온톨로지 대화 관계망을 이용한 연속 대화 시스템의 구성을 나타내는 도면이다.
제어부(201)는 온톨로지 대화 관계망을 이용한 연속 대화 시스템의 상기 각 구성요소를 제어하여 온톨로지 대화 관계망을 이용한 연속 대화와 관련한 일련의 처리를 수행한다.
음성입력부(202)는 사용자의 음성을 입력받는다.
문장분석부(203)는 상기 입력받은 음성으로부터 문장분석을 수행한다.
대화관리부(204)는 온톨로지 대화 관계망 데이터베이스로부터, 분석된 대화문장에 대하여 해당 대화문장을 대표하는 의도패턴(이하 '제1 의도패턴'이라 한다)에 이어지는 의도패턴(이하 '제2 의도패턴'이라 한다)을 추출하고, 해당 제2 의도패턴에 포함된 대화문장 중 하나를 출력 대화문장으로 선택하는 역할을 수행한다. 또한 대화관리부(204)는, 온톨로지 대화 관계망 데이터베이스에서의 대화 시나리오에 따라, 상기 대화문장에 매칭된 제1 의도패턴에 이어지는 의도패턴이 다수개 존재하는 경우, 각 의도패턴으로의 시나리오에 부여되어 있는 가중치가 가장 높은 의도패턴을 제2 의도패턴으로 추출하는 역할을 수행할 수도 있다.
신규 시나리오 처리부(206)는 분석된 대화문장에 대하여 의도패턴이 매칭되어 있지 않은 경우, 해당 문장에 대한 새로운 의도패턴을 결정하여 상기 문장에 매칭시켜 온톨로지 대화 관계망 데이터베이스에 저장하고, 결정된 의도패턴을 상기 대화관리부에 전달하는 역할을 수행한다.
상기 신규 시나리오 처리부는, 입력받은 대화문장에 의도패턴이 매칭되어 있지 않은 경우, 해당 대화문장의 의미벡터를 도출할 수 있다. 도출된 의미벡터로부터, 상기 대화문장에 해당하는 의도패턴을 분류한다. 상기 대화문장에 해당하는 의도패턴이 분류된 경우, 그 의도패턴을 상기 대화문장의 의도패턴으로 결정하여 상기 대화문장에 매칭시켜 온톨로지 대화 관계망 데이터베이스에 저장하고, 상기 대화문장에 해당하는 의도패턴이 분류되지 않은 경우, 상기 의미벡터가 가리키는 노드와 가장 가까운 노드에 매핑되어 있는 의도패턴을 온톨로지 대화 관계망 데이터베이스로부터 파악하여, 그 파악된 의도패턴을 상기 대화문장의 의도패턴으로 결정하여 상기 대화문장에 매칭시켜 온톨로지 대화 관계망 데이터베이스에 저장하고, 결정된 의도패턴을 상기 대화관리부에 전달하는 역할을 수행할 수 있다.
도 16을 참조하여 전술한 바와 같이, 상기 의미벡터가 가리키는 노드와 가장 가까운 노드에 매핑되어 있는 의도패턴은, 단일 단어 또는, 단어의 조합으로 생성된 의미벡터가 가리키는 새로운 단어일 수 있다.
대화품질 관리부(205)는, 상기 분석된 대화문장으로부터, 사용자의 반응을 분석하여, 사용자 반응이 긍정적인 것으로 분석된 경우 해당 대화문장 또는 해당 대화문장의 의도패턴으로 이어지는 대화 시나리오가 선택될 가능성을 높게 설정하고, 사용자 반응이 부정적인 것으로 분석된 경우 해당 대화문장 또는 해당 대화문장의 의도패턴으로 이어지는 대화 시나리오가 선택될 가능성을 낮게 설정함으로써 대화 품질관리를 수행한다. 이때 도 17을 참조하여 전술한 바와 같이, 상기 대화 시나리오가 선택될 가능성의 설정은, 기 설정된 기준에 따라 가중치를 부여함으로써 이루어질 수 있다. 또한 사용자 반응의 분석은, 상기 대화문장을 규칙에 따라 분석함을 통하여 수행하거나(규칙기반), 대화문장의 통계를 기반하여 수행하거나(통계기반), 머신러닝(machine learning) 방식으로 수행(머신러닝기반)할 수 있다. 또는 사용자 반응의 분석은, 온톨로지 대화 관계망 데이터베이스에서 상기 사용자의 대화문장이 해당하는 의도패턴에 대한, 기 분석되어 매핑되어 있는 사용자 선호도에 의해 이루어질 수도 있는데, 이에 대하여는 도 17을 참조하여 상세히 설명한 바 있다.
대화출력부(207)는상기 대화관리부에서 선택된 대화문장을 사용자에게 음성 등으로 출력하는 역할을 수행한다.
도 19는 본 발명에 따른 온톨로지 대화 관계망 구조의 일 실시예를 도시한 도면이다.
즉, 도 19의 실시예를 참조하면, 온톨로지 대화 관계망의 대화는 일반대화 도메인, 전문대화 도메인, 또는 필요에 따라 다른 새로운 도메인을 설정하여 그러한 도메인 등으로 분류될 수 있다. 즉, 온톨로지 대화 관계망 공간에 매핑되어 있는 의도패턴 등의 수많은 노드는, 이미 각각 일반대화, 전문대화 등의 영역으로 이미 설정되어 있을 수 있다. 즉, 각 문장에 대한 의미벡터를 구할 경우, 문장의 의미에 따라 각 의미벡터가 가리키는 노드는, 온톨로지 대화 관계망 공간상에서 정해진 분류의 영역을 가리키도록 구성되어 있을 수 있다. 물론 일반대화 또는 전문대화의 하부에 세부적 분류를 한 경우도 마찬가지 방식일 수 있다.
일반대화(일상대화, 상식대화, 주제대화 등)는 다양한 주제에 대해서 대화 관계망(Network)속의 대화 시나리오에 따라 대화를 전개한다.
전문대화(예매, 예약, 구입 등)는 특정 목적의 대화 전략(Strategy)에 따라 사용자에게 특정정보(Argument)를 얻어서 과제 수행을 위한 대화를 수행한다. 예를 들자면, KTX예약의 경우 예약시간, 동행자 수, 좌석종류 등 예약에 필요한 정보를 사용자에게 물어봐서, 해당 정보가 충족된 뒤에야 예약을 마무리 하게 된다. 따라서, 특정 목적(Task)에 맞는, 대화 절차(Flow)를 따라야 한다.
이와 같은 방식으로 온톨로지 대화 관계망에서 일반대화와 전문대화가 자유롭게 이루어질 수 있다.
이하 도 20 내지 도 23은 이와 같이 온톨로지 대화 관계망에서 분류된 대화의 예를 나타낸다.
도 20은 본 발명에 따른 온톨로지 대화 관계망에서 일반대화 분류 구조의 일 실시예를 도시한 도면이다.
일반대화에는 일상대화, 상식대화, 주제대화, 감성대화, 주제대화 등이 올 수 있으며, 다양한 주제에 대해서 끊임없이 대화 포커스를 이동시키면 대화가 가능하다.
도 21은 본 발명에 따른 온톨로지 대화 관계망에서 전문대화 분류 구조의 일 실시예를 도시한 도면이다.
전문대화는 예매, 예약, 구입 등 특정 목적기반 대화를 진행하는 것을 말한다.
도 22는 본 발명에 따른 온톨로지 대화 관계망에서 전문대화 중 병원 콜센터에서 상담원과 주고받는 대화 분류 구조의 일 실시예를 도시한 도면이다.
도 23은 본 발명에 따른 온톨로지 대화 관계망에서 일상대화와 감성대화 및 전문대화가 연결되는 분류 구조의 일 실시예를 도시한 도면이다.
일상대화와 감성대화, 전문대화를 자유롭게 오고가면서 연속적으로 대화가 이루어질 수 있다.
이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
100: 대화 시나리오 데이터베이스 구축 장치
110: 문장추출부
111: 음성 파일 추출 모듈
112: 게시글 추출 모듈
113: 검색어 생성기
120: 문장분석부
130: 대화 시나리오 생성부
140: 대화 시나리오 학습부
150: 대화 시나리오 데이터베이스
160: 온톨로지 관계 매핑부
200: 온톨로지 대화 관계망을 이용한 연속 대화 시스템
110: 문장추출부
111: 음성 파일 추출 모듈
112: 게시글 추출 모듈
113: 검색어 생성기
120: 문장분석부
130: 대화 시나리오 생성부
140: 대화 시나리오 학습부
150: 대화 시나리오 데이터베이스
160: 온톨로지 관계 매핑부
200: 온톨로지 대화 관계망을 이용한 연속 대화 시스템
Claims (6)
- 온톨로지 대화 관계망에 적용되는 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법으로서,
(a) 대화 형식의 음성 파일 또는 대화 형식의 게시글, 댓글로부터 아이디 또는 이름별로 문장을 추출하는 단계;
(b) 상기 단계 (a)에서 추출된 문장으로부터 게시글, 댓글의 대화 전개에 따라 아이디 또는 이름별로 대화 문장을 트리 형태로 표현하는 단계;
(c) 상기 단계 (b)의 각 트리에서 대화 시나리오를 추출하는 단계;
(d) 상기 단계 (c)에서 생성된 대화 시나리오의 각 문장을 의미벡터로 표현하는 단계;
(e) 상기 단계 (d)에서 생성된 대화 시나리오의 각 문장을 의도패턴으로 표현하는 단계;
(f) 상기 대화 시나리오를 의도패턴과 의미벡터로 데이터베이스화 시키는 단계; 및
(g) 상기 단계 (e)에서 기존 의도패턴이 없는 문장을 새로운 의도패턴을 만드는 단계
를 포함하는 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법. - 청구항 1에 있어서,
상기 단계 (f)에서 데이터베이스와 시킨 의미벡터는 의미단어 또는 의미노드 그리고 의미큐브 중 하나로 표시하는 단계
를 더 포함하는 것을 특징으로 하는 대화 시스템을 위한 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법. - 청구항 1에 있어서,
상기 단계 (a)의 대화 형식의 음성 파일은 음성인식을 통하여 텍스트로 변경한 후 추출되는 것
을 특징으로 하는 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법. - 청구항 1에 있어서,
상기 단계 (a)의 대화 형식의 게시글로부터의 추출은,
특정 단어(word)를 검색어로 지정하며, 이 지정된 검색어로 검색된 게시글 및 댓글을 데이터 파싱하여 추출하는 것
을 특징으로 하는 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법. - 청구항 1에 있어서,
상기 단계 (a)에서 추출된 문장은 의미벡터로 자동 변환되는 것
을 특징으로 하는 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법. - 대화 시나리오를 추출하는 대화 시나리오 추출부;
상기 대화 시나리오 추출부에 의하여 생성된 대화 시나리오의 각 문장을 학습하는 대화 시나리오 학습부;
상기 대화 시나리오 학습부에 의해서 생성된 의미벡터를 이용하여 대화 시나리오 각 문장의 의도패턴을 분류하는 대화 시나리오 의도패턴 분류부
상기 대화 시나리오 의도패턴 분류부에 의해서 분류되지 않은 의도패턴에 대해서 새로운 의도패턴을 만드는 의도패턴 생성부;
상기 대화 시나리오 의도패턴과 의미벡터를 저장하는 대화 시나리오 데이터베이스; 및
상기 대화 시나리오 데이터베이스에 저장된 상기 대화 시나리오의 연속적인 의미벡터와 의도패턴을 온톨로지 다차원 공간상에 표시하는 온톨로지 관계 매핑부
를 포함하는 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190070823A KR20200143039A (ko) | 2019-06-14 | 2019-06-14 | 대화 시나리오 데이터베이스 구축 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190070823A KR20200143039A (ko) | 2019-06-14 | 2019-06-14 | 대화 시나리오 데이터베이스 구축 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200143039A true KR20200143039A (ko) | 2020-12-23 |
Family
ID=74089060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190070823A KR20200143039A (ko) | 2019-06-14 | 2019-06-14 | 대화 시나리오 데이터베이스 구축 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20200143039A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688685A (zh) * | 2021-07-26 | 2021-11-23 | 天津大学 | 基于交互场景下的手语识别方法 |
CN115146653A (zh) * | 2022-07-21 | 2022-10-04 | 平安科技(深圳)有限公司 | 对话剧本构建方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100326931B1 (ko) | 1999-08-02 | 2002-03-13 | 이계철 | 대화시스템을 이용한 정보검색시나리오 구현 검사 시스템 및그방법 |
KR100444568B1 (ko) | 1999-08-02 | 2004-08-18 | 현 최 | 인터넷을 이용한 통합 모니터링 운영 시스템 사업 방법 |
-
2019
- 2019-06-14 KR KR1020190070823A patent/KR20200143039A/ko unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100326931B1 (ko) | 1999-08-02 | 2002-03-13 | 이계철 | 대화시스템을 이용한 정보검색시나리오 구현 검사 시스템 및그방법 |
KR100444568B1 (ko) | 1999-08-02 | 2004-08-18 | 현 최 | 인터넷을 이용한 통합 모니터링 운영 시스템 사업 방법 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688685A (zh) * | 2021-07-26 | 2021-11-23 | 天津大学 | 基于交互场景下的手语识别方法 |
CN113688685B (zh) * | 2021-07-26 | 2023-09-22 | 天津大学 | 基于交互场景下的手语识别方法 |
CN115146653A (zh) * | 2022-07-21 | 2022-10-04 | 平安科技(深圳)有限公司 | 对话剧本构建方法、装置、设备及存储介质 |
CN115146653B (zh) * | 2022-07-21 | 2023-05-02 | 平安科技(深圳)有限公司 | 对话剧本构建方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102204491B1 (ko) | 온톨로지 대화 관계망을 이용한 연속 대화 방법 및 시스템 | |
CN107908803B (zh) | 问答交互的响应方法及装置、存储介质、终端 | |
KR102054514B1 (ko) | 인공지능(ai)을 통한 딥러닝훈련모듈과, 순위화프레임워크모듈을 활용하여, 법률전문가에게 최적화된 모범답안을 제시하는 한편, 법률정보를 의미 벡터로 변환하여, 데이터베이스에 저장하고, 이에 대한 문자열 사전모듈을 활용한 온라인 법률정보사전을 제공하는 시스템 및 그 방법 | |
CN110209897B (zh) | 智能对话方法、装置、存储介质及设备 | |
JP6753707B2 (ja) | コミュニケーションを支援する人工知能システム | |
CN116756295B (zh) | 知识库的检索方法、装置及存储介质 | |
CN112799747A (zh) | 智能助理评价、推荐方法、系统、终端及可读存储介质 | |
CN106469212A (zh) | 基于人工智能的人机交互方法和装置 | |
KR20190046062A (ko) | 대화 시스템을 위한 대화 시나리오 데이터베이스 구축 방법 및 장치 | |
CN105068661A (zh) | 基于人工智能的人机交互方法和系统 | |
CN110019728B (zh) | 自动交互方法及存储介质、终端 | |
CN111767385A (zh) | 一种智能问答方法及装置 | |
CN110019729B (zh) | 智能问答方法及存储介质、终端 | |
CN110019838B (zh) | 智能问答系统及智能终端 | |
CN109145168A (zh) | 一种专家服务机器人云平台 | |
JP6818706B2 (ja) | 情報提供装置、情報提供方法、およびプログラム | |
EP3685245A1 (en) | Method, apparatus, and computer-readable media for customer interaction semantic annotation and analytics | |
CN110245253B (zh) | 一种基于环境信息的语义交互方法及系统 | |
CN118277588B (zh) | 查询请求处理方法、电子设备及存储介质 | |
KR20190103504A (ko) | 대화시나리오 자동 수집 및 온톨로지 대화 관계망을 이용한 연속 대화 방법 및 시스템 | |
KR20200143039A (ko) | 대화 시나리오 데이터베이스 구축 방법 및 장치 | |
CN112966084B (zh) | 基于知识图谱的答案查询方法、装置、设备及存储介质 | |
CN110019730B (zh) | 自动交互系统及智能终端 | |
CN117932022A (zh) | 一种智能问答方法、装置、电子设备及存储介质 | |
CN117351952A (zh) | 语音指令交互方法、装置、电子设备及存储介质 |