KR102381387B1 - Method for generating chatbot training data - Google Patents

Method for generating chatbot training data Download PDF

Info

Publication number
KR102381387B1
KR102381387B1 KR1020190159001A KR20190159001A KR102381387B1 KR 102381387 B1 KR102381387 B1 KR 102381387B1 KR 1020190159001 A KR1020190159001 A KR 1020190159001A KR 20190159001 A KR20190159001 A KR 20190159001A KR 102381387 B1 KR102381387 B1 KR 102381387B1
Authority
KR
South Korea
Prior art keywords
entity
sales office
intent
know
want
Prior art date
Application number
KR1020190159001A
Other languages
Korean (ko)
Other versions
KR20210069333A (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 KR1020190159001A priority Critical patent/KR102381387B1/en
Publication of KR20210069333A publication Critical patent/KR20210069333A/en
Application granted granted Critical
Publication of KR102381387B1 publication Critical patent/KR102381387B1/en

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

챗봇을 학습시키기 위한 대량의 데이터 세트를 생성하기 위한 방법이 제공된다. 본 발명의 일 실시예에 따른 챗봇 학습용 데이터 생성 방법은, 문장의 형태소를 분석하고 내용어를 추출하는 분석 및 내용어 추출 단계; 문장의 의도로 나타내는 인텐트를 생성하고, 각 인텐트에 대해서 해당 인테트에 포함되는 문장들을 등록하는 인텐트 편집 단계; 독립된 의미를 갖는 엔티티를 생성하고 각 엔티티에 대해서 해당 엔티티에 포함되는 내용어를 등록하는 엔티티 편집 단계; 각 인텐트에 대해서 등록된 문장을 상기 등록된 엔티티를 포함하는 패턴으로 표현하여 등록하는 반복관용어구 편집 단계; 등록된 인텐트, 엔티티, 패턴을 사용하여 학습용 데이터를 생성하는 학습용 데이터 생성 단계를 구비한다. 본 발명에 따르면 기존의 실제 대화에 기초하여 또는 가상의 대화에 기초하여 대화 데이터를 간편하게 확장할 수 있으므로, 챗봇이 필요로 하는 다양한 학습용 데이터를 보다 간편하고 정확하게 생성할 수 있다.A method is provided for generating a large data set for training a chatbot. A method for generating data for chatbot learning according to an embodiment of the present invention includes: an analysis and content word extraction step of analyzing a morpheme of a sentence and extracting a content word; an intent editing step of generating an intent indicated by the intention of a sentence, and registering sentences included in the corresponding intent for each intent; an entity editing step of creating an entity having an independent meaning and registering a content word included in the corresponding entity for each entity; repeating idiom editing step of expressing and registering the sentence registered for each intent as a pattern including the registered entity; and a training data generation step of generating training data using the registered intent, entity, and pattern. According to the present invention, since conversation data can be easily expanded based on an existing real conversation or a virtual conversation, various learning data required by the chatbot can be more easily and accurately generated.

Description

챗봇 학습용 데이터 생성 방법 {Method for generating chatbot training data}{Method for generating chatbot training data}

본 발명은 챗봇 학습용 데이터 생성 방법에 관한 것으로서, 더욱 상세하게는 챗봇을 학습시키기 위한 대량의 데이터 세트를 생성하기 위한 방법에 관한 것이다.The present invention relates to a method for generating data for training a chatbot, and more particularly, to a method for generating a large data set for training a chatbot.

챗봇(chatbot) 혹은 채터봇(Chatterbot)은 음성이나 문자를 통한 인간과의 대화를 통해서 특정한 작업을 수행하도록 제작된 컴퓨터 프로그램이나 서비스를 말한다. A chatbot or chatterbot is a computer program or service designed to perform a specific task through conversation with a human through voice or text.

챗봇은 도 1에 도시한 것처럼, 채팅의 텍스트나 음성으로 구성된 언어적 입력(Lexical input)을 자연어 처리기(Natural Language Processor)(10)가 입력받아서 컴퓨터 상에서 처리될 수 있는 형태로 처리해주고, 문맥 분석기(Context Analyzer)(20)가 처리된 자연어의 문맥(context)을 분석하고, 분석된 문맥에 따라 답변 내용을 정하는 의사 결정기(Decision Maker)(30)에서 답변 내용을 분류하여 확정하고, 확정된 답변 내용에 따라 응답 생성기(Response Generator)(40)가 사용자에게 언어적 출력(Lexical output)을 하도록 구성된다. As shown in FIG. 1 , the chatbot processes linguistic input composed of text or voice of chatting into a form that can be processed on a computer by receiving input by a natural language processor (10), and a context analyzer (Context Analyzer) 20 analyzes the context of the processed natural language, classifies and confirms the answer content in the decision maker 30 that determines the answer content according to the analyzed context, and confirms the confirmed answer According to the content, the response generator 40 is configured to give a verbal output to the user.

챗봇은 정해진 규칙에 따라(rule-based) 또는 인공지능을 사용하여(AI-based) 대화를 수행한다. 인공지능을 사용하는 경우에는 자연어 처리기, 문맥 분석기, 의사 결정기, 응답 생성기를 하나 또는 복수의 그룹으로 통합하여 딥러닝 모델을 적용하고 학습 데이터를 계속 학습시키게 된다. 한편, 인공지능을 사용하여 챗봇을 구축하는 경우에는 학습 데이터를 사용하여 챗봇을 기계학습 시켜야 하는데, 학습 데이터가 풍부할수록 챗봇의 성능이 향상된다. 인공지능을 사용한 챗봇에 관해서는 예를 들면 미국특허 제10,162,816호, 제10,157,615호, 제9,794,199호 등에 개시되어 있다.A chatbot performs a conversation according to a set rule (rule-based) or using artificial intelligence (AI-based). When artificial intelligence is used, a deep learning model is applied and training data is continuously trained by integrating natural language processors, context analyzers, decision makers, and response generators into one or more groups. On the other hand, when building a chatbot using artificial intelligence, the chatbot needs to be machine-learned using learning data. The richer the learning data, the better the chatbot's performance. Chatbots using artificial intelligence are disclosed in, for example, US Patent Nos. 10,162,816, 10,157,615, and 9,794,199.

학습 데이터는 고객과 상담원 사이의 실제 대화를 토대로 생성하는 것이 바람직하지만, 콜센터가 보유하고 있는 데이터는 답변만 갖고 있는 경우가 많으며 사용자의 질의를 가지고 있더라도 전체 문장이 아닌 자의적 약어로 구성되는 경우가 많다. 또한, 상담 내역도 실제 학습에 사용할 수 있는 자연발화 데이터는 거의 존재하지 않고 요지만 작성되는 경우가 많다. Although it is desirable to generate training data based on actual conversations between customers and agents, the data held by call centers often only have answers, and even if they have user queries, they often consist of arbitrary abbreviations rather than full sentences. . In addition, there is almost no spontaneous speech data that can be used for actual learning in the counseling history, and only the gist is written in many cases.

또한, 실제 대화 데이터가 있다고 하여도 고객들의 다양한 언어 습관을 모두 포용하기는 어렵다. 특히, 교착어인 한국어의 경우에는 변화형이나 띄어쓰기 형태가 다변화 하기 때문에 이러한 표현을 위해서는 다량의 학습용 문장이 필요하다.In addition, even with actual conversation data, it is difficult to embrace all the diverse language habits of customers. In particular, in the case of Korean, which is an agglutinative language, a large amount of learning sentences are required for this expression because the form of change and spacing are diversified.

본 발명은 이러한 점을 감안하여 이루어진 것으로서, 챗봇이 필요로 하는 학습용 데이터를 보다 빠르고 정확하게 생성하는 챗봇 학습용 데이터 생성 방법을 제공하는 것을 목적으로 한다. 본 발명의 다른 목적은 다양한 변화형을 가진 한국어와 같은 교착어에도 적용이 가능한 챗봇 학습용 데이터 생성 방법을 제공하는 것이다.The present invention has been made in view of this point, and an object of the present invention is to provide a method for generating data for learning for a chatbot that generates more quickly and accurately data for learning required by a chatbot. Another object of the present invention is to provide a method for generating data for chatbot learning that can be applied to an agglutinative language such as Korean having various variations.

본 발명의 일 실시예에 따른 챗봇 학습용 데이터 생성 방법은, 문장의 형태소를 분석하고 내용어를 추출하는 분석 및 내용어 추출 단계; 문장의 의도로 나타내는 인텐트를 생성하고, 각 인텐트에 대해서 해당 인테트에 포함되는 문장들을 등록하는 인텐트 편집 단계; 독립된 의미를 갖는 엔티티를 생성하고 각 엔티티에 대해서 해당 엔티티에 포함되는 내용어를 등록하는 엔티티 편집 단계; 각 인텐트에 대해서 등록된 문장을 상기 등록된 엔티티를 포함하는 패턴으로 표현하여 등록하는 반복관용어구 편집 단계; 등록된 인텐트, 엔티티, 패턴을 사용하여 학습용 데이터를 생성하는 학습용 데이터 생성 단계를 구비한다.A method for generating data for chatbot learning according to an embodiment of the present invention includes: an analysis and content word extraction step of analyzing a morpheme of a sentence and extracting a content word; an intent editing step of generating an intent indicated by the intention of a sentence, and registering sentences included in the corresponding intent for each intent; an entity editing step of creating an entity having an independent meaning and registering a content word included in the corresponding entity for each entity; repeating idiom editing step of expressing and registering the sentence registered for each intent as a pattern including the registered entity; and a training data generation step of generating training data using the registered intent, entity, and pattern.

상기 엔티티 편집 단계는, 하나의 엔티티에 복수의 엔트리를 등록하거나, 하나의 엔티티에 복수의 엔티티들을 등록하는 단계를 포함할 수 있다.The editing of the entity may include registering a plurality of entries in one entity or registering a plurality of entities in one entity.

엔티티에는 용언이 포함될 수 있다. 이 경우에, 상기 엔티티 편집 단계는, 용언 엔티티에 대해서는 각 용언의 활용형을 해당 엔티티의 엔트리로서 등록하는 단계를 포함한다. 각 용언 엔티티는 평서문, 의문문, 명령문으로 구분될 수 있다. Entities can contain verbs. In this case, the step of editing the entity includes registering, for the verb entity, the conjugation of each verb as an entry of the corresponding entity. Each verb entity can be divided into declarative sentences, interrogative sentences, and imperative sentences.

상기 문장 분석 및 내용어 추출 단계는, 추출된 내용어를 표시하고 사용자가 수정할 수 있는 도구를 제공하는 단계와, 수정한 내용어를 저장하는 단계를 포함한다. The step of analyzing the sentence and extracting the content word includes displaying the extracted content word and providing a tool for the user to modify, and storing the corrected content word.

상기 학습용 데이터 생성 단계는, 편집된 패턴들이 저장되어 있는 패턴 DB에서 하나의 패턴을 읽어오는 단계와, 읽어온 패턴에 포함되어 있는 각 엔티티에 포함되는 내용어들을 패턴 내의 각 엔티티 위치에 대치하는 단계를 각 패턴에 대해서 반복적으로 수행하는 것이다.The step of generating the learning data includes reading one pattern from the pattern DB in which the edited patterns are stored, and substituting content words included in each entity included in the read pattern with the position of each entity in the pattern. is repeatedly performed for each pattern.

본 발명에 따르면 기존의 실제 대화에 기초하여 또는 가상의 대화에 기초하여 대화 데이터를 간편하게 확장할 수 있으므로, 챗봇이 필요로 하는 다양한 학습용 데이터를 보다 간편하고 정확하게 생성할 수 있다.According to the present invention, since conversation data can be easily expanded based on an existing real conversation or a virtual conversation, various learning data required by the chatbot can be generated more simply and accurately.

도 1은 일반적인 챗봇의 내부 구성을 보여주는 블록도이다.
도 2는 본 발명의 챗봇 학습용 데이터 생성 방법이 적용되는 챗봇의 한가지 예를 보여주는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 챗봇 학습용 데이터 생성 방법을 보여주는 흐름도이다.
도 4는 본 발명의 일 실시예에서 원문 데이터로부터 추출 및 정제된 문장을 선택할 때의 화면예이다.
도 5는 본 발명의 일 실시예에 따라 추출된 내용어를 편집할 때의 화면예이다.
도 6은 본 발명의 일 실시예에 따라 인텐트를 편집할 때의 화면예이다.
도 7은 본 발명의 일 실시예에 따라 엔티티를 편집할 때의 화면예이다.
도 8은 본 발명의 일 실시예에 따라 반복관용어구를 편집할 때의 화면예이다.
1 is a block diagram showing the internal configuration of a general chatbot.
2 is a block diagram showing an example of a chatbot to which the data generating method for chatbot learning of the present invention is applied.
3 is a flowchart illustrating a method of generating data for chatbot learning according to an embodiment of the present invention.
4 is an example of a screen when a sentence extracted and refined from original text data is selected in an embodiment of the present invention.
5 is an example of a screen when editing an extracted content word according to an embodiment of the present invention.
6 is an example of a screen when an intent is edited according to an embodiment of the present invention.
7 is an example of a screen when an entity is edited according to an embodiment of the present invention.
8 is an example of a screen when editing a repeated idiom according to an embodiment of the present invention.

이하, 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 이하의 설명에서 인텐트(Intent)는 문장이 나타내는 의도를 의미하며 동일한 인텐트는 다양한 문장으로 표현될 수 있다. 엔티티(Entity)는 독립된 의미로 분류할 수 있는 단어, 단어열 등을 의미하며, 고유의 ID로 구분할 수 있다. 엔트리(Entry) 또는 내용어는 엔티티(Entity)에 종속되어 들어가는 고유명사 혹은 같은 의미의 용어군으로서, 의미망 용어로는 동의어(Synonym)라 한다. 이하의 설명에서는 엔트리와 내용어를 동일한 의미로 혼용한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings. In the following description, an intent means an intention indicated by a sentence, and the same intent may be expressed in various sentences. Entity means a word or a word string that can be classified as an independent meaning, and can be identified by a unique ID. An entry or content word is a proper noun that is subordinated to an entity or a group of terms with the same meaning, and is called a synonym as a semantic network term. In the following description, entry and content word are used interchangeably with the same meaning.

도 2는 본 발명의 챗봇 학습용 데이터 생성 방법이 적용되는 챗봇의 한가지 예를 보여주는 블록도이다.2 is a block diagram showing an example of a chatbot to which the data generating method for chatbot learning of the present invention is applied.

인공지능 챗봇은 언어적 입력을 받아서 그에 대한 응답을 언어적 출력으로서 생성한다. 이를 위하여 학습 데이터를 사용하여 딥러닝 등의 알고리즘을 거쳐서 학습을 수행한다. 본 발명의 챗봇 학습용 데이터 생성 장치(100)는 인공지능 챗봇(200)의 학습에 사용할 학습 데이터를 생성한다.Artificial intelligence chatbots take verbal input and generate a response as a verbal output. For this purpose, learning is performed through algorithms such as deep learning using learning data. The chatbot learning data generating apparatus 100 of the present invention generates learning data to be used for learning of the artificial intelligence chatbot 200 .

일 실시예에서 챗봇 학습용 데이터 생성 장치(100)는 실제 대화를 기록한 원문을 분석하여 정제하고 내용어를 추출하는 원문 분석기(110)를 구비할 수 있다. 추출된 내용어는 내용어 DB(143)에 저장된다. 사용자는 원문 분석기(110)에서 자동으로 추출된 내용어를 편집하여 추출 오류를 정정할 수 있다. 실제 대화 기록을 구하기 힘들거나 그 양이 많지 않은 실시예의 경우에는 학습 데이터 편집을 위한 기본적인 원문을 수동으로 생성할 수도 있다. In an embodiment, the apparatus 100 for generating data for chatbot learning may include a text analyzer 110 for analyzing and refining the original text recorded in the actual conversation and extracting content words. The extracted content word is stored in the content word DB 143 . The user may correct the extraction error by editing the content word automatically extracted by the text analyzer 110 . In the case of an embodiment in which it is difficult to obtain an actual conversation record or the amount is not large, a basic text for editing the learning data may be manually generated.

학습 데이터 편집기(120)는 대화 원문에서 분석되고 정제된 문장 및 내용어로부터 인텐트(Intent), 엔티티(Entity)를 추가하거나 정정하는 편집을 하고, 반복관용어구를 편집할 수 있도록 한다. 편집된 인텐트, 엔티티, 내용어, 용언, 패턴 등은 각각 인텐트 DB(141), 엔티티 DB(142), 내용어 DB(143), 용언 DB(144), 패턴 DB(145)에 저장된다.The learning data editor 120 makes it possible to edit by adding or correcting intents and entities from the analyzed and refined sentences and content words in the conversational text, and to edit repeated idioms. The edited intent, entity, content word, verb, pattern, etc. are stored in the intent DB 141 , the entity DB 142 , the content word DB 143 , the verb DB 144 , and the pattern DB 145 , respectively. .

학습 데이터 생성기(130)는 인텐트 DB(141), 엔티티 DB(142), 내용어 DB(143), 용언 DB(144), 패턴 DB(145) 등의 데이터베이스(140)에 저장된 정보를 이용하여 인공지능 챗봇(200)의 학습에 사용될 학습 데이터를 생성한다.The learning data generator 130 uses information stored in the database 140 such as the intent DB 141, the entity DB 142, the content word DB 143, the verb DB 144, and the pattern DB 145. It generates learning data to be used for learning of the artificial intelligence chatbot 200 .

다음으로, 도 3 내지 도 8을 참조하여 본 발명의 챗봇 학습용 데이터 생성 방법을 상세히 설명한다. 이하의 설명에서는 '카카오톡' 등의 메신저 서비스를 이용하여 텍스트 데이터로 챗봇과 대화하는 서비스에 사용할 학습 데이터를 생성하는 것을 예로 들어 설명하지만 본 발명은 음성으로 챗봇과 대화하는 서비스에 사용할 학습 데이터를 생성하는 경우에도 적용 가능하다.Next, a method for generating data for learning a chatbot of the present invention will be described in detail with reference to FIGS. 3 to 8 . In the following description, the generation of learning data to be used for a service that communicates with a chatbot using text data is used as an example using a messenger service such as 'KakaoTalk', but the present invention provides learning data to be used for a service that communicates with a chatbot by voice. It can also be applied when creating

먼저, 챗봇이 사용되는 분야의 실제 대화 원문을 분석 및 정제하여 내용어를 추출한다(단계 S110). 실제 대화 기록을 구하기 힘들거나 그 양이 많지 않은 실시예의 경우에는 학습 데이터 편집을 위한 기본적인 원문을 수동으로 생성할 수도 있다.First, the content word is extracted by analyzing and refining the actual dialogue text in the field where the chatbot is used (step S110). In the case of an embodiment in which it is difficult to obtain an actual conversation record or the amount is not large, a basic text for editing the learning data may be manually generated.

원문 분석기(110)는 대화 원문에서 문장을 추출한다. 도 4에 원문을 분석하고 정제하여 내용어를 추출 및 편집하기 위한 화면예가 도시되어 있다. 도 4의 화면예에는 원문에서 추출된 문장들의 리스트가 도시되어 있다. 사용자는 이들 문장 중에서 하나를 선택할 수 있다. The text analyzer 110 extracts a sentence from the original dialogue text. 4 shows an example of a screen for extracting and editing content words by analyzing and refining the original text. The screen example of FIG. 4 shows a list of sentences extracted from the original text. The user can select one of these sentences.

사용자가 "서울 외곽순환선에 정체가 무척 심하다"라는 원문을 선택하면 원문 분석기(110)는 해당 문장에서 형태소를 자동 분석하여 내용어를 추출하고 그 결과를 도 5에 도시한 것처럼 표시한다. 도 5는 사용자가 '서울외곽순환선에 정체가 심하다'라는 문장을 선택한 경우의 예를 보여주고 있다. 원문 분석기(110)는 문장에서 고유명사, 일반명사, 조사, 용언 등을 구분하여 표시한다. 형태소를 분석하고 내용어를 추출하는 알고리즘은 종래의 알고리즘을 사용할 수 있으며, 본 발명은 특정 형태소 분류 알고리즘에 한정되지 않는다.When the user selects the original text, "There is a lot of congestion on the outer ring of Seoul," the text analyzer 110 automatically analyzes morphemes in the text to extract content words, and displays the result as shown in FIG. 5 . 5 shows an example of a case in which the user selects the sentence 'Severe congestion on the Seoul Outer Ring Line'. The text analyzer 110 distinguishes and displays proper nouns, common nouns, propositions, verbs, and the like in a sentence. An algorithm for analyzing a morpheme and extracting a content word may use a conventional algorithm, and the present invention is not limited to a specific morpheme classification algorithm.

도 5의 예에서 원문 분석기(110)가 "서울"을 고유명사로, "외곽"과 "순환선"을 일반명사로 분류한 경우를 보여주고 있다. 그러나, "서울 외곽순환선"은 그 자체로 고유명사이므로 사용자는 이들을 하나로 그룹핑하여 고유명사로 정정하고 하나의 내용어로 지정할 수 있다. 예를 들면, 그룹핑하고자 하는 단어들을 선택한 후에 고유명사로 지정한다. 이와 같이 원문 분석기(110)에 의해 추출되고 사용자의 정정을 거친 내용어들은 내용어 DB(141)에 저장되며, 각 내용어에는 고유의 ID가 부여된다.In the example of FIG. 5 , the text analyzer 110 classifies “Seoul” as proper nouns, and “outside” and “circular line” as common nouns. However, since "Seoul Outer Ring Line" is a proper noun by itself, the user can group them into one, correct it as a proper noun, and designate it as one content word. For example, after selecting the words to be grouped, designate them as proper nouns. In this way, the content words extracted by the text analyzer 110 and corrected by the user are stored in the content word DB 141, and a unique ID is assigned to each content word.

사용자는 학습 데이터 편집기(120)를 사용하여 인텐트, 엔티티, 반복관용어구를 편집할 수 있다(단계 S121). The user may edit intents, entities, and repeated idioms using the learning data editor 120 (step S121).

인텐트(Intent)는 문장에서 나타내고자 하는 의도를 나타낸다. 인텐트의 예로서는 '도로 정체', '요금 납부', '날씨 조회', '일반 차로 대신 하이패스 차로 통과' 등을 들 수 있다. Intent indicates the intention to be expressed in the sentence. Examples of intents include 'road congestion', 'pay fares', 'weather inquiry', and 'pass through high-pass lanes instead of normal lanes'.

각 인텐트는 다양한 형태의 문장으로 표현할 수 있다. 예를 들어 '도로 정체' 인텐트의 경우에는 평서문과 의문문이 있을 수 있으며, 의문문의 경우에도 "<도로> 막히나요?", "<도로> 정체 중인가요?", "<도로> 혼잡한가요?" 등과 같이 다양하게 표현할 수 있다. 여기에서 <도로>는 도로를 나타내는(즉, <도로> 속성을 가진) 엔트리가 삽입될 수 있음을 나타낸다. 예를 들어, <도로>에는 "강변북로", "남부순환도로", "강남대로" 등의 엔트리가 대치될 수 있다.Each intent can be expressed in various types of sentences. For example, in the case of 'Road Congestion' intent, there can be declarative sentences and interrogative sentences, and even for interrogative sentences, "Is <road> blocked?", "Is <road> congested?", "Is <road> congested?" " It can be expressed in various ways, such as Here, <road> indicates that an entry representing a road (ie, having a <road> attribute) can be inserted. For example, in <Road>, entries such as "Gangbyeonbuk-ro", "Nambu Beltway", and "Gangnam-daero" may be substituted.

학습 데이터 편집기(120)를 사용하여 인텐트를 편집하는 화면의 예가 도 6에 도시되어 있다. 사용자는 새로운 인텐트를 추가할 수도 있고, 기존 인텐트에 새로운 문장을 추가하거나 기존 문장을 수정할 수도 있다. 새로운 인텐트가 추가되면 학습 데이터 편집기(120)는 이 인텐트를 나타내는 다양한 문장을 생성하고 화면에 표시하여 사용자가 편집할 수 있도록 한다. 인텐트를 나타내는 문장들은 새로운 인텐트와 유사한 기존 인텐트 내의 문장을 참고하여 생성될 수도 있고, 엔티티 DB(142)를 활용하여 생성될 수도 있다.An example of a screen for editing an intent using the training data editor 120 is shown in FIG. 6 . A user may add a new intent, and may add a new sentence to an existing intent or modify an existing sentence. When a new intent is added, the training data editor 120 generates various sentences representing the intent and displays it on the screen so that the user can edit it. The sentences representing the intent may be generated by referring to the sentences in the existing intent similar to the new intent, or may be generated using the entity DB 142 .

도 6은 '일반 차로 대신 하이패스 차로 통과' 인텐트를 편집하는 예가 도시되어 있다. 사용자는 '일반 차로 대신 하이패스 차로 통과' 인텐트를 나타낼 수 있는 다양한 문장을 등록하거나 수정할 수 있다. 한편, 인텐트를 나타내는 문장에 엔티티와 용언을 삽입할 수 있다. 예를 들면 도로 정체 인텐트에 "<도로> <막히다_의문문> 등과 같이 엔티티와 용언을 삽입할 수 있다. 이렇게 편집된 인텐트는 인텐트 DB(141)에 저장된다.FIG. 6 shows an example of editing the intent 'passing through a high-pass lane instead of a normal lane'. The user can register or modify various sentences that can represent the intent of 'passing through the high-pass lane instead of the normal lane'. Meanwhile, entities and verbs can be inserted into sentences representing intents. For example, entities and verbs such as "<road> <blocked_question>, etc. may be inserted into the road congestion intent. The edited intent is stored in the intent DB 141 .

사용자는 등록된 내용어들을 각 내용어가 해당되는 엔티티(Entity)에 등록한다(단계 S122). 이때 등록되는 각 내용어들을 엔트리(Entry)라 한다. 엔티티(Entity)를 편집하는 화면의 예가 도 7에 도시되어 있다. 도 7에서는 <서울지하철 1호선>이라는 엔티티에 '안양'이라는 엔트리를 추가하는 화면을 보여주고 있다. 다른 예로서는, <도로>라는 엔티티에 '강변북로', '남부순환도로', '강남대로' 등을 입력할 수 있다. 실시예에 따라서는 하나의 엔트리가 복수의 엔티티에 포함될 수도 있다. 예를 들면, '교대역'이라는 엔트리는 <서울지하철역>이라는 엔티티에도 포함되고 <서울지하철역 2호선>, <서울지하철역 3호선>이라는 엔티티에 포함될 수도 있다. 이렇게 편집된 엔티티는 엔티티 DB(142)에 저장된다.The user registers the registered content words in the entity to which each content word corresponds (step S122). At this time, each content word to be registered is called an entry. An example of a screen for editing an entity is illustrated in FIG. 7 . 7 shows a screen for adding an entry 'Anyang' to an entity called <Seoul Subway Line 1>. As another example, 'Gangbyeon North Road', 'Nambu Ring Road', 'Gangnam-daero', etc. may be input to the entity called <road>. According to an embodiment, one entry may be included in a plurality of entities. For example, the entry 'Gyodae Station' may be included in an entity called <Seoul Subway Station> and may also be included in entities called <Seoul Subway Station Line 2> and <Seoul Subway Station Line 3>. The edited entity is stored in the entity DB 142 .

사용자는 용언을 편집할 수도 있다. 용언은 반복관용어구에서 사용되는 구(phrase)를 의미한다. 표 1은 '알고 싶다'라는 의미를 가진 용언의 예를 보여준다. 사용자는 새로운 용언을 추가할 수도 있고, 기존 용언에 새로운 문구를 추가하거나 기존 문구를 수정할 수 있다. 용언은 평서문, 의문문, 명령문으로 구분될 수 있다. 표 1의 용언들을 모두 지시하는 심볼로서 '#알고_싶다_용언'이라는 태그가 사용될 수 있다. 이렇게 편집된 용언은 용언 DB(144)에 저장된다. Users can also edit verbs. A verb means a phrase used in a repeated idiom. Table 1 shows examples of verbs with the meaning of 'I want to know'. Users can add new verbs, add new phrases to existing verbs, or edit existing phrases. Proverbs can be divided into declarative sentences, interrogative sentences, and imperative sentences. As a symbol indicating all the verbs in Table 1, the tag '#I want to know_verb' may be used. The edited verb is stored in the verb DB 144 .

<알다_싶다_평서형> : 알고 싶은데요 | 알고 싶어요 | 알고 싶습니다 | 알고 싶거든요;
<알다_계시다_의문형> : 알고 계십니까 | 알고 계시나요 | 알고 계신지요;
<대하다_알다_싶다_평서형> : 대해서 알고 싶은데요 | 대해서 알고 싶거든요;
<알다_되다_평서형> : 알아야 되거든요 | 알아야 됩니다만;
<궁금하다_그렇게_하다_연결형> : 궁금해서 그러는데;
<궁금하다_평서형> : 궁금한데요 | 궁금하네요 | 궁금합니다 | 궁금하거든요 | 궁금해요;
<궁금하다_연결형> : 궁금해서;
<궁금하다_그렇게_하다_연결형> : 궁금해서 그러는데;
<알리다_주다_명령형> : 알려 주세요 | 알려 주십시오;
<자세하다_알리다_주다_명령형> : 자세하게 알려 주십시오;
<알리다_주다_의문형> : 알려 줄래요 | 알려 주시겠습니까;
<I want to know_I want to know> : I want to know | I want to know | I would like to know | I want to know;
<Know_Does_Interrogative> : Do you know | Did you know | Do you know;
<Treat_know_want_descriptive type> : I want to know about it | I want to know about;
<Know_become_declarative type> : I need to know | You should know;
<Curious_So_Do_Connected>: I'm curious;
<Curious_Praise type> : I'm curious | I wonder | I wonder | I'm curious | I wonder;
<Curious_connection type> : I'm curious;
<Curious_So_Do_Connected>: I'm curious;
<Inform_Give_Imperative> : Please tell me | Please let me know;
<detail_inform_give_imperative> : Please provide details;
<Inform_Give_Interrogative Type> : Can you tell me? Could you please tell me;

실시예에 따라서는 용언도 엔티티의 일종으로 취급하여 처리하도록 구성할 수 있다. 이 경우에 용언 엔티티는 복수의 다른 용언 엔티티를 포함하여 구성될 수도 있다. According to an embodiment, it may be configured to treat a verb as a kind of entity and process it. In this case, the verb entity may be configured to include a plurality of other verb entities.

사용자는 또한 반복관용어구를 편집할 수 있다(단계 S123). 반복관용어구는 사용자가 수동으로 설정할 수도 있고, 대화 원문에서 추출된 문장 중에서 사용자가 편집할 수도 있다. 반복관용어구는 엔티티와 용언을 포함하는 패턴으로 표현될 수 있다. 도 8에 반복관용어구를 편집하는 화면의 예가 도시되어 있다.The user may also edit the repeated idiom (step S123). The repeated idioms can be set manually by the user or edited by the user from among the sentences extracted from the original dialogue text. Repetitive idioms can be expressed as patterns including entities and verbs. 8 shows an example of a screen for editing repeated idioms.

표 2는 '통행료 문의' 인텐트에 사용될 수 있는 패턴의 예를 보여준다. 여기에서 <영업소>는 통행 요금을 납부하는 톨게이트, 예를 들면 '판교', '북수원' 등이 엔트리로 등록되는 엔티티이다. 표 2에서 '<알다_싶다_의문형>'에는 표 1에서 정의한 <알다_싶다_의문형> 용언들이 모두 사용될 수 있다.Table 2 shows examples of patterns that can be used for the 'Inquiry toll' intent. Here, <sales office> is an entity where toll gates that pay tolls, for example, 'Pangyo' and 'Buksuwon' are registered as entries. In Table 2, '<know_want_interrogative type>' defined in Table 1 can use all the verbs <know_want_interrogative type>.

<영업소> <영업소> 통행료 <알다_싶다_의문형>
<영업소> <영업소> 통행료를 <알다_싶다_의문형>
<영업소> <영업소> 요금 <알다_싶다_의문형>
<영업소> <영업소> 요금을 <알다_싶다_의문형>
<영업소> <영업소> 통행료가 얼마인지 <알다_싶다_의문형>
<영업소> <영업소> 통행료 얼마인지 <알다_싶다_의문형>
<영업소>에서 <영업소> 통행료 <알다_싶다_의문형>
<영업소>에서 <영업소> 통행료 <알다_싶다_의문형>
<영업소>에서 <영업소> 통행료를 <알다_싶다_의문형>
<영업소>에서 <영업소> 요금 <알다_싶다_의문형>
<영업소>에서 <영업소> 요금을 <알다_싶다_의문형>
<영업소>에서 <영업소> 통행료가 얼마인지 <알다_싶다_의문형>
<영업소>에서 <영업소> 통행료 얼마인지 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 통행료 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 통행료 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 통행료를 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 요금 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 요금을 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 통행료가 얼마인지 <알다_싶다_의문형>
<영업소>에서 <영업소>까지 통행료 얼마인지 <알다_싶다_의문형>
<영업소>-<영업소> 통행료 <알다_싶다_의문형>
<영업소>-<영업소> 통행료 <알다_싶다_의문형>
<영업소>-<영업소> 통행료를 <알다_싶다_의문형>
<영업소>-<영업소> 요금 <알다_싶다_의문형>
<영업소>-<영업소> 요금을 <알다_싶다_의문형>
<영업소>-<영업소> 통행료가 얼마인지 <알다_싶다_의문형>
<영업소>-<영업소> 통행료 얼마인지 <알다_싶다_의문형>
<영업소> - <영업소> 통행료 <알다_싶다_의문형>
<영업소> - <영업소> 통행료 <알다_싶다_의문형>
<영업소> - <영업소> 통행료를 <알다_싶다_의문형>
<영업소> - <영업소> 요금 <알다_싶다_의문형>
<영업소> - <영업소> 요금을 <알다_싶다_의문형>
<영업소> - <영업소> 통행료가 얼마인지 <알다_싶다_의문형>
<영업소> - <영업소> 통행료 얼마인지 <알다_싶다_의문형>
<Sales office><Salesoffice> Toll <Know_want_question type>
<Sales office><Salesoffice> Toll fee <Know_want_question type>
<Sales office><Salesoffice> Fee <Know_want_question type>
<Sales office><Salesoffice> Fees <Know_want_questionable>
<Sales office><Salesoffice> How much is the toll <I want to know_question type>
<Sales office><Salesoffice> How much is the toll <I want to know_question type>
<Sales office> to <Sales office> toll <Know_want_questionable>
<Sales office> to <Sales office> toll <Know_want_questionable>
<Sales office> to <Sales office> tolls <Know_want_questionable>
<Sales office> to <Sales office> fee <Know_want_question type>
<Sales office> to <Sales office> rates <Know_want_questionable>
<Sales office> to <Sales office> how much is the toll <I want to know_question type>
<Sales office> to <Sales office> How much is the toll <I want to know_Question type>
Toll from <Sales office> to <Sales office><Know_want_questionable>
Toll from <Sales office> to <Sales office><Know_want_questionable>
<Know_want_questionable> the toll fee from <Sales office> to <Sales office>
Fees from <Sales office> to <Sales office><Know_want_questionable>
<Know_want_questionable> the fare from <sales office> to <sales office>
How much is the toll from <Sales office> to <Sales office><I want to know_Question type>
How much is the toll from <Sales office> to <Sales office><I want to know_Question type>
<Sales office>-<Sales office> Toll fee <Know_want_question type>
<Sales office>-<Sales office> Toll fee <Know_want_question type>
<Sales office>-<Sales office> Toll fee <Know_want_question type>
<Sales office>-<Sales office> Fee <Know_want_question type>
<Sales office>-<Sales office> Fee <Know_want_question type>
<Sales office>-<Sales office> How much is the toll <I want to know_question type>
<Sales office>-<Sales office> How much is the toll <I want to know_Question type>
<Sales office> - <Sales office> Toll fee <Know_want_question type>
<Sales office> - <Sales office> Toll fee <Know_want_question type>
<Sales office> - <Sales office> Toll rates <Know_want_questionable>
<Sales office> - <Sales office> Fee <Know_want_question type>
<Sales office> - <Sales office> price <Know_want_questionable>
<Sales office> - <Sales office> How much is the toll <I want to know_question type>
<Sales office> - <Sales office> How much is the toll <I want to know_question type>

표 3은 '통행료 문의' 인텐트에 사용될 수 있는 패턴의 다른 예를 보여준다. 표 3에서 '#알고_싶다_용언'에는 표 1에서 정의한 용언이 모두 사용될 수 있다. 일 실실예에서, '#알고_싶다_용언'은 복수의 다른 용언 엔티티를 포함하여 구성되는 용언 엔티티이다. 복수의 용언 엔티티를 나타내는 심볼로 '#엔티티' 대신에 다른 엔티티와 마찬가지로 '<엔티티>'를 사용할 수도 있다.Table 3 shows another example of a pattern that can be used for the 'Inquiry toll' intent. All verbs defined in Table 1 can be used for '#I want to know_verbs' in Table 3. In one embodiment, '#want to know_verb' is a verb entity comprising a plurality of other verb entities. Instead of '#entity' as a symbol representing multiple verb entities, '<entity>' can also be used like other entities.

<영업소> <영업소> 통행료 #알고_싶다_용언
<영업소> <영업소> 통행료 #알고_싶다_용언
<영업소> <영업소> 통행료를 #알고_싶다_용언
<영업소> <영업소> 요금 #알고_싶다_용언
<영업소> <영업소> 요금을 #알고_싶다_용언
<영업소> <영업소> 통행료가 얼마인지 #알고_싶다_용언
<영업소> <영업소> 통행료 얼마인지 #알고_싶다_용언
<영업소>에서 <영업소> 통행료 #알고_싶다_용언
<영업소>에서 <영업소> 통행료 #알고_싶다_용언
<영업소>에서 <영업소> 통행료를 #알고_싶다_용언
<영업소>에서 <영업소> 요금 #알고_싶다_용언
<영업소>에서 <영업소> 요금을 #알고_싶다_용언
<영업소>에서 <영업소> 통행료가 얼마인지 #알고_싶다_용언
<영업소>에서 <영업소> 통행료 얼마인지 #알고_싶다_용언
<영업소>에서 <영업소>까지 통행료 #알고_싶다_용언
<영업소>에서 <영업소>까지 통행료 #알고_싶다_용언
<영업소>에서 <영업소>까지 통행료를 #알고_싶다_용언
<영업소>에서 <영업소>까지 요금 #알고_싶다_용언
<영업소>에서 <영업소>까지 요금을 #알고_싶다_용언
<영업소>에서 <영업소>까지 통행료가 얼마인지 #알고_싶다_용언
<영업소>에서 <영업소>까지 통행료 얼마인지 #알고_싶다_용언
<영업소>-<영업소> 통행료 #알고_싶다_용언
<영업소>-<영업소> 통행료 #알고_싶다_용언
<영업소>-<영업소> 통행료를 #알고_싶다_용언
<영업소>-<영업소> 요금 #알고_싶다_용언
<영업소>-<영업소> 요금을 #알고_싶다_용언
<영업소>-<영업소> 통행료가 얼마인지 #알고_싶다_용언
<영업소>-<영업소> 통행료 얼마인지 #알고_싶다_용언
<영업소> - <영업소> 통행료 #알고_싶다_용언
<영업소> - <영업소> 통행료 #알고_싶다_용언
<영업소> - <영업소> 통행료를 #알고_싶다_용언
<영업소> - <영업소> 요금 #알고_싶다_용언
<영업소> - <영업소> 요금을 #알고_싶다_용언
<영업소> - <영업소> 통행료가 얼마인지 #알고_싶다_용언
<영업소> - <영업소> 통행료 얼마인지 #알고_싶다_용언
<Sales office><Salesoffice> Toll #I want to know_Language
<Sales office><Salesoffice> Toll #I want to know_Language
<Sales office><Salesoffice>#I want to know the toll
<Sales office><Salesoffice> Fee #I want to know_verb
<Sales office><Salesoffice>#I want to know the rate
<Sales office><Salesoffice>#I want to know how much the toll is
<Sales office><Salesoffice>#I want to know how much the toll is
<Sales office> to <Sales office> toll #I want to know_verb
<Sales office> to <Sales office> toll #I want to know_verb
<Sales Office> to <Sales Office>#I want to know the toll
<Sales Office> to <Sales Office> Fee #I want to know_verb
#I want to know the price of the <sales office> at the <sales office>
#I want to know how much the toll is from <Sales Office> to <Sales Office>
#I want to know how much the toll is from <Sales Office> to <Sales Office>
Toll fee from <Sales office> to <Sales office>#I want to know_verb
Toll fee from <Sales office> to <Sales office>#I want to know_verb
#I want to know the toll fee from <Sales Office> to <Sales Office>
Fees from <sales office> to <sales office>#I want to know_verb
#I want to know the price from <Sales office> to <Sales office>
#I want to know how much the toll is from <Sales office> to <Sales office>
#I want to know how much the toll is from <Sales office> to <Sales office>
<Sales office>-<Sales office> Toll #I want to know_verb
<Sales office>-<Sales office> Toll #I want to know_verb
<Sales office>-<Sales office>#I want to know the toll fee
<Sales office>-<Sales office> Fee #I want to know_verb
<Sales office>-<Sales office>#I want to know the rate
<Sales office>-<Sales office>#I want to know how much the toll is
<Sales office>-<Sales office>#I want to know how much the toll is
<Sales office> - <Sales office> Toll #I want to know_verb
<Sales office> - <Sales office> Toll #I want to know_verb
<Sales office> - <Sales office>#I want to know the toll
<Sales office> - <Sales office> Fee #I want to know_verb
<Sales office> - <Sales office>#I want to know the rate
<Sales office> - <Sales office>#I want to know how much the toll is
<Sales office> - <Sales office>#I want to know how much the toll is

한편, 실시예에 따라서는 '<영업소> <영업소>', '<영업소>에서 <영업소>', '<영업소>에서 <영업소>까지', '<영업소>-<영업소>' 등을 '<영업소_구간>'과 같이 엔티티들을 하나의 엔티티 그룹으로 묶어서 지정하는 것도 가능하다. 예를 들어 <영업소_구간> 엔티티는 표 4와 같이 정의될 수 있다. 이와 같이 정의하면 패턴을 보다 포괄적으로 지정할 수 있으므로 편리하다. 실시예에 따라서는 복수의 엔티티 그룹들을 묶어서 하나의 엔티티 그룹으로 정의할 수 있도록 구성하는 것도 가능하다. 이렇게 편집된 반복관용어구는 패턴 DB(145)에 저장된다.Meanwhile, depending on the embodiment, '<sales office> <sales office>', '<sales office> to <sales office>', '<sales office> to <sales office>', '<sales office>-<sales office>', etc. It is also possible to designate entities by grouping them into one entity group, such as 'Sales office_section>'. For example, the <sales office_section> entity may be defined as shown in Table 4. This definition is convenient because the pattern can be specified more comprehensively. According to an embodiment, a plurality of entity groups may be bundled and configured to be defined as one entity group. The edited repeated idioms are stored in the pattern DB 145 .

<영업소> <영업소>
<영업소>에서 <영업소>
<영업소>에서 <영업소>까지
<영업소>부터 <영업소>까지
<영업소>-<영업소>
<영업소> - <영업소>
<영업소> <영업소> 구간
<영업소>에서 <영업소> 구간
<영업소> <영업소> 사이
<영업소>에서 <영업소> 사이
<Sales office><Salesoffice>
<SalesOffice> to <Sales Office>
From <Sales Office> to <Sales Office>
From <Sales Office> to <Sales Office>
<Sales office>-<Sales office>
<Sales office> - <Sales office>
<Sales office><Salesoffice> section
<Sales office> to <Sales office>
Between <Sales Office><SalesOffice>
Between <Sales Office> and <Sales Office>

학습 데이터 생성기(130)는 데이터베이스(140)를 이용하여 학습 데이터를 생성한다(단계 S130). 예를 들면, 패턴 DB(145)에서 하나의 패턴을 읽어오고, 읽어온 패턴에 포함되어 있는 용언과 엔티티에 포함되는 문구들과 엔트리들을 각각 용언 DB(144)와 엔티티 DB(142)에서 읽어와서 해당 위치에 대치한다. 패턴에 포함된 엔티티가 다수의 엔티티들을 정의하는 엔티티 그룹인 경우에는 해당 그룹에 정의된 엔티티들을 엔티티 DB(142)에서 읽어와서, 읽어온 엔티티에 포함되는 엔트리들을 다시 엔티티 DB(142)에서 읽어와서 대치시킨다. 실시예에 따라서는 용언들을 먼저 대치하여 1차 결과물을 생성하고, 1차 결과물 내의 각각의 패턴에 대해서 각 엔티티에 포함되는 엔트리들을 대치하여 최종 학습용 문장을 생성하도록 구성하는 것도 가능하다.The training data generator 130 generates training data using the database 140 (step S130). For example, one pattern is read from the pattern DB 145, and phrases and entries included in the verb and entity included in the read pattern are read from the verb DB 144 and the entity DB 142, respectively. replace in that location. When the entity included in the pattern is an entity group defining a plurality of entities, entities defined in the corresponding group are read from the entity DB 142, and entries included in the read entity are read from the entity DB 142 again. replace According to an embodiment, it is also possible to generate a primary result by first substituting verbs, and to generate a final learning sentence by substituting entries included in each entity for each pattern in the primary result.

표 5는 전술한 '통행료 문의' 인텐트에 대해서 용언들을 확장한 1차 결과물의 일부를 보여준다.Table 5 shows a part of the primary result of expanding verbs for the above-mentioned 'toll inquiry' intent.

<영업소> <영업소> 통행료 알고 싶거든요;
<영업소> <영업소> 통행료 알고 싶네요;
<영업소> <영업소> 통행료 알아야 되거든요;
<영업소> <영업소> 통행료 알고 싶은데요
<영업소> <영업소> 통행료 알고 싶어요
<영업소> <영업소> 통행료 알고 싶습니다;
<영업소> <영업소> 통행료 대해서 알고 싶은데요
<영업소> <영업소> 통행료 대해서 알고 싶거든요;
<영업소> <영업소> 통행료 궁금해서 그러는데;
<영업소> <영업소> 통행료 궁금한데요
<영업소> <영업소> 통행료 궁금하네요
<영업소> <영업소> 통행료 궁금합니다
<영업소> <영업소> 통행료 궁금하거든요;
<영업소> <영업소> 통행료 궁금해서;
<영업소> <영업소> 통행료 궁금해서 그러는데;
<영업소> <영업소> 통행료 궁금한데요
<영업소> <영업소> 통행료 궁금하네요
<영업소> <영업소> 통행료 궁금합니다
<영업소> <영업소> 통행료 궁금하거든요;
<영업소> <영업소> 통행료 궁금해;
<영업소> <영업소> 통행료 알려 주세요;
<영업소> <영업소> 통행료 자세하게 알려 주십시오;
<영업소> <영업소> 통행료 알려 줄래요;
<영업소> <영업소> 통행료 알려 줘
<영업소> <영업소> 통행료 알려줘;
<영업소> <영업소> 통행료 알고 싶거든요
<영업소> <영업소> 통행료 알고 싶네요;
<영업소> <영업소> 통행료 알아야 되거든요;
<영업소> <영업소> 통행료 알고 싶은데요
<영업소> <영업소> 통행료 알고 싶어요
<영업소> <영업소> 통행료 알고 싶습니다;
...
<Sales office><Salesoffice> I want to know the toll;
<Sales office><Salesoffice> I want to know the toll;
<Sales office><Salesoffice> I need to know the toll;
<Sales office><Salesoffice> I want to know the toll fee
<Sales office><Salesoffice> I want to know the toll fee
<Sales office><Salesoffice> I want to know the toll fee;
<Sales office><Salesoffice> I want to know about tolls
<Sales office><Salesoffice> I want to know about tolls;
<Sales office><Salesoffice>I'm curious about the toll fee;
<Sales office><Salesoffice> I am curious about the toll fee
<Sales office><Salesoffice> I am curious about the toll fee
<Sales office><Salesoffice> I am curious about the toll fee
<Sales office><Salesoffice>I'm curious about the toll;
<Sales office><Salesoffice> I am curious about the toll;
<Sales office><Salesoffice>I'm curious about the toll fee;
<Sales office><Salesoffice> I am curious about the toll fee
<Sales office><Salesoffice> I am curious about the toll fee
<Sales office><Salesoffice> I am curious about the toll fee
<Sales office><Salesoffice>I'm curious about the toll;
<Sales office><Salesoffice> Curious about the toll;
<Sales office><Salesoffice> Please tell me the toll fee;
<Sales office><Salesoffice> Please tell me the toll in detail;
<Sales office><Salesoffice> Can you tell me the toll fee?
<Sales office><Salesoffice> Tell me about the toll
<Sales office><Salesoffice> Tell me about the toll;
<Sales office><Salesoffice> I want to know the toll
<Sales office><Salesoffice> I want to know the toll;
<Sales office><Salesoffice> I need to know the toll;
<Sales office><Salesoffice> I want to know the toll fee
<Sales office><Salesoffice> I want to know the toll fee
<Sales office><Salesoffice> I want to know the toll fee;
...

표 6은 표 5의 첫번째 패턴 '<영업소> <영업소> 통행료 알고 싶거든요'에 대해서 <영업소> 엔티티들을 확장한 최종 결과물의 일부를 보여준다. 표 6과 같이 생성된 최종 결과물이 챗봇 학습용 데이터로서 챗봇 학습에 사용될 수 있다.Table 6 shows a part of the final result of expanding the <sales office> entities for the first pattern '<sales office> <sales office> I want to know the toll fee of Table 5. The final result generated as shown in Table 6 can be used for chatbot training as data for chatbot training.

서울 부산 통행료 알고 싶거든요;
서울 광주 통행료 알고 싶거든요;
서울 대구 통행료 알고 싶거든요;
서울 대전 통행료 알고 싶거든요;
서울 수원 통행료 알고 싶거든요;
서울 전주 통행료 알고 싶거든요;
서울 춘천 통행료 알고 싶거든요;
서울 충주 통행료 알고 싶거든요;
...
I want to know the Seoul Busan toll;
I want to know the Seoul and Gwangju tolls;
I want to know the Seoul-Daegu toll;
I want to know the Seoul Daejeon toll;
I want to know the Seoul Suwon toll;
I want to know the tolls in Jeonju, Seoul;
I want to know the Seoul Chuncheon toll;
I want to know the tolls in Chungju, Seoul;
...

이상 설명한 것처럼, 본 발명에 따르면 챗봇이 필요로 하는 다양한 학습용 데이터를 보다 간편하고 정확하게 생성할 수 있다.As described above, according to the present invention, it is possible to more simply and accurately generate various learning data required by the chatbot.

이상, 본 발명을 몇가지 예를 들어 설명하였으나, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 또한, 주파수 도메인에서 수행되는 것으로 설명된 동작을 시간 도메인에서 수행되도록 수정하거나, 시간 도메인에서 수행되는 것으로 설명된 동작을 주파수 도메인에서 수행되도록 수정하여 구현하는 것도 가능하다.As mentioned above, although the present invention has been described with several examples, the present invention is not necessarily limited to these embodiments, even though it has been described that all components constituting the embodiment of the present invention are combined or operated as one. That is, within the scope of the object of the present invention, all the components may operate by selectively combining one or more. In addition, although all of the components may be implemented as one independent hardware, some or all of the components are selectively combined to perform some or all of the functions of one or a plurality of hardware programs module It may be implemented as a computer program having Codes and code segments constituting the computer program can be easily inferred by those skilled in the art of the present invention. Such a computer program is stored in a computer readable storage medium (Computer Readable Media), read and executed by the computer, thereby implementing the embodiment of the present invention. In addition, it is also possible to implement an operation described as being performed in the frequency domain by modifying it to be performed in the time domain, or by modifying the operation described as being performed in the time domain to be performed in the frequency domain.

이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. Terms such as "include", "comprise" or "have" described above mean that the corresponding component may be inherent unless otherwise stated, so it does not exclude other components. It should be construed as being able to further include other components.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical spirit of the present invention, and various modifications and variations will be possible without departing from the essential characteristics of the present invention by those skilled in the art to which the present invention pertains. Accordingly, the embodiments disclosed in the present invention are not intended to limit the technical spirit of the present invention, but to explain, and the scope of the technical spirit of the present invention is not limited by these embodiments. The protection scope of the present invention should be construed by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

110 원문 분석기,
120 학습 데이터 편집기,
130 학습 데이터 생성기,
140 데이터베이스.
110 text analyzer,
120 training data editor,
130 training data generator,
140 database.

Claims (6)

원문 분석기가 문장의 형태소를 분석하고 내용어를 추출하여 내용어 DB에 등록하는 분석 및 내용어 추출 단계;
학습 데이터 편집기가, 문장의 의도로 나타내는 인텐트를 추가하거나 기존 인텐트에 새로운 문장 추가 또는 기존 문장 수정을 할 수 있는 화면을 제공하고, 각 인텐트에 대해서 해당 인텐트에 포함되는 문장들을 인텐트 DB에 등록하는 인텐트 편집 단계;
학습 데이터 편집기가, 독립된 의미를 갖는 엔티티를 추가하거나 정정하고 각 엔티티에 대해서 해당 엔티티에 포함되는 내용어를 추가할 수 있는 화면을 제공하고, 입력된 내용어를 포함하는 엔티티를 엔티티 DB에 등록하는 엔티티 편집 단계;
학습 데이터 편집기가 각 인텐트에 대해서 엔티티와 용언을 포함하는 패턴으로 표현되는 반복관용어구를 편집할 수 있는 화면을 제공하고, 편집된 패턴을 패턴 DB에 등록하는 반복관용어구 편집 단계;
학습 데이터 생성기가 내용어 DB, 인텐트 DB, 엔티티 DB, 패턴 DB에 등록된 내용어, 인텐트, 엔티티, 패턴을 사용하여 학습용 데이터를 생성하는 학습용 데이터 생성 단계
를 구비하며,
상기 학습용 데이터 생성 단계는,
편집된 패턴들이 저장되어 있는 상기 패턴 DB에서 하나의 패턴을 읽어오는 단계와,
읽어온 패턴에 포함되어 있는 각 엔티티에 포함되는 내용어들을 상기 엔티티 DB에서 읽어와서 패턴 내의 각 엔티티 위치에 대치하는 단계
를 각 패턴에 대해서 수행하는 것인, 챗봇 학습용 데이터 생성 방법.
An analysis and content word extraction step in which the source text analyzer analyzes the morpheme of the sentence, extracts the content word, and registers it in the content word DB;
The training data editor provides a screen for adding an intent indicated by the intent of the sentence, adding a new sentence to an existing intent, or modifying an existing sentence, and for each intent, the sentences included in the corresponding intent are selected as the intent. Intent editing step to register in DB;
The learning data editor adds or corrects entities with independent meanings, provides a screen for adding content words included in the corresponding entities for each entity, and registers entities including the input content words in the entity DB. an entity editing step;
a repeating idiom editing step in which the learning data editor provides a screen for editing repeated idioms expressed as patterns including entities and verbs for each intent, and registering the edited pattern in a pattern DB;
Training data generation step in which the training data generator generates training data using content words, intents, entities, and patterns registered in the content word DB, intent DB, entity DB, and pattern DB
is provided,
The step of generating the data for learning is,
Reading one pattern from the pattern DB in which the edited patterns are stored;
Reading content words included in each entity included in the read pattern from the entity DB and replacing each entity position in the pattern
is performed for each pattern, a method of generating data for chatbot learning.
제1항에 있어서,
상기 엔티티 편집 단계는, 하나의 엔티티에 복수의 엔트리를 등록하거나, 하나의 엔티티에 복수의 엔티티들을 등록하는 단계를 포함하는, 챗봇 학습용 데이터 생성 방법.
According to claim 1,
The editing of the entity includes registering a plurality of entries in one entity or registering a plurality of entities in one entity.
제1항에 있어서,
상기 엔티티에는 용언이 포함되며,
상기 엔티티 편집 단계는, 용언 엔티티에 대해서는 각 용언의 활용형을 해당 엔티티의 엔트리로서 등록하는 단계를 포함하는, 챗봇 학습용 데이터 생성 방법.
According to claim 1,
The entity includes a verb,
The entity editing step includes, for a verb entity, registering a conjugation of each verb as an entry of the corresponding entity.
제3항에 있어서,
각 용언 엔티티는 평서문, 의문문, 명령문으로 구분되는,
챗봇 학습용 데이터 생성 방법.
4. The method of claim 3,
Each verb entity is divided into declarative sentences, interrogative sentences, and imperative sentences.
How to generate data for training chatbot.
제1항에 있어서, 상기 문장 분석 및 내용어 추출 단계는,
추출된 내용어를 표시하고 사용자가 수정할 수 있는 도구를 제공하는 단계와,
수정한 내용어를 저장하는 단계
를 포함하는 챗봇 학습용 데이터 생성 방법.




According to claim 1, wherein the step of analyzing the sentence and extracting the content word,
Displaying the extracted content words and providing a tool for the user to modify;
Step to save the edited content word
A method of generating data for training a chatbot comprising a.




삭제delete
KR1020190159001A 2019-12-03 2019-12-03 Method for generating chatbot training data KR102381387B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190159001A KR102381387B1 (en) 2019-12-03 2019-12-03 Method for generating chatbot training data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190159001A KR102381387B1 (en) 2019-12-03 2019-12-03 Method for generating chatbot training data

Publications (2)

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

Family

ID=76376552

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190159001A KR102381387B1 (en) 2019-12-03 2019-12-03 Method for generating chatbot training data

Country Status (1)

Country Link
KR (1) KR102381387B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230036502A (en) 2021-09-07 2023-03-14 한일네트웍스(주) Method for generating training data using auto training machine of chatbot

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019142427A1 (en) * 2018-01-16 2019-07-25 ソニー株式会社 Information processing device, information processing system, information processing method, and program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140042994A (en) * 2012-09-28 2014-04-08 한국전자통신연구원 Machine learning based of artificial intelligence conversation system using personal profiling information to be extracted automatically from the conversation contents with the virtual agent
KR101590908B1 (en) * 2013-12-24 2016-02-03 서강대학교산학협력단 Method of learning chatting data and system thereof
KR101872863B1 (en) * 2016-11-24 2018-07-02 주식회사 와이즈넛 Business support method using a chatting bot

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019142427A1 (en) * 2018-01-16 2019-07-25 ソニー株式会社 Information processing device, information processing system, information processing method, and program

Also Published As

Publication number Publication date
KR20210069333A (en) 2021-06-11

Similar Documents

Publication Publication Date Title
US11816438B2 (en) Context saliency-based deictic parser for natural language processing
US11086601B2 (en) Methods, systems, and computer program product for automatic generation of software application code
Gu et al. " what parts of your apps are loved by users?"(T)
US9910886B2 (en) Visual representation of question quality
Schultz et al. Multilingual speech processing
US9524291B2 (en) Visual display of semantic information
CN100489841C (en) Method and integrated development tool for building a natural language understanding application
WO2017015231A1 (en) Natural language processing system and method
CN104933081A (en) Search suggestion providing method and apparatus
US20040111255A1 (en) Graph-based method for design, representation, and manipulation of NLU parser domains
Maynard et al. Towards a semantic extraction of named entities
KR20070094402A (en) Method and system for automatically completed general recommended word and advertisement recommended word
KR20200032893A (en) Communication information processing system for chat bot service and control method thereof
JP6663826B2 (en) Computer and response generation method
JP7297458B2 (en) Interactive content creation support method
Ahn et al. What code-switching strategies are effective in dialogue systems?
JP2009140466A (en) Method and system for providing conversation dictionary services based on user created dialog data
Alhassan et al. A novel framework for Arabic dialect chatbot using machine learning
KR102206781B1 (en) Method of fake news evaluation based on knowledge-based inference, recording medium and apparatus for performing the method
KR102381387B1 (en) Method for generating chatbot training data
Banerjee et al. Generating abstractive summaries from meeting transcripts
WO2010142422A1 (en) A method for inter-lingual electronic communication
KR102182248B1 (en) System and method for checking grammar and computer program for the same
Zaghouani et al. Can crowdsourcing be used for effective annotation of arabic?
Spinner et al. Revealing the Unwritten: Visual Investigation of Beam Search Trees to Address Language Model Prompting Challenges

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