KR20230146898A - 대화 처리 방법 및 대화 시스템 - Google Patents

대화 처리 방법 및 대화 시스템 Download PDF

Info

Publication number
KR20230146898A
KR20230146898A KR1020220045893A KR20220045893A KR20230146898A KR 20230146898 A KR20230146898 A KR 20230146898A KR 1020220045893 A KR1020220045893 A KR 1020220045893A KR 20220045893 A KR20220045893 A KR 20220045893A KR 20230146898 A KR20230146898 A KR 20230146898A
Authority
KR
South Korea
Prior art keywords
user
intent
utterance
scores
classification result
Prior art date
Application number
KR1020220045893A
Other languages
English (en)
Inventor
김지훈
Original Assignee
현대자동차주식회사
기아 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 현대자동차주식회사, 기아 주식회사 filed Critical 현대자동차주식회사
Priority to KR1020220045893A priority Critical patent/KR20230146898A/ko
Priority to US18/132,630 priority patent/US20230335120A1/en
Priority to DE102023109210.3A priority patent/DE102023109210A1/de
Priority to CN202310397708.4A priority patent/CN116910194A/zh
Publication of KR20230146898A publication Critical patent/KR20230146898A/ko

Links

Images

Classifications

    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/353Clustering; Classification into predefined classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • 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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • 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/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • 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/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

일 실시예에 따른 대화 처리 방법은, 학습된 인텐트 분류 모델을 이용하여 사용자의 음성 명령에 대한 인텐트 분류 결과를 획득하는 단계; 상기 사용자의 발화 내역 정보를 획득하는 단계; 및 상기 사용자의 발화 내역 정보에 기초하여 상기 인텐트 분류 결과를 조정하는 단계;를 포함하고, 상기 인텐트 분류 결과는, 미리 정의된 복수의 인텐트 각각에 대한 스코어들을 포함하고, 상기 인텐트 분류 결과를 조정하는 단계는, 상기 사용자의 발화 내역 정보에 기초하여 상기 미리 정의된 복수의 인텐트 각각에 대한 스코어들을 조정하는 것을 포함한다.

Description

