KR102261199B1 - Method, system and computer program for artificial intelligence answer - Google Patents

Method, system and computer program for artificial intelligence answer Download PDF

Info

Publication number
KR102261199B1
KR102261199B1 KR1020200076781A KR20200076781A KR102261199B1 KR 102261199 B1 KR102261199 B1 KR 102261199B1 KR 1020200076781 A KR1020200076781 A KR 1020200076781A KR 20200076781 A KR20200076781 A KR 20200076781A KR 102261199 B1 KR102261199 B1 KR 102261199B1
Authority
KR
South Korea
Prior art keywords
query
user
engine
user query
question
Prior art date
Application number
KR1020200076781A
Other languages
Korean (ko)
Other versions
KR20200083404A (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
Priority claimed from KR1020180112488A external-priority patent/KR102128549B1/en
Application filed by 주식회사 포티투마루 filed Critical 주식회사 포티투마루
Priority to KR1020200076781A priority Critical patent/KR102261199B1/en
Publication of KR20200083404A publication Critical patent/KR20200083404A/en
Application granted granted Critical
Publication of KR102261199B1 publication Critical patent/KR102261199B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3337Translation of the query language, e.g. Chinese to English
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3338Query expansion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • 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/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

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

Abstract

본 발명의 일 실시예에 따르면, 사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신부; 사용자 질의를 분석하여 질문 템플릿을 생성하고, 상기 사용자 질의와 상기 생성된 질문 템플릿이 일치하는지 여부를 판단하는 제1 질의 확장부; 상기 사용자 질의와 상기 생성된 질문 템플릿이 일치하지 않는 경우, 자연어 처리 및 딥러닝 모델을 사용하여 유사 질문 템플릿을 생성하는 제2 질의 확장부; 상기 제2 질의 확장부를 학습(training)시키기 위한 학습 데이터를 NMT(Neural Machine Translation) 엔진을 이용하여 생성하는 학습 데이터 구축부; 및 상기 제1 질의 확장부 또는 상기 제2 질의 확장부를 통해 도출된 사용자 질의 결과를 상기 사용자 단말로 전달하는 질의 응답부; 를 포함하는 인공 지능 질의 응답 시스템이 제공된다.According to an embodiment of the present invention, a user query receiving unit for receiving a user query from a user terminal; a first query extension unit that generates a question template by analyzing a user query, and determines whether the user query and the generated question template match; a second query extension unit for generating a similar question template using a natural language processing and deep learning model when the user query and the generated question template do not match; a training data construction unit generating training data for training the second query extension unit using a Neural Machine Translation (NMT) engine; and a query response unit transmitting a user query result derived through the first query expansion unit or the second query expansion unit to the user terminal. There is provided an artificial intelligence question and answer system comprising a.

Figure R1020200076781
Figure R1020200076781

Description

인공 지능 질의 응답 시스템, 방법 및 컴퓨터 프로그램 {METHOD, SYSTEM AND COMPUTER PROGRAM FOR ARTIFICIAL INTELLIGENCE ANSWER}AI Q&A SYSTEM, METHOD AND COMPUTER PROGRAM {METHOD, SYSTEM AND COMPUTER PROGRAM FOR ARTIFICIAL INTELLIGENCE ANSWER}

본 발명은 인공 지능 질의 응답 시스템, 방법 및 컴퓨터 프로그램에 관한 것으로, 보다 상세하게는 자연어 기반의 문장을 정확하게 이해하고 의도에 맞는 검색 결과를 제공하기 위하여 NMT 엔진을 이용하여 학습 데이터를 구축하고 패러프레이징 엔진을 학습하는 인공 지능 질의 응답 시스템, 방법 및 컴퓨터 프로그램에 관한 것이다.The present invention relates to an artificial intelligence question-and-answer system, method, and computer program, and more particularly, to construct and paraphrase learning data using an NMT engine in order to accurately understand natural language-based sentences and provide search results that fit the intention. It relates to an artificial intelligence question-and-answer system, method and computer program learning engine.

자연어로 표현되는 데이터를 다루는 다양한 응용 서비스를 구현하기 위해서는 언어학적 지식, 언어별 구조적 지식 및 언어의 복잡한 자질을 이해하고 엔지니어링 하는 과정이 필요하기 때문에, 새로운 언어나 도메인 추가 등의 작업을 하는데 진입장벽이 존재한다.In order to implement various application services that deal with data expressed in natural language, it is necessary to understand and engineer linguistic knowledge, structural knowledge for each language, and the complex qualities of a language. Therefore, there are barriers to entry to work such as adding a new language or domain. this exists

특히, 전통적인 NLU(Natural Language Understanding) 방식은 사람이 직접 추출 한(hand-crafted) 특징에 강하게 의존하는 특성이 있다. 이 때문에, 특징 추출에 시간이 많이 소요되고, 새로운 패턴이나 오타, 맞춤법 오류 등 여러 다양한 경우에 대처하지 못하는 한계가 존재한다.In particular, the traditional NLU (Natural Language Understanding) method strongly relies on hand-crafted features. For this reason, it takes a lot of time to extract the features, and there is a limit in that it cannot cope with various cases such as new patterns, typos, and spelling errors.

이런 문제를 해결하기 위해, 딥러닝 기반의 NLU 처리 방식이 최근 고려되고 있다. 딥러닝 기반의 NLU 방식은 데이터로부터 자질(Feature)을 자동으로 학습하는 방식으로, 기존보다 폭넓은 문맥 정보 처리가 가능한 장점을 가지고 있다. 이를 통해, 기존에 학습하지 않았던 신조어나 오타에도 전통적인 규칙/통계 기반의 NLU와 비교하여 강건(robust)하여, 기존의 전통적인 NLU의 단점을 일정부분 보완할 수 있다.To solve this problem, a deep learning-based NLU processing method is being considered recently. The deep learning-based NLU method is a method that automatically learns features from data, and has the advantage of being able to process a wider range of contextual information than before. Through this, even new words or typos that have not been learned before are robust compared to traditional rule/statistics-based NLU, and some disadvantages of the existing traditional NLU can be supplemented.

한편, 음성인식 스피커를 필두로 한 스마트 머신 보급 확대, 인공지능 기술의 발전에 따라 정보 검색 방식이 기존 키워드 입력 기반, 문서 리스트를 확인했던 기존의 검색 방법에서 자연어 기반의 문장 입력, 구체적인 응답 형태로 검색의 트렌드가 변화하고 있다.On the other hand, with the expansion of smart machines led by voice recognition speakers and the development of artificial intelligence technology, the information retrieval method has changed from the existing search method based on keyword input and checking the document list to natural language based sentence input and specific response form. Trends in search are changing.

KR 10-1851787 B1KR 10-1851787 B1

본 발명은 자연어 기반의 문장을 정확하게 이해하고 의도에 맞는 검색 결과를 제공하는 것을 일 목적으로 한다.An object of the present invention is to accurately understand natural language-based sentences and provide search results that match the intention.

본 발명은 NMT 엔진을 이용하여 학습 데이터를 구축하고 패러프레이징 엔진을 학습하여 검색의 정확도를 높이는 것을 다른 목적으로 한다.Another object of the present invention is to increase the accuracy of a search by constructing learning data using an NMT engine and learning a paraphrase engine.

본 발명의 일 실시예에 따르면 사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신부; 사용자 질의를 분석하여 질문 템플릿을 생성하고, 상기 사용자 질의와 상기 생성된 질문 템플릿이 일치하는지 여부를 판단하는 제1 질의 확장부; 상기 사용자 질의와 상기 생성된 질문 템플릿이 일치하지 않는 경우, 자연어 처리 및 딥러닝 모델을 사용하여 유사 질문 템플릿을 생성하는 제2 질의 확장부; 상기 제2 질의 확장부를 학습(training)시키기 위한 학습 데이터를 NMT(Neural Machine Translation) 엔진을 이용하여 생성하는 학습 데이터 구축부; 및 상기 제1 질의 확장부 또는 상기 제2 질의 확장부를 통해 도출된 사용자 질의 결과를 상기 사용자 단말로 전달하는 질의 응답부; 를 포함하는 인공 지능 질의 응답 시스템이 제공된다.According to an embodiment of the present invention, a user query receiving unit for receiving a user query from a user terminal; a first query extension unit that generates a question template by analyzing a user query, and determines whether the user query and the generated question template match; a second query extension unit for generating a similar question template using a natural language processing and deep learning model when the user query and the generated question template do not match; a training data construction unit generating training data for training the second query extension unit using a Neural Machine Translation (NMT) engine; and a query response unit transmitting a user query result derived through the first query expansion unit or the second query expansion unit to the user terminal. There is provided an artificial intelligence question and answer system comprising a.

본 발명에 있어서, 상기 질문 템플릿 및 상기 유사 질문 템플릿은 엔티티(Entity), 어트리뷰트(attribute) 및 즉답(instant answer) 로 이루어진 시맨틱 트리플(semantic triple) 기반의 질문 템플릿일 수 있다.In the present invention, the question template and the similar question template may be a semantic triple-based question template consisting of an entity, an attribute, and an instant answer.

본 발명에 있어서, 상기 학습 데이터 구축부는, 상기 NMT 엔진을 사용하여 한국어인 제1 문장을 특정 외국어로 번역하고, 특정 외국어로 번역한 제1 문장을 다시 한국어로 번역하여 제2 문장을 획득하며, 생성된 제2 문장을 학습 데이터로 구축할 수 있다.In the present invention, the learning data construction unit, using the NMT engine to translate a first sentence in Korean into a specific foreign language, and to obtain a second sentence by translating the first sentence translated into the specific foreign language back into Korean, The generated second sentence may be constructed as learning data.

본 발명에 있어서, 상기 제2 질의 확장부는, 상기 사용자 질의를 자연어 처리하는 자연어 확장 모듈; 및In the present invention, the second query expansion unit includes: a natural language expansion module for natural language processing of the user query; and

상기 자연어 처리된 사용자 질의를 패러프레이징(paraphrasing)을 통해 유사 질문 템플릿을 생성하는 패러프레이징 엔진; 을 포함할 수 있다.a paraphrasing engine that generates a similar question template through paraphrasing of the natural language-processed user query; may include.

본 발명에 있어서, 상기 사용자 질의와 상기 생성된 질문 템플릿이 일치하지 않는 경우, 상기 생성된 질문 템플릿에 대응하는 즉답을 상기 사용자 단말에 제공할 수 있다.In the present invention, when the user query and the generated question template do not match, an immediate answer corresponding to the generated question template may be provided to the user terminal.

본 발명의 일 실시예에 따르면, 사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신 단계; 사용자 질의를 분석하여 질문 템플릿을 생성하고, 상기 사용자 질의와 상기 생성된 질문 템플릿이 일치하는지 여부를 판단하는 제1 질의 확장 단계; 상기 사용자 질의와 상기 생성된 질문 템플릿이 일치하지 않는 경우, 자연어 처리 및 딥러닝 모델을 사용하여 유사 질문 템플릿을 생성하는 제2 질의 확장 단계; 상기 제2 질의 확장부를 학습(training)시키기 위한 학습 데이터를 NMT(Neural Machine Translation) 엔진을 이용하여 생성하는 학습 데이터 구축 단계; 및 상기 제1 질의 확장 단계 또는 상기 제2 질의 확장 단계를 통해 도출된 사용자 질의 결과를 상기 사용자 단말로 전달하는 질의 응답 단계; 를 포함하는 인공 지능 질의 응답 방법이 제공된다.According to an embodiment of the present invention, a user query receiving step of receiving a user query from a user terminal; a first query expansion step of generating a question template by analyzing a user query, and determining whether the user query and the generated question template match; a second query expansion step of generating a similar question template using a natural language processing and deep learning model when the user query and the generated question template do not match; a training data construction step of generating training data for training the second query extension unit using a Neural Machine Translation (NMT) engine; and a query response step of delivering a user query result derived through the first query expansion step or the second query expansion step to the user terminal; There is provided an artificial intelligence question and answer method comprising a.

본 발명에 있어서, 상기 질문 템플릿 및 상기 유사 질문 템플릿은 엔티티(Entity), 어트리뷰트(attribute) 및 즉답(instant answer) 로 이루어진 시맨틱 트리플(semantic triple) 기반의 질문 템플릿일 수 있다.In the present invention, the question template and the similar question template may be a semantic triple-based question template consisting of an entity, an attribute, and an instant answer.

본 발명에 있어서, 상기 학습 데이터 구축 단계는, 상기 NMT 엔진을 사용하여 한국어인 제1 문장을 특정 외국어로 번역하고, 특정 외국어로 번역한 제1 문장을 다시 한국어로 번역하여 제2 문장을 획득하며, 생성된 제2 문장을 학습 데이터로 구축할 수 있다.In the present invention, the step of constructing the learning data includes translating a first sentence in Korean into a specific foreign language using the NMT engine, and translating the first sentence translated into a specific foreign language back into Korean to obtain a second sentence, , the generated second sentence may be constructed as learning data.

본 발명에 있어서, 상기 제2 질의 확장 단계는, 상기 사용자 질의를 자연어 처리하는 자연어 확장 모듈; 및 상기 자연어 처리된 사용자 질의를 패러프레이징(paraphrasing)을 통해 유사 질문 템플릿을 생성하는 패러프레이징 엔진; 을 포함할 수 있다.In the present invention, the second query expansion step comprises: a natural language expansion module for natural language processing of the user query; and a paraphrasing engine that generates a similar question template by paraphrasing the natural language-processed user query. may include.

본 발명에 있어서, 상기 사용자 질의와 상기 생성된 질문 템플릿이 일치하지 않는 경우, 상기 생성된 질문 템플릿에 대응하는 즉답을 상기 사용자 단말에 제공할 수 있다.In the present invention, when the user query and the generated question template do not match, an immediate answer corresponding to the generated question template may be provided to the user terminal.

본 발명의 일 실시예에 따르면 사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신부; 패러프레이징 엔진을 사용하여 상기 사용자 질의의 유사 질문 템플릿을 생성하는 질의 확장부; 상기 질의 확장부를 학습(training)시키기 위한 학습 데이터를 NMT(Neural Machine Translation) 엔진을 이용하여 생성하는 학습 데이터 구축부;를 포함하고, 상기 학습 데이터 구축부는, 상기 NMT 엔진을 사용하여 한국어인 제1 문장을 특정 외국어로 번역하고, 특정 외국어로 번역한 제1 문장을 다시 한국어로 번역하여 제2 문장을 획득하며, 생성된 제2 문장을 학습 데이터로 구축하는, 인공 지능 질의 응답 시스템이 제공된다.According to an embodiment of the present invention, a user query receiving unit for receiving a user query from a user terminal; a query extension unit for generating a similar question template of the user query using a paraphrase engine; and a training data construction unit that generates training data for training the query expansion unit using a Neural Machine Translation (NMT) engine, wherein the training data construction unit includes a first Korean language using the NMT engine. An artificial intelligence question and answer system is provided that translates a sentence into a specific foreign language, translates a first sentence translated into a specific foreign language back into Korean, obtains a second sentence, and builds the generated second sentence as learning data.

본 발명의 일 실시예에 따르면, 사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신부; 패러프레이징 엔진을 사용하여 상기 사용자 질의의 유사 질문 템플릿을 생성하는 질의 확장부; 상기 질의 확장부를 학습(training)시키기 위한 학습 데이터를 NMT(Neural Machine Translation) 엔진을 이용하여 생성하는 학습 데이터 구축부;를 포함하고, 상기 학습 데이터 구축부는, 상기 NMT 엔진을 사용하여 한국어인 제1 문장을 특정 외국어로 번역하고, 특정 외국어로 번역한 제1 문장을 다시 한국어로 번역하여 제2 문장을 획득하며, 생성된 제2 문장을 학습 데이터로 구축하는, 인공 지능 질의 응답 시스템이 제공된다.According to an embodiment of the present invention, a user query receiving unit for receiving a user query from a user terminal; a query extension unit for generating a similar question template of the user query using a paraphrase engine; and a training data construction unit that generates training data for training the query expansion unit using a Neural Machine Translation (NMT) engine, wherein the training data construction unit includes a first Korean language using the NMT engine. An artificial intelligence question and answer system is provided that translates a sentence into a specific foreign language, translates a first sentence translated into a specific foreign language back into Korean, obtains a second sentence, and builds the generated second sentence as learning data.

본 발명에 있어서, 상기 유사 질문 템플릿은 엔티티(Entity), 어트리뷰트(attribute) 및 즉답(instant answer) 로 이루어진 시맨틱 트리플(semantic triple) 기반의 질문 템플릿일 수 있다. In the present invention, the similar question template may be a semantic triple-based question template consisting of an entity, an attribute, and an instant answer.

본 발명의 일 실시예에 따르면 사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신 단계; 패러프레이징 엔진을 사용하여 상기 사용자 질의의 유사 질문 템플릿을 생성하는 질의 확장 단계; 상기 질의 확장부를 학습(training)시키기 위한 학습 데이터를 NMT(Neural Machine Translation) 엔진을 이용하여 생성하는 학습 데이터 구축 단계;를 포함하고, 상기 학습 데이터 구축 단계는, 상기 NMT 엔진을 사용하여 한국어인 제1 문장을 특정 외국어로 번역하고, 특정 외국어로 번역한 제1 문장을 다시 한국어로 번역하여 제2 문장을 획득하며, 생성된 제2 문장을 학습 데이터로 구축하는, 인공 지능 질의 응답 방법일 수 있다.According to an embodiment of the present invention, a user query receiving step of receiving a user query from a user terminal; a query expansion step of generating a similar question template of the user query using a paraphrase engine; and a training data construction step of generating training data for training the query expansion unit using a Neural Machine Translation (NMT) engine, wherein the training data construction step is performed in Korean using the NMT engine. It may be an artificial intelligence question answering method in which one sentence is translated into a specific foreign language, the first sentence translated into the specific foreign language is translated back into Korean to obtain a second sentence, and the generated second sentence is constructed as learning data. .

본 발명에 있어서, 상기 유사 질문 템플릿은 엔티티(Entity), 어트리뷰트(attribute) 및 즉답(instant answer) 로 이루어진 시맨틱 트리플(semantic triple) 기반의 질문 템플릿일 수 있다.In the present invention, the similar question template may be a semantic triple-based question template consisting of an entity, an attribute, and an instant answer.

본 발명의 일 실시예에 따르면 사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신부; 패러프레이징 엔진을 사용하여 상기 사용자 질의의 유사 질문 템플릿을 생성하는 질의 확장부; 상기 질의 확장부를 학습(training)시키기 위한 학습 데이터를 NMT(Neural Machine Translation) 엔진을 이용하여 생성하는 학습 데이터 구축부;를 포함하고, 상기 학습 데이터 구축부는, 상기 신경망 기반의 NMT 엔진으로 사용자 로그 데이터를 번역 및 재번역하여 학습 데이터를 생성하는 NMT 엔진 관리부; 및 상기 NMT 엔진 관리부에 의해 생성된 학습 데이터를 저장하고, 상기 생성된 학습 데이터를 이용하여 상기 패러프레이징 엔진에 적용될 수 있는 패러프레이징 모델의 학습을 진행하고, 상기 패러프레이징 모델을 테스트 및 검증하는 학습 데이터 관리부; 를 포함할 수 있다.According to an embodiment of the present invention, a user query receiving unit for receiving a user query from a user terminal; a query extension unit for generating a similar question template of the user query using a paraphrase engine; and a training data construction unit that generates training data for training the query expansion unit using a Neural Machine Translation (NMT) engine, wherein the training data construction unit includes, in the neural network-based NMT engine, user log data NMT engine management unit for generating learning data by translating and re-translating; and learning to store the learning data generated by the NMT engine management unit, and to learn a paraphrase model that can be applied to the paraphrase engine using the generated learning data, and to test and verify the paraphrase model. data management department; may include.

본 발명에 의하면, 자연어 기반의 문장을 정확하게 이해하고 의도에 맞는 검색 결과를 제공할 수 있다.According to the present invention, it is possible to accurately understand a natural language-based sentence and provide a search result suitable for an intention.

본 발명에 의하면, 기존의 NMT 엔진을 이용하여 자동적으로 다량의 정확한 학습 데이터를 구축할 수 있다.According to the present invention, it is possible to automatically construct a large amount of accurate learning data using the existing NMT engine.

도 1 은 본 발명의 일 실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2 는 본 발명의 일 실시예에 있어서, 사용자 단말 및 서버의 내부 구성을 설명하기 위한 블록도이다.
도 3 은 시맨틱 트리플 기반의 검색 결과를 설명하기 위한 것이다.
도 4 는 시맨틱 트리플 기반의 검색 수행의 일 예를 도시한다.
도 5는 본 발명의 일 실시예에 따른 프로세서의 내부 구성을 나타낸 것이다.
도 6 는 본 발명의 일 실시예에 따른 인공지능 질의 응답 방법을 시계열적으로 나타낸 도면이다.
도 7 은 본 발명의 일 실시예에 따른 인공 지능 질의 응답 시스템의 전체적인 구조를 나타낸 도면이다.
도 8 은 본 발명의 일 실시예에 따라 학습 데이터 및 패러프레이징 모델을 구축하는 것을 설명하기 위한 도면이다.
1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
2 is a block diagram illustrating the internal configuration of a user terminal and a server according to an embodiment of the present invention.
3 is for explaining a search result based on a semantic triple.
4 shows an example of performing a search based on a semantic triple.
5 shows an internal configuration of a processor according to an embodiment of the present invention.
6 is a time-series diagram illustrating an artificial intelligence question answering method according to an embodiment of the present invention.
7 is a diagram illustrating the overall structure of an artificial intelligence question and answer system according to an embodiment of the present invention.
8 is a diagram for explaining the construction of training data and a paraphrase model according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 구성요소를 나타낸다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0010] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0010] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0023] Reference is made to the accompanying drawings, which show by way of illustration specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the present invention. It should be understood that the various embodiments of the present invention are different but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein may be implemented with changes from one embodiment to another without departing from the spirit and scope of the present invention. In addition, it should be understood that the location or arrangement of individual components within each embodiment may be changed without departing from the spirit and scope of the present invention. Accordingly, the following detailed description is not to be taken in a limiting sense, and the scope of the present invention should be taken as encompassing the scope of the claims and all equivalents thereto. In the drawings, like reference numerals refer to the same or similar elements throughout the various aspects.

