KR20200092455A - 사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램 - Google Patents
사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램 Download PDFInfo
- Publication number
- KR20200092455A KR20200092455A KR1020190001386A KR20190001386A KR20200092455A KR 20200092455 A KR20200092455 A KR 20200092455A KR 1020190001386 A KR1020190001386 A KR 1020190001386A KR 20190001386 A KR20190001386 A KR 20190001386A KR 20200092455 A KR20200092455 A KR 20200092455A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- query
- intention
- user terminal
- recognized
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 35
- 238000004590 computer program Methods 0.000 title claims description 14
- 230000002093 peripheral effect Effects 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 11
- 238000009795 derivation Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 241000238558 Eucarida Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3343—Query execution using phonetics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3346—Query execution using probabilistic model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Human Computer Interaction (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Acoustics & Sound (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
사용자 의도를 예측하는 서버는 사용자 단말로부터 질의어를 수신하는 수신부, 상기 질의어에 해당하는 키워드 및 의미 태그 중 적어도 하나를 인식하는 인식부, 상기 인식된 키워드 및 상기 인식된 의미 태그 중 적어도 하나를 분석하여 상기 질의어와 관련된 사용자 의도를 예측하는 사용자 의도 예측부 및 상기 예측된 사용자 의도에 기초하여 상기 질의어에 대한 질의 문장을 완성하는 질의 문장 완성부를 포함한다.
Description
본 발명은 사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램에 관한 것이다.
지능형 개인 비서는 사용자가 요구하는 작업을 처리하고, 사용자에게 특화된 서비스를 제공하는 소프트웨어 에이전트이다. 지능형 개인 비서는 인공 지능(AI) 엔진과 음성 인식을 기반으로 사용자에게 맞춤 정보를 수집하여 제공하고, 사용자의 음성 명령에 따라 일정 관리, 이메일 전송, 식당 예약 등 여러 기능을 수행하는 점에서 사용자의 편의성을 향상시키는 장점을 갖는다.
이러한 지능형 개인 비서는 주로 스마트폰에서 맞춤형 개인 서비스의 형태로 제공되고 있으며, 대표적으로 애플의 시리(siri), 구글의 나우(now), 삼성의 빅스비 등이 이에 포함된다. 이와 관련하여, 선행기술인 한국공개특허 제 2016-0071111호는 전자 장치에서의 개인 비서 서비스 제공 방법을 개시하고 있다.
종래의 지능형 개인 비서는 사용자로부터 질의어의 발화가 종료된 이후에 질의어에 대한 인식을 수행하여 답변을 제공할 수 있었다. 이는, 질의어 발화 시간 및 질의어 인식 시간이 소비된 후에 답변이 제공되도록 구성됨에 따라, 답변의 응답 속도에 한계가 존재하였다. 또한, 사용자가 발화한 질의어를 오인식한 경우, 사용자는 질의어를 재발화해야 한다는 불편함이 존재했다.
사용자의 질의어 발화 중, 실시간으로 사용자의 질의어를 인식하고, 질의어와 관련된 사용자의 의도를 예측하는 사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램을 제공하고자 한다.
사용자의 예측된 의도에 기초하여 사용자의 의도가 잘 표현될 수 있도록 질의 문장을 완성하는 사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램을 제공하고자 한다.
질의어에 대해 완성된 질의 문장에 기초하여 사용자의 의도와 관련된 서비스를 실행할 수 있도록 하는 사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램을 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 수단으로서, 본 발명의 일 실시예는, 사용자 단말로부터 질의어를 수신하는 수신부, 상기 질의어에 해당하는 키워드 및 의미 태그 중 적어도 하나를 인식하는 인식부, 상기 인식된 키워드 및 상기 인식된 의미 태그 중 적어도 하나를 분석하여 상기 질의어와 관련된 사용자 의도를 예측하는 사용자 의도 예측부 및 상기 예측된 사용자 의도에 기초하여 상기 질의어에 대한 질의 문장을 완성하는 질의 문장 완성부를 포함하는 의도 예측 서버를 제공할 수 있다.
본 발명의 다른 실시예는, 사용자 단말로부터 질의어를 수신하는 단계, 상기 질의어에 해당하는 키워드 및 의미 태그 중 적어도 하나를 인식하는 단계, 상기 인식된 키워드 및 상기 인식된 의미 태그 중 적어도 하나를 분석하여 상기 질의어와 관련된 사용자 의도를 예측하는 단계 및 상기 예측된 사용자 의도에 기초하여 상기 질의어에 대한 질의 문장을 완성하는 단계를 포함하는 의도 예측 방법을 제공할 수 있다.
본 발명의 또 다른 실시예는, 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행될 경우, 사용자 단말로부터 질의어를 수신하고, 상기 질의어에 해당하는 키워드 및 의미 태그 중 적어도 하나를 인식하고, 상기 인식된 키워드 및 상기 인식된 의미 태그 중 적어도 하나를 분석하여 상기 질의어와 관련된 사용자 의도를 예측하고, 상기 예측된 사용자 의도에 기초하여 상기 질의어에 대한 질의 문장을 완성하도록 하는 명령어들의 시퀀스를 포함하는 매체에 저장된 컴퓨터 프로그램을 제공할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본 발명을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 기재된 추가적인 실시예가 존재할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 사용자의 질의어 발화 중, 실시간으로 사용자의 질의어를 인식하고, 질의어와 관련된 사용자의 의도를 예측하는 사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램을 제공할 수 있다.
사용자의 예측된 의도에 기초하여 사용자의 의도가 잘 표현될 수 있도록 질의 문장을 완성하는 사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램을 제공할 수 있다.
질의어에 대해 완성된 질의 문장에 기초하여 사용자의 의도와 관련된 서비스를 실행할 수 있도록 하는 사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 의도 예측 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 의도 예측 서버의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 의도 예측 서버에서 질의어에 대한 질의 문장을 완성하여 컨텐츠를 실행시키기까지의 과정을 설명하기 위한 예시적인 도면이다.
도 4a 내지 도 4d는 본 발명의 일 실시예에 따른 질의어와 관련된 사용자 의도를 예측하여 질의어에 대한 질의 문장을 완성하는 과정을 설명하기 위한 예시적인 도면이다.
도 5는 본 발명의 일 실시예에 따른 의도 예측 서버에서 사용자 의도를 예측하는 방법의 순서도이다.
도 2는 본 발명의 일 실시예에 따른 의도 예측 서버의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 의도 예측 서버에서 질의어에 대한 질의 문장을 완성하여 컨텐츠를 실행시키기까지의 과정을 설명하기 위한 예시적인 도면이다.
도 4a 내지 도 4d는 본 발명의 일 실시예에 따른 질의어와 관련된 사용자 의도를 예측하여 질의어에 대한 질의 문장을 완성하는 과정을 설명하기 위한 예시적인 도면이다.
도 5는 본 발명의 일 실시예에 따른 의도 예측 서버에서 사용자 의도를 예측하는 방법의 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 의도 예측 시스템의 구성도이다. 도 1을 참조하면, 의도 예측 시스템(1)은 사용자 단말(110), 의도 예측 서버(120), 대화 서버(130) 및 주변 단말(140)을 포함할 수 있다. 사용자 단말(110), 의도 예측 서버(120), 대화 서버(130) 및 주변 단말(140)은 의도 예측 시스템(1)에 의하여 제어될 수 있는 구성요소들을 예시적으로 도시한 것이다.
도 1의 예측 시스템(1)의 각 구성요소들은 일반적으로 네트워크(network)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 의도 예측 서버(120)는 사용자 단말(110) 또는 대화 서버(130)와 동시에 또는 시간 간격을 두고 연결될 수 있다.
네트워크는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 라이파이(LiFi) 등이 포함되나 이에 한정되지는 않는다.
사용자 단말(110)은 사용자(100)로부터 발화되는 질의어를 수신하고, 수신한 질의어를 의도 예측 서버(120)로 전송할 수 있다. 여기서, 질의어란 사용자(100)로부터 음성이 발화되면, 음성의 발화 도중 음소 또는 단어가 순차적으로 인식된 것일 수 있다. 예를 들어, 사용자(100)가 "오늘 날씨 어때"와 같이 질의어를 발화하고자 하는 경우, 질의어는 사용자(100)로부터 발화 도중에 인식된 '오'와 같은 음소일 수 있으며, '오늘'과 같이 음소가 순차적으로 인식된 유의미한 단어일 수 있으며, '오늘 날', '오늘 날씨'와 같이 사용자(100)의 의도가 유추 가능한 단어일 수도 있다.
사용자 단말(110)은 사용자로부터 발화 도중 입력되는 질의어를 순차적으로 수신하여 의도 예측 서버(120)로 전송할 수 있다.
사용자 단말(110)은 의도 예측 서버(120)로부터 질의어에 대한 완성된 질의 문장을 수신하여 출력할 수 있다. 여기서, 질의 문장은 사용자(100)의 음성의 발화 도중 순차적으로 음소가 인식된 질의어로부터 사용자(100)가 말하고자 하는 또는 사용자(100)가 서비스를 제공받고자 하는 문장이 예측 또는 유추된 것일 수 있다. 또는, 의도 예측 서버(120)에서 질의어에 대한 질의 문장이 완성되지 않은 경우, 질의어는 사용자 단말(110)을 통해 출력될 수 있다.
사용자 단말(110)은 질의 문장에 기초하여 사용자 의도와 관련된 서비스를 실행할 수 있다. 예를 들어, 사용자 단말(110)은 질의어에 대한 질의 문장을 출력한 후, 예측된 사용자 의도와 관련된 서비스를 실행시키기 위한 부가 정보에 기초하여 사용자 의도와 관련된 서비스를 실행할 수 있다. 이 때, 사용자 단말(110)은 질의 문장이 출력된 후 사용자(100)로부터 소정 시간 동안 추가 질의어가 입력되지 않은 경우, 사용자 의도와 관련된 서비스를 실행할 수 있다.
의도 예측 서버(120)는 사용자(100)의 이전 질의 문장, 의미 태그, 사용자 단말(110)의 상황 정보, 사용자 단말(110)의 대화 이력 및 예측된 사용자 의도 중 적어도 하나에 기초하여 사용자 의도 추론 모델을 학습할 수 있다.
의도 예측 서버(120)는 사용자 단말(110)로부터 질의어를 수신하고, 질의어에 해당하는 키워드 및 의미 태그 중 적어도 하나를 인식할 수 있다. 여기서, 키워드란 사용자(100)의 음성 발화 도중 인식된 질의어가 텍스트로 변환한 것일 수 있다.
의도 예측 서버(120)는 인식된 키워드 및 인식된 의미 태그 중 적어도 하나를 분석하여 질의어와 관련된 사용자 의도를 예측할 수 있다. 의도 예측 서버(120)는 사용자 단말(110)의 동작 상태 또는 사용자 단말(110)과 연결된 주변 단말(140)의 동작 상태를 더 분석하여 사용자 의도를 예측할 수 있다. 의도 예측 서버(120)는 사용자 단말(110)의 사용 이력 및 사용자 단말(110)의 대화 이력 중 적어도 하나를 더 분석하여 사용자 의도를 예측할 수 있다.
의도 예측 서버(120)는 의미 태그가 인식되지 않은 경우 키워드가 인식된 시점에 해당하는 시간 대에 사용자 단말(110)을 통해 기설정된 빈도수 이상 제공되었던 서비스 제공 형태를 사용자 의도로 예측할 수 있다. 또는, 의도 예측 서버(120)는 의미 태그가 인식되지 않은 경우 인식된 키워드에 해당하는 사용자 단말(110)의 상황 정보를 더 분석하여 사용자 의도를 예측할 수 있다.
의도 예측 서버(120)는 예측된 사용자 의도에 기초하여 질의어에 대한 질의 문장을 완성할 수 있다. 구체적으로, 의도 예측 서버(120)는 인식된 키워드로부터 문장 유사도가 기설정된 임계값을 초과하는 제 1 어휘를 도출하고, 예측된 사용자 의도를 표현하는 제 2 어휘를 도출한 후, 도출된 제 1 어휘 및 도출된 제 2 어휘를 결합하여 질의어에 대한 질의 문장을 완성할 수 있다. 예를 들어, 사용자(100)가 "오늘 날씨 어때?"를 발화하고자 하는 경우, 의도 예측 서버(120)는 사용자(100)의 발화 도중 인식된 사용자(100)의 의도가 유추 가능한 단어인 "오늘 날"에 대한 질의어만으로 사용자(100)의 의도에 해당하는 "오늘 날씨 어때?"와 같은 질의 문장을 완성할 수 있다. 다른 예를 들어, 사용자(100)가 "오늘 날씨 어때?"를 발화하고자 하는 경우, 의도 예측 서버(120)는 사용자(100)의 발화 도중 인식된 음소인 "오"에 대한 질의어만으로 사용자(100)의 의도에 해당하는 "오늘 날씨 어때?"와 같은 질의 문장을 완성할 수도 있다.
의도 예측 서버(120)는 사용자 단말(110)에서 예측된 사용자 의도와 관련된 서비스를 실행시키기 위한 부가 정보를 완성된 질의 문장으로부터 도출하고, 도출된 부가 정보를 완성된 질의 문장에 매핑할 수 있다. 이 때, 의도 예측 서버(120)는 부가 정보가 매핑된 질의 문장을 사용자 단말(110)로 전송할 수 있다.
의도 예측 서버(120)는 사용자 단말(110)을 통해 질의어가 출력된 후 사용자 단말(110)에 소정 시간 동안 추가 질의어가 입력되지 않은 경우, 질의어를 대화 서버(130)로 전송할 수 있다. 의도 예측 서버(120)는 대화 서버(130)로부터 질의어에 대한 답변 문장을 수신할 수 있다.
이를 통해, 의도 예측 서버(120)는 사용자(100)로부터 입력되는 질의어의 음성 인식 도중, 사용자의 의도를 예측하여 질의 문장을 완성함으로써, 서비스까지 빠르게 연결시킬 수 있다. 또한, 중복적인 의미를 담고 있는 키워드에 대해 의미를 명확하게 함으로써, 음성 오인식을 방지하고, 사용자의 의도 예측에 대한 정확도를 높일 수 있다. 또한, 의도 예측 서버(120)에서 의미 태그가 인식되지 않더라도, 사용자의 상황 및 질의어에 기초하여 사용자의 의도에 가까운 표현의 문장을 완성 및 제시할 수 있다. 또한, 긴 콘텐츠명, 불명확한 콘텐츠명이 오인식되더라도 사용자의 재발화 없이 초기 발화에 대해 교정된 완전환 질의 문장을 사용자에게 제시하고, 이를 서비스로 연결시킴으로써, 서비스의 연결 과정을 단축시킬 수 있다.
대화 서버(130)는 의도 예측 서버(120)로부터 질의어를 수신할 수 있다.
대화 서버(130)는 수신한 질의어를 분석하고, 분석된 질의어에 기초하여 답변 문장을 생성할 수 있다. 예를 들어, 대화 서버(130)는 질의어와 관련하여 기매핑된 사용자 의도가 존재하는 경우, 질의어에 해당하는 기매핑된 사용자 의도에 기초하여 답변 문장을 생성할 수 있다. 다른 예를 들어, 질의어와 관련하여 기매핑된 사용자 의도가 없는 경우, 질의어에 대한 사용자 의도를 예측하고, 예측된 사용자 의도에 기초하여 답변 문장을 생성할 수 있다.
대화 서버(130)는 생성한 답변 문장을 답변 템플릿과 함께 의도 예측 서버(120)로 전송할 수 있다. 이 때, 대화 서버(130)는 예측된 사용자 의도와 관련된 서비스가 실행되도록 부가 정보를 답변 문장과 함께 의도 예측 서버(120)로 전송할 수 있다.
대화 서버(130)는 답변 문장이 의도 예측 서버(120)로 전송되면, 질의어에 의미 태그가 존재할 확률 및 예측된 사용자 의도에 기초하여 대화 이력을 업데이트할 수 있다.
주변 단말(140)은 질의 문장에 기초하여 사용자 의도와 관련된 서비스를 실행할 수 있다. 예를 들어, 주변 단말(140) 사용자 의도와 관련된 서비스를 실행시키기 위한 부가 정보에 기초하여 사용자 의도와 관련된 서비스를 실행할 수 있다.
도 2는 본 발명의 일 실시예에 따른 의도 예측 서버의 구성도이다. 도 2를 참조하면, 의도 예측 서버(120)는 학습부(210), 수신부(220), 인식부(230), 사용자 의도 예측부(240), 질의 문장 완성부(250), 부가 정보 도출부(260), 전송부(270) 및 통신부(280)를 포함할 수 있다.
학습부(210)는 사용자(100)의 이전 질의 문장, 의미 태그, 사용자 단말(110)의 상황 정보, 사용자 단말(110)의 대화 이력 및 예측된 사용자 의도 중 적어도 하나에 기초하여 사용자 의도 추론 모델을 학습할 수 있다. 이 때, 학습부(210)는 예를 들어, 순환신경망(RNN, Recurrent Neural Network)를 이용하여 사용자의 질의어와 관련성이 높은 확률의 질의 문장이 출력되도록 사용자 의도 추론 모델을 학습할 수 있다.
수신부(220)는 사용자 단말(110)로부터 질의어를 수신할 수 있다. 예를 들어, 사용자(100)가 "오늘 날씨 어때?" 를 발화하고자 하는 경우, 수신부(220)는 사용자 단말(110)로부터 사용자(100)의 발화 도중에 인식된 음소, 유의미한 단어 또는 사용자(100)의 의도가 유추 가능한 단어를 포함하는 질의어를 수신할 수 있다. 여기서, 질의어란 사용자(100)로부터 음성이 발화되면, 음성의 발화 도중 적어도 하나의 음소가 순차적으로 인식되거나, 또는 적어도 하나의 유의미한 단어가 인식되는 것일 수 있다.
인식부(230)는 질의어에 해당하는 키워드 및 의미 태그 중 적어도 하나를 인식할 수 있다. 여기서, 키워드란 사용자(100)의 음성 발화 도중 인식된 적어도 하나의 음소 또는 단어를 텍스트로 변환한 것이고, 의미 태그는 콘텐명, 시간 정보, 위치 정보 등을 포함하는 유의미한 개체명 및 질의어에 대한 유형 등을 포함할 수 있다.
예를 들어, 사용자 단말(110)로부터 사용자(100)가 발화하고자 하는 의도(예를 들어, 오늘 날씨 어때)에 해당하는 질의어를 수신한 경우, 인식부(230)는 '오', '오늘', '오늘 날', '오늘 날씨', '오늘 날씨 어', 오늘 날씨 어때'와 같이 질의어에 해당하는 키워드를 순차적으로 인식할 수 있다. 여기서, 키워드는 '오'와 같이 적어도 하나의 음소 단위로부터 인식될 수 있으며, '오늘'과 같이 유의미한 단어로부터 인식될 수 있으며, '오늘 날' 또는 '오늘 날씨'와 같이 사용자(100)의 의도가 유추 가능한 단어로부터 인식될 수 있다. 이 때, 어느 하나의 질의어에 대해 다수개의 키워드가 인식된 경우, 인식부(230)는 다수의 키워드 중 사용자(100)가 발화할 확률이 높은 소정(예를 들어, 3개)의 키워드를 선택할 수 있다.
사용자 의도 예측부(240)는 인식된 키워드 및 인식된 의도 태그 중 적어도 하나를 분석하여 질의어와 관련된 사용자 의도를 예측할 수 있다. 이 때, 사용자 의도 예측부(240)는 사용자 단말(110)의 동작 상태(온/오프 상태, 서비스 실행 여부 등) 또는 사용자 단말(110)과 연결된 주변 단말(140)의 동작 상태(온/오프 상태, 서비스 실행 여부 등), 사용자 단말(110)의 사용 이력 및 사용자 단말(110)의 대화 이력 등을 더 분석하여 사용자 의도를 예측할 수 있다. 예를 들어, 사용자(100)가 "오늘 날씨 어때?"를 발화하고자 하고, 인식부(230)에서 사용자(100)의 음성 발화 도중 인식된 질의어가 "오늘 날"인 경우, 사용자 의도 예측부(240)는 사용자(100)가 날씨를 질의하고자 함을 사용자 의도로 예측 또는 유추할 수 있다. 다른 예를 들어, 사용자(100)가 "오늘 날씨 어때?"를 발화하고자 하고, 인식부(230)에서 사용자(100)의 음성 발화 도중 인식된 질의어가 "오"인 경우, 사용자 의도 예측부(240)는 사용자(100)의 이전에 이용한 서비스 내역에 기초하여 사용자(100)가 날씨를 질의하고자 함을 사용자 의도로 예측 또는 유추할 수 있다.
사용자 의도 예측부(240)는 의미 태그가 인식되지 않은 경우 키워드가 인식된 시점에 해당하는 시간 대에 사용자 단말(110)을 통해 기설정된 빈도수 이상 제공되었던 서비스 제공 형태를 사용자 의도로 예측할 수 있다. 예를 들어, 인식부(230)에서 질의어에 해당하는 키워드로 '오늘'이 인식되고, 사용자(100)가 주로 아침 시간에 날씨 서비스를 제공받은 경우, 사용자 의도 예측부(240)는 사용자(100)가 날씨 서비스를 요청하는 것으로 예측할 수 있다.
사용자 의도 예측부(240)는 의미 태그가 인식되지 않은 경우 인식된 키워드에 해당하는 사용자 단말(110)의 상황 정보를 더 분석하여 사용자 의도를 예측할 수 있다. 예를 들어, 인식부(230)에서 질의어에 해당하는 키워드로 '축구'가 인식되고, 사용자(100)가 '스포츠' 채널을 주로 시청하는 경우, 사용자 의도 예측부(240)는 사용자(100)가 축구 경기 결과를 요청하는 것으로 예측할 수 있다.
질의 문장 완성부(250)는 예측된 사용자 의도에 기초하여 질의어에 대한 질의 문장을 완성할 수 있다. 여기서, 질의 문장은 사용자(100)의 음성의 발화 도중 순차적으로 음소가 인식된 질의어로부터 사용자(100)가 말하고자 하는 또는 사용자(100)가 서비스를 제공받고자 하는 문장이 예측 또는 유추된 것일 수 있다. 구체적으로, 질의 문장 완성부(250)는 인식된 키워드로부터 문장 유사도가 기설정된 임계값을 초과하는 제 1 어휘를 도출하고, 예측된 사용자 의도를 표현하는 제 2 어휘를 도출한 후, 도출된 제 1 어휘 및 도출된 제 2 어휘를 결합하여 질의어에 대한 질의 문장을 완성할 수 있다. 예를 들어, 질의 문장 완성부(250)는 제 1 어휘로 '오늘 날씨'를 도출하고, 제 2 어휘로 '어때?'를 도출한 후, 도출된 제 1 어휘 및 제 2 어휘를 결합하여 "오늘 날씨 어때?"와 같이 질의어에 대한 질의 문장을 완성할 수 있다. 예를 들어, 사용자(100)가 "오늘 날씨 어때?"를 발화하고자 하고, 인식부(230)에서 사용자(100)의 음성 발화 도중 인식된 질의어가 "오늘 날"이고, 사용자 의도 예측부(240)에서 사용자(100)가 날씨를 질의하고자 함을 사용자 의도로 예측 또는 유추한 경우, 질의 문장 완성부(250)는 "오늘 날씨 어때?"와 같이 질의어에 대한 질의 문장을 완성할 수 있다.
부가 정보 도출부(260)는 사용자 단말(110)에서 예측된 사용자 의도와 관련된 서비스를 실행시키기 위한 부가 정보를 완성된 질의 문장으로부터 도출하고, 도출된 부가 정보를 완성된 질의 문장에 매핑할 수 있다.
예를 들어, 질의 문장 완성부(250)에서 "김비서가 왜그럴까 보고 싶어"와 같이 질의 문장을 완성하고, 사용자 의도로 '컨텐츠 재생(PlayContent)'이 예측된 경우, 부가 정보 도출부(260)는 컨텐츠에 해당하는 "김비서가 왜그럴까"를 재생시키기 위한 인자를 부가 정보로 도출하고, 도출된 부가 정보를 질의 문장에 매핑함으로써, 질의 문장(예를 들어, 김비서가 왜그럴까 보고 싶어)이 사용자 단말(110)에서 출력된 이후, 해당 컨텐츠(예를 들어, 김비서가 왜그럴까)가 재생되도록 할 수 있다.
다른 예를 들어, 질의 문장 완성부(250)에서 "회사까지 얼마나 걸려?"와 같이 질의 문장을 완성하고, 사용자 의도로 '내비게이션 조회(QueryNavigation)'가 예측된 경우, 부가 정보 도출부(260)는 내비게이션의 조회에 필요한 사용자(100)의 목적지인 'POI=회사'를 부가 정보로 도출하고, 도출된 부가 정보를 질의 문장에 매핑함으로써, 질의 문장(예를 들어, 회사까지 얼마나 걸려?)이 사용자 단말(110)에서 출력된 이후, 내비게이션 서비스를 통해 사용자(100)의 현재 위치로부터 목적지(회사)까지의 소요 시간이 출력되도록 할 수 있다.
전송부(270)는 부가 정보가 매핑된 질의 문장을 사용자 단말(110)로 전송할 수 있다. 이 때, 부가 정보가 매핑된 질의 문장은 사용자 단말(110)의 디스플레이 또는 스피커를 통해 출력될 수 있다.
통신부(280)는 사용자 단말(110)을 통해 질의어가 출력된 후 사용자 단말(110)에 소정 시간 동안 추가 질의어가 입력되지 않은 경우, 질의어를 대화 서버(130)로 전송하고, 대화 서버(130)로부터 질의어에 대한 답변 문장을 수신할 수 있다.
도 3은 본 발명의 일 실시예에 따른 의도 예측 서버에서 질의어에 대한 질의 문장을 완성하여 서비스를 실행시키기까지의 과정을 설명하기 위한 예시적인 도면이다. 도 3을 참조하면, 사용자(100)가 "TV에 아이유 나오는 드라마 틀어줘"라고 발화하고자 하는 경우, 의도 예측 서버(120)는 사용자 단말(110)로부터 사용자(100)의 발화 도중에 입력되는 질의어(300)를 "TV(301)->아이유(302)->나오는(303)"과 같이 순차적으로 수신할 수 있다. 이 때, 질의어(300)는 'TV'(301), '아이유'(302), '나오는'(303)과 같이 제어하고자 하는 단말과 적어도 하나의 유의미한 단어로 이루어질 수 있다. 예를 들어, 의도 예측 서버(120)는 유의미한 단어인 '아이유'(302)만으로는 '아이유'(302)와 관련된 컨텐츠가 음악, 드라마, 영화 등 너무 많으므로, '나오는'(303)과 같이 사용자(100)가 서비스 받고자 하는 컨텐츠 대상과 관련된 사용자(100)의 의도가 드러나는 단어를 통해 사용자(100)의 의도를 예측 또는 유추하여 질의 문장(330)을 완성할 수 있다.
이와 함께, 의도 예측 서버(120)는 해당 키워드를 수신할 당시의 '사용자 단말(110) 또는 사용자 단말(110)과 연결된 주변 단말(140)의 동작 상태(310)', '사용자 단말(110)의 대화 상태(320)'를 분석할 수 있고, 수신한 키워드, 동작 상태(310) 및 대화 상태(320)에 기초하여 질의 문장(330)을 완성시킬 수 있다. 이 경우, 완성된 질의 문장(330)은 질의어 및 의도(Goal)를 포함할 수 있다.
구체적으로, 의도 예측 서버(120)는 제 1 질의어를 사용자 단말(110)로부터 수신할 수 있다. 의도 예측서버(120)는 제 1 질의어인 "TV"(301)에 해당하는 제 1 키워드를 인식할 수 있다. 예를 들어, 의도 예측 서버(120)는 제 1 질의어인 "TV"(301)에 대해 '티브이끄', 'TV', '티비 어'와 같이 발화 확률이 높은 제 1 키워드를 인식할 수 있다.
의도 예측 서버(120)는 동작 상태(310)를 'TV=오프(off), 사용자 단말=대기 모드 상태'(311)로 분석할 수 있다. 의도 예측 서버(120)는 제 1 질의어에 대해 의미 태그를 포함하는 대화 상태(320)를 분석할 수 있다. 예를 들어, 의도 예측 서버(120)는 제 1 질의어에 해당하는 대화 상태(320)를 'Device=TV(321), PR=TurnOn'(322)으로 분석할 수 있다.
의도 예측 서버(120)는 제 1 키워드, 동작 상태 및 대화 상태에 기초하여 제 1 질의어와 관련된 사용자의 의도로 'TurnOnTV'를 예측할 수 있다. 의도 예측 서버(120)는 예측된 사용자 의도에 기초하여 제 1 질의어에 대한 질의 문장(331)을 "TV 켜줘"로 완성하여, 사용자 단말(110)로 전송할 수 있다. 사용자 단말(110)은 "TV 켜줘"를 디스플레이 또는 스피커를 통해 출력한 후, 사용자 단말(110)은 주변 단말(140)인 'TV'를 제어하여 'TV'가 켜지도록 할 수 있다.
이후, 의도 예측 서버(120)는 제 2 질의어를 사용자 단말(110)로부터 수신할 수 있다. 이 때, 의도 예측서버(120)는 제 1 질의어를 통해 주변 단말(140)의 동작 상태가 변경되었으므로, 수신한 제 2 질의어에 대해 키워드를 인식할 수 있다. 예를 들어, 의도 예측 서버(120)는제 2 질의어인 "아이유"(302)에 해당하는 키워드를 인식할 수 있다. 예를 들어, 의도 예측 서버(120)는 "아이유"(302)에 해당하는 제 2 질의어에 대해 '아이유', '아유미', 'IYOU'와 같이 발화 확률이 높은 소정의 키워드를 인식할 수 있다.
의도 예측 서버(120)는 인식된 제 2 키워드에 기초하여 사용자 단말(110) 또는 사용자 단말(110)과 연결된 주변 단말(140)의 동작 상태(310)를 분석할 수 있다. 예를 들어, 의도 예측 서버(120)는 현재 'TV=온(on), 사용자 단말=온(on)/뮤직앱 미실행 중'(312)으로 분석할 수 있다.
의도 예측 서버(120)는 제 2 질의어에 대해 의미 태그를 포함하는 대화 상태(320)를 분석할 수 있다. 예를 들어, 의도 예측 서버(120)는 제 2 질의어에 해당하는 대화 상태(320)를 'Device=TV(323), Actor=아이유>아유미(324), PR=Listen>Query>Show'(325)로 분석할 수 있다.
의도 예측 서버(120)는 제 2 키워드 및 대화 상태(320)에 기초하여 제 2 질의어와 관련된 사용자의 의도로 'MusicPlay'를 예측할 수 있다.
의도 예측 서버(120)는 예측된 사용자 의도에 기초하여 제 2 질의어에 대한 질의 문장(332)을 "아이유 들려줘."로 완성하여, 사용자 단말(110)로 전송할 수 있다. 사용자 단말(110)은 "아이유 들려줘"를 디스플레이 또는 스피커를 통해 출력할 수 있다.
이후, 의도 예측 서버(120)는 제 3 질의어를 수신할 수 있다. 의도 예측서버(120)는 제 3 질의어인 "나오는"에 해당하는 키워드를 인식할 수 있다. 이 때, 의도 예측 서버(120)는 사용자 단말(110) 또는 주변 단말(140)의 동작 상태가 변경되지 않았으므로, 제 2 및 제 3 질의어에 해당하는 "아이유 나오는"(303)에 대해 키워드를 인식할 수 있다. 예를 들어, 의도 예측 서버(120)는 "아이유 나오는"(303)에 대해 '아이유 나오는', '이유 나', '아라 이 나'와 같이 발화 확률이 높은 소정의 키워드를 인식할 수 있다.
의도 예측 서버(120)는 인식된 제 3 키워드에 기초하여 사용자 단말(110) 또는 사용자 단말(110)과 연결된 주변 단말(140)의 동작 상태(310)를 분석할 수 있다. 예를 들어, 의도 예측 서버(120)는 현재 'TV=온(on), 사용자 단말=온(on)/뮤직앱 미실행 중'(313)으로 분석할 수 있다.
의도 예측 서버(120)는 제 3 질의어에 대해 의미 태그를 포함하는 대화상태(320)를 분석할 수 있다. 예를 들어, 의도 예측 서버(120)는 제 3 질의어에 해당하는 대화 상태(320)를 'Singer=아이유(326), Actor=아이유>아유미(327), PR=Query>Show>Listen'(328)으로 분석할 수 있다.
최종적으로, 의도 예측 서버(120)는 제 3 키워드 및 대화 상태에 기초하여 제 3 질의어와 관련된 사용자의 의도로 'PlayContent'를 예측할 수 있다. 의도 예측 서버(120)는 예측된 사용자 의도에 기초하여 제 3 질의어에 대한 질의 문장(333)을 "아이유 나오는 드라마 틀어줘"로 완성하여, 사용자 단말(110)로 전송할 수 있다. 사용자 단말(110)은 "아이유 나오는 드라마 틀어줘"를 디스플레이 또는 스피커를 통해 출력하고, 관련 컨텐츠를 실행시킬 수 있다.
도 4a 내지 도 4d는 본 발명의 일 실시예에 따른 질의어와 관련된 사용자 의도를 예측하여 질의어에 대한 질의 문장을 완성하는 과정을 설명하기 위한 예시적인 도면이다.
도 4a를 참조하면, 사용자(100)가 "오늘 축구 어떻게 되었어?"라고 발화하고자 하는 경우, 의도 예측 서버(120)는 사용자 단말(110)로부터 음성 발화 도중 입력되는 질의어(401) 를 순차적으로 수신할 수 있다.
의도 예측 서버(120)는 사용자 단말(110)로부터 제 1 질의어를 수신할 수 있다. 의도 예측 서버(120)는 사용자 단말(110)로부터 제 1 질의어인 "오"와 같은 음소를 수신한 경우, 수신한 음소에 해당하는 제 1 키워드를 인식할 수 있다. 예를 들어, 의도 예측 서버(120)는 제 1 질의어인 "오"에 대해 '오늘', '오 날', '오는'과 같이 발화 확률이 높은 소정의 키워드를 인식할 수 있다. 이 때, 의도 예측 서버(120)는 제 1 질의어를 통해 사용자(100)가 유의미한 단어인 '오늘'을 발화하고자함을 예측 또는 유추할 수 있다.
의도 예측 서버(120)는 사용자 단말(110) 또는 사용자 단말(110)과 연결된 주변 단말(140)의 동작 상태(400)를 분석할 수 있다. 예를 들어, 의도 예측 서버(120)는 현재 'TV=오프(off), 사용자 단말=온(on)'으로 분석할 수 있다.
의도 예측 서버(120)는 사용자 단말(110)의 사용 이력 및 대화 이력 등에 기초하여 사용자 의도를 예측할 수 있다. 예를 들어, 의도 예측 서버(120)는 사용자 단말(110)의 사용 이력, 대화 이력 및 제 1 키워드에 기초하여 대화 상태(402)를 'Day=오늘, PR=QueryState'로 분석하고, 분석된 대화 상태(402)에 기초하여 사용자 의도를 'QueryWeather'로 예측할 수 있다.
의도 예측 서버(120)는 예측된 사용자 의도에 기초하여 질의 문장(403)을 "오늘 날씨 어때?"로 예측할 수 있다.
이후, 의도 예측 서버(120)는 사용자 단말(110)로부터 제 2 질의어를 수신할 수 있다. 이 때, 의도 예측 서버(120)는 제 1 질의어에 대해 질의 문장이 예측된 이후, 사용자 단말(110) 및 사용자 단말(110)과 연결된 주변 단말(140)의 동작 상태(400)가 변경되지 않았으므로, 제 1 질의어('오늘')에 이어서 제 2 질의어('축구')를 인식할 수 있다. 예를 들어, 의도 예측 서버(120)는 사용자 단말(110)로부터 제 2 질의어인 "축"과 같은 음소를 수신한 경우, 수신한 음소에 해당하는 제 2 키워드를 인식할 수 있다. 예를 들어, 의도 예측 서버(120)는 제 2 질의어인 "축"에 대해 제 1 키워드에 이어서 '오늘 축구', '오늘 축'과 같이 발화 확률이 높은 소정의 키워드를 인식할 수 있다. 이 때, 의도 예측 서버(120)는 제 2 질의어를 통해 사용자(100)가 유의미한 단어인 '축구'를 발화하고자 함을 예측 또는 유추할 수 있다.
의도 예측 서버(120)는 사용자 단말(110)의 사용 이력 및 대화 이력 등에 기초하여 사용자 의도를 예측할 수 있다. 예를 들어, 의도 예측 서버(120)는 사용자 단말(110)의 사용 이력, 대화 이력 및 제 1 및 제 2 키워드에 기초하여 대화 상태(402)를 'Day=오늘, Sports=축구, PR=QueryState'로 분석하고, 분석된 대화 상태(402)에 기초하여 사용자 의도를 'QuerySportsInfo'로 예측할 수 있다.
의도 예측 서버(120)는 예측된 사용자 의도에 기초하여 질의 문장(403)을 "오늘 축구 어떻게 되었어?"로 완성할 수 있다.
도 4b를 참조하면, 사용자(100)가 "TV 지금 뭐해?"라고 발화하고자 하는 경우, 의도 예측 서버(120)는 사용자 단말(110)로부터 음성 발화 도중 입력되는 질의어(401)를 순차적으로 수신할 수 있다.
의도 예측 서버(120)는 사용자 단말(110)로부터 제 1 질의어를 수신할 수 있다. 의도 예측 서버(120)는 사용자 단말(110)로부터 제 1 질의어인 "T"와 같은 음소 또는 "TV"와 같은 유의미한 단어를 수신한 경우, 수신한 단어에 해당하는 키워드를 인식할 수 있다. 예를 들어, 의도 예측 서버(120)는 제 1 질의어인 "TV"에 대해 '티브이', 'TV', '티비 어'와 같이 발화 확률이 높은 소정의 제 1 키워드를 인식할 수 있다. 이 때, 의도 예측 서버(120)는 제 1 질의어를 통해 사용자(100)가 유의미한 단어인 'TV'를 발화하고자 함을 예측 또는 유추할 수 있다.
의도 예측 서버(120)는 인식된 제 1 키워드에 기초하여 사용자 단말(110) 또는 사용자 단말(110)과 연결된 주변 단말(140)의 동작 상태(400)를 분석할 수 있다. 예를 들어, 의도 예측 서버(120)는 'TV=오프(off), 사용자 단말=대기 모드 상태'로 분석할 수 있다.
의도 예측 서버(120)는 사용자 단말(110) 및 사용자 단말(110)의 동작 상태(400)와 제 1 키워드에 기초하여 대화 상태(402)를 'Device=TV, PR=TurnOn'로 분석하고, 분석된 대화 상태(402)에 기초하여 사용자 의도를 'TurnOn'으로 예측할 수 있다.
의도 예측 서버(120)는 예측된 사용자 의도에 기초하여 질의 문장(403)을 "TV 켜줘"로 예측할 수 있다.
이후, 의도 예측 서버(120)는 사용자 단말(110)로부터 제 2 질의어를 수신할 수 있다. 예를 들어, 의도 예측 서버(120)는 사용자 단말(110)로부터 제 2 질의어인 "지"와 같은 음소를 수신한 경우, 수신한 음소에 해당하는 제 2 키워드를 인식할 수 있다. 예를 들어, 의도 예측 서버(120)는 제 2 질의어인 "지"에 대해 제 1 키워드에 이어서 '지금', '지 급'과 같이 발화 확률이 높은 소정의 키워드를 인식할 수 있다. 이 때, 의도 예측 서버(120)는 제 2 질의어를 통해 사용자(100)가 유의미한 단어인 '지금"을 발화하고자 함을 예측 또는 유추할 수 있다.
의도 예측 서버(120)는 사용자 단말(110)의 사용 이력 및 대화 이력 등에 기초하여 사용자 의도를 예측할 수 있다. 예를 들어, 의도 예측 서버(120)는 사용자 단말(110)의 사용 이력, 대화 이력 및 제 2 키워드에 기초하여 대화 상태(402)를 'Sb_time=지금, Category=드라마, PR=Query'로 분석하고, 분석된 대화 상태(402)에 기초하여 사용자 의도를 'QueryContents'로 예측할 수 있다.
의도 예측 서버(120)는 예측된 사용자 의도에 기초하여 질의 문장(403)을 "드라마 뭐해?"로 완성할 수 있다.
도 4c를 참조하면, 사용자(100)가 "지금 회사까지 얼마나 걸려?"라고 발화하고자 하는 경우, 의도 예측 서버(120)는 사용자 단말(110)로부터 음성 발화 도중 입력되는 질의어에 대한 질의어(401)를 순차적으로 수신할 수 있다.
의도 예측 서버(120)는 수신한 질의어(401)인 "지금"에 해당하는 키워드를 인식할 수 있다. 예를 들어, 의도 예측 서버(120)는 사용자 단말(110)로부터 질의어(401)인 "지"와 같은 음소를 수신한 경우, 수신한 음소에 해당하는 키워드를 인식할 수 있따. 예를 들어, 의도 예측 서버(120)는 제 1 질의어인 "지"에 대해 '지금', '지 급'과 같이 발화 확률이 높은 소정의 키워드를 인식할 수 있다. 이 때, 의도 예측 서버(120)는 제 1 질의어를 통해 사용자(100)가 유의미한 단어인 '지금'을 발화하고자 함을 예측 또는 유추할 수 있다.
여기서, 의도 예측 서버(120)는 '지금'이라는 키워드만을 인식하고, 의미 태그를 인식하지 못한 상태일 수 있으므로, 사용자 단말(110)의 대화 이력을 분석하여 사용자 의도를 예측할 수 있다.
예를 들어, 의도 예측 서버(120)는 사용자 단말(110)의 동작 상태(400)를 질의어(401)를 수신한 '평일 아침 시간대'로 분석할 수 있다. 또한, 의도 예측 서버(120)는 사용자 단말(110)의 대화 이력에 기초하여 사용자(100)가 해당 시간대에 회사까지의 교통 상황을 자주 물어본 경우, 의도 예측 서버(120)는 해당 시간대에 필요한 정보를 물어보는 대화 이력 중 많이 발화된 "회사까지 얼마나 걸려?"라는 질의 문장(403)을 완성할 수 있다.
이 때, 의도 예측 서버(120)는 '지금'을 통해 사용자 의도로 'QueryNavigation', 완성된 질의 문장인"회사까지 얼마나 걸려?"가 매핑되면, 내비게이션의 조회에 핵심값인 'POI=회사'를 부가 정보로 질의 문장에 매핑할 수 있다.
도 4d를 참조하면, 사용자(100)가 "김비서가 왜그럴까 틀어줘"라고 발화하고자 하는 경우, 의도 예측 서버(120)는 사용자 단말(110)로부터 음성 발화 도중 입력되는 질의어(401)를 순차적으로 수신할 수 있다.
의도 예측 서버(120)는 사용자 단말(110)로부터 제 1 질의어인 "김비서"와 같은 유의미한 단어를 수신한 경우, 수신한 단어에 해당하는 키워드를 인식할 수 있다. 이 때, 의도 예측 서버(120)는 제 1 질의어인 "김비서"에 대해 '김이서'와 같이 키워드를 오인식할 수 있다.
의도 예측 서버(120)는 오인식된 키워드에 기초하여 의미 태그를 'Content'로 분석할 수 있다. 또한, 인식된 키워드에 기초하여 사용자 단말(110) 또는 사용자 단말(110)과 연결된 주변 단말(140)의 동작 상태(400)를 더 분석할 수 있다. 예를 들어, 의도 예측 서버(120)는 'TV=온(on), 사용자 단말=온(on)'으로 분석할 수 있다. 이를 통해, 의도 예측 서버(120)는 대화 상태(402)를 'Content=김비서가 왜 그럴까, PR=Show'로 분석할 수 있다. 즉, 의도 예측 서버(120)는 사용자(100)의 질의어를 오인식하더라도, 사용자 단말(110) 또는 사용자 단말(110)과 연결된 주변 단말(140)의 동작 상태(400), 사용자(100)가 자주 이용하는 서비스 또는 컨텐츠 등에 기초하여 오인식된 질의어인 '김이서'를 '김비서'로 정정할 수 있다.
의도 예측 서버(120)는 '김이서'라는 키워드로부터 의미 태그로 '김비서가 왜 그럴까'를 인식하고, 현재 TV가 온(on)된 상태이고, 사용자(100)가 해당 시간대에 드라마를 자주 시청하는 경우, 사용자 의도를 'PlayContent'로 예측할 수 있다.
의도 예측 서버(120)는 예측된 사용자 의도에 기초하여 인식된 키워드와 문장 유사도가 높은 콘텐츠명인 '김비서가 왜 그럴까'를 예측하고, 제 1 어휘로 "김비서가 왜 그럴까"를 도출하고, 사용자 의도를 표현하는 '보고 싶어, 보여줘 등'과 같은 제 2 어휘를 결합하여 질의 문장(403)을 완성할 수 있다.
도 5는 본 발명의 일 실시예에 따른 의도 예측 서버에서 사용자 의도를 예측하는 방법의 순서도이다. 도 5에 도시된 의도 예측 서버(120)에서 사용자 의도를 예측하는 방법은 도 1 내지 도 4d에 도시된 실시예에 따른 의도 예측 시스템(1)에 의해 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하 생략된 내용이라고 하더라도 도 1 내지 도 4d에 도시된 실시예에 따른 의도 예측 서버(120)에서 사용자 의도를 예측하는 방법에도 적용된다.
단계 S510에서 의도 예측 서버(120)는 사용자 단말(110)로부터 질의어를 수신할 수 있다.
단계 S520에서 의도 예측 서버(120)는 질의어에 해당하는 키워드 및 의미 태그 중 적어도 하나를 인식할 수 있다.
단계 S530에서 의도 예측 서버(120)는 인식된 키워드 및 인식된 의도 태그 중 적어도 하나를 분석하여 질의어와 관련된 사용자 의도를 예측할 수 있다.
단계 S540에서 의도 예측 서버(120)는 예측된 사용자 의도에 기초하여 질의어에 대한 질의 문장을 완성할 수 있다.
상술한 설명에서, 단계 S510 내지 S540은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 전환될 수도 있다.
도 1 내지 도 5을 통해 설명된 의도 예측 서버에서 사용자 의도를 예측하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램 또는 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 또한, 도 1 내지 도 5을 통해 설명된 의도 예측 서버에서 사용자 의도를 예측하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램의 형태로도 구현될 수 있다.
컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
110: 사용자 단말
120: 의도 예측 서버
130: 대화 서버
140: 주변 단말
210: 학습부
220: 수신부
230: 인식부
240: 사용자 의도 예측부
250: 질의 문장 완성부
260: 부가 정보 도출부
270: 전송부
280: 통신부
120: 의도 예측 서버
130: 대화 서버
140: 주변 단말
210: 학습부
220: 수신부
230: 인식부
240: 사용자 의도 예측부
250: 질의 문장 완성부
260: 부가 정보 도출부
270: 전송부
280: 통신부
Claims (20)
- 사용자 의도를 예측하는 서버에 있어서,
사용자 단말로부터 질의어를 수신하는 수신부;
상기 질의어에 해당하는 키워드 및 의미 태그 중 적어도 하나를 인식하는 인식부;
상기 인식된 키워드 및 상기 인식된 의미 태그 중 적어도 하나를 분석하여 상기 질의어와 관련된 사용자 의도를 예측하는 사용자 의도 예측부; 및
상기 예측된 사용자 의도에 기초하여 상기 질의어에 대한 질의 문장을 완성하는 질의 문장 완성부
를 포함하는, 의도 예측 서버.
- 제 1 항에 있어서,
상기 사용자 의도 예측부는 상기 사용자 단말의 동작 상태 또는 상기 사용자 단말과 연결된 주변 단말의 동작 상태를 더 분석하여 상기 사용자 의도를 예측하는 것인, 의도 예측 서버.
- 제 2 항에 있어서,
상기 사용자 의도 예측부는 상기 사용자 단말의 사용 이력 및 상기 사용자 단말의 대화 이력 중 적어도 하나를 더 분석하여 상기 사용자 의도를 예측하는 것인, 의도 예측 서버.
- 제 3 항에 있어서,
상기 사용자 의도 예측부는 상기 의미 태그가 인식되지 않은 경우 상기 키워드가 인식된 시점에 해당하는 시간 대에 상기 사용자 단말을 통해 기설정된 빈도수 이상 제공되었던 서비스 제공 형태를 상기 사용자 의도로 예측하는 것인, 의도 예측 서버.
- 제 4 항에 있어서,
상기 질의 문장 완성부는 상기 인식된 키워드로부터 문장 유사도가 기설정된 임계값을 초과하는 제 1 어휘를 도출하고, 상기 예측된 사용자 의도를 표현하는 제 2 어휘를 도출하는 것인, 의도 예측 서버.
- 제 5 항에 있어서,
상기 질의 문장 완성부는 상기 도출된 제 1 어휘 및 상기 도출된 제 2 어휘를 결합하여 상기 질의어에 대한 질의 문장을 완성하는 것인, 의도 예측 서버.
- 제 1 항에 있어서,
상기 사용자 의도 예측부는 상기 의미 태그가 인식되지 않은 경우 상기 인식된 키워드에 해당하는 상기 사용자 단말의 상황 정보를 더 분석하여 상기 사용자 의도를 예측하는 것인, 의도 예측 서버.
- 제 1 항에 있어서,
상기 사용자 단말에서 상기 예측된 사용자 의도와 관련된 서비스를 실행시키기 위한 부가 정보를 상기 완성된 질의 문장으로부터 도출하고, 상기 도출된 부가 정보를 상기 완성된 질의 문장에 매핑하는 부가 정보 도출부
를 더 포함하는 것인, 의도 예측 서버.
- 제 8 항에 있어서,
상기 부가 정보가 매핑된 상기 질의 문장을 상기 사용자 단말로 전송하는 전송부를 더 포함하고,
상기 사용자 단말에서 상기 부가 정보에 기초하여 상기 사용자 의도와 관련된 서비스가 실행되는 것인, 의도 예측 서버.
- 제 9 항에 있어서,
상기 사용자 단말을 통해 상기 질의 문장이 출력된 후 상기 사용자 단말에 소정 시간 동안 추가 질의어가 입력되지 않은 경우, 상기 사용자 의도와 관련된 서비스가 실행되는 것인, 의도 예측 서버.
- 제 1 항에 있어서,
상기 질의 문장이 완성되지 않은 경우, 상기 질의어는 상기 사용자 단말을 통해 출력되는 것인, 의도 예측 서버.
- 제 11 항에 있어서,
상기 사용자 단말을 통해 상기 질의어가 출력된 후 상기 사용자 단말에 소정 시간 동안 추가 질의어가 입력되지 않은 경우, 상기 질의어를 대화 서버로 전송하고, 상기 대화 서버로부터 상기 질의어에 대한 답변 문장을 수신하는 통신부
를 더 포함하는, 의도 예측 서버.
- 제 1 항에 있어서,
상기 사용자의 이전 질의 문장, 의미 태그, 상기 사용자 단말의 상황 정보, 상기 사용자 단말의 대화 이력 및 상기 예측된 사용자 의도 중 적어도 하나에 기초하여 사용자 의도 추론 모델을 학습하는 학습부
를 더 포함하는, 의도 예측 서버.
- 서버에서 사용자 의도를 예측하는 방법에 있어서,
사용자 단말로부터 질의어를 수신하는 단계;
상기 질의어에 해당하는 키워드 및 의미 태그 중 적어도 하나를 인식하는 단계;
상기 인식된 키워드 및 상기 인식된 의미 태그 중 적어도 하나를 분석하여 상기 질의어와 관련된 사용자 의도를 예측하는 단계; 및
상기 예측된 사용자 의도에 기초하여 상기 질의어에 대한 질의 문장을 완성하는 단계
를 포함하는, 의도 예측 방법.
- 제 14 항에 있어서,
상기 사용자 의도를 예측하는 단계는,
상기 사용자 단말의 동작 상태 또는 상기 사용자 단말과 연결된 주변 단말의 동작 상태를 더 분석하여 상기 사용자 의도를 예측하는 단계를 포함하는 것인, 의도 예측 방법.
- 제 15 항에 있어서,
상기 사용자 의도를 예측하는 단계는,
상기 사용자 단말의 사용 이력 및 상기 사용자 단말의 대화 이력 중 적어도 하나를 더 분석하여 상기 사용자 의도를 예측하는 단계를 포함하는 것인, 의도 예측 방법.
- 제 16 항에 있어서,
상기 사용자 의도를 예측하는 단계는, 상기 의미 태그가 인식되지 않은 경우 상기 키워드가 인식된 시점에 해당하는 시간 대에 상기 사용자 단말을 통해 기설정된 빈도수 이상 제공되었던 서비스 제공 형태를 상기 사용자 의도로 예측하는 단계를 포함하는 것인, 의도 예측 방법.
- 제 17 항에 있어서,
상기 질의 문장을 완성하는 단계는,
상기 인식된 키워드로부터 문장 유사도가 기설정된 임계값을 초과하는 제 1 어휘를 도출하고, 상기 예측된 사용자 의도를 표현하는 제 2 어휘를 도출하는 단계; 및
상기 도출된 제 1 어휘 및 상기 도출된 제 2 어휘를 결합하여 상기 질의어에 대한 질의 문장을 완성하는 단계를 포함하는 것인, 의도 예측 방법.
- 제 14 항에 있어서,
상기 사용자 의도를 예측하는 단계는 상기 의미 태그가 인식되지 않은 경우 상기 인식된 키워드에 해당하는 상기 사용자 단말의 상황 정보를 더 분석하여 상기 사용자 의도를 예측하는 단계를 포함하는 것인, 의도 예측 방법.
- 의도 예측 서버에서 사용자의 의도를 예측하는 명령어들의 시퀀스를 포함하는 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램에 있어서,
상기 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행될 경우,
사용자 단말로부터 질의어를 수신하고,
상기 질의어에 해당하는 키워드 및 의미 태그 중 적어도 하나를 인식하고,
상기 인식된 키워드 및 상기 인식된 의미 태그 중 적어도 하나를 분석하여 상기 질의어와 관련된 사용자 의도를 예측하고,
상기 예측된 사용자 의도에 기초하여 상기 질의어에 대한 질의 문장을 완성하도록 하는 명령어들의 시퀀스를 포함하는, 매체에 저장된 컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190001386A KR20200092455A (ko) | 2019-01-04 | 2019-01-04 | 사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190001386A KR20200092455A (ko) | 2019-01-04 | 2019-01-04 | 사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200092455A true KR20200092455A (ko) | 2020-08-04 |
Family
ID=72048813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190001386A KR20200092455A (ko) | 2019-01-04 | 2019-01-04 | 사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20200092455A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256824A (zh) * | 2020-09-17 | 2021-01-22 | 国网安徽省电力有限公司 | 一种用于机器人服务的业务引导方法、系统和存储单元 |
CN115438995A (zh) * | 2022-09-21 | 2022-12-06 | 青岛酷特智能股份有限公司 | 一种基于知识图谱的服装定制企业的业务处理方法及设备 |
CN116050427A (zh) * | 2022-12-30 | 2023-05-02 | 北京百度网讯科技有限公司 | 信息生成方法、训练方法、装置、电子设备以及存储介质 |
-
2019
- 2019-01-04 KR KR1020190001386A patent/KR20200092455A/ko active Search and Examination
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256824A (zh) * | 2020-09-17 | 2021-01-22 | 国网安徽省电力有限公司 | 一种用于机器人服务的业务引导方法、系统和存储单元 |
CN112256824B (zh) * | 2020-09-17 | 2023-10-20 | 国网安徽省电力有限公司 | 一种用于机器人服务的业务引导方法、系统和存储介质 |
CN115438995A (zh) * | 2022-09-21 | 2022-12-06 | 青岛酷特智能股份有限公司 | 一种基于知识图谱的服装定制企业的业务处理方法及设备 |
CN115438995B (zh) * | 2022-09-21 | 2023-10-10 | 青岛酷特智能股份有限公司 | 一种基于知识图谱的服装定制企业的业务处理方法及设备 |
CN116050427A (zh) * | 2022-12-30 | 2023-05-02 | 北京百度网讯科技有限公司 | 信息生成方法、训练方法、装置、电子设备以及存储介质 |
CN116050427B (zh) * | 2022-12-30 | 2023-10-27 | 北京百度网讯科技有限公司 | 信息生成方法、训练方法、装置、电子设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220036882A1 (en) | Electronic apparatus, system and method for using speech recognition service | |
US10482184B2 (en) | Context-based natural language processing | |
US11551684B1 (en) | State detection and responses for electronic devices | |
EP3513324B1 (en) | Computerized natural language query intent dispatching | |
KR100679043B1 (ko) | 음성 대화 인터페이스 장치 및 방법 | |
US9886952B2 (en) | Interactive system, display apparatus, and controlling method thereof | |
US11574637B1 (en) | Spoken language understanding models | |
US11687526B1 (en) | Identifying user content | |
US12080291B2 (en) | Speech processing for multiple inputs | |
US11355115B2 (en) | Question answering for a voice user interface | |
KR20200092455A (ko) | 사용자 의도를 예측하는 서버, 방법 및 컴퓨터 프로그램 | |
US11990122B2 (en) | User-system dialog expansion | |
US11532301B1 (en) | Natural language processing | |
US11984115B2 (en) | Dialog system capable of semantic-understanding mapping between user intents and machine services | |
US11830502B2 (en) | Electronic device and method for controlling the same | |
US20240185846A1 (en) | Multi-session context | |
US11626107B1 (en) | Natural language processing | |
US11798545B2 (en) | Speech interaction method and apparatus, device and storage medium | |
CN109887490A (zh) | 用于识别语音的方法和装置 | |
KR20210066651A (ko) | 전자 장치 및 이의 제어 방법 | |
KR102485339B1 (ko) | 차량의 음성 명령 처리 장치 및 방법 | |
US11907676B1 (en) | Processing orchestration for systems including distributed components | |
CN114822598A (zh) | 服务器及语音情感识别方法 | |
US11410659B1 (en) | Dynamic skill endpoint | |
CN114596842A (zh) | 一种语音交互的方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |