KR101851792B1 - 질문 데이터 세트의 가상 레이블 생성 장치 및 방법 - Google Patents

질문 데이터 세트의 가상 레이블 생성 장치 및 방법 Download PDF

Info

Publication number
KR101851792B1
KR101851792B1 KR1020170178793A KR20170178793A KR101851792B1 KR 101851792 B1 KR101851792 B1 KR 101851792B1 KR 1020170178793 A KR1020170178793 A KR 1020170178793A KR 20170178793 A KR20170178793 A KR 20170178793A KR 101851792 B1 KR101851792 B1 KR 101851792B1
Authority
KR
South Korea
Prior art keywords
domain
specific
module
word
similar sentence
Prior art date
Application number
KR1020170178793A
Other languages
English (en)
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 KR1020170178793A priority Critical patent/KR101851792B1/ko
Application granted granted Critical
Publication of KR101851792B1 publication Critical patent/KR101851792B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N99/005

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 질문 데이터 세트의 가상 레이블 생성 장치 및 방법에 관한 것이다. 이를 위하여, 질문 데이터를 일반 문자열 형태로 입력받고, 질문 데이터를 개체(entity)나 의미구(intent)와 같은 어구로 구분하며, 질문 데이터를 벡터값으로 처리하는 구분 모듈; 구분 모듈에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 모듈; 도메인 특화 점수 계산 모듈에서 계산된 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 용어인 도메인 특화 용어를 분류하는 도메인 특화 용어 분류 모듈; 및 도메인 특화 용어 분류 모듈에 의해 분류된 도메인 특화 용어와의 유사도를 토대로 상기 질문 데이터를 적어도 하나의 유사 문장 그룹으로 클러스터링하는 클러스터링 모듈;을 제공할 수 있다.

Description