대화 처리 방법 및 대화 시스템{METHOD FOR PROCESSING DIALOGUE AND DIALOGUE SYSTEM}
개시된 발명은 사용자와의 대화를 통해 사용자의 의도를 파악할 수 있는 대화 처리 방법 및 대화 시스템에 관한 것이다.
대화 시스템은 사용자와의 대화를 통해 사용자 의도를 파악할 수 있는 장치이다. 이러한 대화 시스템은 차량, 모바일 기기, 가전 기기 등 일상 생활에서 사용되는 다양한 전자 장치와 연결되어 사용자의 발화에 대응되는 다양한 기능들이 수행될 수 있도록 한다.
대화 시스템이 사용자의 발화로부터 의도를 파악하기 위해서는, 자연어로 이루어진 사용자의 발화를 처리해야 한다. 자연어는 인간이 일상생활에서의 의사 소통을 위해 사용하는 언어를 지칭하는 것으로서, 컴퓨터 프로그래밍 언어와 같은 인공 언어(Artificial Language 또는 Constructed Language)에 대비되는 개념이다.
대화 시스템이 자연어로 이루어진 사용자의 발화를 처리하기 위해, 자연어 이해(NLU: Natural Language Understanding) 기술을 적용할 수 있다. 또한, 최근에는 자연어 이해 기술을 구현하기 위해 머신 러닝 또는 딥 러닝에 의해 학습된 모델을 이용할 수 있다.
한편, 학습된 모델을 이용하여 사용자의 발화에 대한 도메인이나 인텐트를 분류하고 슬롯을 태깅하는 경우, 그 결과가 학습 데이터에 따라 편향될 수 있다. 따라서, 사용자의 실제 의도와 다른 결과가 출력되는 경우가 발생할 수 있다.
개시된 발명은 사용자 별 발화 내역에 기초하여 인텐트 분류 모델의 출력을 조정함으로써, 사용자의 발화에 대한 인텐트 분류 결과가 학습 데이터에 편향되어 사용자의 실제 의도와 다른 결과가 출력되는 것을 최소화할 수 있는 대화 처리 방법 및 대화 관리 시스템을 제공한다.
일 실시예에 따른 대화 처리 방법은, 학습된 인텐트 분류 모델을 이용하여 사용자의 음성 명령에 대한 인텐트 분류 결과를 획득하는 단계; 상기 사용자의 발화 내역 정보를 획득하는 단계; 및 상기 사용자의 발화 내역 정보에 기초하여 상기 인텐트 분류 결과를 조정하는 단계;를 포함하고, 상기 인텐트 분류 결과는, 미리 정의된 복수의 인텐트 각각에 대한 스코어들을 포함하고, 상기 인텐트 분류 결과를 조정하는 단계는, 상기 사용자의 발화 내역 정보에 기초하여 상기 미리 정의된 복수의 인텐트 각각에 대한 스코어들을 조정하는 것을 포함한다.
상기 사용자의 발화 내역 정보는, 상기 사용자가 음성 명령의 발화를 통해 이용한 인텐트의 빈도에 관한 정보를 포함할 수 있다.
상기 인텐트 분류 결과를 조정하는 단계는, 상기 미리 정의된 복수의 인텐트 중에서, 상기 사용자가 음성 명령을 통해 이용한 빈도가 높은 인텐트일 수록 높은 스코어를 갖도록 조정하는 것을 포함할 수 있다.
상기 인텐트 분류 결과를 조정하는 단계는, 상기 미리 정의된 복수의 인텐트 중에서, 상기 사용자가 음성 명령의 발화를 통해 이용한 빈도가 높은 인텐트의 스코어에 높은 가중치를 부여하여 상기 스코어들을 재계산하는 것을 포함할 수 있다.
상기 인텐트 분류 결과를 조정하는 단계는, 상기 미리 정의된 복수의 인텐트에 대한 스코어들 중에서, 임계값 미만인 스코어는 감소시키고 상기 사용자가 음성 명령의 발화를 통해 이용한 빈도가 높은 인텐트에 대한 스코어는 증가시키는 것을 포함할 수 있다.
상기 임계값 미만인 스코어의 감소량과 상기 사용자가 음성 명령의 발화를 통해 이용한 빈도가 높은 인텐트에 대한 스코어의 증가량은 서로 비례할 수 있다.
상기 사용자의 발화 내역 정보는, 상기 사용자의 음성 명령의 발화 시간 또는 상기 사용자의 음성 명령의 발화 장소에 관한 정보 중 적어도 하나를 더 포함할 수 있다.
상기 인텐트 분류 결과를 조정하는 단계는, 상기 미리 정의된 복수의 인텐트 중에서, 현재 발화 시간 또는 현재 발화 장소에 매칭되는 발화 시간 또는 발화 장소에서 이용한 빈도가 높은 인텐트의 스코어에 높은 가중치를 부여하여 상기 스코어들을 재계산하는 것을 포함할 수 있다.
상기 인텐트 분류 결과를 조정하는 단계는, 상기 조정된 스코어들 중에서 가장 높은 스코어를 갖는 인텐트를 상기 사용자의 음성 명령에 대한 최종 인텐트로 결정하고, 상기 최종 인텐트에 기초하여 상기 사용자의 음성 명령에 대한 슬롯 태깅을 수행하는 것을 포함할 수 있다.
상기 방법은, 상기 조정된 인텐트 분류 결과에 기초하여 시스템 응답을 생성하는 단계; 및 상기 생성된 시스템 응답을 사용자 단말에 전송하는 단계;를 더 포함할 수 있다.
일 실시예에 따른 대화 처리 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체에 있어서, 상기 대화 처리 방법은, 학습된 인텐트 분류 모델을 이용하여 사용자의 음성 명령에 대한 인텐트 분류 결과를 획득하는 단계; 상기 사용자의 발화 내역 정보를 획득하는 단계; 및 상기 사용자의 발화 내역 정보에 기초하여 상기 인텐트 분류 결과를 조정하는 단계;를 포함하고, 상기 인텐트 분류 결과는, 미리 정의된 복수의 인텐트 각각에 대한 스코어들을 포함하고, 상기 인텐트 분류 결과를 조정하는 단계는, 상기 사용자의 발화 내역 정보에 기초하여 상기 미리 정의된 복수의 인텐트 각각에 대한 스코어들을 조정한다.
상기 사용자의 발화 내역 정보는, 상기 사용자가 음성 명령의 발화를 통해 이용한 인텐트의 빈도에 관한 정보를 포함할 수 있다.
상기 인텐트 분류 결과를 조정하는 단계는, 상기 미리 정의된 복수의 인텐트 중에서, 상기 사용자가 음성 명령을 통해 이용한 빈도가 높은 인텐트일 수록 높은 스코어를 갖도록 조정하는 것을 포함할 수 있다.
상기 인텐트 분류 결과를 조정하는 단계는, 상기 미리 정의된 복수의 인텐트 중에서, 상기 사용자가 음성 명령의 발화를 통해 이용한 빈도가 높은 인텐트의 스코어에 높은 가중치를 부여하여 상기 스코어들을 재계산하는 것을 포함할 수 있다.
상기 인텐트 분류 결과를 조정하는 단계는, 상기 미리 정의된 복수의 인텐트에 대한 스코어들 중에서, 임계값 미만인 스코어는 감소시키고 상기 사용자가 음성 명령의 발화를 통해 이용한 빈도가 높은 인텐트에 대한 스코어는 증가시키는 것을 포함할 수 있다.
상기 임계값 미만인 스코어의 감소량과 상기 사용자가 음성 명령의 발화를 통해 이용한 빈도가 높은 인텐트에 대한 스코어의 증가량은 서로 비례할 수 있다.
상기 사용자의 발화 내역 정보는, 상기 사용자의 음성 명령의 발화 시간 또는 상기 사용자의 음성 명령의 발화 장소에 관한 정보 중 적어도 하나를 더 포함할 수 있다.
상기 인텐트 분류 결과를 조정하는 단계는, 상기 미리 정의된 복수의 인텐트 중에서, 현재 발화 시간 또는 현재 발화 장소에 매칭되는 발화 시간 또는 발화 장소에서 이용한 빈도가 높은 인텐트의 스코어에 높은 가중치를 부여하여 상기 스코어들을 재계산하는 것을 포함할 수 있다.
상기 인텐트 분류 결과를 조정하는 단계는, 상기 조정된 스코어들 중에서 가장 높은 스코어를 갖는 인텐트를 상기 사용자의 음성 명령에 대한 최종 인텐트로 결정하고, 상기 최종 인텐트에 기초하여 상기 사용자의 음성 명령에 대한 슬롯 태깅을 수행하는 것을 포함할 수 있다.
상기 방법은, 상기 조정된 인텐트 분류 결과에 기초하여 시스템 응답을 생성하는 단계; 및 상기 생성된 시스템 응답을 사용자 단말에 전송하는 단계;를 더 포함할 수 있다.
일 측면에 따른 대화 처리 방법 및 대화 관리 시스템에 의하면, 사용자 별 발화 내역에 기초하여 인텐트 분류 모델의 출력을 조정함으로써, 사용자의 발화에 대한 인텐트 분류 결과가 학습 데이터에 편향되어 사용자의 실제 의도와 다른 결과가 출력되는 것을 최소화할 수 있다.
도 1 은 일 실시예에 따른 대화 시스템의 동작을 나타내는 블록도이다.
도 2는 일 실시예에 따른 사용자 단말의 동작을 나타내는 블록도이다.
도 3 및 도 4는 일 실시예에 따른 대화 시스템과 사용자 단말의 상호 관계를 나타내는 도면이다.
도 5는 일 실시예에 따른 대화 시스템에 있어서 각각의 모듈에서 수행되는 동작을 나타낸 블록도이다.
도 6은 일 실시예에 따른 대화 시스템의 자연어 이해 모듈에 적용되는 분류 모델의 구조를 개략적으로 나타낸 도면이다.
도 7 내지 도 10은 대화 시스템의 사용자가 음성 명령을 발화했을 때 실제 사용자의 의도에 대응되지 않는 시스템 응답이 생성된 경우를 나타내는 도면이다.
도 11은 일 실시예에 따른 대화 처리 방법에 관한 순서도이다.
도 12는 일 실시예에 따른 대화 관리 시스템에 저장되는 발화 내역 DB를 나타낸 도면이다.
도 13은 발화 내역 DB로부터 얻을 수 있는 정보를 나타낸 도면이다.
도 14 및 도 15는 일 실시예에 따른 대화 시스템 및 대화 처리 방법에 의해 출력되는 인텐트 분류 결과의 예시를 나타낸 도면이다.
본 명세서에 기재된 실시예와 도면에 도시된 구성은 개시된 발명의 바람직한 일 예이며, 본 출원의 출원시점에 있어서 본 명세서의 실시예와 도면을 대체할 수 있는 다양한 변형 예들이 있을 수 있다.
또한, 본 명세서의 각 도면에서 제시된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다.
또한, 본 명세서에서 사용한 용어는 실시예를 설명하기 위해 사용된 것으로, 개시된 발명을 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다", "구비하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는다.
또한, 본 명세서에서 사용한 "제1", "제2" 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되지는 않으며, 상기 용어들은 하나의 구성 요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1구성 요소는 제2구성 요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1구성 요소로 명명될 수 있다. "및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
또한, "~부", "~기", "~블록", "~부재", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어, 상기 용어들은 FPGA(field-programmable gate array)/ASIC(application specific integrated circuit) 등 적어도 하나의 하드웨어, 메모리에 저장된 적어도 하나의 소프트웨어 또는 프로세서에 의하여 처리되는 적어도 하나의 프로세스를 의미할 수 있다.
각 단계들에 붙여지는 부호는 각 단계들을 식별하기 위해 사용되는 것으로 이들 부호는 각 단계들 상호 간의 순서를 나타내는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
명세서에서 요소들의 리스트를 언급할 때 사용되는 "적어도 하나의~"의 표현은, 요소들의 조합을 변경할 수 있다. 예를 들어, "a, b, 또는 c 중 적어도 하나"의 표현은 오직 a, 오직 b, 오직 c, a 와 b 둘, a와 c 둘, b와 c 둘, 또는 a, b, c 모두의 조합을 나타내는 것으로 이해될 수 있다.
이하에서는 첨부된 도면을 참조하여 일 측면에 따른 대화 시스템 및 대화 처리 방법의 실시예를 상세하게 설명하도록 한다.
도 1 은 일 실시예에 따른 대화 시스템의 동작을 나타내는 블록도이다.
도 1을 참조하면, 일 실시예에 따른 대화 시스템(1)은 사용자의 음성 명령을 텍스트로 변환하는 음성 인식 모듈(110), 변환된 텍스트에 기초하여 음성 명령에 대한 도메인이나 인텐트를 분류하고, 엔티티 추출 및 슬롯 태깅을 수행하는 자연어 이해 모듈(120), 자연어 이해 모듈(120)의 출력에 기초하여 음성 명령에 대응되는 시스템 응답을 생성하는 컨트롤 모듈(130), 사용자의 발화 내역을 저장하는 스토리지(140) 및 사용자 단말과 통신하는 통신 모듈(150)을 포함한다.
음성 인식 모듈(110)은 STT(Speech to Text) 엔진으로 구현될 수 있고, 사용자의 발화에 음성 인식(speech recognition) 알고리즘을 적용하여 텍스트로 변환할 수 있다.
예를 들어, 음성 인식 모듈(110)은 켑스트럼(Cepstrum), 선형 예측 코딩(Linear Predictive Coefficient: LPC), 멜프리퀀시켑스트럼(Mel Frequency Cepstral Coefficient: MFCC) 또는 필터 뱅크 에너지(Filter Bank Energy) 등의 특징 벡터 추출 기술을 적용하여 사용자 발화에서 특징 벡터를 추출할 수 있다.
그리고, 추출된 특징 벡터와 훈련된 기준 패턴과의 비교를 통하여 인식 결과를 얻을 수 있다. 이를 위해, 음성의 신호적인 특성을 모델링하여 비교하는 음향 모델(Acoustic Model) 또는 인식 어휘에 해당하는 단어나 음절 등의 언어적인 순서 관계를 모델링하는 언어 모델(Language Model)이 사용될 수 있다.
또한, 음성 인식 모듈(110)은 머신 러닝 또는 딥 러닝에 의해 학습된 학습 모델에 기반하여 음성 명령을 텍스트로 변환하는 것도 가능하다. 당해 실시예에서는 음성 인식 모듈(110)이 음성 명령을 텍스트로 변환하는 방식에 대해서는 제한을 두지 않는바, 음성 인식 모듈(110)은 전술한 방식 외에도 다양한 음성 인식 기술을 적용하여 음성 명령을 텍스트로 변환할 수 있다.
자연어 이해 모듈(120)은 텍스트에 포함된 사용자 의도를 판단하기 위해 자연어 이해(Natural Language Understanding: NLU) 기술을 적용할 수 있다. 따라서, 자연어 이해 모듈(120)에는 입력 문장에 대해 NLU 기술을 적용하여 사용자 의도를 판단하는 NLU 엔진이 포함될 수 있다. 여기서, 음성 인식 모듈(110)이 출력한 텍스트가 자연어 이해 모듈(120)에 입력되는 입력 문장이 될 수 있다.
예를 들어, 자연어 이해 모듈(120)은 입력 문장으로부터 개체명(Named Entity)을 인식할 수 있다. 개체명은 인명, 지명, 조직명, 시간, 날짜, 화폐 등의 고유 명사로서, 개체명 인식(NER: Named Entity Recognition)은 문장에서 개체명을 식별하고 식별된 개체명의 타입을 결정하는 작업이다. 개체명 인식을 통해 문장에서 중요한 키워드를 추출하여 문장의 의미를 파악할 수 있다.
또한, 자연어 이해 모듈(120)은 입력 문장으로부터 도메인을 결정할 수 있다. 도메인은 사용자 발화의 주제를 식별할 수 있는 것으로서, 예를 들어, 차량 제어, 일정, 날씨 또는 교통 상황 등에 관한 정보 제공, 문자 송신, 내비게이션, 음악 등의 다양한 주제를 나타내는 도메인이 입력 문장에 기초하여 결정될 수 있다.
또한, 자연어 이해 모듈(120)은 입력 문장에 대응되는 인텐트(intent)를 분류할 수 있고, 해당 인텐트를 수행하는데 필요한 엔티티(entity)를 추출할 수 있다.
예를 들어, 입력 문장이 "에어컨 켜줘"인 경우 도메인은 [차량 제어]가 되고, 인텐트는 [turn on_air conditioner]가 될 수 있고, 인텐트에 대응되는 제어를 수행하기 위해 필요한 엔티티는 [온도, 풍량]이 될 수 있다.
다만, 대화 시스템마다 사용되는 용어 및 그 정의가 달라질 수 있다. 따라서, 개시된 실시예와 다른 용어를 사용하더라도 그 의미나 대화 시스템 내에서의 역할이 동일 또는 유사하면 개시된 발명의 범위에 포함될 수 있다.
전술한 바와 같이 자연어 이해 모듈(120)이 입력 문장으로부터 인텐트, 도메인, 엔티티 등의 필요한 정보를 추출하는 동작은 머신 러닝 또는 딥 러닝 기반의 학습 모델(이하, 인텐트 분류 모델이라 함)을 이용하여 이루어질 수 있다.
일 실시예에 따른 대화 시스템(1)에서는 스토리지(140)에 저장된 사용자의 발화 내역에 기초하여 인텐트 분류 결과를 조정할 수 있다. 이와 관련된 설명은 후술하기로 한다.
컨트롤 모듈(130)은 사용자의 의도에 대응되는 서비스를 제공하기 위해, 사용자의 음성 명령에 대응되는 시스템 응답을 생성할 수 있다. 시스템 응답은 음성 명령에 대한 시스템 발화와 음성 명령에 대응되는 인텐트의 실행을 위한 신호를 포함할 수 있다.
통신 모듈(150)은 기지국(base station) 또는 액세스 포인트(AP)와 무선으로 통신할 수 있으며, 기지국 또는 액세스 포인트를 거쳐 외부 장치들과 데이터를 주고 받을 수 있다.
예를 들어, 통신 모듈(150)은 와이파이(WiFi?, IEEE 802.11 기술 표준)을 이용하여 액세스 포인트(AP)와 무선으로 통신하거나, CDMA, WCDMA, GSM, LTE(Long Term Evolution), 5G, 와이브로 등을 이용하여 기지국과 통신할 수 있다.
대화 시스템(1)은 전술한 동작 및 후술하는 동작을 수행하기 위한 프로그램이 저장된 적어도 하나의 메모리 및 저장된 프로그램을 실행하기 위한 적어도 하나의 프로세서를 포함할 수 있다.
음성 인식 모듈(110), 자연어 이해 모듈(120) 및 컨트롤 모듈(130)이 각각 별도의 메모리와 프로세서를 사용하는 것도 가능하고, 메모리와 프로세서를 공유하는 것도 가능하다.
즉, 음싱 인식 모듈(110), 자연어 이해 모듈(120) 및 컨트롤 모듈(130)은 각각 동작을 기준으로 구분된 것으로서 물리적으로 구분되는 구성요소들을 나타내는 것이 아니다. 따라서, 전술하거나 후술하는 음성 인식 모듈(110), 자연어 이해 모듈(120) 또는 컨트롤 모듈(130)의 동작을 수행하는 것이면, 이를 지칭하는 명칭에 관계없이 개시된 발명의 범위에 포함될 수 있다.
또한, 스토리지(140) 역시 음성 인식 모듈(110), 자연어 이해 모듈(120) 및 컨트롤 모듈(130)의 동작을 수행하는 프로그램이 저장된 메모리와 다른 별도의 메모리를 사용하는 것도 가능하고, 동일한 메모리를 공유하는 것도 가능하다.
도 2는 일 실시예에 따른 사용자 단말의 동작을 나타내는 블록도이고, 도 3 및 도 4는 일 실시예에 따른 대화 시스템과 사용자 단말의 상호 관계를 나타내는 도면이다.
일 실시예에 따른 사용자 단말(2)은 사용자와 대화 시스템(1) 사이의 게이트 웨이 역할을 수행할 수 있다. 예를 들어, 사용자 단말(2)은 스마트폰, 태플릿 PC, 랩탑 PC 등의 모바일 기기, 스마트 워치, 스마트 글래스 등의 웨어러블 기기, 마이크와 스피커를 구비한 TV, 냉장고, 에어컨, 공기 청정기, 청소기, 세탁기 등의 가전 기기 또는 AI 스피커일 수 있다.
또는, 차량이 사용자 단말이 될 수도 있다. 차량에 마련된 마이크를 통해 사용자의 음성 명령이 입력되고 차량에 마련된 통신 모듈을 통해 음성 명령이 대화 시스템(1)으로 전송될 수 있다.
또한, 대화 시스템(1)으로부터 시스템 응답이 전송되면, 차량에 마련된 스피커 또는 디스플레이를 제어하거나 차량의 다른 구성요소들을 제어함으로써 시스템 응답에 대응되는 처리를 수행할 수 있다.
도 2를 참조하면, 사용자 단말(2)은 마이크(210), 스피커(220), 디스플레이(230), 통신 모듈(240), 컨트롤러(250) 및 입력 장치(260)를 포함할 수 있다.
통신 모듈(240)은 외부 장치들과 무선으로 데이터를 주고받는 무선 통신 모듈을 포함할 수 있다. 또한, 외부 장치들과 유선으로 데이터를 주고받는 유선 통신 모듈을 더 포함하는 것도 가능하다.
유선 통신 모듈은 USB 단자 또는 AUX 단자를 통해 연결된 외부 장치와 데이터를 주고 받을 수 있다.
무선 통신 모듈은 기지국(base station) 또는 액세스 포인트(AP)와 무선으로 통신할 수 있으며, 기지국 또는 액세스 포인트를 거쳐 외부 장치들과 데이터를 주고 받을 수 있다.
예를 들어, 무선 통신 모듈은 와이파이(WiFi?, IEEE 802.11 기술 표준)을 이용하여 액세스 포인트(AP)와 무선으로 통신하거나, CDMA, WCDMA, GSM, LTE(Long Term Evolution), 5G, 와이브로 등을 이용하여 기지국과 통신할 수 있다.
뿐만 아니라, 무선 통신 모듈은 외부 장치들과 직접 통신하는 것도 가능하다. 예를 들어, 무선 통신 모듈은 와이파이 다이렉트, 블루투스 (Bluetooth?, IEEE 802.15.1 기술 표준), 지그비(ZigBee?, IEEE 802.15.4 기술 표준) 등을 이용하여 근거리의 외부 장치들과 데이터를 주고 받을 수 있다.
예를 들어, 사용자 단말(2)이 차량으로 구현되는 경우, 통신 모듈(240)은 블루투스 통신을 통해 차량 내부에 위치한 모바일 기기와 통신하여 모바일 기기가 획득하거나 모바일 기기에 저장된 정보(사용자의 영상, 사용자의 음성, 연락처, 일정 등)를 수신할 수 있고, 와이파이나, 4G 또는 5G 통신을 통해 대화 시스템(1)과 통신하여 사용자의 음성 명령을 전달하고 음성 명령에 대응하는 시스템 응답을 수신할 수 있다.
마이크(210)에는 음성 명령이 입력될 수 있다. 사용자 단말(2)이 차량으로 구현되는 경우에는, 사용자는 운전자일 수도 있고, 동승자일 수도 있다. 마이크(210)는 운전자나 앞좌석 동승자의 음성 명령을 입력 받기 위해 스티어링 휠, 센터페시아, 헤드라이닝 또는 룸 미러 등의 위치에 마련될 수 있다.
또한, 마이크(210)는 두 개 이상 마련되는 것도 가능하다. 이 경우, 제1마이크는 전술한 바와 같이 운전자의 음성 명령을 입력 받기 위한 위치에 마련될 수 있고, 제2마이크는 뒷좌석 동승자의 음성 명령을 입력 받기 위해 뒷좌석 암레스트, B 필라(pillar) 또는 C 필라, 헤드라이닝, 뒷좌석 도어 등 다양한 위치 중 적어도 하나에 마련될 수 있다.
음성 명령이 입력되면, 마이크(210)는 음파(sound wave) 형태의 음성 명령을 전기적인 신호인 오디오 신호로 변환하여 출력한다. 따라서, 마이크(210)에서 출력된 이후의 음성 명령은 오디오 신호의 형태의 처리될 수 있다.
스피커(220)는 대화 시스템(1)으로부터 수신한 시스템 응답과 관련된 다양한 오디오를 출력할 수 있다. 스피커(220)는 대화 시스템(1)으로부터 전송된 시스템 발화를 출력할 수도 있고, 시스템 응답에 대응되는 컨텐츠 신호를 출력할 수도 있다.
또한, 시스템 응답과 무관하게 음악, 라디오 또는 멀티미디어 컨텐츠의 오디오가 출력될 수도 있고, 내비게이션 기능의 실행 중에 경로 안내를 위한 오디오가 출력될 수도 있다.
디스플레이(230)는 대화 시스템(1)으로부터 수신한 시스템 응답과 관련된 다양한 정보를 표시할 수 있다. 디스플레이(230)는 스피커(220)를 통해 출력되는 시스템 발화를 텍스트로 표시할 수도 있고, 사용자 발화에 대응되는 인텐트의 실행을 위해 복수의 항목에 대한 사용자의 선택이 요구되는 경우에는 복수의 항목을 리스트로 표시할 수도 있다.
또한, 시스템 응답과 무관하게 멀티미디어 컨텐츠를 출력하는 등 사용자 단말(3)의 다른 기능들을 수행하기 위해 필요한 정보를 표시할 수 있다.
예를 들어, 사용자 단말(2)이 차량으로 구현되는 경우, 디스플레이(230)는 차량의 센터페시아에 마련되는 AVN 디스플레이, 클러스터 디스플레이 또는 헤드업 디스플레이(HUD: Head Up Display)를 포함할 수 있다.
또는, 뒷좌석의 동승자가 볼 수 있도록 앞좌석의 헤드 뒷면에 마련되는 뒷좌석 디스플레이를 포함할 수도 있고, 차량이 다인승 차량인 경우에는 헤드라이닝에 장착된 디스플레이를 포함할 수도 있다.
디스플레이(230)는 차량에 탑승한 사용자가 시청 가능한 위치에 마련되기만 하면 되고, 디스플레이(230)의 개수나 위치에 대해 다른 제한은 두지 않는다.
사용자 단말(2)은 마이크(210) 외에 수동으로 사용자의 명령을 입력 받기 위한 입력 장치(260)도 포함할 수 있다. 입력 장치(260)는 버튼, 죠그셔틀 또는 터치 패드의 형태로 마련될 수 있다. 입력 장치(260)가 터치 패드의 형태로 마련되는 경우에는 디스플레이(230)와 함께 터치 스크린을 구현할 수도 있다.
예를 들어, 사용자 단말(2)이 차량으로 구현되는 경우, 입력 장치(260)는 센터페시아의 AVN(Audio Video Navigation)이 마련된 영역, 기어박스가 마련된 영역 또는 스티어링 휠에 버튼이나 죠그셔틀의 형태로 마련된 입력 장치를 포함할 수 있다.
또한, 동승석에 관한 제어 명령을 입력받기 위해, 각 좌석의 도어에 마련된 입력 장치를 포함할 수도 있고, 앞좌석의 암레스트나 뒷좌석의 암레스트에 마련된 입력 장치를 포함할 수도 있다.
컨트롤러(250)는 전술한 동작들이 수행될 수 있도록 사용자 단말(2)의 구성요소들을 제어할 수 있다.
사용자 단말(2)이 차량으로 구현되는 경우를 예로 들어 설명하면, 도 3에 도시된 바와 같이, 사용자 단말(2)의 마이크(210)를 통해 입력된 사용자의 음성 명령은 통신 모듈(240)을 통해 대화 시스템(1)으로 전송될 수 있다.
대화 시스템(1)의 통신 모듈(150)이 음성 명령을 수신하고, 음성 인식 모듈(110)과 자연어 이해 모듈(120)이 음성 명령에 대한 분석 결과를 출력하면, 컨트롤 모듈(130)이 음성 명령에 대한 분석 결과에 기초하여 적절한 시스템 응답을 생성하고, 통신 모듈(150)을 통해 사용자 단말(3)로 시스템 응답을 전송할 수 있다. 이 때, 자연어 이해 모듈(120)은 사용자의 발화 내역에 기초하여 음성 명령에 대한 인텐트 분류 결과를 조정하여 출력할 수 있다.
대화 시스템(1)은 서버로 구현될 수 있다. 이 때, 대화 시스템(1)이 반드시 하나의 서버로 구현되어야 하는 것은 아니며, 물리적으로 분리된 복수의 서버에 의해 구현되는 것도 가능하다.
또는, 도 4에 도시된 바와 같이, 음성 인식 모듈(110)과 자연어 이해 모듈(120)이 별도의 외부 시스템(3)으로 구현되는 것도 가능하다. 이 경우, 대화 관리 시스템(1)이 사용자 단말(2)로부터 사용자의 음성 명령을 수신하면, 대화 관리 시스템(1)은 수신된 음성 명령을 외부 시스템(3)으로 전송하고, 외부 시스템(3)으로부터 음성 명령에 대한 분석 결과를 수신할 수 있다.
대화 시스템(1)의 컨트롤 모듈(130)은 스토리지(140)로부터 사용자의 발화 내역을 획득하고, 획득된 발화 내역에 기초하여 음성 명령에 대한 분석 결과를 조정할 수 있다.
컨트롤 모듈(130)은 조정된 분석 결과에 기초하여 음성 명령에 대응되는 시스템 응답을 생성하고, 통신 모듈(150)을 통해 사용자 단말(2)로 전송할 수 있다.
따라서, 자연어 이해 모듈(120)이 대화 시스템(1)에 포함되는 경우에는 사용자의 발화 내역에 기초하여 인텐트 분류 결과를 조정하는 동작이 자연어 이해 모듈(120)에서 수행될 수 있고, 자연어 이해 모듈(120)이 외부 시스템(3)에 포함되는 경우에는 상기 동작이 대화 시스템(1)의 컨트롤 모듈(130)에서 수행될 수 있다.
도 5는 일 실시예에 따른 대화 시스템에 있어서 각각의 모듈에서 수행되는 동작을 나타낸 블록도이고, 도 6은 일 실시예에 따른 대화 시스템의 자연어 이해 모듈에 적용되는 분류 모델의 구조를 개략적으로 나타낸 도면이다.
도 5를 참조하면, 사용자의 음성 명령이 음성 인식 모듈(110)에 입력되면 음성 인식 모듈(110)은 입력된 음성 명령에서 음성 부분을 검출하고 노이즈를 제거하는 등의 전처리를 수행한 후 전처리가 수행된 음성 명령을 텍스트로 변환한다.
텍스트는 자연어 이해 모듈(120)에 입력되고, 자연어 이해 모듈(120)은 입력된 텍스트에 대해 형태소 분석, 도메인 분류, 인텐트 분류, 슬롯 태깅 등을 수행하여 사용자의 의도를 파악하기 위해 필요한 정보를 얻을 수 있다.
도 6을 함께 참조하면, 자연어 이해 모듈(120)은 자연어 분석을 위해 입력된 텍스트를 분석을 위한 작은 단위인 토큰(token)으로 나눌 수 있다. 토큰은 단어(word) 단위일 수도 있고 형태소(morpheme) 단위일 수도 있다. 또는, 문장 단위일 수도 있다.
예를 들어, 입력된 테스트가 "play music from 2017 by Ed sheeran"인 경우, 도 6에 도시된 바와 같이 단어 단위로 토큰화(tokenization)가 이루어질 수 있다.
자연어 이해 모듈(120)은 딥러닝에 의해 학습된 인텐트 분류 모델에 의해, 사용자의 음성 명령에 대응되는 도메인과 인텐트를 분류하고 슬롯을 태깅할 수 있다. 당해 예시에서는 하나의 모델로 도메인, 인텐트 분류와 슬롯 태깅이 함께 이루어지는 경우를 도시하였으나, 설계에 따라 슬롯 태깅을 위한 별도의 모델을 사용하는 것도 가능하다.
인텐트 분류 모델에 입력되는 입력 시퀀스는 토큰으로 구성될 수 있고, 입력 시퀀스에 워드 임베딩(word embedding)을 수행하여 생성된 워드 임베딩 벡터가 인코딩 레이어에 입력될 수 있다.
인코딩 레이어는 벡터로 표현된 입력 시퀀스의 토큰들을 인코딩할 수 있다. 인코딩 레이어는 복수의 히든 레이어를 포함할 수 있고, 순환 신경망(Recurrent Neural Network: RNN), BiGRU(Bidirectional Gated Recurrent Units) 등의 알고리즘을 이용할 수 있다.
인텐트 분류 모델은 인코딩 레이어의 출력에 기초하여 인텐트를 분류할 수 있다. 예를 들어, 미리 정의된 인텐트의 벡터와 인코딩된 입력 시퀀스를 비교하여 입력된 텍스트에 대응되는 인텐트를 분류할 수 있고, 이 때 분류 과제에서 사용되는 활성화 함수 중 하나인 소프트맥스(softmax) 함수를 이용하여 입력 시퀀스를 인텐트에 매칭시킬 수 있다.
미리 정의된 복수의 인텐트 각각에 대해 입력된 텍스트와의 매칭 확률을 나타내는 스코어를 계산할 수 있다. 매칭 확률이 가장 높은 인텐트가 입력된 텍스트에 대응되는 인텐트로 결정될 수 있다. 다만, 가장 높은 매칭 확률이 임계값(threshold) 미만인 경우에는, 입력된 텍스트가 Out of Domain(OOD)으로 분류될 수 있다.
당해 예시에서는 [play_music]이 입력된 텍스트에 대응되는 인텐트로 결정될 수 있다. 또한, 미리 정의된 인텐트마다 해당 인텐트가 속하는 도메인이 함께 정의될 수 있다. 당해 예시에서 [play_music] 인텐트가 속하는 도메인은 [Music]으로 미리 정의될 수 있다.
또한, 인텐트 분류 모델은 CRF(Conditional Random Field) 레이어를 이용하여 슬롯 태깅을 수행할 수도 있다. CRF 레이어에는 인코딩 레이어의 각각의 히든 스테이트가 입력될 수 있다. 또는, 슬롯 태깅을 위해 LSTM(Long Shor-Term Memory model)을 사용하는 것도 가능하다.
슬롯은 발화에 포함된 인텐트와 관련된 의미있는 정보를 나타낸다. 슬롯은 그 값(value)이 속하는 분류 체계를 나타내는 타입, 문장 내에서의 역할(role) 및 값에 의해 정의될 수 있다. 슬롯은 앞서 설명한 엔티티에 의해 채워질 수 있다.
슬롯의 역할은 인텐트에 종속될 수 있다. 예를 들어, "서울역에서 부산역으로 가자"의 입력 문장에서 "서울역"과 "부산역"은 타입이 같은 슬롯에 해당하지만, 문장 내에서 "서울역"은 출발지이고 "부산역"은 목적지라는 점에서 그 역할이 다르다. 또한, "서울역 주소 알려줘"의 입력 문장에서의 "서울역"은 "서울역에서 부산역으로 가자"의 입력 문장에서의 "서울역"과 타입은 동일하지만, 문장 내에서의 역할은 검색 대상으로 다르다.
또한, 슬롯의 타입도 인텐트에 종속될 수 있다. 예를 들어, "양화대교로 안내해줘"의 입력 문장에서는 "양화대교"의 타입이 POI에 해당하지만, "양화대교 틀어줘"의 입력 문장에서는 "양화대교"의 타입이 노래 제목으로 분류될 수 있다.
도 6의 예시에서는 "2017" 슬롯의 타입은 "year"으로, "Ed"와 "sheeran" 슬롯의 타입은 각각 "artist"로 태깅될 수 있다.
다시 도 5를 참조하면, 자연어 이해 모듈(120)에서 음성 명령에 대응되는 도메인, 인텐트, 슬롯 등의 분석 결과를 출력하면, 컨트롤 모듈(130)은 출력된 분석 결과에 기초하여 음성 명령에 대응되는 시스템 응답을 생성할 수 있다.
예를 들어, 인텐트가 차량 관련 제어인 경우에는 해당 제어를 수행하기 위한 제어 신호를 생성하여 사용자 단말(2)에 전달할 수 있다.
또는, 인텐트가 특정 정보의 제공인 경우에는 해당 정보를 검색하고 검색된 정보를 사용자 단말(2)에 전달할 수 있다. 필요에 따라, 정보의 검색이 다른 외부 서버에서 이루어지는 것도 가능하다.
또는, 인텐트가 특정 컨텐츠의 제공인 경우에는 해당 컨텐츠를 제공하는 해당 컨텐츠를 사용자 단말(2)에 전달할 수 있다.
또는, 사용자의 의도에 대응되는 서비스가 단순 대화의 지속인 경우에는 사용자의 발화에 대한 시스템 발화를 생성하여 사용자 단말(2)에 전달할 수 있다.
도 7 내지 도 10은 대화 시스템의 사용자가 음성 명령을 발화했을 때 실제 사용자의 의도에 대응되지 않는 시스템 응답이 생성된 경우를 나타내는 도면이다.
도 7의 예시를 참조하면, 사용자 A가 "양화 대교 부탁해"라는 음성 명령을 발화했을 때, 대화 시스템이 사용자 A의 음성 명령에 대한 인텐트를 경로 안내, 즉 [search_poi](도메인: [navigation])으로 분류하면, "양화 대교로 안내하겠습니다"와 같은 시스템 발화를 출력하고 "양화 대교"를 목적지로 하여 경로 안내를 수행할 수 있다.
그러나, 사용자 A의 음성 명령에 대한 실제 인텐트는 [play_music]일 수 있다. 즉, 사용자 A는 "양화 대교"라는 노래를 듣기 위해 음성 명령을 발화한 것일 수 있다.
도 8의 예시를 참조하면, 사용자 B가 "양화 대교 부탁해"라는 음성 명령을 발화했을 때, 대화 시스템이 사용자 B의 음성 명령에 대한 인텐트를 음악 재생, 즉 [play_music](도메인: [music])으로 분류하면, "자이언티의 양화대교 재생하겠습니다"와 같은 시스템 발화를 출력하고 "자이언티"라는 아티스트의 "양화 대교"라는 노래를 재생할 수 있다.
그러나, 사용자 B의 음성 명령에 대한 실제 인텐트는 [search_poi]일 수 있다. 즉, 사용자 B는 "양화 대교"를 목적지로 하여 경로 안내를 받기 위해 음성 명령을 발화한 것일 수 있다.
학습된 분류 모델을 이용하여 인텐트를 분류할 경우, 그 분류 결과는 분류 모델의 학습에 사용된 학습 데이터에 편향될 수 있고, 편향된 분류 결과가 사용자의 의도와 맞지 않는 경우에는 사용자의 의도와 다른 결과가 출력될 수 있다.
특히, 전술한 도 7, 8의 예시와 같이 인텐트 분류 모델에 중의성을 갖는 문장이 입력되는 경우, 그 결과는 사용자의 성향이 아닌 학습 데이터에 편향되기 때문에 중의성을 갖는 문장의 의미가 학습 데이터에 편향되어 결정되고 결과적으로 사용자의 의도와 다른 결과가 출력될 수 있다.
도 9의 예시를 참조하면, 사용자 A가 "우리집"이라는 음성 명령을 발화했을 때, 대화 시스템이 사용자 A의 음성 명령에 대한 인텐트를 경로 안내, 즉 [search_poi](도메인: [navigation])으로 분류하면, "우리집으로 안내하겠습니다"와 같은 시스템 발화를 출력하고 "우리집"을 목적지로 하여 경로 안내를 수행할 수 있다.
그러나, 사용자 A의 음성 명령에 대한 실제 인텐트는 [action_call]일 수 있다. 즉, 사용자 A는 "우리집"으로 전화를 걸기 위해 음성 명령을 발화한 것일 수 있다.
도 10의 예시를 참조하면, 사용자 B가 "우리집"이라는 음성 명령을 발화했을 때, 대화 시스템이 사용자 B의 음성 명령에 대한 인텐트를 전화 걸기, 즉 [action_call](도메인: [call])로 분류하면, "우리집으로 전화를 걸겠습니다"와 같은 시스템 발화를 출력하고 "우리집"으로 저장된 전화 번호로 전화를 걸 수 있다.
그러나, 사용자 B의 음성 명령에 대한 실제 인텐트는 [search_poi]일 수 있다. 즉, 사용자 B는 "우리집"을 목적지로 하여 경로 안내를 받기 위해 음성 명령을 발화한 것일 수 있다.
전술한 도 9, 10의 예시와 같이 사용자의 음성 명령이 지나치게 짧은 경우에는 사용자의 의도를 파악하기 위해 필요한 정보가 충분하지 않기 때문에 사용자의 실제 의도와 다른 결과가 출력될 수 있다. 특히, 사용자 단말(2)이 차량인 경우에, 사용자는 운전에 집중하고 있기 때문에, 발화에는 신경을 쓰기 어려운 경우가 많다.
따라서, 일 실시예에 따른 대화 시스템(1) 및 이를 이용한 대화 처리 방법은 음성 명령에 대응되는 인텐트를 결정함에 있어서 사용자 개인의 발화 내역을 참조하여 인텐트 분류 모델의 결과를 조정함으로써, 사용자 개인에 커스터마이징된 결과를 제공할 수 있다.
도 11은 일 실시예에 따른 대화 처리 방법에 관한 순서도이고, 도 12는 일 실시예에 따른 대화 관리 시스템에 저장되는 발화 내역 DB를 나타낸 도면이며, 도 13은 발화 내역 DB로부터 얻을 수 있는 정보를 나타낸 도면이다.
일 실시예에 따른 대화 처리 방법은 전술한 대화 시스템(1)에 의해 수행될 수 있다. 따라서, 대화 시스템(1)에 관한 설명은 별도의 언급이 없더라도 대화 처리 방법의 실시예에 적용될 수 있다. 반대로, 대화 처리 방법에 관한 설명 역시 별도의 언급이 없더라도 대화 시스템(1)에도 적용될 수 있다.
도 11을 참조하면, 사용자 단말(2)로부터 사용자의 음성 명령을 수신한다(1100).
사용자 단말(2)의 마이크(210)에 입력된 음성 명령은 오디오 신호의 형태로 대화 시스템(1)에 전송될 수 있고, 대화 시스템(1)의 통신 모듈(150)이 사용자 단말(2)로부터 전송되는 음성 명령을 수신할 수 있다.
수신된 음성 명령을 텍스트로 변환한다(1200).
음성 인식 모듈(110)은 수신된 음성 명령에서 음성 부분을 검출하고 노이즈를 제거하는 등의 전처리를 수행한 후 전처리가 수행된 음성 명령을 텍스트로 변환한다.
텍스트에 기초하여 음성 명령에 대한 인텐트를 분류한다(1300).
전술한 바와 같이, 음성 명령에 대한 인텐트 분류는 학습된 인텐트 분류 모델을 이용하여 이루어질 수 있다. 또한, 인텐트와 함께 도메인도 분류될 수 있고, 인텐트 분류 모델의 설계에 따라 슬롯 태깅이 함께 이루어지는 것도 가능하다.
한편, 음성 인식 모듈(110)과 자연어 이해 모듈(120)이 별도의 외부 시스템(3)에 마련되는 경우에는, 일 실시예에 따른 대화 처리 방법에서 전술한 음성 명령을 텍스트로 변환하는 단계(1200)와 인텐트를 분류하는 단계(1300)는 생략될 수 있다. 이 경우, 일 실시예에 따른 대화 처리 방법은, 외부 시스템(3)으로부터 음성 명령에 대한 인텐트 분류 결과를 획득하는 단계를 포함할 수 있다.
사용자의 발화 내역 정보를 획득하고(1400), 획득된 발화 내역 정보에 기초하여 인텐트 분류 결과를 조정한다(1500).
여기서, 사용자는 해당 음성 명령을 입력한 사용자일 수 있다. 도 12를 참조하면, 대화 시스템(1)의 스토리지(140)에는 발화 내역 DB가 저장될 수 있고, 발화 내역 DB는 사용자 별 발화 내역 정보를 포함할 수 있다.
또는, 발화 내역 DB가 외부 시스템(3)에 저장되는 경우에는, 대화 시스템(1)이 외부 시스템(3)에 사용자의 발화 내역 정보를 요청하는 방식으로 획득할 수도 있다.
발화 내역 정보는 다양한 방식으로 저장될 수 있다. 예를 들어, 사용자 별로, 음성 명령에 대한 처리 결과인 도메인과 인텐트의 빈도와 관련된 정보가 저장될 수 있다. 또는, 사용자가 발화한 음성 명령(텍스트)도 그에 대한 도메인 및 인텐트와 함께 저장될 수 있다.
이러한 발화 내역 정보에 기초하면, 도 13에 도시된 바와 같은 사용자 별 도메인 사용 분포(또는 인텐트 사용 분포)를 획득할 수 있다. 즉, 발화 내역 정보에 기초하면, 사용자 별로 어느 도메인, 어느 인텐트를 자주 사용하는지에 관한 정보를 획득할 수 있다.
또한, 발화 내역 정보는 음성 명령의 발화 시기 또는 발화 위치 중 적어도 하나에 대한 정보도 포함할 수 있다.
대화 시스템(1)이 지원하는 인텐트는 사용자가 실제로 사용하는 인텐트에 비해 상당히 많다. 대화 시스템(1)이 지원하는 인텐트 중에서 사용자가 실제로 사용하지 않는 인텐트는 인텐트 분류에 있어 노이즈로 작용할 수 있다.
전술한 바와 같이, 대화 시스템(1)은 사용자 별 발화 내역 정보로부터 해당 사용자가 주로 사용하는 인텐트와 도메인에 관한 정보를 얻을 수 있고, 인텐트를 분류할 때 이 정보를 사용함으로써 인텐트 오분류의 확률을 줄일 수 있다.
한편, 사용자의 발화 내역 정보는 사용자가 대화 시스템(1)을 이용할 때 남는 로그 데이터로부터 획득될 수 있다. 사용자가 개별 아이디를 통해 대화 시스템(1)에 접속한 경우에는 사용자 개인 별로 발화 내역 정보가 축적될 수 있다.
그렇지 않은 경우에는 사용자 단말(2)의 식별 정보에 발화 내역이 매칭되어 축적될 수 있다. 사용자 단말(2)이 차량인 경우에는 VIN(Vehicle Identification Number)과 같은 차량 식별 정보에 사용자의 발화 내역이 매칭되어 축적될 수 있다.
따라서, 당해 실시예에서 언급하는 사용자의 발화 내역 정보는 사용자 개인에 대한 것일 수도 있고, 사용자 단말(2)에 대한 것일 수도 있다.
대화 시스템(1)의 자연어 이해 모듈(120)은 음성 명령을 입력한 사용자의 발화 내역 정보에 기초하여 인텐트 분류 결과를 조정할 수 있다.
자연어 이해 모듈(120)이 이용하는 인텐트 분류 모델은 텍스트가 입력되면, 미리 정의된 복수의 인텐트 각각에 대해 입력된 텍스트와의 매칭 확률을 나타내는 스코어를 계산할 수 있다. 미리 정의된 복수의 인텐트 별로 계산된 스코어가 인텐트 분류 결과에 포함될 수 있다.
예를 들어, 인텐트 별 스코어에 사용자 별 발화 내역에 기초한 가중치를 부여하여 스코어를 재계산할 수 있다. 이 때, 해당 사용자가 음성 명령을 통해 이용한 빈도가 높은 인텐트 일수록 높은 가중치를 부여할 수 있다. 즉, 해당 사용자의 발화 내역 정보에서 빈도가 높은 인텐트일 수록 높은 가중치를 부여할 수 있고, 빈도가 낮은 인텐트 일수록 낮은 가중치를 부여할 수 있다.
또한, 자연어 이해 모듈(120)이 임계값(threshold) 미만인 스코어는 낮추고, 임계값 이상인 스코어는 더 높이는 방식으로 인텐트 분류 결과를 왜곡하는 것도 가능하다.
이 때, 임계값 이상인 스코어 중에서 해당 사용자의 이용 빈도가 높은 인텐트에 대한 스코어를 더 높일 수 있다. 임계값 미만인 스코어의 감소량과 해당 사용자의 이용 빈도가 높은 인텐트에 대한 스코어의 증가량은 서로 비례할 수 있다. 예를 들어, 미리 정의된 복수의 인텐트에 대한 스코어들을 합산한 값이 1.0인 경우, 임계값 미만인 스코어를 감소시킨만큼 이용 빈도가 높은 인텐트에 대한 스코어를 증가시킬 수 있다.
또는, 자연어 이해 모듈(120)이 임계값(threshold) 미만인 스코어는 낮추고, 임계값 이상인 스코어는 모두 더 높이는 방식으로 인텐트 분류 결과를 왜곡하되, 임계값 이상인 스코어 중에서 해당 사용자의 이용 빈도수가 높은 인텐트에 대한 스코어의 증가 비율을 더 높이고 그 외에 다른 인텐트에 대한 스코어의 증가 비율은 상대적으로 낮추는 것도 가능하다.
전술한 바와 같이, 사용자의 발화 내역 정보에 음성 명령의 발화 시간 또는 발화 장소에 관한 정보 중 적어도 하나가 더 포함될 수 있다. 이 경우, 인텐트 분류 결과를 조정함에 있어서, 음성 명령의 발화 시간이나 발화 장소와 같은 정보를 더 이용하는 것도 가능하다.
예를 들어, 현재 발화 시간 또는 현재 발화 장소에 매칭되는 발화 시간 또는 발화 장소에서 이용한 빈도가 높은 인텐트의 스코어에 높은 가중치를 부여하여 스코어들을 재계산할 수 있다.
현재 발화 시간에 매칭되는 발화 시간은 오전/오후를 기준으로 결정될 수도 있고, 출근 시간/업무 시간/퇴근 시간을 기준으로 결정될 수도 있다. 또는, 이보다 더 짧은 시간 간격을 기준으로 발화 시간의 매칭 여부를 결정하는 것도 가능하다.
예를 들어, 현재 발화 시간이 오전 8시이면, 현재 발화 시간에 매칭되는 발화 시간은 오전 시간 또는 출근 시간이 될 수 있다. 이 경우, 자연어 이해 모듈(120)은 사용자의 발화 내역 정보에서 오전 시간 또는 출근 시간에 이용한 빈도가 높은 인텐트를 판단할 수 있고, 판단된 인텐트의 스코어에 높은 가중치를 부여할 수 있다.
현재 발화 장소에 매칭되는 발화 장소는 시 단위, 구 단위 또는 동 단위를 기준으로 결정될 수도 있고, 저장된 POI(Point of Interest)나 랜드마크를 기준으로 결정될 수도 있다.
예를 들어, 현재 발화 장소가 회사 또는 회사 근처이면, 현재 발화 장소에 매칭되는 발화 장소는 회사 또는 회사 근처가 될 수 있다. 이 경우, 자연어 이해 모듈(120)은 사용자의 발화 내역 정보에서 회사 또는 회사 근처에서 이용한 빈도가 높은 인텐트를 판단할 수 있고, 판단된 인텐트의 스코어에 높은 가중치를 부여할 수 있다.
전술한 바와 같이, 슬롯의 타입이나 역할은 인텐트에 종속될 수 있다. 따라서, 자연어 이해 모듈(120)은 조정된 인텐트 분류 결과에 기초하여 슬롯 태깅을 수행할 수 있다. 예를 들어, 입력 문장 "우리집"에 대해 결정된 인텐트가 [search_poi]인 경우에는 엔티티 "우리집"의 타입이 POI가 되고, 역할은 목적지가 될 수 있다. 또한, 결정된 인텐트가 [action_call]인 경우에는 엔티티 "우리집"의 타입이 전화번호가 되고, 역할은 수신인이 된다.
인텐트 분류 모델이 입력 문장에 대한 품사 태깅 결과를 출력한 경우에는, 자연어 이해 모듈(120)이 조정된 인텐트 분류 결과를 참조하여 슬롯 태깅을 수행할 수 있다.
또는, 인텐트 분류 모델이 입력 문장에 대한 슬롯 태깅 결과를 출력한 경우에는, 자연어 이해 모듈(120)이 조정된 인텐트 분류 결과를 참조하여 슬롯 태깅 결과를 조정하는 것도 가능하다.
컨트롤 모듈(130)은 조정된 인텐트 분류 결과에 기초하여 시스템 응답을 생성한다(1600).
전술한 바와 같이, 시스템 응답은 음성 명령에 대한 시스템 발화와 음성 명령에 대응되는 인텐트의 실행을 위한 신호를 포함할 수 있다. 예를 들어, 인텐트가 전화 걸기로 결정된 경우에는, 전화 걸기의 실행을 안내하는 시스템 발화와 함께 전화 걸기의 실행을 위한 신호가 생성될 수 있고, 인텐트가 경로 안내로 결정된 경우에는 경로 안내의 실행을 안내하는 시스템 발화와 함께 경로 안내의 실행을 위한 신호가 생성될 수 있다. 또한, 인텐트가 음악 재생으로 결정된 경우에는, 음악 재생의 실행을 안내하는 시스템 발화와 함께 음악 재생의 실행을 위한 생성될 수 있다.
생성된 시스템 응답은 사용자 단말(2)에 전송될 수 있고, 사용자 단말(2)은 전송된 시스템 응답에 따른 제어를 수행할 수 있다. 사용자 단말(2)은 스피커(220)를 통해 시스템 발화를 출력할 수 있고, 시스템 응답에 포함된 신호에 따라 전화 걸기를 실행하거나 경로 안내를 실행하거나 음악을 재생하는 등의 동작을 수행할 수 있다.
도 14 및 도 15는 일 실시예에 따른 대화 시스템 및 대화 처리 방법에 의해 출력되는 인텐트 분류 결과의 예시를 나타낸 도면이다.
도 14 및 도 15에서는 사용자 A와 사용자 B가 각각 "양화 대교 부탁해"라는 음성 명령을 마이크(210)에 입력한 경우를 예로 든다.
스토리지(140) 또는 외부 시스템(3)으로부터 획득한 사용자 A의 발화 내역 정보에 기초하면, 사용자 A는 음악 도메인을 자주 사용하였다. 즉, 사용자 A는 음악 도메인에 대한 이용 빈도수가 높다.
대화 시스템(1)의 자연어 이해 모듈(120)은 이러한 정보를 이용하여 인텐트 분류 결과를 조정할 수 있다. 따라서, 인텐트 분류 모델이 "양화 대교 부탁해"라는 음성 명령에 대한 인텐트를 경로 안내 [search_poi](도메인: [navigation])로 분류하였더라도, 전술한 과정에 따른 인텐트 분류 결과의 조정을 거쳐 최종 인텐트를 음악 재생 [play_music](도메인: [music])으로 결정할 수 있다.
대화 시스템(1)은 조정된 인텐트 분류 결과에 기초하여 시스템 응답을 생성할 수 있고, 생성된 시스템 응답은 사용자 단말(2)에 전송될 수 있다.
사용자 단말(2)은 시스템 발화 "자이언티의 양화대교 재생하겠습니다"를 스피커(220)를 통해 출력하고, 음악 재생을 실행할 수 있다.
스토리지(140) 또는 외부 시스템(3)으로부터 획득한 사용자 B의 발화 내역 정보에 기초하면, 사용자 B는 내비게이션 도메인을 자주 사용하였다. 즉, 사용자 B는 내비게이션 도메인에 대한 이용 빈도수가 높다.
대화 시스템(1)의 자연어 이해 모듈(120)은 이러한 정보를 이용하여 인텐트 분류 결과를 조정할 수 있다. 따라서, 도 14의 예시와 반대로, 인텐트 분류 모델이 "양화 대교 부탁해"라는 음성 명령에 대한 인텐트를 음악 재생 [play_music](도메인: [music])으로 분류하였더라도, 전술한 과정에 따른 인텐트 분류 결과의 조정을 거쳐 최종 인텐트를 경로 안내 [search_poi](도메인: navigation)으로 결정할 수 있다.
대화 시스템(1)은 조정된 인텐트 분류 결과에 기초하여 시스템 응답을 생성할 수 있고, 생성된 시스템 응답은 사용자 단말(2)에 전송될 수 있다.
사용자 단말(2)은 시스템 발화 "양화 대교로 안내하겠습니다"를 스피커(220)를 통해 출력하고, 경로 안내를 실행할 수 있다.
한편, 개시된 실시예들에 따른 대화 처리 방법은 컴퓨터에 의해 실행 가능한 명령어의 형태로 기록매체에 저장될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 비일시적(Non-transitory) 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다.
지금까지 설명한 실시예에 따르면, 시간과 비용이 많이 소모되는 인텐트 분류 모델의 학습 데이터를 조정하거나 인텐트 분류 모델을 업데이트하지 않고서도, 추론 단계에서 기존의 인텐트 분류 모델의 결과를 조정하는 것만으로 사용자 개개인의 대화 시스템 이용 성향에 맞는 적절한 결과를 획득할 수 있다.
따라서, 대화 시스템의 사용 환경 특성 상 음성 명령에 충분한 정보가 포함되지 않은 경우 또는 음성 명령에 중의적 표현이 포함되어 의도를 특정하기 어려운 경우에도 실제 사용자의 의도에 부합되는 서비스를 제공할 수 있게 된다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
1: 대화 시스템
110: 음성 인식 모듈
120: 자연어 이해 모듈
130: 컨트롤 모듈
140: 스토리지
150: 통신 모듈
2: 사용자 단말
210: 마이크
220: 스피커
230: 디스플레이
240: 통신 모듈
250: 컨트롤러
260: 입력 장치