도 1 은 본 발명의 일 실시예에 따른 네트워크 환경의 예를 도시한 도면이다.1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.

도 1의 네트워크 환경은 복수의 사용자 단말들(110, 120, 130, 140), 서버(150) 및 네트워크(160)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 사용자 단말의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다. The network environment of FIG. 1 shows an example including a plurality of user terminals 110 , 120 , 130 , 140 , a server 150 , and a network 160 . 1 is an example for the description of the invention, and the number of user terminals or the number of servers is not limited as in FIG. 1 .

복수의 사용자 단말들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 사용자 단말들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 사용자 단말 1(110)은 무선 또는 유선 통신 방식을 이용하여 네트워크(160)를 통해 다른 사용자 단말들(120, 130, 140) 및/또는 서버(150)와 통신할 수 있다.The plurality of user terminals 110 , 120 , 130 , and 140 may be a fixed terminal implemented as a computer device or a mobile terminal. Examples of the plurality of user terminals 110 , 120 , 130 , and 140 include a smart phone, a mobile phone, a navigation device, a computer, a notebook computer, a digital broadcasting terminal, a personal digital assistant (PDA), and a portable multimedia player (PMP). ), and tablet PCs. For example, the user terminal 11 10 may communicate with other user terminals 120 , 130 , 140 and/or the server 150 through the network 160 using a wireless or wired communication method.

통신 방식은 제한되지 않으며, 네트워크(160)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(160)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(160)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The communication method is not limited, and not only a communication method using a communication network (eg, a mobile communication network, a wired Internet, a wireless Internet, a broadcasting network) that the network 160 may include, but also short-range wireless communication between devices may be included. For example, the network 160 may include a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), and a broadband network (BBN). , the Internet, and the like. In addition, the network 160 may include any one or more of a network topology including a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or a hierarchical network, etc. not limited

서버(150)는 복수의 사용자 단말들(110, 120, 130, 140)과 네트워크(160)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다.The server 150 is a computer device or a plurality of computer devices that communicates with a plurality of user terminals 110 , 120 , 130 , 140 and the network 160 to provide commands, codes, files, contents, services, etc. can be implemented.

일례로, 서버(150)는 네트워크(160)를 통해 접속한 사용자 단말 1(110)로 어플리케이션의 설치를 위한 파일을 제공할 수 있다. 이 경우 사용자 단말 1(110)은 서버(150)로부터 제공된 파일을 이용하여 어플리케이션을 설치할 수 있다. 또한 사용자 단말 1(110)이 포함하는 운영체제(Operating System, OS) 및 적어도 하나의 프로그램(일례로 브라우저나 설치된 어플리케이션)의 제어에 따라 서버(150)에 접속하여 서버(150)가 제공하는 서비스나 컨텐츠를 제공받을 수 있다. 예를 들어, 사용자 단말1(110)이 어플리케이션의 제어에 따라 네트워크(160)를 통해 컨텐츠 열람을 서버(150)로 전송하면, 서버(150)는 시맨틱 트리플 기반의 지식 확장 시스템을 이용한 유니크 인스턴트 응답을 사용자 단말 1(110)로 전송할 수 있고, 사용자 단말 1(110)은 어플리케이션의 제어에 따라 유니크 인스턴트 응답을 표시할 수 있다. 다른 예로, 서버(150)는 데이터 송수신을 위한 통신 세션을 설정하고, 설정된 통신 세션을 통해 복수의 사용자 단말들(110, 120, 130, 140)간의 데이터 송수신을 라우팅할 수도 있다.For example, the server 150 may provide a file for installing an application to the user terminal 1110 connected through the network 160 . In this case, the user terminal 1110 may install the application using the file provided from the server 150 . In addition, by accessing the server 150 under the control of an operating system (OS) and at least one program (eg, a browser or an installed application) included in the user terminal 1110, the service provided by the server 150 or content can be provided. For example, when the user terminal 1 110 transmits content viewing to the server 150 through the network 160 under the control of the application, the server 150 provides a unique instant response using a semantic triple-based knowledge expansion system. may be transmitted to the user terminal 1110, and the user terminal 1110 may display a unique instant response according to the control of the application. As another example, the server 150 may establish a communication session for data transmission/reception, and route data transmission/reception between the plurality of user terminals 110 , 120 , 130 , and 140 through the established communication session.