질문 데이터 세트의 가상 레이블 생성 장치 및 방법{Apparatus and method for generating a virtual label of a question dataset}
본 발명은 질문 데이터 세트의 가상 레이블 생성 장치 및 방법에 관한 것이다.
현재 대부분의 회사가 고객지원 서비스 부서의 인력과 인프라의 부족으로 고객들에게 만족할만한 서비스를 제공하지 못하는 상태이다. 최근 챗봇의 등장으로 고객지원 서비스의 품질 향상 해결하기 위해, 챗봇을 도입해 고객 응대에 필요한 인력을 줄임과 동시에 24시간 빠르게 응답처리 하고자 하는 회사들이 상당히 많이 생기고 있다. 예를 들어, AT&T는 CS에 전화를 하면 봇이 응대하도록 하고 있다.
도 1은 챗봇의 기본적인 모듈 구성을 도시한 모식도이다. 도 1에 도시된 바와 같이 챗봇은 채팅의 텍스트나 음성으로 구성된 언어적 입력(Lexical input)을 NLP(자연어 처리 프로세서, Natural Language Processor) 모듈이 입력받아 컴퓨터상에서 처리될 수 있는 형태로 처리해주고, 처리된 자연어의 Context를 분석하는 Context Analyzer를 지나서, Context에 따라 답변 내용을 정하는 Decision Maker에서 답변 내용을 분류하여 확정하고, 확정된 답변 내용에 따라 사용자에게 답변을 하는 Response Generator를 통해 언어적 출력(Lexical output)이 나오게 되는 구조로 되어 있다.
도 2는 일반적인 챗봇 모듈 구성을 구체적으로 도시한 모식도이다. 도 2에 도시된 바와 같이, 일반적인 챗봇은 NLP에 형태소 분석기(Morphemic Analyzer)를 붙여서 입력되는 언어적 입력의 형태소를 분석하고, 문장학적으로 어떤 의미를 갖는지에 대한 Taxonomy Analyzer를 붙여서 문장을 컴퓨터상에서 처리할 수 있는 형태로 처리하게 된다. Context Analyzer는 Context Database에서 해당 문장이 어떤 Context인지를 검색 엔진(Search engine)을 통해 매칭하게 된다. 매칭된 Context에 대한 대답을 Decision Maker에서 찾게 된다. 보통 특정 Context에 대한 대답은 챗봇을 도입하려는 특정 회사의 고객지원 프로토콜 데이터 템플릿에 의해 결정된다.
도 3은 머신러닝을 이용한 챗봇 모듈 구성을 구체적으로 도시한 모식도이다. 도 3에 도시된 바와 같이, 머신러닝을 이용한 챗봇은 기존의 일반적인 챗봇의 요소들이 많이 대체되었다. 머신러닝을 이용한 챗봇 모듈 구성에서는 NLP에 딥러닝 모델(Deep-learning model)이 적용된다. NLP에 적용되는 딥러닝 모델로는 2016년 4월에 공개된 Google의 SyntexNet이 이용될 수 있고, NLU(Natural Language Understanding)의 초기 버전으로 이해할 수 있다. SyntexNet을 거치면 특정 언어적 입력이 Vector 형태로 바뀌게 된다. 그 후, Context Analyzer, Decision Maker 및 Response Generator를 통합하여 딥러닝 모델을 적용하고 트레이닝 세트를 계속 학습시키게 된다. Context Analyzer, Decision Maker 및 Response Generator의 통합 모듈에 이용되는 딥러닝 모델로는 RNN(Recurrent Neural Network) 등의 적어도 하나 이상의 모델이 이용되게 된다.
하지만, 이러한 챗봇은 단순히 코드 몇 줄을 심거나 API를 제공하여 구현할 수 있는 서비스가 아니다. 특정 회사에서 챗봇을 도입하려면 단순히 서비스 integration으로 단번에 끝나는 것이 아니라. 기존에 쌓여 있던 고객지원 데이터를 챗봇의 인공지능 모듈의 학습에 필요한 데이터로 가공하는 과정이 필요하다.
대한민국 공개특허 제10-2017-0021902호, 페이스북 인크
챗봇은 인간이 수동으로 하던 질문에 대한 응답을 대신 처리해줄 솔루션, 즉 고객지원 서비스에 수요가 많은 상황이다. 기존 고객지원을 운영하던 회사는 하나의 센터가 일괄적으로 처리를 하거나 템플릿이 있는 정형화된 형식으로 처리하기보다는 고객지원 상담을 하는 개개인의 특성에 따라 같은 응답이라도 다르게 하고, 고객의 감정상태에 따라 같은 문제라도 다르게 해결하는 경우가 많다.
그렇기 때문에, 일반적인 챗봇은 같은 의미의 문의가 같은 레이블로 분류되어야 하는데, 응답이 제각각 다르기 때문에 인공지능 엔진의 입장에서는 레이블이 없는 데이터와 다름없고, 이에 따라 인공지능 엔진에 맞는 데이터로 가공하는 공수가 발생된다. 다년간 쌓인 데이터를 일일이 사람이 처리하기엔 불가능에 가깝다. 반면 챗봇 도입에 투입할 인적자원 확보를 위해 추가로 고용을 하거나 기존 서비스를 운영하는 인적자원을 투입하기에는, 챗봇을 도입하고자 하는 목적, 즉 서비스에 필요한 인적자원을 줄이는 방법론의 모순이 생긴다.
또한, 한 회사가 챗봇을 위한 데이터 가공에 인력을 투입하고자 했을 때도, 인간이 판단하고 처리하는 문의의 문맥이 다중 의미를 포함하고 있는 경우에 문제가 된다. 각각의 개인이 판단하는 기준에 따라 분류가 되기 때문에 오류나 편향을 만들게 되는데, 이는 인공지능의 정확도를 현저히 낮추는 심각한 오류를 만들기도 한다.
결국, 데이터의 수가 많아질 경우 대부분 가공되지 않거나 가공되었다 하더라도 완벽하지 못하고 인공지능에 넣을 훈련 데이터로써 오류와 편향을 포함할 경우가 많기 때문에, 결국 가공되지 않은 데이터와 다름없게 된다.
기존에는 이러한 문제를 데이터로부터 얻을 수 있는 동사 구조와 각각의 단어의 태깅된 정보를 수동으로 사전으로 제작하여, 사전을 이용해 분류된 결과값으로 레이블을 하는 방식으로 해결하려 하고 있었다. 하지만, 이와 같은 방식은 작업량이 상당하고, 새로 추가되는 데이터에 대한 추가적인 작업이 발생하게 되는 문제점이 발생된다.
따라서 본 발명의 목적은, 별도의 제작된 사전이 존재하지 않는 경우에도 관리자가 쉽게 질문과 대답을 매칭시킬 수 있도록 자동으로 레이블을 생성해주는 것을 특징으로 하는, 질문 데이터 세트의 가상 레이블 생성 장치 및 방법을 제공하는데에 있다.
이하 본 발명의 목적을 달성하기 위한 구체적 수단에 대하여 설명한다.
본 발명의 목적은, 질문 데이터를 수신하여 특정 대답 데이터를 출력하는 챗봇의 인공지능 모듈의 학습을 위한 트레이닝 세트를 레이블링하기 위한 가상 레이블 생성 장치에 있어서, 상기 질문 데이터를 일반 문자열 형태로 입력받고, 상기 질문 데이터를 개체(entity) 또는 의미구(intent)로 구분하며, 상기 질문 데이터를 벡터값으로 처리하는 구분 모듈; 상기 구분 모듈에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 상기 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 모듈; 상기 도메인 특화 점수 계산 모듈에서 계산된 상기 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 용어인 도메인 특화 용어를 분류하는 도메인 특화 용어 분류 모듈; 및 상기 도메인 특화 용어 분류 모듈에 의해 분류된 상기 도메인 특화 용어와의 유사도를 토대로 상기 질문 데이터를 적어도 하나의 유사 문장 그룹으로 클러스터링하는 클러스터링 모듈;을 포함하고, 상기 챗봇 관리자가 상기 유사 문장 그룹을 레이블링 할 수 있도록, 상기 클러스터링 모듈에 의해 생성된 적어도 하나의 상기 유사 문장 그룹을 챗봇 관리자의 클라이언트에 제공하는 것을 특징으로 하는, 챗봇의 트레이닝 세트 레이블링을 위한 가상 레이블 생성 장치를 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 질문 데이터를 수신하여 특정 대답 데이터를 출력하는 챗봇의 인공지능 모듈의 학습을 위한 트레이닝 세트를 레이블링하기 위한 가상 레이블 생성 장치에 있어서, 상기 질문 데이터를 일반 문자열 형태로 입력받고, 상기 질문 데이터를 개체(entity) 또는 의미구(intent)로 구분하며, 상기 질문 데이터를 벡터값으로 처리하는 구분 모듈; 상기 구분 모듈에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 상기 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 모듈; 상기 도메인 특화 점수 계산 모듈에서 계산된 상기 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 도메인 특화 용어와 일반 용어를 분류하고, 상기 일반 용어 중 어구 출현 빈도 또는 어구 출현 확률이 높은 고빈도 일반 용어를 분류하는 고빈도 일반 용어 분류 모듈; 및 상기 고빈도 일반 용어 분류 모듈에 의해 분류된 상기 고빈도 일반 용어와의 유사도를 토대로 상기 질문 데이터를 적어도 하나의 유사 문장 그룹으로 클러스터링하는 클러스터링 모듈;을 포함하고, 상기 챗봇 관리자가 상기 유사 문장 그룹을 레이블링 할 수 있도록, 상기 클러스터링 모듈에 의해 생성된 상기 유사 문장 그룹을 챗봇 관리자의 클라이언트에 제공하는 것을 특징으로 하는, 챗봇의 트레이닝 세트 레이블링을 위한 가상 레이블 생성 장치를 제공하여 달성될 수 있다.
본 발명의 목적은, 질문 데이터를 수신하여 특정 대답 데이터를 출력하는 챗봇의 인공지능 모듈의 학습을 위한 트레이닝 세트를 레이블링하기 위한 가상 레이블 생성 장치에 있어서, 상기 질문 데이터를 일반 문자열 형태로 입력받고, 상기 질문 데이터를 개체(entity) 또는 의미구(intent)로 구분하며, 상기 질문 데이터를 벡터값으로 처리하는 구분 모듈; 상기 구분 모듈에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 상기 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 모듈; 상기 도메인 특화 점수 계산 모듈에서 계산된 상기 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 도메인 특화 용어와 일반 용어를 분류하고, 상기 일반 용어 중 어구 출현 빈도 또는 어구 출현 확률이 높은 고빈도 일반 용어를 분류하는 고빈도 일반 용어 분류 모듈; 상기 고빈도 일반 용어 분류 모듈에 의해 분류된 상기 고빈도 일반 용어와의 유사도를 토대로 상기 질문 데이터를 적어도 하나의 유사 문장 그룹으로 클러스터링하는 클러스터링 모듈; 상기 클러스터링 모듈에서 상기 고빈도 일반 용어와의 유사도를 기초로 클러스터링 된 상기 유사 문장 그룹에 포함된 복수개의 문장을 상기 도메인 특화 용어와의 유사도를 기초로 2차 분류하여 적어도 하나의 도메인 유사 문장 그룹으로 분류하는 2차 분류 모듈; 상기 2차 분류 모듈에 의해 상기 유사 문장 그룹 내에서 분류되는 상기 도메인 유사 문장 그룹의 개수를 토대로 상기 유사 문장 그룹의 도메인 다양성을 계산하는 도메인 다양성 계산 모듈; 및 상기 도메인 다양성 계산 모듈에서 계산된 상기 유사 문장 그룹의 상기 도메인 다양성을 기초로 상기 유사 문장 그룹의 중요도를 판정하여 챗봇 관리자에게 제공할 문장 그룹인 레이블 문장 그룹을 판정하는 레이블 문장 그룹 판정 모듈;을 포함하고, 상기 챗봇 관리자가 상기 레이블 문장 그룹을 레이블링 할 수 있도록, 상기 레이블 문장 그룹을 챗봇 관리자의 클라이언트에 제공하는 것을 특징으로 하는, 챗봇의 트레이닝 세트 레이블링을 위한 가상 레이블 생성 장치를 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 질문 데이터를 수신하여 특정 대답 데이터를 출력하는 챗봇의 인공지능 모듈의 학습을 위한 트레이닝 세트를 레이블링하기 위한 가상 레이블 생성 장치를 이용한 가상 레이블 생성 방법에 있어서, 상기 가상 레이블 생성 장치의 일구성인 구분 모듈이, 상기 질문 데이터를 일반 문자열 형태로 입력받고, 상기 질문 데이터를 개체(entity) 또는 의미구(intent)로 구분하며, 상기 질문 데이터를 벡터값으로 처리하는 구분 단계; 상기 가상 레이블 생성 장치의 일구성인 도메인 특화 점수 계산 모듈이, 상기 구분 모듈에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 상기 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 단계; 상기 가상 레이블 생성 장치의 일구성인 도메인 특화 용어 분류 모듈이, 상기 도메인 특화 점수 계산 모듈에서 계산된 상기 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 용어인 도메인 특화 용어를 분류하는 도메인 특화 용어 분류 단계; 및 상기 가상 레이블 생성 장치의 일구성인 클러스터링 모듈이, 상기 도메인 특화 용어 분류 모듈에 의해 분류된 상기 도메인 특화 용어와의 유사도를 토대로 상기 질문 데이터를 적어도 하나의 유사 문장 그룹으로 클러스터링하는 클러스터링 단계;를 포함하고, 상기 챗봇 관리자가 상기 유사 문장 그룹을 레이블링 할 수 있도록, 상기 클러스터링 모듈에 의해 생성된 적어도 하나의 상기 유사 문장 그룹을 챗봇 관리자의 클라이언트에 제공하는 것을 특징으로 하는, 챗봇의 트레이닝 세트 레이블링을 위한 가상 레이블 생성 방법을 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 질문 데이터를 수신하여 특정 대답 데이터를 출력하는 챗봇의 인공지능 모듈의 학습을 위한 트레이닝 세트를 레이블링하기 위한 가상 레이블 생성 장치를 이용한 가상 레이블 생성 방법에 있어서, 상기 가상 레이블 생성 장치의 일구성인 구분 모듈이, 상기 질문 데이터를 일반 문자열 형태로 입력받고, 상기 질문 데이터를 개체(entity) 또는 의미구(intent)로 구분하며, 상기 질문 데이터를 벡터값으로 처리하는 구분 단계; 상기 가상 레이블 생성 장치의 일구성인 도메인 특화 점수 계산 모듈이, 상기 구분 모듈에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 상기 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 단계; 상기 가상 레이블 생성 장치의 일구성인 고빈도 일반 용어 분류 모듈이, 상기 도메인 특화 점수 계산 모듈에서 계산된 상기 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 도메인 특화 용어와 일반 용어를 분류하고, 상기 일반 용어 중 어구 출현 빈도 또는 어구 출현 확률이 높은 고빈도 일반 용어를 분류하는 고빈도 일반 용어 분류 단계; 및 상기 가상 레이블 생성 장치의 일구성인 클러스터링 모듈이, 상기 고빈도 일반 용어 분류 모듈에 의해 분류된 상기 고빈도 일반 용어와의 유사도를 토대로 상기 질문 데이터를 적어도 하나의 유사 문장 그룹으로 클러스터링하는 클러스터링 단계;를 포함하고, 상기 챗봇 관리자가 상기 유사 문장 그룹을 레이블링 할 수 있도록, 상기 클러스터링 모듈에 의해 생성된 적어도 하나의 상기 유사 문장 그룹을 챗봇 관리자의 클라이언트에 제공하는 것을 특징으로 하는, 챗봇의 트레이닝 세트 레이블링을 위한 가상 레이블 생성 방법을 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 질문 데이터를 수신하여 특정 대답 데이터를 출력하는 챗봇의 인공지능 모듈의 학습을 위한 트레이닝 세트를 레이블링하기 위한 가상 레이블 생성 장치를 이용한 가상 레이블 생성 방법에 있어서, 상기 가상 레이블 생성 장치의 일구성인 구분 모듈이, 상기 질문 데이터를 일반 문자열 형태로 입력받고, 상기 질문 데이터를 개체(entity) 또는 의미구(intent)로 구분하며, 상기 질문 데이터를 벡터값으로 처리하는 구분 단계; 상기 가상 레이블 생성 장치의 일구성인 도메인 특화 점수 계산 모듈이, 상기 구분 모듈에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 상기 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 단계; 상기 가상 레이블 생성 장치의 일구성인 고빈도 일반 용어 분류 모듈이, 상기 도메인 특화 점수 계산 모듈에서 계산된 상기 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 도메인 특화 용어와 일반 용어를 분류하고, 상기 일반 용어 중 어구 출현 빈도 또는 어구 출현 확률이 높은 고빈도 일반 용어를 분류하는 고빈도 일반 용어 분류 단계; 상기 가상 레이블 생성 장치의 일구성인 클러스터링 모듈이, 상기 고빈도 일반 용어 분류 모듈에 의해 분류된 상기 고빈도 일반 용어와의 유사도를 토대로 상기 질문 데이터를 적어도 하나의 유사 문장 그룹으로 클러스터링하는 클러스터링 단계; 상기 가상 레이블 생성 장치의 일구성인 2차 분류 모듈이, 상기 클러스터링 모듈에서 상기 고빈도 일반 용어와의 유사도를 기초로 클러스터링 된 상기 유사 문장 그룹에 포함된 복수개의 문장을 상기 도메인 특화 용어와의 유사도를 기초로 2차 분류하여 적어도 하나의 도메인 유사 문장 그룹으로 분류하는 2차 분류 단계; 상기 가상 레이블 생성 장치의 일구성인 도메인 다양성 계산 모듈이, 상기 2차 분류 모듈에 의해 상기 유사 문장 그룹 내에서 분류되는 상기 도메인 유사 문장 그룹의 개수를 토대로 상기 유사 문장 그룹의 도메인 다양성을 계산하는 도메인 다양성 계산 단계; 및 상기 가상 레이블 생성 장치의 일구성인 레이블 문장 그룹 판정 모듈이, 상기 도메인 다양성 계산 모듈에서 계산된 상기 유사 문장 그룹의 상기 도메인 다양성을 기초로 상기 유사 문장 그룹의 중요도를 판정하여 챗봇 관리자에게 제공할 문장 그룹인 레이블 문장 그룹을 판정하는 레이블 문장 그룹 판정 단계;을 포함하고, 상기 챗봇 관리자가 상기 레이블 문장 그룹을 레이블링 할 수 있도록, 상기 레이블 문장 그룹을 챗봇 관리자의 클라이언트에 제공하는 것을 특징으로 하는, 챗봇의 트레이닝 세트 레이블링을 위한 가상 레이블 생성 방법을 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 일반 문자열 형태의 질문 데이터를 개체(entity) 또는 의미구(intent)로 구분하는 구분 모듈; 특정 조건을 토대로 상기 질문 데이터를 복수의 유사 문장 그룹으로 클러스터링하는 제1차 클러스터링 모듈; 상기 구분 모듈에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 상기 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 모듈; 상기 도메인 특화 점수 계산 모듈에서 계산된 상기 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 용어인 도메인 특화 용어를 분류하는 도메인 특화 용어 분류 모듈; 상기 도메인 특화 용어와의 유사도를 토대로 상기 복수의 유사 문장 그룹의 상기 질문 데이터를 적어도 하나의 도메인 유사 문장 그룹으로 클러스터링하는 제2차 클러스터링 모듈; 상기 제2차 클러스터링 모듈에 의해 상기 유사 문장 그룹 내에서 분류되는 상기 도메인 유사 문장 그룹의 개수를 토대로 상기 유사 문장 그룹의 도메인 다양성을 계산하는 도메인 다양성 계산 모듈; 및 상기 도메인 다양성 계산 모듈에서 계산된 상기 유사 문장 그룹의 상기 도메인 다양성을 기초로 가상 레이블을 생성 여부를 결정하는 가상 레이블 생성 모듈;을 포함하는, 질문 데이터 세트의 가상 레이블 생성 장치를 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 구분 모듈이, 일반 문자열 형태의 질문 데이터를 개체(entity) 또는 의미구(intent)로 구분하는 구분 단계; 제1차 클러스터링 모듈이, 특정 조건을 토대로 상기 질문 데이터를 복수의 유사 문장 그룹으로 클러스터링하는 제1차 클러스터링 단계; 도메인 특화 점수 계산 모듈이, 상기 구분 모듈에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 상기 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 단계; 도메인 특화 용어 분류 모듈이, 상기 도메인 특화 점수 계산 모듈에서 계산된 상기 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 용어인 도메인 특화 용어를 분류하는 도메인 특화 용어 분류 단계; 제2차 클러스터링 모듈이, 상기 도메인 특화 용어와의 유사도를 토대로 상기 복수의 유사 문장 그룹의 상기 질문 데이터를 적어도 하나의 도메인 유사 문장 그룹으로 클러스터링하는 제2차 클러스터링 단계; 도메인 다양성 계산 모듈이, 상기 제2차 클러스터링 모듈에 의해 상기 유사 문장 그룹 내에서 분류되는 상기 도메인 유사 문장 그룹의 개수를 토대로 상기 유사 문장 그룹의 도메인 다양성을 계산하는 도메인 다양성 계산 단계; 및 가상 레이블 생성 모듈이, 상기 도메인 다양성 계산 모듈에서 계산된 상기 유사 문장 그룹의 상기 도메인 다양성을 기초로 가상 레이블을 생성 여부를 결정하는 가상 레이블 생성 단계;를 포함하는, 질문 데이터 세트의 가상 레이블 생성 방법을 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 구분 모듈이, 일반 문자열 형태의 질문 데이터를 개체(entity) 또는 의미구(intent)로 구분하는 구분 단계; 제1차 클러스터링 모듈이, 특정 조건을 토대로 상기 질문 데이터를 복수의 유사 문장 그룹으로 클러스터링하는 제1차 클러스터링 단계; 도메인 특화 점수 계산 모듈이, 상기 구분 모듈에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 상기 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 단계; 도메인 특화 용어 분류 모듈이, 상기 도메인 특화 점수 계산 모듈에서 계산된 상기 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 용어인 도메인 특화 용어를 분류하는 도메인 특화 용어 분류 단계; 제2차 클러스터링 모듈이, 상기 도메인 특화 용어와의 유사도를 토대로 상기 복수의 유사 문장 그룹의 상기 질문 데이터를 적어도 하나의 도메인 유사 문장 그룹으로 클러스터링하는 제2차 클러스터링 단계; 도메인 다양성 계산 모듈이, 상기 제2차 클러스터링 모듈에 의해 상기 유사 문장 그룹 내에서 분류되는 상기 도메인 유사 문장 그룹의 개수를 토대로 상기 유사 문장 그룹의 도메인 다양성을 계산하는 도메인 다양성 계산 단계; 및 가상 레이블 생성 모듈이, 상기 도메인 다양성 계산 모듈에서 계산된 상기 유사 문장 그룹의 상기 도메인 다양성을 기초로 가상 레이블을 생성 여부를 결정하는 가상 레이블 생성 단계;를 포함하는, 질문 데이터 세트의 가상 레이블 생성 방법을 컴퓨터 상에서 수행하는 기록매체에 저장된 프로그램을 제공하여 달성될 수 있다.
상기한 바와 같이, 본 발명에 의하면 이하와 같은 효과가 있다.
첫째, 본 발명의 일실시예에 따르면, 기존의 10만건의 데이터를 10개의 레이블로 집합화하면, 지도학습에 필요한 레이블은 10건의 답변을 입력하는 과정으로 끝낼 수 있게 되는 효과가 발생된다. 이 과정에서 분류되는 기준은 지도학습의 판단기준과 유사한 방법론으로 레이블을 할당하기 때문에 인간이 수동적으로 할당한 데이터보다 더 명확하게 구별할 수 있는 유효한 훈련 데이터를 생성할 수 있다.
둘째, 본 발명의 일실시예에 따르면, 질문 데이터가 가공되지 않아서 레이블 자체가 형성되어있지 않은 경우나, 레이블이 잘못 형성되어있는 경우(즉 질문과 대답의 매칭이 잘못 되어있는 경우) 등에도 도메인에 맞게 관련이 있는 질문 데이터의 문장들이 클러스터링 되는 효과가 발생된다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 챗봇의 기본적인 모듈 구성을 도시한 모식도,
도 2는 일반적인 챗봇 모듈 구성을 구체적으로 도시한 모식도,
도 3은 머신러닝을 이용한 챗봇 모듈 구성을 구체적으로 도시한 모식도,
도 4는 본 발명의 일실시예에 따른 가상 레이블 생성 장치와 챗봇 인공지능 모듈과의 관계를 나타낸 모식도,
도 5는 본 발명의 제1실시예에 따른 가상 레이블 생성 장치를 도시한 모식도,
도 6은 본 발명의 제2실시예에 따른 가상 레이블 생성 장치를 도시한 모식도,
도 7은 본 발명의 일실시예에 따른 고빈도 일반 용어 분류 모듈에 의한 질문 데이터의 분류를 도시한 것,
도 8은 본 발명의 제3실시예에 따른 가상 레이블 생성 장치를 도시한 모식도,
도 9는 본 발명의 제3실시예에 따른 2차 분류 모듈(41)에 의한 도메인 유사 문장 그룹으로의 분류의 예를 도시한 모식도,
도 10은 본 발명의 제1실시예에 따른 가상 레이블 생성 방법을 도시한 모식도,
도 11은 본 발명의 제1실시예에 따른 가상 레이블 생성 방법의 각 단계별 결과 예시를 도시한 것,
도 12는 본 발명의 제2실시예에 따른 가상 레이블 생성 방법을 도시한 모식도,
도 13은 본 발명의 제2실시예에 따른 가상 레이블 생성 방법의 각 단계별 결과 예시를 도시한 것,
도 14는 본 발명의 제3실시예에 따른 가상 레이블 생성 방법을 도시한 모식도,
도 15는 본 발명의 제3실시예에 따른 가상 레이블 생성 방법의 각 단계별 결과 예시를 도시한 것,
도 16은 본 발명의 제4실시예에 따른 가상 레이블 생성 방법을 도시한 것이다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 쉽게 실시할 수 있는 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작원리를 상세하게 설명함에 있어서 관련된 공지기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다. 명세서 전체에서, 특정 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고, 간접적으로 연결되어 있는 경우도 포함한다. 또한, 특정 구성요소를 포함한다는 것은 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
특정 도메인에 대한 챗봇의 트레이닝 세트 레이블링을 위한 가상 레이블 생성 장치
도 4는 본 발명의 일실시예에 따른 가상 레이블 생성 장치와 챗봇 인공지능 모듈과의 관계를 나타낸 모식도이다. 도 4에 도시된 바와 같이, 본 발명의 일실시예에 따른 가상 레이블 생성 장치(1)는 질문 데이터(200, 사용자가 입력하는 질문 쿼리 데이터 또는 고객사가 제공해주는 기존 Q&A 데이터 세트)를 받아서 챗봇 관리자의 라벨링 지원을 받아 챗봇 인공지능 모듈(10)의 학습에 적용되는 트레이닝 세트를 생성하게 된다. 질문 데이터(200)에는 특정 대답으로 매핑되도록 레이블이 된 문의의 문장들 또는 레이블 되지 않은 문장들이 포함될 수 있다. 본 발명의 일실시예에 따른 가상 레이블 생성 장치(1)에 따라 챗봇 인공지능 모듈(10)은 레이블이 잘못되거나 불명확한 질문 데이터 세트로도 특정 도메인에 특징적인 챗봇을 구현할 수 있게 되는 효과가 발생된다.
[제1실시예]
도 5는 본 발명의 제1실시예에 따른 가상 레이블 생성 장치를 도시한 모식도이다. 도 5에 도시된 바와 같이, 본 발명의 제1실시예에 따른 가상 레이블 생성 장치(1)는 질문 데이터(200)가 입력될 수 있고, 구분 모듈(2), 분류 모듈(3), 레이블링 모듈(5)을 포함할 수 있다.
구분 모듈(2)은 질문 데이터(200)를 일반 문자열 형태(Normal text)로 입력받게 되고, 이렇게 입력받은 일반 문자열 형태를 NLP 모듈(21)에 의해 개체(entity)나 의미구(intent)와 같은 어구로 구분하는 모듈이다. NLP 모듈(21)은 구체적으로 형태소 분석, 어간 추출, 불용어 추출, TF, TFIDF 등의 기능을 포함할 수 있다. 이후, 벡터화 모듈(22, Sentence2vec나 Word2vec, SyntexNet)에 의해 구분된 개체와 의미구를 벡터값으로 처리하게 된다. 또는 Word2vec가 이용될 수 있고, 구체적으로는 n-gram, 문맥으로부터 단어를 예측하는 CBOW 모델, 또는 단어로부터 문맥을 예측하는 Skip-gram 모델 등이 이용될 수 있다.
분류 모듈(3)은 본 발명의 일실시예에 따른 특정 룰을 토대로 질문 데이터(200)의 문장들을 클러스터링하여 관리자가 레이블링을 하게 되는 언레이블드 그룹(unlabeled group)인 유사 문장 그룹을 생성하는 모듈이다. 본 발명의 일실시예에 따른 분류 모듈(3)은 도메인 특화 점수 계산 모듈(31), 도메인 특화 용어 분류 모듈(32), 클러스터링 모듈(33)을 포함할 수 있다.
도메인 특화 점수 계산 모듈(31)은 구분 모듈(2)에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 질문 데이터에서의 어구 출현 빈도(또는 어구 출현 확률)와 General corpus에서의 어구 출현 빈도(또는 어구 출현 확률)를 비교하고, 두 빈도의 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 모듈이다. General corpus 내 각 단어의 좌우 단어를 확인하여 해당 어구가 General corpus에서 나올 수 있는 경우의 수(또는 어구 출현 확률)를 파악하고, General corpus의 어구 출현 빈도보다 질문 데이터(200)에서의 어구 출현 빈도(또는 어구 출현 확률)가 더 높을 경우, 해당 어구는 해당 도메인에 특징적이라고 판정될 수 있다. General corpus의 데이터의 양에 따라 어구 출현 빈도 판단의 기준이 될 상호관계의 거리를 i+n, i-n 까지 늘리거나 줄일 수 있다. 여기서 말하는 i는 문장 내 단어의 index 이다. 데이터의 양과 상수 n은 비례할 수 있다.
도메인 특화 용어 분류 모듈(32)은 도메인 특화 점수 계산 모듈(31)에서 계산된 도메인 특화 점수를 토대로 질문 데이터(200)의 어구들 중 도메인 특화 용어를 분류하는 구성이다. 도메인 특화 용어 분류 모듈(32)에 의해 질문 데이터(200)의 어구들은 도메인 특화 용어, 일반 용어로 구분될 수 있다.
클러스터링 모듈(33)은 도메인 특화 용어 분류 모듈(32)에 의해 분류된 각각의 도메인 특화 용어와 가까운 거리(유사도)의 어구(유사 어구)를 포함하는 질문 데이터(200)의 문장을 적어도 하나 이상의 그룹(유사 문장 그룹)으로 클러스터링하는 구성이다. 도메인 특화 용어와의 유사도 판단은 General Corpus를 이용한 유사도를 이용할 수 있다. 이를 Corpus-used Similarity라고 할 수 있다. 예를 들어, 한국어의 경우, 국립국어원의 General Corpus 등을 이용할 수 있고, 영어는 Brown Corpus 등을 이용할 수 있다. 또는, 의미 네트워크(Semantic network)를 활용한 유사도 측정을 이용할 수 있다. 이를 Knowledge-based Similarity라고 할 수 있다. 예를 들어, wordNet을 들 수 있다. wordNet을 활용한 단어와 단어 사이의 유사도 측정은 노드 사이의 최소 거리를 활용하는 Path similarity, 노드의 최소거리 및 최대 깊이를 활용하는 Leacock & Chodorow Similarity, 깊이 및 최소 상위 노드를 활용하는 Wu & Palmer Similarity 등의 방법으로 수행될 수 있다.
레이블링 모듈(5)은 클러스터링 모듈(33)에 의해 생성된 적어도 하나 이상의 유사 문장 그룹(복수개의 문장으로 구성됨)을 챗봇 관리자의 클라이언트에 제공하고, 챗봇 관리자의 클라이언트에서 적어도 하나 이상의 유사 문장 그룹에 대응되는 레이블을 입력받아 질문과 대답을 매칭하는 구성이다. 레이블링 모듈(5)에 의해 매우 정확도 높은 트레이닝 세트로서의 질문 데이터가 완성되는 효과가 발생된다.
[제2실시예]
도 6은 본 발명의 제2실시예에 따른 가상 레이블 생성 장치를 도시한 모식도이다. 도 6에 도시된 바와 같이, 본 발명의 제2실시예에 따른 가상 레이블 생성 장치(1)는 질문 데이터(200)가 입력될 수 있고, 구분 모듈(2), 분류 모듈(3), 레이블링 모듈(5)을 포함할 수 있다.
구분 모듈(2)은 질문 데이터(200)를 일반 문자열 형태(Normal text)로 입력받게 되고, 이렇게 입력받은 일반 문자열 형태를 NLP 모듈(21)에 의해 개체(entity)나 의미구(intent)와 같은 어구로 구분하는 모듈이다. NLP 모듈(21)은 구체적으로 형태소 분석, 어간 추출, 불용어 추출, TF, TFIDF 등의 기능을 포함할 수 있다. 이후, 벡터화 모듈(22, Sentence2vec나 Word2vec, SyntexNet)에 의해 구분된 개체(entity)나 의미구(intent)와 같은 어구를 벡터값으로 처리하게 된다. 또는 Word2vec가 이용될 수 있고, 구체적으로는 n-gram, 문맥으로부터 단어를 예측하는 CBOW 모델, 또는 단어로부터 문맥을 예측하는 Skip-gram 모델 등이 이용될 수 있다.
분류 모듈(3)은 본 발명의 일실시예에 따른 특정 룰을 토대로 질문 데이터(200)의 문장들을 클러스터링하여 관리자가 레이블링을 하게 되는 언레이블드 그룹(unlabeled group)인 유사 문장 그룹을 생성하는 모듈이다. 본 발명의 일실시예에 따른 분류 모듈(3)은 도메인 특화 점수 계산 모듈(31), 고빈도 일반 용어 분류 모듈(34), 클러스터링 모듈(33)을 포함할 수 있다.
도메인 특화 점수 계산 모듈(31)은 구분 모듈(2)에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 질문 데이터에서의 어구 출현 빈도(또는 어구 출현 확률)와 General corpus에서의 어구 출현 빈도(또는 어구 출현 확률)를 비교하고, 두 빈도의 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 모듈이다. General corpus 내 각 단어의 좌우 단어를 확인하여 해당 어구가 General corpus에서 나올 수 있는 경우의 수(또는 어구 출현 확률)를 파악하고, General corpus의 어구 출현 빈도보다 질문 데이터(200)에서의 어구 출현 빈도(또는 어구 출현 확률)가 더 높을 경우, 해당 어구는 해당 도메인에 특징적이라고 판정될 수 있다. General corpus의 데이터의 양에 따라 어구 출현 빈도 판단의 기준이 될 상호관계의 거리를 i+n, i-n 까지 늘리거나 줄일 수 있다. 여기서 말하는 i는 문장 내 단어의 index 이다. 데이터의 양과 상수 n은 비례할 수 있다.
고빈도 일반 용어 분류 모듈(34)은 도메인 특화 점수 계산 모듈(31)에서 계산된 도메인 특화 점수를 토대로 질문 데이터(200)의 어구들 중 고빈도 일반 용어를 분류하는 구성이다. 도 7은 본 발명의 일실시예에 따른 고빈도 일반 용어 분류 모듈에 의한 질문 데이터의 분류를 도시한 것이다. 도 7에 도시된 바와 같이, 고빈도 일반 용어 분류 모듈(34)에 의해 질문 데이터(200)의 어구들은 도메인 특화 용어, 일반 용어로 구분될 수 있다.
일반 용어는 고빈도 일반 용어와 저빈도 일반 용어로 구분될 수 있다. 본 발명의 일실시예에 따른 도메인 특화 용어란, 도메인 특화 점수 계산 모듈(31)에서 정의된 바와 같이, 질문 데이터(200)에서의 어구의 출현 확률빈도가 일반 말뭉치(general corpus)에서의 확률빈도보다 월등히 높은 어구를 의미한다. 도메인 특화 용어가 아닌 나머지 어구들은 일반 용어로 구분될 수 있고, 일반 용어는 고빈도 일반 용어와 저빈도 일반 용어로 구분될 수 있다. 고빈도 일반 용어는 도메인 안에서의 확률 빈도는 높지만 일반 말뭉치에서의 확률 빈도도 높아서 어구의 출현 확률빈도가 질문 데이터(200)와 일반 말뭉치(general corpus)에서 크게 차이가 나지 않아 일반 용어로 분류된 어구들을 의미한다. 고빈도 일반 용어가 되는 단어들의 기준점은, 예를 들어, 가장 낮은 빈도수를 가지는 도메인 특화 용어의 빈도수보다 높은 용어로 정의될 수 있다. 고빈도 일반 용어에는 일반적으로 많이 쓰는 표현 - 장소(지역명, 지역대명사 등), 시간(내일, 오전, 다음주 등) - 이 많이 포함될 수 있고, 특정 의미가 없는 일반용어가 도메인 내에선 특정 의미로 많이 사용되는 용어라는 점을 도메인에서의 출현 빈도에 기초하여 확인할 수 있다.
저빈도 일반 용어는 고빈도 일반 용어를 제외한 일반 용어를 의미할 수 있다. 즉, 저빈도 일반 용어는 질문 데이터(200)에서도 출현 확률빈도가 낮고, 일반 말뭉치(general corpus)에서도 출현 확률빈도가 낮은 것을 의미할 수 있다. 저빈도 일반 용어는 질문 데이터(200)의 클러스터링에 있어서 노이즈에 가깝다고 판단될 수 있다.
클러스터링 모듈(33)은 고빈도 일반 용어 분류 모듈(34)에 의해 분류된 각각의 고빈도 일반 용어와 가까운 거리(유사도)의 어구(유사 어구)를 포함하는 질문 데이터(200)의 문장을 적어도 하나 이상의 그룹(유사 문장 그룹)으로 클러스터링하는 구성이다. 고빈도 일반 용어와의 유사도 판단은 General Corpus를 이용한 유사도를 이용할 수 있다. 이를 Corpus-used Similarity라고 할 수 있다. 예를 들어, 한국어의 경우, 국립국어원의 General Corpus 등을 이용할 수 있고, 영어는 Brown Corpus 등을 이용할 수 있다. 또는, 의미 네트워크(Semantic network)를 활용한 유사도 측정을 이용할 수 있다. 이를 Knowledge-based Similarity라고 할 수 있다. 예를 들어, wordNet을 들 수 있다. wordNet을 활용한 단어와 단어 사이의 유사도 측정은 노드 사이의 최소 거리를 활용하는 Path similarity, 노드의 최소거리 및 최대 깊이를 활용하는 Leacock & Chodorow Similarity, 깊이 및 최소 상위 노드를 활용하는 Wu & Palmer Similarity 등의 방법으로 수행될 수 있다.
레이블링 모듈(5)은 클러스터링 모듈(33)에 의해 생성된 적어도 하나 이상의 유사 문장 그룹(복수개의 문장으로 구성됨)을 챗봇 관리자의 클라이언트에 제공하고, 챗봇 관리자의 클라이언트에서 적어도 하나 이상의 유사 문장 그룹에 대응되는 레이블을 입력받아 질문과 대답을 매칭하는 구성이다. 레이블링 모듈(5)에 의해 매우 정확도 높은 트레이닝 세트로서의 질문 데이터가 완성되는 효과가 발생된다.
[제3실시예]
도 8은 본 발명의 제3실시예에 따른 가상 레이블 생성 장치를 도시한 모식도이다. 도 8에 도시된 바와 같이, 본 발명의 제3실시예에 따른 가상 레이블 생성 장치(1)는 질문 데이터(200)가 입력될 수 있고, 구분 모듈(2), 분류 모듈(3), 중요도 판정 모듈(4), 레이블링 모듈(5)을 포함할 수 있다.
구분 모듈(2)은 질문 데이터(200)를 일반 문자열 형태(Normal text)로 입력받게 되고, 이렇게 입력받은 일반 문자열 형태를 NLP 모듈(21)에 의해 개체(entity)나 의미구(intent)와 같은 어구로 구분하는 모듈이다. NLP 모듈(21)은 구체적으로 형태소 분석, 어간 추출, 불용어 추출, TF, TFIDF 등의 기능을 포함할 수 있다. 이후, 벡터화 모듈(22, Sentence2vec나 Word2vec, SyntexNet)에 의해 구분된 개체(entity)나 의미구(intent)와 같은 어구를 벡터값으로 처리하게 된다. 또는 Word2vec가 이용될 수 있고, 구체적으로는 n-gram, 문맥으로부터 단어를 예측하는 CBOW 모델, 또는 단어로부터 문맥을 예측하는 Skip-gram 모델 등이 이용될 수 있다.
분류 모듈(3)은 본 발명의 일실시예에 따른 특정 룰을 토대로 질문 데이터(200)의 문장들을 클러스터링하여 관리자가 레이블링을 하게 되는 언레이블드 그룹(unlabeled group)인 유사 문장 그룹을 생성하는 모듈이다. 본 발명의 일실시예에 따른 분류 모듈(3)은 도메인 특화 점수 계산 모듈(31), 고빈도 일반 용어 분류 모듈(34), 클러스터링 모듈(33)을 포함할 수 있다.
도메인 특화 점수 계산 모듈(31)은 구분 모듈(2)에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 질문 데이터에서의 어구 출현 빈도(또는 어구 출현 확률)와 General corpus에서의 어구 출현 빈도(또는 어구 출현 확률)를 비교하고, 두 빈도의 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 모듈이다. General corpus 내 각 단어의 좌우 단어를 확인하여 해당 어구가 General corpus에서 나올 수 있는 경우의 수(또는 어구 출현 확률)를 파악하고, General corpus의 어구 출현 빈도보다 질문 데이터(200)에서의 어구 출현 빈도(또는 어구 출현 확률)가 더 높을 경우, 해당 어구는 해당 도메인에 특징적이라고 판정될 수 있다. General corpus의 데이터의 양에 따라 어구 출현 빈도 판단의 기준이 될 상호관계의 거리를 i+n, i-n 까지 늘리거나 줄일 수 있다. 여기서 말하는 i는 문장 내 단어의 index 이다. 데이터의 양과 상수 n은 비례할 수 있다.
고빈도 일반 용어 분류 모듈(34)은 도메인 특화 점수 계산 모듈(31)에서 계산된 도메인 특화 점수를 토대로 질문 데이터(200)의 어구들 중 고빈도 일반 용어를 분류하는 구성이다. 도 7은 본 발명의 일실시예에 따른 고빈도 일반 용어 분류 모듈에 의한 질문 데이터의 분류를 도시한 것이다. 도 7에 도시된 바와 같이, 고빈도 일반 용어 분류 모듈(34)에 의해 질문 데이터(200)의 어구들은 도메인 특화 용어, 일반 용어로 구분될 수 있다.
일반 용어는 고빈도 일반 용어와 저빈도 일반 용어로 구분될 수 있다. 본 발명의 일실시예에 따른 도메인 특화 용어란, 도메인 특화 점수 계산 모듈(31)에서 정의된 바와 같이, 질문 데이터(200)에서의 어구의 출현 확률빈도가 일반 말뭉치(general corpus)에서의 확률빈도보다 월등히 높은 어구를 의미한다. 도메인 특화 용어가 아닌 나머지 어구들은 일반 용어로 구분될 수 있고, 일반 용어는 고빈도 일반 용어와 저빈도 일반 용어로 구분될 수 있다. 고빈도 일반 용어는 도메인 안에서의 확률 빈도는 높지만 일반 말뭉치에서의 확률 빈도도 높아서 어구의 출현 확률빈도가 질문 데이터(200)와 일반 말뭉치(general corpus)에서 크게 차이가 나지 않아 일반 용어로 분류된 어구들을 의미한다. 고빈도 일반 용어가 되는 단어들의 기준점은, 예를 들어, 가장 낮은 빈도수를 가지는 도메인 특화 용어의 빈도수보다 높은 용어로 정의될 수 있다. 고빈도 일반 용어에는 일반적으로 많이 쓰는 표현 - 장소(지역명, 지역대명사 등), 시간(내일, 오전, 다음주 등) - 이 많이 포함될 수 있고, 특정 의미가 없는 일반용어가 도메인 내에선 특정 의미로 많이 사용되는 용어라는 점을 도메인에서의 출현 빈도에 기초하여 확인할 수 있다.
고빈도 일반 용어의 경우, 각각의 어구 사이의 거리를 일반 말뭉치(general corpus)로부터 계산하고 가까운 거리의 집합된 단어들을 집합화하면 어구들의 집합이 어떤 의미를 갖는지는 자동화하기 어렵지만, 분류된 집합의 어구들을 살펴보면 시간을 의미하는 문장 그룹, 장소를 의미하는 문장 그룹 등으로 분류된 것을 확인할 수 있다. 이에 따라 고빈도 일반 용어는 해당 도메인에서 특수한 또는 중요한 역할을 하는 용어로 정의될 수 있다.
저빈도 일반 용어는 고빈도 일반 용어를 제외한 일반 용어를 의미할 수 있다. 즉, 저빈도 일반 용어는 질문 데이터(200)에서도 출현 확률빈도가 낮고, 일반 말뭉치(general corpus)에서도 출현 확률빈도가 낮은 것을 의미할 수 있다. 저빈도 일반 용어는 질문 데이터(200)의 클러스터링에 있어서 노이즈에 가깝다고 판단될 수 있다.
클러스터링 모듈(33)은 고빈도 일반 용어 분류 모듈(34)에 의해 분류된 각각의 고빈도 일반 용어와 가까운 거리(유사도)의 어구(유사 어구)를 포함하는 질문 데이터(200)의 문장을 적어도 하나 이상의 그룹(유사 문장 그룹)으로 클러스터링하는 구성이다. 고빈도 일반 용어와의 유사도 판단은 General Corpus를 이용한 유사도를 이용할 수 있다. 이를 Corpus-used Similarity라고 할 수 있다. 예를 들어, 한국어의 경우, 국립국어원의 General Corpus 등을 이용할 수 있고, 영어는 Brown Corpus 등을 이용할 수 있다. 또는, 의미 네트워크(Semantic network)를 활용한 유사도 측정을 이용할 수 있다. 이를 Knowledge-based Similarity라고 할 수 있다. 예를 들어, wordNet을 들 수 있다. wordNet을 활용한 단어와 단어 사이의 유사도 측정은 노드 사이의 최소 거리를 활용하는 Path similarity, 노드의 최소거리 및 최대 깊이를 활용하는 Leacock & Chodorow Similarity, 깊이 및 최소 상위 노드를 활용하는 Wu & Palmer Similarity 등의 방법으로 수행될 수 있다.
다른 예로, 질문 데이터의 문장 자체가 도메인 특화 용어로만 되어 있는 경우에는 고빈도 일반 용어와의 유사도를 통해 클러스터되는 것과 별도로 클러스터링을 할 수 있다. 이렇게 도메인 특화 용어와의 유사도로 클러스터링 되는 유사 문장 그룹은 중요도 판정 모듈(4)을 거치지 않고 곧바로 레이블링 모듈(5)로 제공될 수 있다.
중요도 판정 모듈(4)은 클러스터링 모듈(33)에서 클러스터링 된 적어도 하나 이상의 유사 문장 그룹(고빈도 일반 용어와 유사한 어구를 포함하는 문장 그룹)에서 도메인에 중요한 유사 문장 그룹인지 여부를 판정하는 모듈이다. 중요도 판정 모듈(4)은 2차 분류 모듈(41), 도메인 다양성 계산 모듈(42), 레이블 문장 그룹 판정 모듈(43)을 포함할 수 있다.
2차 분류 모듈(41)은 클러스터링 모듈(33)에서 고빈도 일반 용어와의 유사도를 기초로 클러스터링 된 적어도 하나 이상의 유사 문장 그룹에 포함된 복수개의 문장을 도메인 특화 용어와의 유사도를 기초로 2차 분류하여 도메인 유사 문장 그룹으로 분류하는 모듈이다. 도 9는 본 발명의 제3실시예에 따른 2차 분류 모듈(41)에 의한 도메인 유사 문장 그룹으로의 분류의 예를 도시한 모식도이다. 도 9에 도시된 바와 같이, 본 발명의 제3실시예에 따른 2차 분류 모듈(41)에 따르면 고빈도 일반 용어를 기준으로 A 유사 문장 그룹과 B 유사 문장 그룹으로 구분되고, 도메인 특화 용어를 기준으로 각각의 유사 문장 그룹이 적어도 하나의 도메인 유사 문장 그룹으로 분류될 수 있다.
도메인 다양성 계산 모듈(42)은 2차 분류 모듈(41)에 의해 유사 문장 그룹 내에서 분류되는 적어도 하나 이상의 도메인 유사 문장 그룹의 분포를 토대로 해당 유사 문장 그룹의 도메인 다양성을 계산하는 모듈이다. 본 발명의 제3실시예에 따라 도메인 다양성을 계산하는 일 예로, 도메인 특화 용어와의 유사도로 전체 질문 데이터(200)가 몇 개로 분류되는지 계산하고, 각각의 유사 문장 그룹 내에서 2차로 분류되는 도메인 유사 문장 그룹의 수와 비교하는 방법이 이용될 수 있다. 예를 들어, 전체 질문 데이터(200)가 도메인 특화 용어와의 유사도에 의해 10개 그룹으로 분류될 수 있을 때, A 유사 문장 그룹은 5개의 도메인 유사 문장 그룹으로 분류되고 B 유사 문장 그룹은 8개의 도메인 유사 문장 그룹으로 분류되는 경우 A 유사 문장 그룹의 도메인 다양성이 더 낮다고 판정될 수 있다.
레이블 문장 그룹 판정 모듈(43)은 도메인 다양성 계산 모듈에서 계산된 특정 유사 문장 그룹의 도메인 다양성을 기초로 특정 유사 문장 그룹의 중요도를 판정하여 챗봇 관리자에게 제공하는 문장 그룹인 레이블 문장 그룹을 판정하는 모듈이다. 레이블링을 하는 것이 유의미한 문장 그룹을 챗봇 관리자에게 제공하는 것이 본 발명의 제3실시예에 따른 목적이므로, 레이블 문장 그룹 판정 모듈(43)은 유사 문장 그룹의 도메인 다양성을 토대로 그룹의 중요도를 판정하여 챗봇 관리자에게 제공되는 레이블 문장 그룹으로 판정할지, 챗봇 관리자에게 제공되지 않는 문장 그룹으로 판정할지를 결정할 수 있다.
일예로, 유사 문장 그룹의 중요도는 해당 유사 문장 그룹의 레이블링 모듈(5)에서의 챗봇 관리자에 대한 제공 여부를 결정해주는 기준이 될 수 있다. 예를 들어, 유사 문장 그룹의 도메인 다양성이 높을수록 해당 도메인에서 레이블을 나누는데 영향을 미치지 않는 문장 그룹일 가능성이 높다고 판정될 수 있고, 유사 문장 그룹의 도메인 다양성이 낮을수록 해당 도메인에서 레이블을 나누는데 영향을 미치는 문장 그룹일 가능성이 높다고 판정될 수 있다. 레이블을 나누는데 영향을 미치는 문장 그룹은 레이블 문장 그룹으로 정의하고 챗봇 관리자에게 제공하도록 레이블링 모듈에 제공할 수 있다. 레이블을 나누는데 영향을 미치지 않는 문장 그룹은 언레이블 문장 그룹으로 정의하고 챗봇 관리자에게 제공하지 않도록 레이블링 모듈에 제공할 수 있다. 본 발명의 제3실시예에 따르면, 도메인 다양성이 높은 유사 문장 그룹의 경우, 해당 고빈도 일반 용어와의 유사도로 클러스터링 된 유사 문장 그룹으로부터 발생된 도메인 유사 문장 그룹들은 유효하지 않다고 판단되어 잡음으로 처리되고, 도메인 특화 용어와의 유사도로 이루어지는 유사 문장 그룹에 흡수되도록 구성될 수 있다.
다른 예로, 도메인 다양성이 낮은 유사 문장 그룹의 경우, 2차로 분류되는 도메인 유사 문장 그룹이 레이블 문장 그룹으로 판정될 수 있다. 또한 도메인 다양성이 높은 유사 문장 그룹의 경우, 2차로 분류되는 것과 관련 없이 해당 유사 문장 그룹 자체가 레이블 문장 그룹으로 판정되어 챗봇 관리자의 부하를 줄여줄 수 있다. 이러한 경우, 유사 문장 그룹의 중요도인 도메인 다양성은 해당 유사 문장 그룹을 레이블 문장 그룹으로 판정할지, 해당 유사 문장 그룹 내에서 분류되는 각각의 도메인 유사 문장 그룹을 레이블 문장 그룹으로 판정할지에 대한 기준이 될 수 있다.
레이블링 모듈(5)은 클러스터링 모듈(33)에 의해 생성된 적어도 하나 이상의 유사 문장 그룹 중 레이블 문장 그룹 판정 모듈(43)에 의해 챗봇 관리자에게 제공하기로 판정된 유사 문장 그룹(레이블 문장 그룹)을 챗봇 관리자의 클라이언트에 제공하고, 챗봇 관리자의 클라이언트에서 해당 유사 문장 그룹에 대응되는 레이블을 입력받아 질문과 대답을 매칭하는 구성이다.
레이블링 모듈(5)에 의해 매우 정확도 높은 트레이닝 세트로서의 질문 데이터가 완성되는 효과가 발생된다. 중요도 판정 모듈(4)에서의 고빈도 일반 용어와의 유사도로 클러스터링 되는 유사 문장 그룹내의 도메인 유사 문장 그룹 분포율을 통해 중복된 문맥 집합군이 감소되는 효과가 발생될 수 있다. 예를 들어, 질문 데이터가 도메인 특화 용어와의 유사도 또는 고빈도 일반 용어와의 유사도만으로 분류되는 경우 챗봇 관리자가 60개의 레이블링을 수행해야 했다면, 본 발명의 제3실시예에 따라 레이블링에 중요하지 않은 유사 문장 그룹들을 배제할 수 있게 되므로 20개의 레이블링만 수행하면 되는 효과가 발생될 수 있는 것이다.
다른 예로, 질문 데이터의 문장 자체가 도메인 특화 용어로만 되어 있는 경우에는 클러스터링 모듈(33)에서 고빈도 일반 용어와의 유사도를 통해 클러스터되는 것과 별도로 클러스터링을 할 수 있다. 이렇게 도메인 특화 용어와의 유사도로 클러스터링 되는 유사 문장 그룹은 중요도 판정 모듈(4)을 거치지 않고 곧바로 레이블링 모듈(5)로 제공될 수 있다. 이러한 경우, 레이블링 모듈(5)은 도메인 특화 용어로만 구성된 유사 문장 그룹과 레이블 문장 그룹 판정 모듈(43)에 의해 챗봇 관리자에게 제공하기로 판정된 레이블 문장 그룹을 챗봇 관리자의 클라이언트에 제공할 수 있다.
특정 도메인에 대한 챗봇의 트레이닝 세트 레이블링을 위한 가상 레이블 생성 방법
[제1실시예]
도 10은 본 발명의 제1실시예에 따른 가상 레이블 생성 방법을 도시한 모식도이다. 도 10에 도시된 바와 같이, 본 발명의 제1실시예에 따른 가상 레이블 생성 방법은 구분 단계(S10), 도메인 특화 점수 생성 단계(S11), 도메인 특화 용어 분류 단계(S12), 클러스터링 단계(S13)를 포함할 수 있다.
구분 단계(S10)는, 구분 모듈(2)이 질문 데이터(200)를 일반 문자열 형태(Normal text)로 입력받게 되고, 이렇게 입력받은 일반 문자열 형태를 NLP 모듈(21)에 의해 개체(entity)나 의미구(intent)와 같은 어구로 구분하고 벡터화 모듈(22)에 의해 vector 값으로 변환하는 단계이다. NLP 모듈(21)은 구체적으로 형태소 분석, 어간 추출, 불용어 추출, TF, TFIDF 등의 기능으로 형태소를 분절할 수 있다. 벡터화 모듈(22, Sentence2vec나 Word2vec, SyntexNet)은 구분된 개체(entity)나 의미구(intent)와 같은 어구를 벡터값으로 처리하게 되는데, Word2vec가 이용될 수 있고, 구체적으로는 n-gram, 문맥으로부터 단어를 예측하는 CBOW 모델, 또는 단어로부터 문맥을 예측하는 Skip-gram 모델 등이 이용될 수 있다.
도메인 특화 점수 생성 단계(S11)는, 분류 모듈(3)의 일구성인 도메인 특화 점수 계산 모듈(31)이 구분 모듈(2)에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 질문 데이터에서의 어구 출현 빈도(또는 어구 출현 확률)와 General corpus에서의 어구 출현 빈도(또는 어구 출현 확률)를 비교하고, 두 빈도의 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 단계이다. General corpus 내 각 단어의 좌우 단어를 확인하여 해당 어구가 General corpus에서 나올 수 있는 경우의 수(또는 어구 출현 확률)를 파악하고, General corpus의 어구 출현 빈도보다 질문 데이터(200)에서의 어구 출현 빈도(또는 어구 출현 확률)가 더 높을 경우, 해당 어구는 해당 도메인에 특징적이라고 판정될 수 있다. General corpus의 데이터의 양에 따라 어구 출현 빈도 판단의 기준이 될 상호관계의 거리를 i+n, i-n 까지 늘리거나 줄일 수 있다. 여기서 말하는 i는 문장 내 단어의 index 이다. 데이터의 양과 상수 n은 비례할 수 있다.
도메인 특화 용어 분류 단계(S12)는, 분류 모듈(3)의 일구성인 도메인 특화 용어 분류 모듈(32)이 도메인 특화 점수 계산 모듈(31)에서 계산된 도메인 특화 점수를 토대로 질문 데이터(200)의 어구들 중 도메인 특화 용어를 분류하는 단계이다. 도메인 특화 용어 분류 모듈(32)에 의해 질문 데이터(200)의 어구들은 도메인 특화 용어, 일반 용어로 구분될 수 있다.
클러스터링 단계(S13)는, 분류 모듈(3)의 일구성인 클러스터링 모듈(33)이 도메인 특화 용어 분류 모듈(32)에 의해 분류된 각각의 도메인 특화 용어와 가까운 거리(유사도)의 어구(유사 어구)를 포함하는 질문 데이터(200)의 문장을 적어도 하나 이상의 그룹(유사 문장 그룹)으로 클러스터링하는 구성이다. 도메인 특화 용어와의 유사도 판단은 General Corpus를 이용한 유사도를 이용할 수 있다. 이를 Corpus-used Similarity라고 할 수 있다. 예를 들어, 한국어의 경우, 국립국어원의 General Corpus 등을 이용할 수 있고, 영어는 Brown Corpus 등을 이용할 수 있다. 또는, 의미 네트워크(Semantic network)를 활용한 유사도 측정을 이용할 수 있다. 이를 Knowledge-based Similarity라고 할 수 있다. 예를 들어, wordNet을 들 수 있다. wordNet을 활용한 단어와 단어 사이의 유사도 측정은 노드 사이의 최소 거리를 활용하는 Path similarity, 노드의 최소거리 및 최대 깊이를 활용하는 Leacock & Chodorow Similarity, 깊이 및 최소 상위 노드를 활용하는 Wu & Palmer Similarity 등의 방법으로 수행될 수 있다.
클러스터링 단계(S13)에서 생성된 적어도 하나 이상의 유사 문장 그룹은, 레이블링 모듈(5)에 의해 챗봇 관리자의 클라이언트에 제공되고, 챗봇 관리자의 클라이언트에서 적어도 하나 이상의 유사 문장 그룹에 대응되는 레이블을 입력받아 질문과 대답을 매칭하게 된다. 레이블링 모듈(5)에 의해 매우 정확도 높은 트레이닝 세트로서의 질문 데이터가 완성되는 효과가 발생된다.
도 11은 본 발명의 제1실시예에 따른 가상 레이블 생성 방법의 각 단계별 결과 예시를 도시한 것이다. 도 11에 따르면, S10에서는 질문 데이터가 '양념치킨', '주문', '배달', '강남역', '잠실역', '오전', '오후'로 형태소 분석으로 어구로 분절되고, S11에서는 각각의 어구에 대해 얼마나 도메인에 특화되어 있는지에 대한 점수인 도메인 특화 점수를 계산하여 '양념치킨'=1, '주문'=0.8, '배달'=0.7, '강남역'=0.2, '잠실역'=0.2, '오전'=0.1, '오후'=0.1로 생성하게 된다. 도메인 특화 점수가 높을수록 general corpus에서보다 질문 데이터에서의 출현 확률 빈도가 높음을 의미한다. S12에서는 도메인 특화 점수를 기초로 해당 어구들을 도메인 특화 용어('양념치킨', '주문', '배달')와 일반 용어('강남역', '잠실역', '오전', '오후')로 분류하게 된다. S13에서는 도메인 특화 용어와의 유사도를 기초로 적어도 하나의 유사 문장 그룹(1그룹:'오전에 배달 가능 한가요', '오후에도 주문 가능한가요', '잠실역으로 배달 가능한가요')이 생성되고, 이러한 유사 문장 그룹은 레이블링 모듈에서 챗봇 관리자에게 제공되며, 관리자에 의해 태깅이 된 이후에는 챗봇 인공지능 모듈의 트레이닝 세트로 활용하게 된다.
본 발명의 제1실시예에 따르면 일반 말뭉치(general corpus)를 이용하여 질문 데이터를 클러스터링하는 것보다 훨씬 도메인에 특화된 클러스터링이 가능해지는 효과가 발생된다. 또한, 기존에 사전을 제작하여 해결하던 문제를 별도의 사전 없이 해결할 수 있게 되므로 상당한 비용과 인적 자원을 절감할 수 있는 효과가 발생된다.
[제2실시예]
본 발명의 다른 실시예와 관련하여, 도 12는 본 발명의 제2실시예에 따른 가상 레이블 생성 방법을 도시한 모식도이다. 도 12에 도시된 바와 같이, 본 발명의 제2실시예에 따른 가상 레이블 생성 방법은 구분 단계(S10), 도메인 특화 점수 생성 단계(S11), 고빈도 일반 용어 분류 단계(S12'), 클러스터링 단계(S13')를 포함할 수 있다.
구분 단계(S10)는, 구분 모듈(2)이 질문 데이터(200)를 일반 문자열 형태(Normal text)로 입력받게 되고, 이렇게 입력받은 일반 문자열 형태를 NLP 모듈(21)에 의해 개체(entity)나 의미구(intent)와 같은 어구로 구분하고 벡터화 모듈(22)에 의해 vector 값으로 변환하는 단계이다. NLP 모듈(21)은 구체적으로 형태소 분석, 어간 추출, 불용어 추출, TF, TFIDF 등의 기능으로 형태소를 분절할 수 있다. 벡터화 모듈(22, Sentence2vec나 Word2vec, SyntexNet)은 구분된 개체(entity)나 의미구(intent)와 같은 어구를 벡터값으로 처리하게 되는데, Word2vec가 이용될 수 있고, 구체적으로는 n-gram, 문맥으로부터 단어를 예측하는 CBOW 모델, 또는 단어로부터 문맥을 예측하는 Skip-gram 모델 등이 이용될 수 있다.
도메인 특화 점수 생성 단계(S11)는, 분류 모듈(3)의 일구성인 도메인 특화 점수 계산 모듈(31)이 구분 모듈(2)에서 구분된 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 질문 데이터에서의 어구 출현 빈도(또는 어구 출현 확률)와 General corpus에서의 어구 출현 빈도(또는 어구 출현 확률)를 비교하고, 두 빈도의 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 단계이다. General corpus 내 각 단어의 좌우 단어를 확인하여 해당 어구가 General corpus에서 나올 수 있는 경우의 수(또는 어구 출현 확률)를 파악하고, General corpus의 어구 출현 빈도보다 질문 데이터(200)에서의 어구 출현 빈도(또는 어구 출현 확률)가 더 높을 경우, 해당 어구는 해당 도메인에 특징적이라고 판정될 수 있다. General corpus의 데이터의 양에 따라 어구 출현 빈도 판단의 기준이 될 상호관계의 거리를 i+n, i-n 까지 늘리거나 줄일 수 있다. 여기서 말하는 i는 문장 내 단어의 index 이다. 데이터의 양과 상수 n은 비례할 수 있다.
고빈도 일반 용어 분류 단계(S12')는, 분류 모듈(3)의 일구성인 고빈도 일반 용어 분류 모듈(34)이 도메인 특화 점수 계산 모듈(31)에서 계산된 도메인 특화 점수를 토대로 질문 데이터(200)의 어구들 중 고빈도 일반 용어를 분류하는 단계이다. 고빈도 일반 용어 분류 모듈(34)에 의해 질문 데이터(200)의 어구들은 도메인 특화 용어, 일반 용어로 구분될 수 있다.
일반 용어는 고빈도 일반 용어와 저빈도 일반 용어로 구분될 수 있다. 본 발명의 일실시예에 따른 도메인 특화 용어란, 도메인 특화 점수 계산 모듈(31)에서 정의된 바와 같이, 질문 데이터(200)에서의 어구의 출현 확률빈도가 일반 말뭉치(general corpus)에서의 확률빈도보다 월등히 높은 어구를 의미한다. 도메인 특화 용어가 아닌 나머지 어구들은 일반 용어로 구분될 수 있고, 일반 용어는 고빈도 일반 용어와 저빈도 일반 용어로 구분될 수 있다. 고빈도 일반 용어는 도메인 안에서의 확률 빈도는 높지만 일반 말뭉치에서의 확률 빈도도 높아서 어구의 출현 확률빈도가 질문 데이터(200)와 일반 말뭉치(general corpus)에서 크게 차이가 나지 않아 일반 용어로 분류된 어구들을 의미한다. 고빈도 일반 용어가 되는 단어들의 기준점은, 예를 들어, 가장 낮은 빈도수를 가지는 도메인 특화 용어의 빈도수보다 높은 용어로 정의될 수 있다. 고빈도 일반 용어에는 일반적으로 많이 쓰는 표현 - 장소(지역명, 지역대명사 등), 시간(내일, 오전, 다음주 등) - 이 많이 포함될 수 있고, 특정 의미가 없는 일반용어가 도메인 내에선 특정 의미로 많이 사용되는 용어라는 점을 도메인에서의 출현 빈도에 기초하여 확인할 수 있다.
저빈도 일반 용어는 고빈도 일반 용어를 제외한 일반 용어를 의미할 수 있다. 즉, 저빈도 일반 용어는 질문 데이터(200)에서도 출현 확률빈도가 낮고, 일반 말뭉치(general corpus)에서도 출현 확률빈도가 낮은 것을 의미할 수 있다. 저빈도 일반 용어는 질문 데이터(200)의 클러스터링에 있어서 노이즈에 가깝다고 판단될 수 있다.
클러스터링 단계(S13')는, 분류 모듈(3)의 일구성인 클러스터링 모듈(33)이 고빈도 일반 용어 분류 모듈(34)에 의해 분류된 각각의 고빈도 일반 용어와 가까운 거리(유사도)의 어구(유사 어구)를 포함하는 질문 데이터(200)의 문장을 적어도 하나 이상의 그룹(유사 문장 그룹)으로 클러스터링하는 구성이다. 고빈도 일반 용어와의 유사도 판단은 General Corpus를 이용한 유사도를 이용할 수 있다. 이를 Corpus-used Similarity라고 할 수 있다. 예를 들어, 한국어의 경우, 국립국어원의 General Corpus 등을 이용할 수 있고, 영어는 Brown Corpus 등을 이용할 수 있다. 또는, 의미 네트워크(Semantic network)를 활용한 유사도 측정을 이용할 수 있다. 이를 Knowledge-based Similarity라고 할 수 있다. 예를 들어, wordNet을 들 수 있다. wordNet을 활용한 단어와 단어 사이의 유사도 측정은 노드 사이의 최소 거리를 활용하는 Path similarity, 노드의 최소거리 및 최대 깊이를 활용하는 Leacock & Chodorow Similarity, 깊이 및 최소 상위 노드를 활용하는 Wu & Palmer Similarity 등의 방법으로 수행될 수 있다.
클러스터링 단계(S13')에서 생성된 적어도 하나 이상의 유사 문장 그룹은, 레이블링 모듈(5)에 의해 챗봇 관리자의 클라이언트에 제공되고, 챗봇 관리자의 클라이언트에서 적어도 하나 이상의 유사 문장 그룹에 대응되는 레이블을 입력받아 질문과 대답을 매칭하게 된다. 레이블링 모듈(5)에 의해 매우 정확도 높은 트레이닝 세트로서의 질문 데이터가 완성되는 효과가 발생된다.
도 13은 본 발명의 제2실시예에 따른 가상 레이블 생성 방법의 각 단계별 결과 예시를 도시한 것이다. 도 13에 따르면, S10에서는 질문 데이터가 '양념치킨', '주문', '배달', '강남역', '잠실역', '오전', '오후'로 형태소 분석으로 어구로 분절되고, S11에서는 각각의 어구에 대해 얼마나 도메인에 특화되어 있는지에 대한 점수인 도메인 특화 점수를 계산하여 '양념치킨'=1, '주문'=0.8, '배달'=0.7, '강남역'=0.2, '잠실역'=0.2, '오전'=0.1, '오후'=0.1로 생성하게 된다. 도메인 특화 점수가 높을수록 general corpus에서보다 질문 데이터에서의 출현 확률 빈도가 높음을 의미한다. S12'에서는 도메인 특화 점수를 기초로 해당 어구들을 도메인 특화 용어('양념치킨', '주문', '배달'), 고빈도 일반 용어('오전', '오후')와 저빈도 일반 용어('강남역', '잠실역')로 분류하게 된다. S13'에서는 고빈도 일반 용어와의 유사도를 기초로 적어도 하나의 유사 문장 그룹(1그룹:'오전에 배달 가능 한가요', '오후에도 주문 가능한가요', '내일 오후에 잠실역으로 배달 가능한가요')이 생성되고, 이러한 유사 문장 그룹은 레이블링 모듈에서 챗봇 관리자에게 제공되며, 관리자에 의해 태깅이 된 이후에는 챗봇 인공지능 모듈의 트레이닝 세트로 활용하게 된다.
본 발명의 제2실시예에 따르면 일반 말뭉치(general corpus)를 이용하여 질문 데이터를 클러스터링하는 것보다 훨씬 도메인에 특화된 클러스터링이 가능해지는 효과가 발생된다. 특히 도메인 특화 용어와의 유사도를 이용하여 클러스터링을 수행했을 때 놓칠 수 있는 실제 도메인에서의 문장도 고빈도 일반 용어에 의해 클러스터링할 수 있는 효과가 발생된다. 또한, 기존에 사전을 제작하여 해결하던 문제를 별도의 사전 없이 해결할 수 있게 되므로 상당한 비용과 인적 자원을 절감할 수 있는 효과가 발생된다.
[제3실시예]
본 발명의 다른 실시예와 관련하여, 도 14는 본 발명의 제3실시예에 따른 가상 레이블 생성 방법을 도시한 모식도이다. 도 14에 도시된 바와 같이, 본 발명의 제3실시예에 따른 가상 레이블 생성 방법은 구분 단계(S10), 도메인 특화 점수 생성 단계(S11), 고빈도 일반 용어 분류 단계(S12'), 클러스터링 단계(S13'), 2차 분류 단계(S14), 도메인 다양성 계산 단계(S15), 레이블 문장 그룹 판정 단계(S16)를 포함할 수 있다.
구분 단계(S10), 도메인 특화 점수 생성 단계(S11), 고빈도 일반 용어 분류 단계(S12'), 클러스터링 단계(S13')는 위에서 설명된 본 발명의 제2실시예에 따른 가상 레이블 생성 방법과 동일하다.
2차 분류 단계(S14)는, 2차 분류 모듈(41)이 클러스터링 모듈(33)에서 고빈도 일반 용어와의 유사도를 기초로 클러스터링 된 적어도 하나 이상의 유사 문장 그룹에 포함된 복수개의 문장을 도메인 특화 용어와의 유사도를 기초로 2차 분류하여 도메인 유사 문장 그룹으로 분류하는 단계이다.
도메인 다양성 계산 단계(S15)는, 도메인 다양성 계산 모듈(42)이 2차 분류 모듈(41)에 의해 유사 문장 그룹 내에서 분류되는 적어도 하나 이상의 도메인 유사 문장 그룹의 분포를 토대로 해당 유사 문장 그룹의 도메인 다양성을 계산하는 단계이다. 본 발명의 제3실시예에 따라 도메인 다양성을 계산하는 일 예로, 도메인 특화 용어와의 유사도로 전체 질문 데이터(200)가 몇 개로 분류되는지 계산하고, 각각의 유사 문장 그룹 내에서 2차로 분류되는 도메인 유사 문장 그룹의 수와 비교하는 방법이 이용될 수 있다. 예를 들어, 전체 질문 데이터(200)가 도메인 특화 용어와의 유사도에 의해 10개 그룹으로 분류될 수 있을 때, A 유사 문장 그룹은 5개의 도메인 유사 문장 그룹으로 분류되고 B 유사 문장 그룹은 8개의 도메인 유사 문장 그룹으로 분류되는 경우 A 유사 문장 그룹의 도메인 다양성이 더 낮다고 판정될 수 있다.
레이블 문장 그룹 판정 단계(S16)는, 레이블 문장 그룹 판정 모듈(43)이 도메인 다양성 계산 모듈에서 계산된 특정 유사 문장 그룹의 도메인 다양성을 기초로 특정 유사 문장 그룹의 중요도를 판정하여 챗봇 관리자에게 제공하는 문장 그룹인 레이블 문장 그룹을 판정하는 단계이다. 레이블링을 하는 것이 유의미한 문장 그룹을 챗봇 관리자에게 제공하는 것이 본 발명의 제3실시예에 따른 목적이므로, 레이블 문장 그룹 판정 모듈(43)은 유사 문장 그룹의 도메인 다양성을 토대로 그룹의 중요도를 판정하여 챗봇 관리자에게 제공되는 레이블 문장 그룹으로 판정할지, 챗봇 관리자에게 제공되지 않는 문장 그룹으로 판정할지를 결정할 수 있다.
일예로, 유사 문장 그룹의 중요도는 해당 유사 문장 그룹의 레이블링 모듈(5)에서의 챗봇 관리자에 대한 제공 여부를 결정해주는 기준이 될 수 있다. 예를 들어, 유사 문장 그룹의 도메인 다양성이 높을수록 해당 도메인에서 레이블을 나누는데 영향을 미치지 않는 문장 그룹일 가능성이 높다고 판정될 수 있고, 유사 문장 그룹의 도메인 다양성이 낮을수록 해당 도메인에서 레이블을 나누는데 영향을 미치는 문장 그룹일 가능성이 높다고 판정될 수 있다. 레이블을 나누는데 영향을 미치는 문장 그룹은 레이블 문장 그룹으로 정의하고 챗봇 관리자에게 제공하도록 레이블링 모듈에 제공할 수 있다. 레이블을 나누는데 영향을 미치지 않는 문장 그룹은 언레이블 문장 그룹으로 정의하고 챗봇 관리자에게 제공하지 않도록 레이블링 모듈에 제공할 수 있다. 본 발명의 제3실시예에 따르면, 도메인 다양성이 높은 유사 문장 그룹의 경우, 해당 고빈도 일반 용어와의 유사도로 클러스터링 된 유사 문장 그룹으로부터 발생된 도메인 유사 문장 그룹들은 유효하지 않다고 판단되어 잡음으로 처리되고, 도메인 특화 용어와의 유사도로 이루어지는 유사 문장 그룹에 흡수되도록 구성될 수 있다.
다른 예로, 도메인 다양성이 낮은 유사 문장 그룹의 경우, 2차로 분류되는 도메인 유사 문장 그룹이 레이블 문장 그룹으로 판정될 수 있다. 또한 도메인 다양성이 높은 유사 문장 그룹의 경우, 2차로 분류되는 것과 관련 없이 해당 유사 문장 그룹 자체가 레이블 문장 그룹으로 판정되어 챗봇 관리자의 부하를 줄여줄 수 있다. 이러한 경우, 유사 문장 그룹의 중요도인 도메인 다양성은 해당 유사 문장 그룹을 레이블 문장 그룹으로 판정할지, 해당 유사 문장 그룹 내에서 분류되는 각각의 도메인 유사 문장 그룹을 레이블 문장 그룹으로 판정할지에 대한 기준이 될 수 있다.
레이블 문장 그룹 판정 단계(S16)에서 생성된 적어도 하나 이상의 레이블 문장 그룹은, 레이블링 모듈(5)에 의해 챗봇 관리자의 클라이언트에 제공되고, 챗봇 관리자의 클라이언트에서 적어도 하나 이상의 레이블 문장 그룹에 대응되는 레이블을 입력받아 질문과 대답을 매칭하게 된다. 레이블링 모듈(5)에 의해 매우 정확도 높은 트레이닝 세트로서의 질문 데이터가 완성되는 효과가 발생된다.
도 15는 본 발명의 제3실시예에 따른 가상 레이블 생성 방법의 각 단계별 결과 예시를 도시한 것이다. 도 15에 따르면, S10에서는 질문 데이터가 '양념치킨', '주문', '배달', '강남역', '잠실역', '오전', '오후'로 형태소 분석으로 어구로 분절되고, S11에서는 각각의 어구에 대해 얼마나 도메인에 특화되어 있는지에 대한 점수인 도메인 특화 점수를 계산하여 '양념치킨'=1, '주문'=0.8, '배달'=0.7, '강남역'=0.2, '잠실역'=0.2, '오전'=0.1, '오후'=0.1로 생성하게 된다. 도메인 특화 점수가 높을수록 general corpus에서보다 질문 데이터에서의 출현 확률 빈도가 높음을 의미한다. S12'에서는 도메인 특화 점수를 기초로 해당 어구들을 도메인 특화 용어('양념치킨', '주문', '배달'), 고빈도 일반 용어('오전', '오후', '강남역', '잠실역')와 저빈도 일반 용어('과자', '냉장고')로 분류하게 된다. S13'에서는 고빈도 일반 용어와의 유사도를 기초로 적어도 하나의 유사 문장 그룹(1그룹:'오전에 배달 가능 한가요', '오후에도 주문 가능한가요', '내일 오후에 잠실역으로 배달 가능한가요', 2그룹: '강남역으로 양념치킨 주문할게요'와 '잠실역으로 배달 가능한가요')이 생성된다. S14에서는 각각의 유사 문장 그룹 내의 문장들을 도메인 특화 용어와의 유사도를 토대로 2차 분류하여 도메인 유사 문장 그룹(1그룹 내 A그룹: '오전배달 가능 한가요', '오후에도 주문 가능한가요', '내일 오후에 잠실역으로 배달 가능한가요'…, 1그룹 내 B그룹: '오전치킨 가능 한가요', '오후에도 런치메뉴 주문 가능한가요', '내일 오후후라이드 가능한가요'…)을 생성한다. S15에서는 생성된 도메인 유사 문장 그룹의 개수를 토대로 해당 유사 문장 그룹의 도메인 다양성(1그룹= 도메인 다양성 0.8, 2그룹= 도메인 다양성 0.2,...)을 계산한다. S16에서는 챗봇 관리자에게 제공할 문장 그룹인 레이블 문장 그룹을 결정하는 단계로서, 도메인 다양성을 토대로 어떤 문장 그룹을 레이블 문장 그룹으로 할지를 결정하게 된다. 도메인 다양성이 높은 경우 해당 도메인 내에서 레이블링을 하기에 중요하지 않은 문장 그룹으로 판정하여 레이블 문장 그룹으로 결정하지 않거나 유사 문장 그룹 자체를 도메인 특화 용어만으로 구성된 유사 문장 그룹에 편입 시켜 레이블 문장 그룹으로 결정할 수 있다. 도메인 다양성이 낮은 경우 해당 도메인 내에서 레이블링을 하기에 중요한 문장 그룹으로 판정하여 도메인 유사 문장 그룹 중 적어도 일부를 레이블 문장 그룹으로 결정할 수 있다. 이에 따라 챗봇 관리자는 레이블링을 하기에 중요한 문장 그룹만 레이블링을 하면 되므로, 인력의 소모가 감소하는 효과가 발생된다.
본 발명의 제3실시예에 따르면 일반 말뭉치(general corpus)를 이용하여 질문 데이터를 클러스터링하는 것보다 훨씬 도메인에 특화된 클러스터링이 가능해지는 효과가 발생된다. 특히 도메인 특화 용어와의 유사도를 이용하여 클러스터링을 수행했을 때 놓칠 수 있는 실제 도메인에서의 문장도 고빈도 일반 용어에 의해 클러스터링할 수 있는 효과가 발생된다. 게다가 도메인에서 레이블을 구분하기에 중요한 고빈도 일반 용어와 중요하지 않은 고빈도 일반 용어를 자동적으로 구분시켜줄 수 있는 효과가 발생된다. 이에 따라 도메인 맞춤형 레이블링이 가능하게 된다. 또한, 기존에 사전을 제작하여 해결하던 문제를 별도의 사전 없이 해결할 수 있게 되므로 상당한 비용과 인적 자원을 절감할 수 있는 효과가 발생된다.
[제4실시예]
다른 예로, 도 16은 본 발명의 제4실시예에 따른 가상 레이블 생성 방법을 도시한 것이다. 도 16에 도시된 바와 같이, 본 발명의 제4실시예에 따른 가상 레이블 생성 방법은 문장 자체가 도메인 특화 용어로만 되어 있는지 여부에 따라 클러스터링 방법을 달리 할 수 있고, 이를 위해 분기 단계(S121)를 더 포함할 수 있다.
본 발명의 제4실시예에 따라, 질문 데이터의 문장 자체가 도메인 특화 용어로만 되어 있는 경우에는 고빈도 일반 용어와의 유사도를 통해 클러스터되는 것과 별도로 도메인 특화 용어와의 유사도를 기초로 클러스터링을 할 수 있다(S13). 이렇게 도메인 특화 용어와의 유사도로 클러스터링 되는 유사 문장 그룹은 중요도 판정 모듈(4)을 거치지 않고 곧바로 레이블링 모듈(5)로 제공될 수 있다. 이러한 경우, 레이블링 모듈(5)은 도메인 특화 용어로만 구성된 유사 문장 그룹과 레이블 문장 그룹 판정 모듈(43)에 의해 챗봇 관리자에게 제공하기로 판정된 레이블 문장 그룹을 챗봇 관리자의 클라이언트에 제공할 수 있다.
본 발명의 제4실시예에 따라, 질문 데이터의 문장이 도메인 특화 용어로만 되어있지 않은 경우에는 제3실시예에 따른 단계(S13', S14, S15, S16)가 순차적으로 수행될 수 있다.
본 발명의 제4실시예에 따르면 S13에 의해 생성되는 유사 문장 그룹과 S16에 의해 생성되는 레이블 문장 그룹이 챗봇 관리자에게 제공될 수 있다. 또한, S15에 생성된 유사 문장 그룹에 도메인 유사 문장 그룹이 고루 사용되는 경우에는 해당 고빈도 일반 용어가 레이블들간의 상관관계에서 중요한 역할을 하지 않는다고 판단하여 노이즈로 처리하고, S13에서 만든 도메인 특화 용어만으로 이루어진 유사 문장 그룹에 흡수될 수 있는 효과가 발생된다.
이상에서는 설명의 편의를 위해 챗봇을 위주로 설명하였으나, 본 발명의 범위는 챗봇에만 국한되는 것이 아니고, 음성 분석(음성 봇)을 위한 인공지능 모듈, 자연어 분석을 위한 인공지능 모듈이나 문장 생성을 위한 Generative 인공지능 모듈 등에 본 발명이 적용되는 것이 본 발명의 범위에 포함될 수 있다.
이상에서 설명한 바와 같이, 본 발명이 속하는 기술 분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 상술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함하는 것으로 해석되어야 한다.
본 명세서 내에 기술된 특징들 및 장점들은 모두를 포함하지 않으며, 특히 많은 추가적인 특징들 및 장점들이 도면들, 명세서, 및 청구항들을 고려하여 당업자에게 명백해질 것이다. 더욱이, 본 명세서에 사용된 언어는 주로 읽기 쉽도록 그리고 교시의 목적으로 선택되었고, 본 발명의 주제를 묘사하거나 제한하기 위해 선택되지 않을 수도 있다는 것을 주의해야 한다.
본 발명의 실시예들의 상기한 설명은 예시의 목적으로 제시되었다; 이는 개시된 정확한 형태로 본 발명을 제한하거나, 빠뜨리는 것 없이 만들려고 의도한 것이 아니다. 당업자는 상기한 개시에 비추어 많은 수정 및 변형이 가능하다는 것을 이해할 수 있다.
본 설명의 일부는 정보 상 연산의 기호 표현 및 알고리즘에 관한 본 발명의 실시예들을 기술한다. 이러한 알고리즘적 설명 및 표현은, 일반적으로 그들의 작업의 핵심을 효율적으로 다른 당업자에게 전달하기 위해 데이터 처리 분야의 당업자에 의해 사용된다. 이러한 동작은 기능적, 연산적, 또는 논리적으로 설명되지만, 컴퓨터나 이와 동등한 전기 회로, 마이크로코드 등에 의해 구현될 것으로 이해된다. 나아가, 또한 이것은 모듈로서의 이러한 동작의 배열을 나타내기 위해, 때때로 일반성의 상실 없이 편리하게 입증된다. 상기 기술된 동작 및 그들의 연관된 모듈은 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합 내에서 구현될 수 있다.
여기서 기술된 임의의 단계, 동작, 또는 프로세스는, 하나 이상의 하드웨어 또는 소프트웨어 모듈과 함께 단독으로 또는 다른 장치와 조합하여 수행되거나 구현될 수 있다. 일 실시예에서, 소프트웨어 모듈은 컴퓨터 프로그램 코드를 포함하는 컴퓨터-판독 가능 매체로 구성되는 컴퓨터 프로그램 제품과 함께 구현되고, 컴퓨터 프로그램 코드는 기술된 임의의 또는 모든 공정, 단계, 또는 동작을 수행하기 위한 컴퓨터 프로세서에 의해 실행될 수 있다.
또한, 본 발명의 실시예들은, 여기서의 동작을 수행하기 위한 장치와 관련될 수 있다. 이들 장치는 요구되는 목적을 위해 특별히 제작될 수 있고/있거나, 컴퓨터 내에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 일반적-목적의 연산 장치를 포함할 수 있다. 이러한 컴퓨터 프로그램은, 유형의 컴퓨터 판독가능 저장 매체 또는 전자 명령어를 저장하기 위해 적합한 임의의 유형의 미디어 내에 저장될 수 있고, 컴퓨터 시스템 버스에 결합될 수 있다. 나아가, 본 명세서에 참조되는 임의의 연산 시스템은 단일 프로세서를 포함할 수 있거나, 증가한 연산 능력을 위한 다중 프로세서 디자인을 채택한 구조가 될 수 있다.
마지막으로, 본 명세서에 사용된 언어는 주로 읽기 쉽도록 그리고 교시의 목적으로 선택되었고, 본 발명의 주제를 묘사하거나 제한하기 위해 선택되지 않을 수 있다.
그러므로 본 발명의 범위는 상세한 설명에 의해 한정되지 않고, 이를 기반으로 하는 출원의 임의의 청구항들에 의해 한정된다. 따라서, 본 발명의 실시예들의 개시는 예시적인 것이며, 이하의 청구항에 기재된 본 발명의 범위를 제한하는 것은 아니다.
1: 가상 레이블 생성 장치
2: 구분 모듈
3: 분류 모듈
4: 중요도 판정 모듈
5: 레이블링 모듈
10: 챗봇 인공지능 모듈
21: NLP 모듈
22: 벡터화 모듈
31: 도메인 특화 점수 판정 모듈
32: 고빈도 일반 용어 분류 모듈
33: 클러스터링 모듈
34: 도메인 특화 용어 분류 모듈
41: 2차 분류 모듈
42: 도메인 다양성 계산 모듈
43: 레이블 문장 그룹 판정 모듈
200: 질문 데이터

Claims (3)

  1. 일반 문자열 형태의 질문 데이터를 어구로 구분하는 구분 모듈;
    특정 조건을 토대로 상기 질문 데이터를 복수의 유사 문장 그룹으로 클러스터링하는 제1차 클러스터링 모듈;
    상기 구분 모듈에서 구분된 상기 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 상기 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 모듈;
    상기 도메인 특화 점수 계산 모듈에서 계산된 상기 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 용어인 도메인 특화 용어를 분류하는 도메인 특화 용어 분류 모듈;
    상기 도메인 특화 용어와의 유사도를 토대로 상기 복수의 유사 문장 그룹의 상기 질문 데이터를 적어도 하나의 도메인 유사 문장 그룹으로 클러스터링하는 제2차 클러스터링 모듈;
    상기 제2차 클러스터링 모듈에 의해 상기 유사 문장 그룹 내에서 분류되는 상기 도메인 유사 문장 그룹의 개수를 토대로 상기 유사 문장 그룹의 도메인 다양성을 계산하는 도메인 다양성 계산 모듈; 및
    상기 도메인 다양성 계산 모듈에서 계산된 상기 유사 문장 그룹의 상기 도메인 다양성을 기초로 가상 레이블을 생성 여부를 결정하는 가상 레이블 생성 모듈;
    을 포함하는,
    질문 데이터 세트의 가상 레이블 생성 장치.
  2. 구분 모듈이, 일반 문자열 형태의 질문 데이터를 어구로 구분하는 구분 단계;
    제1차 클러스터링 모듈이, 특정 조건을 토대로 상기 질문 데이터를 복수의 유사 문장 그룹으로 클러스터링하는 제1차 클러스터링 단계;
    도메인 특화 점수 계산 모듈이, 상기 구분 모듈에서 구분된 상기 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 상기 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 단계;
    도메인 특화 용어 분류 모듈이, 상기 도메인 특화 점수 계산 모듈에서 계산된 상기 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 용어인 도메인 특화 용어를 분류하는 도메인 특화 용어 분류 단계;
    제2차 클러스터링 모듈이, 상기 도메인 특화 용어와의 유사도를 토대로 상기 복수의 유사 문장 그룹의 상기 질문 데이터를 적어도 하나의 도메인 유사 문장 그룹으로 클러스터링하는 제2차 클러스터링 단계;
    도메인 다양성 계산 모듈이, 상기 제2차 클러스터링 모듈에 의해 상기 유사 문장 그룹 내에서 분류되는 상기 도메인 유사 문장 그룹의 개수를 토대로 상기 유사 문장 그룹의 도메인 다양성을 계산하는 도메인 다양성 계산 단계; 및
    가상 레이블 생성 모듈이, 상기 도메인 다양성 계산 모듈에서 계산된 상기 유사 문장 그룹의 상기 도메인 다양성을 기초로 가상 레이블을 생성 여부를 결정하는 가상 레이블 생성 단계;
    를 포함하는,
    질문 데이터 세트의 가상 레이블 생성 방법.
  3. 구분 모듈이, 일반 문자열 형태의 질문 데이터를 어구로 구분하는 구분 단계;
    제1차 클러스터링 모듈이, 특정 조건을 토대로 상기 질문 데이터를 복수의 유사 문장 그룹으로 클러스터링하는 제1차 클러스터링 단계;
    도메인 특화 점수 계산 모듈이, 상기 구분 모듈에서 구분된 상기 어구가 특정 도메인에 특징적인지 여부를 판단하기 위하여 상기 질문 데이터에서의 어구 출현 빈도 또는 어구 출현 확률과 General corpus에서의 어구 출현 빈도 또는 어구 출현 확률을 비교하고, 차이를 통해 해당 어구가 해당 도메인에 얼마나 특징적인 어구인지에 대한 스코어인 도메인 특화 점수를 판정하는 도메인 특화 점수 계산 단계;
    도메인 특화 용어 분류 모듈이, 상기 도메인 특화 점수 계산 모듈에서 계산된 상기 도메인 특화 점수를 토대로 상기 질문 데이터의 어구들 중 해당 도메인에 특화된 용어인 도메인 특화 용어를 분류하는 도메인 특화 용어 분류 단계;
    제2차 클러스터링 모듈이, 상기 도메인 특화 용어와의 유사도를 토대로 상기 복수의 유사 문장 그룹의 상기 질문 데이터를 적어도 하나의 도메인 유사 문장 그룹으로 클러스터링하는 제2차 클러스터링 단계;
    도메인 다양성 계산 모듈이, 상기 제2차 클러스터링 모듈에 의해 상기 유사 문장 그룹 내에서 분류되는 상기 도메인 유사 문장 그룹의 개수를 토대로 상기 유사 문장 그룹의 도메인 다양성을 계산하는 도메인 다양성 계산 단계; 및
    가상 레이블 생성 모듈이, 상기 도메인 다양성 계산 모듈에서 계산된 상기 유사 문장 그룹의 상기 도메인 다양성을 기초로 가상 레이블을 생성 여부를 결정하는 가상 레이블 생성 단계;
    를 포함하는,
    질문 데이터 세트의 가상 레이블 생성 방법을 수행하는, 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
KR1020170178793A 2017-12-22 2017-12-22 질문 데이터 세트의 가상 레이블 생성 장치 및 방법 KR101851792B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170178793A KR101851792B1 (ko) 2017-12-22 2017-12-22 질문 데이터 세트의 가상 레이블 생성 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170178793A KR101851792B1 (ko) 2017-12-22 2017-12-22 질문 데이터 세트의 가상 레이블 생성 장치 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020170044416A Division KR101851786B1 (ko) 2017-04-05 2017-04-05 챗봇의 트레이닝 세트 레이블링을 위한 가상 레이블 생성 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101851792B1 true KR101851792B1 (ko) 2018-04-24

Family

ID=62084883

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170178793A KR101851792B1 (ko) 2017-12-22 2017-12-22 질문 데이터 세트의 가상 레이블 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101851792B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102030289B1 (ko) * 2018-11-02 2019-11-08 창원대학교 산학협력단 적대적 학습 방법을 이용한 문장 생성 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101309042B1 (ko) 2012-09-17 2013-09-16 포항공과대학교 산학협력단 다중 도메인 음성 대화 장치 및 이를 이용한 다중 도메인 음성 대화 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101309042B1 (ko) 2012-09-17 2013-09-16 포항공과대학교 산학협력단 다중 도메인 음성 대화 장치 및 이를 이용한 다중 도메인 음성 대화 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Zhang, Wei-Nan, et al. "A topic clustering approach to finding similar questions from large question and answer archives." PloS one 9.3, 2014.3.4.
Zhang, Yu, et al. "Phrasal paraphrase based question reformulation for archived question retrieval." PloS one 8.6, 2013.6.21.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102030289B1 (ko) * 2018-11-02 2019-11-08 창원대학교 산학협력단 적대적 학습 방법을 이용한 문장 생성 시스템 및 방법

Similar Documents

Publication Publication Date Title
US11816441B2 (en) Device and method for machine reading comprehension question and answer
US10354188B2 (en) Extracting facts from unstructured information
US20180232443A1 (en) Intelligent matching system with ontology-aided relation extraction
KR101851785B1 (ko) 챗봇의 트레이닝 세트 생성 장치 및 방법
Daumé III et al. A large-scale exploration of effective global features for a joint entity detection and tracking model
KR101851791B1 (ko) 도메인 특화 용어 및 고빈도 일반 용어를 이용한 도메인 다양성 계산 장치 및 방법
US11720611B2 (en) Entailment knowledge base in natural language processing systems
US10783877B2 (en) Word clustering and categorization
KR101851790B1 (ko) 질문 데이터 세트 확장 장치 및 방법
US20130018824A1 (en) Sentiment classifiers based on feature extraction
KR101851789B1 (ko) 도메인 유사어구 생성 장치 및 방법
US11217226B2 (en) System to detect and reduce understanding bias in intelligent virtual assistants
KR101851786B1 (ko) 챗봇의 트레이닝 세트 레이블링을 위한 가상 레이블 생성 장치 및 방법
JP6663826B2 (ja) 計算機及び応答の生成方法
WO2021159656A1 (zh) 多轮对话中语义补齐的方法、装置、设备及存储介质
JP2006244262A (ja) 質問回答検索システム、方法およびプログラム
US11151117B2 (en) Increasing the accuracy of a statement by analyzing the relationships between entities in a knowledge graph
GB2604317A (en) Dialogue management
JP5426292B2 (ja) 意見分類装置およびプログラム
CN113157887B (zh) 知识问答意图识别方法、装置、及计算机设备
KR101851792B1 (ko) 질문 데이터 세트의 가상 레이블 생성 장치 및 방법
WO2017058584A1 (en) Extracting facts from unstructured information
Tufiş et al. Revealing Translators' Knowledge: Statistical Methods in Constructing Practical Translation Lexicons for Language and Speech Processing
Bhattacharjee et al. What do users care about? detecting actionable insights from user feedback
Khabour et al. Arabic Sentiment Analysis of Mobile Banking Services Reviews

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant