KR20190105175A - 전자 장치 및 이의 자연어 생성 방법 - Google Patents

전자 장치 및 이의 자연어 생성 방법 Download PDF

Info

Publication number
KR20190105175A
KR20190105175A KR1020180021320A KR20180021320A KR20190105175A KR 20190105175 A KR20190105175 A KR 20190105175A KR 1020180021320 A KR1020180021320 A KR 1020180021320A KR 20180021320 A KR20180021320 A KR 20180021320A KR 20190105175 A KR20190105175 A KR 20190105175A
Authority
KR
South Korea
Prior art keywords
natural language
input data
slots
artificial intelligence
generation template
Prior art date
Application number
KR1020180021320A
Other languages
English (en)
Other versions
KR102469712B1 (ko
Inventor
최형탁
전희식
김지희
양해훈
황인철
강승수
박현우
이다예
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180021320A priority Critical patent/KR102469712B1/ko
Priority to US16/966,249 priority patent/US11657237B2/en
Priority to PCT/KR2019/001164 priority patent/WO2019164144A1/ko
Publication of KR20190105175A publication Critical patent/KR20190105175A/ko
Application granted granted Critical
Publication of KR102469712B1 publication Critical patent/KR102469712B1/ko

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
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • 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/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N99/00Subject matter not provided for in other groups of this subclass

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Machine Translation (AREA)

Abstract

본 개시에서는 전자 장치 및 이의 자연어 생성 방법이 제공된다. 본 개시의 전자 장치의 자연어 생성 방법은, 응답을 생성하기 위한 복수의 슬롯에 대한 정보가 포함된 입력 데이터를 획득하고, 자연어 생성 템플릿 및 자연어를 획득하도록 학습된 인공지능 모델 중 하나에 상기 복수의 슬롯에 대한 정보를 입력하여 입력 데이터에 대응되는 자연어를 획득하며, 획득된 자연어를 출력할 수 있다. 특히, 응답을 제공하기 위한 자연어를 획득하는 방법의 적어도 일부는 기계학습, 신경망 또는 딥러닝 라고리즘 중 적어도 하나에 따라 학습된 인공지능 모델을 이용할 수 있다.

Description

전자 장치 및 이의 자연어 생성 방법{Electronic device and Method for generating Natural Language thereof}
본 개시는 전자 장치 및 이의 자연어 생성 방법에 관한 것으로, 더욱 상세하게는 대화 시스템에서 사용자 입력에 대한 응답을 자연어로 제공할 수 있는 전자 장치 및 이의 자연어 생성 방법에 관한 것이다.
또한, 본 개시는 기계 학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 인공 지능(Artificial Intelligence, AI) 시스템 및 그 응용에 관한 것이다.
근래에는 인간 수준의 지능을 구현하는 인공 지능 시스템이 다양한 분야에서 이용되고 있다. 인공 지능 시스템은 기존의 룰(rule) 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 룰 기반 스마트 시스템은 점차 딥러닝 기반 인공 지능 시스템으로 대체되고 있다.
인공 지능 기술은 기계학습(예로, 딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공 지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 오브젝트 인식, 오브젝트 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
한편, 근래에는 다양한 기업이 인공지능 모델을 이용하여 사용자 입력(특히, 사용자 음성)에 대한 응답을 제공할 수 있는 대화 시스템(Dialogue System)을 제공되고 있다. 이러한 대화 시스템은 보통 자동 음성 인식(Automatic Speech Recognition (ASR)) 모듈, 자연어 이해(Natural Language Understanding (NLU)) 모듈, 대화 관리(Dialogue Management (DM)) 모듈, 자연어 생성(Natural Language Generation) 모듈 및 TTS(Text-To-Speech) 모듈을 포함한다.
전자 장치가 대화 시스템을 이용하여 사용자에게 최적의 응답을 제공하기 위해서는 상술한 모듈들 각각의 처리 결과가 정확하여야 한다. 특히, 사람과 전자 장치 사이의 자연스러운 대화를 위하여, 자연어 생성 모듈은 사용자 음성에 응답한 최적의 자연어를 생성해야 한다. 만약, 자연어 생성 모듈이 이상하거나 어색한 응답을 제공할 경우, 대화 시스템의 사용성이 낮아지는 문제가 발생될 수 있다. 따라서, 자연어 생성 모듈이 정확한 응답을 포함하는 자연어를 생성하는 것이 대화 시스템에서 매우 중요한 과제이다.
기존의 자연어 생성 모듈은 자연어 생성 템플릿을 이용하여 자연어를 생성하였다. 그러나, 자연어 생성 모듈이 자연어 생성 템플릿을 이용하여 자연어를 생성하는 경우, 다양한 응답을 제공하기 위해서는 다양한 상황에 대한 많은 케이스의 자연어 생성 템플릿이 요구되는 문제점이 있다.
본 개시의 목적은 다양한 케이스에 대한 정확한 응답을 제공하기 위하여, 자연어 생성 템플릿 및 자연어를 획득하도록 학습된 인공지능 모델 중 하나에 복수의 슬롯을 포함하는 입력 데이터를 입력하여 사용자 입력에 대한 응답을 포함하는 자연어를 생성할 수 있는 전자 장치 및 이의 자연어 생성 방법을 제공함에 있다.
본 개시의 일 실시예에 따른, 전자 장치의 자연어 생성 방법은, 응답을 생성하기 위한 복수의 슬롯에 대한 정보가 포함된 입력 데이터를 획득하는 단계; 자연어 생성 템플릿 및 자연어를 획득하도록 학습된 인공지능 모델 중 하나에 상기 복수의 슬롯에 대한 정보를 입력하여 상기 입력 데이터에 대응되는 자연어를 획득하는 단계; 및 상기 획득된 자연어를 출력하는 단계;를 포함한다.
그리고, 상기 획득하는 단계는, 상기 복수의 슬롯에 대한 정보를 바탕으로 상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는지 여부를 판단하는 단계; 및 상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는 경우, 상기 자연어 생성 템플릿을 이용하여 상기 입력 데이터에 대한 자연어를 획득하는 단계;를 포함할 수 있다.
또한, 상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하지 않는 경우, 상기 복수의 슬롯에 대한 정보를 인공지능 모델에 입력하여 상기 입력 데이터에 대한 자연어를 획득하는 단계;를 포함할 수 있다.
그리고, 상기 획득하는 단계는, 상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하지 않는 경우, 기 저장된 자연어 생성 템플릿 중 상기 입력 데이터에 대응되는 자연어 생성 템플릿과 가장 유사한 유사 템플릿을 이용하여 상기 입력 데이터에 대한 제1 자연어를 획득하는 단계; 상기 복수의 슬롯에 대한 정보를 인공지능 학습 모델에 입력하여 상기 입력 데이터에 대한 제2 자연어를 획득하는 단계; 및 상기 제1 자연어 및 상기 제2 자연어에 대한 스코어를 계산하여 제1 자연어 및 상기 제2 자연어 중 스코어가 높은 자연어를 상기 입력 데이터에 대한 자연어로 획득하는 단계;를 포함할 수 있다.
또한, 상기 획득하는 단계는, 상기 제1 자연어 및 상기 제2 자연어에 대한 스코어가 모두 임계값 미만인 경우, 디폴트된 자연어 생성 템플릿을 이용하여 상기 입력 데이터에 대한 자연어를 획득하는 단계;를 포함할 수 있다.
그리고, 상기 인공지능 모델은, 상기 자연어 생성 템플릿에 포함된 n개의 슬롯보다 많은 개수의 슬롯을 포함하는 학습 데이터를 이용하여 상기 n 개의 슬롯보다 많은 개수의 슬롯을 포함하는 학습 데이터에 대한 자연어를 획득하도록 학습될 수 있다.
또한, 상기 자연어 생성 템플릿은, n개의 슬롯에 대한 정보를 포함하는 학습 데이터를 상기 인공지능 모델에 입력하여 획득된 상기 학습 데이터에 대한 자연어를 템플릿화하여 생성될 수 있다.
한편, 본 개시의 일 실시예에 따른, 전자 장치는, 적어도 하나의 명령을 포함하는 메모리; 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서;를 포함하며, 상기 프로세서는, 상기 적어도 하나의 명령을 실행함으로써, 응답을 생성하기 위한 복수의 슬롯에 대한 정보가 포함된 입력 데이터를 획득하고, 상기 메모리에 저장된 자연어 생성 템플릿 및 자연어를 획득하도록 학습된 인공지능 모델 중 하나에 상기 복수의 슬롯에 대한 정보를 입력하여 상기 입력 데이터에 대응되는 자연어를 획득하고, 상기 획득된 자연어를 출력할 수 있다.
그리고, 상기 프로세서는, 상기 복수의 슬롯에 대한 정보를 바탕으로 상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는지 여부를 판단하고, 상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는 경우, 상기 자연어 생성 템플릿을 이용하여 상기 입력 데이터에 대한 자연어를 획득할 수 있다.
또한, 상기 프로세서는, 상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하지 않는 경우, 상기 복수의 슬롯에 대한 정보를 인공지능 모델에 입력하여 상기 입력 데이터에 대한 자연어를 획득할 수 있다.
그리고, 상기 프로세서는, 상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하지 않는 경우, 기 저장된 자연어 생성 템플릿 중 상기 입력 데이터에 대응되는 자연어 생성 템플릿과 가장 유사한 유사 템플릿을 이용하여 상기 입력 데이터에 대한 제1 자연어를 획득하고, 상기 복수의 슬롯에 대한 정보를 인공지능 학습 모델에 입력하여 상기 입력 데이터에 대한 제2 자연어를 획득하며, 상기 제1 자연어 및 상기 제2 자연어에 대한 스코어를 계산하여 제1 자연어 및 상기 제2 자연어 중 스코어가 높은 자연어를 상기 입력 데이터에 대한 자연어로 획득할 수 있다.
또한, 상기 프로세서는, 상기 제1 자연어 및 상기 제2 자연어에 대한 스코어가 모두 임계값 미만인 경우, 디폴트된 자연어 생성 템플릿을 이용하여 상기 입력 데이터에 대한 자연어를 획득할 수 있다.
그리고, 상기 인공지능 모델은, 상기 자연어 생성 템플릿에 포함된 n개의 슬롯보다 많은 개수의 슬롯을 포함하는 학습 데이터를 이용하여 상기 n 개의 슬롯보다 많은 개수의 슬롯을 포함하는 학습 데이터에 대한 자연어를 획득하도록 학습될 수 있다.
또한, 상기 자연어 생성 템플릿은, n 개의 슬롯에 대한 정보를 포함하는 학습 데이터를 상기 인공지능 모델에 입력하여 획득된 상기 학습 데이터에 대한 자연어를 템플릿화하여 생성될 수 있다.
한편, 본 개시의 일 실시예에 따른, 자연어를 생성하는 방법을 실행하기 위한 프로그램을 저장하는 컴퓨터 판독가능 기록매체에 있어서, 상기 방법은, 응답을 생성하기 위한 복수의 슬롯에 대한 정보가 포함된 입력 데이터를 획득하는 단계; 자연어 생성 템플릿 및 자연어를 획득하도록 학습된 인공지능 모델 중 하나에 상기 복수의 슬롯에 대한 정보를 입력하여 상기 입력 데이터에 대응되는 자연어를 획득하는 단계; 및 상기 획득된 자연어를 출력하는 단계;를 포함할 수 있다.
상술한 바와 같은 실시예들에 따라, 전자 장치가 다양한 상황의 사용자 입력에 대한 응답을 더욱 정확하게 제공할 수 있으므로, 대화 시스템의 사용성이 증가될 수 있다.
도 1은 본 개시의 일 실시예에 따른, 전자 장치의 구성을 간략히 도시한 블럭도,
도 2는 본 개시의 일 실시예에 따른, 대화 시스템에 포함된 구성을 나타내는 블럭도,
도 3은 본 개시의 일 실시예에 따른, 자연어 생성부에 포함된 구성을 나타내는 블럭도,
도 4 내지 도 6은 본 개시의 일 실시예에 따른, 자연어 생성부에 포함된 도구 플랫폼(tool platform)을 설명하기 위한 도면들,
도 7 및 도 8은 본 개시의 일 실시예에 따른, 자연어 생성부에 포함된 엔진 플랫폼(engine platform)을 설명하기 위한 도면들,
도 9는 본 개시의 다른 실시예에 따른, 자연어 생성부에 포함된 구성을 나타내는 블럭도,
도 10a 내지 도 10c는 본 개시의 일 실시예에 따른, 자연어를 획득하기 위한 인공지능 모델을 학습하는 방법을 설명하기 위한 도면,
도 11은 본 개시의 일 실시예에 따른, 전자 장치의 구성을 상세히 도시한 블럭도, 그리고,
도 12는 본 개시의 일 실시예에 따른, 전자 장치의 자연어 생성 방법을 설명하기 위한 흐름도이다.
이하, 본 문서의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 문서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 부프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimediaplayer), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다. 어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 토스터, 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다.
본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
이하에서는 도면을 참조하여 본 개시에 대해 더욱 상세히 설명하기로 한다. 도 1은 본 개시의 일 실시예에 따른, 전자 장치의 구성을 간략히 도시한 블럭도이다. 도 1에 도시된 바와 같이, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다.
메모리(110)는 전자 장치(100)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 특히, 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다. 또한, 메모리(110)에는 디스플레이부(110)의 디스플레이 영역에 표시될 각종 화면을 구성하기 위한 프로그램 및 데이터 등이 저장될 수 있다.
또한, 메모리(110)는 사용자 입력(특히, 사용자 음성)에 대한 응답을 제공하는 대화 시스템(Dialogue system)을 저장할 수 있다. 이때, 대화 시스템은 도 2에 도시된 바와 같이, 자동 음성 인식부(Automatic Speech Recognition, ASR)(210), 자연어 이해부(Natural Language Understanding, NLU)(220), 대화 매니저(Dialogue Manager, DM)(230), 자연어 생성부(Natural Language Generator, NLG)(240) 및 TTS(Text-to-Speech)(250)를 포함할 수 있다.
자동 음성 인식부(210)는 마이크 등을 통해 입력된 사용자 음성에 대한 음성 인식을 수행할 수 있다. 자연어 이해부(220)는 음성 인식 결과를 바탕으로 사용자 음성의 의도(intent) 및 엔티티(entity)를 파악할 수 있다. 대화 매니저(230)는 자연어 이해 결과를 바탕으로 사용자 음성에 대한 응답에 대한 정보를 획득할 수 있다. 이때, 대화 매니저(230)는 응답을 생성하기 위한 복수의 슬롯에 대한 정보를 획득할 수 있다. 자연어 생성부(240)는 대화 매니저(230)를 통해 획득된 복수의 슬롯에 대한 정보를 바탕으로 사용자 음성에 대한 응답으로서, 자연어를 획득할 수 있다. TTS(250)는 획득된 자연어를 음성으로 변환할 수 있다 이에 의해, 대화 시스템은 사용자 음성에 대한 응답을 음성으로서 제공할 수 있게 되어, 사용자는 전자 장치(100)와 대화를 수행할 수 있게 된다.
특히, 본 개시의 일 실시예에 따른 자연어 생성부(240)는 복수의 슬롯에 대한 정보를 자연어 생성 템플릿 및 인공지능 모델 중 하나에 입력하여 사용자 음성에 대한 응답으로서, 자연어를 획득할 수 있다.
또한, 메모리(110)는 대화 시스템을 동작하기 위한 인공지능 에이전트를 저장할 수 있다. 구체적으로, 전자 장치(100)는 사용자 음성에 대한 응답으로 자연어를 생성하기 위하여 인공지능 에이전트(Artificial intelligence agent)를 이용할 수 있다. 이때, 인공지능 에이전트는 AI(Artificial Intelligence) 기반의 서비스(예를 들어, 음성 인식 서비스, 비서 서비스, 번역 서비스, 검색 서비스 등)를 제공하기 위한 전용 프로그램으로서, 기존의 범용 프로세서(예를 들어, CPU) 또는 별도의 AI 전용 프로세서(예를 들어, GPU 등)에 의해 실행될 수 있다. 특히, 인공지능 에이전트는 후술할 다양한 모듈을 제어할 수 있다.
구체적으로, 사용자 음성이 입력된 경우, 인공지능 에이전트가 동작할 수 있다. 그리고, 인공지능 에이전트는 사용자 음성을 이해하여 응답을 제공하기 위한 보구의 슬롯에 대한 정보를 획득하고, 획득된 복수의 슬롯에 대한 정보를 인공지능 학습모델에 입력하여 자연어를 획득할 수 있다.
물론, 사용자 음성(특히, 인공지능 기능을 실행하기 위한 트리거 음성)이 입력되거나 기설정된 버튼(예를 들어, 인공지능 비서기능을 실행하기 위한 버튼)이 선택되면, 인공지능 에이전트가 동작할 수도 있다. 또는, 인공지능 에이전트는 사용자 음성이 입력되거나 기설정된 버튼이 선택되기 이전에 기 실행된 상태일 수 있다. 이 경우, 사용자 음성이 입력되거나 기설정된 버튼이 입력된 이후에 전자 장치(100)의 인공지능 에이전트가 사용자 음성에 대한 응답으로 자연어를 획득할 수 있다. 또한, 인공지능 에이전트는 사용자 음성이 입력되거나 기설정된 버튼이 선택되기 이전에 대기 상태일 수 있다. 여기서, 대기 상태란, 인공지능 에이전트의 동작 시작을 제어하기 위해 미리 정의된 사용자 입력이 수신되는 것을 감지하는 상태이다. 인공지능 에이전트가 대기 상태인 동안 사용자 음성이 입력되거나 기설정된 버튼이 선택되면, 전자 장치(100)는 인공지능 에이전트를 동작시키고, 사용자 음성에 대한 응답으로 자연어를 획득할 수 있다. 한편, 인공지능 에이전트는 후술할 다양한 모듈을 제어할 수 있다. 이에 대해서는 추후 상세히 설명하기로 한다.
또한, 본 개시의 일 실시예에 따른, 자연어를 생성(또는 획득)하도록 학습된 인공지능 모델을 저장할 수 있다. 본 개시에서 학습된 인공지능 모델은 인식 모델의 적용 분야 또는 장치의 컴퓨터 성능 등을 고려하여 구축될 수 있다. 예로, 인공지능 모델은 복수의 슬롯에 대한 정보를 입력 데이터로 사용하여 자연어를 획득하도록 학습될 수 있다. 자연스로운 자연어를 생성하기 위해, 학습된 인공지능 모델은, 예로, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 인공지능 모델은 인간의 뇌 구조를 컴퓨터 상에서 모의하도록 설계될 수 있으며 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 가지는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 노드들은 뉴런이 시냅스(synapse)를 통하여 신호를 주고 받는 뉴런의 시냅틱(synaptic) 활동을 모의하도록 각각 연결 관계를 형성할 수 있다. 또한, 문서 요약 모델은, 일 예로, 신경망 모델, 또는 신경망 모델에서 발전한 딥 러닝 모델을 포함할 수 있다. 딥 러닝 모델에서 복수의 네트워크 노드들은 서로 다른 깊이(또는, 레이어)에 위치하면서 컨볼루션(convolution) 연결 관계에 따라 데이터를 주고 받을 수 있다. 학습된 인공지능 모델의 예에는 DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 등이 있을 수 있으나 이에 한정되지 않는다.
한편, 인공지능 모델은 복수의 슬롯에 대한 정보를 입력 데이터로 사용하여 자연어를 생성할 수 있으나, 이는 일 실시예에 불과할 뿐, 자연어를 생성하기 위한 자연어 생성 템플릿을 생성할 수 있다.
또한, 상술한 실시예에서는 인공지능 모델이 전자 장치(100)에 저장되는 것으로 설명하였으나, 이는 일 실시예에 불과할 뿐, 인공지능 모델은 다른 전자 장치에 저장될 수 있다.
프로세서(120)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작 및 기능을 제어할 수 있다.  특히, 프로세서(120)는 적어도 하나의 명령을 실행함으로써, 응답을 생성하기 위한 복수의 슬롯에 대한 정보가 포함된 입력 데이터를 획득하고, 메모리(110)에 저장된 자연어 생성 템플릿 및 자연어를 획득하도록 학습된 인공지능 모델 중 하나에 복수의 슬롯에 대한 정보를 입력하여 입력 데이터에 대응되는 자연어를 획득하고, 획득된 자연어를 출력할 수 있다. 이때, 슬롯에 대한 정보는 자연어를 구성하기 위한 엔티티에 대응되는 정보를 포함할 수 있다.
특히, 프로세서(120)는 복수의 슬롯에 대한 정보를 바탕으로 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는지 여부를 판단할 수 있다. 예로, 복수의 슬롯이 "device"와 "location"인 경우, 프로세서(120)는 "장치"와 "장소"로 이루어진 자연어 생성 템플릿이 존재하는지 여부를 판단할 수 있다.
입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는 경우, 프로세서(120)는 자연어 생성 템플릿을 이용하여 입력 데이터에 대한 자연어를 획득할 수 있다. 이때, 자연어 생성 템플릿은 미리 만들어진 문장 구조에 복수의 슬롯에 대한 정보를 입력하여 자연어를 생성할 수 있는 템플릿이다. 또한, 자연어 생성 템플릿은 사용자에 의해 미리 생성될 수 있으나, 이는 일 실시예에 불과할 뿐, n 개의 슬롯에 대한 정보를 포함하는 학습 데이터를 인공지능 모델에 입력하여 획득된 학습 데이터에 대한 자연어를 템플릿화하여 생성될 수 있다.
입력 데이터에 대응되는 자연어 생성 템플릿이 존재하지 않는 경우, 프로세서(120)는 복수의 슬롯에 대한 정보를 인공지능 모델에 입력하여 입력 데이터에 대한 자연어를 획득할 수 있다. 이때, 학습된 인공지능 모델은 자연어 생성 템플릿에 포함된 n 개의 슬롯보다 많은 개수의 슬롯을 포함하는 학습 데이터를 이용하여 n 개의 슬롯보다 많은 개수의 슬롯을 포함하는 학습 데이터에 대한 자연어를 획득하도록 학습될 수 있다.
구체적으로, 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하지 않는 경우, 프로세서(120)는 기 저장된 자연어 생성 템플릿 중 입력 데이터에 대응되는 자연어 생성 템플릿과 가장 유사한 유사 템플릿을 이용하여 입력 데이터에 대한 제1 자연어를 획득하고, 복수의 슬롯에 대한 정보를 인공지능 학습 모델에 입력하여 입력 데이터에 대한 제2 자연어를 획득할 수 있다. 그리고, 프로세서(120)는 제1 자연어 및 상기 제2 자연어에 대한 스코어를 계산하여 제1 자연어 및 상기 제2 자연어 중 스코어가 높은 자연어를 입력 데이터에 대한 자연어로 획득할 수 있다. 이때, 제1 자연어 및 제2 자연어에 대한 스코어가 모두 임계값 미만인 경우, 프로세서(120)는 디폴트된 자연어 생성 템플릿을 이용하여 입력 데이터에 대한 자연어를 획득할 수 있다.
이하에서는 도면을 참조하여 자연어 생성부(240)가 자연어를 획득하는 방법과 자연어를 획득하기 위한 인공지능 모델을 학습하는 방법을 설명하기로 한다.
우선, 도 3은 본 개시의 일 실시예에 따른, 자연어 생성부에 포함된 구성을 나타내는 블럭도이다. 도 3에 도시된 바와 같이, 자연어 생성부(240)는 도구 플랫폼(310) 및 엔진 플랫폼(320)을 포함한다.
도구 플랫폼(310)은 자연어를 생성하기 위한 템플렛 도구(Template Tool)(311) 및 인공지능 모델을 생성 및 학습하는 딥러닝 도구(Deep-learning Tool, DL Tool)(313)를 포함할 수 있다. 이때, 템플렛 도구(311)는 미리 만들어진 적어도 하나의 자연어 생성 템플릿을 포함할 수 있다. 이때, 자연어 생성 템플릿은 사용자에 의해 미리 만들어질 수 있으나, 이는 일 실시예에 불과할 뿐, 딥러닝 도구(313)에 저장된 인공지능 모델을 통해 만들어질 수 있다
엔진 플랫폼(320)은 도구 플랫폼(310)에 의해 저장된 자연어 생성 템플릿 및 인공지능 모델 중 하나를 이용하여 입력 데이터에 대응되는 자연어를 생성(또는 획득)할 수 있다. 구체적으로, 엔진 플랫폼(320)은 템플릿 엔진(321), 딥러닝 엔진(323) 및 랭커(325)를 포함할 수 있다. 템플릿 엔진(321)은 복수의 슬릿을 포함하는 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는지 여부를 판단할 수 있다. 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는 경우, 템플릿 엔진(321)은 입력 데이터에 대응되는 자연어 생성 템플릿을 이용하여 입력 데이터에 대응되는 자연어를 생성할 수 있다. 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하지 않는 경우, 딥러닝 엔진(323)은 인공지능 모델을 이용하여 입력 데이터에 대응되는 자연어를 획득할 수 있다. 그리고, 랭커(325)는 딥러닝 엔진(323)에 의해 획득된 자연어에 대한 스코어를 산출할 수 있다. 산출된 스코어가 기설정된 값 이상인 경우, 랭커(325)는 딥러닝 엔진(323)에 의해 획득된 자연어를 응답으로 출력할 수 있다.
이하에서는 도 4 내지 도 6을 참조하여 본 개시의 일 실시예에 따른, 자연어 생성부에 포함된 도구 플랫폼(310)을 설명하기로 한다.
도구 플랫폼(310)은 자연어 생성 템플릿을 쉽고 빠르게 입력할 수 있는 도구를 포함할 수 있다. 특히, 본 개시의 일 실시예에 따른, 도구 플랫폼(310)은 사용자 입력에 따라 언어 옵션을 설정함으로써, 다국어(multilingual) 입력을 지원할 수 있다. 즉, 도구 플랫폼(310)은 모든 언어에 대해 보편적으로 적용되거나 각 언어의 특성에 따라 각 언어에 맞게 조절될 수 있다. 예를 들어, 도구 플랫폼(310)은 사용자 입력에 따라 한국어와 영어가 설정될 수 있다.
특히, 도구 플랫폼(310)은 사용자 입력에 의해 설정된 언어 모델을 설정할 수 있다(410).
<Template Tree Generator>(420)
그리고, 도구 플랫폼(310)은 대화 정책(dialogue policy)에 따라 의도(intent), 상태(state), 엔티티(entity) 및 실행 결과(result of execution)와 같은 컨센서스 표준(consensus standards)을 기반으로 입력 데이터에 필요한 템플릿을 나타내는 트리를 생성할 수 있다. 본 개시의 일 실시예로, 도구 플랫폼(310)은 성공(success), 실패(fail), 확인(confirm), 선택(select) 및 슬롯 채우기(slotfilling) 등과 같은 5가지의 상태를 지원할 수 있다. 기본적으로, 도구 플랫폼(310)은 성공과 실패의 두 가지 상태를 생성할 수 있다. 또한, 도구 플랫폼(310)은 실패 상태를 "no.device", "no.response", "already.on" 등으로 세분화 할 수 있다. 또한, "확인" 상태는 실행 전에 사용자의 확인을 요청하는 데 사용될 수 있으며, "선택" 상태는 적어도 하나 엔티티를 선택하는데 이용될 수 있으며, "슬롯 채우기" 상태는 필수 엔티티(mandatory entity)를 채우는데 이용될 수 있다.
Figure pat00001
위의 표 1은 "Turn on the light in the living room"이라는 사용자 발화에 대한 가능한 태스크의 예를 나타낸다. 여기서, "turn.on"이 의도로 확인되며, "light" 및 "living room"가 엔티티로 확인되며, "count"가 실행 결과로부터 슬롯값으로 확인될 수 있다. 또한, 실행 결과는 전등이 성공적으로 켜지는지 여부에 따라 변경될 수 있다. 본 개시의 일 실시예로, 아래와 같은 실패 이유가 존재할 수 있다.
1. 전등이 존재하지 않음.
2. 전등 컨트롤러로부터 응답이 없음.
3. 거실과 안방과 같이 복수의 공간에 전등이 존재하고, 복수의 공간 옵션이 확인되지 않음.
4. 전등이 이미 켜져있음.
5. 거실에는 전등이 없으나 안방에는 전등이 존재함.
상술한 케이스는 의도를 설정하고 예상되는 실행 결과를 설립하는 동안 정의될 수 있다. 본 개시의 일 실시예에 따르면, 도구 플랫폼(310)은 엔티티가 채워진 템플릿 트리를 생성할 수 있다.
<Multilingual Response>(430)
도구 플랫폼(310)은 다국어 응답을 생성할 수 있다. 일 예로, 도구 플랫폼(310)은 각각의 의도 및 상태에 대해 엔티티가 포함된 자연어로 나타내질 수 있는 대표 문장을 입력받을 수 있다. 일 예로, 도구 플랫폼(310)은 의도가 "turn.on"이고, "no.device"라는 실패 상태에 대한 대표 문장으로서, 영어로는 "I couldn't turn it on because there is no light in the living room"를 입력받으며, 한국어로는 "거실에 전등이 없어서 불을 켤 수 없습니다."를 입력받을 수 있다.
도구 플랫폼(310)은 엔티티, 숫자, 주어, 동사, 명사, 전치사 및 후치사(postposition)를 분류하여 문장을 처리함으로써 엔티티로서 "전등"과 "거실"을 자동으로 추출할 수 있다. 또한, 도구 플랫폼(310)은 필요하다면 제거될 수 있는 구(phrase)를 확인할 수 있다. 도구 플랫폼(310)는 자동 추출 실패의 케이스의 경우에도 자동으로 커스터마이즈할 수 있다.
<Grammatical Agreenment>(440)
문법적 일치는 도 5의 과정을 거칠 수 있다.
1. 도구 플랫폼(410)은 엔티티로서 자연어 이해 모듈을 이용하여 <device> 및 <location>이라고 태그된 엔티티인 "전등"과 "거실"을 추출할 수 있다(510).
2. 도구 플랫폼(410)은 "전등"과 "거실"을 다른 단어로 대체될 수 있는 <device> 및 <location>으로 대체하는 delexicallization(또는 템플릿화) 동작을 수행할 수 있다(520). 이는 템플릿을 획득하거나 학습 데이터를 수집할 때 시간 및 노력을 줄일 수 있는 방법 중 하나이다.
3. 도구 플랫폼(410)은 문법을 확인하고 태그를 추가할 수 있다(530). 일 예로, 위치가 특정 공간, 나라, 도시 이름, 바닥 등의 여부에 따라 전치사인 "in"을 "on" 또는 "at"으로 변경할 수 있도록 "[preposition=location]"라는 태그를 추가할 수 있다. 즉, 문장에 하나 이상의 위치가 존재한다면, Grammar relizer는 "[preposition=location(2)]" 등과 같은 정보를 추가할 수 있다. 이는 "in [preposition=location(2)]" 뒤에 있는 <location>에 따라 "in"이 변경될 수 있음을 의미할 수 있다.
4. 도구 플랫폼(410)은 어색한 문장의 생성을 방지하기 위해, 문구를 확인하고 대괄호를 추가할 수 있다. 예를 들어, "device" 및/또는 "location" 정보가 전달되지 않은 경우, "I could not turn it on [because there is no light in the living room].", "I couldn't turn it on [because there is no light] in the living room." or "I couldn't turn it on because there is no light [in the living room]."등과 같이, 대괄호 안의 문구가 삭제된 문장을 생성할 필요가 있다. 이 방법으로, 아래의 표 2에 도시된 #1 및 #2의 입력 없이 #3이 필요할 수 있다. 또는, 더욱 자세한 표현을 위하여 #1 및 #2와 함께 #4가 입력될 수 있다.
Figure pat00002
<Conditional Response>(450)
도 6은 조건적 응답의 결과에 대한 GUI(graphical user interface)를 나타내며, 하나 이상 정보("[hide(hour=0)]" )를 도시하고 있다. 일 실시예로, "How long will in take?"라는 물음에 대해 세탁기의 응답으로 "It remains 1 hour and 30 minutes."가 획득될 수 있다. 그러나, "It remains 0 hour and 30 minutes." 또는 "It remains 1 hour and 0 minutes."은 올바른 응답을 아니므로, "0 hour"나 "0 minute"을 제거하기 위해 "[hide(hour=0)]" 또는 "[hide(min=0)]" 을 추가하여 문장을 생성할 수 있다.
< Incremental Generation>(460)
도구 플랫폼(310)은 표 3에 도시된 바와 같이, 기하급수적으로 템플릿의 수를 증가시킬 수 있다. 필요한 템플릿의 숫자는 의도, 상태 및 템플릿에 포함된 슬롯의 숫자들에 따라 결정될 수 있다. 구체적으로, 템플릿에 포함된 슬롯의 숫자에 따라 결정될 수 있다.
Figure pat00003
아래의 수학식 중 (1)은 일반적으로 슬롯의 숫자가 n 개일 때 필요한 템플릿의 숫자를 계산하기 위한 수학식이며, (2)는 문장에 포함된 슬롯의 숫자가 5개로 제한될 때 필요한 템플릿의 숫자를 계산하기 위한 수학식일 수 있다.
Figure pat00004
다행히, 실제 컴퓨터와 인간 사이의 커뮤니케이션에서는 하나의 문장 내에 5 개 이상의 슬롯이 필요한 케이스가 많지 않다. 그러므로, 필요한 템플릿의 개수는 이보다 적을 수 있다. 아래의 표 4는 5개 이상의 슬롯을 포함하는 드문 예를 도시하고 있다.
Figure pat00005
그러나, 다양한 잠재적인 의도, 템플릿에 포함된 슬롯의 개수, 적어도 3~5개의 상태가 존재하므로, 필요한 템플릿의 개수는 증가할 수 있다. 즉, 다양한 케이스의 문장을 생성하기 위하여 수 많은 템플릿이 필요할 수 있다.
예를 들어, 20개의 의도(예로, on, off, up, down, right, left, opem, close, set, show, send, start, activate, deactivate, play, stop, pause 등)가 존재하고 3개의 상태(예로, 성공, 실패, 슬롯 채우기 등)가 존재하며 템플릿에 6개의 슬롯이 존재하는 경우, 필요한 템플릿의 개수는 실패 케이스, 슬롯 채우기 및 다양한 케이스를 제외하더라도 98860 개가 필요할 수 있다. 아래의 수학식 2는 필요한 템플릿을 계산하는데 필요한 수식이다.
Figure pat00006
상술한 바와 같이, 필요한 모든 템플릿을 생성하고 관리하는 것이 쉽지 않으므로, 도구 플랫폼(310)은 딥 러닝으로 학습된 인공지능 모델을 이용하여 템플릿을 생성할 수 있다.
1. S1 및 S2 와 같이, 할당된 하나 또는 두 개의 슬롯을 포함하는 템플릿의 조합 리스트를 생성할 수 있다. 예를 들어, a,b,c,d,e의 5개 슬롯을 포함하는 경우, a,b,c,d,ab,ac,ad,ae,bc,bd,be,cd,ce,de의 총 15개의 조합이 있을 수 있다.
2. 동의어 사전과 Wordnet 등을 이용하여 학습 데이터를 생성할 수 있다.
3. 학습 데이터를 이용하여 인공지능 모델을 생성(또는 학습)할 수 있다.
4. 인공지능 모델을 이용하여 S3가 추가적으로 할당된 3개의 슬롯을 포함하는 문장의 조합을 생성할 수 있다. 가능한 조합은 abc, abd, abe, acd, ace, ade, bcd,bce,bde,cde가 될 수 있다.
5. 생성된 문장들을 템플릿으로 생성할 수 있다.
6. 2와 5와 같은 동작을 반복하여 n 개의 슬롯을 포함하는 템플릿을 생성할 수 있다. 예로, 3개의 슬롯을 가지는 문장을 생성하기 위하여, a=yesterday, b=SMS, c=Mom이며, 의도는 "send.photo"이고, 상태는 "성공(success)"인 경우, 도구 플랫폼(310)은 아래의 표 5에 도시된 "#1,#2,#3"에 대응되는 ab, ac,bc와 같은 조합을 이용하여 3개의 문장을 생성할 수 있다. 그리고, 도구 플랫폼(310)은 딥러닝을 이용하여 표 5의 #4에 대응되는 abc 조합의 문장을 생성할 수 있다.
Figure pat00007
도 7은 본 개시의 일 실시예에 따른, 자연어 생성부에 포함된 엔진 플랫폼(engine platform)이 자연어를 생성하는 과정을 설명하기 위한 도면이다.
우선, 엔진 플랫폼(320)은 복수의 슬롯에 대한 정보를 포함하는 입력 데이터에 매칭되는 템플릿이 있는지 여부를 판단할 수 있다(S710).
입력 데이터에 매칭되는 템플릿이 존재하는 경우(S710-Y), 엔진 플랫폼(320)은 입력 데이터에 매칭되는 템플릿을 바탕으로 자연어를 생성할 수 있다(S720). 템플릿을 바탕으로 자연어를 생성하는 방안에 대해서는 도 8을 참조하여 상세히 설명하기로 한다.
우선, 엔진 플랫폼(320)은 입력 데이터를 획득할 수 있다(810). 이때, 입력 데이터는 복수의 슬롯에 대한 정보를 포함할 수 있으며, semantic frame (SR) 또는 Meaning representation(MR)로 불릴 수 있다. 이때, 입력 데이터에는 의도 및 복수의 슬롯에 대한 엔티티, 컨텍스트에 대한 정보를 포함할 수 있으며, 다국어 생성을 위해 같은 포맷을 가질 수 있다. 이때, 의도 및 엔티티에 대한 정보는 자연어 이해부(220)로부터 출력될 수 있으며, 상태 및 결과 같은 대화 매니저(230)로부터 출력될 수 있다. 예로, 엔진 플랫폼(320)은 도 8에 도시된 바와 같이, 입력 데이터로 "search. restaurant(cuisine="Korean";location="downtown";count="2")"를 획득할 수 있다.
그리고, 엔진 플랫폼(320)은 입력 데이터에 매칭되는 템플릿을 선택할 수 있다(820). 예로, 엔진 플랫폼(320)은 도 8에 도시된 바와 같이, 매칭되는 템플릿으로 "I found <count>{<cuisine>} restaurat[=count] {in <location>}"을 선택할 수 있다.
엔진 플랫폼(320)은 선택된 템플릿에 포함된 슬롯에 입력 데이터에 포함된 슬롯에 대한 정보를 입력할 수 있다(830). 이를 Lexicalization이라고 할 수 있다. 예로, 엔진 플랫폼(320)은 선택된 템플릿에 슬롯에 대한 정보를 입력하여 "I found 2 Korean restaurant[=count] in[preposition=location] downtown."이라는 문장을 획득할 수 있다.
엔진 플랫폼(320)은 설정된 언어의 특징에 따라 문법 처리 과정을 수행할 수 있다(840). 예로, 엔진 플랫폼(320)은 830 단계에서 획득된 문장에 문법적인 처리를 수행하여 "I found 2 Korean restaurants at downtown."을 획득할 수 있다.
그리고, 엔진 플랫폼(320)은 템플릿을 통해 획득된 자연어를 TTS(250)로 출력할 수 있다.
그러나, 입력 데이터에 매칭되는 템플릿이 존재하지 않는 경우(S710-N), 엔진 플랫폼(320)은 기 저장된 템플릿 중 입력 데이터에 매칭되는 템플릿과 가장 비슷한 템플릿을 이용하여 자연어를 생성하고(S730), 딥러닝을 통해 학습된 인공지능 모델을 이용하여 자연어를 생성할 수 있다(S740). 인공지능 모델을 이용하여 자연어를 생성하는 경우, 엔진 플랫폼(320)은 문법적 표현을 수정하는 후처리 과정을 거칠 수 있다.
그리고, 엔진 플랫폼(320)는 S730 과정을 통해 생성된 자연어와 S740 과정을 통해 생성된 자연어에 대한 스코어를 계산할 수 있다. 이때, 스코어는 S730 과정을 통해 생성된 자연어와 S740 과정을 통해 생성된 자연어에 대한 신뢰도값일 수 있다.
그리고, 엔진 플랫폼(320)은 S730 과정을 통해 생성된 자연어와 S740 과정을 통해 생성된 자연어에 대한 스코어 각각을 임계값과 비교하여 스코어 각각이 임계값을 초과하는지 여부를 판단할 수 있다(S750).
S730 과정을 통해 생성된 자연어와 S740 과정을 통해 생성된 자연어에 대한 스코어 중 적어도 하나가 임계값을 초과하는 경우(S750-Y), 엔진 플랫폼(320)은 S730 과정을 통해 생성된 자연어와 S740 과정을 통해 생성된 자연어 중 스코어가 높은 자연어를 TTS(250)로 출력할 수 있다.
S730 과정을 통해 생성된 자연어와 S740 과정을 통해 생성된 자연어에 대한 스코어 모두가 임계값을 이하인 경우(S750-N), 엔진 플랫폼(320)은 디폴트된 문장을 TTS(250)로 출력할 수 있다(S760). 예로, 디폴트된 문장은 "사용자님이 요청하신 작업을 처리하였습니다.", "사용자 님이 요청하신 작업이 실패되었습니다."와 같은 일반적인 문장일 수 있다.
상술한 바와 같이, (자연어 생성) 템플릿 및 인공지능 모델 중 하나를 이용하여 자연어를 생성함으로써, 전자 장치(100)가 적은 템플릿을 저장하고 있더라도 다양한 케이스에 대한 자연스러운 응답을 제공할 수 있게 된다.
도 9는 본 개시의 다른 실시예에 따른, 자연어 생성부에 포함된 구성을 나타내는 블럭도이다. 구체적으로, 자연어 생성부(240)는 도구 플랫폼(910)과 엔진 플랫폼(920)을 포함할 수 있다.
이때, 도구 플랫폼(910)은 플랫폼 도구(911)와 딥러닝 도구(913)를 포함할 수 있다. 이때, 딥러닝 도구(913)는 도 3 내지 도 6에서 설명한 바와 같은 방법으로 문장을 생성할 수 있다. 그리고, 딥러닝 도구(913)는 생성된 문장 중 적어도 하나의 엔티티를 템플릿화(또는 delexicalization)시켜 자연어 생성 템플릿을 생성할 수 있다.
즉, 템플릿 도구(911)에 n 개의 슬롯을 포함하는 자연어 생성 템플릿이 저장된 경우, 딥러닝 도구(913)는 인공지능 모델을 이용하여 n+1 개의 슬롯을 포함하는 문장을 생성하고, n+1 개의 슬롯을 템플릿화(또는 delexicalization)시켜 자연어 생성 템플릿을 생성할 수 있다. 딥러닝 도구(913)는 이와 같은 방식으로 복수의 스롯을 포함하는 다양한 케이스에 대한 자연어 생성 템플릿을 생성할 수 있다. 그리고, 템플릿 도구(911)는 딥러닝 도구(913)에 의해 생성된 다양한 케이스에 대한 자연어 생성 템플릿을 저장할 수 있다.
그리고, 엔진 플랫폼(920)은 템플릿 도구(911)에 저장된 미리 만들어진 자연어 생성 템플릿 또는 딥러닝 도구(913)에 의해 만들어진 자연어 생성 템플릿을 이용하여 입력 데이터에 대응되는 자연어를 생성하여 출력할 수 있다(921).
즉, 딥러닝 도구(913)는 자연어를 생성하기 위한 인공지능 모델을 학습시키는 것이 아닌 인공지능 모델을 이용하여 자연어 생성 템플릿을 획득할 수 있다.
도 10a는 본 개시의 일 실시예에 따른, 자연어를 획득하기 위한 인공지능 모델을 학습하는 방법을 설명하기 위한 도면이다.
우선, 전자 장치(100)는 학습 데이터를 획득할 수 있다(1010). 이때, 학습 데이터는 n개의 슬롯에 대한 정보를 포함하는 simentic frame과 n 개의 슬롯에 대한 정보로 생성된 문장일 수 있다.
전자 장치(100)는 학습 데이터를 이용하여 인공지능 모델을 학습시킬 수 있다(1020). 이에 의해, n 개의 슬롯에 대한 정보를 포함하는 입력 데이터가 입력된 경우, 학습된 인공지능 모델은 n 개의 슬롯에 대한 정보를 포함하는 입력 데이터에 대응되는 문장을 생성할 수 있다.
전자 장치(100)는 테스트 데이터를 생성할 수 있다(1030). 이때, 테스터 데이터는 n+1 개의 슬롯에 대한 정보를 포함하는 simentic frame 및 n+1 개의 슬롯에 대한 정보에 대응되는 문장일 수 있다. 이때, 테스트 데이터는 사용자에 의해 수동으로 입력될 수 있고, 별도의 자동 문장 생성 모듈을 이용하여 획득될 수 있다.
전자 장치(100)는 테스트 데이터를 이용하여 인공지능 모델을 테스트할 수 있다(1040). 구체적으로, 전자 장치(100)는 테스트 데이터에 포함된 n+1 개의 슬롯에 대한 정보를 포함하는 simentic frame을 인공지능 모델에 입력하여 n+1 개의 슬롯에 대한 정보에 대응되는 문장을 획득할 수 있다. 이때, 인공지능 모델은 n 개의 슬롯에 대해서만 학습을 진행하였으므로, n+1 개의 슬롯에 대한 정보에 대응되는 문장을 복수 개 획득할 수도 있다.
전자 장치(100)는 테스트 데이터에 포함된 n+1 개의 슬롯에 대한 정보에 대응되는 문장과 인공지능 모델을 통해 획득된 문장을 바탕으로 테스트 결과를 획득할 수 있다. 즉, 전자 장치(100)는 인공지능 모델을 통해 획득된 복수의 문자 중 테스트 데이터에 포함된 n+1 개의 슬롯에 대한 정보에 대응되는 문장과 일치하거나 유사한 문장을 획득하여 테스트 결과를 획득할 수 있다.
그리고, 전자 장치(100)는 테스트 결과(즉, n+1 개의 슬롯에 대한 정보 및 이에 의해 생성된 문장)를 학습 데이터로 다시 입력하여 인공지능 모델을 학습시킬 수 있다.
상술한 바와 같이, 1010 단계 내지 1050 단계를 반복적으로 수행함으로써, 전자 장치(100)는 n, n+1, n+2,.. 개의 슬롯에 대한 정보를 포함하는 입력 데이터에 대한 문장을 생성할 수 있게 된다.
도 10b 및 도 10c는 본 개시의 일 실시예에 따른, 자연어를 획득하기 위한 인공지능 모델을 학습하는 구체적인 방법을 설명하기 위한 도면이다.
도 10b에 도시된 바와 같이, 전자 장치(100)는 학습 데이터를 획득할 수 있다(1010-1). 이때, 학습 데이터는 2 개의 슬롯에 대한 정보 및 이에 대응되는 문장일 수 있다. 예로, 슬롯이 a,b,c,d가 존재할 때, 학습 데이터는 a, b, c, d, a+b, a+c, a+d, b+c, b+d, c+d 각각에 대한 정보 및 이에 대응되는 문장일 수 있다.
전자 장치(100)는 획득된 학습 데이터를 이용하여 인공지능 모델을 학습할 수 있다(1020-1). 이때, 학습된 인공지능 모델은 2개 이하의 슬롯을 포함하는 입력 데이터에 대응되는 문장을 획득할 수 있게 된다.
전자 장치(100)는 3개의 슬롯에 대한 테스트 데이터를 획득할 수 있다(1030-1). 예로, 테스트 데이터로, a+b+c, a+b+d+, a+c+d, b+c+d 각각에 대한 정보 및 이에 대응되는 문장일 수 있다. 이때, 테스트 데이터는 사용자에 의해 입력될 수 있으나, 이는 일 실시예에 불과할 뿐, 별도의 자동 문장 생성 모듈을 이용하여 획득될 수 있다.
전자 장치(100)는 테스트 데이터에 포함된 3개의 슬롯에 대한 정보를 인공지능 모델에 입력하여 복수의 문장을 획득할 수 있다(1040-1).
그리고, 전자 장치(100)는 인공지능 모델에 의해 입력된 복수의 문장과 테스트 데이터에 포함된 문장을 비교하여 테스트 결과를 획득할 수 있다(1050-1).
이때, 전자 장치(100)는 3개의 슬롯에 대한 정보 및 이에 대응되는 문장을 학습 데이터로서 획득할 수 있다.
즉, 도 10c에 도시된 바와 같이, 전자 장치(100)는 학습 데이터를 획득할 수 있다(1010-2). 이때, 학습 데이터는 3 개의 슬롯에 대한 정보 및 이에 대응되는 문장으로서, 도 10a에서 설명한 방법으로 획득될 수 있다.
전자 장치(100)는 획득된 학습 데이터를 이용하여 인공지능 모델을 학습할 수 있다(1020-2). 이때, 학습된 인공지능 모델은 3개의 슬롯을 포함하는 입력 데이터에 대응되는 문장을 획득할 수 있게 된다.
전자 장치(100)는 4개의 슬롯에 대한 테스트 데이터를 획득할 수 있다(1030-2). 예로, 테스트 데이터로, a+b+c +d에 대한 정보 및 이에 대응되는 문장일 수 있다. 이때, 테스트 데이터는 사용자에 의해 입력될 수 있으나, 이는 일 실시예에 불과할 뿐, 별도의 자동 문장 생성 모듈을 이용하여 획득될 수 있다.
전자 장치(100)는 테스트 데이터에 포함된 4개의 슬롯에 대한 정보를 인공지능 모델에 입력하여 복수의 문장을 획득할 수 있다(1040-2).
그리고, 전자 장치(100)는 인공지능 모델에 의해 입력된 복수의 문장과 테스트 데이터에 포함된 문장을 비교하여 테스트 결과를 획득할 수 있다(1050-2).
이때, 전자 장치(100)는 4개의 슬롯에 대한 정보 및 이에 대응되는 문장을 학습 데이터로서 획득할 수 있다.
즉, 도 10b 및 도 10c에서 설명한 바와 같은 방식으로 n개의 슬롯에 대해 학습된 인공지능 모델을 이용하여 n+1 개의 슬롯에 대한 학습 데이터를 획득함으로써, 전자 장치(100)는 복수 개의 슬롯에 대한 정보를 입력하여 자연어 문장을 생성할 수 있게 된다.
또한, 전자 장치(100)는 테스트 결과 획득된 문장을 이용하여 자연어 생성 템플릿을 획득할 수 있다. 구체적으로, 전자 장치(100)는 n 개의 슬롯에 대해 학습된 인공지능 모델을 이용하여 n+1 개의 슬롯에 대응되는 문장을 획득할 수 있다. 그리고, 전자 장치(100)는 획득된 문장을 delexicalization하여 n+1 개의 슬롯에 대한 자연어 생성 템플릿을 획득할 수 있다. 즉, 전자 장치(100)는 n개의 슬롯에 대해 학습된 인공지능 모델을 이용하여 n+1 개의 슬롯을 가지는 자연어 생성 템플릿을 획득할 수 있다.
도 11은 본 개시의 일 실시예에 따른, 전자 장치의 구성을 상세히 도시한 블럭도이다. 도 11에 도시된 바와 같이, 전자 장치(100)는 통신부(1110), 디스플레이(1120), 마이크(1130), 메모리(1140), 입력부(1150), 스피커(1160) 및 프로세서(1170)을 포함할 수 있다.
통신부(1110)는 다양한 유형의 통신방식에 따라 다양한 유형의 외부 기기와 통신을 수행할 수 있다. 통신부(1110)는 와이파이칩, 블루투스 칩, 무선 통신 칩, NFC 칩 중 적어도 하나를 포함할 수 있다. 프로세서(1170)는 통신부(1110)를 이용하여 외부 서버 또는 각종 외부 기기와 통신을 수행할 수 있다.
특히, 통신부(1110)는 자연어를 획득하도록 학습된 인공지능 모델을 저장하는 외부 서버와 통신을 수행할 수 있다. 즉, 통신부(1110)는 외부 서버로 복수의 슬롯에 대한 정보를 포함하는 입력 데이터를 전송할 수 있으며, 외부 서버로부터 인공지능 모델을 통해 획득된 입력 데이터에 대응되는 자연어에 대한 정보를 수신할 수 있다.
디스플레이(1120)는 영상 처리부(미도시)에서 처리한 영상 데이터를 디스플레이 영역(또는, 디스플레이)에 디스플레이할 수 있다. 디스플레이 영역은 전자 장치(100)의 하우징의 일면에 노출된 디스플레이부(1120)의 적어도 일부를 의미할 수 있다. 디스플레이부(1120)의 적어도 일부는 플렉서블 디스플레이(flexible display)의 형태로 전자 장치(100)의 전면 영역 및, 측면 영역 및 후면 영역 중 적어도 하나에 결합될 수도 있다. 플렉서블 디스플레이는 종이처럼 얇고 유연한 기판을 통해 손상 없이 휘거나 구부리거나 말 수 있는 것을 특징으로 할 수 있다.
마이크(1130)는 사용자 음성을 획득할 수 있다. 특히, 마이크(1130)는 전자 장치(100) 내부에 구비될 수 있으나, 이는 일 실시예에 불과할 뿐, 전자 장치(100)와 전기적으로 연결되어 외부에 구비될 수 있다.
메모리(1140)는 전자 장치(100)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 메모리(1140)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(1140)는 프로세서(1170)에 의해 액세스되며, 프로세서(1170)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 문서에서 메모리라는 용어는 메모리(1140), 프로세서(1170) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다.
또한, 메모리(1140)에는 디스플레이부(1120)의 디스플레이 영역에 표시될 각종 화면을 구성하기 위한 프로그램 및 데이터 등이 저장될 수 있다. 또한, 메모리(1140)는 본 개시의 다양한 인공지능 모델을 저장할 수도 있다.
입력부(1150)는 다양한 사용자 입력을 수신하여 프로세서(1170)로 전달할 수 있다. 사용자 입력부(1150)는, 예를 들면, 터치 패널, (디지털) 펜 센서 또는 키를 포함할 수 있다. 터치 패널은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널은 제어 회로를 더 포함할 수도 있다. 터치 패널은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다. (디지털) 펜 센서는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키는, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다.
스피커(1160)는 오디오 처리부(미도시)에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 출력하는 구성이다. 특히, 오디오를 출력하는 구성은 스피커(1160)로 구현될 수 있으나, 이는 일 실시 예에 불과할 뿐, 오디오 데이터를 출력할 수 있는 출력 단자로 구현될 수 있다.
특히, 스피커(1160)는 자연어 생성부(240)를 통해 획득된 자연어를 TTS(250)를 통해 음성 메시지로 출력할 수 있다.
프로세서(1170)(또는, 제어부)는 메모리(1140)에 저장된 각종 프로그램을 이용하여 전자 장치(100)의 전반적인 동작을 제어할 수 있다.
프로세서(1170)는 RAM(1171), ROM(1172), 그래픽 처리부(1173), 메인 CPU(1174), 제1 내지 n 인터페이스(1175-1~1175-n), 버스(1176)로 구성될 수 있다. 이때, RAM(1171), ROM(1172), 그래픽 처리부(1173), 메인 CPU(1174), 제1 내지 n 인터페이스(1175-1~1175-n) 등은 버스(1176)를 통해 서로 연결될 수 있다.
도 12는 본 개시의 일 실시예에 따른, 전자 장치의 자연어 생성 방법을 설명하기 위한 흐름도이다.
우선, 전자 장치(100)는 응답을 생성하기 위한 복수의 슬롯에 대한 정보가 포함된 입력 데이터를 획득할 수 있다(S1210).
전자 장치(100)는 자연어 생성 템플릿 및 자연어를 획득하도록 학습된 인공지능 모델 중 하나에 복수의 슬롯에 대한 정보를 입력하여 입력 데이터에 대응되는 자연어를 획득할 수 있다(S1220). 구체적으로, 전자 장치(100)는 복수의 슬롯에 대한 정보를 바탕으로 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는지 여부를 판단할 수 있다. 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는 경우, 전자 장치(100)는 자연어 생성 템플릿을 이용하여 입력 데이터에 대한 자연어를 획득하고, 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하지 않는 경우, 전자 장치(100)는 복수의 슬롯에 대한 정보를 인공지능 모델에 입력하여 입력 데이터에 대한 자연어를 획득할 수 있다.
그리고, 전자 장치(100)는 획득된 자연어를 출력할 수 있다(S1230). 특히, 전자 장치(100)는 TTS를 이용하여 획득된 자연어를 음성 메시지로 출력할 수 있다.
본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 개시의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(100))를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
110: 메모리 120l 프로세서