도 2 는 본 발명의 일 실시예에 있어서, 사용자 단말 및 서버의 내부 구성을 설명하기 위한 블록도이다.2 is a block diagram illustrating the internal configuration of a user terminal and a server according to an embodiment of the present invention.

도 2에서는 하나의 사용자 단말에 대한 예로서 사용자 단말 1(110), 그리고 하나의 서버에 대한 예로서 서버(150)의 내부 구성을 설명한다. 다른 사용자 단말들(120, 130, 140)들 역시 동일한 또는 유사한 내부 구성을 가질 수 있다.In FIG. 2 , the internal configuration of the user terminal 1110 as an example of one user terminal and the server 150 as an example of one server will be described. Other user terminals 120 , 130 , and 140 may also have the same or similar internal configuration.

사용자 단말 1(110)과 서버(150)는 메모리(211, 221), 프로세서(212, 222), 통신 모듈(213, 223) 그리고 입출력 인터페이스(214, 224)를 포함할 수 있다. 메모리(211, 221)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 또한, 메모리(211, 221)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 사용자 단말 1(110)에 설치되어 구동되는 브라우저나 상술한 어플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 드라이브 메커니즘(drive mechanism)을 이용하여 메모리(211, 221)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 통신 모듈(213, 223)을 통해 메모리(211, 221)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템(일례로 상술한 서버(150))이 네트워크(160)를 통해 제공하는 파일들에 의해 설치되는 프로그램(일례로 상술한 어플리케이션)에 기반하여 메모리(211, 221)에 로딩될 수 있다.The user terminal 1110 and the server 150 may include memories 211 and 221 , processors 212 and 222 , communication modules 213 and 223 , and input/output interfaces 214 and 224 . The memories 211 and 221 are computer-readable recording media and may include random access memory (RAM), read only memory (ROM), and permanent mass storage devices such as disk drives. In addition, an operating system and at least one program code (eg, a code for a browser installed and driven in the user terminal 1110 and the above-described application) may be stored in the memories 211 and 221 . These software components may be loaded from a computer-readable recording medium separate from the memories 211 and 221 using a drive mechanism. The separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, and a memory card. In another embodiment, the software components may be loaded into the memories 211 and 221 through the communication modules 213 and 223 instead of a computer-readable recording medium. For example, the at least one program is a program installed by files provided through the network 160 by a file distribution system (eg, the above-described server 150 ) that distributes the installation files of developers or applications (eg, the program installed). may be loaded into the memories 211 and 221 based on the above-described application).

프로세서(212, 222)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(211, 221) 또는 통신 모듈(213, 223)에 의해 프로세서(212, 222)로 제공될 수 있다. 예를 들어 프로세서(212, 222)는 메모리(211, 221)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The processors 212 and 222 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. The instructions may be provided to the processors 212 and 222 by the memories 211 and 221 or the communication modules 213 and 223 . For example, the processors 212 and 222 may be configured to execute received instructions according to program codes stored in a recording device such as the memories 211 and 221 .

통신 모듈(213, 223)은 네트워크(160)를 통해 사용자 단말 1(110)과 서버(150)가 서로 통신하기 위한 기능을 제공할 수 있으며, 다른 사용자 단말(일례로 사용자 단말 2(120)) 또는 다른 서버(일례로 서버(150))와 통신하기 위한 기능을 제공할 수 있다. 일례로, 사용자 단말 1(110)의 프로세서(212)가 메모리(211)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이 통신 모듈(213)의 제어에 따라 네트워크(160)를 통해 서버(150)로 전달될 수 있다. 역으로, 서버(150)의 프로세서(222)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 통신 모듈(223)과 네트워크(160)를 거쳐 사용자 단말 1(110)의 통신 모듈(213)을 통해 사용자 단말 1(110)로 수신될 수 있다. 예를 들어 통신 모듈(213)을 통해 수신된 서버(150)의 제어 신호나 명령 등은 프로세서(212)나 메모리(211)로 전달될 수 있고, 컨텐츠나 파일 등은 사용자 단말 1(110)이 더 포함할 수 있는 저장 매체로 저장될 수 있다.The communication modules 213 and 223 may provide a function for the user terminal 11 10 and the server 150 to communicate with each other through the network 160, and another user terminal (eg, the user terminal 2 120). Alternatively, a function for communicating with another server (eg, server 150 ) may be provided. For example, a request generated by the processor 212 of the user terminal 1110 according to a program code stored in a recording device such as the memory 211 is transmitted to the server ( 150) can be transferred. Conversely, a control signal, command, content, file, etc. provided under the control of the processor 222 of the server 150 passes through the communication module 223 and the network 160 to the communication module ( 213 may be received by the user terminal 1110 . For example, a control signal or command of the server 150 received through the communication module 213 may be transmitted to the processor 212 or the memory 211 , and contents or files may be transmitted to the user terminal 1110 by the user terminal 1110 . It may be stored as a storage medium that may further include.

입출력 인터페이스(214, 224)는 입출력 장치(215)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 어플리케이션의 통신 세션을 표시하기 위한 디스플레이와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(214)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 보다 구체적인 예로, 사용자 단말 1(110)의 프로세서(212)는 메모리(211)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 서버(150)나 사용자 단말 2(120)가 제공하는 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(214)를 통해 디스플레이에 표시될 수 있다.The input/output interfaces 214 and 224 may be means for interfacing with the input/output device 215 . For example, the input device may include a device such as a keyboard or mouse, and the output device may include a device such as a display for displaying a communication session of an application. As another example, the input/output interface 214 may be a means for an interface with a device in which functions for input and output are integrated into one, such as a touch screen. As a more specific example, the processor 212 of the user terminal 1110 is configured using data provided by the server 150 or the user terminal 2 120 in processing the command of the computer program loaded in the memory 211 . A service screen or content to be used may be displayed on the display through the input/output interface 214 .

또한, 다른 실시예들에서 사용자 단말 1(110) 및 서버(150)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 사용자 단말 1(110)은 상술한 입출력 장치(215) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.Also, in other embodiments, the user terminal 1110 and the server 150 may include more components than those of FIG. 2 . However, there is no need to clearly show most of the prior art components. For example, the user terminal 1110 is implemented to include at least a part of the above-described input/output device 215 or other components such as a transceiver, a global positioning system (GPS) module, a camera, various sensors, and a database. It may include more elements.

본 발명의 인공 지능 질의 응답 방법 및 시스템은 서버(150)에 의해 구현될 수 있으며, 보다 상세히 인공 지능 질의 응답방법은 서버(150)의 프로세서(222)가 처리하는 명령에 의해 구현될 수 있다.The artificial intelligence question answering method and system of the present invention may be implemented by the server 150 , and in more detail, the artificial intelligence question answering method may be implemented by a command processed by the processor 222 of the server 150 .

본 발명이 해결하고자 하는 과제는, 인공지능 질의응답 방법, 장치 및 프로그램을 제공함으로써 사용자의 다양한 질의에 대해 응답할 수 있는 시스템을 구축하는 것이다.The problem to be solved by the present invention is to construct a system capable of answering various queries from users by providing an artificial intelligence question answering method, apparatus, and program.

인공지능 스피커를 필두로 한 AI 기반의 스마트머신들의 대두로 인해, 기존의 포털 검색과 다른, QA(Question Answering) 검색이 등장하고 있으며, 정보 검색 및 입력 수단이 터치, 키워드 입력 등이 아닌, 음성으로 변화함에 따라, 기존 포털 검색의 키워드 기반 검색과 달리, 자연어 기반의 문장을 이해해야 할 필요성이 증대 되었다.Due to the rise of AI-based smart machines led by artificial intelligence speakers, QA (Question Answering) search, which is different from existing portal search, is emerging, and information search and input means are voice, not touch or keyword input. , unlike the keyword-based search of the existing portal search, the need to understand natural language-based sentences has increased.

이 때문에 자연어 기반의 문장을 정확히 이해하고 의도에 맞는 검색결과를 전달하기 위해서, 새로운 패턴이나 오타, 맞춤법 오류 등 여러 다양한 경우에도 대처 가능한 인공지능 기반의 질의응답 방법, 장치 및 프로그램이 필요하게 되었다.For this reason, in order to accurately understand natural language-based sentences and deliver search results that fit the intent, there is a need for an AI-based question-and-answer method, device and program that can cope with various cases such as new patterns, typos, and spelling errors.

본 발명은 상기 기술한 QA 검색 외에도 사용자의 의도를 파악하고 원하는 결과를 제공하는 모든 시스템에 응용 가능한 특성을 가지고 있어, 다양한 형태로 응용될 수 있다. 일례로, 지식 QA에서 정답으로 제공되는 instant answer 대신 Slot Filling 방식을 활용한다면, 사용자 의도에 따라 특정한 기능을 제공하는 API로 필요 정보를 제공하는 방식으로 응용 가능하다. 이를 통해, 본 발명은 홈 IoT, 스마트 토이/홈 로봇, 커넥티드 카 등의 다양한 범위에 사용될 수 있는, 활용 범위가 높은 기술이라 할 수 있겠다. 따라서, 이하의 명세서에서는 QA 검색 방식을 위주로 설명하지만, 본 발명은 반드시 여기에 한정되지 않으며, 적용 가능한 모든 시스템에 응용 가능하다.In addition to the above-described QA search, the present invention has characteristics applicable to all systems that identify user intentions and provide desired results, and thus can be applied in various forms. For example, if the slot filling method is used instead of the instant answer provided as an answer in knowledge QA, it can be applied as an API that provides a specific function according to the user's intention. Through this, the present invention can be said to be a technology with a high application range that can be used in various fields such as home IoT, smart toy/home robot, and connected car. Therefore, in the following specification, the QA search method will be mainly described, but the present invention is not necessarily limited thereto, and can be applied to all applicable systems.

먼저 본 발명을 본격적으로 설명하기 전에, 본 발명의 인공지능 질의 응답 방법과 기존 검색 엔진과의 차이점을 살펴보기로 한다. 본 발명의 일 실시예에 따른 인공지능 질의 응답 시스템은, 시맨틱 트리플 기반의 질문 템플릿을 이용하여 유니크 인스턴트 응답(Unique Instant Answer)을 제공할 수 있다. 본 발명의 인공지능 질의 응답 방법은 검색 결과를 문서 형태가 아닌, 유니크 인스턴트 응답(Unique Instant Answer), 즉 즉답 형태로 제공한다는 점에서 기존의 검색 엔진과 차이점이 존재할 수 있다. 또한, 본 발명의 인공지능 질의 응답 방법은 시맨틱 트리플 기반 검색 결과를 제공하기 위한 학습 데이터를 구축할 수 있다.First, before describing the present invention in earnest, let's look at the differences between the artificial intelligence question answering method of the present invention and the existing search engine. The artificial intelligence question and answer system according to an embodiment of the present invention may provide a unique instant answer by using a question template based on a semantic triple. The AI query answering method of the present invention may be different from the existing search engines in that the search results are not provided in the form of a document, but in the form of a unique instant answer, that is, an immediate answer. In addition, the artificial intelligence question and answer method of the present invention can construct learning data for providing a semantic triple-based search result.

도 3 은 시맨틱 트리플 기반의 검색 결과를 설명하기 위한 것이다.3 is for explaining a search result based on a semantic triple.

도 3 을 참조하면, 기존의 검색 엔진(As-Is, Searh)은 입력 방식이 키워드이고, 검색 결과로 문서리스트를 제공하고, 검색 플랫폼은 PC 혹은 모바일 에서 동작한다.Referring to FIG. 3 , an existing search engine (As-Is, Searh) uses a keyword as an input method, provides a document list as a search result, and a search platform operates on a PC or mobile device.

이에 반해, 본 발명의 인공 지능 질의 응답 방법(To-Be, Question-Answering)은, 입력 방식이 자연어 기반의 문장이고, 검색 결과로서 구체적인 응답, 즉 인스턴트 유니크 응답을 제공할 수 있으며, 플랫폼은 PC 혹은 모바일에 한정되지 않고 어디서나 구현될 수 있다.In contrast, in the artificial intelligence question-answering method (To-Be, Question-Answering) of the present invention, the input method is a natural language-based sentence, and a specific response, that is, an instant unique response, can be provided as a search result, and the platform is PC Alternatively, it may be implemented anywhere without being limited to mobile.

보다 상세히, 본 발명의 인공 지능 질의 응답 방법은 기존 검색 엔진이 키워드를 입력하는데 반해 자연어 기반의 문장을 입력 가능하도록 함으로써, 사용자가 사람에게 질문하듯이 자연스럽게 정보를 탐색할 수 있도록 한다. 또한, 본 발명의 인공 지능 질의 응답 방법은 검색 결과로 구체적인 응답을 제공함으로써, 기존의 검색 엔진이 제공하는 문서 리스트에서 사용자가 직접 검색 결과를 찾아야 하는 불편을 경감시키고 최적의 검색 결과를 제공할 수 있다. 또한, 본 발명의 인공 지능 질의 응답 방법은 플랫폼으로서 PC 혹은 모바일에 한정되지 않고 스마트 머신 기반으로 어디서나 즉시 정보를 탐색할 수 있다는 장점이 존재한다. In more detail, the artificial intelligence question and answer method of the present invention enables a natural language-based sentence to be input as opposed to a keyword input by an existing search engine, so that a user can naturally search for information as if asking a human question. In addition, the artificial intelligence question and answer method of the present invention provides a specific answer as a search result, thereby reducing the inconvenience of a user having to find a search result directly in a document list provided by an existing search engine and providing an optimal search result. have. In addition, the artificial intelligence question and answer method of the present invention is not limited to PC or mobile as a platform, but has the advantage of being able to immediately search for information anywhere based on a smart machine.

도 4 는 시맨틱 트리플 기반의 검색 수행의 일 예를 도시한다.4 shows an example of performing a search based on a semantic triple.

도 4 에 도시된 지식 DB(400)는 실제 사용자들의 질의문을 모사한 시맨틱 트리플 형태로 데이터를 저장한 특수한 형태의 지식기반(Knowledge Base) 데이터베이스로 별도의 추론과정없이 유니크 인스턴트 응답(Unique instant answer)을 검색할 수 있다. 지식 DB(400)는 entity(432)-attribute(434) - instant answer(438)의 형태를 지닌다. 후술하는 본 발명의 실시예에서, 지식 DB(400)는 서버(150) 내부, 혹은 외부에 존재하며 프로세서(222)와 통신하여 데이터를 제공할 수 있는 데이터베이스일 수 있다.The knowledge DB 400 shown in FIG. 4 is a special type of knowledge base database that stores data in the form of a semantic triple that simulates queries of real users, and a unique instant answer without a separate reasoning process. ) can be searched. The knowledge DB 400 has the form of entity (432)-attribute (434)-instant answer (438). In an embodiment of the present invention to be described later, the knowledge DB 400 may be a database that exists inside or outside the server 150 and can communicate with the processor 222 to provide data.

