KR20170048008A - 질의의도를 분석하기 위한 장치 및 방법 - Google Patents

질의의도를 분석하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR20170048008A
KR20170048008A KR1020150148834A KR20150148834A KR20170048008A KR 20170048008 A KR20170048008 A KR 20170048008A KR 1020150148834 A KR1020150148834 A KR 1020150148834A KR 20150148834 A KR20150148834 A KR 20150148834A KR 20170048008 A KR20170048008 A KR 20170048008A
Authority
KR
South Korea
Prior art keywords
service area
query term
query
intention
result
Prior art date
Application number
KR1020150148834A
Other languages
English (en)
Other versions
KR102280439B1 (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 KR1020150148834A priority Critical patent/KR102280439B1/ko
Publication of KR20170048008A publication Critical patent/KR20170048008A/ko
Application granted granted Critical
Publication of KR102280439B1 publication Critical patent/KR102280439B1/ko

Links

Images

Classifications

    • G06F17/30979
    • G06F17/30976

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Artificial Intelligence (AREA)

Abstract

본 발명은, 질의의도를 분석하기 위한 장치 및 방법에 관한 것으로, 질의어로부터 확인된 타겟키워드를 기반으로 질의어와 관련된 적어도 하나의 서비스영역을 검출하고, 검출된 적어도 하나의 서비스영역에서 동시에 질의어에 대한 의도를 분석한 결과에 기초하여 사용자가 의도하는 최종서비스영역을 결정함에 따라 서비스영역별로 NLU 모델이 구성되더라도 질의어와 관련된 적어도 하나의 서비스영역의 NLU 엔진만이 동시에 구동하여 분석을 수행하게 되므로 속도 저하를 최소화하면서도 분석 정확도를 향상시킬 수 있다.

Description

질의의도를 분석하기 위한 장치 및 방법{APPARATUS FOR ANALYZING INTENTION OF QUERY AND METHOD THEREOF}
본 발명은 질의의도를 분석하는 기술에 관한 것으로, 더욱 상세하게는, 질의어와 관련된 서비스영역을 동시에 분석한 결과에 기초하여 사용자가 의도하는 최종서비스영역과 관련된 서비스 응답을 제공할 수 있는 의도분석장치 및 그 동작방법에 관한 것이다.
최근 음성인식 기술의 성능이 향상됨에 따라 사용자의 음성인식결과로부터 의미를 파악하여 적절한 응답을 출력하는 지능형 에이전트(Intelligent Personal Agent)가 다양한 분야에 적용되고 있다.
이때, 사용자의 음성인식결과는 자연어 형태의 텍스트로 획득되므로, 지능형 에이전트(Intelligent Personal Agent)는 자연어 이해(Natural Language Understanding, 이하 NLU) 기술을 통해 사용자의 의도(의미)를 파악하게 된다.
이러한 NLU 기술에 따라 지능형 에이전트(Intelligent Personal Agent)에서 출력되는 응답이 달라지게 되므로, NLU 기술은 지능형 에이전트(Intelligent Personal Agent)의 전체 성능에 큰 영향을 미치게 된다.
이에, 최근에는 딥 러닝(Deep Learning과) 같이 사람처럼 생각하고 배울 수 있도록 하는 기계학습방법에 패턴 기반의 규칙방법을 결합한 하이브리드 NLU 기술에 대한 이용이 증가하고 있다.
한편, NLU 기술은 자연어 인터페이스 관점에서 다양한 서비스영역을 필수적으로 지원한다. 여기서, 서비스영역이라 함은 음악, 주식, 스포츠, 날씨, 지식검색 등과 같이 지능형 에이전트(Intelligent Personal Agent)가 지원하고 있는 서비스(기능)을 의미한다.
이러한 서비스영역을 지원하기 위해, NLU 기술에서는 1개의 NLU 모델을 이용하여 한번에 모든 서비스영역을 지원하도록 하였다. 이처럼 1개의 NLU 모델을 이용하는 경우, 전체 시스템의 구성은 간단하지만 1개의 NLU 모델에서 모든 서비스영역을 지원해야 하므로 복잡도가 증가하여 정확도가 떨어지게 되며, 지속적으로 서비스영역을 확장하기에 어려움이 따른다.
이러한 문제점을 해소하기 위해, 서비스영역별로 NLU 모델을 구성하고, 해당 서비스영역에 대한 모델만 실행되도록 하였다. 이처럼 서비스영역별로 NLU 모델을 구성하는 경우, 서비스영역별 NLU 모델에서 사용자의 의도를 분석하게 되므로 정확도를 향상시킬 수 있으나 전체 시스템의 구성이 복잡해지며 여러 서비스영역에 대해서 분석을 수행해야 하므로 속도가 저하되는 문제가 발생한다.
이에, 서비스영역별로 NLU 모델이 구성되더라도 분석결과의 정확도를 향상시키면서 속도 저하를 최소화하기 위한 기술이 요구된다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 해결하고자 하는 과제는, 질의어와 관련된 서비스영역을 동시에 분석한 결과에 기초하여 사용자가 의도하는 최종서비스영역과 관련된 서비스 응답을 제공하는 의도분석장치 및 그 동작방법을 제공하는데 있다.
또한, 본 발명의 해결하려는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 제 1 관점에 따른 의도분석장치는, 질의어로부터 타겟키워드를 확인하는 질의어확인부; 상기 타겟키워드를 기반으로 상기 질의어와 관련된 적어도 하나의 서비스영역을 검출하는 서비스영역검출부; 및 상기 적어도 하나의 서비스영역 별로 상기 질의어에 대한 의도를 분석한 결과를 이용하여 상기 질의어와 관련된 최종서비스영역을 결정하는 서비스영역결정부를 포함하는 것을 특징으로 한다.
상기 서비스영역결정부는, 기 저장된 질의어집합정보에서, 상기 질의어와 동일한 매칭질의어가 검출되는 경우, 상기 매칭질의어와 관련된 서비스영역을 상기 최종서비스영역으로 결정하는 것을 특징으로 한다.
상기 서비스영역결정부는, 상기 적어도 하나의 서비스영역 별로 상기 질의어에 대한 의도를 동시에 분석하여 적어도 하나의 의도분석추정결과를 생성하는 것을 특징으로 한다.
상기 서비스영역결정부는, 상기 적어도 하나의 서비스영역 별 신뢰도 점수와 상기 적어도 하나의 서비스영역 별로 생성된 의도분석추정결과의 신뢰도 점수를 이용하여 서비스영역별 신뢰도결과를 생성하고, 상기 서비스영역별 신뢰도결과 중 기 결정된 최종서비스영역과 동일한 서비스영역에서 추정된 신뢰도결과에 가중치를 부여하여 상기 최종서비스영역을 결정하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 제 2 관점에 따른 의도분석장치의 동작방법은, 질의어로부터 타겟키워드를 확인하는 질의어확인단계; 상기 타겟키워드를 기반으로 상기 질의어와 관련된 적어도 하나의 서비스영역을 검출하는 서비스영역검출단계; 및 상기 적어도 하나의 서비스영역 별로 상기 질의어에 대한 의도를 분석한 결과를 이용하여 상기 질의어와 관련된 최종서비스영역을 결정하는 서비스영역결정단계를 포함하는 것을 특징으로 한다.
상기 서비스영역결정단계는, 기 저장된 질의어집합정보에서, 상기 질의어와 동일한 매칭질의어가 검출되는 경우, 상기 매칭질의어와 관련된 서비스영역을 상기 최종서비스영역으로 결정하는 단계를 더 포함하는 것을 특징으로 한다.
상기 서비스영역결정단계는, 상기 적어도 하나의 서비스영역 별로 상기 질의어에 대한 의도를 동시에 분석하여 적어도 하나의 의도분석추정결과를 생성하는 단계를 포함하는 것을 특징으로 한다.
상기 서비스영역결정단계는, 상기 적어도 하나의 서비스영역 별 신뢰도 점수와 상기 적어도 하나의 서비스영역 별로 생성된 의도분석추정결과의 신뢰도 점수를 이용하여 서비스영역별 신뢰도결과를 생성하는 단계, 및 상기 서비스영역별 신뢰도결과 중 기 결정된 최종서비스영역과 동일한 서비스영역에서 추정된 신뢰도결과에 가중치를 부여하여 상기 최종서비스영역을 결정하는 단계를 포함하는 것을 특징으로 한다.
이에, 본 발명의 질의의도를 분석하기 위한 장치 및 방법에 의하면, 사용자가 입력한 질의어로부터 확인된 타겟키워드를 기반으로 질의어와 관련된 적어도 하나의 서비스영역을 검출하고, 검출된 적어도 하나의 서비스영역에서 동시에 질의어에 대한 의도를 분석한 결과에 기초하여 사용자가 의도하는 최종서비스영역을 결정함에 따라 서비스영역별로 NLU 모델이 구성되더라도 질의어와 관련된 적어도 하나의 서비스영역의 NLU 엔진만이 동시에 구동하여 분석을 수행하게 되므로 속도 저하를 최소화하면서도 분석 정확도를 향상시킬 수 있게 된다.
또한, 질의어로부터 타겟키워드를 확인하여 최종서비스영역을 결정하는 과정을 수행하기 이전에, 기 저장된 정보를 기반으로 동일한 질의어가 존재하는 지의 여부를 확인한 결과에 기초하여 최종서비스영역을 결정함에 따라 최종서비스영역을 결정하는 과정을 생략할 수 있어 최종서비스영역과 관련된 서비스 응답을 신속하게 제공할 수 있어 사용자 만족도를 향상시킬 수 있게 된다.
도 1은 본 발명의 바람직한 실시예에 따른 의도분석서버가 적용될 통신 환경을 보여주는 예시도이다.
도 2는 본 발명의 바람직한 실시예에 따른 의도분석서버의 구성을 보여주는 블록도이다.
도 3은 본 발명의 바람직한 실시예에 따른 의도분석서버에서 수행되는 사용자가 의도하는 최종서비스영역과 관련된 서비스 응답을 제공하는 동작 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.
먼저, 도 1을 참조하여 본 발명의 실시예가 적용될 통신 환경을 설명하도록 하겠다.
도 1에 도시된 바와 같이, 본 발명이 적용될 통신 환경은, 단말장치(100) 및 의도분석서버(200)를 포함할 수 있다.
단말장치(100)는, 사용자의 음성신호를 텍스트 형태의 문자신호로 변환하여 질의어를 생성하거나 또는 사용자가 직접 터치나 키보드 등을 통해 입력하는 텍스트 형태의 문자신호를 수신하여 질의어를 생성하는 디바이스일 수 있다.
예를 들어, 위 단말장치(100)로는 로봇, 스마트카, 스마트 폰, 태블릿 PC, 및 PDA 등이 해당될 수 있으며, 이에 제한되는 것이 아닌 음성 인터페이스를 통해 수신된 사용자의 음성신호를 문자신호로 변환할 수 음성인식 기능을 구비하고 있으며, 사용자가 직접 입력하는 문자신호를 획득하여 처리할 수 있는 장치는 모두 포함될 수 있다.
의도분석서버(200)는, 자연어 이해(Natural Language Understanding, 이하 NLU) 기술을 기반으로 단말장치(100)를 비롯한 다수 단말장치로부터 입력된 질의어를 수신하여 사용자의 의도와 관련된 서비스 응답을 제공하기 위한 서버로서, 특히 본 발명에서 제공하고자 하는 서비스 즉 질의어로부터 확인된 타겟키워드를 기반으로 질의어와 관련된 서비스영역을 동시에 분석한 결과에 기초하여 사용자가 의도하는 최종서비스영역과 관련된 서비스 응답을 제공할 수 있는 서비스(이하, 질의의도 분석 서비스)를 제공하기 위한 서버이다.
이처럼 본 발명에서 제안하는 질의의도 분석 서비스는, NLU 기술을 통해 지원 가능한 다수의 서비스영역 중 사용자가 입력한 질의어와 관련된 적어도 하나의 서비스영역을 검출하고, 검출된 적어도 하나의 서비스영역에서 동시에 질의어에 대한 의도를 분석한 결과에 기초하여 사용자가 의도하는 최종서비스영역을 결정할 수 있는, 기존 NLU 기술과 달리 NLU 모델이 서비스영역별 구성되더라도 질의어에 대한 의도를 신속하게 파악하면서도 정확도를 향상시킬 수 있는 새로운 개념의 서비스이다.
이하에서는, 도 2를 참조하여 본 발명의 바람직한 실시예에 따른 의도분석서버의 구성을 구체적으로 설명하겠다.
도 2에 도시된 바와 같이, 본 발명에 따른 의도분석서버(200)는, 질의어로부터 타겟키워드를 확인하는 질의어확인부(210), 타겟키워드를 기반으로 질의어와 관련된 적어도 하나의 서비스영역을 검출하는 서비스영역검출부(220) 및 적어도 하나의 서비스영역 별로 질의어에 대한 의도를 분석한 결과를 이용하여 질의어와 관련된 최종서비스영역을 결정하는 서비스영역결정부(230)를 포함하는 구성을 갖는다.
또한, 본 발명에 따른 의도분석서버(200)는, 단말장치(100)로부터 지금까지 수신된 질의어를 누적한 질의어집합정보, 사용자에 의해 기 결정된 최종서비스영역, NLU 기술을 통해 지원 가능한 다수의 서비스영역 등과 같이 질의의도 분석 서비스를 제공하는 과정에서 생성되는 모든 정보를 저장하는 저장부(240)를 더 포함하는 구성을 가질 수 있다.
이러한, 저장부(240)는, 메모리 데이터베이스(Memory DB)일 수 있으며, 메모리 제한이 발생할 수 있다. 즉, 저장부(240)는, 메모리가 허용하는 범위에서 분석 서비스를 제공하는 과정에서 생성되는 모든 정보를 추가하여 저장하되, 메모리 사용이 제한되는 경우에는 사용자 로그(Usage Log) 등을 통해 입력 빈도수가 높은 질의어(문장)나 정보를 우선적으로 추가하여 저장하게 된다. 또한, 입력 빈도수가 낮은 질의어나 정보는 메모리에서 제외하여 메모리 사용량을 유지할 수도 있다.
여기서, 다수의 서비스영역은, 음악영역, 주식영역, 스포츠영역, 날씨영역, 건강영역, 교육영역, 지식검색영역, 연예영역, 재태크영역 등과 같이 다양한 영역으로 구분될 수 있다.
이러한 의도분석서버(200)는, 본 발명의 질의어와 관련된 서비스영역을 동시에 분석한 결과에 기초하여 사용자가 의도하는 최종서비스영역과 관련된 서비스 응답을 제공하기 위한 구성을 갖는다.
이하의 설명에서는, 본 발명에 따른 의도분석서버(200) 내 각 기능부를 보다 구체적으로 설명하도록 하겠다.
질의어확인부(210)는, 질의어로부터 타겟키워드를 확인한다.
여기서, 질의어는, 사용자가 단말장치(100)를 통해 입력한 음성신호를 텍스트 형태의 문자신호로 변환하거나, 또는 사용자가 단말장치(100)의 화면을 터치하거나 키보드 등을 통해 직접 입력하는 텍스트 형태의 문자신호(예: 문장)일 수 있다.
이와 관련하여 단말장치(100)는, 사용자가 단말장치(100)를 통해 음성으로 "오늘 서울 날씨 어때"를 입력하면, 음성인식 기능을 통해 음성신호를 텍스트 형태의 문자신호로 변환하여 질의어를 생성하고 이를 의도분석서버(200)로 제공하게 된다.
동일하게, 사용자가 단말장치(100)를 통해 텍스트 형태의 문자신호를 직접 입력하면 변환과정 없이 입력된 문자신호를 질의어로 제공할 수 있음은 물론이다.
이처럼 단말장치(100)로부터 질의어가 수신되면, 질의어확인부(210)는, 질의어로부터 타겟키워드를 확인한다.
이때, 본 발명에서의 질의어는, 다수의 서비스영역 중 사용자가 의도하는 서비스영역과 관련도가 높은 타겟키워드와, 타겟키워드를 보조하는 보조키워드로 구분될 수 있다.
예를 들어, 단말장치(100)를 통해 수신된 질의어가 "오늘 서울 날씨 어때"인 경우, 타겟키워드는 사용자가 의도하는 서비스영역과 관련도가 높은 "날씨"가 될 것이며, 보조키워드는 타겟키워드를 제외한 나머지 키워드인 "오늘, 서울, 어때"로 구분될 것이다.
이에, 질의어확인부(210)는, 질의어로부터 사용자가 의도하는 서비스영역과 관련도가 높은 타겟키워드를 구분할 수 있게 된다. 이후, 질의어확인부(210)는, 질의어로부터 타겟키워드가 확인되었음을 서비스영역검출부(220)로 알린다.
서비스영역검출부(220)는, 타겟키워드를 기반으로 질의어와 관련된 서비스영역을 검출한다.
보다 구체적으로, 서비스영역검출부(220)는, NLU 기술을 통해 지원 가능한 다수의 서비스영역 중 어느 서비스영역이 타겟키워드와 관련도가 높은지를 판단하여 서비스영역을 검출한다.
예를 들어, 질의어가"오늘 서울 날씨 어때"로 입력되었을 때 타겟키워드가 "날씨"로 확인된 경우, 서비스영역검출부(220)는, 다수의 서비스영역 중 타겟키워드인 "날씨"와 관련도가 높은 서비스영역인 "날씨영역"을 서비스영역으로 검출하게 된다.
다른 예로, 질의어가 "오늘 삼성전자 주가가 얼마야"로 입력되었을 때 타겟키워드가 "주가"로 확인된 경우, 서비스영역검출부(220)는, 다수의 서비스영역 중 타겟키워드인 "주가"와 관련도가 높은 서비스영역인 "주식영역"을 서비스영역으로 검출하게 된다.
여기서, 본 발명의 다수의 서비스영역은, 토픽 모델(Topic Model), SVM(Support Vector Macine), DNN(Deep Neural Network) 등과 같은 기계학습방법에 의해 기 정의될 수 도 있으나, 이에 한정되지 않으며, 키워드, 정규표현식 등과 같은 다양한 패턴 기반의 규칙방법에 의해서도 정의될 수도 있다. 본 발명에서는 설명의 편의를 위해 다수의 서비스영역이 기계학습방법에 의해 정의된 것으로 가정한다.
또한, 다수의 서비스영역은, 확률모델을 통해 정의되는 과정에서 타겟키워드와의 관련도에 따라서 신뢰도 점수가 정의된다. 예를 들어, 확률모델을 통해 보았을 때 다수의 서비스영역 중에서 타겟키워드와의 관련도가 가장 높은 서비스영역에 가장 큰 신뢰도 점수가 할당되며, 타겟키워드와의 관련도가 가장 낮은 서비스영역에 가장 낮은 신뢰도 점수가 할당되게 된다.
한편, 서비스영역검출부(220)는, 정확성 향상을 위해 질의어의 타겟키워드와 관련도가 높은 서비스영역을 다수 개로 검출할 수도 있다.
보다 구체적으로, 질의어가 "오늘 삼성 어때?"로 입력되었을 때 타겟키워드가 "삼성"으로 확인된 경우, 서비스영역검출부(220)는, 타겟키워드인 "삼성"이 "삼성동"이나 "삼성전자"의 줄임말로 표현된 것일 수 있음을 고려하여 다수의 서비스영역 중 "삼성동"및 "삼성전자"와 관련된 서비스영역을 검출한다.
즉, 타겟키워드인 "삼성"이 "삼성동"의 줄임말인 경우, "오늘 삼성 어때?"는 삼성동의 날씨를 문의하는 질의어일 수 있음을 고려하여, 서비스영역검출부(220)는, 타겟키워드인 "삼성동"과 관련도가 높은 서비스영역인 "날씨영역"을 서비스영역(A1)로 검출한다.
이때, 타겟키워드인 "삼성"과 관련도가 높은 것으로 검출된 서비스영역인 "날씨영역"은 "삼성"과의 관련도에 따라서 신뢰도 점수가 (0.7)로 정의 될 수 있다.
한편, 타겟키워드인 "삼성"이 "삼성전자"의 줄임말인 경우, "오늘 삼성 어때?"는 삼성전자의 주가를 문의하는 질의어일 수 있음을 고려하여, 서비스영역검출부(220)는, 타겟키워드인 "삼성전자"와 관련도가 높은 서비스영역인 "주식영역"을 서비스영역(A2)으로 검출한다.
이때, 타겟키워드인 "삼성"과 관련도가 높은 것으로 검출된 서비스영역인 "주식영역"은 "삼성"과의 관련도에 따라서 신뢰도 점수가 (0.3)로 정의 될 수 있다.
A1: 서비스영역="날씨영역", 신뢰도 점수=0.7(삼성동 날씨 문의)
A2: 서비스영역="주식영역", 신뢰도 점수=0.3(삼성전자 주가 문의)
이처럼, 타겟키워드인 "삼성"을 기반으로 서비스영역인 "날씨영역"에서의 신뢰도 점수가 (0.7)이고, "주식영역"에서의 신뢰도 점수가 (0.3)으로 정의되는 것은, 확률모델을 통해 보았을 때 타겟키워드인 "삼성"이 주로 "날씨영역"에 대한 문의를 위한 질의어로 입력되었을 확률이 높은 것을 반영한 것일 수 있다.
전술과 같이 서비스영역검출부(220)는, 질의어에 포함된 타겟키워드가 다수의 의미로 해석될 수 있는 경우, 정확도 향상을 위해 타겟키워드와 관련된 적어도 하나의 서비스영역을 검출하게 된다.
이에, 본 발명에서는 질의어에 포함된 타겟키워드가 다수의 의미로 해석될 수 있음을 고려하여 적어도 하나의 타겟키워드와 관련된 서비스영역을 검출함에 따라 서비스영역이 잘못 검출될 확률을 감소시킬 수 있다.
이후, 서비스영역검출부(220)는, 타겟키워드와 관련된 적어도 하나의 서비스영역이 검출되었음을 서비스영역결정부(230)로 알린다.
서비스영역결정부(230)는, 적어도 하나의 서비스영역 별로 질의어에 대한 의도를 분석한 결과를 이용하여 질의어와 관련된 최종서비스영역을 결정한다.
보다 구체적으로, 서비스영역결정부(230)는, 적어도 하나의 서비스영역 별로 질의어에 대한 의도를 동시에 분석하여 적어도 하나의 의도분석추정결과를 생성한다.
즉, 서비스영역결정부(230)는, 적어도 하나의 서비스영역에 해당하는 영역별 NLU 엔진(도시하지 않음)을 구비한다.
이에, 적어도 하나의 서비스영역에 해당하는 NLU 엔진(도시하지 않음)을 멀티스레드(Multi-thread)와 같은 병렬 방식으로 동시에 구동하여 각 서비스영역 별로 질의어에 대한 의도를 분석하여 적어도 하나의 의도분석결과를 생성할 수 있게 되는 것이다.
예를 들어, 질의어가 "오늘 삼성 어때?"로 입력되었을 때 타겟키워드가 "삼성"으로 확인되었으며, 적어도 하나의 서비스영역이 "날씨영역"과 "주식영역"인 경우, "날씨영역"과 "주식영역"의 스레드(thread)를 생성하여 "날씨영역"에 해당하는 제1 NLU 엔진과 "주식영역"에 해당하는 제2 NLU 엔진을 동시에 구동하여 분석을 수행한다.
이처럼 병렬 방식으로 NLU 엔진을 구동하여 분석을 수행하기 위해서는 서비스영역 개수가 CPU 코어(Core)보다 많은 경우에는 병렬 방식으로 분석을 수행하더라도 대기 시간이 존재하기 때문에 느려지는 현상이 나타날 수 있게 된다. 이 경우에는 검출된 서비스영역 중 유효한 CPU 코어(Core) 수만큼만 분석을 수행한다.
즉, 검출된 서비스영역이 5개이고, CPU 코어(Core)가 3개인 경우, 검출된 5개의 서비스영역 중 신뢰도 점수가 높은 3개의 서비스영역만 선택하여 분석을 수행을 하고 나머지 2개의 서비스영역에 대해서는 분석을 수행하지 않는 것이다.
전술과 같이, 질의어가 "오늘 삼성 어때?"일 때, 서비스영역결정부(230)는, 제1 NLU 엔진을 통해 "날씨영역"에서 질의어인 "오늘 삼성 어때?"에 대한 의도를 분석하여 제1 의도분석결과(B1)를 생성하게 된다.
또한, 서비스영역결정부(230)는, 제2 NLU 엔진을 통해"주식영역"에서 질의어인 "오늘 삼성 어때?"에 대한 의도를 분석하여 제2 의도분석결과(B2)를 생성하게 된다.
B1: 제1 의도분석결과=Ask.WeatherInfo(DATE=오늘, LOCATION=삼성), 신뢰도 점수=0.8
B2: 제2 의도분석결과=Ask.StockInfo(DATE=오늘, STOCK=삼성), 신뢰도 점수=0.9
이처럼 적어도 하나의 서비스영역 별로 의도분석추정결과가 생성되면, 서비스영역결정부(230)는, 적어도 하나의 서비스영역 별로 생성된 의도분석추정결과를 이용하여 적어도 하나의 서비스영역 중 질의어와 관련된 최종서비스영역을 결정한다.
보다 구체적으로, 서비스영역결정부(230)는, 적어도 하나의 서비스영역 별 신뢰도 점수와 적어도 하나의 서비스영역 별로 생성된 의도분석추정결과의 신뢰도 점수를 이용하여 서비스영역별 신뢰도결과를 생성한다.
이어서, 서비스영역결정부(230)는, 서비스영역별 신뢰도결과 중 기 결정된 최종서비스영역과 동일한 서비스영역에서 추정된 신뢰도결과에 가중치를 부여하여 최종서비스영역을 결정한다.
예를 들어, 전술과 같이 질의어가 "오늘 삼성 어때?"일 때, 타겟키워드가 "삼성"으로 확인되어, 적어도 하나의 서비스영역으로 서비스영역(A1)인 "날씨영역"과 서비스영역(A2)인 "주식영역"이 검출되었으며, 서비스영역(A1)에 대응하는 제1 NLU 엔진을 통해 질의어인 "오늘 삼성 어때?"에 대한 의도를 분석하여 제1 의도분석결과(B1)가 생성되었으며, 서비스영역(A2)에 대응하는 제2 NLU 엔진을 통해 질의어인 "오늘 삼성 어때?"에 대한 의도를 분석하여 제2 의도분석결과(B2)가 생성된 경우로 언급하여 설명하도록 하겠다.
A1: 서비스영역="날씨영역", 신뢰도 점수=0.7(삼성동 날씨 문의)
A2: 서비스영역="주식영역", 신뢰도 점수=0.3(삼성전자 주가 문의)
B1: 제1 의도분석결과=Ask.WeatherInfo(DATE=오늘, LOCATION=삼성), 신뢰도 점수=0.8
B2: 제2 의도분석결과=Ask.StockInfo(DATE=오늘, STOCK=삼성), 신뢰도 점수=0.9
즉, 서비스영역결정부(230)는, 적어도 하나의 서비스영역으로 서비스영역(A1)인 "날씨영역"과 서비스영역(A2)인 "주식영역"이 검출되었으므로, 서비스영역(A1)인 "날씨영역"에서의 신뢰도 점수(0.7)와, 서비스영역(A1)인 "날씨영역"에서 질의어인 "오늘 삼성 어때?"에 대한 의도를 분석한 제1 의도분석결과(B1)의 신뢰도 점수(0.8)을 곱하여 서비스영역(A1)인 "날씨영역"에서의 새로운 제1 신뢰도 점수(0.56)을 산출한다.
동일하게, 서비스영역결정부(230)는, 서비스영역(A2)인 "주식영역"에서의 신뢰도 점수(0.3)와, 서비스영역(A2)인 "주식영역"에서 질의어인 "오늘 삼성 어때?"에 대한 의도를 분석한 제2 의도분석결과(B2)의 신뢰도 점수(0.9)을 곱하여 서비스영역(A2)인 "주식영역"에서의 새로운 제2 신뢰도 점수(0.27)을 산출한다.
이처럼 서비스영역결정부(230)는, 서비스영역(A1)에서 제1 신뢰도 점수(0.56)를 새롭게 산출하고 서비스영역(A2)에서 제2 신뢰도 점수(0.27)를 새롭게 산출하여 서비스영역별 신뢰도결과를 생성한다.
이후, 서비스영역결정부(230)는, 서비스영역별 신뢰도결과 중 기 결정된 최종서비스영역과 동일한 서비스영역에서 추정된 신뢰도결과에 가중치를 부여한다.
여기서, 기 결정된 최종서비스영역은, 사용자가 직전에 이용한 서비스영역일 수 있다. 본 발명에서는 기 결정된 최종서비스영역과 동일한 서비스영역에 가중치를 부여하였으나, 이에 한정되지 않으며, 사용 시간, 화면 등과 같은 사용자상태정보를 기반으로 가중치를 부여할 수도 있다.
즉, 기 결정된 최종서비스영역이 "날씨영역"이고, 가중치가 "2"인 경우, 서비스영역결정부(230)는, "날씨영역"인 서비스영역(A1)의 제1 신뢰도 점수(0.56)에 가중치(2)를 곱하여 제1 신뢰도 갱신 점수(1.12)를 산출한다.
이후, 서비스영역결정부(230)는, 가중치가 부여된 제1 신뢰도 갱신 점수(1.12)와 제2 신뢰도 점수(0.27)를 점수 순서로 정렬하고, 가장 높은 점수에 해당하는 제1 신뢰도 갱신 점수(1.12)를 갖는 서비스영역(A1)인 "날씨영역"을 최종서비스영역으로 결정한다.
이어서, 서비스영역결정부(230)는, 사용자가 입력한 "오늘 삼성 어때?"라는 질의어에 대한 의도가 최종서비스영역으로 결정된 "날씨영역"에 대한 문의인 것으로 판단하여 "날씨영역"과 관련된 서비스 응답을 제공하게 된다.
이때, 전술에서는 최종서비스영역을 결정하기 위해 서비스영역별 신뢰도결과에 가중치를 부여하는 휴리스틱 기법(heuristic method)을 이용하였으나, 이에 한정되지 않으며, 서비스영역별 신뢰도결과만을 이용하거나, 또는 가중치만을 별도로 부여하는 방식으로 최종서비스영역을 결정할 수도 있다. 또한, 그 외의 다수의 다양한 휴리스틱 기법을 적용해서도 최종서비스영역을 결정할 수 있음은 물론이다.
한편, 서비스영역결정부(230)는, 전술과 같이 질의어로부터 타겟키워드를 확인하여 최종서비스영역을 결정하는 과정을 수행하기 이전에, 저장부(240)에 기 저장된 질의어집합정보를 이용하여 질의어와 관련된 최종서비스영역을 결정할 수도 있다.
즉, 서비스영역결정부(230)는, 단말장치(100)로부터 질의어가 수신되면, 먼저 저장부(240)에 기 저장된 질의어집합정보 중 질의어와 동일한 매칭질의어가 존재하는지의 여부를 판단한다.
만일, 질의어와 동일한 매칭질의어가 존재하는 경우, 서비스영역결정부(230)는, 매칭질의어와 관련된 서비스영역을 최종서비스영역으로 결정하게 된다.
예를 들어, 단말장치(100)로부터 "오늘 서울 날씨 어때"라는 질의어를 수신하면, 서비스영역결정부(230)는, 저장부(240)에 기 저장된 질의어집합정보 중 "오늘 서울 날씨 어때"와 동일한 매칭질의어가 존재하는지의 여부를 판단하게 된다.
즉, 저장부(240)에 질의어인"오늘 서울 날씨 어때"와 동일한 매칭질의어 가 존재하면, 서비스영역결정부(230)는, 매칭질의어의 서비스영역인 "날씨영역"을 확인한다. 이후, 서비스영역결정부(230)는, 매칭질의어의 서비스영역인 "날씨영역"을 최종서비스영역으로 결정한다.
이때, 기 저장된 질의어집합정보에는, 각 질의어 별로 서비스영역이 매핑되어 있다. 이에, 서비스영역결정부(230)는, 저장부(240)에 질의어와 동일한 매칭질의어가 존재하면, 매칭질의어에 대한 서비스영역을 확인할 수 있는 것이다.
한편, 질의어와 동일한 매칭질의어가 존재하지 않는 경우, 서비스영역결정부(230)는, 질의어확인부(210)로 타겟키워드를 확인할 것을 요청하여 전술한 최종서비스영역을 결정하는 과정을 수행하게 된다.
이하에서는, 도 3을 참조하여 본 발명의 실시예에 따른 의도분석서버에서 수행되는 질의어와 관련된 서비스영역을 동시에 분석한 결과에 기초하여 사용자가 의도하는 최종서비스영역과 관련된 서비스 응답을 제공하는 동작 흐름을 구체적으로 설명하도록 한다. 이하에서는 설명의 편의를 위해 전술의 도 1 및 도 2에서 언급한 참조번호를 언급하여 설명하도록 하겠다.
도 3에 도시한 바와 같이, 본 발명의 실시예에 따른 의도분석서버(200)의 서비스영역결정부(230)는, 단말장치(100)로부터 질의어가 수신한다(S100).
이후, 서비스영역결정부(230)는, 질의어로부터 타겟키워드를 확인하여 최종서비스영역을 결정하는 과정을 수행하기 이전에, 저장부(240)에 기 저장된 질의어집합정보를 이용하여 질의어와 관련된 최종서비스영역을 결정한다.
보다 구체적으로, 서비스영역결정부(230)는, 단말장치(100)로부터 질의어가 수신되면, 저장부(240)에 기 저장된 질의어집합정보 중 질의어와 동일한 매칭질의어가 존재하는지의 여부를 판단한다(S110).
S110 단계의 판단결과, 기 저장된 질의어집합정보 중 질의어와 동일한 매칭질의어가 존재하면, 서비스영역결정부(230)는, 매칭질의어와 관련된 서비스영역을 최종서비스영역으로 결정하게 된다.
예를 들어, 단말장치(100)로부터 "오늘 서울 날씨 어때"라는 질의어를 수신하면, 서비스영역결정부(230)는, 저장부(240)에 기 저장된 질의어집합정보 중 "오늘 서울 날씨 어때"와 동일한 매칭질의어가 존재하는지의 여부를 판단하게 된다.
즉, 저장부(240)에 질의어인"오늘 서울 날씨 어때"와 동일한 매칭질의어 가 존재하면, 서비스영역결정부(230)는, 매칭질의어의 서비스영역인 "날씨영역"을 확인한다(S120). 이후, 서비스영역결정부(230)는, 매칭질의어의 서비스영역인 "날씨영역"을 최종서비스영역으로 결정한다(S130). 이후, 후술할 S180 단계의 과정을 동일하게 수행한다.
이때, 기 저장된 질의어집합정보에는, 각 질의어 별로 서비스영역이 매핑되어 있다. 이에, 서비스영역결정부(230)는, 저장부(240)에 질의어와 동일한 매칭질의어가 존재하면, 매칭질의어에 대한 서비스영역을 확인할 수 있는 것이다.
한편, S110 단계의 판단결과, 기 저장된 질의어집합정보 중 질의어와 동일한 매칭질의어가 존재하지 않으면, 서비스영역결정부(230)는, 서비스영역결정부(230)는, 질의어확인부(210)로 타겟키워드를 확인할 것을 요청하여 최종서비스영역을 결정하는 과정을 수행하게 된다.
이하에서는 타겟키워드를 확인하여 최종서비스영역을 결정하는 과정에 대하여 보다 구체적으로 설명하도록 하겠다.
질의어확인부(210)는, 질의어로부터 타겟키워드를 확인한다(S140).
여기서, 질의어는, 사용자가 단말장치(100)를 통해 입력한 음성신호를 텍스트 형태의 문자신호로 변환하거나, 또는 사용자가 단말장치(100)의 화면을 터치하거나 키보드 등을 통해 직접 입력하는 텍스트 형태의 문자신호(예: 문장)일 수 있다.
이와 관련하여 단말장치(100)는, 사용자가 단말장치(100)를 통해 음성으로 "오늘 서울 날씨 어때"를 입력하면, 음성인식 기능을 통해 음성신호를 텍스트 형태의 문자신호로 변환하여 질의어를 생성하고 이를 의도분석서버(200)로 제공하게 된다.
동일하게, 사용자가 단말장치(100)를 통해 텍스트 형태의 문자신호를 직접 입력하면 변환과정 없이 입력된 문자신호를 질의어로 제공할 수 있음은 물론이다.
이처럼 단말장치(100)로부터 질의어가 수신되면, 질의어확인부(210)는, 질의어로부터 타겟키워드를 확인한다.
이때, 본 발명에서의 질의어는, 다수의 서비스영역 중 사용자의 의도하는 서비스영역과 관련도가 높은 타겟키워드와, 타겟키워드를 보조하는 보조키워드로 구분될 수 있다.
예를 들어, 단말장치(100)를 통해 수신된 질의어가 "오늘 서울 날씨 어때"인 경우, 타겟키워드는 사용자가 의도하는 서비스영역과 관련도가 높은 "날씨"가 될 것이며, 보조키워드는 타겟키워드를 제외한 나머지 키워드인 "오늘, 서울, 어때"로 구분될 것이다.
이에, 질의어확인부(210)는, 질의어로부터 사용자가 의도하는 서비스영역과 관련도가 높은 타겟키워드를 구분할 수 있게 된다. 이후, 질의어확인부(210)는, 질의어로부터 타겟키워드가 확인되었음을 서비스영역검출부(220)로 알린다.
서비스영역검출부(220)는, 타겟키워드를 기반으로 질의어와 관련된 서비스영역을 검출한다(S150).
보다 구체적으로, 서비스영역검출부(220)는, NLU 기술을 통해 지원 가능한 다수의 서비스영역 중 어느 서비스영역이 타겟키워드와 관련도가 높은지를 판단하여 서비스영역을 검출한다.
예를 들어, 질의어가"오늘 서울 날씨 어때"로 입력되었을 때 타겟키워드가 "날씨"로 확인된 경우, 서비스영역검출부(220)는, 다수의 서비스영역 중 타겟키워드인 "날씨"와 관련도가 높은 서비스영역인 "날씨영역"을 서비스영역으로 검출하게 된다.
다른 예로, 질의어가 "오늘 삼성전자 주가가 얼마야"로 입력되었을 때 타겟키워드가 "주가"로 확인된 경우, 서비스영역검출부(220)는, 다수의 서비스영역 중 타겟키워드인 "주가"와 관련도가 높은 서비스영역인 "주식영역"을 서비스영역으로 검출하게 된다.
여기서, 본 발명의 다수의 서비스영역은, 토픽 모델(Topic Model), SVM(Support Vector Macine), DNN(Deep Neural Network) 등과 같은 기계학습방법에 의해 기 정의될 수 도 있으나, 이에 한정되지 않으며, 키워드, 정규표현식 등과 같은 다양한 패턴 기반의 규칙방법에 의해서도 정의될 수도 있다. 본 발명에서는 설명의 편의를 위해 다수의 서비스영역이 기계학습방법에 의해 정의된 것으로 가정한다.
또한, 다수의 서비스영역은, 확률모델을 통해 정의되는 과정에서 타겟키워드와의 관련도에 따라서 신뢰도 점수가 정의된다. 예를 들어, 확률모델을 통해 보았을 때 다수의 서비스영역 중에서 타겟키워드와의 관련도가 가장 높은 서비스영역에 가장 큰 신뢰도 점수가 할당되며, 타겟키워드와의 관련도가 가장 낮은 서비스영역에 가장 낮은 신뢰도 점수가 할당되게 된다.
한편, 서비스영역검출부(220)는, 정확성 향상을 위해 질의어의 타겟키워드와 관련도가 높은 서비스영역을 다수 개로 검출할 수도 있다.
보다 구체적으로, 질의어가 "오늘 삼성 어때?"로 입력되었을 때 타겟키워드가 "삼성"으로 확인된 경우, 서비스영역검출부(220)는, 타겟키워드인 "삼성"이 "삼성동"이나 "삼성전자"의 줄임말로 표현된 것일 수 있음을 고려하여 다수의 서비스영역 중 "삼성동"및 "삼성전자"와 관련된 서비스영역을 검출한다.
즉, 타겟키워드인 "삼성"이 "삼성동"의 줄임말인 경우, "오늘 삼성 어때?"는 삼성동의 날씨를 문의하는 질의어일 수 있음을 고려하여, 서비스영역검출부(220)는, 타겟키워드인 "삼성동"과 관련도가 높은 서비스영역인 "날씨영역"을 서비스영역(A1)로 검출한다.
이때, 타겟키워드인 "삼성"과 관련도가 높은 것으로 검출된 서비스영역인 "날씨영역"은 "삼성"과의 관련도에 따라서 신뢰도 점수가 (0.7)로 정의 될 수 있다.
한편, 타겟키워드인 "삼성"이 "삼성전자"의 줄임말인 경우, "오늘 삼성 어때?"는 삼성전자의 주가를 문의하는 질의어일 수 있음을 고려하여, 서비스영역검출부(220)는, 타겟키워드인 "삼성전자"와 관련도가 높은 서비스영역인 "주식영역"을 서비스영역(A2)으로 검출한다.
이때, 타겟키워드인 "삼성"과 관련도가 높은 것으로 검출된 서비스영역인 "주식영역"은 "삼성"과의 관련도에 따라서 신뢰도 점수가 (0.3)로 정의 될 수 있다.
A1: 서비스영역="날씨영역", 신뢰도 점수=0.7(삼성동 날씨 문의)
A2: 서비스영역="주식영역", 신뢰도 점수=0.3(삼성전자 주가 문의)
이처럼, 타겟키워드인 "삼성"을 기반으로 서비스영역인 "날씨영역"에서의 신뢰도 점수가 (0.7)이고, "주식영역"에서의 신뢰도 점수가 (0.3)으로 정의되는 것은, 확률모델을 통해 보았을 때 타겟키워드인 "삼성"이 주로 "날씨영역"에 대한 문의를 위한 질의어로 입력되었을 확률이 높은 것을 반영한 것일 수 있다.
전술과 같이 서비스영역검출부(220)는, 질의어에 포함된 타겟키워드가 다수의 의미로 해석될 수 있는 경우, 정확도 향상을 위해 타겟키워드와 관련된 적어도 하나의 서비스영역을 검출하게 된다.
이에, 본 발명에서는 질의어에 포함된 타겟키워드가 다수의 의미로 해석될 수 있음을 고려하여 적어도 하나의 타겟키워드와 관련된 서비스영역을 검출함에 따라 서비스영역이 잘못 검출될 확률을 감소시킬 수 있다.
이후, 서비스영역검출부(220)는, 타겟키워드와 관련된 적어도 하나의 서비스영역이 검출되었음을 서비스영역결정부(230)로 알린다.
서비스영역결정부(230)는, 적어도 하나의 서비스영역 별로 질의어에 대한 의도를 분석한 결과를 이용하여 질의어와 관련된 최종서비스영역을 결정한다.
보다 구체적으로, 서비스영역결정부(230)는, 적어도 하나의 서비스영역 별로 질의어에 대한 의도를 동시에 분석하여 적어도 하나의 의도분석추정결과를 생성한다(S160).
즉, 서비스영역결정부(230)는, 적어도 하나의 서비스영역에 해당하는 영역별 NLU 엔진(도시하지 않음)을 구비한다.
이에, 적어도 하나의 서비스영역에 해당하는 NLU 엔진(도시하지 않음)을 멀티스레드(Multi-thread)와 같은 병렬 방식으로 동시에 구동하여 각 서비스영역 별로 질의어에 대한 의도를 분석하여 적어도 하나의 의도분석결과를 생성할 수 있게 되는 것이다.
예를 들어, 질의어가 "오늘 삼성 어때?"로 입력되었을 때 타겟키워드가 "삼성"으로 확인되었으며, 적어도 하나의 서비스영역이 "날씨영역"과 "주식영역"인 경우, "날씨영역"과 "주식영역"의 스레드(thread)를 생성하여 "날씨영역"에 해당하는 제1 NLU 엔진과 "주식영역"에 해당하는 제2 NLU 엔진을 동시에 구동하여 분석을 수행한다.
이처럼 병렬 방식으로 NLU 엔진을 구동하여 분석을 수행하기 위해서는 서비스영역 개수가 CPU 코어(Core)보다 많은 경우에는 병렬 방식으로 분석을 수행하더라도 대기 시간이 존재하기 때문에 느려지는 현상이 나타날 수 있게 된다. 이 경우에는 검출된 서비스영역 중 유효한 CPU 코어(Core) 수만큼만 분석을 수행한다.
즉, 검출된 서비스영역이 5개이고, CPU 코어(Core)가 3개인 경우, 검출된 5개의 서비스영역 중 신뢰도 점수가 높은 3개의 서비스영역만 선택하여 분석을 수행을 하고 나머지 2개의 서비스영역에 대해서는 분석을 수행하지 않는 것이다.
전술과 같이, 질의어가 "오늘 삼성 어때?"일 때, 서비스영역결정부(230)는, 제1 NLU 엔진을 통해 "날씨영역"에서 질의어인 "오늘 삼성 어때?"에 대한 의도를 분석하여 제1 의도분석결과(B1)를 생성하게 된다.
또한, 서비스영역결정부(230)는, 제2 NLU 엔진을 통해"주식영역"에서 질의어인 "오늘 삼성 어때?"에 대한 의도를 분석하여 제2 의도분석결과(B2)를 생성하게 된다.
B1: 제1 의도분석결과=Ask.WeatherInfo(DATE=오늘, LOCATION=삼성), 신뢰도 점수=0.8
B2: 제2 의도분석결과=Ask.StockInfo(DATE=오늘, STOCK=삼성), 신뢰도 점수=0.9
이처럼 적어도 하나의 서비스영역 별로 의도분석추정결과가 생성되면, 서비스영역결정부(230)는, 적어도 하나의 서비스영역 별로 생성된 의도분석추정결과를 이용하여 적어도 하나의 서비스영역 중 질의어와 관련된 최종서비스영역을 결정한다(S170).
보다 구체적으로, 서비스영역결정부(230)는, 적어도 하나의 서비스영역 별 신뢰도 점수와 적어도 하나의 서비스영역 별로 생성된 의도분석추정결과의 신뢰도 점수를 이용하여 서비스영역별 신뢰도결과를 생성한다.
이어서, 서비스영역결정부(230)는, 서비스영역별 신뢰도결과 중 기 결정된 최종서비스영역과 동일한 서비스영역에서 추정된 신뢰도결과에 가중치를 부여하여 최종서비스영역을 결정한다.
예를 들어, 전술과 같이 질의어가 "오늘 삼성 어때?"일 때, 타겟키워드가 "삼성"으로 확인되어, 적어도 하나의 서비스영역으로 서비스영역(A1)인 "날씨영역"과 서비스영역(A2)인 "주식영역"이 검출되었으며, 서비스영역(A1)에 대응하는 제1 NLU 엔진을 통해 질의어인 "오늘 삼성 어때?"에 대한 의도를 분석하여 제1 의도분석결과(B1)가 생성되었으며, 서비스영역(A2)에 대응하는 제2 NLU 엔진을 통해 질의어인 "오늘 삼성 어때?"에 대한 의도를 분석하여 제2 의도분석결과(B2)가 생성된 경우로 언급하여 설명하도록 하겠다.
A1: 서비스영역="날씨영역", 신뢰도 점수=0.7(삼성동 날씨 문의)
A2: 서비스영역="주식영역", 신뢰도 점수=0.3(삼성전자 주가 문의)
B1: 제1 의도분석결과=Ask.WeatherInfo(DATE=오늘, LOCATION=삼성), 신뢰도 점수=0.8
B2: 제2 의도분석결과=Ask.StockInfo(DATE=오늘, STOCK=삼성), 신뢰도 점수=0.9
즉, 서비스영역결정부(230)는, 적어도 하나의 서비스영역으로 서비스영역(A1)인 "날씨영역"과 서비스영역(A2)인 "주식영역"이 검출되었으므로, 서비스영역(A1)인 "날씨영역"에서의 신뢰도 점수(0.7)와, 서비스영역(A1)인 "날씨영역"에서 질의어인 "오늘 삼성 어때?"에 대한 의도를 분석한 제1 의도분석결과(B1)의 신뢰도 점수(0.8)을 곱하여 서비스영역(A1)인 "날씨영역"에서의 새로운 제1 신뢰도 점수(0.56)을 산출한다.
동일하게, 서비스영역결정부(230)는, 서비스영역(A2)인 "주식영역"에서의 신뢰도 점수(0.3)와, 서비스영역(A2)인 "주식영역"에서 질의어인 "오늘 삼성 어때?"에 대한 의도를 분석한 제2 의도분석결과(B2)의 신뢰도 점수(0.9)을 곱하여 서비스영역(A2)인 "주식영역"에서의 새로운 제2 신뢰도 점수(0.27)을 산출한다.
이처럼 서비스영역결정부(230)는, 서비스영역(A1)에서 제1 신뢰도 점수(0.56)를 새롭게 산출하고 서비스영역(A2)에서 제2 신뢰도 점수(0.27)를 새롭게 산출하여 서비스영역별 신뢰도결과를 생성한다.
이후, 서비스영역결정부(230)는, 서비스영역별 신뢰도결과 중 기 결정된 최종서비스영역과 동일한 서비스영역에서 추정된 신뢰도결과에 가중치를 부여한다.
여기서, 기 결정된 최종서비스영역은, 사용자가 직전에 이용한 서비스영역일 수 있다. 본 발명에서는 기 결정된 최종서비스영역과 동일한 서비스영역에 가중치를 부여하였으나, 이에 한정되지 않으며, 사용 시간, 화면 등과 같은 사용자상태정보를 기반으로 가중치를 부여할 수도 있다.
즉, 기 결정된 최종서비스영역이 "날씨영역"이고, 가중치가 "2"인 경우, 서비스영역결정부(230)는, "날씨영역"인 서비스영역(A1)의 제1 신뢰도 점수(0.56)에 가중치(2)를 곱하여 제1 신뢰도 갱신 점수(1.12)를 산출한다.
이후, 서비스영역결정부(230)는, 가중치가 부여된 제1 신뢰도 갱신 점수(1.12)와 제2 신뢰도 점수(0.27)를 점수 순서로 정렬하고, 가장 높은 점수에 해당하는 제1 신뢰도 갱신 점수(1.12)를 갖는 서비스영역(A1)인 "날씨영역"을 최종서비스영역으로 결정한다.
이어서, 서비스영역결정부(230)는, 사용자가 입력한 "오늘 삼성 어때?"라는 질의어에 대한 의도가 최종서비스영역으로 결정된 "날씨영역"에 대한 문의인 것으로 판단하여 "날씨영역"과 관련된 서비스 응답을 제공하게 된다(S180).
이때, 전술에서는 최종서비스영역을 결정하기 위해 서비스영역별 신뢰도결과에 가중치를 부여하는 휴리스틱 기법(heuristic method)을 이용하였으나, 이에 한정되지 않으며, 서비스영역별 신뢰도결과만을 이용하거나, 또는 가중치만을 별도로 부여하는 방식으로 최종서비스영역을 결정할 수도 있다. 또한, 그 외의 다수의 다양한 휴리스틱 기법을 적용해서도 최종서비스영역을 결정할 수 있음은 물론이다.
이상에서 설명한 바와 같이, 본 발명에 따른 질의의도를 분석하기 위한 장치 및 방법에 따르면, 사용자가 입력한 질의어로부터 확인된 타겟키워드를 기반으로 질의어와 관련된 적어도 하나의 서비스영역을 검출하고, 검출된 적어도 하나의 서비스영역에서 동시에 질의어에 대한 의도를 분석한 결과에 기초하여 사용자가 의도하는 최종서비스영역을 결정함에 따라 서비스영역별로 NLU 모델이 구성되더라도 질의어와 관련된 적어도 하나의 서비스영역의 NLU 엔진만이 동시에 구동하여 분석을 수행하게 되므로 속도 저하를 최소화하면서도 분석 정확도를 향상시킬 수 있게 된다.
또한, 질의어로부터 타겟키워드를 확인하여 최종서비스영역을 결정하는 과정을 수행하기 이전에, 기 저장된 정보를 기반으로 동일한 질의어가 존재하는 지의 여부를 확인한 결과에 기초하여 최종서비스영역을 결정함에 따라 최종서비스영역을 결정하는 과정을 생략할 수 있어 최종서비스영역과 관련된 서비스 응답을 신속하게 제공할 수 있어 사용자 만족도를 향상시킬 수 있게 된다.
본 발명의 실시예들은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.
본 발명에 따른 질의의도를 분석하기 위한 장치 및 방법에 따르면, 사용자가 입력한 질의어로부터 확인된 타겟키워드를 기반으로 질의어와 관련된 적어도 하나의 서비스영역을 검출하고, 검출된 적어도 하나의 서비스영역에서 동시에 질의어에 대한 의도를 분석한 결과에 기초하여 사용자가 의도하는 최종서비스영역을 결정하여 서비스 응답을 제공한다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.
100 : 단말장치
200 : 서버
210 : 질의어확인부 220: 서비스영역검출부
230 : 서비스영역결정부 240 : 저장부

Claims (8)

  1. 질의어로부터 타겟키워드를 확인하는 질의어확인부;
    상기 타겟키워드를 기반으로 상기 질의어와 관련된 적어도 하나의 서비스영역을 검출하는 서비스영역검출부; 및
    상기 적어도 하나의 서비스영역 별로 상기 질의어에 대한 의도를 분석한 결과를 이용하여 상기 질의어와 관련된 최종서비스영역을 결정하는 서비스영역결정부
    를 포함하는 것을 특징으로 하는 의도분석장치.
  2. 제 1 항에 있어서,
    상기 서비스영역결정부는,
    기 저장된 질의어집합정보에서, 상기 질의어와 동일한 매칭질의어가 검출되는 경우, 상기 매칭질의어와 관련된 서비스영역을 상기 최종서비스영역으로 결정하는 것을 특징으로 하는 의도분석장치.
  3. 제 1 항에 있어서,
    상기 서비스영역결정부는,
    상기 적어도 하나의 서비스영역 별로 상기 질의어에 대한 의도를 동시에 분석하여 적어도 하나의 의도분석추정결과를 생성하는 것을 특징으로 하는 의도분석장치.
  4. 제 3 항에 있어서,
    상기 서비스영역결정부는,
    상기 적어도 하나의 서비스영역 별 신뢰도 점수와 상기 적어도 하나의 서비스영역 별로 생성된 의도분석추정결과의 신뢰도 점수를 이용하여 서비스영역별 신뢰도결과를 생성하고,
    상기 서비스영역별 신뢰도결과 중 기 결정된 최종서비스영역과 동일한 서비스영역에서 추정된 신뢰도결과에 가중치를 부여하여 상기 최종서비스영역을 결정하는 것을 특징으로 하는 의도분석장치.
  5. 질의어로부터 타겟키워드를 확인하는 질의어확인단계;
    상기 타겟키워드를 기반으로 상기 질의어와 관련된 적어도 하나의 서비스영역을 검출하는 서비스영역검출단계; 및
    상기 적어도 하나의 서비스영역 별로 상기 질의어에 대한 의도를 분석한 결과를 이용하여 상기 질의어와 관련된 최종서비스영역을 결정하는 서비스영역결정단계
    를 포함하는 것을 특징으로 하는 의도분석장치의 동작방법.
  6. 제 5 항에 있어서,
    상기 서비스영역결정단계는,
    기 저장된 질의어집합정보에서, 상기 질의어와 동일한 매칭질의어가 검출되는 경우, 상기 매칭질의어와 관련된 서비스영역을 상기 최종서비스영역으로 결정하는 단계를 더 포함하는 것을 특징으로 하는 의도분석장치의 동작방법.
  7. 제 5 항에 있어서,
    상기 서비스영역결정단계는,
    상기 적어도 하나의 서비스영역 별로 상기 질의어에 대한 의도를 동시에 분석하여 적어도 하나의 의도분석추정결과를 생성하는 단계를 포함하는 것을 특징으로 하는 의도분석장치의 동작방법.
  8. 제 7 항에 있어서,
    상기 서비스영역결정단계는,
    상기 적어도 하나의 서비스영역 별 신뢰도 점수와 상기 적어도 하나의 서비스영역 별로 생성된 의도분석추정결과의 신뢰도 점수를 이용하여 서비스영역별 신뢰도결과를 생성하는 단계, 및
    상기 서비스영역별 신뢰도결과 중 기 결정된 최종서비스영역과 동일한 서비스영역에서 추정된 신뢰도결과에 가중치를 부여하여 상기 최종서비스영역을 결정하는 단계를 포함하는 것을 특징으로 하는 의도분석장치의 동작방법.
KR1020150148834A 2015-10-26 2015-10-26 질의의도를 분석하기 위한 장치 및 방법 KR102280439B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150148834A KR102280439B1 (ko) 2015-10-26 2015-10-26 질의의도를 분석하기 위한 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150148834A KR102280439B1 (ko) 2015-10-26 2015-10-26 질의의도를 분석하기 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170048008A true KR20170048008A (ko) 2017-05-08
KR102280439B1 KR102280439B1 (ko) 2021-07-21

Family

ID=60163971

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150148834A KR102280439B1 (ko) 2015-10-26 2015-10-26 질의의도를 분석하기 위한 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102280439B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190066988A (ko) * 2017-12-06 2019-06-14 주식회사 케이티 Aiml 기반의 챗봇 시스템 및 챗봇 서비스 제공 방법
KR20190105478A (ko) * 2018-03-05 2019-09-17 에스케이네트웍스 주식회사 렌터카 서비스 방법 및 그 장치
KR102051890B1 (ko) * 2018-05-31 2019-12-06 주식회사 빅트리 챗봇 기반 응답 방법
CN111339239A (zh) * 2019-06-13 2020-06-26 海通证券股份有限公司 知识检索方法及装置、存储介质、服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100903499B1 (ko) * 2007-12-27 2009-06-18 엔에이치엔비즈니스플랫폼 주식회사 검색 의도 분류에 따른 광고 제공 방법 및 상기 방법을수행하기 위한 시스템
JP2011033680A (ja) * 2009-07-30 2011-02-17 Sony Corp 音声処理装置及び方法、並びにプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100903499B1 (ko) * 2007-12-27 2009-06-18 엔에이치엔비즈니스플랫폼 주식회사 검색 의도 분류에 따른 광고 제공 방법 및 상기 방법을수행하기 위한 시스템
JP2011033680A (ja) * 2009-07-30 2011-02-17 Sony Corp 音声処理装置及び方法、並びにプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190066988A (ko) * 2017-12-06 2019-06-14 주식회사 케이티 Aiml 기반의 챗봇 시스템 및 챗봇 서비스 제공 방법
KR20190105478A (ko) * 2018-03-05 2019-09-17 에스케이네트웍스 주식회사 렌터카 서비스 방법 및 그 장치
KR20190105476A (ko) * 2018-03-05 2019-09-17 에스케이네트웍스 주식회사 렌터카 서비스 장치 및 그 장치에서의 견적 제공 방법
KR102051890B1 (ko) * 2018-05-31 2019-12-06 주식회사 빅트리 챗봇 기반 응답 방법
CN111339239A (zh) * 2019-06-13 2020-06-26 海通证券股份有限公司 知识检索方法及装置、存储介质、服务器

Also Published As

Publication number Publication date
KR102280439B1 (ko) 2021-07-21

Similar Documents

Publication Publication Date Title
EP3491533B1 (en) Providing command bundle suggestions for an automated assistant
JP6657124B2 (ja) 会話理解システムのためのセッションコンテキストモデリング
CN107408385B (zh) 开发者语音动作系统
WO2020182122A1 (zh) 用于生成文本匹配模型的方法和装置
US9997157B2 (en) Knowledge source personalization to improve language models
JP5241379B2 (ja) 対話システムにおける統計的分類のための最適な選択戦略の方法及びシステム
JP2019535037A (ja) コンピュータによるエージェントのための合成音声の選択
KR20180005850A (ko) 자동 통역 방법 및 장치, 및 기계 번역 방법 및 장치
CN111159364B (zh) 对话系统、对话装置、对话方法以及存储介质
JP2018506113A (ja) ユーザーエクスペリエンスを向上させるためにあいまいな表現を弁別すること
KR20170033722A (ko) 사용자의 발화 처리 장치 및 방법과, 음성 대화 관리 장치
JP2015511746A5 (ko)
KR101832816B1 (ko) 질의에 대한 응답 생성 장치 및 방법
JP2010537321A (ja) 統計的分類のための最適な選択方略の方法及びシステム
US11289075B1 (en) Routing of natural language inputs to speech processing applications
US11532301B1 (en) Natural language processing
JP6370962B1 (ja) 生成装置、生成方法および生成プログラム
US11398226B1 (en) Complex natural language processing
KR102280439B1 (ko) 질의의도를 분석하기 위한 장치 및 방법
KR20210098880A (ko) 차량용 기기의 음성 처리 방법, 장치, 기기 및 저장 매체
JP7058574B2 (ja) 情報処理装置、情報処理方法、およびプログラム
KR20150077580A (ko) 음성 인식 기반 서비스 제공 방법 및 그 장치
US11626107B1 (en) Natural language processing
US20210110824A1 (en) Electronic apparatus and controlling method thereof
JP7096199B2 (ja) 情報処理装置、情報処理方法、およびプログラム

Legal Events

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