Claims (20)

  1. 학습된 인텐트 분류 모델을 이용하여 사용자의 음성 명령에 대한 인텐트 분류 결과를 획득하는 단계;
    상기 사용자의 발화 내역 정보를 획득하는 단계; 및
    상기 사용자의 발화 내역 정보에 기초하여 상기 인텐트 분류 결과를 조정하는 단계;를 포함하고,
    상기 인텐트 분류 결과는,
    미리 정의된 복수의 인텐트 각각에 대한 스코어들을 포함하고,
    상기 인텐트 분류 결과를 조정하는 단계는,
    상기 사용자의 발화 내역 정보에 기초하여 상기 미리 정의된 복수의 인텐트 각각에 대한 스코어들을 조정하는 것을 포함하는 대화 처리 방법.
  2. 제 1 항에 있어서,
    상기 사용자의 발화 내역 정보는,
    상기 사용자가 음성 명령의 발화를 통해 이용한 인텐트의 빈도에 관한 정보를 포함하는 대화 처리 방법.
  3. 제 2 항에 있어서,
    상기 인텐트 분류 결과를 조정하는 단계는,
    상기 미리 정의된 복수의 인텐트 중에서, 상기 사용자가 음성 명령을 통해 이용한 빈도가 높은 인텐트일 수록 높은 스코어를 갖도록 조정하는 것을 포함하는 대화 처리 방법 .
  4. 제 2 항에 있어서,
    상기 인텐트 분류 결과를 조정하는 단계는,
    상기 미리 정의된 복수의 인텐트 중에서, 상기 사용자가 음성 명령의 발화를 통해 이용한 빈도가 높은 인텐트의 스코어에 높은 가중치를 부여하여 상기 스코어들을 재계산하는 것을 포함하는 대화 처리 방법.
  5. 제 2 항에 있어서,
    상기 인텐트 분류 결과를 조정하는 단계는,
    상기 미리 정의된 복수의 인텐트에 대한 스코어들 중에서, 임계값 미만인 스코어는 감소시키고 상기 사용자가 음성 명령의 발화를 통해 이용한 빈도가 높은 인텐트에 대한 스코어는 증가시키는 것을 포함하는 대화 처리 방법.
  6. 제 5 항에 있어서,
    상기 임계값 미만인 스코어의 감소량과 상기 사용자가 음성 명령의 발화를 통해 이용한 빈도가 높은 인텐트에 대한 스코어의 증가량은 서로 비례하는 대화 처리 방법.
  7. 제 2 항에 있어서,
    상기 사용자의 발화 내역 정보는,
    상기 사용자의 음성 명령의 발화 시간 또는 상기 사용자의 음성 명령의 발화 장소에 관한 정보 중 적어도 하나를 더 포함하는 대화 처리 방법.
  8. 제 7 항에 있어서,
    상기 인텐트 분류 결과를 조정하는 단계는,
    상기 미리 정의된 복수의 인텐트 중에서, 현재 발화 시간 또는 현재 발화 장소에 매칭되는 발화 시간 또는 발화 장소에서 이용한 빈도가 높은 인텐트의 스코어에 높은 가중치를 부여하여 상기 스코어들을 재계산하는 것을 포함하는 대화 처리 방법.
  9. 제 1 항에 있어서,
    상기 인텐트 분류 결과를 조정하는 단계는,
    상기 조정된 스코어들 중에서 가장 높은 스코어를 갖는 인텐트를 상기 사용자의 음성 명령에 대한 최종 인텐트로 결정하고,
    상기 최종 인텐트에 기초하여 상기 사용자의 음성 명령에 대한 슬롯 태깅을 수행하는 것을 포함하는 대화 처리 방법.
  10. 제 1 항에 있어서,
    상기 조정된 인텐트 분류 결과에 기초하여 시스템 응답을 생성하는 단계; 및
    상기 생성된 시스템 응답을 사용자 단말에 전송하는 단계;를 더 포함하는 대화 처리 방법.
  11. 대화 처리 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체에 있어서,
    상기 대화 처리 방법은,
    학습된 인텐트 분류 모델을 이용하여 사용자의 음성 명령에 대한 인텐트 분류 결과를 획득하는 단계;
    상기 사용자의 발화 내역 정보를 획득하는 단계; 및
    상기 사용자의 발화 내역 정보에 기초하여 상기 인텐트 분류 결과를 조정하는 단계;를 포함하고,
    상기 인텐트 분류 결과는,
    미리 정의된 복수의 인텐트 각각에 대한 스코어들을 포함하고,
    상기 인텐트 분류 결과를 조정하는 단계는,
    상기 사용자의 발화 내역 정보에 기초하여 상기 미리 정의된 복수의 인텐트 각각에 대한 스코어들을 조정하는 것을 포함하는 기록 매체.
  12. 제 11 항에 있어서,
    상기 사용자의 발화 내역 정보는,
    상기 사용자가 음성 명령의 발화를 통해 이용한 인텐트의 빈도에 관한 정보를 포함하는 기록 매체.
  13. 제 12 항에 있어서,
    상기 인텐트 분류 결과를 조정하는 단계는,
    상기 미리 정의된 복수의 인텐트 중에서, 상기 사용자가 음성 명령을 통해 이용한 빈도가 높은 인텐트일 수록 높은 스코어를 갖도록 조정하는 것을 포함하는 기록 매체.
  14. 제 12 항에 있어서,
    상기 인텐트 분류 결과를 조정하는 단계는,
    상기 미리 정의된 복수의 인텐트 중에서, 상기 사용자가 음성 명령의 발화를 통해 이용한 빈도가 높은 인텐트의 스코어에 높은 가중치를 부여하여 상기 스코어들을 재계산하는 것을 포함하는 기록 매체.
  15. 제 12 항에 있어서,
    상기 인텐트 분류 결과를 조정하는 단계는,
    상기 미리 정의된 복수의 인텐트에 대한 스코어들 중에서, 임계값 미만인 스코어는 감소시키고 상기 사용자가 음성 명령의 발화를 통해 이용한 빈도가 높은 인텐트에 대한 스코어는 증가시키는 것을 포함하는 기록 매체.
  16. 제 15 항에 있어서,
    상기 임계값 미만인 스코어의 감소율과 상기 상기 사용자가 음성 명령의 발화를 통해 이용한 빈도가 높은 인텐트에 대한 스코어의 증가율은 서로 비례하는 기록 매체.
  17. 제 12 항에 있어서,
    상기 사용자의 발화 내역 정보는,
    상기 사용자의 음성 명령의 발화 시간 또는 상기 사용자의 음성 명령의 발화 장소에 관한 정보 중 적어도 하나를 더 포함하는 기록 매체.
  18. 제 17 항에 있어서,
    상기 인텐트 분류 결과를 조정하는 단계는,
    상기 미리 정의된 복수의 인텐트 중에서, 현재 발화 시간 또는 현재 발화 장소에 매칭되는 발화 시간 또는 발화 장소에서 이용한 빈도가 높은 인텐트의 스코어에 높은 가중치를 부여하여 상기 스코어들을 재계산하는 것을 포함하는 기록 매체.
  19. 제 11 항에 있어서,
    상기 인텐트 분류 결과를 조정하는 단계는,
    상기 조정된 스코어들 중에서 가장 높은 스코어를 갖는 인텐트를 상기 사용자의 음성 명령에 대한 최종 인텐트로 결정하고,
    상기 최종 인텐트에 기초하여 상기 사용자의 음성 명령에 대한 슬롯 태깅을 수행하는 것을 포함하는 기록 매체.
  20. 제 11 항에 있어서,
    상기 조정된 인텐트 분류 결과에 기초하여 시스템 응답을 생성하는 단계; 및
    상기 생성된 시스템 응답을 사용자 단말에 전송하는 단계;를 더 포함하는 기록 매체.