도 4 는 "백두산의 높이가 얼마야?"인 사용자 질의(410)를 수신한 경우, 사용자 질의를 분석하여(420), '백두산'과 '높이'라는 핵심단어를 추출한 후 백두산을 물어볼 대상으로 높이를 질문의 의도록 분석할 수 있다. 이에, entity = "백두산", attribute = "높이" 인 데이터를 검색하고, 해당하는 항목의 instant answer를 결과값으로 판단하여, 사용자에게 해당답변 2,744m을 제공한다(450). 상술한 바와 같은 지식 DB(400)는 최적 정답을 검색하는데 별도의 추론 과정 없이 최적의 답을 제공할 수 있다. 이하에서는, 도 3 및 도 4 에서 설명한 바와 같은 시맨틱 트리플에 기반한 본 발명의 인공 지능 질의 응답 방법 및 시스템을 보다 구체적으로 설명하기로 한다. 4 shows that when a user query 410 of “What is the height of Mt. Baekdu?” is received, the user query is analyzed (420), key words such as 'Mt. Baekdu' and 'height' are extracted, and then Mt. Baekdu is a target to ask. The height can be analyzed to the intent of the question. Accordingly, the data of entity = “Mt. Baekdu” and attribute = “height” is searched, the instant answer of the corresponding item is determined as the result value, and the corresponding answer 2,744m is provided to the user (450). The knowledge DB 400 as described above may provide an optimal answer without a separate reasoning process to search for an optimal answer. Hereinafter, the artificial intelligence question answering method and system of the present invention based on the semantic triple as described with reference to FIGS. 3 and 4 will be described in more detail.

도 5는 본 발명의 일 실시예에 따른 프로세서의 내부 구성을 나타낸 것이다.5 shows an internal configuration of a processor according to an embodiment of the present invention.

프로세서(212)는 웹 페이지를 온라인으로부터 제공받아 출력할 수 있는 웹 브라우저(web browser) 또는 어플리케이션을 포함할 수 있다. 프로세서(212) 내에서 본 발명의 일 실시예에 따른 시맨틱 트리플 기반의 지식 확장 시스템의 구성은 도 3 에 도시된 바와 같이 질의 수신부(510), 제1 질의 확장부(520), 제2 질의 확장부(530), 학습 데이터 구축부(540) 및 질의 응답부(550)를 포함할 수 있다. 더불어, 제2 질의 확장부(530)는 자연어확장 모듈(531) 및 패러프레이징 엔진(532)을 포함하고, 학습 데이터 구축부(540)는 NMT 엔진 관리부(541), 학습 데이터 관리부(542) 및 모델 배포부(543)를 포함할 수 있다. 본 발명의 일 실시예에 따라 프로세서(212)의 구성요소들은 선택적으로 프로세서(212)에 포함되거나 제외될 수도 있다. 또한, 실시예에 따라 프로세서(212)의 구성요소들은 프로세서(212)의 기능의 표현을 위해 분리 또는 병합될 수도 있다.The processor 212 may include a web browser or an application capable of outputting a web page provided online. As shown in FIG. 3 , the configuration of a semantic triple-based knowledge expansion system according to an embodiment of the present invention in the processor 212 includes a query receiver 510 , a first query expansion 520 , and a second query expansion. It may include a unit 530 , a learning data building unit 540 , and a question answering unit 550 . In addition, the second query expansion unit 530 includes a natural language expansion module 531 and a paraphrase engine 532 , and the learning data construction unit 540 includes an NMT engine management unit 541 , a learning data management unit 542 and A model distribution unit 543 may be included. According to an embodiment of the present invention, components of the processor 212 may be selectively included in or excluded from the processor 212 . In addition, according to an embodiment, the components of the processor 212 may be separated or combined to express the functions of the processor 212 .

여기서, 프로세서(212)의 구성요소들은 사용자 단말 1(110)에 저장된 프로그램 코드가 제공하는 명령(일례로, 사용자 단말 1(110)에서 구동된 웹 브라우저가 제공하는 명령)에 따라 프로세서(212)에 의해 수행되는 프로세서(212)의 서로 다른 기능들(different functions)의 표현들일 수 있다.Here, the components of the processor 212 are the processor 212 according to a command provided by the program code stored in the user terminal 1110 (eg, a command provided by a web browser driven in the user terminal 1110 ). may be representations of different functions of the processor 212 performed by

이러한 프로세서(212) 및 프로세서(212)의 구성요소들은 도 4 의 인공 지능 질의 응답 방법이 포함하는 단계들(S1 내지 S5)을 수행하도록 사용자 단말 1(110)을 제어할 수 있다. 예를 들어, 프로세서(212) 및 프로세서(212)의 구성요소들은 메모리(211)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다.The processor 212 and the components of the processor 212 may control the user terminal 11 10 to perform the steps S1 to S5 included in the artificial intelligence question answering method of FIG. 4 . For example, the processor 212 and the components of the processor 212 may be implemented to execute instructions according to the code of the operating system included in the memory 211 and the code of at least one program.

도 6 는 본 발명의 일 실시예에 따른 인공지능 질의 응답 방법을 시계열적으로 나타낸 도면이며, 도 7a 및 7b 는 본 발명의 일 실시예에 따른 인공 지능 질의 응답 시스템의 전체적인 구조를 나타낸 도면이다. 보다 상세히, 도 7a는 사용자 질의 분석이 성공한 경우 질의 응답 시스템의 동작을 나타낸 것이고, 도 7b 는 사용자 질의 부석이 성공하지 못한 경우 질의 응답 시스템의 동작을 나타낸 것이다. 이하에서는, 도 6, 도 7a 및 도 7b 를 함께 참조하여 본 발명을 설명하기로 한다.6 is a view showing an artificial intelligence question answering method according to an embodiment of the present invention in time series, and FIGS. 7A and 7B are diagrams showing the overall structure of an artificial intelligence question answering system according to an embodiment of the present invention. In more detail, FIG. 7A illustrates the operation of the question answering system when user query analysis is successful, and FIG. 7B illustrates the operation of the question answering system when user query parsing is not successful. Hereinafter, the present invention will be described with reference to FIGS. 6, 7A and 7B together.

먼저, 질의 수신부(510)는 사용자 단말(110)로부터 사용자의 질의를 수신한다(S61). 보다 상세히, 질의 수신부(510)는 사용자 질의를 수신하여(S71), 수신된 질의를 제1 질의 확장부(520)로 전달한다(S72). 사용자의 질의의 형태는 음성, 텍스트 등 다양한 형태로 수신될 수 있다. 질의 수신부(510)는 수신된 사용자의 질의를 적절한 변환 과정을 통해 적합한 형태로 변환할 수 있다.First, the query receiving unit 510 receives a user's query from the user terminal 110 (S61). In more detail, the query receiving unit 510 receives a user query ( S71 ), and transmits the received query to the first query expansion unit 520 ( S72 ). The user's query form may be received in various forms such as voice and text. The query receiver 510 may convert the received user's query into a suitable form through an appropriate conversion process.

본 발명의 일 실시예에 따르면, 사용자는 본 발명의 인공지능 질의응답 방법, 장치 및 프로그램이 적용된 AI 기반 스마트머신인 사용자 단말(100)에 자연어 기반의 질의를 입력할 수 있다. 해당 스마트머신은 기존 스마트폰, 컴퓨터뿐만 아니라, 인공지능 스피커, 커넥티드 카, 홈 IoT, AI 가전, 개인 비서, 홈 로봇/스마트 토이, 챗봇 응용 프로그램 및 인트라넷 등을 포함할 수 있다.According to an embodiment of the present invention, a user may input a natural language-based query to the user terminal 100, which is an AI-based smart machine to which the artificial intelligence question-answering method, apparatus, and program of the present invention are applied. The smart machine may include not only existing smartphones and computers, but also artificial intelligence speakers, connected cars, home IoT, AI appliances, personal assistants, home robots/smart toys, chatbot applications, and intranets.

다음으로, 제1 질의 확장부(520)는 사용자 질의를 분석하여 entity 및 attribute 가 인식 가능한지 여부를 확인한다(S62). 사용자 질의 분석 결과 entity 및 attribute 가 인식 가능한 경우, 질문 템플릿을 생성하여 제1 질의 확장을 수행하며, 사용자 질의와 생성된 질문 템플릿이 일치하는지에 대한 여부를 확인한다(S64). 보다 상세히, 제1 질의 확장부(520)는 사용자의 질의를 분석하고, 지식 DB(400)로부터 질의에 대한 답변 정보를 확인하여, 지식 DB(400)에서 답변 정보를 찾아 해당 질의와 유사한 다수의 질문 템플릿을 생성하고, 사용자 질의와 질문 템플릿이 일치하는지를 비교하여 1차 검색을 수행한다.Next, the first query extension unit 520 analyzes the user query and checks whether an entity and an attribute are recognizable ( S62 ). If the entity and attribute are recognizable as a result of the user query analysis, the first query extension is performed by creating a question template, and it is checked whether the user query and the generated question template match (S64). In more detail, the first query expansion unit 520 analyzes the user's query, checks answer information to the query from the knowledge DB 400 , finds answer information in the knowledge DB 400 , and finds a plurality of answers similar to the query. A first search is performed by creating a question template and comparing whether the user query and the question template match.

보다 상세히, 제1 질의 확장부(520)는 사용자 질의를 분석한 결과를 기반으로 사용자 질의에 부합하는 질문 템플릿을 생성할 수 있다. 사용자의 질의가 수신되면, 제1 질의 확장부(520)는 사용자 질의를 분석하여, 분석한 결과를 기반으로 질문 템플릿을 생성하고 제1 질의 확장을 수행한다. 이때, 제1 질의 확장부(520)는 상술한 지식 DB(590)로부터 질문 템플릿을 생성할 수 있다. 이하에서는, 제1 질의 확장부(520)가 질문 템플릿을 생성하는 구체적인 구성을 설명하기로 한다.In more detail, the first query extension 520 may generate a question template corresponding to the user query based on a result of analyzing the user query. When a user's query is received, the first query expansion unit 520 analyzes the user's query, generates a question template based on the analysis result, and performs the first query expansion. In this case, the first query extension 520 may generate a question template from the above-described knowledge DB 590 . Hereinafter, a detailed configuration in which the first query extension unit 520 generates a question template will be described.

먼저 제1 질의 확장부(520)는, 상술한 바와 같은 시맨틱 트리플 형식으로 사용자 질의를 분석하기 위해, NLP(Natural Language Processing) 엔진을 사용하여 사용자 질의를 분석할 수 있다. 이 때 사용자 질의에서 형태소분석 등의 기술을 사용하여 entity 및 attribute를 찾아낸다. 통상의 사용자들은 entity + attribute 형태의 질문을 하기 때문에, 순차적으로 문장을 분석하여 사용자 질의에서 entity 및 attribute 후보군을 찾아낸다.First, the first query expansion unit 520 may analyze the user query using a Natural Language Processing (NLP) engine in order to analyze the user query in the above-described semantic triple format. At this time, the entity and attribute are found by using techniques such as morphological analysis in the user query. Since normal users ask questions in the form of entity + attribute, they sequentially analyze sentences to find entity and attribute candidates in the user query.

