KR102656620B1 - 전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체 - Google Patents

전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체 Download PDF

Info

Publication number
KR102656620B1
KR102656620B1 KR1020170155897A KR20170155897A KR102656620B1 KR 102656620 B1 KR102656620 B1 KR 102656620B1 KR 1020170155897 A KR1020170155897 A KR 1020170155897A KR 20170155897 A KR20170155897 A KR 20170155897A KR 102656620 B1 KR102656620 B1 KR 102656620B1
Authority
KR
South Korea
Prior art keywords
artificial intelligence
sentence
user
natural language
data
Prior art date
Application number
KR1020170155897A
Other languages
English (en)
Other versions
KR20180108400A (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 PCT/KR2018/002766 priority Critical patent/WO2018174443A1/en
Priority to EP22189949.5A priority patent/EP4125029A1/en
Priority to EP18772684.9A priority patent/EP3545487A4/en
Priority to CN201880019376.3A priority patent/CN110462676A/zh
Priority to US15/922,014 priority patent/US11068667B2/en
Publication of KR20180108400A publication Critical patent/KR20180108400A/ko
Priority to US17/377,599 priority patent/US11720759B2/en
Application granted granted Critical
Publication of KR102656620B1 publication Critical patent/KR102656620B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/50Business processes related to the communications industry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Primary Health Care (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Operations Research (AREA)

Abstract

전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체가 제공된다. 본 개시는 딥러닝 등의 기계 학습 알고리즘을 활용하는 인공지능(AI) 시스템 및 그 응용에 관한 것이다. 본 개시의 일 실시 예에 따른 전자 장치는, 사용자가 입력한 자연어를 입력받는 입력부, 외부의 복수의 채팅 서버와 통신을 수행하는 통신부 및 자연어에 대한 특징 및 사용자에 대한 특징을 분석하여 복수의 채팅 서버 중에서 자연어에 대응하는 채팅 서버를 결정하며, 자연어에 대한 응답을 수신하기 위해 결정된 채팅 서버로 자연어를 전송하도록 통신부를 제어하는 프로세서를 포함할 수 있다. 이 경우, 상기 복수의 채팅 서버는 규칙 기반 또는 인공 지능 알고리즘을 이용하여 사용자가 입력한 자연어를 분석하여 응답을 제공할 수 있다. 또한, 전자 장치는 규칙 기반 또는 인공 지능 알고리즘을 이용하여 복수의 채팅 서버 중에서 사용자가 입력한 자연어에 대응하는 채팅 서버를 결정할 수 있다. 인공 지능 알고리즘을 이용하여 음성을 분석하거나 또는 채팅 서버를 결정하는 경우, 기계 학습, 신경망 또는 딥러닝 알고리즘 등이 이용될 수 있다.

Description

전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체{ELECTRONIC APPARATUS, CONTROLLING METHOD OF THEREOF AND NON-TRANSITORY COMPUTER READABLE RECORDING MEDIUM}
본 개시는 전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체에 관한 것으로, 더욱 구체적으로 사용자 발화의 난이도에 적합한 채팅 서버를 매칭할 수 있는 전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체에 관한 것이다.
또한, 본 개시는 기계 학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 인공 지능(Artificial Intelligence, AI) 시스템 및 그 응용에 관한 것이다.
인공지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존의 규칙 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공지능 시스템은 사용할수록 인식률이 향상되고 사용자의 취향을 더욱 정확하게 이해할 수 있게 된다. 따라서, 기존의 규칙 기반 스마트 시스템은 점차 딥러닝 기반의 인공지능 시스템으로 대체되고 있다.
인공지능 기술은 기계학습(ex. 딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다. 기계 학습은 입력 데이터들의 특징을 스스로 분류하여 학습하는 알고리즘 기술이다. 요소 기술은 딥러닝 등의 기계학습 알고리즘을 활용하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성될 수 있다.
인공지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화 시스템, 질의응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론/예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험 정보를 지식 데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임 등을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
기존의 채팅 서버는 사용자 발화를 이해하지 못하여 기저장된 답변을 검색하여 제공하는 이상의 대응을 하지 못하는 문제가 있었다. 또한, 모든 채팅 서버가 동일한 스펙을 갖도록 구현됨에 따라 간단한 질문을 처리하는 경우에는 리소스가 낭비되는 문제가 있었다.
본 개시는 상술한 문제점을 해결하기 위한 것으로, 인공지능 기술을 응용하여 사용자가 입력한 자연어의 난이도를 평가하고, 평가된 난이도에 따라 최적의 스펙을 갖는 채팅 서버를 매칭시킬 수 있는 전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체를 제공함을 목적으로 한다.
상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치는, 사용자가 입력한 자연어를 입력받는 입력부, 외부의 복수의 채팅 서버와 통신을 수행하는 통신부 및 상기 자연어에 대한 특징 및 상기 사용자에 대한 특징을 분석하여 상기 복수의 채팅 서버 중에서 상기 자연어에 대응하는 채팅 서버를 결정하며, 상기 자연어에 대한 응답을 수신하기 위해 상기 결정된 채팅 서버로 상기 자연어를 전송하도록 상기 통신부를 제어하는 프로세서를 포함할 수 있다.
그리고, 상기 프로세서는 상기 자연어에 대한 전처리를 수행하고, 상기 전처리된 자연어에 대한 특징 및 상기 사용자에 대한 특징을 분석하여, 상기 자연어에 대응하는 채팅 서버를 결정하며, 상기 결정된 채팅 서버로 상기 자연어를 전송하도록 상기 통신부를 제어할 수 있다.
그리고 상기 프로세서는, 상기 복수의 채팅 서버 각각에 대해 상기 전처리된 자연어에 대한 제1 매칭 스코어, 상기 전처리된 자연어를 포함하는 대화 패턴에 대한 제2 매칭 스코어, 상기 사용자의 감정에 대한 제3 매칭 스코어 및 상기 사용자의 특징에 대한 제4 매칭 스코어 중 적어도 하나를 계산하고, 상기 복수의 채팅 서버 각각에 대해 상기 제1 내지 제4 매칭 스코어 중 적어도 하나를 이용하여 상기 복수의 채팅 서버 각각의 최종 매칭 스코어를 계산하고, 상기 복수의 채팅 서버 중 가장 높은 최종 매칭 스코어를 갖는 채팅 서버를 상기 자연어에 대응되는 채팅 서버로 결정할 수 있다.
또한, 상기 제1 매칭 스코어는, 상기 전처리된 자연어를 구성하는 단어에 대한 가중치 값 및 TF/IDF(Term Frequency/Inverse Document Frequency) 값을 바탕으로 산출되고, 상기 제2 매칭 스코어는, 기저장된 대화 패턴 데이터와의 유사도를 바탕으로 산출되고, 상기 제3 매칭 스코어는, 상기 전처리된 자연어에 대한 의견 분석(Sentiment Analysis) 및 감정 분석(Emotion Analysis)를 바탕으로 산출되고, 상기 제4 매칭 스코어는, 사용자의 나이, 성별, 지역 및 학력 중 적어도 하나를 바탕으로 산출될 수 있다.
그리고 상기 자연어에 대응하는 채팅 서버와 수행된 대화 히스토리 정보 및 상기 자연어가 입력된 상황에 대한 컨텍스트 정보를 저장하는 메모리를 더 포함할 수 있다.
또한, 상기 프로세서는, 상기 자연어를 입력받은 이후에 상기 입력부를 통해 사용자로부터 추가 자연어를 입력받는 경우, 상기 추가 자연어에 대한 특징 및 상기 사용자의 특징을 분석하여 상기 복수의 채팅 서버 중 상기 추가 자연어에 대응하는 채팅 서버를 결정하고, 상기 자연어에 대응되는 채팅 서버와 상기 추가 자연어에 대응되는 채팅 서버가 상이한 경우, 상기 추가 자연어에 대응되는 채팅 서버로 상기 추가 자연어를 전송하도록 상기 통신부를 제어할 수 있다.
그리고 상기 프로세서는, 상기 자연어에 대응되는 채팅 서버와 수행된 대화 히스토리 정보 및 컨텍스트 정보를 상기 추가 자연어와 함께 상기 추가 자연어에 대응되는 채팅 서버로 전송하도록 상기 통신부를 제어할 수 있다.
또한, 상기 복수의 채팅 서버는, 사용자가 입력한 자연어 및 사용자의 특징에 따라 사용자가 입력한 자연어에 대한 응답을 제공하는 제1 채팅 서버, 제2 채팅 서버 및 제3 채팅 서버 중 둘 이상을 포함할 수 있다.
그리고 상기 제1 채팅 서버는, 기저장된 응답 데이터베이스를 이용하여 상기 사용자가 입력한 자연어에 대응되는 응답을 제공하는 채팅 서버이며, 상기 제2 채팅 서버는, 제1 응답 모델을 이용하여 상기 사용자가 입력한 자연어의 문맥을 판단하여 응답을 제공하는 채팅 서버이며, 상기 제3 채팅 서버는, 제2 응답 모델을 이용하여 상기 사용자가 입력한 자연어에 포함된 질문을 추론하여 응답을 제공하는 채팅 서버일 수 있다.
한편, 상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은, 사용자가 입력한 자연어를 입력받는 단계, 상기 자연어에 대한 특징 및 상기 사용자에 대한 특징을 분석하여 복수의 채팅 서버 중에서 상기 자연어에 대응하는 채팅 서버를 결정하는 단계 및 상기 자연어에 대한 응답을 수신하기 위해 상기 결정된 채팅 서버로 상기 자연어를 전송하는 단계를 포함할 수 있다.
그리고, 상기 제어 방법은 상기 자연어에 대한 전처리를 수행하는 단계를 더 포함하고, 상기 결정하는 단계는 상기 전처리가 수행된 자연어에 대한 특징 및 상기 사용자에 대한 특징 정보를 분석하여 상기 복수의 채팅 정보 중에서 상기 자연어에 대응하는 채팅 서버를 결정하는 단계를 포함하고, 상기 전송하는 단계는 상기 결정된 채팅 서버로 상기 전처리된 자연어를 전송하는 단계를 포함할 수 있다.
또한, 상기 결정하는 단계는, 상기 복수의 채팅 서버 각각에 대해 상기 전처리된 자연어에 대한 제1 매칭 스코어, 상기 전처리된 자연어룰 포함하는 대화 패턴에 대한 제2 매칭 스코어, 상기 사용자의 감정에 대한 제3 매칭 스코어 및 상기 사용자의 특징에 대한 제4 매칭 스코어 중 적어도 하나를 계산하는 단계, 상기 복수의 채팅 서버 각각에 대해 상기 제1 내지 제4 매칭 스코어 중 적어도 하나를 이용하여 상기 복수의 채팅 서버 각각의 최종 매칭 스코어를 계산하는 단계 및 상기 복수의 채팅 서버 중 가장 높은 최종 매칭 스코어를 갖는 채팅 서버를 상기 자연어에 대응되는 채팅 서버로 결정하는 단계를 포함할 수 있다.
또한, 상기 제1 매칭 스코어는, 상기 전처리된 자연어를 구성하는 단어에 대한 가중치 값 및 TF/IDF(Term Frequency/Inverse Document Frequency) 값을 바탕으로 산출되고, 상기 제2 매칭 스코어는, 기저장된 대화 패턴 데이터와의 유사도를 바탕으로 산출되고, 상기 제3 매칭 스코어는, 상기 전처리된 자연어에 대한 의견 분석(Sentiment Analysis) 및 감정 분석(Emotion Analysis)를 바탕으로 산출되고, 상기 제4 매칭 스코어는, 사용자의 나이, 성별, 지역 및 학력 중 적어도 하나를 바탕으로 산출될 수 있다.
그리고 상기 자연어에 대응하는 채팅 서버와 수행된 대화 히스토리 정보 및 상기 자연어에 입력된 상황에 대한 컨텍스트 정보를 저장하는 단계를 더 포함할 수 있다.
또한, 상기 자연어를 입력받은 이후에 사용자로부터 추가 자연어를 입력받는 단계, 상기 추가 자연어에 대한 특징 및 상기 사용자의 특징을 분석하여 상기 복수의 채팅 서버 중 상기 추가 자연어에 대응하는 채팅 서버를 결정하는 단계 및 상기 자연어에 대응되는 채팅 서버와 상기 추가 자연어에 대응되는 채팅 서버가 상이한 경우, 상기 추가 자연어에 대응되는 채팅 서버로 상기 추가 자연어를 전송하는 단계를 더 포함할 수 있다.
그리고 상기 추가 자연어를 전송하는 단계는, 상기 자연어에 대응되는 채팅 서버와 수행된 대화 히스토리 정보 및 컨텍스트 정보를 상기 추가 자연어와 함께 상기 추가 자연어에 대응되는 채팅 서버로 전송할 수 있다.
또한, 상기 복수의 채팅 서버는, 사용자가 입력한 자연어 및 사용자의 특징에 따라 사용자의 자연어에 대한 응답을 제공하는 제1 채팅 서버, 제2 채팅 서버 및 제3 채팅 서버를 포함할 수 있다.
그리고 상기 제1 채팅 서버는, 기저장된 응답 데이터베이스를 이용하여 상기 사용자가 입력한 자연어에 대응되는 응답을 제공하는 채팅 서버이며, 상기 제2 채팅 서버는, 제1 응답 모델을 이용하여 상기 사용자가 입력한 자연어의 문맥을 판단하여 응답을 제공하는 채팅 서버이며, 상기 제3 채팅 서버는, 제2 응답 모델을 이용하여 상기 사용자가 입력한 자연어에 포함된 질문을 추론하여 응답을 제공하는 채팅 서버일 수 있다.
한편, 상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 실행하기 위한 프로그램을 포함하는 비일시적 컴퓨터 판독가능 기록매체는, 사용자가 입력한 자연어를 입력받는 단계, 상기 자연어에 대한 전처리를 수행하는 단계, 상기 전처리된 자연어에 대한 특징 및 상기 사용자에 대한 특징을 분석하여 복수의 채팅 서버 중 상기 자연어에 대응하는 채팅 서버를 결정하는 단계 및 상기 자연어에 대한 응답을 수신하기 위해 상기 자연어에 대응되는 채팅 서버로 상기 전처리된 자연어를 전송하는 단계를 포함하는 제어 방법을 포함할 수 있다.
또한, 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 프로그램 제품은, 사용자가 입력한 자연어를 입력받는 단계, 상기 자연어에 대한 특징 및 상기 사용자에 대한 특징을 분석하여 복수의 채팅 서버 중에서 상기 자연어에 대응하는 채팅 서버를 결정하는 단계 및 상기 자연어에 대한 응답을 수신하기 위해 상기 결정된 채팅 서버로 자연어를 전송하는 단계를 본 개시의 전자 장치가 실행하도록 설정된 명령어들을 포함할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 사용자가 입력한 자연어에 따라 동적으로 채팅 서버의 매칭을 변경하여, 사용자에게 최적의 채팅 서버를 제공할 수 있다. 또한, 채팅 기반 사용자 응답 서비스를 제공할 때, 불필요한 리소스의 사용이 방지될 수 있다.
도 1은 본 개시의 일 실시 예에 따른 채팅봇 시스템의 개념을 설명하기 위한 개념도,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도,
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 상세히 설명하기 위한 블록도,
도 4는 본 개시의 일부 실시 예에 따른 프로세서의 블록도,
도 5a는 본 개시의 일부 실시 예에 따른 데이터 학습부의 블록도,
도 5b는 본 개시의 일부 실시 예에 따른 데이터 인식부의 블록도,
도 6은 본 개시의 일 실시 예에 따른 자연어의 난이도를 판단하는 방법을 설명하기 위한 도면,
도 7a 및 도 7b는 본 개시의 일 실시 예에 따른 자연어 분석을 통한 매칭 스코어 산출 방법을 설명하기 위한 도면,
도 8은 본 개시의 일 실시 예에 따른 대화 패턴 분석을 통한 매칭 스코어 산출 방법을 설명하기 위한 도면,
도 9는 본 개시의 다른 실시 예에 따른 채팅봇 시스템의 구성을 설명하기 위한 도면,
도 10 및 도 11은 본 개시의 다양한 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도,
도 12a 및 도 12b는 본 개시의 다른 실시 예에 따른 채팅봇 시스템을 개념을 설명하기 위한 개념도, 그리고,
도 13은 본 개시의 일 실시 예에 따른 매칭봇의 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 본 개시의 바람직한 실시 예가 첨부된 도면을 참조하여 상세히 설명한다. 본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되지는 않는다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 항목들의 조합 또는 복수의 관련된 항목들 중의 어느 하나의 항목을 포함한다.
본 명세서에서 사용한 용어는 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 숫자, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
실시 예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 또는 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
이하에서는 첨부된 도면을 이용하여 본 개시에 대하여 구체적으로 설명한다.
도 1은 본 개시의 일 실시 예에 따른 채팅봇 시스템(1000)의 개념을 설명하기 위한 개념도이다. 도 1을 참조하면 채팅봇 시스템(1000)은 전자 장치(100) 및 복수의 채팅 서버(210, 220, 230)로 구성될 수 있다. 복수의 채팅 서버(210, 220, 230)는 스펙, 리소스, 응답 처리 모델이 상이할 수 있다. 예를 들어, 복수의 채팅 서버(210, 220, 230) 각각은 CPU 성능이 상이한 채팅 서버일 수 있다.
채팅봇 시스템(1000)은 사용자가 입력한 자연어에 응답할 수 있는 전자 장치(100) 및 서버(200)로 구성된 시스템을 의미한다. 예를 들어, 전자 장치(100)는 PC, 스마트 TV, 스마트폰, 타블렛 PC, 음성 인식 장치, 오디오 장치 등 다양한 장치로 구현될 수 있다. 서버(200)는 복수의 채팅 서버 장치로 구성된 일군의 서버들일 수도 있고, 복수의 프로세서가 각각 별개의 채팅봇으로 동작하는 단일 장치로 구현될 수도 있다.
본 개시의 일 실시 예에 따르면 전자 장치(100)는 사용자가 입력한 자연어를 기초로 복수의 채팅 서버(210, 220, 230) 중 하나를 선택할 수 있다. 사용자가 입력한 자연어는, 예로, 사용자가 음성으로 발화한 문장 또는 사용자가 텍스트로서 입력한 문장이 될 수 있다. 사용자가 발화하거나 또는 입력한 문장은 주어와 동사를 모두 포함할 수도 있고, 또는 주어, 동사, 목적어 중 하나 이상을 포함할 수도 있다. 또는, 사용자가 발화하거나 입력한 문장은 특정 단어만을 포함할 수도 있다.
예를 들어, 전자 장치(100)는 간단한 질의에 해당하는 자연어인지, 추론을 통한 언어 이해가 필요한 자연어인지를 판단할 수 있다. 그리고 판단 결과를 기초로 전자 장치(100)는 복수의 채팅 서버(210, 220, 230) 중 하나를 선택할 수 있다.
이어서, 전자 장치(100)는 선택된 복수의 채팅 서버(210, 220, 230) 중 하나에게 사용자가 입력한 자연어를 전송할 수 있다. 선택된 복수의 채팅 서버(210, 220, 230) 중 하나는 사용자가 입력한 자연어에 대해 응답을 생성할 수 있다. 각각의 채팅 서버(210, 220, 230)는 응답을 생성하기 위한 각기 다른 모델을 포함할 수 있다. 예를 들어, 특정 자연어에 대한 응답만을 생성할 수 있는 초급 모델, 문맥을 파악할 수 있는 중급 모델, 추론을 통해 언어를 이해할 수 있는 고급 모델이 각기 다른 채팅 서버(210, 220, 230)에 저장될 수 있다.
본 개시의 다른 실시 예에 따르면, 전자 장치(100)는 입출력 기능만을 수행하고, 자연어를 분석하여 적절한 채팅 서버를 매칭하는 기능은 서버(200)에서 수행할 수도 있다.
또한, 본 개시의 또 다른 실시 예에 따르면, 전자 장치(100) 단독으로 상술한 모든 동작을 수행할 수도 있다. 전자 장치(100)는 리소스 사용 정도가 상이한 복수의 채팅 모드로 동작할 수 있다. 예를 들어, 전자 장치(100)는 CPU 성능의 20% 까지만 사용하도록 제한된 제1 채팅 모드, CPU 성능의 50% 까지만 사용하도록 제한된 제2 채팅 모드, 모든 CPU 성능을 사용할 수 있는 제3 채팅 모드 중 하나의 채팅 모드로 동작할 수 있다. CPU 성능 제한 정도에 따라 전자 장치(100)는 사용되는 응답 모델을 변경할 수 있다. 예를 들어, 전자 장치(100)는 CPU 성능을 20% 까지만 이용할 경우 단순 응답만 가능한 응답 모델을 이용하고, CPU 성능을 모두 이용할 수 있는 경우 추론까지 가능한 응답 모델을 이용할 수 있다.
이하에서는 도 1에 도시된 것과 같이 전자 장치(100)가 자연어의 난이도를 판단하고, 대응되는 채팅 서버를 매칭하는 실시 예를 중심으로 설명하도록 한다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 설명하기 위한 블록도이다. 도 2를 참조하면 전자 장치(100)는 입력부(110), 통신부(120) 및 프로세서(130)를 포함할 수 있다.
입력부(110)는 사용자로부터 자연어를 입력받을 수 있다. 예를 들어, 입력부(110)는 마이크로 구현되어, 자연어로서 사용자가 발화한 음성을 수신할 수 있다. 다른 예로, 입력부(110)는 키보드, 터치 스크린 등으로 구현되어, 음성이 아닌 텍스트 형태로 사용자가 입력한 자연어를 수신할 수도 있다.
통신부(120)는 외부의 복수의 채팅 서버와 통신을 수행할 수 있다. 예를 들어, 통신부(120)는 채팅 서버로 입력부(110)를 통해 입력받은 자연어를 전송할 수 있다. 그리고 통신부(120)는 채팅 서버로부터 자연어에 대한 응답을 수신할 수 있다.
프로세서(130)는 자연어에 대한 특징을 분석할 수 있다. 예로, 프로세서(130)는 입력된 자연어에 대한 전처리를 처리할 수 있다. 그리고 프로세서(130)는 전처리된 자연어에 대한 특징을 분석할 수 있다. 전처리된 자연어에 대한 특징 및 사용자에 대한 특징을 이용하여, 프로세서(130)는 복수의 채팅 서버 중 자연어를 처리하는데 가장 적합한 채팅 서버를 결정할 수 있다. 예를 들어, 프로세서(130)는 자연어의 난이도를 판단하고, 판단된 난이도를 처리할 수 있는 복수의 채팅 서버 중 가장 리소스를 적게 소모하는 채팅 서버를 자연어에 대응하는 채팅 서버로 결정할 수 있다.
프로세서(130)는 실시간으로 자연어에 대응하는 채팅 서버를 변경할 수 있다. 예를 들어, 난이도가 낮은 자연어가 입력되다가 난이도가 높은 자연어가 입력되는 경우, 프로세서(130)는 처리 능력이 높은 응답 모델을 이용하는 채팅 서버로 자연어에 대응하는 채팅 서버를 재결정할 수 있다. 채팅 서버가 변경되는 경우, 프로세서(130)는 기존의 채팅 서버와 수행하였던 대화 내용을 변경된 채팅 서버에 제공할 수 있다. 데이터의 동기화가 이루어짐에 따라 프로세서(130)는 자연스러운 채팅 서버의 전환을 구현할 수 있다.
이와 같이 전자 장치(100)는 사용자 질의 내용, 사용자의 감정 상태 등에 따라 적절한 응답을 제공할 수 있다. 그리고 다양한 수준의 응답을 제공할 채팅 서버의 스펙을 상이하게 구현함으로써, 불필요한 리소스의 사용이 방지될 수 있다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 상세히 설명하기 위한 블록도이다. 도 3을 참조하면, 전자 장치(100)는 입력부(110), 통신부(120), 프로세서(130), 메모리(140), 디스플레이(150) 및 스피커(160)를 포함할 수 있다.
입력부(110)는 사용자의 음성, 텍스트 등을 입력받을 수 있다. 예를 들어, 입력부(110)는 수신된 사용자의 음성 신호를 처리할 수 있다. 입력부(110)는 아날로그 형태의 사용자 음성이 입력되면, 입력된 사용자 음성을 샘플링하여 디지털 신호로 변환할 수 있다. 그리고 입력부(110)는 변환된 디지털 신호의 에너지를 계산하여, 디지털 신호의 에너지가 기설정된 값 이상인지 여부를 판단할 수 있다. 디지털 신호의 에너지가 기설정된 값 이상이면, 입력부(110)는 디지털 신호에서 노이즈 성분을 제거하여 프로세서(130)로 전달할 수 있다. 예를 들어, 노이즈 성분은 주변 환경에서 발생할 수 있는 돌발성 잡음일 수 있다.
통신부(120) 외부의 서버(200)와 통신을 수행한다. 전자 장치(100)는 음성 인식, 매칭 스코어 산출, 대응 서버 결정 등을 직접 수행할 수도 있고, 서버(200)에 데이터를 전송하여 음성 인식, 매칭 스코어 산출, 대응 서버 결정 등의 수행을 요청할 수도 있다. 예를 들어, 통신부(120)는 서버(200)에 입력된 사용자 음성을 전송하고, 사용자 음성에 대응되는 응답을 서버(200)로부터 수신할 수 있다.
이를 위해, 통신부(120)는 근거리 무선 통신 모듈(미도시), 무선 통신 모듈(미도시) 등과 같은 다양한 통신 모듈을 포함할 수 있다. 여기에서, 근거리 무선 통신 모듈이란 블루투스(Bluetooth), 지그비(Zigbee) 등과 같은 근거리 무선 통신 방식에 따라, 근거리에 위치한 외부 기기와 통신을 수행하기 위한 모듈이다. 또한, 무선 통신 모듈이란 WiFi, WiFi direct, IEEE 등과 같은 무선 통신 프로토콜에 따라 외부 네트워크에 연결되어 통신을 수행하는 모듈이다. 이 밖에 무선 통신 모듈은 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution), LTE-A(LTE Advanced) 등과 같은 다양한 이동 통신 규격에 따라 이동 통신망에 접속하여 통신을 수행하는 이동 통신 모듈을 더 포함할 수도 있다.
메모리(140)는 전자 장치(100)를 구동하기 위한 다양한 모듈, 소프트웨어, 데이터를 저장할 수 있다. 예를 들어, 메모리(140)에는 인식된 음성 정보, 채팅 서버와 수행된 대화 히스토리 정보, 자연어가 입력된 상황에 대한 컨텍스트 정보, 사용자 정보 등이 저장될 수 있다. 사용자 정보는 응답 제공 후 만족도 조사 등을 통해 수집될 수 있다.
다른 예로, 메모리(140)에는 사용자의 음성을 인식하는데 이용될 수 있는 음향 모델(Acoustic Model, AM) 및 언어 모델(Language Model, LM)이 저장될 수 있다. 또한, 메모리(140)에는 자연언어 처리를 위한 언어 표본을 추출한 집합인 말뭉치(Corpus)가 저장될 수 있다.
메모리(140)는 전자 장치(100)를 동작시키기 위해 필요한 각종 프로그램 등이 저장되는 저장매체로서, 플래쉬 메모리, HDD(Hard Disk Drive), SSD (Solid State Drive) 등의 형태로 구현 가능하다. 예를 들어, 메모리(140)는 전자 장치(100)의 동작 수행을 위한 프로그램을 저장하기 위한 ROM, 전자 장치(100)의 동작 수행에 따른 데이터를 일시적으로 저장하기 위한 RAM을 구비할 수 있다.
그리고 메모리(140)에는 디스플레이(150)에 표시될 각종 화면을 구성하기 위한 프로그램 및 데이터가 저장될 수 있다. 또한, 메모리(140)에는 특정 서비스를 수행하기 위한 프로그램, 어플리케이션 및 데이터가 저장될 수 있다.
디스플레이(150) 및 스피커(160)는 출력부의 기능을 수행할 수 있다. 전자 장치(100)의 구현 형태에 따라서 디스플레이(150) 및 스피커(160) 중 적어도 하나만을 포함할 수도 있다. 전자 장치(100)는 디스플레이(150)를 통해 시각적으로 응답을 제공할 수도 있고, 스피커(160)를 통해 청각적으로 응답을 제공할 수도 있다.
디스플레이(150)는 입력된 자연어에 대응되는 응답을 표시할 수 있다. 또는 디스플레이(150)는 입력된 자연어에 대응되는 응답을 모두 표시할 수도 있다.
디스플레이(150)는 액정 표시 장치(Liquid Crystal Display, LCD), 유기 전기 발광 다이오드(Organic Light Emitting Display, OLED) 또는 플라즈마 표시 패널(Plasma Display Panel, PDP) 등으로 구현되어, 전자 장치(100)를 통해 제공 가능한 다양한 화면을 표시할 수 있다.
스피커(160)는 음성을 출력할 수 있다. 예를 들어, 스피커(160)는 음성 신호로 변환된 응답을 출력할 수 있다. 스피커(160)는 전자 장치(100)에 내장될 수도 있고, 잭 등과 같은 출력 포트의 형태로 구현될 수도 있다.
프로세서(130)는 전자 장치(100)의 상술한 구성들을 제어할 수 있다. 예를 들어, 프로세서(130)는 복수의 채팅 서버 중 자연어에 대응되는 채팅 서버로 결정된 채팅 서버로 자연어를 전송하도록 통신부(120)를 제어할 수 있다.
프로세서(130)는 단일 CPU로 구현되어 음성 인식 동작, 언어 이해 동작, 매칭 스코어 분석 동작, 채팅 서버 결정 동작 등을 수행할 수도 있고, 복수의 프로세서 및 특정 기능을 수행하는 IP(Integrated Processor)로 구현될 수도 있다. 예를 들어, 프로세서(130)는 전통적인 은닉 마코프 모델(Hidden Markov Model, HMM) 기반의 음성 인식을 수행할 수도 있고, 딥 신경망(Deep Neural Network, DNN)과 같은 딥러닝 기반의 음성 인식을 수행할 수도 있다.
프로세서(130)는 입력된 자연어를 전처리할 수 있다. 프로세서(130)는 자연어 처리를 위한 전처리로 자연어 cleansing, 자연어 분리, 형태소 분석, entity 추출 등의 동작을 수행할 수 있다. 예를 들어, 프로세서(130)는 입력 문자열을 형태소열로 바꾸는 작업을 수행할 수 있다. 형태소(morpheme)란 의미의 최소 단위를 말한다.
그리고 프로세서(130)는 전처리된 자연어에 대한 분석을 수행할 수 있다. 예를 들어, 프로세서(130)는 자연어 분석, 대화 패턴 분석, 감정 분석, 사용자의 연령/성별 분석, 메타데이터 분석, 사용자 로그 분석 등을 수행할 수 있다. 그리고 프로세서(130)는 각각의 분석 결과를 매칭 스코어로 산출할 수 있다. 산출된 매칭 스코어를 바탕으로 프로세서(130)는 대응 채팅 서버를 결정할 수 있다.
추가 자연어가 입력되면, 프로세서(130)는 추가 자연어에 대한 분석을 통해 대응되는 채팅 서버를 결정할 수 있다. 만일 추가 자연어에 대응되는 채팅 서버가 이전에 처리한 자연어에 대응되는 채팅 서버와 상이하면, 프로세서(130)는 이전에 처리한 자연어에 대응되는 채팅 서버와 송수신한 대화 히스토리 정보 및 컨텍스트 정보를 추가 자연어에 대응되는 채팅 서버로 전송할 수 있다. 이와 같이 채팅 서버(또는 채팅봇)가 변경되어도 데이터를 공유함으로써, 프로세서(130)는 응답의 일관성을 유지하면서도 리소스 낭비를 방지할 수 있다.
더욱 구체적인 프로세서(130)의 동작에 대해서는 이하에서 예시 도면과 함께 다시 설명하기로 한다.
도 4는 본 개시의 일부 실시 예에 따른 프로세서(400)의 블록도이다. 도 4를 참조하면, 일부 실시 예에 따른 프로세서(400)는 데이터 학습부(131) 및 데이터 인식부(132)를 포함할 수 있다. 프로세서(400)는 전자 장치(100)의 프로세서(130)가 될 수도 있고, 또는 서버(200)를 구성하는 복수의 채팅 서버들(210,220,230,240) 중 적어도 하나의 프로세서가 될 수도 있다.
데이터 학습부(131)는 음성 인식, 언어 이해, 텍스트 인식, 자연어의 난이도 판단을 위한 기준을 학습할 수 있다. 데이터 인식부(132)는 학습된 기준에 따라 입력된 자연어의 내용을 인식할 수 있다. 그리고 프로세서(130)는 인식된 내용을 바탕으로 어느 채팅 서버에 자연어를 전송해야 할 것인지를 결정할 수 있다. 프로세서(130)는 입력된 사용자 음성 자체를 분석할 수도 있고, 사용자 음성을 텍스트로 변환하여 텍스트를 분석할 수도 있다. 데이터 학습부(131)는 컨텐츠를 인식하기 위하여 어떠한 데이터를 이용할 것인지 결정할 수 있다. 데이터 학습부(131)는 학습에 이용될 데이터를 획득하고, 획득된 데이터를 후술할 데이터 인식 모델에 적용함으로써 음성 인식, 언어 이해, 컨텐츠 인식을 위한 기준을 학습할 수 있다.
데이터 학습부(131)는 복수의 채팅 서버 각각에 포함될 수 있다. 이 경우, 복수의 채팅 서버 각각에 포함된 데이터 학습부(131)는 사용자가 입력한 자연어를 인식하여 응답을 제공하기 위한 기준을 학습할 수 있다. 복수의 채팅 서버 각각에 포함된 각각의 데이터 학습부(131)는 학습된 결과로 생성 또는 갱신된 데이터 인식 모델을 복수의 채팅 서버 각각에 저장할 수 있다. 예로, 복수의 채팅 서버 각각은 특정 자연어에 대한 응답을 생성하도록 학습된 초급 모델, 문맥을 파악하도록 학습된 중급 모델, 추론을 통해 언어를 이해할 수 있도록 설정된 고급 모델을 각각 저장할 수 있다. 또는, 각각의 데이터 학습부(131)는 생성 또는 갱신된 데이터 인식 모델을 별도의 데이터 베이스 서버에 함께 저장할 수도 있다.
데이터 학습부(131)는 학습에 이용될 학습용 데이터를 획득하여 지도 학습 방식 또는 비지도 학습 방식에 따라 데이터 인식 모델을 학습시킬 수 있다.
일 예로, 복수의 채팅 서버는 대화 난이도(예로, 초급, 중급, 고급) 또는 대화 스타일에 따라 분류될 수 있다. 또는, 복수의 채팅 서버는 의견(예로, 매우 긍정, 긍정, 중립, 부정, 매우 부정)에 따라 분류될 수 있다. 또는, 복수의 채팅 서버는 감정(예로, 평상심, 기쁨, 노여움, 슬픔, 우울, 놀람, 두려움)에 따라 분류될 수 있다. 또는, 복수의 채팅 서버는 나이, 성별, 지역, 학력에 따라 분류될 수 있다.
복수의 채팅 서버가 상기 기준에 따라 분류된 경우, 복수의 채팅 서버 각각에 포함된 데이터 학습부(131)에 이용되는 학습용 데이터는 서로 다를 수 있다.
예로, 복수의 채팅 서버가 대화 난이도 또는 대화 스타일에 따라 분류되는 경우, 복수의 채팅 서버 중 제1 채팅 서버에 포함된 데이터 학습부(131)는 {형식적(formal) 자연어, 자연어에 대한 응답} 엔티티를 학습용 데이터로서 이용할 수 있다. 또한, 복수의 채팅 서버 중 제2 채팅 서버에 포함된 데이터 학습부(131)는 {비형식적(informal) 자연어, 자연어에 대한 응답} 엔티티를 학습용 데이터로서 이용할 수 있다. 또한, 복수의 채팅 서버 중 제3 채팅 서버에 포함된 데이터 학습부(131)는 {비속어/은어 자연어, 자연어에 대한 응답} 엔티티를 학습용 데이터로서 이용할 수 있다.
다른 예로, 복수의 채팅 서버가 의견에 따라 분류되는 경우, 복수의 채팅 서버 각각에 포함된 각각의 데이터 학습부(131)는 {매우 긍정적인 자연어, 자연어에 대한 응답} 엔티티, {긍정적인 자연어, 자연어에 대한 응답} 엔티티, {중립적인 자연어, 자연어에 대한 응답} 엔티티, {부정적인 자연어, 자연어에 대한 응답} 엔티티, {매우 부정적인 자연어, 자연어에 대한 응답} 엔티티를 각각 학습용 데이터로서 각각 이용할 수 있다.
또 다른 예로, 복수의 채팅 서버가 감정에 따라 분류되는 경우, 복수의 채팅 서버 각각에 포함된 각각의 데이터 학습부(131)는 {평상심적인 자연어, 자연어에 대한 응답} 엔티티, {기뻐하는 자연어, 자연어에 대한 응답} 엔티티, {노여워하는 자연어, 자연어에 대한 응답} 엔티티, {슬퍼하는 자연어, 자연어에 대한 응답} 엔티티, {우울해하는 자연어, 자연어에 대한 응답}, {두려워하는 자연어, 자연어에 대한 응답} 엔티티를 각각 학습용 데이터로서 각각 이용할 수 있다.
또 다른 예로, 복수의 채팅 서버가 나이에 따라 분류되는 경우, 복수의 채팅 서버 각각에 포함된 각각의 데이터 학습부(131)는 {소년이 입력한 자연어, 자연어에 대한 응답} 엔티티, {청년이 입력한 자연어, 자연어에 대한 응답} 엔티티, {중년이 입력한 자연어, 자연어에 대한 응답} 엔티티, {노년이 입력한 자연어, 자연어에 대한 응답} 엔티티를 각각 학습용 데이터로서 각각 이용할 수 있다.
또 다른 예로, 복수의 채팅 서버가 지역에 따라 분류되는 경우, 복수의 채팅 서버 각각에 포함된 각각의 데이터 학습부(131)는 {서울 사람이 입력한 자연어, 자연어에 대한 응답} 엔티티, {경상도 사람이 입력한 자연어, 자연어에 대한 응답} 엔티티, {전라도 사람이 입력한 자연어, 자연어에 대한 응답} 엔티티, {충청도 사람이 입력한 자연어, 자연어에 대한 응답} 엔티티를 각각 학습용 데이터로서 각각 이용할 수 있다.
데이터 인식부(132)는 학습된 데이터 인식 모델을 이용하여, 소정의 데이터로부터 상황을 인식할 수 있다. 데이터 인식부(132)는 학습에 의한 기설정된 기준에 따라 소정의 데이터를 획득하고, 획득된 데이터를 입력 값으로 하여 데이터 인식 모델을 이용할 수 있다. 예를 들어, 학습된 음향 모델 및 언어 모델을 이용하여, 데이터 인식부(132)는 입력된 자연어를 인식할 수 있다. 또한, 자연어 인식 결과로 획득된 데이터를 재차 입력 값으로 이용하여, 데이터 인식부(132)는 데이터 인식 모델을 갱신할 수 있다. 이와 같이, 데이터 인식부(132)는 자연어 인식 및 자연어 분석 등에 빅데이터 및 사용자 입력 데이터를 이용할 수 있다.
데이터 인식부(132)는 복수의 채팅 서버 각각에 포함될 수 있다. 이 경우, 복수의 채팅 서버 각각에 포함된 데이터 인식부(132)는 자연어에 대한 응답을 제공하도록 설정된 데이터 인식 모델을 이용하여 인식용 데이터에 대한 인식 결과를 제공할 수 있다.
서버(200)의 프로세서(130) 또는 전자 장치(100)의 프로세서(130)가 사용자가 입력한 자연어를 분석하여 자연어를 전송할 채팅 서버를 결정하면, 사용자가 입력한 자연어 또는 사용자가 입력한 자연어가 전처리된 자연어가, 결정된 채팅 서버로 전송될 수 있다.
복수의 채팅 서버 각각에 포함된 데이터 인식부(132)는 사용자가 입력한 자연어 또는 전처리된 자연어를 입력 값으로 데이터 인식 모델에 적용하여, 인식 결과로서 자연어에 대한 응답을 획득(또는, 추정, 추론, 또는 예측)할 수 있다. 채팅 서버는 데이터 인식부(132)가 획득한 자연어에 대한 응답을 전자 장치(100)로 전송할 수 있다.
데이터 학습부(131) 및 데이터 인식부(132) 중 적어도 하나는, 하나 또는 복수의 하드웨어 칩 형태로 제작되어 전자 장치(100)에 탑재될 수 있다. 예를 들어, 데이터 학습부(131) 및 데이터 인식부(132) 중 적어도 하나는 인공 지능(Artificial Intelligence, AI)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 기존의 범용 프로세서(예를 들어, CPU 또는 application processor) 또는 특정 기능을 위한 IP의 일부로 제작되어 전술한 각종 전자 장치(100)에 탑재될 수도 있다. 이 때, 인공 지능을 위한 전용 하드웨어 칩은 확률 연산에 특화된 전용 프로세서로서, 기존의 범용 프로세서보다 병렬처리 성능이 높아 기계 학습과 같은 인공 지능 분야의 연산 작업을 빠르게 처리할 수 있다.
도 4의 실시 예에서는 데이터 학습부(131) 및 데이터 인식부(132)가 모두 전자 장치(100)에 탑재된 경우를 도시하였으나, 이들은 각각 별개의 장치에 탑재될 수도 있다. 예를 들어, 데이터 학습부(131) 및 데이터 인식부(132) 중 하나는 전자 장치(100)에 포함되고, 나머지 하나는 서버에 포함될 수 있다. 또한 데이터 학습부(131) 및 데이터 인식부(132)는 서로 유선 또는 무선으로 연결되어, 데이터 학습부(131)가 구축한 모델 정보가 데이터 인식부(132)로 제공될 수 있고, 데이터 인식부(132)로 입력된 데이터가 추가 학습 데이터로 데이터 학습부(131)로 제공될 수도 있다.
한편, 데이터 학습부(131) 및 데이터 인식부(132) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 학습부(131) 및 데이터 인식부(132) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 비일시적 컴퓨터 판독가능 기록매체에 저장될 수 있다. 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 어플리케이션에 의해 제공될 수 있다. 또는 적어도 하나의 소프트웨어 모듈 중 일부는 OS에 의해 제공되고, 나머지 일부는 소정의 어플리케이션에 의해 제공될 수도 있다.
도 5a는 본 개시의 일부 실시 예에 따른 데이터 학습부(131)의 블록도이다. 도 5a를 참조하면, 일부 실시 예에 따른 도 4의 데이터 학습부(131)는 데이터 획득부(131-1), 전처리부(131-2), 학습 데이터 선택부(131-3), 모델 학습부(131-4) 및 모델 평가부(131-5)를 포함할 수 있다. 일부 실시예에 따른 데이터 학습부(131)는 데이터 획득부(131-1) 및 모델 학습부(131-4)를 필수적으로 포함하고, 전처리부(131-2), 학습 데이터 선택부(131-3) 및 모델 평가부(131-5) 중 적어도 하나를 선택적으로 더 포함하거나, 모두 포함하지 않을 수도 있다.
데이터 획득부(131-1)는 상황 판단에 필요한 데이터를 획득할 수 있다. 데이터 획득부(131-1)는 입력부(110)로부터 자연어를 획득할 수 있다. 예를 들어, 데이터 획득부(131-1)는 마이크를 통해 입력된 사용자 음성 신호가 디지털 신호로 변환된 음성 데이터를 획득할 수 있다. 또한, 데이터 획득부(131-1)는 통신부(120)를 통해 서버 또는 인터넷과 같은 네트워크에서 학습용 데이터를 수신할 수도 있다. 예를 들어, 데이터 획득부(131-1)는 난이도별로 구분된 자연어를 학습용 데이터로서 수신할 수 있다
전처리부(131-2)는 상황 판단을 위한 학습에 획득된 데이터가 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(131-2)는 후술할 모델 학습부(131-4)가 상황 판단을 위한 학습을 위하여 획득된 데이터를 이용할 수 있도록, 획득된 데이터를 기설정된 포맷으로 가공할 수 있다. 예를 들어, 전처리부(131-2)는 획득된 자연어에 대한 형태소 분석, 자연어 분리, 엔티티 추출 등을 수행할 수 있다. 또는, 자연어가 음성 데이터인 경우, 전처리부(131-2)는 음성 데이터를 텍스트 데이터로 변환할 수 있다. 그리고, 전처리부(131-2)는 변환된 텍스트에 대한 형태소 분석, 자연어 분리, 엔티티 추출 등을 수행할 수도 있다.
학습 데이터 선택부(131-3)는 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 선택된 데이터는 모델 학습부(131-4)에 제공될 수 있다. 학습 데이터 선택부(131-3)는 상황 판단을 위한 기설정된 기준에 따라, 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 또한, 학습 데이터 선택부(131-3)는 후술할 모델 학습부(131-4)에 의한 학습에 의해 기설정된 기준에 따라 데이터를 선택할 수도 있다. 기 설정된 기준은, 예로, 데이터의 속성, 데이터의 생성 시간, 데이터의 생성자, 데이터의 신뢰도, 데이터의 대상, 데이터의 생성 지역 및 데이터의 크기 중 적어도 하나를 포함할 수 있다.
다른 예로, 학습 초기에는 학습 데이터 선택부(131-3)가 자연어 데이터들 중 유사도가 높은 자연어 데이터를 제거할 수 있다. 즉, 초기 학습을 위하여 학습 데이터 선택부(131-3)는 구분하기 쉬운 기준을 학습하도록 유사도가 낮은 자연어 데이터를 선택할 수 있다.
그리고, 학습 데이터 선택부(131-3)는 학습에 의해 기설정된 기준 중 하나를 공통으로 만족하는 자연어 데이터를 선택할 수 있다. 이를 통해, 모델 학습부(131-4)는 이미 학습된 기준과는 상이한 다른 기준을 학습할 수 있다.
모델 학습부(131-4)는 학습 데이터에 기초하여 자연어를 인식하기 위한 기준을 학습할 수 있다. 또한, 모델 학습부(131-4)는 자연어 분석을 위하여 어떤 학습 데이터를 이용해야 하는지에 대한 기준을 학습할 수도 있다.
또한, 학습 데이터 선택부(131-3)는 복수의 학습용 데이터들 중에서 학습 기준을 만족하는 자연어를 선택할 수 있다. 예로, 학습 데이터 선택부(131-3)가 동작하는 장치가 채팅 서버인 경우, 학습 데이터 선택부(131-3)는 채팅 서버의 목적에 적합한 자연어 및 자연어에 대한 응답을 포함하는 엔티티를 선택할 수 있다. 구체적으로, 채팅 서버가 형식적인 자연어에 대한 응답을 제공하는 목적을 가진 경우, 학습 데이터 선택부(131-3)는 복수의 학습용 데이터들 중에서 형식적인 자연어 및 자연어에 대한 응답을 포함하는 엔티티를 선택할 수 있다.
모델 학습부(131-4)는 상황 판단에 이용되는 데이터 인식 모델을 학습 데이터를 이용하여 학습시킬 수 있다. 이 경우, 데이터 인식 모델은 미리 구축된 모델일 수 있다. 예를 들어, 데이터 인식 모델은 기본 학습 데이터(예를 들어, 샘플 음성 데이터)를 입력 받아 미리 구축된 모델일 수 있다. 다른 예로, 데이터 인식 모델은 빅데이터를 이용하여 미리 구축된 텍스트 분석 모델일 수 있다.
데이터 인식 모델은, 인식 모델의 적용 분야, 학습의 목적 또는 장치의 컴퓨터 성능 등을 고려하여 구축될 수 있다. 데이터 인식 모델은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 데이터 인식 모델은 인간의 뇌 구조를 컴퓨터 상에서 모의하도록 설계될 수 있다. 데이터 인식 모델은 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 가지는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 노드들은 시냅스(synapse)를 통하여 신호를 주고 받는 뉴런의 시냅틱(synaptic) 활동을 모의하도록 각각 연결 관계를 형성할 수 있다. 데이터 인식 모델은, 일 예로, 신경망 모델, 또는 신경망 모델에서 발전한 딥 러닝 모델을 포함할 수 있다. 딥 러닝 모델에서 복수의 네트워크 노드들은 서로 다른 깊이(또는, 레이어)에 위치하면서 컨볼루션(convolution) 연결 관계에 따라 데이터를 주고 받을 수 있다. 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 데이터 인식 모델로서 사용될 수 있으나, 이에 한정되지 않는다.
다양한 실시 예에 따르면, 모델 학습부(131-4)는 미리 구축된 데이터 인식 모델이 복수 개가 존재하는 경우, 입력된 학습 데이터와 기본 학습 데이터의 관련성이 큰 데이터 인식 모델을 학습할 데이터 인식 모델로 결정할 수 있다. 이 경우, 기본 학습 데이터는 데이터의 타입별로 기분류되어 있을 수 있으며, 데이터 인식 모델은 데이터의 타입별로 미리 구축되어 있을 수 있다. 예를 들어, 기본 학습 데이터는 학습 데이터가 생성된 지역, 학습 데이터가 생성된 시간, 학습 데이터의 크기, 학습 데이터의 장르, 학습 데이터의 생성자, 학습 데이터 내의 오브젝트의 종류 등과 같은 다양한 기준으로 기분류되어 있을 수 있다.
또한, 모델 학습부(131-4)는, 예를 들어, 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient descent)을 포함하는 학습 알고리즘 등을 이용하여 데이터 인식 모델을 학습시킬 수 있다.
예를 들어, 모델 학습부(131-4)는 학습 데이터를 입력 값으로 하는 지도 학습(supervised learning)을 통하여 데이터 인식 모델을 학습시킬 수 있다. 다른 예로, 모델 학습부(131-4)는 별도의 지도 없이 상황 판단을 위해 필요한 데이터의 종류를 스스로 학습함으로써 상황 판단을 위한 기준을 발견하는 비지도 학습(unsupervised learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또 다른 예로, 모델 학습부(131-4)는 학습에 따른 상황 판단의 결과가 올바른지에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다.
또한, 모델 학습부(131-4)가 복수 개의 채팅 서버에 각각 포함되는 경우, 모델 학습부(131-4)는 복수의 채팅 서버 각각의 목적에 따라 서로 다른 학습용 데이터를 이용하여 데이터 인식 모델을 학습시킬 수 있다. 학습에 이용되는 학습용 데이터의 다양한 사례는 도 4의 데이터 학습부(131)가 다양한 학습용 데이터를 이용하는 사례에 대응될 수 있어서 중복되는 설명은 생략한다.
또한, 데이터 인식 모델이 학습되면, 모델 학습부(131-4)는 학습된 데이터 인식 모델을 저장할 수 있다. 이 경우, 모델 학습부(131-4)는 학습된 데이터 인식 모델을 전자 장치(100)의 메모리(140)에 저장할 수 있다. 또는, 모델 학습부(131-4)는 학습된 데이터 인식 모델을 전자 장치(100)와 유선 또는 무선 네트워크로 연결되는 서버(200)의 메모리에 저장할 수도 있다. 또는, 모델 학습부(131-4)는 학습된 데이터 인식 모델을 별도의 데이터 베이스 서버에 저장할 수도 있다.
이 경우, 학습된 데이터 인식 모델이 저장되는 메모리(140)는 전자 장치(100)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 함께 저장할 수도 있다. 또한, 메모리(140)는 소프트웨어 및/또는 프로그램을 저장할 수도 있다. 예를 들어, 프로그램은 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API) 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다.
모델 평가부(131-5)는 데이터 인식 모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 인식 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(131-4)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 데이터 인식 모델을 평가하기 위한 기설정된 데이터일 수 있다.
예를 들어, 모델 평가부(131-5)는 평가 데이터에 대한 학습된 데이터 인식 모델의 인식 결과 중에서, 인식 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정된 임계치를 초과하는 경우 소정 기준을 만족하지 못한 것으로 평가할 수 있다. 예컨대, 소정 기준이 비율 2%로 정의되는 경우, 학습된 데이터 인식 모델이 총 1000개의 평가 데이터 중의 20개를 초과하는 평가 데이터에 대하여 잘못된 인식 결과를 출력하는 경우, 모델 평가부(131-5)는 학습된 데이터 인식 모델이 적합하지 않은 것으로 평가할 수 있다.
한편, 학습된 데이터 인식 모델이 복수 개가 존재하는 경우, 모델 평가부(131-5)는 각각의 학습된 데이터 인식 모델에 대하여 소정 기준을 만족하는지를 평가하고, 소정 기준을 만족하는 모델을 최종 데이터 인식 모델로서 결정할 수 있다. 이 경우, 소정 기준을 만족하는 모델이 복수 개인 경우, 모델 평가부(131-5)는 평가 점수가 높은 순으로 미리 설정된 어느 하나 또는 소정 개수의 모델을 최종 데이터 인식 모델로서 결정할 수 있다.
한편, 데이터 학습부(131) 내의 데이터 획득부(131-1), 전처리부(131-2), 학습 데이터 선택부(131-3), 모델 학습부(131-4) 및 모델 평가부(131-5) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(131-1), 전처리부(131-2), 학습 데이터 선택부(131-3), 모델 학습부(131-4) 및 모델 평가부(131-5) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예를 들어, CPU 또는 application processor) 또는 특정 기능을 위한 IP의 일부로 제작되어 전술한 각종 전자 장치(100)에 탑재될 수도 있다.
또한, 데이터 획득부(131-1), 전처리부(131-2), 학습 데이터 선택부(131-3), 모델 학습부(131-4) 및 모델 평가부(131-5)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(131-1), 전처리부(131-2), 학습 데이터 선택부(131-3), 모델 학습부(131-4) 및 모델 평가부(131-5) 중 일부는 전자 장치(100)에 포함되고, 나머지 일부는 서버(200)에 포함될 수 있다.
한편, 데이터 획득부(131-1), 전처리부(131-2), 학습 데이터 선택부(131-3), 모델 학습부(131-4) 및 모델 평가부(131-5) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(131-1), 전처리부(131-2), 학습 데이터 선택부(131-3), 모델 학습부(131-4) 및 모델 평가부(131-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 비일시적 컴퓨터 판독가능 기록매체에 저장될 수 있다. 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 어플리케이션에 의해 제공될 수 있다. 또는 적어도 하나의 소프트웨어 모듈 중 일부는 OS에 의해 제공되고, 나머지 일부는 소정의 어플리케이션에 의해 제공될 수도 있다.
도 5b는 본 개시의 일부 실시 예에 따른 데이터 인식부(132)의 블록도이다. 도 5b를 참조하면, 일부 실시 예에 따른 도 4의 데이터 인식부(132)는 데이터 획득부(132-1), 전처리부(132-2), 인식 데이터 선택부(132-3), 인식 결과 제공부(132-4) 및 모델 갱신부(132-5)를 포함할 수 있다. 일부 실시예에 따른, 데이터 인식부(132)는 데이터 획득부(132-1) 및 인식 결과 제공부(132-4)를 필수적으로 포함하고, 전처리부(1220-2), 인식 데이터 선택부(132-3) 및 모델 갱신부(132-5) 중 적어도 하나를 선택적으로 더 포함할 수 있다.
데이터 획득부(132-1)는 상황 판단에 필요한 데이터를 획득할 수 있으며, 전처리부(132-2)는 상황 판단을 위해 획득된 데이터가 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(132-2)는 후술할 인식 결과 제공부(132-4)가 상황 판단을 위하여 획득된 데이터를 이용할 수 있도록, 획득된 데이터를 기설정된 포맷으로 가공할 수 있다. 예를 들어, 획득된 데이터가 자연어 데이터인 경우, 전처리부(132-2)는 자연어 데이터에 대한 형태소 분석, 자연어 분리, 엔티티 추출 등을 수행할 수 있다. 자연어 데이터가 음성 데이터인 경우, 전처리부(132-2)는 음성 데이터를 텍스트 데이터로 변환할 수 있다. 그리고, 전처리부(132-2)는 변환된 텍스트에 대한 형태소 분석, 자연어 분리, 엔티티 추출 등을 수행할 수도 있다.
인식 데이터 선택부(132-3)는 전처리된 데이터 중에서 상황 판단에 필요한 데이터를 선택할 수 있다. 선택된 데이터는 인식 결과 제공부(132-4)에게 제공될 수 있다. 인식 데이터 선택부(132-3)는 상황 판단을 위한 기설정된 기준에 따라, 전처리된 데이터 중에서 일부 또는 전부를 선택할 수 있다. 또한, 인식 데이터 선택부(132-3)는 모델 학습부(131-4)에 의한 학습에 의해 기설정된 기준에 따라 데이터를 선택할 수도 있다. 기 설정된 기준은, 예로, 데이터의 속성, 데이터의 생성 시간, 데이터의 생성자, 데이터의 신뢰도, 데이터의 대상, 데이터의 생성 지역 및 데이터의 크기 중 적어도 하나를 포함할 수 있다.
인식 결과 제공부(132-4)는 선택된 데이터를 데이터 인식 모델에 적용하여 상황을 판단할 수 있다. 인식 결과 제공부(132-4)는 데이터의 인식 목적에 따른 인식 결과를 제공할 수 있다. 인식 결과 제공부(132-4)는 인식 데이터 선택부(132-3)에 의해 선택된 데이터를 입력 값으로 이용함으로써, 선택된 데이터를 데이터 인식 모델에 적용할 수 있다. 또한, 인식 결과는 데이터 인식 모델에 의해 결정될 수 있다.
예를 들어, 인식 결과 제공부(132-4)는 입력된 사용자의 자연어를 데이터 인식 모델에서 결정된 구분 기준에 따라 인식할 수 있다. 또한, 데이터 인식 모델을 이용하여, 인식 결과 제공부(132-4)는 자연어의 내용을 인식하고, 처리 난이도를 판단할 수 있다.
또는, 인식 결과 제공부(132-4)는 입력된 자연어 또는 전처리된 자연어를 입력 값으로 데이터 인식 모델에 적용하여, 인식 결과로서 자연어에 대한 응답을 획득할 수 있다.
모델 갱신부(132-5)는 인식 결과 제공부(132-4)에 의해 제공되는 인식 결과에 대한 평가에 기초하여, 데이터 인식 모델이 갱신되도록 할 수 있다. 예를 들어, 모델 갱신부(132-5)는 인식 결과 제공부(132-4)에 의해 제공되는 인식 결과를 모델 학습부(131-4)에게 제공함으로써, 모델 학습부(131-4)가 데이터 인식 모델을 갱신하도록 할 수 있다.
한편, 데이터 인식부(132) 내의 데이터 획득부(132-1), 전처리부(132-2), 인식 데이터 선택부(132-3), 인식 결과 제공부(132-4) 및 모델 갱신부(132-5) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(132-1), 전처리부(132-2), 인식 데이터 선택부(132-3), 인식 결과 제공부(132-4) 및 모델 갱신부(132-5) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예를 들어, CPU 또는 application processor) 또는 특정 기능을 위한 IP의 일부로 제작되어 전술한 각종 전자 장치(100)에 탑재될 수도 있다.
또한, 데이터 획득부(132-1), 전처리부(132-2), 인식 데이터 선택부(132-3), 인식 결과 제공부(132-4) 및 모델 갱신부(132-5) 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(132-1), 전처리부(132-2), 인식 데이터 선택부(132-3), 인식 결과 제공부(132-4) 및 모델 갱신부(132-5) 중 일부는 전자 장치(100)에 포함되고, 나머지 일부는 서버(200)에 포함될 수 있다.
한편, 데이터 획득부(132-1), 전처리부(132-2), 인식 데이터 선택부(132-3), 인식 결과 제공부(132-4) 및 모델 갱신부(132-5) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(132-1), 전처리부(132-2), 인식 데이터 선택부(132-3), 인식 결과 제공부(132-4) 및 모델 갱신부(132-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 비일시적 컴퓨터 판독가능 기록매체에 저장될 수 있다. 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 어플리케이션에 의해 제공될 수 있다. 또는 적어도 하나의 소프트웨어 모듈 중 일부는 OS에 의해 제공되고, 나머지 일부는 소정의 어플리케이션에 의해 제공될 수도 있다.
본 개시의 일 실시 예에 따르면, 프로세서(130)는 복수의 분석 방법을 이용하여 사용자가 입력한 자연어의 난이도를 판단할 수 있다. 예를 들어, 프로세서(130)는 각각의 분석 방법에 대해 매칭 스코어를 산출할 수 있다. 매칭 스코어는 각각의 채팅 서버와의 매칭 정도를 나타내는 확률 값일 수 있다. 산출 스코어를 합한 최종 매칭 스코어를 기초로, 프로세서(130)는 복수의 채팅 서버 중에서 자연어에 대응되는 채팅 서버를 결정할 수 있다.
복수의 채팅 서버는 사용자가 입력한 자연어 및 사용자의 특징에 따라 사용자의 자연어에 대한 응답을 제공하는 제1 내지 제3 채팅 서버를 포함할 수 있다. 여기서 제1 내지 제3 채팅 서버는 응답을 제공하는 방식에 따라 구분될 수 있다. 또한, 각각의 응답 제공 방식에서 필요한 리소스에 따라, 제1 내지 제3 채팅 서버가 갖는 CPU, 메모리 등의 스펙이 상이할 수 있다.
예를 들어, 제1 채팅 서버(210)는 기저장된 응답 데이터 베이스를 이용하여 사용자가 입력한 자연어에 대응되는 응답을 제공할 수 있다. 제2 채팅 서버(220)는 사용자가 입력한 자연어의 문맥을 판단하여 응답을 제공하는 제1 응답 모델을 이용할 수 있다. 제3 채팅 서버(230)는 사용자가 입력한 자연어에 포함된 질문을 추론하여 응답을 제공하는 제2 응답 모델을 이용할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 사용자가 입력한 자연어의 난이도를 판단하는 방법을 설명하기 위한 도면이다. 도 6에 도시된 바와 같이, 복수의 채팅봇(또는 채팅 서버)는 응답 제공 방식 및 리소스가 상이한 복수 종류의 채팅봇으로 구성될 수 있다(예를 들어, A 채팅봇, B 채팅봇, C 채팅봇, ..., N 채팅봇).
도 6을 참조하면, 프로세서(130)는 채팅봇(또는 채팅 서버) 별로 각각의 분석 방법을 이용한 매칭 스코어(또는 확률 스코어)를 계산할 수 있다. 각각의 매칭 스코어는 노말라이제이션을 통해 0~1 사이의 값을 갖도록 계산될 수 있다. 그리고 프로세서(130)는 매칭 스코어를 총합한 최종 매칭 스코어를 바탕으로 응답을 생성하는데 이용할 채팅봇을 결정할 수 있다. 도 6에서는 C 채팅봇의 최종 매칭 스코어 값이 가장 크기 때문에, 프로세서(130)는 자연어에 대응되는 채팅봇으로 C 채팅봇을 선택할 수 있다. 다양한 실시예로, 프로세서(130)는 복수의 매칭 스코어들 중에서 적어도 하나의 매칭 스코어를 총합한 최종 매칭 스코어를 바탕으로 채팅봇을 결정할 수도 있다.
만일 동일한 최종 매칭 스코어를 갖는 복수의 채팅봇이 존재하면, 프로세서(130)는 채팅봇의 성능(performance) 등에 기초하여 자연어에 대응되는 채팅봇을 결정할 수 있다. 예를 들어, 프로세서(130)는 동일한 최종 매칭 스코어를 갖는 복수의 채팅봇 중에서 가장 적은 리소스를 소비하는 채팅봇을 자연어에 대응되는 채팅봇으로 결정할 수 있다.
이하에서는 사용자가 입력한 자연어의 난이도를 판단하는 여러 가지 방법을 구체적으로 살펴보기로 한다.
도 7a 및 도 7b는 본 개시의 일 실시 예에 따른 자연어 분석을 통한 매칭 스코어 산출 방법을 설명하기 위한 도면이다. 프로세서(130)는 자연어를 구성하는 단어에 대한 가중치 값 및 TF/IDF(Term Frequency/Inverse Document Frequency) 값을 바탕으로 매칭 스코어를 산출할 수 있다.
도 7a는 단어별 가중치의 예시를 도시한 표이다. 프로세서(130)는 일반적인 단어에는 낮은 가중치를 부여하고, 문의하고 있는 제품과 같은 고유 명사에는 높은 가중치를 부여할 수 있다. 예를 들어, 프로세서(130)는 '안녕', '문의', '질문' 등의 단어에는 낮은 가중치를 부여할 수 있다. 그리고 프로세서(130)는 '케이블', '액정', '화면'과 같은 단어에는 높은 가중치를 부여할 수 있다.
도 7b는 각 문장에서 단어들의 TF/IDF를 계산한 값의 예를 도시한 표이다. TF/IDF는 어떤 단어가 특정 문서에서 얼마나 중요한 것인지를 나타내는 통계적 수치이다. 예를 들어, 프로세서(130)는 TF/IDF를 통해 문서의 핵심어를 추출할 수 있다.
TF는 특정한 단어가 문서 내에서 얼마나 자주 등장하는지를 나타내는 값이다. DF는 단어 자체가 문서군 내에서 얼마나 자주 등장하는지를 나타내는 값이다. TF가 높을수록 그리고 DF나 낮을수록 특정 단어는 중요한 단어로 판단될 수 있다. TF/IDF는 TF와 DF의 역수인 IDF를 곱한 값이다.
도 8은 본 개시의 일 실시 예에 따른 대화 패턴 분석을 통한 매칭 스코어 산출 방법을 설명하기 위한 도면이다. 도 8에서는 대화 난이도(초급, 중급, 고급)에 따라 채팅 서버가 분류되어 있다. 프로세서(130)는 초급, 중급 및 고급 채팅 서버에서 처리한 대화 패턴 데이터를 이용하여, 현재 사용자(user)가 입력한 자연어와의 유사도를 계산할 수 있다. 예를 들어, 프로세서(130)는 cosine similarity score 계산을 통해 매칭 스코어를 계산할 수 있다. 아래의 수학식 1은 cosine similarity score를 계산하는 수식이다.
Figure 112017116071895-pat00001
본 개시의 일 실시 예에 따르면, 프로세서(130)는 감정 분석을 통해 매칭 스코어를 산출할 수 있다. 프로세서(130)는 의견 분석(Sentiment Analysis) 및 감정 분석(Emotion Analysis)를 통해 각각의 채팅 서버에 대한 매칭 스코어를 산출할 수 있다.
의견 분석은 자연어를 very positive, positive, neutral, negative, very negative의 5가지 단계로 분류(classification)하여 각각의 채팅 서버에 대한 매칭 스코어를 산출하는 방법이다. 그리고 감정 분석은 자연어를 평상심, 기쁨, 노여움, 슬픔, 우울, 놀람, 두려움의 7가지 감정으로 분류하여 각각의 채팅 서버에 대한 매칭 스코어를 산출하는 방법이다.
프로세서(130)는 의견 분석 및 감정 분석 결과를 합성하고, 0 ~ 1 사이의 값으로 노말라이제이션하여 매칭 스코어를 계산할 수 있다.
본 개시의 일 실시 예에 따르면, 프로세서(130)는 사용자 분석을 통해 매칭 스코어를 산출할 수 있다. 프로세서(130)는 기존에 각각의 채팅 서버를 이용한 사용자의 나이, 성별, 지역, 학력 등을 기초로 사용자 분석 모델을 구축할 수 있다. 그리고 프로세서(130)는 구축된 사용자 분석 모델을 이용하여 매칭 스코어를 계산할 수 있다. 사용자 분석 모델 구축 및 사용자 분석 기준 결정에는 딥러닝 방식과 같은 인공지능을 이용한 기계 학습 방법이 이용될 수 있다.
본 개시의 일 실시 예에 따르면, 프로세서(130)는 메타 데이터 분석을 통해 매칭 스코어를 산출할 수 있다. 프로세서(130)는 사용자가 문의한 제품의 등록 정보, 분류 내용과 같은 데이터를 이용하여 메타 데이터 분석 모델을 구축할 수 있다. 그리고 프로세서(130)는 구축된 메타 데이터 분석 모델을 이용하여 매칭 스코어를 계산할 수 있다.
본 개시의 일 실시 예에 따르면, 프로세서(130)는 로그 분석을 통해 매칭 스코어를 산출할 수 있다. 프로세서(130)는 사용자의 이전 로그 기록을 바탕으로 각각의 채팅 서버에 대한 사용 빈도를 판단할 수 있다. 이를 통해 프로세서(130)는 사용자가 어떤 채팅 서버를 사용할 것인지를 예측하여 매칭 스코어를 계산할 수 있다.
상술한 바와 같이 프로세서(130)는 다양한 판단 기준에 의하여 각각의 채팅 서버에 대한 매칭 스코어를 계산할 수 있다. 판단 기준은 상술한 여섯 가지로 한정되는 것은 아니다. 또한, 사용자가 입력한 자연어의 특성, 사용자에 대한 정보 이용 가능성 등을 고려하여, 프로세서(130)는 다양한 판단 기준 중 일부 기준만을 이용할 수도 있다.
프로세서(130)는 계산된 매칭 스코어를 총합하여 최종 매칭 스코어를 계산할 수 있다. 그리고 프로세서(130)는 최종 매칭 스코어가 가장 높은 채팅 서버를 자연어에 대한 응답을 생성한 채팅 서버로 결정할 수 있다.
자연어를 입력받아 채팅 서버가 결정된 후 입력부(110)를 통해 사용자로부터 추가 자연어가 입력될 수 있다. 프로세서(130)는 추가 자연어에 대해서도 동일한 매칭 스코어 계산을 통해 응답을 생성할 채팅 서버를 결정할 수 있다.
만일 응답을 생성할 채팅 서버가 이전에 결정된 채팅 서버와 동일할 경우, 채팅 서버(또는 채팅봇)의 전환이 불필요하기 때문에 문제점이 발생하지 않는다. 하지만, 기존 자연어에 대응되는 채팅 서버와 추가 자연어에 대응되는 채팅 서버가 상이한 경우, 채팅 서버의 전환으로 인하여 사용자와의 대화 맥락이 이어지지 못하는 문제가 발생될 수 있다. 따라서, 프로세서(130)는 채팅 서버 간의 전환시에 사용자가 이를 인식하지 못하도록 할 필요성이 있다.
본 개시의 일 실시 예에 따르면, 프로세서(130)는 채팅 서버가 전환될 경우 기존 채팅 서버와 수행된 대화 히스토리 정보 및 컨텍스트 정보를 전환될 채팅 서버에도 동기화시킬 수 있다. 즉, 프로세서(130)는 추가 입력된 자연어와 함께 기존 채팅 서버와 수행된 대화 히스토리 정보 및 컨텍스트 정보를 전환될 채팅 서버에 전송할 수 있다.
도 9는 본 개시의 다른 실시 예에 따른 채팅봇 시스템(1000')의 구성을 설명하기 위한 도면이다. 도 9의 실시 예에서는 서버(200)가 복수의 채팅봇(210, 220, 230, 240) 및 복수의 채팅봇 중 하나를 입력된 자연어와 매칭하는 매칭봇(201)을 포함할 수 있다. 전자 장치(100)는 사용자의 자연어를 입력받고, 응답을 출력하는 입출력장치로서의 역할을 수행할 수 있다. 또한, 전자 장치(100)는 전처리, 음성 인식을 통해 음성 데이터를 텍스트 데이터로의 변환 등을 수행할 수도 있다.
또한, 서버(200)는 대화 히스토리 정보 및 컨텍스트 정보를 저장하는 저장부(203)를 포함하고 있어, 복수의 채팅봇(210, 220, 230, 240)간의 정보의 동기화를 구현할 수 있다.
다양한 실시예로, 매칭봇(201)은 학습된 데이터 인식 모델을 이용하여, 복수의 채팅봇(210,220,230,240) 중 사용자가 입력한 자연어와 매칭하는 채팅봇을 결정할 수도 있다. 이 경우, 매칭봇(201)이 이용하는 데이터 인식 모델은 규칙 기반 모델 또는 인공 지능 모델로서, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 신경망 알고리즘을 이용하여 학습된 모델일 수 있다.
매칭봇(201)은 기본 데이터 인식 모델을 학습시켜, 사용자가 입력한 자연어와 매칭하는 채팅봇을 결정하도록 설정된 데이터 인식 모델을 생성 또는 갱신할 수도 있고, 또는, 매칭봇(201)은 사용자가 입력한 자연어를 상기 데이터 인식 모델에 적용하여 인식 결과로서 사용자가 입력한 자연어와 매칭하는 채팅봇의 식별 정보를 제공할 수도 있다. 이를 위하여, 매칭봇(201)은 도 4, 도 5a 및 도 5b에서 전술한 데이터 학습부(131) 및 데이터 인식부(132) 중 적어도 하나를 포함할 수 있다. 이 경우, 매칭봇(201)의 데이터 학습부(131)는 {자연어, 자연어와 매칭하는 채팅 서버의 식별 정보} 엔티티를 학습용 데이터로 이용하여 채팅봇을 결정하는 데이터 인식 모델을 생성 또는 갱신할 수 있다. 또한, 매칭봇(201)의 데이터 인식부(131)는 사용자가 입력한 자연어를 채팅 봇을 결정하는 데이터 인식 모델의 입력 값으로 적용하여, 인식 결과로서 사용자가 입력한 자연어와 매칭하는 채팅봇의 식별 정보를 획득할 수도 있다.
한편, 도 9에서는, 매칭봇(201)이 서버(200)에 포함된 것으로 도시되었으나, 구현 방식에 따라 매칭봇(201)이 별도의 서버 또는 장치에 포함될 수도 있으며, 또는 본 개시의 전자 장치(100)에 포함될 수도 있다.
도 10은 본 개시의 다양한 실시 예에 따른 전자 장치(100)의 제어 방법을 설명하기 위한 흐름도이다. 도 10을 참조하면, 전자 장치(100)는 사용자가 입력한 자연어를 입력받을 수 있다(S1010). 그리고 전자 장치(100)는 입력된 자연어를 전처리할 수 있다(S1020).
전자 장치(100)는 전처리된 자연어를 분석하여, 입력된 자연어에 대한 응답을 생성할 채팅 서버를 결정할 수 있다(S1030). 예를 들어, 전자 장치(100)는 전처리된 자연어에 대한 특징 및 사용자에 대한 특징을 분석하여 복수의 채팅 서버 중에서 입력된 자연어에 대응되는 채팅 서버를 결정할 수 있다.
예를 들어, 복수의 채팅 서버는 사용자가 입력한 자연어 및 사용자의 특징에 따라 사용자가 입력한 자연어에 대한 응답을 제공하는 제1 채팅 서버, 제2 채팅 서버 및 제3 채팅 서버를 포함할 수 있다. 하지만, 채팅 서버의 종류가 3가지 종류로 한정되는 것은 아니며, 다른 정도의 리소스를 이용하여 응답을 제공하는 응답 모델의 종류가 더 세분화되는 경우에는 채팅 서버의 종류가 추가될 수 있다.
예를 들어, 제1 채팅 서버는 기저장된 응답 데이터베이스를 이용하여 상기 사용자가 입력한 자연어에 대응되는 응답을 제공하는 채팅 서버일 수 있다. 이는 가장 단순한 형태의 응답 모델로, 복수의 채팅 서버 중 가장 낮은 스펙을 갖는 채팅 서버일 수 있다. 제2 채팅 서버는 제1 응답 모델을 이용하여 상기 사용자가 입력한 자연어의 문맥을 판단하여 응답을 제공하는 채팅 서버일 수 있다. 그리고 제3 채팅 서버는 제2 응답 모델을 이용하여 상기 사용자가 입력한 자연어에 포함된 질문을 추론하여 응답을 제공하는 채팅 서버일 수 있다.
복수의 채팅 서버 중 하나를 결정하기 위하여 전자 장치(100)는 복수의 기준에 대해 각각 매칭 스코어를 계산할 수 있다. 예를 들어, 전자 장치(100)는 복수의 채팅 서버 각각에 대해 자연어에 대한 제1 매칭 스코어, 자연어를 포함하는 대화 패턴에 대한 제2 매칭 스코어, 사용자의 감정에 대한 제3 매칭 스코어 및 사용자의 특징에 대한 제4 매칭 스코어를 계산할 수 있다. 그리고 전자 장치(100)는 복수의 채팅 서버 각각에 대해 제1 내지 제4 매칭 스코어를 합하여 최종 매칭 스코어를 계산할 수 있다.
예를 들어, 전자 장치(100)는 자연어를 구성하는 단어에 대한 가중치 값 및 TF/IDF(Term Frequency/Inverse Document Frequency) 값을 바탕으로 제1 매칭 스코어를 산출할 수 있다. 그리고 전자 장치(100)는 기저장된 대화 패턴 데이터와의 유사도를 바탕으로 제2 매칭 스코어를 산출할 수 있다. 또한, 전자 장치(100)는 자연어에 대한 의견 분석(Sentiment Analysis) 및 감정 분석(Emotion Analysis)를 바탕으로 제3 매칭 스코어를 산출할 수 있으며, 사용자의 나이, 성별, 지역 및 학력 중 적어도 하나를 바탕으로 제4 매칭 스코어를 산출할 수 있다.
전자 장치(100)는 복수의 채팅 서버 중 가장 높은 최종 매칭 스코어를 갖는 채팅 서버를 자연어에 대응되는 채팅 서버로 결정할 수 있다. 이어서 전자 장치(100)는 결정된 채팅 서버로 자연어를 전송할 수 있다(S1040). 그리고 채팅 서버로부터 응답이 수신되면, 전자 장치(100)는 응답을 사용자에게 출력할 수 있다.
다양한 실시예로, 전자 장치(100)는 근거리 통신 또는 원거리 통신을 통하여 채팅 서버와 연결할 수 있다. 전자 장치(100) 및 채팅 서버가 서로 연결된다는 것은 전자 장치(100) 및 채팅 서버가 직접 연결되거나, 또는 다른 구성 요소(예로, 제3 구성요소로서, AP(access point), 허브(hub), 중계기기, 기지국, 공유기 및 게이트웨이(gateway) 중 적어도 하나)를 통하여 연결되는 것을 포함할 수 있다.
한편, 전자 장치(100) 및 채팅 서버 간 간에 데이터를 송/수신하기 위한 인터페이스가 정의될 수 있다. 예로, 채팅 서버의 데이터 인식 모델에 적용할 학습용 데이터 또는 인식용 데이터를 인자 값(또는, 매개 값 또는 전달 값)으로 갖는 API(application program interface)가 정의될 수 있다. API는 어느 하나의 프로토콜(예로, 전자 장치(100)에서 정의된 프로토콜)에서 다른 프로토콜(예로, 채팅 서버에서 정의된 프로토콜)의 어떤 처리를 위해 호출할 수 있는 서브 루틴 또는 함수의 집합으로 정의될 수 있다. 즉, API를 통하여 어느 하나의 프로토콜에서 다른 프로토콜의 동작이 수행될 수 있는 환경이 제공될 수 있다.
도 11은 본 개시의 다양한 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다. 도 11에서는 추가 자연어 입력에 따라 채팅 서버가 전환되는 경우가 도시되었다. 따라서 기존 자연어 입력에 따라 복수의 채팅 서버 중 하나가 결정되어 있다는 것을 가정한다.
전자 장치(100)는 자연어를 입력받은 이후에 사용자로부터 추가 자연어를 입력받을 수 있다(S1110). 그리고 전자 장치(100)는 도 10에서 살펴본 바와 같은 방법으로 추가 자연어를 분석하여 대응되는 채팅 서버를 결정할 수 있다(S1120).
전자 장치(100)는 기존 자연어에 대한 응답을 생성한 채팅 서버와 추가 자연어에 대응되는 채팅 서버가 동일한 채팅 서버인지 판단할 수 있다(S1130). 만일 채팅 서버가 변경되지 않았다면(S1130-N), 전자 장치(100)는 채팅 서버에 추가 자연어를 전송하여 추가 자연어에 대한 응답을 요청할 수 있다(S1150).
반대로 채팅 서버가 변경되었다면(S1130-Y), 전자 장치(100)는 기존 채팅 서버와의 대화 히스토리 정보 및 컨텍스트 정보를 변경된 채팅 서버로 전송할 수 있다(S1140). 그리고 전자 장치(100)는 변경된 채팅 서버로 추가 자연어를 전송할 수 있다(S1150). 변경된 채팅 서버는 대화 히스토리 정보, 컨텍스트 정보 및 추가 자연어를 바탕으로 응답을 생성하여 전자 장치(100)로 전송할 수 있다. 대화 히스토리 정보 및 컨텍스트 정보를 공유함으로써, 전자 장치(100)는 동일한 사용자와 기존 채팅 서버가 처리한 결과를 바탕으로 다음 대화를 이어갈 수 있다.
도 12a 및 도 12b는 본 개시의에 다양한 실시 예에 따른 채팅봇 시스템을 설명하기 위한 개념도이다.
도 12a 및 도 12b의 전자 장치(100) 및 복수의 채팅 서버(210, 220, 230)에 대한 설명은 도 1에서 전술하여 중복되는 설명은 생략한다.
도 12a 및 도 12b의 채팅봇 시스템은 전자 장치(100) 및 복수의 채팅 서버(210, 220, 230)와 무선 또는 유선으로 통신하는 매칭봇(또는, 매칭 서버, 매칭부)(1200)을 포함할 수 있다. 매칭봇(1200)의 목적 및 기능은 도 9의 매칭봇(201)에 대응될 수 있다.
일 실시예로, 도 12a에서, 전자 장치(100)가 사용자가 입력한 자연어를 입력 받는 경우, 전자 장치(100)는 채팅봇(201)으로 자연어를 전송할 수 있다. 이 때, 자연어는 텍스트 데이터이거나 또는 음성 데이터일 수도 있고, 음성 데이터가 전처리된 텍스트 데이터일 수도 있다.
채팅봇(201)은 수신된 자연어에 기초하여, 자연어와 매칭하는 채팅 서버의 식별 정보를 획득할 수 있다. 예로, 도 9에서 전술한 바와 같이, 채팅봇(201)은 데이터 인식 모델을 이용하여 자연어와 매칭하는 채팅 서버의 식별 정보를 획득할 수 있다.
채팅봇(201)은 획득된 채팅 서버의 식별 정보에 대응하는 채팅 서버로 자연어를 전달할 수 있다. 이 경우, 채팅봇(201)은 자연어를 전처리하여 전달할 수도 있다. 자연어를 수신한 채팅 서버는 자연어에 기초하여, 자연어에 대한 응답을 획득할 수 있다. 그리고, 채팅 서버는 획득된 응답을 채팅봇(201)을 통하여 전자 장치(100)로 전달하거나 또는 전자 장치(100)로 직접 전달할 수 있다.
다른 실시예로, 도 12a와 같이, 전자 장치(100)가 채팅봇(201)으로 자연어를을 전송하면, 채팅봇(201)은 자연어에 기초하여 자연어와 매칭하는 채팅 서버의 식별 정보를 획득할 수 있다. 예로, 도 9에서 전술한 바와 같이, 채팅봇(201)은 데이터 인식 모델을 이용하여 자연어와 매칭하는 채팅 서버의 식별 정보를 획득할 수 있다. 채팅봇(201)은 획득된 채팅 서버의 식별 정보를 전자 장치(100)로 전송할 수 있다. 전자 장치(100)는 수신된 채팅 서버의 식별 정보에 대응하는 채팅 서버로 자연어를 전송할 수 있다. 채팅 서버는 자연어에 대한 응답을 획득하고, 이를 전자 장치(100)로 전송할 수 있다.
도 13은, 본 개시의 일 실시예에 따른 매칭봇의 제어 방법을 설명하기 위한 흐름도이다.
도 13에서, 제1 구성 요소(1301)는 전자 장치(100)이고, 제2 구성 요소(1302)는 데이터 인식 모델을 이용하는 매칭봇이 저장된 서버가 될 수 있다. 또는, 제1 구성 요소(1301)는 범용 프로세서이고, 제2 구성 요소(1302)는 인공 지능 전용 프로세서가 될 수 있다. 또는, 제1 구성 요소(1301)는 적어도 하나의 어플리케이션이 될 수 있고, 제2 구성 요소(1302)는 운영 체제(operating system, OS)의 일 모듈이 될 수 있다. 즉, 제2 구성 요소(1302)는 제1 구성 요소(1301)보다 더 집적화되거나, 전용화되거나, 딜레이(delay)가 작거나, 성능이 우세하거나 또는 많은 리소스를 가진 구성 요소로서, 데이터 인식 모델의 생성, 갱신, 이용 시에 요구되는 많은 연산을 제1 구성 요소(1301)보다 신속하고 효과적으로 처리할 수 있다.
이 경우, 제1 구성 요소(1301) 및 제2 구성 요소(1302) 간에 데이터를 송/수신하기 위한 인터페이스가 정의될 수 있다. 예로, 데이터 인식 모델에 적용할 학습용 데이터 또는 인식용 데이터를 인자 값(또는, 매개 값 또는 전달 값)으로 갖는 API가 정의될 수 있다
도 13에서, 제1 구성 요소(1301)는 사용자가 입력한 자연어를 입력 받을 수 있다(S1310).
제1 구성 요소(1301)는 자연어를 제2 구성 요소(1302)에게 전송할 수 있다(S1320). 예로, 제1 구성 요소(1301)는 데이터 인식 모델의 이용을 위하여 제공되는 API 함수의 인자 값으로 자연어를 적용할 수 있다. 이 경우, API 함수는 상기 자연어를 데이터 인식 모델에 적용할 인식 데이터로서 제2 구성 요소(1302)에게 전송할 수 있다. 이 때, 자연어는 통신 포맷을 고려하여 가공 또는 보완될 수 있다..
제2 구성 요소(1302)는 수신된 자연어를 학습된 데이터 인식 모델로서 채팅 서버를 결정하도록 설정된 데이터 인식 모델에 적용할 수 있다(S1330). 적용 결과로서, 제2 구성 요소(1302)는 자연어와 매칭하는 채팅 서버의 식별 정보를 획득할 수 있다(S1340). 그리고, 제2 구성 요소(1302)는 획득된 적어도 채팅 서버의 식별 정보를 제1 구성 요소(1301)로 전송할 수 있다(S1350). 이 때, 채팅 서버의 식별 정보는 통신 포맷을 고려하여 가공 또는 보완될 수 있다.
채팅 서버의 식별 정보를 수신한 제1 구성 요소(1301)는 사용자가 입력한 자연어를 식별 정보에 대응하는 채팅 서버로 전송할 수 있다(S1360).
그리고, 사용자가 입력한 자연어에 대한 응답이 채팅 서버로부터 수신되면, 제1 구성 요소(1301)는 수신된 응답을 사용자에게 제공할 수 있다.
상기에서 설명된 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기의 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 개시된 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)으로 제공될 수 있다.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체 또는 판매자 및 구매자 간에 거래되는 상품을 포함할 수 있다.
예를 들어, 컴퓨터 프로그램 제품은 전자 장치(100), 서버(200), 매칭봇(1200) 또는 상기 장치들의 제조사의 제조사, 또는 어플리케이션 스토어를 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사 또는 어플리케이션 스토어의 서버, 또는 중계 서버의 저장매체가 될 수 있다.
이상과 같이 본 개시는 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 개시는 상기의 실시 예에 한정되는 것은 아니며, 본 개시가 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 전자 장치 110: 입력부
120: 통신부 130: 프로세서
131: 데이터 학습부 132: 데이터 인식부
140: 메모리 150: 디스플레이
160: 스피커 200: 서버

Claims (19)

  1. 전자 장치에 있어서,
    사용자가 입력한 자연어를 입력받는 입력부;
    복수의 제2 인공지능 모델과 통신을 수행하는 통신부; 및
    프로세서;를 포함하고,
    상기 프로세서는,
    상기 입력부를 통해 적어도 하나의 문장을 수신하고,
    상기 적어도 하나의 문장이 제1 인공지능 모델에 입력되면, 상기 제1 인공지능 모델을 통해, 상기 적어도 하나의 문장의 특징 및 상기 사용자의 나이, 성별, 지역 및 학력 중 적어도 하나를 포함하는 상기 사용자의 특징에 따라, 상기 복수의 제2 인공지능 모델 중 리소스를 가장 적게 소모하며 상기 적어도 하나의 문장을 처리할 수 있는 제2 인공지능 모델에 대한 식별 정보를 획득하고,
    상기 제2 인공지능 모델에 대한 식별 정보에 기초하여, 상기 제2 인공지능 모델로부터, 상기 적어도 하나의 문장에 대한 응답을 수신하기 위해, 상기 적어도 하나의 문장에 대한 정보를 상기 제2 인공지능 모델로 전송하도록 상기 통신부를 제어하는 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 적어도 하나의 문장에 대한 전처리를 수행하고,
    상기 전처리된 적어도 하나의 문장에 대한 특징 및 상기 사용자에 대한 특징을 분석하여 상기 복수의 제2 인공지능 모델 중에서 상기 제2 인공지능 모델에 대한 식별 정보를 획득하고,
    상기 제2 인공지능 모델로 상기 전처리된 적어도 하나의 문장을 전송하도록 상기 통신부를 제어하는 전자 장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 복수의 제2 인공지능 모델 각각에 대해 상기 전처리된 적어도 하나의 문장에 대한 제1 매칭 스코어, 상기 전처리된 적어도 하나의 문장을 포함하는 대화 패턴에 대한 제2 매칭 스코어, 상기 사용자의 감정에 대한 제3 매칭 스코어 및 상기 사용자의 특징에 대한 제4 매칭 스코어 중 적어도 하나를 계산하고,
    상기 복수의 제2 인공지능 모델 각각에 대해 상기 제1 내지 제4 매칭 스코어 중 적어도 하나를 이용하여 상기 복수의 제2 인공지능 모델 각각의 최종 매칭 스코어를 계산하고,
    상기 복수의 제2 인공지능 모델 중 가장 높은 최종 매칭 스코어를 갖는 인공지능 모델을 상기 제2 인공지능 모델로 결정하는 전자 장치.
  4. 제3항에 있어서,
    상기 제1 매칭 스코어는,
    상기 전처리된 적어도 하나의 문장을 구성하는 단어에 대한 가중치 값 및 TF/IDF(Term Frequency/Inverse Document Frequency) 값을 바탕으로 산출되고,
    상기 제2 매칭 스코어는,
    기저장된 대화 패턴 데이터와의 유사도를 바탕으로 산출되고,
    상기 제3 매칭 스코어는,
    상기 전처리된 적어도 하나의 문장에 대한 의견 분석(Sentiment Analysis) 및 감정 분석(Emotion Analysis)를 바탕으로 산출되고,
    상기 제4 매칭 스코어는,
    상기 사용자의 나이, 성별, 지역 및 학력 중 적어도 하나를 바탕으로 산출되는 전자 장치.
  5. 제1항에 있어서,
    상기 제2 인공지능 모델과 수행된 대화 히스토리 정보 및 상기 적어도 하나의 문장이 입력된 상황에 대한 컨텍스트 정보를 저장하는 메모리;를 더 포함하는 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 적어도 하나의 문장을 입력받은 이후에 상기 입력부를 통해 사용자로부터 적어도 하나의 추가 문장을 입력받는 경우, 상기 적어도 하나의 추가 문장에 대한 특징 및 상기 사용자의 특징을 분석하여 상기 복수의 제2 인공지능 모델 중 상기 적어도 하나의 추가 문장에 대응하는 인공지능 모델을 결정하고,
    상기 제2 인공지능 모델과 상기 적어도 하나의 추가 문장에 대응되는 채팅 서버가 상이한 경우, 상기 적어도 하나의 추가 문장에 대응되는 인공지능 모델로 상기 적어도 하나의 추가 문장을 전송하도록 상기 통신부를 제어하는 전자 장치.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 제2 인공지능 모델과 수행된 대화 히스토리 정보 및 컨텍스트 정보를 상기 적어도 하나의 추가 문장과 함께 상기 적어도 하나의 추가 문장에 대응되는 인공지능 모델로 전송하도록 상기 통신부를 제어하는 전자 장치.
  8. 삭제
  9. 제1항에 있어서,
    상기 복수의 제2 인공지능 모델은,
    기저장된 응답 데이터베이스를 이용하여 상기 사용자가 입력한 적어도 하나의 문장에 대응되는 응답을 제공하는 인공지능 모델,
    제1 응답 모델을 이용하여 상기 사용자가 입력한 적어도 하나의 문장의 문맥을 판단하여 응답을 제공하는 인공지능 모델 및
    제2 응답 모델을 이용하여 상기 사용자가 입력한 적어도 하나의 문장에 포함된 질문을 추론하여 응답을 제공하는 인공지능 모델 중 적어도 하나를 포함하는 전자 장치.
  10. 전자 장치의 제어 방법에 있어서,
    사용자가 입력한 적어도 하나의 문장을 입력받는 단계;
    상기 적어도 하나의 문장이 제1 인공지능 모델에 입력되면, 상기 제1 인공지능 모델을 통해, 상기 적어도 하나의 문장의 특징 및 상기 사용자의 나이, 성별, 지역, 학력 중 적어도 하나를 포함하는 상기 사용자의 특징에 따라, 복수의 제2 인공지능 모델 중 리소스를 가장 적게 소모하며 상기 적어도 하나의 문장을 처리할 수 있는 제2 인공지능 모델에 대한 식별 정보를 획득하는 단계; 및
    상기 제2 인공지능 모델에 대한 식별 정보에 기초하여, 상기 제2 인공지능 모델로부터, 상기 적어도 하나의 문장에 대한 응답을 수신하기 위해, 상기 적어도 하나의 문장에 대한 정보를 상기 제2 인공지능 모델로 전송하는 단계;를 포함하는 제어 방법.
  11. 제10항에 있어서,
    상기 제어 방법은,
    상기 적어도 하나의 문장에 대한 전처리를 수행하는 단계;를 더 포함하고,
    상기 식별 정보를 획득하는 단계는,
    상기 전처리된 적어도 하나의 문장에 대한 특징 및 상기 사용자에 대한 특징을 분석하여 상기 복수의 제2 인공지능 모델 중에서 상기 제2 인공지능 모델에 대한 식별 정보를 획득하는 단계;를 포함하고,
    상기 전송하는 단계는,
    상기 제2 인공지능 모델로 상기 전처리된 적어도 하나의 문장을 전송하는 단계;를 포함하는 제어 방법.
  12. 제11항에 있어서,
    상기 식별 정보를 획득하는 단계는,
    상기 복수의 제2 인공지능 모델 각각에 대해 상기 전처리된 적어도 하나의 문장에 대한 제1 매칭 스코어, 상기 전처리된 적어도 하나의 문장을 포함하는 대화 패턴에 대한 제2 매칭 스코어, 상기 사용자의 감정에 대한 제3 매칭 스코어 및 상기 사용자의 특징에 대한 제4 매칭 스코어 중 적어도 하나를 계산하고,
    상기 복수의 제2 인공지능 모델 각각에 대해 상기 제1 내지 제4 매칭 스코어 중 적어도 하나를 이용하여 상기 복수의 제2 인공지능 모델 각각의 최종 매칭 스코어를 계산하고,
    상기 복수의 제2 인공지능 모델 중 가장 높은 최종 매칭 스코어를 갖는 채팅 서버를 상기 제2 인공지능 모델로 식별하는 제어 방법.
  13. 제12항에 있어서,
    상기 제1 매칭 스코어는,
    상기 전처리된 적어도 하나의 문장을 구성하는 단어에 대한 가중치 값 및 TF/IDF(Term Frequency/Inverse Document Frequency) 값을 바탕으로 산출되고,
    상기 제2 매칭 스코어는,
    기저장된 대화 패턴 데이터와의 유사도를 바탕으로 산출되고,
    상기 제3 매칭 스코어는,
    상기 전처리된 적어도 하나의 문장에 대한 의견 분석(Sentiment Analysis) 및 감정 분석(Emotion Analysis)를 바탕으로 산출되고,
    상기 제4 매칭 스코어는,
    상기 사용자의 나이, 성별, 지역 및 학력 중 적어도 하나를 바탕으로 산출되는 제어 방법.
  14. 제10항에 있어서,
    상기 제2 인공지능 모델과 수행된 대화 히스토리 정보 및 상기 적어도 하나의 문장에 입력된 상황에 대한 컨텍스트 정보를 저장하는 단계;를 더 포함하는 제어 방법.
  15. 제10항에 있어서,
    상기 제어 방법은,
    상기 적어도 하나의 문장을 입력받은 이후에 사용자로부터 적어도 하나의 추가문장을 입력받는 단계;
    상기 적어도 하나의 추가 문장에 대한 특징 및 상기 사용자의 특징을 분석하여 상기 복수의 제2 인공지능 모델 중 상기 적어도 하나의 추가 문장에 대응되는 인공지능 모델에 대한 식별 정보를 획득하는 단계; 및
    상기 제2 인공지능 모델과 상기 적어도 하나의 추가 문장에 대응되는 인공지능 모델이 상이한 경우, 상기 적어도 하나의 추가 문장에 대응되는 인공지능 모델로 상기 적어도 하나의 추가 적어도 하나의 문장을 전송하는 단계;를 더 포함하는 제어 방법.
  16. 제15항에 있어서,
    상기 적어도 하나의 추가 문장을 전송하는 단계는,
    상기 제2 인공지능 모델과 수행된 대화 히스토리 정보 및 컨텍스트 정보를 상기 적어도 하나의 추가 문장과 함께 상기 적어도 하나의 추가 문장에 대응되는 인공지능 모델로 전송하는 제어 방법.
  17. 삭제
  18. 제10항에 있어서,
    상기 복수의 제2 인공지능 모델은,
    기저장된 응답 데이터베이스를 이용하여 상기 사용자가 입력한 적어도 하나의 문장에 대응되는 응답을 제공하는 인공지능 모델,
    제1 응답 모델을 이용하여 상기 사용자가 입력한 적어도 하나의 문장의 문맥을 판단하여 응답을 제공하는 인공지능 모델 및
    제2 응답 모델을 이용하여 상기 사용자가 입력한 적어도 하나의 문장에 포함된 질문을 추론하여 응답을 제공하는 인공지능 모델 중 적어도 하나를 포함하는 제어 방법.
  19. 전자 장치의 제어 방법을 실행하는 프로그램을 포함하는 비일시적 컴퓨터 판독 가능 기록매체에 있어서,
    상기 제어 방법은,
    사용자가 입력한 적어도 하나의 문장을 입력받는 단계;
    상기 적어도 하나의 문장이 제1 인공지능 모델에 입력되면, 상기 제1 인공지능 모델을 통해, 상기 적어도 하나의 문장의 특징 및 상기 사용자의 나이, 성별, 지역, 학력 중 적어도 하나를 포함하는 상기 사용자의 특징에 따라, 복수의 제2 인공지능 모델 중 리소스를 가장 적게 소모하며 상기 적어도 하나의 문장을 처리할 수 있는 제2 인공지능 모델에 대한 식별 정보를 획득하는 단계; 및
    상기 제2 인공지능 모델에 대한 식별 정보에 기초하여, 상기 제2 인공지능 모델로부터, 상기 적어도 하나의 문장에 대한 응답을 수신하기 위해, 상기 적어도 하나의 문장에 대한 정보를 상기 제2 인공지능 모델로 전송하는 단계;를 포함하는 비일시적 컴퓨터 판독 가능 기록매체.
KR1020170155897A 2017-03-23 2017-11-21 전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체 KR102656620B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
PCT/KR2018/002766 WO2018174443A1 (en) 2017-03-23 2018-03-08 Electronic apparatus, controlling method of thereof and non-transitory computer readable recording medium
EP22189949.5A EP4125029A1 (en) 2017-03-23 2018-03-08 Electronic apparatus, controlling method of thereof and non-transitory computer readable recording medium
EP18772684.9A EP3545487A4 (en) 2017-03-23 2018-03-08 ELECTRONIC APPARATUS, CONTROL METHOD THEREFOR, AND NON-TRANSIENT COMPUTER-READABLE RECORDING MEDIUM
CN201880019376.3A CN110462676A (zh) 2017-03-23 2018-03-08 电子装置、其控制方法和非暂态计算机可读记录介质
US15/922,014 US11068667B2 (en) 2017-03-23 2018-03-15 Electronic apparatus, controlling method of thereof and non-transitory computer readable recording medium
US17/377,599 US11720759B2 (en) 2017-03-23 2021-07-16 Electronic apparatus, controlling method of thereof and non-transitory computer readable recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170037129 2017-03-23
KR1020170037129 2017-03-23

Publications (2)

Publication Number Publication Date
KR20180108400A KR20180108400A (ko) 2018-10-04
KR102656620B1 true KR102656620B1 (ko) 2024-04-12

Family

ID=63863387

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170155897A KR102656620B1 (ko) 2017-03-23 2017-11-21 전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체

Country Status (3)

Country Link
EP (1) EP3545487A4 (ko)
KR (1) KR102656620B1 (ko)
CN (1) CN110462676A (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200044175A (ko) 2018-10-05 2020-04-29 삼성전자주식회사 전자 장치 및 그의 비서 서비스 제공 방법
WO2020111835A1 (ko) * 2018-11-28 2020-06-04 김훈 대화형 교육 시스템에 포함되는 사용자 장치와 교육 서버
CN111309990B (zh) * 2018-12-12 2024-01-23 北京嘀嘀无限科技发展有限公司 一种语句应答方法及装置
KR102261411B1 (ko) * 2019-05-17 2021-06-07 주식회사 엔씨소프트 채팅 모델 학습 방법 및 장치
KR102259390B1 (ko) * 2019-09-09 2021-06-02 주식회사 솔트룩스 앙상블 질의 응답을 위한 시스템 및 방법
KR20210066651A (ko) * 2019-11-28 2021-06-07 삼성전자주식회사 전자 장치 및 이의 제어 방법
KR102315830B1 (ko) * 2019-12-27 2021-10-22 한국과학기술원 반지도 학습 기반 단어 단위 감정 임베딩과 lstm 모델을 이용한 대화 내에서 발화의 감정 분류 방법
KR102449948B1 (ko) * 2020-02-12 2022-10-05 한국과학기술원 지능형 에이전트에서 이종의 멘탈 모델에 기반한 대화형 메시지 제공 방법 및 그 시스템
KR102314332B1 (ko) * 2021-04-15 2021-10-20 아우름케어매니지먼트 주식회사 머신러닝 자연어 처리를 활용한 의사-환자의 진료상담 지원 시스템 및 방법
KR102483538B1 (ko) * 2021-04-30 2023-01-03 아우름케어매니지먼트 주식회사 머신러닝을 활용한 복약순응 위험도 예측 시스템 및 방법
KR20230126109A (ko) * 2022-02-22 2023-08-29 삼성전자주식회사 디스플레이 장치 및 그 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011088053A2 (en) * 2010-01-18 2011-07-21 Apple Inc. Intelligent automated assistant
KR101647949B1 (ko) * 2015-07-29 2016-08-12 주식회사 텍스트팩토리 문자 메시지를 이용한 개인 비서 서비스에서의 업무 분배 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100571443B1 (ko) * 2003-10-20 2006-04-14 주식회사 다이퀘스트 Cca 구조를 이용한 다매체 정보제공 대화 에이전트시스템 및 방법
CN101076060A (zh) * 2007-03-30 2007-11-21 腾讯科技(深圳)有限公司 一种聊天机器人系统及自动聊天方法
US20090204407A1 (en) * 2008-02-08 2009-08-13 Shields T Russell System and method for processing a spoken request from a user
US9418663B2 (en) * 2014-07-31 2016-08-16 Google Inc. Conversational agent with a particular spoken style of speech
US9647968B2 (en) * 2015-03-25 2017-05-09 Pypestream Inc Systems and methods for invoking chatbots in a channel based communication system
US10805244B2 (en) * 2015-07-16 2020-10-13 At&T Intellectual Property I, L.P. Service platform to support automated chat communications and methods for use therewith
CN105159996B (zh) * 2015-09-07 2018-09-07 百度在线网络技术(北京)有限公司 基于人工智能的深度问答服务提供方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011088053A2 (en) * 2010-01-18 2011-07-21 Apple Inc. Intelligent automated assistant
KR101647949B1 (ko) * 2015-07-29 2016-08-12 주식회사 텍스트팩토리 문자 메시지를 이용한 개인 비서 서비스에서의 업무 분배 방법

Also Published As

Publication number Publication date
CN110462676A (zh) 2019-11-15
EP3545487A1 (en) 2019-10-02
EP3545487A4 (en) 2019-11-20
KR20180108400A (ko) 2018-10-04

Similar Documents

Publication Publication Date Title
KR102656620B1 (ko) 전자 장치, 그의 제어 방법 및 비일시적 컴퓨터 판독가능 기록매체
US11568855B2 (en) System and method for defining dialog intents and building zero-shot intent recognition models
US10762892B2 (en) Rapid deployment of dialogue system
KR102502220B1 (ko) 전자 장치, 그의 사용자 발화 의도 판단 방법 및 비일시적 컴퓨터 판독가능 기록매체
US11720759B2 (en) Electronic apparatus, controlling method of thereof and non-transitory computer readable recording medium
KR102222451B1 (ko) 텍스트 기반 사용자심리상태예측 및 콘텐츠추천 장치 및 그 방법
US10922491B2 (en) Natural transfer of knowledge between human and artificial intelligence
US11769492B2 (en) Voice conversation analysis method and apparatus using artificial intelligence
CN112189229B (zh) 针对计算机化个人助手的技能发现
US10521723B2 (en) Electronic apparatus, method of providing guide and non-transitory computer readable recording medium
KR20170061016A (ko) 데이터 인식 모델 구축 장치 및 방법과 데이터 인식 장치
KR102448382B1 (ko) 텍스트와 연관된 이미지를 제공하는 전자 장치 및 그 동작 방법
KR102426435B1 (ko) 사용자 입력에 기반한 문장을 제공하는 장치 및 방법
KR102490916B1 (ko) 전자 장치, 이의 제어 방법 및 비일시적인 컴퓨터 판독가능 기록매체
US11881209B2 (en) Electronic device and control method
US11393465B2 (en) Artificial intelligence apparatus for speech interaction and method for the same
KR102529262B1 (ko) 전자 장치 및 제어 방법
US10540441B2 (en) Device and method for providing recommended words for character input
US20180075354A1 (en) Method and system for using existing models in connection with new model development
US10770072B2 (en) Cognitive triggering of human interaction strategies to facilitate collaboration, productivity, and learning
KR20200115695A (ko) 전자 장치 및 이의 제어 방법
KR102586799B1 (ko) 인공지능 모델을 활용한 웹소설 기반 웹북 생성 자동화 처리 방법, 장치 및 시스템
KR102635031B1 (ko) 의미 단위 시각화를 기반으로 한 화자 분리 실시간 통역 서비스 제공 방법, 장치 및 시스템
US11893152B1 (en) Sentiment-based adaptations of user representations in virtual environments
KR102666316B1 (ko) 전자 장치 및 제어 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)