KR1020220045893A 2022-04-13 2022-04-13 대화 처리 방법 및 대화 시스템 KR20230146898A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020220045893A KR20230146898A (ko) 2022-04-13 2022-04-13 대화 처리 방법 및 대화 시스템
US18/132,630 US20230335120A1 (en) 2022-04-13 2023-04-10 Method for processing dialogue and dialogue system
DE102023109210.3A DE102023109210A1 (de) 2022-04-13 2023-04-12 Verfahren zur Dialogverarbeitung und Dialogsystem
CN202310397708.4A CN116910194A (zh) 2022-04-13 2023-04-13 用于处理对话的方法和对话系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220045893A KR20230146898A (ko) 2022-04-13 2022-04-13 대화 처리 방법 및 대화 시스템

Publications (1)

Publication Number Publication Date
KR20230146898A true KR20230146898A (ko) 2023-10-20

Family

ID=88191795

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220045893A KR20230146898A (ko) 2022-04-13 2022-04-13 대화 처리 방법 및 대화 시스템

Country Status (4)

Country Link
US (1) US20230335120A1 (ko)
KR (1) KR20230146898A (ko)
CN (1) CN116910194A (ko)
DE (1) DE102023109210A1 (ko)

Also Published As

Publication number Publication date
CN116910194A (zh) 2023-10-20
US20230335120A1 (en) 2023-10-19
DE102023109210A1 (de) 2023-10-19