본 발명의 일 실시예에서, 제1 질의 확장부(520)는 사용자 질의 분석 시, entity 및 attribute 기준으로 하나만 있을 경우에는 해당 entity 및 attribute에 해당하는 내용을 질문 템플릿으로 생성한다. 일례로, '오버워치 영웅 중 런던에서 주로 활동하는 요원은?' 의 경우, entity가 '오버워치 영웅'으로 분석되고 attribute가 탐지되지 않으면, 지식 DB에서 ‘오버워치 영웅’을 entity로 가지는 모든 attribute를 활용하여 질문 템플릿을 생성할 수 있다.In an embodiment of the present invention, when analyzing a user query, when there is only one entity and attribute as reference, the first query extension unit 520 generates content corresponding to the corresponding entity and attribute as a question template. For example, 'Which of the Overwatch heroes is mainly active in London?' In the case of , if the entity is analyzed as an 'Overwatch hero' and no attribute is detected, a question template can be created using all attributes that have 'Overwatch hero' as an entity in the knowledge DB.

다음으로, 제1 질의 확장부(520)는 질의어 분석 결과를 기반으로 제1 질의 확장부(520)는 지식 DB(400)로부터 질문 템플릿을 생성할 수 있다. 구체적으로, 제1 질의 확장부(520)는 사용자 질의와 일치하는 카테고리별로 entity 및 attribute 후보군을 검색 형태로 찾고, entity 유의어 및 attribute 유의어를 기반으로 하여 질문 템플릿을 생성한다. 이때, 질문 템플릿은 entity와 attribute 뿐만 아니라, instant answer까지 추가 정보로 가질 수 있다. 이는 후에 서술할 사용자 질의와 제1 질의 확장부(520)에서 만든 질문 템플릿이 일치할 경우, 사용자에게 즉답(instant answer)을 제공할 수 있다(S65). 즉답(instant answer)이 존재하면, 해당 질문 템플릿을 후술하는 제2 질의 확장 단계를 학습(training)시키기 위한 학습데이터로 생성할 수 있다(S68).Next, the first query extension unit 520 may generate a question template from the knowledge DB 400 based on the query word analysis result. Specifically, the first query expansion unit 520 searches for entity and attribute candidates in a search form for each category matching the user query, and generates a question template based on the entity synonym and attribute synonym. In this case, the question template may have not only entities and attributes, but also instant answers as additional information. This may provide an instant answer to the user when a user query, which will be described later, matches the question template created by the first query extension unit 520 ( S65 ). If an instant answer exists, the corresponding question template may be generated as training data for training the second query expansion step to be described later (S68).

다음으로, 제1 질의 확장부(520)는 생성된 질문 템플릿과 사용자 질의를 비교하여, 일치하는지 여부의 결과를 확인한다(S73). 제1 질의 확장부(520)가 생성한 질문 템플릿과 사용자 질의가 같다고 판단되면, 질문 템플릿에서 기 생성한 instant answer를 답변으로 제공한다(S65). 제1 질의 확장부(520)는 사용자 질의에서 의미없는 문자 또는 단어를 제거하여 생성된 질문 템플릿과 사용자 질의를 비교할 수 있다. 예를 들어, '금강산의 해발고도는?' 이라는 질문이 있을 경우, 자연어 처리를 통해 의미 표현과 관련없는 '의', '는'을 제거할 수 있다. 의미없는 문자 또는 단어가 제공된 사용자 질의와 생성된 질문 템플릿이 정확히 일치하는가를 판단한다. 만약, 생성된 질문 템플릿과 사용자 질의가 같지 않다고 판단되면 제2 질의 확장부(530)를 이용하여 사용자 질의를 확장할 수 있다.Next, the first query extension unit 520 compares the generated question template with the user query, and checks the result of whether they match ( S73 ). If it is determined that the question template generated by the first query extension 520 is the same as the user query, an instant answer previously generated from the question template is provided as an answer (S65). The first query extension unit 520 may compare the user query with a question template generated by removing meaningless characters or words from the user query. For example, 'What is the elevation of Mt. Geumgang?' ',' 'of' and 'is' that are not related to semantic expression can be removed through natural language processing. It is determined whether the user query provided with meaningless characters or words exactly matches the generated question template. If it is determined that the generated question template and the user query are not the same, the user query may be expanded using the second query extension unit 530 .

다음으로, 제2 질의 확장부(530)는 생성된 질문 템플릿과 사용자 질의가 불일치한 경우, 유사 질문 템플릿을 생성한다. 보다 상세히, 제2 질의 확장부(530)는 자연어 처리 및 딥러닝 모델을 활용하여 시맨틱(semantic) 유사 질문 템플릿을 생성함으로써 질문 템플렛을 제2 확장하여 결과를 비교한다(S66). 즉, 제1 질의 확장부(520)에 의해 생성된 질문 템플릿과 사용자 질의가 일치하는 결과가 존재하지 않을 때, 유사 질의 엔진인 제2 질의 확장부(530)를 이용하여 기존에 생성했던 질문 템플릿 기반으로 질의 확장을 수행하고 유사 질문 템플릿을 추가적으로 생성할 수 있다(S74).Next, when the generated question template and the user query do not match, the second query extension unit 530 generates a similar question template. In more detail, the second query extension unit 530 generates a semantic-like question template by utilizing a natural language processing and deep learning model, thereby expanding the question template second and comparing the results (S66). That is, when there is no result that matches the user query with the question template generated by the first query extension 520 , the question template previously created using the second query extension 530 , which is a similar query engine, is used. Based on the query expansion, a similar question template may be additionally generated (S74).

혹은, 상술한 S72 단계에서 제1 질의 확장부(520)의 사용자 질의 분석 결과 entity 및 attribute 가 인식 불가능하다고 판단한 경우, 제2 질의 확장부(530)는 기 도출된 사용자 질의 결과를 유사 질문 템플릿으로 하여 질의를 확장하여 결과를 비교한다(S63). 즉, 사용자 질의와 기 생성된 질문 템플릿을 유사 질의 엔진을 활용하여 결과를 확인한다(S78). 즉, 사용자 질의 분석 시 entity 및 attribute가 모두 발견되지 않을 경우, 기존 시스템 로그에서 답변된 내용을 기반으로 하여 제2 질의 확장부의 패러프레이징 엔진에서 사용자 질의와 시스템 로그 답변 내용을 유사도 비교하여 검색을 수행할 수 있으며, 이에 해당하는 것이 S63 및 S78 단계이다.Alternatively, if it is determined in step S72 that the user query analysis result of the first query expansion unit 520 cannot recognize the entity and attribute, the second query expansion unit 530 converts the derived user query result into a similar question template. to expand the query and compare the results (S63). That is, the results of the user query and the pre-generated question template are checked by using the similar query engine (S78). That is, if neither entity nor attribute is found during user query analysis, the search is performed by comparing the similarity between the user query and the system log answer in the paraphrase engine of the second query extension based on the answers from the existing system log. This can be done, and the corresponding steps are steps S63 and S78.

제2 질의 확장부(530)의 유사 질문 템플릿 생성 방식에는 자연어 처리 및 딥러닝 모델을 사용한 시맨틱(semantic) 유사질문 생성 방식이 사용되어, 시맨틱 유사 질문 템플릿을 확장하여 결과를 비교할 수 있다. 도 3 에 도시된 바와 같이, 제2 질의 확장부(530)는 자연어 확장 모듈(531) 및 패러프레이징 엔진(532)을 포함할 수 있다. 즉, 제2 질의 확장부(530)는 자연어 확장 모듈(531)을 통해 서술어 확장을 진행하고, 딥러닝 기반의 패러프레이징 엔진(532)을 통해 사용자 질의와 질문 템플릿의 유사도를 파악하여 사용자 의도에 맞는 답변을 제공할 수 있다.A method of generating a similar question template of the second query extension unit 530 uses a method of generating a semantic similar question using natural language processing and a deep learning model, so that the result can be compared by extending the semantic similar question template. 3 , the second query expansion unit 530 may include a natural language expansion module 531 and a paraphrase engine 532 . That is, the second query expansion unit 530 expands the predicate through the natural language expansion module 531, and recognizes the similarity between the user query and the question template through the deep learning-based paraphrase engine 532 to respond to the user's intention. I can give you the right answer.

먼저, 제2 질의 확장부(530)의 자연어 확장 모듈(531)는 는 자연어 처리 방식을 사용하여, 특정 주제의 질의에 대해 다양한 패턴을 제공하여 유사질문 템플릿을 생성할 수 있다. 일 실시예에서, '[Person]의 출생지는?' 이라는 질문은, '[Person]이 어디서 태어났어?', '[Person]이 태어난 곳이 어디야?' 등과 같은 의미를 가지고 있다. 제2 질의 확장부(530)에서는, 위의 예시와 같이 질의 템플릿에서 만든 entity-attribute 조합의 질문 템플릿을 자연어 처리 방식을 통해 확장하여 유사 질문 템플릿을 생성할 수 있다.First, the natural language extension module 531 of the second query extension unit 530 may generate a similar question template by providing various patterns for a query on a specific topic using a natural language processing method. In one embodiment, 'Where is [Person]'s birthplace?' The question is, 'Where was [Person] born?', 'Where was [Person] born?' have the same meaning as The second query extension unit 530 may generate a similar question template by extending the question template of the entity-attribute combination created from the query template through a natural language processing method as in the above example.

보다 상세히, 자연어 확장 모듈(531)의 자연어 처리 방식은 별도 구축한 유사질의 DB를 활용하여 특정 attribute에 따라 패턴 형식으로 확장하는 방식으로 구현될 수 있다. 일례로, '출생지' attribute의 경우, 제2 질의 확장부(530)는 '어디서 태어났어?', '태어난 곳은?', '태어난 곳이 어디야?' 등의 다양한 술어부 확장을 통해 질문 템플릿을 확장하여 유사 질문 템플릿을 생성할 수 있다.In more detail, the natural language processing method of the natural language extension module 531 may be implemented by using a separately constructed similarity DB to expand it in a pattern format according to a specific attribute. For example, in the case of the 'Birthplace' attribute, the second query expansion unit 530 may include 'Where were you born?', 'Where were you born?', and 'Where are you born?' A similar question template can be created by extending the question template through various predicate extensions such as

또한, 제2 질의 확장부(530)의 패러프레이징 엔진(532)은 패러프레이징(paraphrasing)을 통해 사용자 질의의 시맨틱 유사 질문 템플릿을 생성한다. 또한, 패러프레이징 엔진(532)은 사용자 질의와 유사 질문 템플릿을 비교하여 결과를 확인한다(S75). 보다 상세히, 제2 질의 확장부(530)는 기존 생성된 질문 템플릿과 확장된 유사질문 템플릿을 합쳐, 딥러닝 기반의 패러프레이징 엔진을 통해 사용자 질의와 질문 템플릿, 유사 질문 템플릿의 유사도를 비교한다. 유사도 비교는 총 2단계로 진행되며, 세부적인 사항은 하기와 같다.In addition, the paraphrase engine 532 of the second query extension unit 530 generates a semantic similarity question template of the user query through paraphrasing. Also, the paraphrase engine 532 compares the user query with the similar question template and confirms the result ( S75 ). In more detail, the second query extension unit 530 compares the similarity between the user query, the question template, and the similar question template through the deep learning-based paraphrase engine by combining the previously created question template and the extended similar question template. The similarity comparison is performed in two steps, and the details are as follows.

첫번째 단계로, 먼저 패러프레이징 엔진(532)은 사용자 질의와 제1 질의 확장부(520)가 생성한 기존 질문 템플릿, 유사질문 템플릿의 유사도를 측정하여, 질문 템플릿과 유사질문 템플릿의 총 숫자 에서 상위 N개의 후보군을 선정한다. 이 때, 상위 N개는 갯수는 관리자페이지 혹은 통계 기반의 피드백 프로그램에 따라 변경될 수 있다. 패러프레이징 엔진(532)은 사용자 질의와 기존 질문 템플릿, 유사질문 템플릿 Top N개를 비교하여, 가장 유사하다고 생각하는 하나의 질문 템플릿 및 유사도를 반환한다.As a first step, first, the paraphrase engine 532 measures the similarity between the user query and the existing question templates and similar question templates generated by the first query extension unit 520, and ranks higher in the total number of question templates and similar question templates. N candidates are selected. In this case, the number of the top N items may be changed according to the admin page or a statistics-based feedback program. The paraphrase engine 532 compares the user's query with the existing question templates and Top N similar question templates, and returns one question template considered to be most similar and the degree of similarity.

두번째 단계로, 패러프레이징 엔진(532)은 유사도를 기반으로 하여 선정된 Top 1의 질문 템플릿이 최종적으로 사용자 질의와 같은 의미인지를 판단한다. 판단 기준의 경우 최초에는 관리자가 임의로 선정하지만, 이후 실제 결과 피드백을 통해 통계 기반으로 조정될 수 있다. 예를 들어, 초기 유사도를 90%로 선정했다 해도, 실제 정답 도출 이력을 확인하여 85% 이상의 유사도임에도 답변을 올바르게 수행??다면, 자동으로 해당 유사도를 90%에서 85%로 변경하여 자동으로 답변 커버리지를 확대할 수 있다. 만약, 유사도가 일정 기준치 미만일 경우, 검색결과가 없다는 메시지를 출력할 수 있다.In a second step, the paraphrase engine 532 determines whether the selected Top 1 question template is ultimately the same as the user query based on the similarity. The decision criteria are initially randomly selected by the manager, but can be adjusted based on statistics through feedback on actual results. For example, even if the initial similarity is selected as 90%, the answer is automatically changed by changing the similarity from 90% to 85% You can expand your coverage. If the degree of similarity is less than a predetermined reference value, a message indicating that there is no search result may be output.

