KR20210069333A - 챗봇 학습용 데이터 생성 방법 - Google Patents

챗봇 학습용 데이터 생성 방법 Download PDF

Info

Publication number
KR20210069333A
KR20210069333A KR1020190159001A KR20190159001A KR20210069333A KR 20210069333 A KR20210069333 A KR 20210069333A KR 1020190159001 A KR1020190159001 A KR 1020190159001A KR 20190159001 A KR20190159001 A KR 20190159001A KR 20210069333 A KR20210069333 A KR 20210069333A
Authority
KR
South Korea
Prior art keywords
entity
sales office
know
want
intent
Prior art date
Application number
KR1020190159001A
Other languages
English (en)
Other versions
KR102381387B1 (ko
Inventor
정휘웅
신용선
송시조
배영준
이창희
김양수
Original Assignee
주식회사 리노스
토피도 주식회사
(주)아와소프트
한국도로공사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 리노스, 토피도 주식회사, (주)아와소프트, 한국도로공사 filed Critical 주식회사 리노스
Priority to KR1020190159001A priority Critical patent/KR102381387B1/ko
Publication of KR20210069333A publication Critical patent/KR20210069333A/ko
Application granted granted Critical
Publication of KR102381387B1 publication Critical patent/KR102381387B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis

Abstract

챗봇을 학습시키기 위한 대량의 데이터 세트를 생성하기 위한 방법이 제공된다. 본 발명의 일 실시예에 따른 챗봇 학습용 데이터 생성 방법은, 문장의 형태소를 분석하고 내용어를 추출하는 분석 및 내용어 추출 단계; 문장의 의도로 나타내는 인텐트를 생성하고, 각 인텐트에 대해서 해당 인테트에 포함되는 문장들을 등록하는 인텐트 편집 단계; 독립된 의미를 갖는 엔티티를 생성하고 각 엔티티에 대해서 해당 엔티티에 포함되는 내용어를 등록하는 엔티티 편집 단계; 각 인텐트에 대해서 등록된 문장을 상기 등록된 엔티티를 포함하는 패턴으로 표현하여 등록하는 반복관용어구 편집 단계; 등록된 인텐트, 엔티티, 패턴을 사용하여 학습용 데이터를 생성하는 학습용 데이터 생성 단계를 구비한다. 본 발명에 따르면 기존의 실제 대화에 기초하여 또는 가상의 대화에 기초하여 대화 데이터를 간편하게 확장할 수 있으므로, 챗봇이 필요로 하는 다양한 학습용 데이터를 보다 간편하고 정확하게 생성할 수 있다.

Description

챗봇 학습용 데이터 생성 방법 {Method for generating chatbot training data}
본 발명은 챗봇 학습용 데이터 생성 방법에 관한 것으로서, 더욱 상세하게는 챗봇을 학습시키기 위한 대량의 데이터 세트를 생성하기 위한 방법에 관한 것이다.
챗봇(chatbot) 혹은 채터봇(Chatterbot)은 음성이나 문자를 통한 인간과의 대화를 통해서 특정한 작업을 수행하도록 제작된 컴퓨터 프로그램이나 서비스를 말한다.
챗봇은 도 1에 도시한 것처럼, 채팅의 텍스트나 음성으로 구성된 언어적 입력(Lexical input)을 자연어 처리기(Natural Language Processor)(10)가 입력받아서 컴퓨터 상에서 처리될 수 있는 형태로 처리해주고, 문맥 분석기(Context Analyzer)(20)가 처리된 자연어의 문맥(context)을 분석하고, 분석된 문맥에 따라 답변 내용을 정하는 의사 결정기(Decision Maker)(30)에서 답변 내용을 분류하여 확정하고, 확정된 답변 내용에 따라 응답 생성기(Response Generator)(40)가 사용자에게 언어적 출력(Lexical output)을 하도록 구성된다.
챗봇은 정해진 규칙에 따라(rule-based) 또는 인공지능을 사용하여(AI-based) 대화를 수행한다. 인공지능을 사용하는 경우에는 자연어 처리기, 문맥 분석기, 의사 결정기, 응답 생성기를 하나 또는 복수의 그룹으로 통합하여 딥러닝 모델을 적용하고 학습 데이터를 계속 학습시키게 된다. 한편, 인공지능을 사용하여 챗봇을 구축하는 경우에는 학습 데이터를 사용하여 챗봇을 기계학습 시켜야 하는데, 학습 데이터가 풍부할수록 챗봇의 성능이 향상된다. 인공지능을 사용한 챗봇에 관해서는 예를 들면 미국특허 제10,162,816호, 제10,157,615호, 제9,794,199호 등에 개시되어 있다.
학습 데이터는 고객과 상담원 사이의 실제 대화를 토대로 생성하는 것이 바람직하지만, 콜센터가 보유하고 있는 데이터는 답변만 갖고 있는 경우가 많으며 사용자의 질의를 가지고 있더라도 전체 문장이 아닌 자의적 약어로 구성되는 경우가 많다. 또한, 상담 내역도 실제 학습에 사용할 수 있는 자연발화 데이터는 거의 존재하지 않고 요지만 작성되는 경우가 많다.
또한, 실제 대화 데이터가 있다고 하여도 고객들의 다양한 언어 습관을 모두 포용하기는 어렵다. 특히, 교착어인 한국어의 경우에는 변화형이나 띄어쓰기 형태가 다변화 하기 때문에 이러한 표현을 위해서는 다량의 학습용 문장이 필요하다.
본 발명은 이러한 점을 감안하여 이루어진 것으로서, 챗봇이 필요로 하는 학습용 데이터를 보다 빠르고 정확하게 생성하는 챗봇 학습용 데이터 생성 방법을 제공하는 것을 목적으로 한다. 본 발명의 다른 목적은 다양한 변화형을 가진 한국어와 같은 교착어에도 적용이 가능한 챗봇 학습용 데이터 생성 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 챗봇 학습용 데이터 생성 방법은, 문장의 형태소를 분석하고 내용어를 추출하는 분석 및 내용어 추출 단계; 문장의 의도로 나타내는 인텐트를 생성하고, 각 인텐트에 대해서 해당 인테트에 포함되는 문장들을 등록하는 인텐트 편집 단계; 독립된 의미를 갖는 엔티티를 생성하고 각 엔티티에 대해서 해당 엔티티에 포함되는 내용어를 등록하는 엔티티 편집 단계; 각 인텐트에 대해서 등록된 문장을 상기 등록된 엔티티를 포함하는 패턴으로 표현하여 등록하는 반복관용어구 편집 단계; 등록된 인텐트, 엔티티, 패턴을 사용하여 학습용 데이터를 생성하는 학습용 데이터 생성 단계를 구비한다.
상기 엔티티 편집 단계는, 하나의 엔티티에 복수의 엔트리를 등록하거나, 하나의 엔티티에 복수의 엔티티들을 등록하는 단계를 포함할 수 있다.
엔티티에는 용언이 포함될 수 있다. 이 경우에, 상기 엔티티 편집 단계는, 용언 엔티티에 대해서는 각 용언의 활용형을 해당 엔티티의 엔트리로서 등록하는 단계를 포함한다. 각 용언 엔티티는 평서문, 의문문, 명령문으로 구분될 수 있다.
상기 문장 분석 및 내용어 추출 단계는, 추출된 내용어를 표시하고 사용자가 수정할 수 있는 도구를 제공하는 단계와, 수정한 내용어를 저장하는 단계를 포함한다.
상기 학습용 데이터 생성 단계는, 편집된 패턴들이 저장되어 있는 패턴 DB에서 하나의 패턴을 읽어오는 단계와, 읽어온 패턴에 포함되어 있는 각 엔티티에 포함되는 내용어들을 패턴 내의 각 엔티티 위치에 대치하는 단계를 각 패턴에 대해서 반복적으로 수행하는 것이다.
본 발명에 따르면 기존의 실제 대화에 기초하여 또는 가상의 대화에 기초하여 대화 데이터를 간편하게 확장할 수 있으므로, 챗봇이 필요로 하는 다양한 학습용 데이터를 보다 간편하고 정확하게 생성할 수 있다.
도 1은 일반적인 챗봇의 내부 구성을 보여주는 블록도이다.
도 2는 본 발명의 챗봇 학습용 데이터 생성 방법이 적용되는 챗봇의 한가지 예를 보여주는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 챗봇 학습용 데이터 생성 방법을 보여주는 흐름도이다.
도 4는 본 발명의 일 실시예에서 원문 데이터로부터 추출 및 정제된 문장을 선택할 때의 화면예이다.
도 5는 본 발명의 일 실시예에 따라 추출된 내용어를 편집할 때의 화면예이다.
도 6은 본 발명의 일 실시예에 따라 인텐트를 편집할 때의 화면예이다.
도 7은 본 발명의 일 실시예에 따라 엔티티를 편집할 때의 화면예이다.
도 8은 본 발명의 일 실시예에 따라 반복관용어구를 편집할 때의 화면예이다.
이하, 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 이하의 설명에서 인텐트(Intent)는 문장이 나타내는 의도를 의미하며 동일한 인텐트는 다양한 문장으로 표현될 수 있다. 엔티티(Entity)는 독립된 의미로 분류할 수 있는 단어, 단어열 등을 의미하며, 고유의 ID로 구분할 수 있다. 엔트리(Entry) 또는 내용어는 엔티티(Entity)에 종속되어 들어가는 고유명사 혹은 같은 의미의 용어군으로서, 의미망 용어로는 동의어(Synonym)라 한다. 이하의 설명에서는 엔트리와 내용어를 동일한 의미로 혼용한다.
도 2는 본 발명의 챗봇 학습용 데이터 생성 방법이 적용되는 챗봇의 한가지 예를 보여주는 블록도이다.
인공지능 챗봇은 언어적 입력을 받아서 그에 대한 응답을 언어적 출력으로서 생성한다. 이를 위하여 학습 데이터를 사용하여 딥러닝 등의 알고리즘을 거쳐서 학습을 수행한다. 본 발명의 챗봇 학습용 데이터 생성 장치(100)는 인공지능 챗봇(200)의 학습에 사용할 학습 데이터를 생성한다.
일 실시예에서 챗봇 학습용 데이터 생성 장치(100)는 실제 대화를 기록한 원문을 분석하여 정제하고 내용어를 추출하는 원문 분석기(110)를 구비할 수 있다. 추출된 내용어는 내용어 DB(143)에 저장된다. 사용자는 원문 분석기(110)에서 자동으로 추출된 내용어를 편집하여 추출 오류를 정정할 수 있다. 실제 대화 기록을 구하기 힘들거나 그 양이 많지 않은 실시예의 경우에는 학습 데이터 편집을 위한 기본적인 원문을 수동으로 생성할 수도 있다.
학습 데이터 편집기(120)는 대화 원문에서 분석되고 정제된 문장 및 내용어로부터 인텐트(Intent), 엔티티(Entity)를 추가하거나 정정하는 편집을 하고, 반복관용어구를 편집할 수 있도록 한다. 편집된 인텐트, 엔티티, 내용어, 용언, 패턴 등은 각각 인텐트 DB(141), 엔티티 DB(142), 내용어 DB(143), 용언 DB(144), 패턴 DB(145)에 저장된다.
학습 데이터 생성기(130)는 인텐트 DB(141), 엔티티 DB(142), 내용어 DB(143), 용언 DB(144), 패턴 DB(145) 등의 데이터베이스(140)에 저장된 정보를 이용하여 인공지능 챗봇(200)의 학습에 사용될 학습 데이터를 생성한다.
다음으로, 도 3 내지 도 8을 참조하여 본 발명의 챗봇 학습용 데이터 생성 방법을 상세히 설명한다. 이하의 설명에서는 '카카오톡' 등의 메신저 서비스를 이용하여 텍스트 데이터로 챗봇과 대화하는 서비스에 사용할 학습 데이터를 생성하는 것을 예로 들어 설명하지만 본 발명은 음성으로 챗봇과 대화하는 서비스에 사용할 학습 데이터를 생성하는 경우에도 적용 가능하다.
먼저, 챗봇이 사용되는 분야의 실제 대화 원문을 분석 및 정제하여 내용어를 추출한다(단계 S110). 실제 대화 기록을 구하기 힘들거나 그 양이 많지 않은 실시예의 경우에는 학습 데이터 편집을 위한 기본적인 원문을 수동으로 생성할 수도 있다.
원문 분석기(110)는 대화 원문에서 문장을 추출한다. 도 4에 원문을 분석하고 정제하여 내용어를 추출 및 편집하기 위한 화면예가 도시되어 있다. 도 4의 화면예에는 원문에서 추출된 문장들의 리스트가 도시되어 있다. 사용자는 이들 문장 중에서 하나를 선택할 수 있다.
사용자가 "서울 외곽순환선에 정체가 무척 심하다"라는 원문을 선택하면 원문 분석기(110)는 해당 문장에서 형태소를 자동 분석하여 내용어를 추출하고 그 결과를 도 5에 도시한 것처럼 표시한다. 도 5는 사용자가 '서울외곽순환선에 정체가 심하다'라는 문장을 선택한 경우의 예를 보여주고 있다. 원문 분석기(110)는 문장에서 고유명사, 일반명사, 조사, 용언 등을 구분하여 표시한다. 형태소를 분석하고 내용어를 추출하는 알고리즘은 종래의 알고리즘을 사용할 수 있으며, 본 발명은 특정 형태소 분류 알고리즘에 한정되지 않는다.
도 5의 예에서 원문 분석기(110)가 "서울"을 고유명사로, "외곽"과 "순환선"을 일반명사로 분류한 경우를 보여주고 있다. 그러나, "서울 외곽순환선"은 그 자체로 고유명사이므로 사용자는 이들을 하나로 그룹핑하여 고유명사로 정정하고 하나의 내용어로 지정할 수 있다. 예를 들면, 그룹핑하고자 하는 단어들을 선택한 후에 고유명사로 지정한다. 이와 같이 원문 분석기(110)에 의해 추출되고 사용자의 정정을 거친 내용어들은 내용어 DB(141)에 저장되며, 각 내용어에는 고유의 ID가 부여된다.
사용자는 학습 데이터 편집기(120)를 사용하여 인텐트, 엔티티, 반복관용어구를 편집할 수 있다(단계 S121).
인텐트(Intent)는 문장에서 나타내고자 하는 의도를 나타낸다. 인텐트의 예로서는 '도로 정체', '요금 납부', '날씨 조회', '일반 차로 대신 하이패스 차로 통과' 등을 들 수 있다.
각 인텐트는 다양한 형태의 문장으로 표현할 수 있다. 예를 들어 '도로 정체' 인텐트의 경우에는 평서문과 의문문이 있을 수 있으며, 의문문의 경우에도 "<도로> 막히나요?", "<도로> 정체 중인가요?", "<도로> 혼잡한가요?" 등과 같이 다양하게 표현할 수 있다. 여기에서 <도로>는 도로를 나타내는(즉, <도로> 속성을 가진) 엔트리가 삽입될 수 있음을 나타낸다. 예를 들어, <도로>에는 "강변북로", "남부순환도로", "강남대로" 등의 엔트리가 대치될 수 있다.
학습 데이터 편집기(120)를 사용하여 인텐트를 편집하는 화면의 예가 도 6에 도시되어 있다. 사용자는 새로운 인텐트를 추가할 수도 있고, 기존 인텐트에 새로운 문장을 추가하거나 기존 문장을 수정할 수도 있다. 새로운 인텐트가 추가되면 학습 데이터 편집기(120)는 이 인텐트를 나타내는 다양한 문장을 생성하고 화면에 표시하여 사용자가 편집할 수 있도록 한다. 인텐트를 나타내는 문장들은 새로운 인텐트와 유사한 기존 인텐트 내의 문장을 참고하여 생성될 수도 있고, 엔티티 DB(142)를 활용하여 생성될 수도 있다.
도 6은 '일반 차로 대신 하이패스 차로 통과' 인텐트를 편집하는 예가 도시되어 있다. 사용자는 '일반 차로 대신 하이패스 차로 통과' 인텐트를 나타낼 수 있는 다양한 문장을 등록하거나 수정할 수 있다. 한편, 인텐트를 나타내는 문장에 엔티티와 용언을 삽입할 수 있다. 예를 들면 도로 정체 인텐트에 "<도로> <막히다_의문문> 등과 같이 엔티티와 용언을 삽입할 수 있다. 이렇게 편집된 인텐트는 인텐트 DB(141)에 저장된다.
사용자는 등록된 내용어들을 각 내용어가 해당되는 엔티티(Entity)에 등록한다(단계 S122). 이때 등록되는 각 내용어들을 엔트리(Entry)라 한다. 엔티티(Entity)를 편집하는 화면의 예가 도 7에 도시되어 있다. 도 7에서는 <서울지하철 1호선>이라는 엔티티에 '안양'이라는 엔트리를 추가하는 화면을 보여주고 있다. 다른 예로서는, <도로>라는 엔티티에 '강변북로', '남부순환도로', '강남대로' 등을 입력할 수 있다. 실시예에 따라서는 하나의 엔트리가 복수의 엔티티에 포함될 수도 있다. 예를 들면, '교대역'이라는 엔트리는 <서울지하철역>이라는 엔티티에도 포함되고 <서울지하철역 2호선>, <서울지하철역 3호선>이라는 엔티티에 포함될 수도 있다. 이렇게 편집된 엔티티는 엔티티 DB(142)에 저장된다.
사용자는 용언을 편집할 수도 있다. 용언은 반복관용어구에서 사용되는 구(phrase)를 의미한다. 표 1은 '알고 싶다'라는 의미를 가진 용언의 예를 보여준다. 사용자는 새로운 용언을 추가할 수도 있고, 기존 용언에 새로운 문구를 추가하거나 기존 문구를 수정할 수 있다. 용언은 평서문, 의문문, 명령문으로 구분될 수 있다. 표 1의 용언들을 모두 지시하는 심볼로서 '#알고_싶다_용언'이라는 태그가 사용될 수 있다. 이렇게 편집된 용언은 용언 DB(144)에 저장된다.
<알다_싶다_평서형> : 알고 싶은데요 | 알고 싶어요 | 알고 싶습니다 | 알고 싶거든요;
<알다_계시다_의문형> : 알고 계십니까 | 알고 계시나요 | 알고 계신지요;
<대하다_알다_싶다_평서형> : 대해서 알고 싶은데요 | 대해서 알고 싶거든요;
<알다_되다_평서형> : 알아야 되거든요 | 알아야 됩니다만;
<궁금하다_그렇게_하다_연결형> : 궁금해서 그러는데;
<궁금하다_평서형> : 궁금한데요 | 궁금하네요 | 궁금합니다 | 궁금하거든요 | 궁금해요;
<궁금하다_연결형> : 궁금해서;
<궁금하다_그렇게_하다_연결형> : 궁금해서 그러는데;
<알리다_주다_명령형> : 알려 주세요 | 알려 주십시오;
<자세하다_알리다_주다_명령형> : 자세하게 알려 주십시오;
<알리다_주다_의문형> : 알려 줄래요 | 알려 주시겠습니까;
실시예에 따라서는 용언도 엔티티의 일종으로 취급하여 처리하도록 구성할 수 있다. 이 경우에 용언 엔티티는 복수의 다른 용언 엔티티를 포함하여 구성될 수도 있다.
사용자는 또한 반복관용어구를 편집할 수 있다(단계 S123). 반복관용어구는 사용자가 수동으로 설정할 수도 있고, 대화 원문에서 추출된 문장 중에서 사용자가 편집할 수도 있다. 반복관용어구는 엔티티와 용언을 포함하는 패턴으로 표현될 수 있다. 도 8에 반복관용어구를 편집하는 화면의 예가 도시되어 있다.
표 2는 '통행료 문의' 인텐트에 사용될 수 있는 패턴의 예를 보여준다. 여기에서 <영업소>는 통행 요금을 납부하는 톨게이트, 예를 들면 '판교', '북수원' 등이 엔트리로 등록되는 엔티티이다. 표 2에서 '<알다_싶다_의문형>'에는 표 1에서 정의한 <알다_싶다_의문형> 용언들이 모두 사용될 수 있다.
<영업소> <영업소> 통행료 <알다_싶다_의문형>
<영업소> <영업소> 통행료를 <알다_싶다_의문형>
<영업소> <영업소> 요금 <알다_싶다_의문형>
<영업소> <영업소> 요금을 <알다_싶다_의문형>
<영업소> <영업소> 통행료가 얼마인지 <알다_싶다_의문형>
<영업소> <영업소> 통행료 얼마인지 <알다_싶다_의문형>
<영업소>에서 <영업소> 통행료 <알다_싶다_의문형>
<영업소>에서 <영업소> 통행료 <알다_싶다_의문형>
<영업소>에서 <영업소> 통행료를 <알다_싶다_의문형>
<영업소>에서 <영업소> 요금 <알다_싶다_의문형>
<영업소>에서 <영업소> 요금을 <알다_싶다_의문형>
<영업소>에서 <영업소> 통행료가 얼마인지 <알다_싶다_의문형>
<영업소>에서 <영업소> 통행료 얼마인지 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 통행료 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 통행료 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 통행료를 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 요금 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 요금을 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 통행료가 얼마인지 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 통행료 얼마인지 <알다_싶다_의문형>
<영업소>-<영업소> 통행료 <알다_싶다_의문형>
<영업소>-<영업소> 통행료 <알다_싶다_의문형>
<영업소>-<영업소> 통행료를 <알다_싶다_의문형>
<영업소>-<영업소> 요금 <알다_싶다_의문형>
<영업소>-<영업소> 요금을 <알다_싶다_의문형>
<영업소>-<영업소> 통행료가 얼마인지 <알다_싶다_의문형>
<영업소>-<영업소> 통행료 얼마인지 <알다_싶다_의문형>
<영업소> - <영업소> 통행료 <알다_싶다_의문형>
<영업소> - <영업소> 통행료 <알다_싶다_의문형>
<영업소> - <영업소> 통행료를 <알다_싶다_의문형>
<영업소> - <영업소> 요금 <알다_싶다_의문형>
<영업소> - <영업소> 요금을 <알다_싶다_의문형>
<영업소> - <영업소> 통행료가 얼마인지 <알다_싶다_의문형>
<영업소> - <영업소> 통행료 얼마인지 <알다_싶다_의문형>
표 3은 '통행료 문의' 인텐트에 사용될 수 있는 패턴의 다른 예를 보여준다. 표 3에서 '#알고_싶다_용언'에는 표 1에서 정의한 용언이 모두 사용될 수 있다. 일 실실예에서, '#알고_싶다_용언'은 복수의 다른 용언 엔티티를 포함하여 구성되는 용언 엔티티이다. 복수의 용언 엔티티를 나타내는 심볼로 '#엔티티' 대신에 다른 엔티티와 마찬가지로 '<엔티티>'를 사용할 수도 있다.
<영업소> <영업소> 통행료 #알고_싶다_용언
<영업소> <영업소> 통행료 #알고_싶다_용언
<영업소> <영업소> 통행료를 #알고_싶다_용언
<영업소> <영업소> 요금 #알고_싶다_용언
<영업소> <영업소> 요금을 #알고_싶다_용언
<영업소> <영업소> 통행료가 얼마인지 #알고_싶다_용언
<영업소> <영업소> 통행료 얼마인지 #알고_싶다_용언
<영업소>에서 <영업소> 통행료 #알고_싶다_용언
<영업소>에서 <영업소> 통행료 #알고_싶다_용언
<영업소>에서 <영업소> 통행료를 #알고_싶다_용언
<영업소>에서 <영업소> 요금 #알고_싶다_용언
<영업소>에서 <영업소> 요금을 #알고_싶다_용언
<영업소>에서 <영업소> 통행료가 얼마인지 #알고_싶다_용언
<영업소>에서 <영업소> 통행료 얼마인지 #알고_싶다_용언
<영업소>에서 <영업소>까지 통행료 #알고_싶다_용언
<영업소>에서 <영업소>까지 통행료 #알고_싶다_용언
<영업소>에서 <영업소>까지 통행료를 #알고_싶다_용언
<영업소>에서 <영업소>까지 요금 #알고_싶다_용언
<영업소>에서 <영업소>까지 요금을 #알고_싶다_용언
<영업소>에서 <영업소>까지 통행료가 얼마인지 #알고_싶다_용언
<영업소>에서 <영업소>까지 통행료 얼마인지 #알고_싶다_용언
<영업소>-<영업소> 통행료 #알고_싶다_용언
<영업소>-<영업소> 통행료 #알고_싶다_용언
<영업소>-<영업소> 통행료를 #알고_싶다_용언
<영업소>-<영업소> 요금 #알고_싶다_용언
<영업소>-<영업소> 요금을 #알고_싶다_용언
<영업소>-<영업소> 통행료가 얼마인지 #알고_싶다_용언
<영업소>-<영업소> 통행료 얼마인지 #알고_싶다_용언
<영업소> - <영업소> 통행료 #알고_싶다_용언
<영업소> - <영업소> 통행료 #알고_싶다_용언
<영업소> - <영업소> 통행료를 #알고_싶다_용언
<영업소> - <영업소> 요금 #알고_싶다_용언
<영업소> - <영업소> 요금을 #알고_싶다_용언
<영업소> - <영업소> 통행료가 얼마인지 #알고_싶다_용언
<영업소> - <영업소> 통행료 얼마인지 #알고_싶다_용언
한편, 실시예에 따라서는 '<영업소> <영업소>', '<영업소>에서 <영업소>', '<영업소>에서 <영업소>까지', '<영업소>-<영업소>' 등을 '<영업소_구간>'과 같이 엔티티들을 하나의 엔티티 그룹으로 묶어서 지정하는 것도 가능하다. 예를 들어 <영업소_구간> 엔티티는 표 4와 같이 정의될 수 있다. 이와 같이 정의하면 패턴을 보다 포괄적으로 지정할 수 있으므로 편리하다. 실시예에 따라서는 복수의 엔티티 그룹들을 묶어서 하나의 엔티티 그룹으로 정의할 수 있도록 구성하는 것도 가능하다. 이렇게 편집된 반복관용어구는 패턴 DB(145)에 저장된다.
<영업소> <영업소>
<영업소>에서 <영업소>
<영업소>에서 <영업소>까지
<영업소>부터 <영업소>까지
<영업소>-<영업소>
<영업소> - <영업소>
<영업소> <영업소> 구간
<영업소>에서 <영업소> 구간
<영업소> <영업소> 사이
<영업소>에서 <영업소> 사이
학습 데이터 생성기(130)는 데이터베이스(140)를 이용하여 학습 데이터를 생성한다(단계 S130). 예를 들면, 패턴 DB(145)에서 하나의 패턴을 읽어오고, 읽어온 패턴에 포함되어 있는 용언과 엔티티에 포함되는 문구들과 엔트리들을 각각 용언 DB(144)와 엔티티 DB(142)에서 읽어와서 해당 위치에 대치한다. 패턴에 포함된 엔티티가 다수의 엔티티들을 정의하는 엔티티 그룹인 경우에는 해당 그룹에 정의된 엔티티들을 엔티티 DB(142)에서 읽어와서, 읽어온 엔티티에 포함되는 엔트리들을 다시 엔티티 DB(142)에서 읽어와서 대치시킨다. 실시예에 따라서는 용언들을 먼저 대치하여 1차 결과물을 생성하고, 1차 결과물 내의 각각의 패턴에 대해서 각 엔티티에 포함되는 엔트리들을 대치하여 최종 학습용 문장을 생성하도록 구성하는 것도 가능하다.
표 5는 전술한 '통행료 문의' 인텐트에 대해서 용언들을 확장한 1차 결과물의 일부를 보여준다.
<영업소> <영업소> 통행료 알고 싶거든요;
<영업소> <영업소> 통행료 알고 싶네요;
<영업소> <영업소> 통행료 알아야 되거든요;
<영업소> <영업소> 통행료 알고 싶은데요
<영업소> <영업소> 통행료 알고 싶어요
<영업소> <영업소> 통행료 알고 싶습니다;
<영업소> <영업소> 통행료 대해서 알고 싶은데요
<영업소> <영업소> 통행료 대해서 알고 싶거든요;
<영업소> <영업소> 통행료 궁금해서 그러는데;
<영업소> <영업소> 통행료 궁금한데요
<영업소> <영업소> 통행료 궁금하네요
<영업소> <영업소> 통행료 궁금합니다
<영업소> <영업소> 통행료 궁금하거든요;
<영업소> <영업소> 통행료 궁금해서;
<영업소> <영업소> 통행료 궁금해서 그러는데;
<영업소> <영업소> 통행료 궁금한데요
<영업소> <영업소> 통행료 궁금하네요
<영업소> <영업소> 통행료 궁금합니다
<영업소> <영업소> 통행료 궁금하거든요;
<영업소> <영업소> 통행료 궁금해;
<영업소> <영업소> 통행료 알려 주세요;
<영업소> <영업소> 통행료 자세하게 알려 주십시오;
<영업소> <영업소> 통행료 알려 줄래요;
<영업소> <영업소> 통행료 알려 줘
<영업소> <영업소> 통행료 알려줘;
<영업소> <영업소> 통행료 알고 싶거든요
<영업소> <영업소> 통행료 알고 싶네요;
<영업소> <영업소> 통행료 알아야 되거든요;
<영업소> <영업소> 통행료 알고 싶은데요
<영업소> <영업소> 통행료 알고 싶어요
<영업소> <영업소> 통행료 알고 싶습니다;
...
표 6은 표 5의 첫번째 패턴 '<영업소> <영업소> 통행료 알고 싶거든요'에 대해서 <영업소> 엔티티들을 확장한 최종 결과물의 일부를 보여준다. 표 6과 같이 생성된 최종 결과물이 챗봇 학습용 데이터로서 챗봇 학습에 사용될 수 있다.
서울 부산 통행료 알고 싶거든요;
서울 광주 통행료 알고 싶거든요;
서울 대구 통행료 알고 싶거든요;
서울 대전 통행료 알고 싶거든요;
서울 수원 통행료 알고 싶거든요;
서울 전주 통행료 알고 싶거든요;
서울 춘천 통행료 알고 싶거든요;
서울 충주 통행료 알고 싶거든요;
...
이상 설명한 것처럼, 본 발명에 따르면 챗봇이 필요로 하는 다양한 학습용 데이터를 보다 간편하고 정확하게 생성할 수 있다.
이상, 본 발명을 몇가지 예를 들어 설명하였으나, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 또한, 주파수 도메인에서 수행되는 것으로 설명된 동작을 시간 도메인에서 수행되도록 수정하거나, 시간 도메인에서 수행되는 것으로 설명된 동작을 주파수 도메인에서 수행되도록 수정하여 구현하는 것도 가능하다.
이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110 원문 분석기,
120 학습 데이터 편집기,
130 학습 데이터 생성기,
140 데이터베이스.

Claims (6)

  1. 문장의 형태소를 분석하고 내용어를 추출하는 분석 및 내용어 추출 단계;
    문장의 의도로 나타내는 인텐트를 생성하고, 각 인텐트에 대해서 해당 인테트에 포함되는 문장들을 등록하는 인텐트 편집 단계;
    독립된 의미를 갖는 엔티티를 생성하고 각 엔티티에 대해서 해당 엔티티에 포함되는 내용어를 등록하는 엔티티 편집 단계;
    각 인텐트에 대해서 등록된 문장을 상기 등록된 엔티티를 포함하는 패턴으로 표현하여 등록하는 반복관용어구 편집 단계;
    등록된 인텐트, 엔티티, 패턴을 사용하여 학습용 데이터를 생성하는 학습용 데이터 생성 단계
    를 구비하는 챗봇 학습용 데이터 생성 방법.
  2. 제1항에 있어서,
    상기 엔티티 편집 단계는, 하나의 엔티티에 복수의 엔트리를 등록하거나, 하나의 엔티티에 복수의 엔티티들을 등록하는 단계를 포함하는, 챗봇 학습용 데이터 생성 방법.
  3. 제1항에 있어서,
    상기 엔티티에는 용언이 포함되며,
    상기 엔티티 편집 단계는, 용언 엔티티에 대해서는 각 용언의 활용형을 해당 엔티티의 엔트리로서 등록하는 단계를 포함하는, 챗봇 학습용 데이터 생성 방법.
  4. 제3항에 있어서,
    각 용언 엔티티는 평서문, 의문문, 명령문으로 구분되는,
    챗봇 학습용 데이터 생성 방법.
  5. 제1항에 있어서, 상기 문장 분석 및 내용어 추출 단계는,
    추출된 내용어를 표시하고 사용자가 수정할 수 있는 도구를 제공하는 단계와,
    수정한 내용어를 저장하는 단계
    를 포함하는 챗봇 학습용 데이터 생성 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 학습용 데이터 생성 단계는,
    편집된 패턴들이 저장되어 있는 패턴 DB에서 하나의 패턴을 읽어오는 단계와,
    읽어온 패턴에 포함되어 있는 각 엔티티에 포함되는 내용어들을 패턴 내의 각 엔티티 위치에 대치하는 단계
    를 각 패턴에 대해서 수행하는 것인, 챗봇 학습용 데이터 생성 방법.



KR1020190159001A 2019-12-03 2019-12-03 챗봇 학습용 데이터 생성 방법 KR102381387B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190159001A KR102381387B1 (ko) 2019-12-03 2019-12-03 챗봇 학습용 데이터 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190159001A KR102381387B1 (ko) 2019-12-03 2019-12-03 챗봇 학습용 데이터 생성 방법

Publications (2)

Publication Number Publication Date
KR20210069333A true KR20210069333A (ko) 2021-06-11
KR102381387B1 KR102381387B1 (ko) 2022-03-31

Family

ID=76376552

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190159001A KR102381387B1 (ko) 2019-12-03 2019-12-03 챗봇 학습용 데이터 생성 방법

Country Status (1)

Country Link
KR (1) KR102381387B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230036502A (ko) 2021-09-07 2023-03-14 한일네트웍스(주) 챗봇의 자동 학습 머신을 사용한 학습 데이터 생성 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140042994A (ko) * 2012-09-28 2014-04-08 한국전자통신연구원 가상 에이전트와의 대화 내용에서 자동으로 추출되는 개인 프로파일링 정보를 이용한 자동학습 기반의 인공지능 대화 시스템
KR20150075191A (ko) * 2013-12-24 2015-07-03 서강대학교산학협력단 채팅 데이터 학습 및 서비스 방법 및 그에 따른 시스템
KR20180058877A (ko) * 2016-11-24 2018-06-04 주식회사 와이즈넛 채팅봇을 이용한 비즈니스 지원 방법
WO2019142427A1 (ja) * 2018-01-16 2019-07-25 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140042994A (ko) * 2012-09-28 2014-04-08 한국전자통신연구원 가상 에이전트와의 대화 내용에서 자동으로 추출되는 개인 프로파일링 정보를 이용한 자동학습 기반의 인공지능 대화 시스템
KR20150075191A (ko) * 2013-12-24 2015-07-03 서강대학교산학협력단 채팅 데이터 학습 및 서비스 방법 및 그에 따른 시스템
KR20180058877A (ko) * 2016-11-24 2018-06-04 주식회사 와이즈넛 채팅봇을 이용한 비즈니스 지원 방법
WO2019142427A1 (ja) * 2018-01-16 2019-07-25 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230036502A (ko) 2021-09-07 2023-03-14 한일네트웍스(주) 챗봇의 자동 학습 머신을 사용한 학습 데이터 생성 방법

Also Published As

Publication number Publication date
KR102381387B1 (ko) 2022-03-31

Similar Documents

Publication Publication Date Title
US11816438B2 (en) Context saliency-based deictic parser for natural language processing
Oprea et al. isarcasm: A dataset of intended sarcasm
Schultz et al. Multilingual speech processing
US20160306846A1 (en) Visual representation of question quality
US11010700B2 (en) Identifying task and personality traits
JP2021524079A (ja) 自然言語分類のための訓練データの拡張
CN104933081A (zh) 一种搜索建议提供方法及装置
CN110069789A (zh) 数据处理设备实施的方法、系统和计算机程序产品
JP6663826B2 (ja) 計算機及び応答の生成方法
JP2020135135A (ja) 対話コンテンツ作成支援方法およびシステム
Savoy Vocabulary growth study: An example with the State of the Union addresses
JP2009140466A (ja) 使用者製作問答データに基づいた会話辞書サービスの提供方法及びシステム
KR102206781B1 (ko) 지식 기반 추론 및 신뢰도 분석을 이용한 가짜뉴스 판별 방법, 이를 수행하기 위한 기록매체 및 장치
KR102381387B1 (ko) 챗봇 학습용 데이터 생성 방법
Banerjee et al. Generating abstractive summaries from meeting transcripts
US20220188525A1 (en) Dynamic, real-time collaboration enhancement
Seon et al. A statistical prediction model of speakers’ intentions using multi-level features in a goal-oriented dialog system
Yong et al. Prompting large language models to generate code-mixed texts: The case of south east asian languages
WO2010142422A1 (en) A method for inter-lingual electronic communication
EP4187463A1 (en) An artificial intelligence powered digital meeting assistant
Nguyen et al. Building a chatbot system to analyze opinions of english comments
Spinner et al. Revealing the Unwritten: Visual Investigation of Beam Search Trees to Address Language Model Prompting Challenges
Zaghouani et al. Can crowdsourcing be used for effective annotation of arabic?
AL-Hagbani et al. Support of existing chatbot development framework for Arabic language: a brief survey
Kovatchev et al. Fairly Accurate: Learning Optimal Accuracy vs. Fairness Tradeoffs for Hate Speech Detection

Legal Events

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