Claims (15)

  1. 전자 장치의 자연어 생성 방법에 있어서,
    응답을 생성하기 위한 복수의 슬롯에 대한 정보가 포함된 입력 데이터를 획득하는 단계;
    자연어 생성 템플릿 및 자연어를 획득하도록 학습된 인공지능 모델 중 하나에 상기 복수의 슬롯에 대한 정보를 입력하여 상기 입력 데이터에 대응되는 자연어를 획득하는 단계; 및
    상기 획득된 자연어를 출력하는 단계;를 포함하는 자연어 처리 방법.
  2. 제1항에 있어서,
    상기 획득하는 단계는,
    상기 복수의 슬롯에 대한 정보를 바탕으로 상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는지 여부를 판단하는 단계; 및
    상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는 경우, 상기 자연어 생성 템플릿을 이용하여 상기 입력 데이터에 대한 자연어를 획득하는 단계;를 포함하는 자연어 생성 방법.
  3. 제2항에 있어서,
    상기 획득하는 단계는,
    상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하지 않는 경우, 상기 복수의 슬롯에 대한 정보를 인공지능 모델에 입력하여 상기 입력 데이터에 대한 자연어를 획득하는 단계;를 포함하는 자연어 생성 방법.
  4. 제3항에 있어서,
    상기 획득하는 단계는,
    상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하지 않는 경우, 기 저장된 자연어 생성 템플릿 중 상기 입력 데이터에 대응되는 자연어 생성 템플릿과 가장 유사한 유사 템플릿을 이용하여 상기 입력 데이터에 대한 제1 자연어를 획득하는 단계;
    상기 복수의 슬롯에 대한 정보를 인공지능 학습 모델에 입력하여 상기 입력 데이터에 대한 제2 자연어를 획득하는 단계; 및
    상기 제1 자연어 및 상기 제2 자연어에 대한 스코어를 계산하여 상기 제1 자연어 및 상기 제2 자연어 중 스코어가 높은 자연어를 상기 입력 데이터에 대한 자연어로 획득하는 단계;를 포함하는 자연어 생성 방법.
  5. 제4항에 있어서,
    상기 획득하는 단계는,
    상기 제1 자연어 및 상기 제2 자연어에 대한 스코어가 모두 임계값 미만인 경우, 디폴트된 자연어 생성 템플릿을 이용하여 상기 입력 데이터에 대한 자연어를 획득하는 단계;를 포함하는 자연어 생성 방법.
  6. 제1항에 있어서,
    상기 인공지능 모델은,
    상기 자연어 생성 템플릿에 포함된 n개의 슬롯보다 많은 개수의 슬롯을 포함하는 학습 데이터를 이용하여 상기 n 개의 슬롯보다 많은 개수의 슬롯을 포함하는 학습 데이터에 대한 자연어를 획득하도록 학습된 자연어 생성 방법.
  7. 제1항에 있어서,
    상기 자연어 생성 템플릿은,
    n개의 슬롯에 대한 정보를 포함하는 학습 데이터를 상기 인공지능 모델에 입력하여 획득된 상기 학습 데이터에 대한 자연어를 템플릿화하여 생성된 자연어 생성 방법.
  8. 전자 장치에 있어서,
    적어도 하나의 명령을 포함하는 메모리; 및
    상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서;를 포함하며,
    상기 프로세서는, 상기 적어도 하나의 명령을 실행함으로써,
    응답을 생성하기 위한 복수의 슬롯에 대한 정보가 포함된 입력 데이터를 획득하고,
    상기 메모리에 저장된 자연어 생성 템플릿 및 자연어를 획득하도록 학습된 인공지능 모델 중 하나에 상기 복수의 슬롯에 대한 정보를 입력하여 상기 입력 데이터에 대응되는 자연어를 획득하고,
    상기 획득된 자연어를 출력하는 전자 장치.
  9. 제8항에 있어서,
    상기 프로세서는,
    상기 복수의 슬롯에 대한 정보를 바탕으로 상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는지 여부를 판단하고,
    상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하는 경우, 상기 자연어 생성 템플릿을 이용하여 상기 입력 데이터에 대한 자연어를 획득하는 전자 장치.
  10. 제9항에 있어서,
    상기 프로세서는,
    상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하지 않는 경우, 상기 복수의 슬롯에 대한 정보를 인공지능 모델에 입력하여 상기 입력 데이터에 대한 자연어를 획득하는 전자 장치.
  11. 제10항에 있어서,
    상기 프로세서는,
    상기 입력 데이터에 대응되는 자연어 생성 템플릿이 존재하지 않는 경우, 기 저장된 자연어 생성 템플릿 중 상기 입력 데이터에 대응되는 자연어 생성 템플릿과 가장 유사한 유사 템플릿을 이용하여 상기 입력 데이터에 대한 제1 자연어를 획득하고,
    상기 복수의 슬롯에 대한 정보를 인공지능 학습 모델에 입력하여 상기 입력 데이터에 대한 제2 자연어를 획득하며,
    상기 제1 자연어 및 상기 제2 자연어에 대한 스코어를 계산하여 상기 제1 자연어 및 상기 제2 자연어 중 스코어가 높은 자연어를 상기 입력 데이터에 대한 자연어로 획득하는 전자 장치.
  12. 제11항에 있어서,
    상기 프로세서는,
    상기 제1 자연어 및 상기 제2 자연어에 대한 스코어가 모두 임계값 미만인 경우, 디폴트된 자연어 생성 템플릿을 이용하여 상기 입력 데이터에 대한 자연어를 획득하는 전자 장치.
  13. 제8항에 있어서,
    상기 인공지능 모델은,
    상기 자연어 생성 템플릿에 포함된 n개의 슬롯보다 많은 개수의 슬롯을 포함하는 학습 데이터를 이용하여 상기 n 개의 슬롯보다 많은 개수의 슬롯을 포함하는 학습 데이터에 대한 자연어를 획득하도록 학습된 전자 장치.
  14. 제8항에 있어서,
    상기 자연어 생성 템플릿은,
    n 개의 슬롯에 대한 정보를 포함하는 학습 데이터를 상기 인공지능 모델에 입력하여 획득된 상기 학습 데이터에 대한 자연어를 템플릿화하여 생성된 전자 장치.
  15. 자연어를 생성하는 방법을 실행하기 위한 프로그램을 저장하는 컴퓨터 판독가능 기록매체에 있어서,
    상기 방법은,
    응답을 생성하기 위한 복수의 슬롯에 대한 정보가 포함된 입력 데이터를 획득하는 단계;
    자연어 생성 템플릿 및 자연어를 획득하도록 학습된 인공지능 모델 중 하나에 상기 복수의 슬롯에 대한 정보를 입력하여 상기 입력 데이터에 대응되는 자연어를 획득하는 단계; 및
    상기 획득된 자연어를 출력하는 단계;를 포함하는 기록매체.