한편, 제2 질의 확장부(530)는 상술한 단계가 끝나게 되면, 사용자 질의를 포함하여 Top 1개로 선정된 질문 템플릿, Top N개로 선정된 질문 템플릿, 검색 시간 및 단계, 검색 속도 등의 제반 시스템 정보를 별도의 DB로 저장할 수 있다.On the other hand, when the above-described step is completed, the second query expansion unit 530 provides a system including the user query, including the top 1 question templates, the top N question templates, the search time and steps, and the search speed. Information can be stored in a separate DB.

다음으로, 질의 응답부(550)는 제1 질의 확장부(520) 및 제2 질의 확장부(530)를 통해 도출된 사용자 질의 결과를 사용자 단말(110)로 전달한다(S65). 사용자 질의 결과는 AI 기반 스마트 머신에 전달되어 특성에 맞는 인터페이스로 전달되며, 이와 함께 '사용자 질의'. '답변 여부'. '시간', '기기' 등의 세부적인 정보가 시스템 로그로 저장되어 차후 패러프레이징 모델 관리 등에 사용될 수 있다.Next, the query response unit 550 transmits the user query result derived through the first query expansion unit 520 and the second query expansion unit 530 to the user terminal 110 (S65). The user query result is transmitted to the AI-based smart machine and transmitted to an interface suitable for the characteristics, along with the 'user query'. 'Answered or not'. Detailed information such as 'time' and 'device' is stored as a system log and can be used for paraphrase model management in the future.

다음으로, 질의 응답부(550)는 도출된 사용자 질의 결과를 사용자 단말로 전달한다(S67).Next, the query response unit 550 transmits the derived user query result to the user terminal (S67).

또한, 본 발명의 일 실시예에 따른 학습 데이터 구축부(540)는 상기 도출된 사용자 질의 결과를 이용하여 제2 질의 확장부(530)를 학습(training)시키기 위한 학습 데이터를 NMT(Neural Machine Translation) 엔진을 이용하여 생성할 수 있다(S68). 즉, 제2 질의 확장부(530)는 학습 데이터 구축부(540)에 의해 생성된 학습 데이터를 이용하여 학습을 수행할 수 있다. 특히, 패러프레이징 엔진(532)은 딥러닝 모델을 이용한 시맨틱 유사 질문 사용 방법을 사용하는데, 이를 위해서는 풍부한 학습 데이터로 해당 딥러닝을 훈련시켜야 한다. 이에, 학습 데이터 구축부(540)는 패러프레이징 엔진의 학습(training)을 수행하며, 학습을 위한 학습 데이터를 생성할 수 있다.Also, the training data construction unit 540 according to an embodiment of the present invention converts training data for training the second query extension unit 530 using the derived user query result to NMT (Neural Machine Translation). ) can be generated using the engine (S68). That is, the second query extension unit 530 may perform learning using the learning data generated by the learning data construction unit 540 . In particular, the paraphrase engine 532 uses a method of using a semantic similarity question using a deep learning model, and for this, the deep learning needs to be trained with rich learning data. Accordingly, the learning data construction unit 540 may perform training of the paraphrase engine, and may generate training data for learning.

보다 상세히, 본 발명의 일 실시예에 따르면 딥러닝 기반의 패러프레이징 엔진(532)의 경우 모델의 구조를 미리 지정하지 않고 학습을 통해 모델을 만들어 작업자의 개입이 최소화되며, 복잡하고 깊은 구조를 만들 수 있어 기존 방식보다 정확도가 높다는 특징이 있다. 하지만, 인간의 작업을 대체할 수 있는 성능을 내기 위해서는 수 만개 이상의 대량의 학습 데이터를 필요로 한다는 문제점이 존재한다. 이에, 본 발명의 일 실시예에 따르면 인공지능 질의 응답 장치는 학습 데이터를 자동으로 구축하는 방법을 제시한다.In more detail, according to an embodiment of the present invention, in the case of the deep learning-based paraphrase engine 532, the operator's intervention is minimized by making a model through learning without specifying the structure of the model in advance, and a complex and deep structure is created. It is characterized by higher accuracy than the existing method. However, there is a problem that a large amount of learning data of tens of thousands or more is required to produce performance that can replace human work. Accordingly, according to an embodiment of the present invention, an artificial intelligence question answering apparatus provides a method of automatically constructing learning data.

먼저, 학습 데이터 구축부(540)는 패러프레이징(paraphrasing)을 위한 학습 데이터를 생성한다. 보다 상세히, 학습 데이터 구축부(540)는 상술한 제2 질의 확장부(530)가 시맨틱 유사 질문 템플릿을 형성할 수 있도록, 본 발명의 인공 지능 응답 방법을 학습시킬 수 있는 학습 데이터를 구축한다. 이를 위해, 학습 데이터 구축부(540)는 NMT 엔진 관리부(541), 학습 데이터 관리부(542) 및 모델 배포부(543)를 포함할 수 있다.First, the training data construction unit 540 generates training data for paraphrasing. In more detail, the training data building unit 540 constructs training data capable of learning the AI response method of the present invention so that the above-described second query expansion unit 530 can form a semantic similarity question template. To this end, the training data construction unit 540 may include an NMT engine management unit 541 , a training data management unit 542 , and a model distribution unit 543 .

제2 질의 확장부(330)은 본 발명에서는 구축한 패러프레이징 엔진의 품질을 지속적으로 확보하기 위해, 학습 데이터 구축에 복수의 NMT(Neural Machine Translation) 엔진을 사용하기 위한 NMT 엔진 관리부(541)을 포함하고, 해당 NMT 엔진의 번역 품질을 관리하기 위한 통계 기반의 별도 관리 프로그램을 사용하는 학습 데이터 관리부(542)를 포함할 수 있다. 더불어, 생성된 학습 데이터로 학습을 진행하고, 패러프레이징 모델을 배포 및 적용하는 모델 배포부(543)을 포함하여, 일련의 과정을 포함하는 학습 데이터 구축 및 품질 관리가 총체적으로 본 발명의 구성이 될 수 있다.The second query expansion unit 330 is an NMT engine management unit 541 for using a plurality of NMT (Neural Machine Translation) engines to construct learning data in order to continuously secure the quality of the built paraphrase engine in the present invention. and may include a learning data management unit 542 that uses a separate statistical management program for managing the translation quality of the corresponding NMT engine. In addition, the learning data construction and quality management including a series of processes, including a model distribution unit 543 that conducts learning with the generated learning data, distributes and applies a paraphrase model, and quality control as a whole is the configuration of the present invention. can be

도 8 은 본 발명의 일 실시예에 따라 학습 데이터 및 패러프레이징 모델을 구축하는 것을 설명하기 위한 도면이다.8 is a view for explaining the construction of training data and a paraphrase model according to an embodiment of the present invention.

먼저, 학습 데이터 구축부(540)는 학습 데이터를 만들기 위해, 사용자의 실제 질의를 원 데이터로 설정하고, 실제 질의 기반의 사용자 로그 데이터를 NMT 엔진 관리부(541)로 전송한다(S81). 이 때 실제 질의는 서버의 Log DB에 저장된 데이터를 사용할 수 있다. 학습 데이터 구축부(540)는 해당 데이터를 NMT 엔진 관리부(541)로 전달하여, 학습 데이터 생성 준비를 진행한다.First, the learning data construction unit 540 sets the user's actual query as raw data in order to create the learning data, and transmits the actual query-based user log data to the NMT engine management unit 541 (S81). In this case, the actual query can use the data stored in the log DB of the server. The learning data construction unit 540 transmits the corresponding data to the NMT engine management unit 541, and prepares for generating the learning data.

다음으로, NMT 엔진 관리부(541)는 신경망 기반의 외부 NMT 엔진을 복수로 사용하여, 사용자 로그 데이터 또는 사용자 질의를 타 언어로 번역 후, 한국어로 재번역하는 과정을 거쳐 학습 데이터를 생성한다(S82). 본 발명의 일 실시예에 따르면, NMT 엔진 관리부(541)는 한국어로 씌어진 제1 문장을 특정 외국어로 번역하고, 특정 외국어로 번역한 제1 문장을 다시 한국어로 번역하여 제 2문장을 획득할 수 있다. 즉, NMT 엔진 관리부(541)는 패러프레이징 엔진(532)이 동일한 질의 혹은 문장에 대해 이와 유사한 자연어 표현들을 학습 데이터로서 수집할 수 있도록 NMT 엔진을 활용할 수 있다.Next, the NMT engine management unit 541 uses a plurality of neural network-based external NMT engines to translate user log data or user queries into other languages and then re-translates them into Korean to generate learning data (S82). . According to an embodiment of the present invention, the NMT engine management unit 541 may obtain a second sentence by translating a first sentence written in Korean into a specific foreign language, and re-translating the first sentence translated into a specific foreign language into Korean. have. That is, the NMT engine management unit 541 may utilize the NMT engine so that the paraphrase engine 532 may collect natural language expressions similar to these for the same query or sentence as learning data.

본 발명에서 사용되는 NMT 엔진은 기 설정된 패턴 및 규칙 기반이 아닌, 학습을 통한 신경망 방식으로 번역을 수행하므로, 제1 문장을 외국어로 번역한 후 다시 한국어로 번역하면 제1 문장과 같거나 유사한 의미를 갖되 표현이 상이한 자연어 문장등을 획득할 수 있다. 또한, 외부 NMT 번역 엔진의 경우 각기 다른 신경망 규칙 및 다른 학습 데이터를 사용하기 때문에, 같은 문장을 특정 외국어로 번역 후 다시 한국어로 번역할 경우, 유사한 의미를 갖되 표현이 상이한 자연어 문장을 추가 적으로 획득할 수 있다.The NMT engine used in the present invention performs translation in a neural network method through learning, not based on preset patterns and rules, so that when the first sentence is translated into a foreign language and then translated back into Korean, the same meaning as or similar to the first sentence It is possible to obtain natural language sentences with different expressions. In addition, since the external NMT translation engine uses different neural network rules and different learning data, when the same sentence is translated into a specific foreign language and then translated back to Korean, natural language sentences with similar meaning but different expressions are additionally obtained can do.

더불어, 한국어인 제1 문장을 제1 외국어로 번역하고, 제1 외국어를 다시 제2 외국어로 번역한 후, 제2 외국어를 한국어로 번역할 경우, 유사한 의미를 갖되 또 다른 표현으로 표시된 자연어 문장을 추가 획득할 수 있다.In addition, when a first Korean sentence is translated into a first foreign language, the first foreign language is again translated into a second foreign language, and the second foreign language is translated into Korean, natural language sentences with similar meanings but expressed in different expressions are used. Additional can be obtained.

상술한 바와 같은 방식으로 형성된 학습 데이터는, 실제 사용자 질의 및 사용된 외부 NMT 정보, 번역 단계 및 번역에 사용된 언어 등과 함께 학습 데이터 관리부(542)로 전달된다. 구체적으로, 생성된 학습 데이터는 실제 사용자 질의에 기반하여 생성된 것이므로, 양자를 매칭하여 [실제 사용자 질의 - 생성된 학습 데이터] 형태로 학습 데이터 관리부(542)로 전달될 수 있다. 만약, 사용자 질의와 생성된 학습 데이터가 일치할 경우 해당 정보는 전달되지 않는다. 또한, 생성 날짜 및 시간, NMT 모델, 번역 언어와 같은 관련 정보도 학습 데이터 관리부(542)에 전달될 수 있다. 한편, 번역에 사용되는 언어, 번역 단계 등은 이후 학습 데이터 관리부(542)에서 실제 패러프레이징 엔진 학습 결과를 기반으로 하여 자동으로 조정될 수 있다.The learning data formed in the above-described manner is transmitted to the learning data management unit 542 together with the actual user query and used external NMT information, the translation step, the language used for the translation, and the like. Specifically, since the generated learning data is generated based on an actual user query, it may be transmitted to the learning data management unit 542 in the form of [real user query - generated learning data] by matching both. If the user query and the generated learning data match, the corresponding information is not transmitted. In addition, related information such as a creation date and time, an NMT model, and a translation language may also be transmitted to the learning data management unit 542 . Meanwhile, a language used for translation, a translation step, and the like may be automatically adjusted based on the actual paraphrase engine learning result in the learning data management unit 542 .