Similar Documents

Publication Publication Date Title
US11887590B2 (en) Voice enablement and disablement of speech processing functionality
US11237793B1 (en) Latency reduction for content playback
CN110140168B (zh) 上下文热词
KR102249392B1 (ko) 사용자 맞춤형 서비스를 위한 차량 기기 제어 장치 및 방법
US10224030B1 (en) Dynamic gazetteers for personalized entity recognition
US11574637B1 (en) Spoken language understanding models
US11579841B1 (en) Task resumption in a natural understanding system
US20240087562A1 (en) Interactive content output
CN115176309A (zh) 语音处理系统
CN115132195B (zh) 语音唤醒方法、装置、设备、存储介质及程序产品
US11922538B2 (en) Apparatus for generating emojis, vehicle, and method for generating emojis
KR20230142243A (ko) 대화 처리 방법, 사용자 단말 및 대화 시스템
KR20230146898A (ko) 대화 처리 방법 및 대화 시스템
US11735178B1 (en) Speech-processing system
US11564194B1 (en) Device communication
KR20210098250A (ko) 전자 장치 및 이의 제어 방법
US11955123B2 (en) Speech recognition system and method of controlling the same
US20230267923A1 (en) Natural language processing apparatus and natural language processing method
KR20230135396A (ko) 대화 관리 방법, 사용자 단말 및 컴퓨터로 판독 가능한 기록 매체
US20240096316A1 (en) Multi-assistant device control
US20240095320A1 (en) Voice-activated authorization to access additional functionality using a device
US20240214332A1 (en) Chatbot service providing method and chatbot service providing system
US20240105171A1 (en) Data processing in a multi-assistant system
US20230206922A1 (en) Dialogue system and dialogue processing method
KR20240053428A (ko) 대화 관리 방법, 대화 관리 시스템 및 컴퓨터로 판독 가능한 기록 매체