KR1020180021320A 2018-02-22 2018-02-22 전자 장치 및 이의 자연어 생성 방법 KR102469712B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180021320A KR102469712B1 (ko) 2018-02-22 2018-02-22 전자 장치 및 이의 자연어 생성 방법
US16/966,249 US11657237B2 (en) 2018-02-22 2019-01-28 Electronic device and natural language generation method thereof
PCT/KR2019/001164 WO2019164144A1 (ko) 2018-02-22 2019-01-28 전자 장치 및 이의 자연어 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180021320A KR102469712B1 (ko) 2018-02-22 2018-02-22 전자 장치 및 이의 자연어 생성 방법

Publications (2)

Publication Number Publication Date
KR20190105175A true KR20190105175A (ko) 2019-09-16
KR102469712B1 KR102469712B1 (ko) 2022-11-22

Family

ID=67686873

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180021320A KR102469712B1 (ko) 2018-02-22 2018-02-22 전자 장치 및 이의 자연어 생성 방법

Country Status (3)

Country Link
US (1) US11657237B2 (ko)
KR (1) KR102469712B1 (ko)
WO (1) WO2019164144A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021149921A1 (ko) * 2020-01-21 2021-07-29 삼성전자주식회사 디스플레이 장치 및 그 제어방법
WO2023075198A1 (ko) * 2021-10-28 2023-05-04 주식회사 스켈터랩스 대화 시스템에서, 슬롯을 추출하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111353035B (zh) * 2020-03-11 2021-02-19 镁佳(北京)科技有限公司 人机对话方法、装置、可读存储介质及电子设备
CN116628141B (zh) * 2023-07-24 2023-12-01 科大讯飞股份有限公司 信息处理方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002023783A (ja) * 2000-07-13 2002-01-25 Fujitsu Ltd 対話処理システム
KR20060064533A (ko) * 2004-12-08 2006-06-13 한국전자통신연구원 자연어 문장 처리 시스템 및 자연어 문장 처리 방법
KR20060070605A (ko) * 2004-12-21 2006-06-26 한국전자통신연구원 영역별 언어모델과 대화모델을 이용한 지능형 로봇 음성인식 서비스 장치 및 방법
KR20160049210A (ko) * 2014-10-27 2016-05-09 포항공과대학교 산학협력단 키워드 입력 기반의 사용자 관심정보를 이용한 질의응답 장치 및 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437295B2 (en) * 2001-04-27 2008-10-14 Accenture Llp Natural language processing for a location-based services system
EP1747041A4 (en) 2004-05-04 2008-06-18 Cleveland Clinic Foundation METHOD FOR THE TREATMENT OF MEDICAL CONDITIONS BY NEUROMODULATION OF THE CEREBELLAR PATHS
KR20090058320A (ko) 2007-12-04 2009-06-09 주식회사 케이티 외국어 회화 교육을 위한 예제기반 대화 시스템 및 방법
KR101117298B1 (ko) 2010-08-16 2012-07-17 (주)센솔로지 온톨로지 기반 한국어 의미 분석 시스템 및 방법
US9031844B2 (en) 2010-09-21 2015-05-12 Microsoft Technology Licensing, Llc Full-sequence training of deep structures for speech recognition
JP5807891B2 (ja) 2010-10-04 2015-11-10 国立研究開発法人情報通信研究機構 言語モデル学習装置及びコンピュータプログラム
KR101522837B1 (ko) 2010-12-16 2015-05-26 한국전자통신연구원 대화 방법 및 이를 위한 시스템
US9842585B2 (en) 2013-03-11 2017-12-12 Microsoft Technology Licensing, Llc Multilingual deep neural network
US9336772B1 (en) 2014-03-06 2016-05-10 Amazon Technologies, Inc. Predictive natural language processing models
US9747556B2 (en) 2014-08-20 2017-08-29 Vertafore, Inc. Automated customized web portal template generation systems and methods
KR101587023B1 (ko) 2014-09-04 2016-01-21 에스케이 텔레콤주식회사 자연어 정규화 방법 및 장치
US10051122B2 (en) 2015-06-01 2018-08-14 AffectLayer, Inc. Modeling voice calls to improve an outcome of a call between a representative and a customer
KR101768852B1 (ko) 2016-01-26 2017-08-17 경북대학교 산학협력단 트리플 데이터의 생성 방법 및 시스템
US9785717B1 (en) 2016-09-29 2017-10-10 International Business Machines Corporation Intent based search result interaction
US11010656B2 (en) * 2017-10-30 2021-05-18 Clinc, Inc. System and method for implementing an artificially intelligent virtual assistant using machine learning
US10740371B1 (en) * 2018-12-14 2020-08-11 Clinc, Inc. Systems and methods for intelligently configuring and deploying a machine learning-based dialogue system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002023783A (ja) * 2000-07-13 2002-01-25 Fujitsu Ltd 対話処理システム
KR20060064533A (ko) * 2004-12-08 2006-06-13 한국전자통신연구원 자연어 문장 처리 시스템 및 자연어 문장 처리 방법
KR20060070605A (ko) * 2004-12-21 2006-06-26 한국전자통신연구원 영역별 언어모델과 대화모델을 이용한 지능형 로봇 음성인식 서비스 장치 및 방법
KR20160049210A (ko) * 2014-10-27 2016-05-09 포항공과대학교 산학협력단 키워드 입력 기반의 사용자 관심정보를 이용한 질의응답 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021149921A1 (ko) * 2020-01-21 2021-07-29 삼성전자주식회사 디스플레이 장치 및 그 제어방법
WO2023075198A1 (ko) * 2021-10-28 2023-05-04 주식회사 스켈터랩스 대화 시스템에서, 슬롯을 추출하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체