다음으로, 학습 데이터 관리부(542)는 NMT 엔진 관리부(541)에서 생성된 학습 데이터를 저장하고, 실제 패러프레이징 모델의 학습을 진행하고, 테스트 및 검증할 수 있다(S83). 보다 상세히, 학습 데이터 관리부(542)는 NMT 엔진 관리부(541)에 의해 생성된 학습 데이터를 저장하고, 생성된 학습 데이터를 이용하여 패러프레이징 엔진에 적용될 수 있는 패러프레이징 모델의 학습을 진행하고, 상기 패러프레이징 모델을 테스트 및 검증한다. 도 8 에 도시된 패러프레이징 학습 프로세서는 실제로 패러프레이징 엔진을 학습하는 프로세서를 의미하며, 학습 데이터 구축부(540)에 포함된 일 기능을 의미하는 것일 수 있다. Next, the learning data management unit 542 may store the training data generated by the NMT engine management unit 541 , and may perform training of the actual paraphrase model, test and verify ( S83 ). In more detail, the learning data management unit 542 stores the learning data generated by the NMT engine management unit 541, and uses the generated learning data to learn a paraphrase model that can be applied to the paraphrase engine, and the Test and validate the paraphrase model. The paraphrase learning processor shown in FIG. 8 may mean a processor that actually learns a paraphrase engine, and may mean a function included in the learning data building unit 540 .

구체적으로, 학습 데이터 관리부(542)는 NMT 엔진 관리부(541)에서 생성한 학습 데이터로 다양한 조건 하에서 패러프레이징 모델을 생성하여 학습시키고, 기 구축된 Test Set 기반으로 품질평가를 진행하여 우수한 성과를 거둔 NMT 모델 및 번역에 사용된 언어는 지속적으로 사용하고, 그렇지 않은 NMT 모델 및 번역에 사용된 언어는 사용 빈도수를 줄이거나 아예 제외하는 등의 학습 데이터 품질 관리 역할도 수행한다. 또한, NMT 엔진 관리부(541)는 패러프레이징 엔진을 활용한 검증을 통해 해당 NMT 엔진의 품질평가를 진행하여 저품질의 학습 데이터를 생성한 NMT 엔진의 가중치를 줄이거나, 제외할 수 있다.Specifically, the learning data management unit 542 generates and trains a paraphrase model under various conditions with the learning data generated by the NMT engine management unit 541, and performs quality evaluation based on a pre-established test set to achieve excellent results. The language used for the NMT model and translation is continuously used, and the language used for the non-NMT model and translation also plays a role in managing the quality of the learning data, such as reducing the frequency of use or excluding it altogether. In addition, the NMT engine management unit 541 may reduce or exclude the weight of the NMT engine that generated low-quality learning data by performing quality evaluation of the corresponding NMT engine through verification using the paraphrase engine.

보다 구체적으로, 학습 데이터 관리부(542)는 학습 데이터를 실제 사용자 질의와 NMT에서 생성된 질의를 쌍(pair)으로 하여 구성할 수 있다.More specifically, the learning data management unit 542 may configure the learning data by pairing an actual user query and a query generated in NMT.

또한, 학습 데이터 관리부(542)는 NMT 엔진 관리부(541)에서 생성된 학습 데이터를 일정한 규칙으로 분류하고, 정확한 패러프레이징 엔진 훈련 및 품질 비교를 위해 각 단계별로 일정 수량을 확보한다. 일례로, 같은 사용자 질의에 기반하여, 구글 NMT 엔진을 사용하여 한국어 → 영어 → 한국어로 번역한 학습 데이터와 네이버 NMT 엔진을 사용하여 한국어 → 영어 → 한국어로 번역한 학습 데이터 수량을 일정하게 확보하며, 확보된 수량은 엔진별로 동일할 수 있다.In addition, the learning data management unit 542 classifies the learning data generated by the NMT engine management unit 541 into a certain rule, and secures a certain quantity at each stage for accurate paraphrase engine training and quality comparison. For example, based on the same user query, the amount of learning data translated into Korean → English → Korean using the Google NMT engine and the learning data translated into Korean → English → Korean using the Naver NMT engine are constantly secured. The secured quantity may be the same for each engine.

또한, 학습 데이터 관리부(542)는 NMT 엔진 사용별, 번역 언어 단계 및 종류별로 일정 수량 이상의 패러프레이징 모델을 훈련시키고, 각 엔진 및 언어별로 훈련시킨 패러프레이징 모델의 정확도를 기 구축한 test set을 통해 비교한다. 이 때, test set은 패러프레이징 모델에 훈련시키지 않은 실제 사용자 질의 및 테스트 질의로 구성되며, 테스트 질의를 패러프레이징 모델에 넣어 실제 사용자 질의가 올바로 도출되는지를 기준으로 평가한다.In addition, the learning data management unit 542 trains a certain number of paraphrase models for each NMT engine use, each translation language level and type, and establishes the accuracy of the paraphrase model trained for each engine and language through a pre-established test set. Compare. At this time, the test set consists of real user queries and test queries that are not trained in the paraphrase model, and evaluates based on whether the actual user queries are correctly derived by putting the test queries into the paraphrase model.

또한, 학습 데이터 관리부(542)는 주어진 test set의 결과에 따라, 각 NMT 모델 및 번역 언어 단계 및 종류별 결과를 합산한다. 해당 결과에 따라, NMT 엔진관리에서 어떤 엔진을 더 많이 사용하고, NMT 별로 어떤 번역 방식을 주로 사용할지 자동으로 피드백하여 학습 데이터 생성 과정에 반영한다. 이때, 학습 데이터 관리부(542)는 성능 평가를 기준으로 차후 학습 데이터 생성 수량을 결정할 수 있다. 성능 평가를 나타내는 수식은 {(평가 결과)-(기본 모델 성능)}/(기본 모델 성능)이며, 해당 수식 결과를 기준으로 학습 데이터 관리부(542)는 학습 데이터 수량의 총량을 조정한다.In addition, the learning data management unit 542 sums up the results of each NMT model and the translation language stage and type according to the result of the given test set. According to the result, the NMT engine management automatically feeds back which engine is used more and which translation method is mainly used for each NMT, and it is reflected in the learning data generation process. In this case, the learning data management unit 542 may determine the quantity of future learning data generated based on the performance evaluation. The equation representing the performance evaluation is {(evaluation result)-(basic model performance)}/(basic model performance), and the learning data management unit 542 adjusts the total amount of the training data quantity based on the result of the equation.

일례로 하기의 [표 1] 과 같은 결과가 나왔다고 하면. 구글 NMT의 한국어 → 영어 → 한국어 기반의 학습 데이터를 20% 더 많이 생성하고, 동시에 네이버 NMT의 한국어 → 영어 → 일어 → 한국어 기반의 학습 데이터를 20%로 더 많이 생성한다. 이를 통해 번역 엔진 별 번역 언어 순서 및 품질을 기준으로, 더 좋은 학습 데이터가 자동적으로 생성될 수 있다.As an example, if the results shown in [Table 1] below were obtained. It generates 20% more learning data based on Google NMT’s Korean → English → Korean language, and at the same time generates 20% more learning data based on Naver NMT’s Korean → English → Japanese → Korean language. Through this, better learning data can be automatically generated based on the order and quality of the translation languages for each translation engine.

번역 모델translation model 구글 NMTGoogle NMT 구글 NMTGoogle NMT 네이버 NMTNaver NMT 네이버 NMTNaver NMT 번역 언어translation language 영어English 영어->일어English -> Japanese 영어English 영어->일어English -> Japanese 학습 데이터 수량training data quantity 10,00010,000 10,00010,000 10,00010,000 10,00010,000 기본 모델 성능Base model performance 5050 5050 5050 5050 평가 결과Evaluation results 6060 5050 5050 6060 성능 평가performance evaluation 20%20% -- -- 20%20%

다음으로, 모델 배포부(543)는 학습 데이터 기반으로 학습된 딥러닝 기반의 패러프레이징 모델을 실제로 사용할 수 있도록 배포하고 패러프레이징 모델의 앙상블을 생성한다(S84). 모델 배포부(543)는 실제 작업 수행 시 성능 향상을 위해 복수의 패러프레이징 모델을 묶어, 앙상블 형태로 패러프레이징 엔진에서 사용할 수 있도록 한다.Next, the model distribution unit 543 distributes the deep learning-based paraphrase model learned based on the training data so that it can be actually used and creates an ensemble of the paraphrase model (S84). The model distribution unit 543 bundles a plurality of paraphrase models in order to improve performance when performing an actual task, so that they can be used in the paraphrase engine in an ensemble form.

마지막으로, 학습 데이터 구축부(540)는 앙상블 형태의 패러프레이징 엔진을 정기적으로 서비스에 적용(S85)하여, 항상 최신의 품질 높은 엔진이 서비스에 적용될 수 있도록 한다.Finally, the learning data construction unit 540 regularly applies the ensemble-type paraphrase engine to the service (S85), so that the latest high-quality engine can always be applied to the service.

이상 설명된 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The embodiment according to the present invention described above may be implemented in the form of a computer program that can be executed through various components on a computer, and such a computer program may be recorded in a computer-readable medium. In this case, the medium may continue to store a program executable by a computer, or may be stored for execution or download. In addition, the medium may be various recording means or storage means in the form of a single or several hardware combined, it is not limited to a medium directly connected to any computer system, and may exist distributed on a network. Examples of the medium include a hard disk, a magnetic medium such as a floppy disk and a magnetic tape, an optical recording medium such as CD-ROM and DVD, a magneto-optical medium such as a floppy disk, and those configured to store program instructions, including ROM, RAM, flash memory, and the like. In addition, examples of other media may include recording media or storage media managed by an app store that distributes applications, sites that supply or distribute various other software, and servers.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항과 한정된 실시예 및 도면에 의하여 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위하여 제공된 것일 뿐, 본 발명이 상기 실시예에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정과 변경을 꾀할 수 있다.In the above, the present invention has been described with reference to specific matters such as specific components and limited embodiments and drawings, but these are provided to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments, and the present invention is not limited to the present invention. Those of ordinary skill in the art to which the invention pertains can make various modifications and changes from these descriptions.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the above-described embodiments, and the scope of the spirit of the present invention is not limited to the scope of the scope of the present invention. will be said to belong to

Claims (16)