Also Published As

Publication number Publication date
US11657237B2 (en) 2023-05-23
KR102469712B1 (ko) 2022-11-22
US20210049328A1 (en) 2021-02-18
WO2019164144A1 (ko) 2019-08-29

Similar Documents

Publication Publication Date Title
US11398223B2 (en) Electronic device for modulating user voice using artificial intelligence model and control method thereof
KR102623727B1 (ko) 전자 장치 및 이의 제어 방법
US11367441B2 (en) Electronic apparatus and control method thereof
US11842735B2 (en) Electronic apparatus and control method thereof
US11631400B2 (en) Electronic apparatus and controlling method thereof
EP3557441A1 (en) Electronic device and method for controlling the electronic device thereof
KR102449630B1 (ko) 전자 장치 및 이의 제어 방법
US20210217409A1 (en) Electronic device and control method therefor
KR102469712B1 (ko) 전자 장치 및 이의 자연어 생성 방법
US11817097B2 (en) Electronic apparatus and assistant service providing method thereof
CN111656438A (zh) 电子装置及其控制方法
CN111587419A (zh) 电子装置及其控制方法
US20220059088A1 (en) Electronic device and control method therefor
US11315553B2 (en) Electronic device and method for providing or obtaining data for training thereof
KR20190098859A (ko) 컨텍스트에 따라 이벤트의 출력 정보를 제공하는 전자 장치 및 이의 제어 방법
US20230290343A1 (en) Electronic device and control method therefor
KR20200044173A (ko) 전자 장치 및 그의 제어 방법
KR102398386B1 (ko) 복수 개의 메시지들을 필터링하는 방법 및 이를 위한 장치
US11468270B2 (en) Electronic device and feedback information acquisition method therefor
KR20200080389A (ko) 전자 장치 및 그 제어 방법
KR102718120B1 (ko) 인공지능을 이용한 음성 대화 분석 방법 및 장치
KR102438132B1 (ko) 전자 장치 및 그의 제어 방법
KR20210094727A (ko) 전자 장치 및 이의 제어 방법

Legal Events

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