사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신부;
사용자 질의를 분석하여 질문 템플릿을 생성하고, 자연어 처리 및 딥러닝 모델을 사용하여 유사 질문 템플릿을 생성하며, 상기 질문 템플릿와 상기 유사 질문 템플릿 중 상기 사용자 질의와 유사도가 높은 템플릿을 결정하고, 상기 결정된 템플릿과 상기 사용자 질의가 같은 의미인지 판단하는 질의 확장부; 및
상기 질의 확장부를 학습(training)시키기 위한 학습 데이터를 생성하는 학습 데이터 구축부;
를 포함하는 인공 지능 질의 응답 시스템.
a user query receiver for receiving a user query from the user terminal;
A question template is generated by analyzing a user query, a similar question template is generated using a natural language processing and deep learning model, a template having a high degree of similarity to the user query among the question template and the similar question template is determined, and the determined template and a query expansion unit for determining whether the user query has the same meaning; and
a training data construction unit generating training data for training the query extension unit;
Artificial intelligence question and answer system comprising a.
제 1 항에 있어서,
상기 질문 템플릿 및 상기 유사 질문 템플릿은 엔티티(Entity), 어트리뷰트(attribute) 및 즉답(instant answer) 로 이루어진 시맨틱 트리플(semantic triple) 기반의 질문 템플릿인, 인공 지능 질의 응답 시스템.
The method of claim 1,
wherein the question template and the similar question template are a semantic triple-based question template comprising an entity, an attribute, and an instant answer.
제 1 항에 있어서,
상기 학습 데이터 구축부는,
한국어인 제1 문장을 특정 외국어로 번역하고, 특정 외국어로 번역한 제1 문장을 다시 한국어로 번역하여 제2 문장을 획득하며, 생성된 제2 문장을 학습 데이터로 구축하는, 인공 지능 질의 응답 시스템.
The method of claim 1,
The learning data construction unit,
An artificial intelligence question and answer system that translates a first sentence in Korean into a specific foreign language, translates the first sentence translated into a specific foreign language back into Korean to obtain a second sentence, and builds the generated second sentence as learning data .
제 1 항에 있어서,
상기 질의 확장부는,
상기 사용자 질의를 자연어 처리하는 자연어 확장 모듈; 및
상기 자연어 처리된 사용자 질의를 패러프레이징(paraphrasing)을 통해 유사 질문 템플릿을 생성하는 패러프레이징 엔진; 을 포함하는, 인공 지능 질의 응답 시스템.
The method of claim 1,
The query extension is
a natural language extension module for natural language processing of the user query; and
a paraphrasing engine that generates a similar question template by paraphrasing the natural language-processed user query; Including, artificial intelligence question and answer system.
제 1 항에 있어서,
상기 사용자 질의와 상기 생성된 질문 템플릿이 일치하지 않는 경우, 상기 생성된 질문 템플릿에 대응하는 즉답을 사용자 단말에 제공하는, 인공 지능 질의 응답 시스템.
The method of claim 1,
When the user query and the generated question template do not match, providing an immediate answer corresponding to the generated question template to the user terminal.
사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신 단계;
사용자 질의를 분석하여 질문 템플릿을 생성하고, 자연어 처리 및 딥러닝 모델을 사용하여 유사 질문 템플릿을 생성하며, 상기 질문 템플릿와 상기 유사 질문 템플릿 중 상기 사용자 질의와 유사도가 높은 템플릿을 결정하고, 상기 결정된 템플릿과 상기 사용자 질의가 같은 의미인지 판단하는 질의 확장 단계; 및
상기 딥러닝 모델을 학습(training)시키기 위한 학습 데이터를 생성하는 학습 데이터 구축 단계;
를 포함하는 인공 지능 질의 응답 방법.
a user query receiving step of receiving a user query from a user terminal;
A question template is generated by analyzing a user query, a similar question template is generated using a natural language processing and deep learning model, a template having a high degree of similarity to the user query among the question template and the similar question template is determined, and the determined template and a query expansion step of determining whether the user query has the same meaning; and
a training data construction step of generating training data for training the deep learning model;
Artificial intelligence question and answer method comprising a.
제 6 항에 있어서,
상기 질문 템플릿 및 상기 유사 질문 템플릿은 엔티티(Entity), 어트리뷰트(attribute) 및 즉답(instant answer) 로 이루어진 시맨틱 트리플(semantic triple) 기반의 질문 템플릿인, 인공 지능 질의 응답 방법.
7. The method of claim 6,
wherein the question template and the similar question template are a semantic triple-based question template comprising an entity, an attribute, and an instant answer.
제 6 항에 있어서,
상기 학습 데이터 구축 단계는,
한국어인 제1 문장을 특정 외국어로 번역하고, 특정 외국어로 번역한 제1 문장을 다시 한국어로 번역하여 제2 문장을 획득하며, 생성된 제2 문장을 학습 데이터로 구축하는, 인공 지능 질의 응답 방법.
7. The method of claim 6,
The step of constructing the learning data is,
Artificial intelligence question answering method, in which a first sentence in Korean is translated into a specific foreign language, the first sentence translated into a specific foreign language is translated back into Korean to obtain a second sentence, and the generated second sentence is constructed as learning data .
제 6 항에 있어서,
상기 질의 확장 단계는,
상기 사용자 질의를 자연어 처리하는 단계; 및
상기 자연어 처리된 사용자 질의를 패러프레이징(paraphrasing)을 통해 유사 질문 템플릿을 생성하는 단계; 를 포함하는, 인공 지능 질의 응답 방법.
7. The method of claim 6,
The query expansion step is
natural language processing of the user query; and
generating a similar question template by paraphrasing the natural language-processed user query; Including, artificial intelligence question and answer method.
제 6 항에 있어서,
상기 사용자 질의와 상기 생성된 질문 템플릿이 일치하지 않는 경우, 상기 생성된 질문 템플릿에 대응하는 즉답을 사용자 단말에 제공하는, 인공 지능 질의 응답 방법.
7. The method of claim 6,
When the user query and the generated question template do not match, providing an immediate answer corresponding to the generated question template to the user terminal.
사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신부;
패러프레이징 엔진을 사용하여 상기 사용자 질의의 유사 질문 템플릿을 생성하는 질의 확장부;
상기 질의 확장부를 학습(training)시키기 위한 학습 데이터를 NMT(Neural Machine Translation) 엔진을 이용하여 생성하는 학습 데이터 구축부;를 포함하고,
상기 학습 데이터 구축부는,
상기 NMT 엔진을 사용하여 한국어인 제1 문장을 특정 외국어로 번역하고, 특정 외국어로 번역한 제1 문장을 다시 한국어로 번역하여 제2 문장을 획득하며, 생성된 제2 문장을 학습 데이터로 구축하는,
인공 지능 질의 응답 시스템.
a user query receiver for receiving a user query from the user terminal;
a query extension unit for generating a similar question template of the user query using a paraphrase engine;
a training data construction unit that generates training data for training the query extension unit using a Neural Machine Translation (NMT) engine;
The learning data construction unit,
Translating a first sentence in Korean into a specific foreign language using the NMT engine, obtaining a second sentence by translating the first sentence translated into a specific foreign language back into Korean, and constructing the generated second sentence as learning data ,
Artificial intelligence question and answer system.
사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신 단계;
패러프레이징 엔진을 사용하여 상기 사용자 질의의 유사 질문 템플릿을 생성하는 질의 확장 단계;
상기 질의 확장부를 학습(training)시키기 위한 학습 데이터를 NMT(Neural Machine Translation) 엔진을 이용하여 생성하는 학습 데이터 구축 단계; 를 포함하고,
상기 학습 데이터 구축 단계는,
상기 NMT 엔진을 사용하여 한국어인 제1 문장을 특정 외국어로 번역하고, 특정 외국어로 번역한 제1 문장을 다시 한국어로 번역하여 제2 문장을 획득하며, 생성된 제2 문장을 학습 데이터로 구축하는,
를 포함하는 인공 지능 질의 응답 시스템.
a user query receiving step of receiving a user query from a user terminal;
a query expansion step of generating a similar question template of the user query using a paraphrase engine;
a training data construction step of generating training data for training the query extension unit using a Neural Machine Translation (NMT) engine; including,
The step of constructing the learning data is,
Translating a first sentence in Korean into a specific foreign language using the NMT engine, obtaining a second sentence by translating the first sentence translated into a specific foreign language back into Korean, and constructing the generated second sentence as learning data ,
Artificial intelligence question and answer system comprising a.
제 12 항에 있어서,
상기 유사 질문 템플릿은 엔티티(Entity), 어트리뷰트(attribute) 및 즉답(instant answer) 로 이루어진 시맨틱 트리플(semantic triple) 기반의 질문 템플릿인, 인공 지능 질의 응답 시스템.
13. The method of claim 12,
The similar question template is a question template based on a semantic triple consisting of an entity, an attribute, and an instant answer.
사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신 단계;
패러프레이징 엔진을 사용하여 상기 사용자 질의의 유사 질문 템플릿을 생성하는 질의 확장 단계;
상기 질의 확장부를 학습(training)시키기 위한 학습 데이터를 NMT(Neural Machine Translation) 엔진을 이용하여 생성하는 학습 데이터 구축 단계;를 포함하고,
상기 학습 데이터 구축 단계는,
상기 NMT 엔진을 사용하여 한국어인 제1 문장을 특정 외국어로 번역하고, 특정 외국어로 번역한 제1 문장을 다시 한국어로 번역하여 제2 문장을 획득하며, 생성된 제2 문장을 학습 데이터로 구축하는,
를 포함하는 인공 지능 질의 응답 방법.
a user query receiving step of receiving a user query from a user terminal;
a query expansion step of generating a similar question template of the user query using a paraphrase engine;
a training data construction step of generating training data for training the query extension unit using a Neural Machine Translation (NMT) engine;
The step of constructing the learning data is,
Translating a first sentence in Korean into a specific foreign language using the NMT engine, obtaining a second sentence by translating the first sentence translated into a specific foreign language back into Korean, and constructing the generated second sentence as learning data ,
Artificial intelligence question and answer method comprising a.
제 14 항에 있어서,
상기 유사 질문 템플릿은 엔티티(Entity), 어트리뷰트(attribute) 및 즉답(instant answer) 로 이루어진 시맨틱 트리플(semantic triple) 기반의 질문 템플릿인, 인공 지능 질의 응답 방법.
15. The method of claim 14,
The similar question template is a question template based on a semantic triple consisting of an entity, an attribute, and an instant answer.
사용자 단말로부터 사용자 질의를 수신하는 사용자 질의 수신부;
패러프레이징 엔진을 사용하여 상기 사용자 질의의 유사 질문 템플릿을 생성하는 질의 확장부;
상기 질의 확장부를 학습(training)시키기 위한 학습 데이터를 NMT(Neural Machine Translation) 엔진을 이용하여 생성하는 학습 데이터 구축부;를 포함하고,
상기 학습 데이터 구축부는,
신경망 기반의 상기 NMT 엔진으로 사용자 로그 데이터를 번역 및 재번역하여 학습 데이터를 생성하는 NMT 엔진 관리부; 및
상기 NMT 엔진 관리부에 의해 생성된 학습 데이터를 저장하고, 상기 생성된 학습 데이터를 이용하여 상기 패러프레이징 엔진에 적용될 수 있는 패러프레이징 모델의 학습을 진행하고, 상기 패러프레이징 모델을 테스트 및 검증하는 학습 데이터 관리부; 를 포함하는, 인공 지능 질의 응답 시스템.
a user query receiver for receiving a user query from the user terminal;
a query extension unit for generating a similar question template of the user query using a paraphrase engine;
a training data construction unit that generates training data for training the query extension unit using a Neural Machine Translation (NMT) engine;
The learning data construction unit,
NMT engine management unit for generating learning data by translating and re-translating user log data with the NMT engine based on the neural network; and
Learning data for storing the learning data generated by the NMT engine management unit, learning a paraphrase model that can be applied to the paraphrase engine using the generated learning data, and testing and verifying the paraphrase model Management; Including, artificial intelligence question and answer system.
KR1020200076781A 2018-09-19 2020-06-23 Method, system and computer program for artificial intelligence answer KR102261199B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200076781A KR102261199B1 (en) 2018-09-19 2020-06-23 Method, system and computer program for artificial intelligence answer

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180112488A KR102128549B1 (en) 2018-09-19 2018-09-19 Method, system and computer program for artificial intelligence answer
KR1020200076781A KR102261199B1 (en) 2018-09-19 2020-06-23 Method, system and computer program for artificial intelligence answer

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180112488A Division KR102128549B1 (en) 2018-09-19 2018-09-19 Method, system and computer program for artificial intelligence answer

Publications (2)

Publication Number Publication Date
KR20200083404A KR20200083404A (en) 2020-07-08
KR102261199B1 true KR102261199B1 (en) 2021-06-07

Family

ID=71601432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200076781A KR102261199B1 (en) 2018-09-19 2020-06-23 Method, system and computer program for artificial intelligence answer

Country Status (1)

Country Link
KR (1) KR102261199B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023128021A1 (en) * 2021-12-30 2023-07-06 포항공과대학교 산학협력단 Method for enhancing learning data set in natural language processing system

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11741317B2 (en) * 2020-05-25 2023-08-29 Rajiv Trehan Method and system for processing multilingual user inputs using single natural language processing model
KR102448733B1 (en) * 2020-11-18 2022-09-30 주식회사 스캐터랩 Dialog system for response selecting considering turn configuration in context and the method thereof
WO2022108206A1 (en) * 2020-11-19 2022-05-27 숭실대학교산학협력단 Method and apparatus for completing describable knowledge graph
CN114697280A (en) * 2022-03-01 2022-07-01 西安博纳吉生物科技有限公司 Instant messaging method for preset content
KR102671436B1 (en) * 2023-11-22 2024-05-31 파인더갭 주식회사 Device, method and program for evaluating security reports based on artificial intelligence

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101678787B1 (en) * 2015-07-15 2016-12-06 포항공과대학교 산학협력단 Method for automatic question-answering and apparatus therefor

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102191425B1 (en) * 2013-07-29 2020-12-15 한국전자통신연구원 Apparatus and method for learning foreign language based on interactive character
KR101835345B1 (en) * 2016-02-29 2018-03-07 경기대학교 산학협력단 Concept graph expansion system based on knowledge base
KR102544249B1 (en) * 2016-11-28 2023-06-16 삼성전자주식회사 Electronic device and method thereof for performing translation by sharing context of utterance
KR101851787B1 (en) 2017-05-11 2018-04-24 주식회사 마인드셋 Domain matching device and method for multi-domain natural language processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101678787B1 (en) * 2015-07-15 2016-12-06 포항공과대학교 산학협력단 Method for automatic question-answering and apparatus therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023128021A1 (en) * 2021-12-30 2023-07-06 포항공과대학교 산학협력단 Method for enhancing learning data set in natural language processing system

Also Published As

Publication number Publication date
KR20200083404A (en) 2020-07-08

Similar Documents

Publication Publication Date Title
KR102128549B1 (en) Method, system and computer program for artificial intelligence answer
KR102261199B1 (en) Method, system and computer program for artificial intelligence answer
US10878009B2 (en) Translating natural language utterances to keyword search queries
CN109783651B (en) Method and device for extracting entity related information, electronic equipment and storage medium
TWI684881B (en) Method, system and non-transitory machine-readable medium for generating a conversational agentby automatic paraphrase generation based on machine translation
US7853582B2 (en) Method and system for providing information services related to multimodal inputs
KR102090237B1 (en) Method, system and computer program for knowledge extension based on triple-semantic
US20220414463A1 (en) Automated troubleshooter
US8370323B2 (en) Providing information services related to multimodal inputs
KR20230075052A (en) Method, computer device, and computer program for providing domain-specific conversation using language model
WO2024011813A1 (en) Text expansion method and apparatus, device, and medium
KR20200033058A (en) Method, system and computer program for generating speech recognition learning data
CN116541493A (en) Interactive response method, device, equipment and storage medium based on intention recognition
CN111382563A (en) Text relevance determining method and device
JP7169770B2 (en) Artificial intelligence programming server and its program
CN114330483A (en) Data processing method, model training method, device, equipment and storage medium
CN117932022A (en) Intelligent question-answering method and device, electronic equipment and storage medium
CN111046168B (en) Method, apparatus, electronic device and medium for generating patent summary information
US20210149900A1 (en) Method, system and computer program for semantic triple-based knowledge extension
EP3822817A1 (en) Method, system and computer program for semantic triple-based knowledge extension
CN117235237B (en) Text generation method and related device
CN113822034B (en) Method, device, computer equipment and storage medium for replying text
CN110147544B (en) Instruction generation method and device based on natural language and related equipment
Narayan et al. Pre-Neural Approaches
CN118246474A (en) Tool routing method and device

Legal Events

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