KR20210062704A - 인간-컴퓨터 상호작용 방법 및 전자 장치 - Google Patents

인간-컴퓨터 상호작용 방법 및 전자 장치 Download PDF

Info

Publication number
KR20210062704A
KR20210062704A KR1020217013813A KR20217013813A KR20210062704A KR 20210062704 A KR20210062704 A KR 20210062704A KR 1020217013813 A KR1020217013813 A KR 1020217013813A KR 20217013813 A KR20217013813 A KR 20217013813A KR 20210062704 A KR20210062704 A KR 20210062704A
Authority
KR
South Korea
Prior art keywords
slot
user
input
information corresponding
server
Prior art date
Application number
KR1020217013813A
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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20210062704A publication Critical patent/KR20210062704A/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • 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/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)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

통신 기술 분야에 관한 것으로, 사용자 의도를 정확하게 인식하고, 사용자 요구사항을 만족하며, 사용자 경험을 개선할 수 있는 인간-컴퓨터 상호작용 방법 및 전자 장치(100)가 제공된다. 인간-컴퓨터 상호작용 방법은 구체적으로, 이하를 포함한다. 인간-컴퓨터 대화 상호작용 과정에서, 서버(200)가 사용자 대화에 대해 슬롯 추출을 수행할 때, 정보가 추출되지 못하는 슬롯이 있고 또한 이 슬롯이 비필수 키 슬롯이면, 서버(200)는 슬롯의 정보가 필수인지 여부를 판정하기 위해 사용자에게 질문을 개시한다. 슬롯에 대응하는 정보가 필수이면, 서버(200)는 슬롯에 대응하는 정보를 추가로 추출한다. 슬롯에 대응하는 정보가 불필요하면, 서버(200)는 슬롯에 대응하는 정보를 다시 추출하지 않는다.

Description

인간-컴퓨터 상호작용 방법 및 전자 장치
본 출원은 통신 기술 분야에 관한 것으로, 상세하게는 인간-컴퓨터 상호작용 방법 및 전자 장치에 관한 것이다.
인간-컴퓨터 대화 시스템(또는 인간-컴퓨터 대화 플랫폼 또는 챗봇(chatbot)이라고 함)은 차세대 인간-컴퓨터 상호작용 인터페이스이다. 챗봇은 사용자와 대화를 하고, 대화 중에 사용자의 의도를 인식하며, 사용자에게 식사 주문, 티켓 예매, 승차 안내 등의 서비스를 제공할 수 있다.
도 1a는 챗봇과 사용자 간의 대화의 과정의 예이다. 이 예는 챗봇의 작업 과정을 설명하는 데 사용되고, 작업 과정은 오픈 도메인 대화, 진입 조건, 및 닫힌 도메인 대화를 포함할 수 있다. 오픈 도메인 대화는 챗봇이 사용자 의도를 인식하지 못했을 때 이루어지는 대화이다. 사용자가 "저를 위해 차를 불러주세요"라고 말하면, 챗봇은은 논리적 판단(즉, 진입 조건)을 통해 사용자 의도(즉, 승차 호출 서비스)를 결정한 후, 닫힌 도메인 대화로 이동한다. 닫힌 도메인 대화는 사용자의 의도를 인식한 후 사용자의 목적을 명확하게 하는(또는 태스크 세부사항을 명확하게 하는) 대화이다.
닫힌 도메인 대화는 구체적으로 슬롯 채우기(줄여서 슬롯 채우기라고 함) 과정, 자구 명료화 과정(wording clarification process), 및 결과 응답 과정을 포함한다. 슬롯 채우기 과정은, 사용자 의도를 구체적인 사용자 명령으로 변환할 수 있도록 슬롯을 정보로 채우는 과정이다. 슬롯은 사용자가 의도를 표현하는 데 사용하는 핵심 정보라고 이해될 수 있다. 예를 들어, 도 1a에 도시된 대화에서, 승차 호출 서비스에 대응하는 슬롯이 출발지 슬롯, 목적지 슬롯, 및 출발 시간 슬롯을 포함한다. 챗봇은 사용자와의 대화에 기초하여 슬롯에 대응하는 정보(예를 들어, 슬롯 값)를 추출한다. 슬롯에 대응하는 정보에 필요한 일부 정보가 누락된 경우, 챗봇이 사용자의 답변에 기초하여 이러한 슬롯에 대응하는 필요한 정보를 채울 수 있도록, 챗봇이 적극적으로 질문을 하고, 사용자가 질문에 답변한다. 이 과정을 자구 명료화 과정이라 한다. 슬롯에 대응하는 모든 정보를 수집한 후, 챗봇은 대응하는 조작, 예를 들어 사용자를 위해 승차 호출 애플리케이션을 이용하여 주문을 하고, 주문을 한 후 사용자에게 통지하는 조작, 즉 결과 응답 과정을 수행할 수 있다.
현재, 2가지 유형의 슬롯, 필수 슬롯과 선택적 슬롯이 있다. 챗봇이 필수 슬롯에 대응하는 정보를 추출하지 못하면, 챗봇은, 필수 슬롯에 대응하는 정보가 추출될 때까지 적극적으로 질문을 하여 정보를 명확하게 하도록 사용자에게 요청한다. 챗봇이 선택적인 슬롯에 대응하는 정보를 추출하지 못하면, 챗봇은 질문을 하지 않지만, 선택적인 슬롯에 대응하는 정보가 없는 경우에 기초하여 대응하는 조작을 직접 수행한다.
실제 시나리오에서, 챗봇은 일반적으로, 사용자 입력 오류, 음성 인식 오류, 또는 부정확한 슬롯 추출 알고리즘과 같은 요인으로 인해 일부 선택적 슬롯에 대응하는 키 정보를 추출하지 못한다. 따라서, 챗봇에 의해 수행되는 후속 조작이 사용자 요구사항을 만족하지 못할 수 있다. 예를 들어, 도 1a에 도시된 대화에서, 사용자가 말한 "카풀"은 선택적 슬롯에 대응하는 키 정보일 수 있다. 챗봇이 키 정보를 정확하게 추출하지 못하면, 챗봇은 사용자를 위해 카풀 서비스를 호출하지 않을 수 있다. 이는 사용자의 의도에 반하고 사용자 경험에 심각한 영향을 미친다.
본 출원은 전자 장치는 사용자 의도를 정확하게 인식하고, 사용자의 요구사항을 만족하며, 사용자 경험을 개선할 수 있는 인간-컴퓨터 상호작용 방법을 제공한다.
제1 양태에 따르면, 본 출원에서는 인간-컴퓨터 대화 시스템에 적용될 수 있는 방법이 제공된다. 상기 방법은 이하를 포함한다. 서버가 사용자의 서비스 요구사항을 포함하는 제1 입력을 수신한다. 상기 서버는 상기 제1 입력에 기초하여, 상기 제1 입력에 대응하는 제1 필드를 결정한다. 여기서, 상기 제1 필드는 상기 사용자의 서비스 요구사항에 대응하는 태스크 시나리오(task scenario)이다. 상기 서버는 상기 제1 입력을 상기 제1 필드에 대응하는 의도 인식 모델에 분배하고, 상기 제1 입력에 대응하는 제1 의도를 인식한다. 여기서, 상기 제1 의도는 상기 제1 필드의 하위 시나리오이다. 상기 서버는 상기 제1 입력으로부터, 상기 제1 의도 내의 상기 제1 슬롯에 대응하는 정보를 추출한다. 여기서, 상기 제1 슬롯은 상기 제1 의도에 미리 구성되어 있고, 상기 제1 슬롯은 선택적인 키 슬롯이다. 상기 서버가 상기 제1 슬롯에 대응하는 상기 정보가 추출되지 못한다고 결정할 때, 상기 서버는 상기 사용자에게 질문을 함으로써, 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정한다. 상기 서버는 제2 입력을 수신한다. 여기서, 상기 제2 입력은 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에 의해 답변된 정보를 포함한다. 상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 필요한 정보라고 결정하면, 상기 서버는 상기 제2 입력으로부터 상기 제1 슬롯에 대응하는 상기 정보를 추출하고, 상기 서버는 상기 제1 슬롯에 대응하는 상기 정보와 상기 제1 의도에 기초하여, 상기 제1 의도에 대응하는 조작을 수행하거나; 또는 상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 불필요한 정보라고 결정하면, 상기 서버는 상기 제1 슬롯에 대응하는 상기 정보를 추출하지 않고, 상기 서버는 상기 제1 의도에 대응하는 조작을 상기 제1 의도에 기초하여 수행한다.
상기 제1 입력은 상기 사용자와 상기 서버(200) 간의 단일 라운드의 대화에서 하나의 담화이거나, 또는 상기 사용자와 상기 서버(200) 간의 복수의 라운드의 대화에서 복수의 담화일 수 있다. 본 출원의 본 실시예에서는 이에 대해 제한하지 않는다.
상기 제2 입력은 상기 사용자와 상기 서버(200) 간의 단일 라운드의 대화에서 하나의 담화일 수 있거나, 또는 상기 사용자와 상기 서버(200) 간의 복수의 라운드의 대화에서 복수의 담화일 수 있다. 본 출원의 본 실시예에서는 이에 대해 제한하지 않는다.
상기 선택적인 키 슬롯이 의도를 표현할 때, 상기 사용자가 반드시 상기 슬롯에 대응하는 정보를 표현하는 것이 아님을 의미한다고 이해할 수 있을 것이다. 상기 슬롯에 대응하는 정보가 표현되지 않으면, 챗봇이 상기 슬롯에 대응하는 정보를 무시할 수 있다. 하지만, 상기 사용자가 상기 슬롯에 대응하는 정보를 표현했으면, 상기 챗봇은 상기 슬롯에 대응하는 정보를 정확하게 추출할 필요가 있다.
본 출원의 본 실시예에서, 상기 서버가 모든 사전 설정된 슬롯에 대응하는 정보를 사용자 담화에 기초하여 자동으로 추출하는 과정에서, 어느 정보가 추출되지 못하는지에 대응하는 슬롯이 있고, 상기 슬롯이 선택적인 키 슬롯이면, 상기 챗봇은 상기 선택적인 키 슬롯에 대응하는 상기 정보가 필요한지 여부에 관해 사용자로부터 확인을 적극적으로 요청한다. 상기 정보가 필요하면, 상기 챗봇은 상기 사용자의 답변에 기초하여 상기 선택적인 키 슬롯에 대응하는 상기 정보를 계속 추출한다는 것을 알 수 있다. 상기 정보가 필요하지 않으면, 상기 챗봇은 더 이상 상기 선택적인 키 슬롯에 대응하는 상기 정보를 추출하지 않는다. 다르게 말하면, 상기 챗봇은 상기 사용자로부터 추가 확인을 요청하지 않는다. 이와 같이, 상기 선택적인 키 슬롯에 대응하는 상기 정보가 추출되지 못할 때, 상기 챗봇은 상기 사용자로부터 확인을 추가로 요청함으로써, 사용자 의도의 정확한 인식을 보장하고, 사용자 요구사항을 만족하며, 사용자 경험을 개선할 수 있다.
가능한 일 구현에서, 서버가 상기 제1 입력으로부터, 상기 제1 의도 내의 상기 제1 슬롯에 대응하는 정보를 추출하는 것은,
상기 서버가 상기 제1 입력으로부터 인식된 각각의 단어 또는 각각의 엔티티를 상기 제1 슬롯에 대응하는 슬롯 추출 모델에 입력하고, 상기 제1 입력의 각각의 단어 또는 각각의 엔티티에 대응하는 신뢰도를 계산하는 것을 포함한다. 상기 제1 입력의 제1 단어 또는 제1 엔티티의 신뢰도가 제1 임계값보다 크거나 같으면, 상기 서버는 상기 제1 단어 또는 상기 제1 엔티티가 상기 제1 슬롯에 대응하는 상기 정보라고 결정하거나; 또는 상기 제1 입력의 각각의 단어 또는 각각의 엔티티의 신뢰도가 상기 제1 임계값보다 작으면, 상기 서버는 상기 제1 슬롯에 대응하는 상기 정보가 추출되지 못한다고 결정한다.
가능한 일 구현에서, 상기 방법은, 상기 제1 슬롯이 사용자 정의 슬롯 유형에 대응하면, 상기 서버가 상기 제1 입력으로부터 인식된 각각의 엔티티와 상기 사용자 정의 슬롯 유형의 각각의 단어 사이의 유사도를 계산하는 것을 더 포함한다.
상기 제1 입력으로부터 인식된 각각의 엔티티와 상기 사용자 정의 슬롯 유형의 각각의 단어 사이의 상기 유사도가 제2 임계값보다 작으면, 상기 서버는 상기 제1 입력이 상기 제1 슬롯에 대응하는 상기 정보를 포함하지 않는다고 결정하거나; 또는 상기 제1 입력의 제2 엔티티와 상기 사용자 정의 슬롯 유형의 제2 단어 사이의 유사도가 제3 임계값보다 크거나 같으면, 상기 서버는 상기 제2 단어가 상기 제1 슬롯에 대응하는 상기 정보라고 결정하거나; 또는 상기 제1 입력의 어느 엔티티와 상기 사용자 정의 슬롯 유형의 어느 단어 사이의 유사도가 상기 제2 임계값보다 크거나 같고 상기 제3 임계값보다 작으면, 상기 서버는 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에게 질문을 하기로 결정한다.
엔티티와 사용자 사전 내의 키워드 간의 유사도가 결정되어야 할 때, 상기 제1 입력으로부터 인식된 엔티티와 상기 사용자 사전의 상기 키워드 간의 레벤슈타인 거리(Levenshtein distance)가 예를 들어 핀인(pinyin) 유사도에 기반한 알고리즘 또는 문자열 유사도에 기반한 알고리즘을 이용하여 계산됨으로써, 상기 엔티티와 상기 사용자 사전의 키워드 간의 유사도를 결정할 수 있다. 대안적으로, 단어 또는 구 사이의 유사도가 딥 러닝 워드 벡터(deep learning word vector) 또는 문장 벡터 등을 이용하여 계산될 수 있다. 본 출원의 본 실시예에서는 유사도 계산 방법을 제한하지 않는다.
사용자 입력 오류 또는 음성 인식 오류가 일어날 때, 상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보를 말했을 가능성이 있지만, 상기 서버는 상기 제1 슬롯에 대응하는 상기 정보를 추출하지 못한다. 상기 서버(200)는 에러 보정 방법을 이용하여, 사용자 담화(즉, 제1 입력)로부터 인식된 엔티티가 상기 사용자 사전의 키워드와 비교적 유사하다고 결정할 때에만 사용자 확인 메커니즘을 트리거할 수 있다. 이는 사용자에 의한 확인 횟수를 줄이고, 사용자에 대한 과도한 방해를 피하며, 사용자 경험을 개선한다.
가능한 일 구현에서, 상기 방법이 이하를 더 포함한다. 상기 제1 입력의 각각의 단어 또는 각각의 엔티티의 신뢰도가 제4 임계값보다 작으면, 상기 서버는 상기 제1 입력이 상기 제1 슬롯에 대응하는 상기 정보를 포함하지 않는다고 결정하거나; 또는 상기 제1 입력의 어느 단어 또는 어느 엔티티의 신뢰도가 상기 제1 임계값보다 작고 상기 제4 임계값보다 크거나 같으면, 상기 서버는 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에게 질문을 하기로 결정한다.
상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보를 정확하게 표현할 때, 부정확한 슬롯 추출 모델로 인해 상기 제1 슬롯에 대응하는 상기 정보가 추출되지 못할 수 있다. 예를 들어, 상대적으로 적은 사용자 담화가 입력되므로, 또는 스킬 개발자가 상기 슬롯 추출 모델을 훈련시키기 전에 부정확한 사용자 담화가 입력되므로, 상기 서버는 훈련을 통해 부정확한 슬롯 추출 모델을 생성한다. 이 경우, 상기 사용자는 확인 임계값을 설정할 수 있다. 상기 사용자 담화로부터 인식된 상기 엔티티에 대한 상기 슬롯 추출 모델에 의해 제공되는 슬롯 마킹 확률 값이 상기 확인 임계값보다 크면, 상기 서버는 상기 사용자 확인 메커니즘을 트리거한다. 이를 통해 상기 사용자에 의한 확인 횟수가 줄어들고, 상기 사용자에 대한 과도한 방해가 방지되며, 사용자 경험이 개선된다.
가능한 일 구현에서, 상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 필요한 정보라고 결정하면, 상기 서버가 상기 제2 입력으로부터 상기 제1 슬롯에 대응하는 상기 정보를 추출하는 것은, 상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 필요한 정보라고 결정하면, 상기 서버가 상기 제1 슬롯에 대응하는 상기 슬롯 추출 모델을 이용하여 또는 규칙을 이용하여 상기 제2 입력으로부터 상기 제1 슬롯에 대응하는 상기 정보를 추출하는 것을 포함한다.
동일한 엔티티와 동일한 슬롯 추출 모델의 경우, 상기 슬롯 추출 모델은 처음에는 상기 엔티티를 정확하게 인식할 수 없지만, 두 번째는 상기 엔티티를 정확하게 인식할 수 있다. 이는 상기 사용자가 처음으로 상기 엔티티를 말할 때, 진술이 다른 엔티티을 포함할 수 있기 때문이다. 즉, 상기 엔티티는 콘텍스트(context)를 가지고 있다. 상기 슬롯 추출 모델이 부정확하면, 상기 콘텍스트가 인식되지 못하므로 상기 엔티티를 인식하지 못할 수 있다. 그러면, 상기 서버가 처음에 상기 엔티티를 인식할 수 없을 때, 상기 서버는 상기 사용자에게 상기 엔티티에 관한 질문을 한다. 이 경우, 상기 사용자의 답변이 상기 엔티티에 관한 것이다. 상기 사용자의 답변은 상기 엔티티만을 포함하거나, 또는 매우 적은 콘텍스트를 포함할 수 있고, 상기 슬롯 추출 모델이 이번에는 상기 엔티티를 인식할 가능성이 있다. 일부 다른 실시예에서, 상기 엔티티가 상기 슬롯 추출 모델이 사용되지 않는 방식으로 상기 사용자의 답변으로부터 인식될 수도 있다. 예를 들어, 규칙이 활성화되어 상기 엔티티를 인식할 수 있다. 이 규칙은, 상기 엔티티가 상기 사용자의 답변의 콘텍스트 로직, 사용자 의도와의 연관관계, 및 상기 엔티티와 제1 슬롯 간의 대응관계와 같은 요인을 참조하여 인식될 수 있다는 것이다. 이를 통해, 상기 서버가 상기 사용자가 말하는 상기 엔티티를 두 번째에 또는 그 이후에 인식할 확률을 효과적으로 높일 수 있다.
가능한 일 구현에서, 제2 슬롯이 추가적으로 상기 제1 의도에 미리 구성되어 있고, 상기 제2 슬롯은 필수 슬롯이며; 상기 인간-컴퓨터 상호작용 방법이 이하를 더 포함한다. 상기 서버가 상기 제2 슬롯에 대응하는 정보가 추출되지 못한다고 결정하면, 상기 서버는 상기 제2 슬롯에 대응하는 정보를 추출하기 위해 상기 사용자에게 질문을 한다. 상기 서버는 제3 입력을 수신하고, 상기 제3 입력으로부터 상기 제2 슬롯에 대응하는 상기 정보를 추출한다. 여기서, 상기 제3 입력은 상기 사용자의 답변을 포함한다. 상기 서버는 상기 제1 의도, 상기 제1 슬롯에 대응하는 상기 정보, 및 상기 제2 슬롯에 대응하는 상기 정보에 기초하여, 상기 제1 의도에 대응하는 상기 조작을 수행하거나; 또는 상기 서버는 상기 제2 슬롯에 대응하는 상기 정보와 상기 제1 의도에 기초하여, 상기 제1 의도에 대응하는 상기 조작을 수행한다.
가능한 일 구현에서, 제3 슬롯이 추가적으로 상기 제1 의도에 미리 구성되어 있고, 상기 제3 슬롯은 선택적인 넌-키 슬롯(non-key slot)이며, 상기 인간-컴퓨터 상호작용 방법은 이하를 더 포함한다. 상기 서버가 상기 제3 슬롯에 대응하는 정보가 추출되지 못한다고 결정할 때, 상기 서버는 상기 제3 슬롯에 대응하는 상기 정보를 추출하지 않는다.
제2 양태에 따르면, 서버가 제공된다. 상기 서버는 인간-컴퓨터 대화 시스템에 적용될 수 있고, 통신 인터페이스, 메모리, 및 프로세서를 포함한다. 여기서, 상기 통신 인터페이스와 상기 메모리는 상기 프로세서에 연결되고, 상기 메모리는 컴퓨터 프로그램 코드를 저장하도록 구성되며, 상기 컴퓨터 프로그램 코드는 컴퓨터 명령을 포함하고, 상기 프로세서는 상기 메모리로부터 상기 컴퓨터 명령을 판독할 때 상기 서버로 하여금:
상기 통신 인터페이스를 통해 제1 입력을 수신하는 단계 - 상기 제1 입력은 사용자의 서비스 요구사항을 포함하고 있음 -; 상기 제1 입력에 기초하여, 상기 제1 입력에 대응하는 제1 필드를 결정하는 단계 - 상기 제1 필드는 상기 사용자의 서비스 요구사항에 대응하는 태스크 시나리오임 -; 상기 제1 입력을 상기 제1 필드에 대응하는 의도 인식 모델에 분배하고, 상기 제1 입력에 대응하는 제1 의도를 인식하는 단계 - 상기 제1 의도는 상기 제1 필드의 하위 시나리오임 -; 상기 제1 입력으로부터, 상기 제1 의도 내의 상기 제1 슬롯에 대응하는 정보를 추출하는 단계 - 상기 제1 슬롯은 상기 제1 의도에 미리 구성되어 있고, 상기 제1 슬롯은 선택적인 키 슬롯임 -; 상기 서버가 상기 제1 슬롯에 대응하는 상기 정보가 추출되지 못한다고 결정하면, 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에게 질문을 하는 단계; 상기 통신 인터페이스를 통해 제2 입력을 수신하는 단계 - 상기 제2 입력은 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에 의해 답변된 정보를 포함하고 있음 -; 및 상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 필요한 정보라고 결정하면, 상기 제2 입력으로부터 상기 제1 슬롯에 대응하는 상기 정보를 추출하고, 상기 제1 슬롯에 대응하는 상기 정보와 상기 제1 의도에 기초하여, 상기 제1 의도에 대응하는 조작을 수행하거나; 또는 상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 불필요한 정보라고 결정하면, 상기 제1 슬롯에 대응하는 상기 정보를 추출하는 단계를 생략하고, 상기 제1 의도에 기초하여, 상기 제1 의도에 대응하는 조작을 수행하는 단계를 수행할 수 있게 한다.
가능한 일 구현에서, 상기 프로세서가 상기 제1 입력으로부터, 상기 제1 의도 내의 상기 제1 슬롯에 대응하는 정보를 추출하는 것은 구체적으로, 상기 프로세서가 상기 제1 입력으로부터 인식된 각각의 단어 또는 각각의 엔티티를 상기 제1 슬롯에 대응하는 슬롯 추출 모델에 입력하고, 상기 제1 입력의 각각의 단어 또는 각각의 엔티티에 대응하는 신뢰도를 계산하거나; 또는 상기 제1 입력의 제1 단어 또는 제1 엔티티의 신뢰도가 제1 임계값보다 크거나 같으면, 상기 제1 단어 또는 상기 제1 엔티티가 상기 제1 슬롯에 대응하는 상기 정보라고 결정하거나; 또는 상기 제1 입력의 각각의 단어 또는 각각의 엔티티의 신뢰도가 상기 제1 임계값보다 작으면, 상기 제1 슬롯에 대응하는 상기 정보가 추출되지 못한다고 결정하는 것을 포함한다.
가능한 일 구현에서, 상기 프로세서는 추가적으로, 상기 제1 슬롯이 사용자 정의 슬롯 유형에 대응하면, 상기 제1 입력으로부터 인식된 각각의 엔티티와 상기 사용자 정의 슬롯 유형의 각각의 단어 사이의 유사도를 계산하고;
상기 제1 입력으로부터 인식된 각각의 엔티티와 상기 사용자 정의 슬롯 유형의 각각의 단어 사이의 상기 유사도가 제2 임계값보다 작으면, 상기 제1 입력이 상기 제1 슬롯에 대응하는 상기 정보를 포함하지 않는다고 결정하거나; 또는 상기 제1 입력의 제2 엔티티와 상기 사용자 정의 슬롯 유형의 제2 단어 사이의 유사도가 제3 임계값보다 크거나 같으면, 상기 제2 단어가 상기 제1 슬롯에 대응하는 상기 정보라고 결정하거나; 또는 상기 제1 입력의 어느 엔티티와 상기 사용자 정의 슬롯 유형의 어느 단어 사이의 유사도가 상기 제2 임계값보다 크거나 같고 상기 제3 임계값보다 작으면, 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에게 질문을 하기로 결정하도록 구성된다.
가능한 일 구현에서, 상기 프로세서는 추가적으로, 상기 제1 입력의 각각의 단어 또는 각각의 엔티티의 신뢰도가 제4 임계값보다 작으면, 상기 제1 입력이 상기 제1 슬롯에 대응하는 상기 정보를 포함하지 않는다고 결정하거나; 또는 상기 제1 입력의 어느 단어 또는 어느 엔티티의 신뢰도가 상기 제1 임계값보다 작고 상기 제4 임계값보다 크거나 같으면, 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에게 질문을 하기로 결정하도록 구성된다.
가능한 일 구현에서, 상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 필요한 정보라고 결정하면, 상기 프로세서가 상기 제2 입력으로부터 상기 제1 슬롯에 대응하는 상기 정보를 추출하는 것은 구체적으로, 상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 필요한 정보라고 결정하면, 상기 프로세서가 상기 제1 슬롯에 대응하는 상기 슬롯 추출 모델을 이용하여 또는 규칙을 이용하여 상기 제2 입력으로부터 상기 제1 슬롯에 대응하는 상기 정보를 추출하는 것을 포함한다.
가능한 일 구현에서, 제2 슬롯이 추가적으로 상기 제1 의도에 미리 구성되어 있고, 상기 제2 슬롯이 필수 슬롯이면, 상기 프로세서는 더 구체적으로, 상기 프로세서가 상기 제2 슬롯에 대응하는 정보가 추출되지 못한다고 결정할 때, 상기 제2 슬롯에 대응하는 상기 정보를 추출하기 위해 상기 사용자에게 질문을 하고; 상기 통신 인터페이스를 통해 제3 입력을 수신하고, 상기 제3 입력으로부터 상기 제2 슬롯에 대응하는 상기 정보를 추출하며 - 여기서, 상기 제3 입력은 상기 사용자의 답변을 포함하고 있음 -; 상기 제1 의도, 상기 제1 슬롯에 대응하는 상기 정보, 및 상기 제2 슬롯에 대응하는 상기 정보에 기초하여, 상기 상기 제1 의도에 대응하는 조작을 수행하거나; 또는 상기 제2 슬롯에 대응하는 상기 정보와 상기 제1 의도에 기초하여, 상기 상기 제1 의도에 대응하는 조작을 수행하도록 구성된다.
가능한 일 구현에서, 제3 슬롯이 추가적으로 상기 제1 의도에 미리 구성되어 있고, 상기 제3 슬롯이 선택적인 넌-키 슬롯이면, 상기 프로세서는 더 구체적으로, 상기 프로세서가 상기 제3 슬롯에 대응하는 정보가 추출되지 못한다고 결정할 때, 상기 제3 슬롯에 대응하는 상기 정보를 추출하는 것을 생략하도록 구성된다.
제3 양태에 따르면, 컴퓨터 저장 매체가 제공되고, 컴퓨터 명령을 포함한다. 상기 컴퓨터 명령은 단말기 상에서 실행될 때 상기 단말기로 하여금 제1 양태 또는 제1 양태의 가능한 구현 중 어느 하나의 인간-컴퓨터 대화 시스템에 적용될 수 있는 방법을 수행할 수 있게 한다.
제4 양태에 따르면, 컴퓨터 프로그램 제품이 제공된다. 상기 컴퓨터 프로그램 제품은 컴퓨터 상에서 실행될 때 상기 컴퓨터로 하여금 제1 양태 또는 제1 양태의 가능한 구현 중 어느 하나의 인간-컴퓨터 대화 시스템에 적용될 수 있는 방법을 수행할 수 있게 한다.
도 1a는 종래 기술의 인간-컴퓨터 대화를 위한 단말기 인터페이스를 개략적으로 나타내는 도면이다.
도 1b는 본 출원의 일 실시예에 따른 인간-컴퓨터 대화를 위한 단말기 인터페이스를 개략적으로 나타내는 도면이다.
도 2는 본 출원의 일 실시예에 따른 인간-컴퓨터 대화 시스템의 구성 요소의 개략도 1이다.
도 3은 본 출원의 일 실시예에 따른 인간-컴퓨터 대화 시스템의 구성 요소의 개략도 2이다.
도 4는 본 출원의 일 실시예에 따른 전자 장치를 개략적으로 나타내는 구조도이다.
도 5a 내지 도 5c는 본 출원의 일 실시예에 따른 전자 장치의 일부 인터페이스를 개략적으로 나타내는 도면이다.
도 6a 내지 도 6c는 본 출원의 일 실시예에 따른 전자 장치의 다른 일부 인터페이스를 개략적으로 나타내는 도면이다.
도 7은 본 출원의 일 실시예에 따른 전자 장치의 다른 일부 인터페이스를 개략적으로 나타내는 도면이다.
도 8a와 도 8b는 본 출원의 일 실시예에 따른 전자 장치의 다른 일부 인터페이스를 개략적으로 나타내는 도면이다.
도 9a와 도 9b는 본 출원의 일 실시예에 따른 인간-컴퓨터 상호작용 방법의 개략적인 흐름도 1이다.
도 10a와 도 10b는 본 출원의 일 실시예에 따른 인간-컴퓨터 상호작용 방법의 개략적인 흐름도 2이다.
도 11은 본 출원의 일 실시예에 따른 서버를 개략적으로 나타내는 구조도이다.
이하, 본 출원의 실시예의 첨부 도면을 참조하여 본 출원의 실시예의 기술적 해결책에 대해 설명한다. 본 출원의 실시예의 설명에서, "/"는 달리 명시되지 않는 한 "또는"을 의미한다. 예를 들어, A/B는 "A 또는 B"를 나타낼 수 있다. 본 명세서에서, "및/또는"이 연관된 대상을 설명하기 위한 연관 관계만을 설명하며 3가지 관계가 존재할 수 있음을 나타낸다. 예를 들어, "A 및/또는 B"는 3가지 경우, 즉 A만 존재하는 경우, A와 B가 모두 존재하는 경우, 및 B만 존재하는 경우를 나타낼 수 있다.
"제1" 및 "제2"와 같은 용어들은 설명의 목적을 위한 것일 뿐이고, 상대적 중요성을 표시하거나 암시하거나 또는 표시된 기술적 특징의 개수를 암시하는 것으로 이해해서는 안 된다. 따라서, "제1" 또는 "제2"에 의해 제한되는 기능이 명시적으로 또는 묵시적으로 하나 이상의 기능을 포함할 수 있다. 본 출원의 실시예의 설명에서, 달리 명시되지 않는 한, "복수"가 2개 이상을 의미한다.
종래 기술에서, 챗봇이 사용자 입력 오류, 음성 인식 오류, 또는 부정확한 슬롯 추출 알고리즘과 같은 요인으로 인해 일부 선택적인 슬롯에 대응하는 키 정보를 추출하지 못한다. 따라서, 챗봇에 의해 수행되는 후속 조작이 사용자 요구사항을 만족하지 못한다. 본 출원의 실시예는 인간-컴퓨터 상호작용 방법을 제공함으로써, 선택적인 슬롯을 선택적인 키 슬롯과 선택적인 넌-키 슬롯(non-key slot)으로 더 분류한다. 또한, 사용자 확인 메커니즘이 선택적인 키 슬롯에 대해 구성된다. 구체적으로, 챗봇이 모든 사전 설정된 슬롯에 대응하는 정보를 사용자 담화에 기초하여 자동으로 추출하는 과정에서, 어느 정보가 추출되지 못하는지에 대응하는 슬롯이 있고 또한 이 슬롯이 선택적인 키 슬롯이면, 챗봇은 선택적인 키 슬롯에 대응하는 정보가 필요한지 여부에 관해 사용자에게 적극적으로 확인을 요청한다. 선택적인 키 슬롯에 대응하는 정보가 필요하면, 챗봇은 사용자의 답변에 기초하여, 선택적인 키 슬롯에 대응하는 정보를 계속 추출한다. 선택적인 키 슬롯에 대응하는 정보가 불필요하면, 챗봇은 더 이상 선택적인 키 슬롯에 대응하는 정보를 추출하지 않는다. 다르게 말하면, 챗봇은 사용자로부터 추가 확인을 요청하지 않는다. 이와 같이, 선택적인 키 슬롯에 대응하는 정보가 추출되지 못하면, 챗봇은 추가적으로 사용자로부터 확인을 요청함으로써, 사용자 의도의 정확한 인식을 보장하고, 사용자 요구사항을 만족하며, 사용자 경험을 개선할 수 있다.
선택적인 키 슬롯은, 의도를 표현할 때 사용자가 반드시 선택적인 키 슬롯에 대응하는 정보를 표현할 필요가 없음을 의미한다고 이해할 수 있을 것이다. 슬롯에 대응하는 정보가 표현되지 않으면, 챗봇은 슬롯에 대응하는 정보를 무시할 수 있다. 하지만, 사용자가 슬롯에 대응하는 정보를 표현했으면, 챗봇은 슬롯에 대응하는 정보를 정확하게 추출할 필요가 있다.
예를 들어, 도 1b는 본 출원의 일 실시예에 따른 챗봇과 사용자 간의 대화 과정의 예를 나타낸다. "카풀"은 선택적인 키 슬롯으로서 차량 호출 애플리케이션에 구성되어 있다. 챗봇과 사용자 간의 대화에서, 사용자는 "카풀"이라고 말하지만 챗봇은 정보(즉, 선택적인 키 슬롯에 대응하는 정보)를 추출하지 못한다. 이 경우, 챗봇은 사용자에게 추가 확인을 요청해야 한다. 즉, 사용자에게 "카풀 타시게요?"라는 질문을 해야 한다. 그런 다음, 챗봇은 사용자의 답변으로부터 선택적인 키 슬롯에 대응하는 정보를 추출함으로써, 사용자의 의도에 대응하는 조작이 정확하게 수행되도록 보장한다.
사용자의 답변이 "카풀"이면, 사용자가 카풀을 할 의향이 있음을 나타내고, 선택적인 키 슬롯에 대응하는 정보가 중요하다. 선택적인 키 슬롯에 대응하는 정보를 추출한 후, 챗봇은 사용자를 위해 카풀링 주문(carpooling order)을 할 수 있다. 사용자의 대답이 "카풀하지 않음"이면, 사용자가 카풀을 할 의향이 없는 것이고, 선택적인 키 슬롯에 대응하는 정보가 중요하다. 선택적인 키 슬롯에 대응하는 정보를 추출한 후, 챗봇은 사용자를 위해 넌-카풀링 주문을 할 수 있다. 사용자의 대답이 "상관 없다"이면, 선택적인 키 슬롯에 대응하는 정보가 중요하지 않다는 것을 나타낸다. 챗봇은 카풀링 요인을 고려하지 않고 사용자를 위해 주문을 할 수 있다. 선택적인 키 슬롯에 대응하는 정보에 관해 사용자에게 확인을 요청하는 것은, 선택적인 키 슬롯에 대응하는 중요한 정보의 추출을 완료할 뿐만 아니라 사용자의 의지를 결정하는 데 도움이 될 수 있음을 이해할 수 있을 것이다. 이를 통해 챗봇이 사용자의 의도에 대응하는 조작을 수행하는 정확도를 개선하는 데 도움이 되고, 사용자 경험을 개선한다.
본 출원의 실시예에서 제공되는 인간-컴퓨터 상호작용 방법이 도 2에 도시된 인간-컴퓨터 대화 시스템에 적용될 수 있다. 인간-컴퓨터 대화 시스템은 전자 장치(100)와 하나 이상의 서버(200)(예를 들어, 챗봇)를 포함한다. 전자 장치(100)는 통신 네트워크(3G/4G/5G 통신 네트워크와 같은 통신 네트워크) 또는 와이파이 네트워크 등을 통해 서버(200)에 연결될 수 있다. 본 출원의 실시예에서는 이에 대해 제한하지 않는다.
사용자는 전자 장치(100)를 이용하여 서버(200)와 인간-컴퓨터 대화를 할 수 있다. 전자 장치(100)는 휴대폰, 태블릿 컴퓨터, 개인용 컴퓨터(Personal Computer, PC), 개인용 정보 단말기(Personal Digital Assistant, PDA), 스마트워치, 넷북, 웨어러블 전자 기기, 증강 현실(Augmented Reality, AR) 장치, 가상 현실(Virtual Reality, VR) 장치, 차량 탑재 기기(vehicle-mounted device), 스마트 자동차, 및 스마트 스피커 등일 수 있다. 본 출원에서는 전자 장치(100)의 구체적인 형태를 구체적으로 제한하지 않는다.
서버(200)는 전자 장치(100)에 인간-컴퓨터 대화 서비스를 제공하고, 전자 장치에 의해 입력된 사용자 담화에 기초하여 사용자의 의도를 인식하여 사용자 요구사항을 학습하고 또한 사용자에게 대응하는 서비스를 제공할 수 있다. 서버(200)는 전자 장치(100)의 벤더의 서버, 예를 들어 전자 장치(100) 상의 음성 비서의 클라우드 서버일 수 있다. 대안적으로, 서버(300)는 다른 애플리케이션에 대응하는 서버일 수 있다. 본 출원의 실시예에서는 이에 대해 제한하지 않는다.
일부 실시예에서, 서버(200)가 사용자 요구사항을 학습한 후 대응하는 서비스 요청을 대응하는 제3자 애플리케이션에 대응하는 서버(300)에 송신하고, 제3자 애플리케이션에 대응하는 서버(300)의 응답 정보를 전자 장치(100)에 반환할 수 있도록, 서버(200)는 추가적으로, 하나 이상의 제3자 애플리케이션에 대응하는 서버(300)로의 통신 연결을 구축할 수 있다. 일부 다른 실시예에서, 제3자 애플리케이션의 개발자 또는 매니저가 전자 장치(400)를 이용하여 서버(200)에 로그인하여 제3자 애플리케이션에 의해 제공되는 서비스를 구성하고 관리할 수 있도록, 서버(200)는 추가적으로, 제3자 애플리케이션과 함께 전자 장치(400)로의 통신 연결을 구축한다.
도 3은 본 출원의 일 실시예에 따른 다른 인간-컴퓨터 대화 시스템의 프레임워크 다이어그램이다. 이하, 프레임워크 다이어그램을 참조하여 본 출원의 실시예에 적용 가능한 인간-컴퓨터 상호작용 과정에 대해 먼저 설명한다.
먼저, 사용자는 전자 장치(100)를 통해 사용자 진술(음성 형식 또는 텍스트 형식일 수 있음)을 서버(200)에 입력할 수 있다. 사용자 진술이 음성 형식이면, 전자 장치(100)는 음성 형식의 사용자 진술을 텍스트 형식의 사용자 진술로 변환한 후, 텍스트 형식의 사용자 진술을 서버(200)에 전송하거나, 또는 서버(200)는 음성 형식의 사용자 진술을 텍스트 형식의 사용자 진술로 변환할 수 있다. 본 출원의 본 실시예에서는 이에 대해 제한하지 않는다.
서버(200)가 전자 장치(100)에 의해 송신된 사용자 진술을 수신한 후, 서버(200) 내의 자연어 이해(Natural Language Understanding, NLU) 모듈이 사용자 진술에 대해 시맨틱 이해를 먼저 수행한다. 구체적으로, 사용자 진술이 자연어 이해 모듈에 의해 처리될 때, 사용자 진술은 3개의 하위 모듈, 즉 필드 분류 모듈, 의도 분류 모듈, 및 슬롯 추출 모듈에 의해 처리될 필요가 있다. 일반적으로, 서버(200)는 복수의 특정 태스크 시나리오, 예를 들어 식사 주문 시나리오, 승차 공유 시나리오, 및 날씨 확인 시나리오를 통합한다. 따라서, 필드 분류 모듈은 사용자 진술이 속한 특정 태스크 시나리오를 먼저 인식하고, 사용자 진술을 특정 태스크 시나리오에 분배할 수 있다. 의도 인식 모듈이 사용자 의도를 인식하고 사용자 진술을 특정 태스크 시나리오의 하위 시나리오에 분배할 수 있다. 슬롯 추출 모듈은 사용자 진술로부터 엔티티(entity)를 인식하고 슬롯 채우기(Slot Filling)를 수행할 수 있다. 예를 들어, 개체명 인식(Named Entity Recognition, NER)이 사용자 진술에서 특정 의미를 가진 엔티티, 예컨대 사람 이름, 장소 이름, 시간, 날짜, 기관 이름, 조직 이름, 또는 금전적 값을 인식하는 데 사용될 수 있다. 사용자 진술에서 추출된 각각의 단어의 특징을 각각의 엔티티의 미리 정의된 특징과 비교하여 사용자 진술로부터 대응하는 엔티티를 인식하는 것으로 단순하게 이해할 수 있다.
예를 들어, 도 1b에 도시된 대화가 여전히 설명을 위한 예로 사용된다. 필드 분류 모듈은 사용자의 "저를 위해 차를 불러주세요"에 기초하여, 사용자를 위해 승차 공유 태스크가 실행될 필요가 있다고 결정할 수 있다(하위 시나리오는 개인 차량 태스크, 익스프레스 태스크, 및 승차 공유 태스크를 더 포함할 수 있다). 그런 다음, 의도 분류 모듈은 사용자의 "디디 익스프레스(DiDi express)"에 기초하여, 사용자에 대한 익스프레스 태스크를 실행하기로 결정할 수 있다. 그런 다음, 슬롯 추출 모듈은 목적지 슬롯에 대응하는 정보를 "선전만 공원"으로 그리고 출발 시간 슬롯에 대응하는 정보를 "8:30"으로 추출할 수 있다. 유의해야 할 것은, 도 1b에서, 사용자가 출발지 슬롯에 대응하는 정보를 말하지 않고, 슬롯 추출 모듈이 사용자에 의해 설정된 디폴트 출발 장소를 출발지 슬롯에 대응하는 정보로 추출할 수 있거나, 또는 슬롯 추출 모듈이 GPS를 이용하여 위치 확인(positioning)을 수행하고, 확인된 위치를 출발지 슬롯에 대응하는 정보로 사용한다는 것이다, .
자연어 이해 모듈의 출력이 대화 관리(Dialog Management) 모듈의 입력으로 사용된다. 대화 관리 모듈은 상태 추적 모듈과 대화 정책 모듈을 포함한다. 상태 추적 모듈은 연속 대화의 다양한 유형의 정보를 포함하고, 이전 상태, 사용자 상태(자연어 이해 모듈에 의해 출력된 정보), 및 시스템 상태에 기초하여(즉, 데이터베이스에 질의하는 것에 기초하여) 현재 대화 상태를 업데이트한다. 대화 정책이 태스크 시나리오와 밀접하게 관련되어 있으며 일반적으로 대화 관리 모듈의 출력으로 사용된다. 예를 들어, 대화 정책이 누락된 필수 슬롯에 대한 질문 메커니즘일 수 있다.
본 출원의 실시예에서, 대화 정책은 누락된 선택적인 키 슬롯에 대한 확인 메커니즘을 더 포함한다. 구체적으로, 누락된 선택적인 키 슬롯에 대한 확인 메커니즘과 누락된 필수 슬롯에 대한 질문 메커니즘이 병렬로 또는 직렬로 실행될 수 있다. 다르게 말하면, 본 출원의 실시예에서는 확인 메커니즘과 질문 메커니즘의 실행 순서에 대해 제한하지 않는다. 다음의 실시예에서 구체적인 확인 메커니즘을 상세하게 설명할 것이고, 여기서는 세부사항에 대해 설명하지 않는다.
자연어 생성(Natural Language Generation, NLG) 모듈이 대화 관리 모듈의 출력에 기초하여 텍스트 정보를 생성하고, 사용자에게 텍스트 정보를 피드백한다. 즉, NLG 모듈이 사용자와의 인간-컴퓨터 상호작용 과정을 완료한다. 자연어 생성 모듈은 템플릿 기반의 방식, 또는 신택스 기반의 방식, 또는 모델 기반의 방식 등으로 자연어를 생성할 수 있다. 템플릿 기반의 방식과 신택스 기반의 방식에서, 규칙 기반의 정책이 주로 사용되고, 모델 기반의 방식에서, 예를 들어, 장단기 메모리(Long Short-Term Memory, LSTM)가 사용될 수 있다. 본 출원의 실시예에서는 자연어를 생성하는 구체적인 구현에 대해 제한하지 않는다.
도 4는 전자 장치(100)를 개략적으로 나타내는 구조도이다.
전자 장치(100)는 프로세서(110), 외부 메모리 인터페이스(120), 내부 메모리(121), 범용 직렬 버스(universal serial bus, USB) 포트(130), 충전 관리 모듈(140), 전력 관리 모듈(141), 배터리(142), 안테나(1), 안테나(2), 이동 통신 모듈(150), 무선 통신 모듈(160), 오디오 모듈(170), 스피커(170A), 수신기(170B), 마이크(170C), 헤드셋 잭(170D), 센서 모듈(180), 버튼(190), 모터(191), 표시기(192), 카메라(193), 디스플레이(194), 및 가입자 식별 모듈(subscriber identification module, SIM) 카드 인터페이스(195) 등을 포함할 수 있다. 센서 모듈(180)은 압력 센서(180A), 자이로스코프 센서(180B), 대기압 센서(180C), 자기 센서(180D), 가속도 센서(180E), 거리 측정 센서(180F), 광학 근접 센서(180G), 지문 센서(180H), 온도 센서(180J), 터치 센서(180K), 주변광 센서(180L), 및 골전도 센서(180M) 등을 포함할 수 있다.
본 출원의 실시예에 도시된 구조가 전자 장치(100)를 구체적으로 제한하지 않는다고 이해할 수 있을 것이다. 본 출원의 일부 다른 실시예에서, 전자 장치(100)는 도면에 도시된 것보다 많거나 또는 적은 구성 요소를 포함할 수 있거나, 또는 일부 구성 요소가 결합될 수 있거나, 또는 일부 구성 요소가 분할될 수 있거나, 또는 서로 다른 구성 요소 배치가 사용될 수 있다. 도면에 도시된 구성 요소는 하드웨어, 또는 소프트웨어, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다.
프로세서(110)는 하나 이상의 처리 유닛을 포함할 수 있다. 예를 들어, 프로세서(110)는 애플리케이션 프로세서(application processor, AP), 모뎀 프로세서, 그래픽 처리 장치(graphics processing unit, GPU), 이미지 신호 프로세서(image signal processor, ISP), 컨트롤러, 메모리, 비디오 코덱, 디지털 신호 프로세서(digital signal processor, DSP), 베이스밴드 프로세서, 및/또는 신경망 처리 유닛(neural-network processing unit, NPU)을 포함할 수 있다. 서로 다른 처리 유닛은 독립적인 장치일 수 있거나, 또는 하나 이상의 프로세서에 통합될 수 있다.
컨트롤러는 전자 장치(100)의 신경 중심과 명령 중심일 수 있다. 컨트롤러는 명령 연산 코드와 시간 시퀀스 신호에 기초하여 연산 제어 신호를 생성함으로써, 명령을 판독하고 명령을 실행하도록 제어할 수 있다.
메모리가 프로세서(110)에 추가로 배치될 수 있고, 명령과 데이터를 저장하도록 구성된다. 일부 실시예에서, 프로세서(110)의 메모리는 캐시 메모리이다. 캐시 메모리는 프로세서(110)에 의해 방금 사용되었거나 또는 주기적으로 사용되는 명령이나 데이터를 저장할 수 있다. 프로세서(110)가 명령이나 데이터를 다시 사용할 필요가 있으면, 프로세서(110)는 메모리로부터 명령이나 데이터를 직접 호출하여 중복 접근을 방지할 수 있다. 이는 프로세서(110)의 대기 시간을 줄이고 시스템 효율을 개선한다.
일부 실시예에서, 프로세서(110)는 하나 이상의 인터페이스를 포함할 수 있다. 하나 이상의 인터페이스는 I2C(inter-integrated circuit) 인터페이스, I2S(inter-integrated circuit sound, I2S) 인터페이스, 펄스 코드 변조(pulse code modulation, PCM) 인터페이스, 범용 비동기화 수신기/송신기(universal asynchronous receiver/transmitter, UART) 인터페이스, MIPI(mobile industry processor interface), 범용 입력/출력(general-purpose input/output, GPIO) 인터페이스, 가입자 식별 모듈(subscriber identity module, SIM) 인터페이스, 및/또는 범용 직렬 버스(universal serial bus, USB) 포트 등을 포함할 수 있다.
I2C 인터페이스는 양방향 동기화 직렬 버스이고, 직렬 데이터선(serial data line, SDA)과 직렬 클록선(serial clock line)을 포함한다. 일부 실시예에서, 프로세서(110)는 복수의 그룹의 I2C 버스를 포함할 수 있다. 프로세서(110)는 서로 다른 I2C 버스 인터페이스를 통해 터치 센서(180K), 충전기, 플래시 라이트, 및 카메라(193) 등에 개별적으로 연결될 수 있다. 예를 들어, 프로세서(110)가 I2C 버스 인터페이스를 통해 터치 센서(180K)와 통신할 수 있도록, 프로세서(110)는 I2C 인터페이스를 통해 터치 센서(180K)에 연결되어 전자 장치(100)의 터치 기능을 구현할 수 있다.
I2S 인터페이스는 오디오 통신을 수행하도록 구성될 수 있다. 일부 실시예에서, 프로세서(110)는 복수의 그룹의 I2S 버스를 포함할 수 있다. 프로세서(110)는 I2S 버스를 통해 오디오 모듈(170)에 연결되어 프로세서(110)와 오디오 모듈(170) 간의 통신을 구현할 수 있다. 일부 실시예에서, 오디오 모듈(170)은 I2S 인터페이스를 통해 오디오 신호를 무선 통신 모듈(160)에 전송함으로써, 블루투스 헤드셋을 통해 전화를 받는 기능을 구현할 수 있다.
PCM 인터페이스는 오디오 통신을 수행하고, 아날로그 신호를 샘플링하고, 양자화하며, 인코딩하도록 구성될 수도 있다. 일부 실시예에서, 오디오 모듈(170)은 PCM 버스 인터페이스를 통해 무선 통신 모듈(160)에 연결될 수 있다. 일부 실시예에서, 오디오 모듈(170)은 대안적으로 PCM 인터페이스를 통해 무선 통신 모듈(160)에 오디오 신호를 전송하여, 블루투스 헤드셋을 통해 전화를 받는 기능을 구현할 수 있다. I2S 인터페이스와 PCM 인터페이스는 모두 오디오 통신을 수행하도록 구성될 수 있다.
UART 인터페이스는 범용 직렬 데이터 버스이고, 비동기 통신을 수행하도록 구성된다. 범용 직렬 데이터 버스는 양방향 통신 버스일 수 있고, 직렬 통신과 병렬 통신 사이에서 전송될 데이터를 변환한다. 일부 실시예에서, UART 인터페이스는 일반적으로 프로세서(110)와 무선 통신 모듈(160)을 연결하도록 구성된다. 예를 들어, 프로세서(110)는 UART 인터페이스를 통해 무선 통신 모듈(160) 내의 블루투스 모듈과 통신하여 블루투스 기능을 구현할 수 있다. 일부 실시예에서, 오디오 모듈(170)은 UART 인터페이스를 통해 무선 통신 모듈(160)에 오디오 신호를 전송함으로써, 블루투스 헤드셋을 통해 음악을 재생하는 기능을 구현할 수 있다.
MIPI 인터페이스는 프로세서(110)를 디스플레이(194) 또는 카메라(193)와 같은 주변 장치에 연결하도록 구성될 수 있다. MIPI 인터페이스는 카메라 직렬 인터페이스(camera serial interface, CSI)와 디스플레이 직렬 인터페이스(display serial interface, DSI) 등을 포함한다. 일부 실시예에서, 프로세서(110)는 CSI 인터페이스를 통해 카메라(193)와 통신하여 전자 장치(100)의 촬영 기능을 구현한다. 프로세서(110)는 DSI 인터페이스를 통해 디스플레이(194)와 통신하여 전자 장치(100)의 표시 기능을 구현한다.
GPIO 인터페이스는 소프트웨어를 이용하여 구성될 수 있다. GPIO 인터페이스는 제어 신호로서 구성되거나 데이터 신호로서 구성될 수 있다. 일부 실시예에서, GPIO 인터페이스는 프로세서(110)를 카메라(193), 디스플레이(194), 무선 통신 모듈(160), 오디오 모듈(170), 및 센서 모듈(180) 등에 연결하도록 구성될 수 있다. GPIO 인터페이스는 대안적으로 I2C 인터페이스, 또는 I2S 인터페이스, 또는 UART 인터페이스, 또는 MIPI 인터페이스 등으로 구성될 수 있다.
USB 포트(130)는 USB 표준 사양을 따르는 포트이며, 구체적으로 미니 USB 포트, 또는 마이크로 USB 포트, 또는 USB Type-C 포트 등일 수 있다. USB 인터페이스(130)는 충전기에 연결되어 전자 장치(100)를 충전하도록 구성될 수 있거나, 또는 전자 장치(100)와 주변 장치 간에 데이터를 전송하도록 구성될 수 있거나, 또는 헤드셋에 연결되어 헤드셋을 통해 오디오를 재생하도록 구성될 수 있거나, 또는 AR 장치와 같은 다른 전자 장치에 연결되도록 구성될 수 있다.
본 발명의 실시예에 도시된 모듈들 간의 인터페이스 연결 관계가 설명을 위한 예시일 뿐이고, 전자 장치(100)의 구조를 제한하지 않는다고 이해할 수 있을 것이다. 본 출원의 일부 다른 실시예에서, 전자 장치(100)는 대안적으로, 전술한 실시예와 다른 인터페이스 연결 방식 또는 복수의 인터페이스 연결 방식의 조합을 사용할 수 있다.
충전 관리 모듈(140)은 충전기로부터 충전 입력을 수신하도록 구성된다. 충전기는 무선 충전기 또는 유선 충전기일 수 있다. 유선 충전이 사용되는 일부 실시예에서, 충전 관리 모듈(140)은 USB 포트(130)를 통해 유선 충전기로부터 충전 입력을 수신할 수 있다. 무선 충전이 사용되는 일부 실시예에서, 충전 관리 모듈(140)은 전자 장치(100)의 무선 충전 코일을 통해 무선 충전을 수신할 수 있다. 충전 관리 모듈(140)은 추가적으로, 배터리(142)를 충전할 때 전력 관리 모듈(141)을 통해 전자 장치에 전력을 공급할 수 있다.
전력 관리 모듈(141)은 배터리(142)와 충전 관리 모듈(140)을 프로세서(110)에 연결하도록 구성된다. 전력 관리 모듈(141)은 배터리(142) 및/또는 충전 관리 모듈(140)로부터 입력을 수신하고, 프로세서(110), 내부 메모리(121), 외부 메모리, 디스플레이(194), 카메라(193), 및 무선 통신 모듈(160) 등에 전력을 공급한다. 전력 관리 모듈(141)은 추가적으로, 배터리 전력, 배터리 사이클 카운트, 및 배터리 건강 상태(누전 또는 임피던스)와 같은 파라미터를 모니터링하도록 구성될 수 있다. 일부 다른 실시예에서, 전력 관리 모듈(141)은 대안적으로 프로세서(110)에 배치될 수 있다. 일부 다른 실시예에서, 전력 관리 모듈(141)과 충전 관리 모듈(140)은 대안적으로 동일한 장치에 배치될 수 있다.
전자 장치(100)의 무선 통신 기능이 안테나(1), 안테나(2), 이동 통신 모듈(150), 무선 통신 모듈(160), 모뎀 프로세서, 및 베이스밴드 프로세서 등을 통해 구현될 수 있다.
안테나(1)와 안테나(2)는 각각 전자기파 신호를 송수신하도록 구성된다. 전자 장치(100)의 각각의 안테나가 하나 이상의 통신 대역을 커버하도록 구성될 수 있다. 서로 다른 안테나가 안테나 이용율을 개선하기 위해 추가로 다중화될 수 있다. 예를 들어, 안테나(1)는 무선 근거리 통신망에서 다이버시티 안테나로서 다중화될 수 있다. 일부 다른 실시예에서, 안테나는 튜닝 스위치와 조합하여 사용될 수 있다.
이동 통신 모듈(150)은 전자 장치(100)에 적용되는 무선 통신 솔루션, 예를 들어 2G/3G/4G/5G 무선 통신을 포함하는 통신 솔루션을 제공할 수 있다. 이동 통신 모듈(150)은 적어도 하나의 필터, 스위치, 전력 증폭기, 및 저잡음 증폭기(low noise amplifier, LNA) 등을 포함할 수 있다. 이동 통신 모듈(150)은 안테나(1)를 통해 전자파를 수신하고, 수신된 전자파에 대해 필터링 또는 증폭과 같은 처리를 수행하며, 복조를 위해 전자기파를 모뎀 프로세서에 전송할 수 있다. 이동 통신 모듈(150)은 모뎀 프로세서에 의해 변조된 신호를 더 증폭하고, 증폭된 신호를 안테나(1)를 통해 전자기파로 변환하여 방사할 수 있다. 일부 실시예에서, 이동 통신 모듈(150)의 적어도 일부 기능 모듈은 프로세서(110)에 배치될 수 있다. 일부 실시예에서, 이동 통신 모듈(150)의 적어도 일부 기능 모듈은 프로세서(110) 내의 적어도 일부 모듈과 동일한 장치에 배치될 수 있다.
모뎀 프로세서는 변조기와 복조기를 포함할 수 있다. 변조기는 송신될 저주파 베이스밴드 대역 신호를 중간 고주파 신호로 변조하도록 구성된다. 복조기는 수신된 전자기파 신호를 저주파 베이스밴드 신호로 복조하도록 구성된다. 그러면, 복조기는 복조를 통해 얻어진 저주파 베이스밴드 신호를 베이스밴드 프로세서에 전송하여 처리한다. 저주파 베이스밴드 신호는 베이스밴드 프로세서에 의해 처리된 후 애플리케이션 프로세서에 전송된다. 애플리케이션 프로세서는 오디오 장치(스피커(170A) 또는 수신기(170B) 등으로 제한되지 않음)를 통해 사운드 신호를 출력하거나, 또는 디스플레이(194)를 통해 이미지 또는 비디오를 표시한다. 일부 실시예에서, 모뎀 프로세서는 독립적인 장치일 수 있다. 일부 다른 실시예에서, 모뎀 프로세서는 프로세서(110)와 독립적일 수 있고, 이동 통신 모듈(150) 또는 다른 기능 모듈과 동일한 장치에 배치된다.
무선 통신 모듈(160)은 무선 통신 솔루션, 예를 들어 전자 장치(100)에 적용되는 무선 근거리 통신망(wireless local area networks, WLAN)(예를 들어, 와이파이(wireless fidelity, Wi-Fi) 네트워크), 또는 블루투스(bluetooth, BT), 또는 범지구 위성 항법 시스템(global navigation satellite system, GNSS), 또는 주파수 변조(frequency modulation, FM), 근거리 무선 통신(near field communication, NFC) 기술, 또는 적외선(infrared, IR) 기술을 포함하는 무선 통신 솔루션을 제공할 수 있다. 무선 통신 모듈(160)은 적어도 하나의 통신 처리 모듈을 통합하는 하나 이상의 장치일 수 있다. 무선 통신 모듈(160)은 안테나(2)를 통해 전자기파를 수신하고, 전자기파 신호에 대해 주파수 변조 및 필터링 처리를 수행하며, 처리된 신호를 프로세서(110)에 전송한다. 무선 통신 모듈(160)은 추가적으로, 프로세서(110)로부터 신호를 수신하고, 수신된 신호에 대해 주파수 변조 및 증폭을 수행하며, 처리된 신호를 안테나(2)를 통해 전자기파로 변환하여 방사한다.
일부 실시예에서, 전자 장치(100)에서, 전자 장치(100)가 무선 통신 기술을 이용하여 네트워크 및 다른 전자 장치와 통신할 수 있도록, 안테나(1)는 이동 통신 모듈(150)에 연결되고, 안테나(2)는 무선 통신 모듈(160)에 연결된다. 무선 통신 기술은 이동통신 글로벌 시스템(global system for mobile communications, GSM), 일반 패킷 무선 서비스(general packet radio service, GPRS), 코드분할 다중접속(Code Division Multiple Access, CDMA), 광대역 코드분할 다중접속(wideband code division multiple access, WCDMA), 시분할 싱크로너스 코드분할 다중접속(time-division code division multiple access, TD-SCDMA), 롱 텀 에볼루션(Long Term Evolution, LTE), BT, GNSS, WLAN, NFC, FM, 및/또는 IR 기술 등을 포함할 수 있다. GNSS는 위성 위치 확인 시스템(global positioning system, GPS), 세계 위성 항법 시스템(global navigation satellite system, GLONASS), 베이더우 위성 항법 시스템(beidou navigation satellite system, BDS), 준천정 위성 시스템(quasi-zenith satellite system, QZSS), 및/또는 위성 기반 보정 시스템(satellite-based augmentation system, SBAS)을 포함할 수 있다.
전자 장치(100)는 GPU, 디스플레이(194), 및 애플리케이션 프로세서 등을 통해 표시 기능을 구현한다. GPU는 이미치 처리용 마이크로프로세서이고, 디스플레이(194)와 애플리케이션 프로세서에 연결된다. GPU는 수학적 계산과 기하학적 계산을 수행하고, 그래픽 렌더링을 수행하도록 구성된다. 프로세서(110)는 프로그램 명령을 실행하여 표시 정보를 생성하거나 또는 변경하는 하나 이상의 GPU를 포함할 수 있다.
디스플레이(194)는 이미지와 비디오 등을 표시하도록 구성된다. 디스플레이(194)는 디스플레이 패널을 포함한다. 디스플레이 패널은 액정 표시 장치(liquid crystal display, LCD), 유기 발광 다이오드(organic light-emitting diode, OLED), 액티브 매트릭스 유기 발광 다이오드(active-matrix organic light-emitting diode, AMOLED), 플렉서블 발광 다이오드(flex light-emitting diode, FLED), 미니 LED, 마이크로 LED, 마이크로 OLED, 또는 양자점 발광 다이오드(quantum dot light-emitting diodes, QLED) 등일 수 있다. 일부 실시예에서, 전자 장치(100)는 하나 또는 N개의 디스플레이(194)를 포함할 수 있다(N은 1보다 큰 양의 정수).
전자 장치(100)는 ISP, 카메라(193), 비디오 코덱, GPU, 디스플레이(194), 및 애플리케이션 프로세서 등을 통해 촬영 기능을 구현할 수 있다.
ISP는 카메라(193)에 의해 피드백되는 데이터를 처리하도록 구성된다. 예를 들어, 촬영 중에 셔터가 눌러지고, 빛이 렌즈를 통해 카메라의 감광 소자에 전송된다. 카메라의 감광 소자는 광 신호를 전기 신호로 변환하고, 전기 신호를 ISP에 전송하여 처리한다. ISP는 전기 신호를 눈으로 인식할 수 있는 이미지로 변환한다. ISP는 이미지의 잡음, 밝기, 및 안색(complexion)에 대해 알고리즘 최적화를 추가로 수행할 수 있다. ISP는 촬영 시나리오의 노출 및 색온도와 같은 파라미터를 추가로 최적화할 수 있다. 일부 실시예에서, ISP는 카메라(193)에 배치될 수 있다.
카메라(193)는 정적 이미지 또는 비디오를 캡처하도록 구성된다. 물체의 광 이미지가 렌즈를 통해 생성되고, 감광 소자에 투사된다. 감광 소자는 전하 결합 소자(charge-coupled device, CCD) 또는 상보성 금속 산화막 반도체(complementary metal-oxide-semiconductor, CMOS) 광전 트랜지스터일 수 있다. 감광 소자는 광 신호를 전기 신호로 변환한 다음, 전기 신호를 ISP에 전송한다. ISP는 전기 신호를 디지털 이미지 신호로 변환하고, 처리를 위해 디지털 이미지 신호를 DSP에 출력한다. DSP는 디지털 이미지 신호를 RGB 또는 YUV와 같은 포맷의 표준 이미지 신호로 변환한다. 일부 실시예에서, 전자 장치(100)는 하나 또는 N개의 카메라(193)를 포함할 수 있다(N은 1보다 큰 양의 정수).
디지털 신호 프로세서는 디지털 신호를 처리하도록 구성된다. 디지털 이미지 신호를 처리하는 것 외에도, 디지털 신호 프로세서는 추가적으로, 다른 디지털 신호를 처리할 수 있다. 예를 들어, 전자 장치(100)가 주파수를 선택하면, 디지털 신호 프로세서는 주파수 에너지에 대해 푸리에 변환을 수행하도록 구성된다.
비디오 코덱은 디지털 비디오를 압축하거나 또는 압축 해제하도록 구성된다. 전자 장치(100)는 하나 이상의 비디오 코덱을 지원할 수 있다. 따라서, 전자 장치(100)는 동영상 전문가 그룹(moving picture experts group, MPEG)-1, MPEG-2, MPEG-3, 및 MPEG-4와 같은 복수의 코딩 포맷으로 비디오를 재생하거나 또는 녹화할 수 있다.
NPU는 신경망(neural-network, NN) 컴퓨팅 프로세서이다. NPU는 생물학적 신경망 구조를 참조하여, 예를 들어 인간 뇌 뉴런들 간의 전달 방식을 참조하여 입력 정보를 빠르게 처리하고, 지속적으로 자체 학습을 추가로 수행할 수 있다. 전자 장치(100)는 NPU를 통해 이미지 인식, 얼굴 인식, 음성 인식, 및 텍스트 이해와 같은 지능형 인식을 구현할 수 있다.
외부 메모리 인터페이스(120)는 전자 장치(100)의 저장 용량을 확장하기 위해 마이크로 SD 카드와 같은 외부 메모리 카드에 연결되도록 구성될 수 있다. 외부 메모리 카드는 외부 메모리 인터페이스(120)를 통해 프로세서(110)와 통신함으로써 데이터 저장 기능, 예를 들어 외부 메모리 카드에 음악 및 비디오와 같은 파일을 저장하는 데이터 저장 기능을 구현한다.
내부 메모리(121)는 컴퓨터 실행가능 프로그램 코드를 저장하도록 구성될 수 있고, 실행 가능한 프로그램 코드는 명령을 포함한다. 프로세서(110)는 내부 메모리(121)에 저장된 명령을 실행하여 전자 장치(100)의 다양한 기능 애플리케이션 및 데이터 처리를 구현한다. 내부 메모리(121)는 프로그램 저장 영역과 데이터 저장 영역을 포함할 수 있다. 프로그램 저장 영역은 운영체제와 적어도 하나의 기능(예를 들어, 사운드 재생 기능 또는 이미지 재생 기능)에 필요한 애플리케이션 등을 저장할 수 있다. 데이터 저장 영역은 전자 장치(100)를 사용하는 동안 생성되는 데이터(예를 들어, 오디오 데이터와 주소록 등)을 저장할 수 있다. 또한, 내부 메모리(121)는 고속 랜덤 액세스 메모리를 포함할 수 있거나, 또는 비휘발성 메모리, 예를 들어 적어도 하나의 자기 디스크 저장 장치, 또는 플래시 메모리 장치, 또는 범용 플래시 스토리지(universal flash storage, UFS)를 포함할 수 있다.
전자 장치(100)는 오디오 모듈(170), 스피커(170A), 수신기(170B), 마이크(170C), 헤드셋 잭(170D), 및 애플리케이션 프로세서 등을 통해 오디오 기능, 예컨대 음악 재생 및 녹음 기능을 구현할 수 있다.
오디오 모듈(170)은 출력을 위해 디지털 오디오 정보를 아날로그 오디오 신호로 변환하도록 구성되고, 또한 아날로그 오디오 입력을 디지털 오디오 신호로 변환하도록 구성된다. 오디오 모듈(170)은 추가적으로 오디오 신호 인코딩 및 디코딩을 수행하도록 구성될 수 있다. 일부 실시예에서, 오디오 모듈(170)은 프로세서(110)에 배치될 수 있거나, 또는 오디오 모듈(170)의 일부 기능 모듈이 프로세서(110)에 배치될 수 있다.
"혼(horn)"이라고도 하는 스피커(170A)는 오디오 전기 신호를 사운드 신호로 변환하도록 구성된다. 전자 장치(100)는 스피커(170A)를 통해 음악을 듣거나 또는 핸즈프리 통화를 할 수 있다.
"이어피스(earpiece)"라고도 하는 수신기(170B)는 오디오 전기 신호를 사운드 신호로 변환하도록 구성된다. 전자 장치(100)가 전화를 받거나 또는 음성 정보를 수신할 때, 수신기(170B)는 사람의 귀 근처에 위치하여 음성을 들을 수 있다. "마이크" 또는 "마이크로폰"이라고도 하는 마이크(170C)는 사운드 신호를 전기 신호로 변환하도록 구성된다. 전화를 걸거나 또는 음성 메시지를 보낼 때, 사용자는 마이크(170C) 근처에서 소리를 내어 마이크(170C)에 소리 신호를 입력할 수 있다. 적어도 하나의 마이크(170C)가 전자 장치(100)에 배치될 수 있다. 일부 다른 실시예에서, 2개의 마이크(170C)가 전자 장치(100)에 배치되어 사운드 신호를 수집하고 잡음 감소 기능을 구현할 수 있다. 일부 다른 실시예에서, 3개, 또는 4개 또는 그 이상의 마이크(170C)가 대안적으로 전자 장치(100)에 배치되어 사운드 신호를 수집하고, 잡음을 줄이며, 음원을 식별하고, 방향성 녹음 기능을 구현할 수 있다. 헤드셋 잭(170D)은 유선 헤드셋에 연결되도록 구성된다. 헤드셋 잭(170D)은 USB 포트(130)일 수 있거나, 또는 3.5mm 개방형 모바일 터미널 플랫폼(open mobile terminal platform, OMTP) 표준 인터페이스 또는 미국 셀룰러 통신 산업 협회(cellular telecommunications industry association of the USA, CTIA) 표준 인터페이스일 수 있다.
압력 센서(180A)는 압력 신호를 감지하도록 구성되고, 압력 신호를 전기 신호로 변환할 수 있다. 일부 실시예에서, 압력 센서(180A)는 디스플레이(194) 위에 배치될 수 있다. 저항성 압력 센서, 유도성 압력 센서, 및 용량성 압력 센서와 같은 많은 유형의 압력 센서(180A)가 있다. 용량성 압력 센서는 전도성 재료로 이루어진 적어도 2개의 평행판을 포함할 수 있다. 압력 센서(180A)에 힘이 가해지면, 전극들 간의 커패시턴스가 변한다. 전자 장치(100)는 커패시턴스 변화에 기초하여 압력 강도를 결정한다. 디스플레이(194) 상에서 터치 조작이 수행되면, 전자 장치(100)는 압력 센서(180A)를 통해 터치 조작의 세기를 검출할 수 있다. 전자 장치(100)는 압력 센서(180A)의 검출 신호에 기초하여 터치 위치를 계산할 수도 있다. 일부 실시예에서, 동일한 터치 위치에서 수행되지만 다른 터치 조작 강도를 가진 터치 조작은 다른 조작 명령에 대응할 수 있다. 예를 들어, 터치 조작 강도가 제1 압력 임계값보다 작은 터치 조작이 메시지의 아이콘에 대해 수행되면, SMS 메시지를 보는 명령이 실행된다. 터치 조작 강도가 제1 압력 임계값보다 크거나 같은 터치 조작이 메시지 아이콘에 대해 수행되면, 새로운 SMS 메시지 작성 명령이 실행된다.
자이로스코프 센서(180B)는 전자 장치(100)의 이동 자세를 결정하도록 구성될 수 있다. 일부 실시예에서, 전자 장치(100)의 3개의 축(즉, x축, y축, z축)을 중심으로 한 각속도가 자이로스코프 센서(180B)를 통해 결정될 수 있다. 자이로 스코프 센서(180B)는 촬영 중에 이미지 안정화에 사용될 수 있다. 예를 들어, 셔터가 눌러질 때, 자이로스코프 센서(180B)는 전자 장치(100)가 지터(jitter)하는 각도를 검출하고, 그 각도에 기초하여 렌즈 모듈이 보정해야 하는 거리를 계산하며, 반대의 움직임을 통해 렌즈로 하여금 전자 장치(100)의 지터를 제거할 수 있게 함으로써, 이미지 안정화를 구현한다. 자이로 스코프 센서(180B)는 추가적으로 내비게이션 시나리오와 신체 게임 시나리오(somatic game scenario)에 사용될 수 있다.
대기압 센서(180C)는 대기압을 측정하도록 구성된다. 일부 실시예에서, 전자 장치(100)는 측정을 통해 대기압 센서(180C)에 의해 획득되는 대기압 값에 기초하여 고도를 계산함으로써 위치 확인과 내비게이션을 돕는다.
자기 센서(180D)는 홀 센서(Hall sensor)를 포함한다. 전자 장치(100)는 자기 센서(180D)를 통해 플립 커버의 개폐를 검출할 수 있다. 일부 실시예에서, 전자 장치(100)가 클램쉘 폰(clamshell phone)일 때, 전자 장치(100)는 자기 센서(180D)를 통해 플립 커버의 개폐를 감지함으로써, 플립 커버의 감지된 개폐 상태에 기초하여 플립을 통해 자동 잠금 해제와 같은 기능을 설정할 수 있다
가속도 센서(180E)는 전자 장치(100)의 다양한 방향(보통 3개의 축)으로 가속도의 크기를 검출할 수 있고, 전자 장치(100)가 움직이지 않을 때 중력의 크기와 방향을 검출할 수 있다. 가속도 센서(180E)는 추가적으로, 전자 장치의 자세를 식별하도록 구성될 수 있고, 만보계와 같은 애플리케이션 및 가로 모드와 세로 모드의 전환에 적용될 수 있다.
거리 측정 센서(180F)는 거리를 측정하도록 구성된다. 전자 장치(100)는 적외선 또는 레이저 방식으로 거리를 측정할 수 있다. 일부 실시예에서, 촬영 시나리오에서, 전자 장치(100)는 거리 측정 센서(180F)를 통해 거리를 측정하여 빠른 포커싱을 구현할 수 있다.
광 근접 센서(180G)는 예를 들어, 발광 다이오드(LED) 및 광 다이오드와 같은 광 검출기를 포함할 수 있다. 발광 다이오드는 적외선 발광 다이오드일 수 있다. 전자 장치(100)는 발광 다이오드를 통해 적외선을 방출한다. 전자 장치(100)는 광 다이오드를 통해 주변 물체의 적외선 반사광을 검출한다. 충분한 반사광을 검출하면, 전자 장치(100)는 전자 장치(100) 주변에 물체가 있다고 결정할 수 있다. 불충분한 반사광을 검출할 때, 전자 장치(100)는 전자 장치(100) 주변에 물체가 없다고 결정할 수 있다. 전자 장치(100)는 광 근접 센서(180G)를 통해, 사용자가 전화를 걸기 위해 전자 장치(100)를 귀에 가까이 대고 있음을 검출할 수 있다. 이 경우, 전자 장치(100)는 절전을 위해 자동으로 화면을 끈다. 광 근접 센서(180G)는 스마트 커버 모드 또는 포켓 모드에서 자동으로 화면 잠금 해제 또는 잠금을 수행할 수 있다.
주변 광 센서(180L)는 주변 광 밝기를 검출하도록 구성된다. 전자 장치(100)는 검출된 주변 광 밝기에 기초하여 디스플레이(194)의 밝기를 적응적으로 조절할 수 있다. 주변 광 센서(180L)는 추가적으로, 촬영 중에 화이트 밸런스를 자동으로 조정하도록 구성될 수 있다. 주변 광 센서(180L)는 또한 광 근접 센서(180G)와 협력하여 전자 장치(100)가 주머니에 있는지 여부를 검출하여 우발적인 터치를 방지할 수 있다.
지문 센서(180H)는 지문을 수집하도록 구성된다. 전자 장치(100)는 수집된 지문의 특징을 이용하여 지문 기반의 잠금 해제, 애플리케이션 잠금 액세스, 지문 기반의 촬영, 및 지문 기반의 전화 응답 등을 구현할 수 있다.
온도 센서(180J)는 온도를 검출하도록 구성된다. 일부 실시예에서, 전자 장치(100)는 온도 센서(180J)에 의해 검출된 온도에 기초하여 온도 처리 정책을 실행한다. 예를 들어, 온도 센서(180J)에 의해 보고된 온도가 임계값을 초과하면, 전자 장치(100)는 온도 센서(180J) 근처의 프로세서의 성능을 저하시킴으로써 열 보호를 위한 전력 소비를 줄인다. 일부 다른 실시예에서, 온도가 다른 임계값보다 작으면, 전자 장치(100)는 저온으로 인해 전자 장치(100)가 비정상적으로 꺼지는 것을 방지하기 위해 배터리(142)를 가열한다. 일부 다른 실시예에서, 온도가 또 다른 임계값보다 작으면, 전자 장치(100)는 저온으로 인한 비정상적인 전원 꺼짐을 방지하기 위해 배터리(142)의 출력 전압을 승압한다.
터치 센서(180K)는 "터치 패널"이라고도 한다. 터치 센서(180K)는 디스플레이(194) 위에 배치될 수 있다. 터치 센서(180K)와 디스플레이(194)는 "터치 스크린"이라고도 하는 터치 스크린을 형성한다. 터치 센서(180K)는 터치 센서(180K) 위에서 또는 그 근처에서 수행되는 터치 조작을 검출하도록 구성된다. 터치 센서는 검출된 터치 조작을 애플리케이션 프로세서에 전달하여 터치 이벤트의 유형을 결정할 수 있다. 디스플레이(194)는 터치 조작과 관련된 시각적 출력을 제공한다. 일부 다른 실시예에서, 터치 센서(180K)는 대안적으로 디스플레이(194)의 위치와 다른 위치에서 전자 장치(100)의 표면에 배치될 수 있다.
골전도 센서(180M)는 진동 신호를 획득할 수 있다. 일부 실시예에서, 골전도 센서(180M)는 인간 성대 부분의 진동 뼈의 진동 신호를 획득할 수 있다. 골전도 센서(180M)는 혈압 박동 신호를 수신하기 위해 신체 펄스와 접촉할 수도 있다. 일부 실시예에서, 골전도 센서(180M)는 대안적으로 헤드셋에 배치되어 골전도 헤드셋을 구성할 수 있다. 오디오 모듈(170)은 성대 부분의 진동 뼈의 진동 신호로서 골전도 센서(180M)에 의해 획득된 진동 신호에 기초하여 파싱을 통해 음성 신호를 획득하여 음성 기능을 구현할 수 있다. 애플리케이션 프로세서는 골전도 센서(180M)에 의해 획득된 혈압 박동 신호에 기초하여 심박수 정보를 파싱하여 심박수 검출 기능을 구현할 수 있다.
버튼(190)은 전원 버튼과 볼륨 버튼 등을 포함한다. 버튼(190)은 기계식 버튼일 수 있고, 터치 버튼일 수 있다. 전자 장치(100)는 버튼 입력을 수신하고, 전자 장치(100)의 사용자 설정 및 기능 제어와 관련된 버튼 신호 입력을 생성할 수 있다.
모터(191)는 진동 프롬프트를 생성할 수 있다. 모터(191)는 착신호 진동 프롬프트에 사용되거나, 또는 터치 진동 피드백에 사용될 수 있다. 예를 들어, 서로 다른 애플리케이션(예를 들어, 사진 촬영 및 오디오 재생)에서 수행되는 터치 조작은 서로 다른 진동 피드백 효과에 대응할 수 있다. 디스플레이(194) 상의 서로 다른 영역에서 수행되는 터치 조작은 모터(191)의 서로 다른 진동 피드백 효과에 대응할 수 있다. 서로 다른 애플리케이션 시나리오(예를 들어, 시간 알림 시나리오, 정보 수신 시나리오, 알람 시계 시나리오, 및 게임 시나리오)는 서로 다른 진동 피드백 효과에 대응할 수도 있다. 터치 진동 피드백 효과는 대안적으로 커스터마이징될 수 있다.
표시기(192)는 충전 상태 및 전력 변화를 나타내는 데 사용될 수 있는 표시기 라이트일 수 있고, 메시지, 부재중 전화, 및 알림 등을 나타내는 데 사용될 수 있다.
SIM 카드 인터페이스(195)는 SIM 카드에 연결하도록 구성된다. SIM 카드는 전자 장치(100)와의 접촉 또는 분리를 구현하기 위해 SIM 카드 인터페이스(195)에 삽입되거나 또는 SIM 카드 인터페이스(195)로부터 제거될 수 있다. 전자 장치(100)는 하나 또는 N개의 SIM 카드 인터페이스를 지원할 수 있다(N은 1보다 큰 양의 정수). SIM 카드 인터페이스(195)는 나노 SIM 카드, 마이크로 SIM 카드, 및 SIM 카드 등을 지원할 수 있다. 복수의 카드가 하나의 SIM 카드 인터페이스(195)에 동시에 삽입될 수 있다. 복수의 카드는 동일한 유형이거나 또는 다른 유형일 수 있다. SIM 카드 인터페이스(195)는 다른 유형의 SIM 카드와 호환될 수도 있다. SIM 카드 인터페이스(195)는 외부 메모리 카드와 호환될 수도 있다. 전자 장치(100)는 SIM 카드를 통해 네트워크와 상호 작용하여 통화 및 데이터 통신과 같은 기능을 구현한다. 일부 실시예에서, 전자 장치(100)는 eSIM, 즉 임베디드 SIM 카드를 사용한다. eSIM 카드는 전자 장치(100)에 내장될 수 있고, 전자 장치(100)로부터 분리될 수 없다.
전자 장치(400)의 구조에 대해서는 도 4에 도시된 전자 장치(100)의 구조를 참조하라. 세부사항에 대해서는 다시 설명하지 않는다.
다음의 실시예의 모든 기술적 해결책이 전술한 하드웨어 아키텍처를 가진 전자 장치(100), 서버(200), 또는 전자 장치(400)에 구현될 수 있다.
이하, 본 출원의 실시예에서 제공되는 기술적 해결책에 대해 첨부 도면을 참조하여 상세하게 설명한다.
먼저, 스킬 개발자(제3자 애플리케이션의 개발자 또는 서비스 제공자 등일 수 있음)가 전자 장치(400)를 이용하여 서버(200)에 로그인하여 새로운 서비스를 구성할 수 있다. 서비스를 대안적으로 인간-컴퓨터 대화 플랫폼 상의 스킬이라고도 한다.
도 5 내지 도 8은 스킬 개발자가 새로운 스킬을 구성하는 과정에서 사용되는 일부 인터페이스를 나타낸다. 새로운 스킬을 구성하기 위해서는, 스킬 개발자가 다음의 단계를 수행해야 한다.
1. 새로운 스킬의 기본 정보를 설정
스킬 개발자는 전자 장치(400)를 통해 인간-컴퓨터 대화 플랫폼의 스킬 관리 페이지에 로그인하여 새로운 스킬 설정을 시작할 수 있다. 예를 들어, 스킬 개발자는 인간-컴퓨터 대화 플랫폼과 관련된 URL을 전자 장치(400)의 브라우저에 입력하여 스킬 관리 페이지에 로그인할 수 있다. 대안적으로, 스킬 개발자는 대응하는 앱을 통해 스킬 관리 페이지에 로그인할 수 있다.
도 5a는 스킬 관리 페이지의 홈 페이지(400)를 나타낸다. 홈 페이지(400)는 컨트롤(401)과 컨트롤(402)을 포함할 수 있다. 인간-컴퓨터 대화 플랫폼 상에 스킬 템플릿이 제공된다. 이러한 템플릿은 일부 적용 시나리오를 커버한다. 스킬 개발자는 스킬 개발자의 개인화된 요구사항을 만족하기 위해 이러한 템플릿을 수정할 수 있다. 일부 실시예에서, 스킬 개발자는 인간-컴퓨터 대화 플랫폼 상에 제공된 스킬 템플릿을 이용하여 컨트롤(402)을 선택하여 새로운 스킬을 구성할 수 있다. 일부 다른 실시예에서, 스킬 개발자는 스킬 개발자에 의해 제공되는 서비스에 기초하여 컨트롤(401)을 선택하고 사용자 정의 스킬을 추가함으로써, 최종 사용자에게 음성 상호작용 및 대응하는 서비스를 제공할 수 있다. 이하, 스킬 개발자가 컨트롤(401)을 선택하고 사용자 정의 스킬을 추가하는 예를 이용하여 설명한다.
스킬 개발자가 컨트롤(401)을 선택하는 것을 검출한 후, 전자 장치(400)는 사용자 정의 스킬을 추가하는 인터페이스에 들어간다. 도 5b는 새로운 스킬의 기본 정보를 설정하는 페이지(500)를 나타낸다. 페이지(500) 상에서 스킬 식별자, 스킬 이름, 스킬 카테고리, 새로운 스킬의 웨이크업 워드(wakeup word)와 같은 기본 정보가 설정될 수 있다.
스킬 식별자는 스킬의 전역적으로 고유한 식별자이고, 각각의 스킬의 스킬 식별자가 반복적으로 사용될 수 없다. 스킬 이름은 스킬 개발자가 생성된 스킬을 쉽게 관리할 수 있도록 스킬을 설명하는 이름이고, 스킬 이름이 반복적으로 사용되는지 여부에 대해 요구사항이 없다. 스킬 개발자는 사용자 담화를 매핑하는 동안 검색 및 스크리닝을 위해 각각의 기술에 대한 카테고리(전술한 특정 시나리오라고도 이해할 수 있음)를 선택해야 한다. 각각의 스킬은 하나의 카테고리에만 속할 수 있다. 정확한 스킬 카테고리 선택은 사용자 담화을 스킬의 의도에 빠르고 정확하게 매핑하는 데 도움이 된다. 웨이크업 워드를 스킬의 다른 이름이라고 이해할 수 있다. 사용자가 다른 이름을 말한 후, 인간-컴퓨터 대화 플랫폼은 이 스킬에 대응하는 서비스를 빠르게 획득할 수 있다.
새로운 스킬의 기본 정보의 설정이 하나씩 나열되지 않은 다른 내용을 더 포함할 수 있다고 이해할 수 있을 것이다.
2. 새로운 스킬의 의도를 생성
새로운 스킬의 기본 정보를 설정한 후, 스킬 개발자는 새로운 스킬의 의도를 생성하기 시작할 수 있다. 도 5c는 전자 장치(400)에 표시되는 의도 생성 페이지(600)를 나타낸다. 페이지(600)는 의도 이름, 선행 콘텍스트, 및 후속 콘텍스트 등을 포함할 수 있다.
의도 이름은 스킬에 반복적으로 사용될 수 없다. 이러한 콘텍스트는 주로 멀티라운드 대화 시나리오에 사용된다. 선행 콘텍스트는 현재 의도를 트리거하는 데 사용되고, 다음 콘텍스트는 다음 의도와 연관시키는 데 사용된다.
사용자의 각각의 문장이 사용자의 의도에 대응하고, 사용자의 의도가 사용자가 문장을 말하는 목적이라는 것을 유의해야 한다. 각각의 스킬은 몇 개의 의도를 포함한다. 대응하는 서비스가 제공될 수 있도록, 사용자의 각각의 문장은 사용자 요구사항을 학습하기 위한 스킬의 의도에 매핑된다. 이 스킬을 사용할 때, 사용자는 다양한 방식으로 의도를 표현한다. 따라서 스킬 개발자는 의도 설정 중에 사용자가 일상 생활에서 의도를 표현하는 데 사용하는 표현(즉, 사용자 담화)을 최대한 많이 입력해야 한다. 이 방식으로, 의도를 더 정확하게 인식할 수 있다.
3. 사용자 담화를 입력하고 슬롯을 사용자 담화에 마킹(슬롯 속성을 설정하고 슬롯 유형을 연관시키는 것을 포함하고 있음)
도 6a는 전자 장치(400) 상에 표시되는 의도 생성 페이지의 사용자 담화 설정 페이지(601)를 나타낸다. 사용자 담화 설정 페이지(601)는 하나 이상의 사용자 담화 추가 컨트롤(602)을 포함할 수 있다. 사용자 담화 설정 페이지(601)는 기존 사용자 담화의 정보 항목(603)을 추가로 표시할 수 있다.
스킬 개발자는 컨트롤(602)의 텍스트 박스에 새로운 사용자 담화를 입력하고, "추가" 기능 버튼을 클릭하여 새로운 사용자 담화를 추가할 수 있다. 일부 실시예에서, 인간-컴퓨터 대화 플랫폼은 추가된 사용자 담화로부터 엔티티를 자동으로 인식하고, 인식된 엔티티를 슬롯 및 슬롯 유형과 연관시킬 수 있다. 일부 다른 실시예에서, 인간-컴퓨터 대화 플랫폼이 슬롯을 자동으로 마킹하지 않거나 또는 슬롯을 잘못 마킹하지 않으면, 스킬 개발자는 슬롯을 수동으로 마킹하고, 마킹된 슬롯을 슬롯 유형과 연관시키도록 선택할 수 있다.
슬롯은 사용자 담화에서 의도를 표현하는 데 사용되는 핵심 정보이고, 사용자 담화에서 키워드라고 이해될 수 있다. 하나의 슬롯은 하나의 슬롯 유형에 대응하고, 슬롯의 값이 이 슬롯 유형의 다른 단어로 채워질 수 있다. 슬롯 유형은 필드 내의 단어의 집합으로 이해될 수 있다. 사용자 담화에서 슬롯에 대응하는 정보가 다양한 슬롯 유형이고, 동일한 슬롯의 단어가 대체되고, 인식되며, 추출될 수 있다.
예를 들어, 스킬 개발자가 새로운 사용자 담화를 컨트롤(602)의 텍스트 상자에 입력하고 "추가" 기능 버튼을 클릭하는 동작에 응답하여, 전자 장치(400)는 도 6b에 도시된 대화 상자(604)를 팝업한다. 스킬 개발자는 사용자 담화에 마킹된 슬롯과 대화 상자(604)의 관련 슬롯 유형을 보고 수정할 수 있다. 슬롯 유형 연관 중에 적절한 슬롯 유형이 선택되지 않을 때, 대응하는 슬롯 유형이 추가될 수 있도록, 슬롯 유형 추가 컨트롤(605)이 대화 상자(604)에 추가로 표시될 수 있다. 슬롯 목록 보기 컨트롤(606)이 추가적으로 대화 상자(604)에 표시될 수 있다. 스킬 개발자가 컨트롤(606)을 클릭하는 것에 응답하여, 전자 장치(400)는 도 6c 도시된 페이지(608)를 표시한다. 이 페이지(608)는 사용자 담화에 포함된 슬롯, 이러한 슬롯과 연관된 슬롯 유형, 슬롯의 속성(필수 슬롯, 선택적인 키 슬롯, 및 선택적인 넌-키 슬롯), 및 슬롯에 대응하는 정보가 누락되어 있을 때 묻는 질문과 같은 정보를 나타낸다. 페이지(608)는 새로운 슬롯 추가 컨트롤(607)을 더 포함할 수 있고, 컨트롤(607)은 슬롯을 사용자 담화에 추가하는 데 사용될 수 있다.
일반적으로, 페이지(608) 상에서, 스킬 개발자는 필수 슬롯에 대한 질문 메커니즘을 구성하고, 선택적인 키 슬롯에 대한 확인 메커니즘을 구성할 수 있으며, 선택적인 넌-키 슬롯에 대한 질문을 설정하지 않는다. 즉, 슬롯이 필수 슬롯이나 선택적인 키 슬롯으로 설정되면, 슬롯에 대해 질문이 설정된다. 이 질문은 디폴트 질문이거나, 또는 스킬 개발자에 의해 커스터마이징된 질문일 수 있다. 슬롯이 선택적인 넌-키 슬롯으로 설정되면, 슬롯 내의 질문이 디폴트로 "없음"으로 설정되고 변경될 수 없다. 다른 예를 들면, 새로운 사용자 담화는 "이번 금요일 수도에 비가 올까요?"이다. 마킹된 슬롯은 시간 슬롯과 도시 슬롯을 포함한다. 시간 슬롯에 대응하는 슬롯 유형이 sys.time이고, 시간 슬롯의 속성이 선택적인 키 슬롯이다. 구체적으로, 인간-컴퓨터 대화 플랫폼이 시간 슬롯에 대응하는 정보를 추출하지 못하면, 인간-컴퓨터 대화 플랫폼은 사용자에게 "질문 1"을 적극적으로 질문하고, 사용자는 시간 슬롯에 대응하는 정보가 필요한지 여부를 판정한다. 시간 슬롯에 대응하는 정보가 필요하면, 인간-컴퓨터 대화 플랫폼은 사용자의 답변으로부터 시간 슬롯에 대응하는 정보를 추출하고, 그런 다음 후속 조작을 수행한다. 시간 슬롯에 대응하는 정보가 불필요하면, 인간-컴퓨터 대화 플랫폼은 시간 슬롯에 대응하는 정보가 없다고 간주하고, 직접 후속 조작을 수행한다.
도시 슬롯에 대응하는 슬롯 유형이 sys.local.city이고, 도시 슬롯의 속성이 필수 슬롯이다. 구체적으로, 인간-컴퓨터 대화 플랫폼이 도시 슬롯에 대응하는 정보를 추출하지 못하면, 인간-컴퓨터 대화 플랫폼은 적극적으로 사용자에게 "질문 2"를 질문한다. 그런 다음, 인간-컴퓨터 대화 플랫폼은 사용자의 응답으로부터 도시 슬롯에 대응하는 정보를 추출한 다음, 후속 조작을 수행한다.
다른 선택적인 넌-키 슬롯이 사용자 담화에 마킹될 수도 있다. 구체적으로 인간-컴퓨터 대화 플랫폼이 선택적인 넌-키 슬롯에 대응하는 정보를 추출하지 못하면, 인간-컴퓨터 대화 플랫폼은 선택적인 넌-키 슬롯에 대응하는 정보가 없다고 간주하고, 직접 후속 조작을 수행한다.
본 출원의 실시예에서, 슬롯 유형은 주로 시스템 슬롯 유형과 사용자 정의 슬롯 유형(사용자 사전이라고도 할 수 있음)을 포함한다. 시스템 슬롯 유형은 인간-컴퓨터 대화 플랫폼에 의해 미리 설정된 슬롯 유형이고, 시스템 슬롯 유형의 단어이 무수히 많다. 예를 들어, sys.time, sys.location.city, sys.name, 및 sys.phoneNum이 있다. 사용자 정의 슬롯 유형은 스킬 개발자에 의해 정의되고, 사용자 정의 슬롯 유형의 단어의 개수가 제한되어 있다.
도 7은 전자 장치(400) 상에 표시된 슬롯 유형 편집 페이지(700)를 나타낸다. 스킬 개발자는 추가된 사용자 정의 슬롯 유형의 텍스트를 텍스트 상자(701)에 입력하고, 엔터(Enter)를 누를 수 있다. 스킬 개발자는 추가된 사용자 정의 슬롯 유형의 값을 값 항목(702) 아래에 입력하고, 추가된 사용자 정의 슬롯 유형에 대응하는 동의어 항목(703) 아래에 동의어를 입력하며, 그런 다음 "저장" 버튼을 클릭할 수 있다. 이와 같이, 사용자 정의 슬롯 유형이 추가된다. 사용자 정의 슬롯 유형이 슬롯 유형 편집 페이지(700)의 영역(704)에 도시된 복수의 컨트롤을 이용하여 추가로 수정되거나, 또는 삭제될 수 있다. 일부 실시예에서, 슬롯 유형 편집 페이지(700)는 슬롯 유형의 일괄 추가(batch addition)를 더 지원할 수 있다. 예를 들어, 스킬 개발자는 일괄 추가 버튼(705)을 클릭하고 지정된 파일 유형의 파일 또는 지정된 파일 포맷의 파일을 업로드하도록 선택하여 일괄적으로 슬롯 유형을 추가할 수 있다. 특정 파일 유형의 파일 또는 특정 파일 포맷의 파일은 추가될 슬롯 유형에 대응하는 하나 이상의 정보를 포함한다. 본 출원의 본 실시예에서는 이에 대해 제한하지 않는다.
4. 새로운 스킬이 설정된 후, 새로운 스킬에 대응하는 인간-컴퓨터 대화 모델을 훈련시키고 해제한다.
스킬 개발자가 새로운 스킬에 필요한 사용자 담화를 입력하고, 사용자 담화의 슬롯에 마킹, 속성 설정 및 슬롯 유형 연관을 수행한 후, 전자 장치(400)는 페이지(800)를 표시할 수 있다. 스킬 개발자는 콘트롤(801)("훈련 시작")을 클릭하여 새로운 스킬에 대응하는 인간-컴퓨터 대화 모델 훈련을 시작하도록 인간-컴퓨터 대화 플랫폼에 통지한다. 새로운 스킬에 대응하는 인간-컴퓨터 대화 모델로서 인간-컴퓨터 대화 플랫폼에 의해 훈련되는 인간-컴퓨터 대화 모델은 필드 분류 모델, 의도 분류 모델, 및 슬롯 추출 모델 등을 포함할 수 있다. 필드 분류 모델은 사용자 담화에 대한 필드 분류를 수행하는 데 사용될 수 있다. 의도 분류 모델은 사용자 담화에 대한 추가 필드 분류를 수행하는 데 사용되어 사용자 담화에 대응하는 새로운 스킬의 의도를 인식할 수 있다. 슬롯 추출 모델은 사용자 담화에서 슬롯에 대응하는 정보를 추출하는 데 사용될 수 있다. 이와 같이, 의도 분류 모델에 의해 출력된 사용자 의도에 대응하는 후속 조작은, 사용자 의도 및 슬롯에 대응하는 정보로서 슬롯 추출 모델에 의해 출력되는 정보에 기초하여 수행될 수 있다.
인간-컴퓨터 대화 플랫폼이 새로운 스킬에 대응하는 인간-컴퓨터 대화 모델을 생성한 후, 전자 장치(400)는 페이지(900)을 표시할 수 있다. 스킬 개발자는 컨트롤(902)("스킬 해제")를 클릭하여 새로운 스킬을 해제하도록 인간-컴퓨터 대화 플랫폼에 통지하고, 새로운 스킬에 대응하는 인간-컴퓨터 대화 모델을 인간-컴퓨터 대화 플랫폼에 푸시할 수 있다. 그런 다음, 다른 단말기가 인간-컴퓨터 대화 플랫폼과 대화함으로써, 인간-컴퓨터 대화 플랫폼에 의해 제공되는 새로운 스킬을 획득할 수 있다. 페이지(900)는 콘트롤(901)("재훈련")을 더 포함할 수 있고, 스킬 개발자는 컨트롤(901)을 이용하여 새로운 스킬에 대응하는 인간-컴퓨터 대화 모델을 재훈련시킬 수 있다.
도 9a와 도 9b는 본 출원의 일 실시예에 따른 인간-컴퓨터 상호작용 방법을 나타낸다. 인간-컴퓨터 상호작용 방법은 전자 장치(100)와 서버(200) 간의 상호 작용에 사용될 수 있다. 인간-컴퓨터 상호작용 방법이 구체적으로 다음의 단계를 포함한다.
S101. 서버(200)가 제1 입력을 수신한다.
전자 장치(100)를 이용하여 서버(200)와 대화 상호작용을 수행할 때, 사용자는 대응하는 서비스 요구사항을 음성 형태 또는 텍스트 형태로 서버(200)에 포워딩할 수 있다. 사용자가 음성을 입력하면, 서버(200)는 자동 음성 인식 모듈을 이용하여 음성을 인식하고, 음성을 텍스트, 즉 제1 입력으로 변환하며, 제1 입력을 자연어 이해 모듈에 입력할 수 있다. 사용자가 텍스트를 입력하면, 서버(200)는 사용자에 의해 입력된 텍스트를 제1 입력으로 사용하고, 제1 입력을 자연어 이해 모듈에 입력한다.
제1 입력은 사용자와 서버(200) 사이의 단일 라운드의 대화에서 하나의 담화일 수 있거나, 또는 사용자와 서버(200) 사이의 복수의 라운드의 대화에서 복수의 담화일 수 있다. 본 출원의 본 실시예에서는 이에 대해 제한하지 않는다.
S102. 서버(200)가, 제1 입력에 대응하는 제1 필드를 결정하기 위해 제1 입력에 기초하여 필드 분류를 수행한다.
제1 입력은 사용자 의도에 대응한다. 즉, 사용자는 서버(200)가 서비스를 제공하거나 또는 일부 조작을 수행하기를 원한다. 자연어 이해 모듈 내의 필드 분류 모듈이 제1 입력에 기초하여 검색과 스크리닝을 수행하여, 제1 입력의 사용자 의도가 속한 특정 태스크 시나리오(즉, 제1 필드)를 결정하고, 제1 입력을 특정 태스크 시나리오(즉, 제1 필드)에 분배한다.
S103. 서버(200)가 제1 입력을 제1 필드에 분배하고, 제1 입력에 대응하는 제1 의도를 인식한다.
자연어 이해 모듈 내의 의도 인식 모듈이 추가적으로, 제1 입력 내의 사용자 의도를 특정 태스크 시나리오의 하위 시나리오에 분배할 수 있다. 즉, 의도 인식 모듈이 추가적으로, 제1 입력에 대응하는 사용자 의도(즉, 제1 의도)를 인식할 수 있다.
S104. 서버(200)가 제1 입력으로부터, 제1 의도에 대응하는 슬롯 구성에 기초하여 제1 의도 내의 각각의 슬롯에 대응하는 정보를 추출한다.
제 1 의도는 서버(200) 상의 스킬에 있는 의도이다. 스킬을 구성할 때, 스킬 개발자 스킬에 있는 제1 의도에 대한 대응하는 슬롯, 즉 제1 의도에서 추출되어야 하는 슬롯, 및 이러한 슬롯의 속성을 구성한다. 따라서, 제1 입력에 대응하는 제1 의도가 결정된 후, 서버(200) 내의 슬롯 추출 모듈이 제1 의도에 대응하는 슬롯 구성을 찾을 수 있다.
서버(200) 내의 슬롯 추출 모듈은 제1 입력에 포함된 엔티티를 인식하고, 슬롯 추출 모듈에 저장된 슬롯 추출 모델을 호출하며, 이러한 엔티티에 대해 조작을 수행하여 제1 의도에 있는 슬롯으로서 이러한 엔티티에 대응하는 슬롯을 결정하고, 이러한 엔티티를 대응하는 슬롯의 라벨로 마킹할 수 있다. 또한, 이러한 엔티티가 대응하는 슬롯의 값으로 결정되는 것으로 간주할 수 있다. 즉, 이러한 슬롯에 대응하는 정보가 추출된다. 예를 들어, 슬롯 추출 모듈은 제1 입력으로부터 엔티티 A를 인식하고, 엔티티 A를 슬롯 추출 모델에서 각각의 슬롯에 대응하는 알고리즘에 입력하며, 엔티티 A에 대응하는 각각의 신뢰도를 계산한다. 엔티티 A가 슬롯 A에 대응하는 알고리즘에 입력된 후 계산되는 신뢰도가 미리 설정된 조건을 만족하지 못하면, 예를 들어 신뢰도가 사전 설정된 임계값, 예를 들어 임계값 C보다 작으면, 엔티티 A가 슬롯에 대응하는 정보 A가 아니라고 간주한다. 엔티티 A가 슬롯 B에 대응하는 알고리즘에 입력된 후 계산되는 신뢰도가 미리 설정된 조건을 만족하면, 예를 들어 신뢰도가 임계값 C보다 크거나 같으면, 엔티티 A가 슬롯에 대응하는 정보 B라고 간주한다.
일부 슬롯에 대응하는 정보가 사용자에 의해 디폴트로 설정될 수 있거나, 또는 다른 방식으로 획득된 정보일 수 있고, 반드시 제1 입력으로부터 추출될 필요는 없다는 것을 유의해야 한다.
예를 들어, 제1 의도가 "항공권 예약"이고, "항공권 예약"의 미리 설정된 슬롯 구성이 시간 슬롯, 출발 장소 슬롯, 및 목적지 슬롯을 포함할 수 있다. 사용자가 "내일 상하이행 항공권 예약"(즉, 제1 입력)을 말하면, 서버(200)는 제1 입력으로부터 복수의 엔티티, 예를 들어 "내일"과 "상하이"를 인식할 수 있다. 서버(200)는 "내일"을 계산을 위한 슬롯 추출 모델에서 시간 슬롯에 대응하는 알고리즘에 입력함으로써, 시간 슬롯("내일")의 신뢰도가 미리 설정된 조건을 만족한다는 것을 알 수 있고, "내일"을 "항공권 예약"에서 시간 슬롯의 값으로 간주할 수 있다. 다르게 말하면, 서버(200)는 제1 의도에서 시간 슬롯에 대응하는 정보를 추출한다. 유사하게, 서버(200)는 계산을 위한 슬롯 추출 모델에서 목적지 슬롯에 대응하는 알고리즘에 "상하이"를 입력함으로써, 목적지 슬롯("상하이")의 신뢰도가 미리 설정된 조건을 만족한다는 것을 알 수 있고, "상하이"를 "항공권 예약"에서 목적지 슬롯의 값으로 간주할 수 있다. 다르게 말하면, 서버(200)는 제1 의도에서 목적지 슬롯에 대응하는 정보를 추출한다. 제1 입력에는 출발지 슬롯에 대응하는 엔티티가 없다. 사용자는 GPS를 이용하여 전자 장치(100)의 현재 위치를 획득할 수 있고, 현재 위치를 출발지 슬롯의 값으로 사용한다. 대안적으로, 사용자는 사용자에 의해 디폴트로 설정된 주소를 출발지 슬롯의 값으로 사용할 수 있고, 기타 등등이다. 다르게 말하면, 서버(200)는 제1 의도에서 출발지 슬롯에 대응하는 정보를 추출한다.
S105. 서버(200)가, 제1 의도 내의 제1 슬롯에 대응하는 정보가 추출되지 못한다고 결정한다.
단계 S104가 수행될 때, 제1 입력은 제1 의도 내의 일부 슬롯에 대응하는 정보를 포함하지 않을 수 있다(예를 들어, 사용자가 정보를 말하지 않거나, 또는 사용자가 정보를 말하지만 자동 음성 인식 오류 또는 사용자 입력 오류가 발생한다). 대안적으로, 서버(200)의 슬롯 추출 모델이 부정확하면, 서버(200)는 제1 입력으로부터 제1 의도 내의 일부 슬롯에 대응하는 정보를 추출하지 못할 수 있다. 이 경우, 단계 S106과 후속 단계가 수행되어야 한다.
S106. 서버(200)가 제1 슬롯의 속성을 결정한다. 제`1 슬롯은 필수 슬롯, 또는 선택적인 키 슬롯, 또는 선택적인 넌-키 슬롯일 수 있다. 제1 슬롯이 필수 슬롯이면, 서버(200)가 단계 S107을 수행한다. 제1 슬롯이 선택적인 넌-키 슬롯이면, 서버(200)가 단계 S110을 수행한다. 제1 슬롯이 선택적인 키 슬롯이면, 서버(200)가 단계 S111을 수행한다.
구체적으로, 서버(200) 내의 슬롯 추출 모듈은, 제1 슬롯에 대응하는 정보가 추출되지 못하는 결과를 대화 관리 모듈에 송신한다. 대화 관리 모듈은 제1 슬롯의 속성을 결정하고, 제1 슬롯의 속성에 기초하여 후속 조작을 결정한다.
S107. 서버(200)가 제1 슬롯에 대응하는 정보에 관해 사용자에게 질문을 한다.
대화 관리 모듈은 제1 슬롯의 속성 및 미리 설정된 대화 정책에 기초하여, 제1 슬롯에 대응하는 정보에 관해 사용자에게 질문을 한다. 예를 들어, 서버(200)는 사용자에게 반복을 요청하거나, 또는 이전에 사용자와 교환된 질문을 사용자에게 다시 요청하거나, 또는 누락된 제1 슬롯에 관해 질문을 할 수 있다. 본 출원의 본 실시예에서는 질문 내용과 질문 방식을 제한하지 않는다.
S108. 서버(200)가 제2 입력을 수신한다.
제2 입력은 서버(200)의 질문에 대한 사용자의 답변이다. 사용자가 음성 형태로 답변을 제공하면, 서버(200) 내의 자동 음성 인식 모듈이 음성을 텍스트로 변환하여 제2 입력을 획득할 수 있다. 사용자가 텍스트 형태로 답변을 제공하면, 서버(200)는 사용자에 의해 입력된 텍스트를 제2 입력으로 사용한다. 서버는 결정된 제2 입력을 자연어 이해 모듈에 송신한다.
제2 입력은 사용자와 서버(200) 간의 단일 라운드의 대화에서 하나의 담화일 수 있거나, 또는 사용자와 서버(200) 간의 복수의 라운드의 대화에서 복수의 담화일 수 있다. 본 출원의 본 실시예에서는 이에 대해 제한하지 않는다.
S109. 서버(200)가 제2 입력에 기초하여 제1 의도 내의 제1 슬롯을 채운다.
자연어 이해 모듈 내의 슬롯 추출 모듈은 제2 입력으로부터 엔티티를 인식하고, 제1 슬롯에 대응하는 알고리즘으로서 계산을 위해 슬롯 추출 모듈에 저장된 슬롯 추출 모델에 있는 알고리즘을 호출하여 제1 슬롯에 대응하는 엔티티를 인식한다. 다르게 말하면, 결정된 엔티티가 제1 슬롯의 값으로 사용되면, 제1 슬롯에 대응하는 정보가 추출된다는 것을 나타낸다. 그런 다음, 단계 S116이 수행되어야 한다.
S110. 서버(200)가 제1 슬롯을 채우지 않는다.
자연어 이해 모듈 내의 슬롯 추출 모듈은 제1 슬롯을 제1 슬롯에 대응하는 정보로 채우지 않기로 결정한다. 즉, 슬롯 추출 모듈은 제1 슬롯의 값을 결정할 필요가 없다. 그런 다음, 단계 S116이 수행되어야 한다.
S111. 서버(200)가, 제1 슬롯에 대응하는 정보가 필요한지 여부를 판정하기 위해 사용자에게 질문을 한다.
본 출원의 일부 실시예에서, 제1 슬롯이 선택적인 키 슬롯이라고 결정한 후(즉, 단계 S106), 사용자가 제1 슬롯에 대응하는 정보를 말하는지 여부와 무관하게, 대화 관리 모듈은 제1 슬롯에 대응하는 정보에 관해 사용자에게 직접 질문을 할 수 있고, 사용자는 제1 슬롯이 제1 슬롯에 대응하는 정보로 채워질 필요가 있는지 여부를 판정한다. 본 출원의 본 실시예에서는 제1 슬롯에 대응하는 정보에 대한 질문 방식과 질문 내용을 제한하지 않는다.
본 출원의 일부 다른 실시예에서, 제1 슬롯이 선택적인 키 슬롯이라고 결정한 후(즉, 단계 S106), 대화 관리 모듈은 추가적으로, 사용자가 제1 슬롯에 대응하는 정보를 말했을 가능성이 있는지 여부를 판정할 수 있다. 사용자가 제1 슬롯에 대응하는 정보를 말했을 가능성이 있으면, 서버(200)는 제1 슬롯에 대응하는 정보에 관해 사용자에게 질문을 하고, 사용자는 제1 슬롯이 제1 슬롯에 대응하는 정보로 채워질 필요가 있는지 여부를 판정한다. 이와 같이, 타겟화된 확인이 사용자에게 요청되어 사용자에 대한 방해를 줄이도록 돕는다. 서버(200)가 사용자가 제1 슬롯에 대응하는 정보를 말할 가능성이 있는지 여부를 판정하는 과정은 다음의 설명을 참조하라. 여기서는 세부사항에 대해 설명하지 않는다.
S112. 서버(200)가 전자 장치의 제3 입력을 수신한다.
제3 입력은 서버(200)의 질문에 대한 사용자의 답변이다. 사용자가 음성 형태로 답변을 제공하면, 서버(200) 내의 자동 음성 인식 모듈은 음성을 텍스트로 변환하여 제3 입력을 획득할 수 있다. 사용자가 텍스트 형식으로 답변을 제공하면, 서버(200)는 사용자에 의해 입력된 텍스트를 제3 입력으로 사용한다. 서버는 결정된 제3 입력을 자연어 이해 모듈에 송신한다.
제3 입력은 사용자와 서버(200) 간의 단일 라운드의 대화에서 하나의 담화일 수 있거나, 또는 사용자와 서버(200) 간의 복수의 라운드의 대화에서 복수의 담화일 수 있다. 본 출원의 본 실시예에서는 이에 대해 제한하지 않는다.
S113. 서버(200)가 전자 장치(100)의 제3 입력에 기초하여, 제1 슬롯에 대응하는 정보가 필요한지 여부를 판정한다. 제1 슬롯에 대응하는 정보가 필요하면, 서버(200)가 단계 S114를 수행한다. 제1 슬롯에 대응하는 정보가 불필요하면, 서버(200)가 단계 S115를 수행한다.
S114. 서버(200)가 제3 입력에 기초하여 제1 슬롯을 채운다.
세부사항은 단계 S109를 참조하라. 그런 다음, 단계 S116이 수행되어야 한다.
S115. 서버(200)가 제1 슬롯을 채우지 않는다.
그런 다음, 단계 S116이 수행되어야 한다.
S116. 서버(200)가 제 1 의도와 제 1 의도 내의 슬롯에 대응하는 추출된 정보에 기초하여, 제1 의도에 대응하는 조작을 수행한다.
도 10a와 도 10b는 본 출원의 일 실시예에 따른 다른 인간-컴퓨터 상호작용 방법을 개략적으로 나타내는 흐름도이다. 인간-컴퓨터 상호작용 방법은 사용자가 제1 슬롯에 대응하는 정보를 말할 가능성이 있는지 여부를 판정하는 과정을 더 포함한다. 즉, 단계 S106 이후 그리고 단계 S111 이전에, 단계 S201이 더 포함되고 구체적으로 다음과 같다.
S201. 서버(200)가 제1 입력이 제1 슬롯에 대응하는 정보를 포함할 가능성이 있는지 여부를 판정한다. 서버(200)가 제1 입력이 제1 슬롯에 대응하는 정보를 포함할 가능성이 있다고 판정하면, 서버(200)가 단계 S111을 수행한다. 서버(200)가 제1 입력이 제1 슬롯에 대응하는 정보를 포함할 가능성이 없다고 판정하면, 서버(200)가 단계 S115를 수행한다.
예를 들어, 사용자가 제1 슬롯에 대응하는 정보를 말하지만, 서버(200)가 제1 슬롯에 대응하는 정보를 추출하지 못하는 이유는 다음의 두 가지 이유가 있을 수 있다.
이유 1: 사용자 입력 오류 또는 음성 인식 오류로 인해 제1 슬롯에 대응하는 정보가 추출되지 못한다. 예를 들어, 서버(200) 상에 2개의 의도가 있다고 가정한다. 의도 1은 "열기 설정"이고, 대응하는 조작이 시스템 설정을 여는 것이다. 의도 2가 "WeChat 설정 열기"이고, 대응하는 조작이 WeChat 애플리케이션의 설정을 여는 것이다. 사용자가 "WeChat 설정 열기"라고 말하면, 서버(200)는 사용자의 억양 또는 일시 중지로 인해 이 음성을 "WeCha 설정 열기"로 인식할 수 있다. 이 경우 서버(200)는 "WeCha"를 추출하지 않는다. 서버(200)가 사용자로부터 확인을 요청하지 않으면, 서버(200)는 사용자의 의도를 "설정 열기"로 직접 인식할 수 있다. 즉, 서버(200)는 시스템 설정을 연다. 이는 사용자가 WeChat 애플리케이션 설정을 열기를 기대하는 의도와 다르다.
이유 2: 사용자가 제1 슬롯에 대응하는 정보를 정확하게 표현하면, 부정확한 슬롯 추출 모델로 인해 제1 슬롯에 대응하는 정보가 추출되지 못할 수 있다. 예를 들어, 스킬 개발자가 슬롯 추출 모델을 훈련시키기 전에 상대적으로 적은 사용자 담화가 입력되거나 또는 부정확한 사용자 담화가 입력되기 때문에, 서버(200)가 훈련을 통해 부정확한 슬롯 추출 모델을 생성한다.
두 가지 다른 이유로, 사용자가 제1 슬롯에 대응하는 정보를 말할 가능성이 있는지 여부를 판정하기 위해, 본 출원의 본 실시예는 다음의 두 가지 방법을 제공한다. 세부 사항은 다음과 같다.
사용자 입력 오류 또는 음성 인식 오류가 발생할 때, 방법 1이 사용된다.
서버가 에러 보정 방법을 이용하여, 사용자 담화로부터 인식된 엔티티(즉, 제1 입력)가 사용자 사전의 키워드와 비교적 유사하다고 결정하는 경우에만, 서버(200)가 사용자 확인 메커니즘을 트리거할 수 있다. 엔티티와 사용자 사전의 키워드 간의 유사도가 결정되어야 할 때, 제1 입력으로부터 인식된 엔티티와 사용자 사전의 키워드 간의 레벤슈타인 거리(Levenshtein distance)가 예를 들어, 핀인(pinyin) 유사도에 기반한 알고리즘 또는 문자열 유사도에 기반한 알고리즘을 이용하여 계산되어 엔티티와 사용자 사전의 키워드 간의 유사도를 결정할 수 있다. 대안적으로, 단어 또는 구 사이의 유사도가 딥 러닝 워드 벡터(deep learning word vector) 또는 문장 벡터 등을 이용하여 계산될 수 있다. 본 출원의 본 실시예에서는 유사도 계산 방법에 대해 제한하지 않는다.
이하, 레벤슈타인 거리를 계산하는 예를 이용하여, 본 출원의 본 실시예에서 제공되는 제1 입력에 포함될 수 있는 제1 슬롯에 대응하는 정보를 결정하는 방법에 대해 설명한다. 레벤슈타인 거리(Levenshtein Distance)는 하나의 문자열을 다른 문자열로 변환하는 데 필요한 편집 조작의 최소량이다. 편집 조작은 하나의 문자를 다른 문자로 교체하거나, 또는 하나의 문자를 삽입하거나, 또는 하나의 문자를 삭제하는 것을 포함할 수 있다.
먼저, 제1 슬롯이 시스템 슬롯 유형 또는 사용자 사전(즉, 사용자 정의 슬롯 유형)인지 여부가 판정된다.
일부 실시예에서, 서버(200)는 제1 슬롯이 사용자 정의 슬롯 유형에 대응한다고 결정한다. 사용자 정의 슬롯 유형의 단어가 사용자 정의되므로, 사용자 정의 슬롯 유형의 단어 수가 제한되어 있다. 따라서, 서버(200)는 제1 슬롯에 대응하는 사용자 정의 슬롯 유형의 모든 단어를 순회하고, 사용자 발화에서 결정되는 엔티티와 사용자 정의 슬롯 유형의 단어 간의 레벤슈타인 거리를 계산하며, 이러한 레벤슈타인 거리로부터 최소 레벤슈타인 거리를 결정할 수 있다. 제1 입력에 있는 엔티티로서 최소 레벤슈타인 거리에 대응하는 엔티티가 제1 슬롯에서 잠재적 엔티티로 결정될 수 있다. 즉, 엔티티가 제1 슬롯에 대응하는 정보일 수 있다.
선택적으로, 서버(200)는 최소값이 임계값 A보다 작은지 여부를 판정할 수 있다. 임계값 A는 개발자 또는 사용자에 의해 지정된 임계값일 수 있다. 최소값이 임계값 A보다 작으면, 사용자가 제1 슬롯에 대응하는 정보를 말하지 않은 것으로 간주할 수 있다. 다르게 말하면, 제1 입력은 제1 슬롯에 대응하는 정보를 포함하지 않는다. 이 경우, 서버(200)는 사용자로부터 확인을 요청하지 않을 수 있다. 최소값이 임계값 A보다 크거나 같으면, 사용자가 제1 슬롯에 대응하는 정보를 말했을 가능성이 있는 것으로 간주할 수 있다. 이 경우, 서버(200)는 사용자로부터 확인을 요청할 수 있다.
예를 들어, 사용자의 의도가 "내일 상하이행 항공권 예약"이지만 "내일 상하행 항공권 예약"으로 잘못 입력되었다. 제1 의도가 "항공권 예약"이고, 제1 의도가 시간 슬롯, 출발지 슬롯, 및 목적지 슬롯을 포함한다. 여기서, 목적지 슬롯이 사용자 사전 1에 대응한다고 가정한다. 서버(200)는 목적지 슬롯에 대응하는 정보를 인식하지 못하고, 서버(200)는 제1 입력으로부터 복수의 엔티티, 예를 들어 "내일"과 "상하"를 인식할 수 있다. 서버(200)는 "내일"과 사용자 사전 1의 각각의 단어 간의 거리를 계산하여 "상하"와 사용자 사전 1의 각각의 단어 간의 거리를 계산하고, 가장 짧은 거리에 대응하는 단어를 선택한다. 예를 들어, "상하"와 사용자 사전 1의 "상하이" 간의 거리가 가장 짧다. 이 경우, "상하"가 제1 슬롯의 잠재적 엔티티라고 결정될 수 있다. 또한, "상하"와 사용자 사전 1의 가장 유사한 단어 간의 레벤슈타인 거리가 임계값 A보다 크면, "상하 "가 사용자가 말한 정보일 가능성이 높은 것으로 간주된다. 이 경우, 서버(200)는 사용자로부터 확인을 요청할 수 있다.
선택적으로, 개발자 또는 사용자가 임계값 B를 더 설정할 수 있고, 임계값 B는 임계값 A보다 크다. 최소값이 임계값 B보다 크거나 같으면, 잠재적 엔티티가 사용자 정의 슬롯 유형의 단어와 매우 유사하다는 것을 나타내고, 제1 슬롯에 대응하는 정보를 말하는 것으로 기본적으로 간주할 수 있다. 즉, 서버는 사용자로부터 확인을 요청하지 않지만, 잠재적인 엔티티를 제1 슬롯에 대응하는 정보로 직접 결정한다. 최소값이 임계값 B보다 작거나 같고 또한 임계값 A보다 크면, 사용자가 제1 슬롯에 대응하는 정보를 말했을 가능성이 있는 것으로 간주될 수 있다. 즉, 잠재적 엔티티는 제1 슬롯에 대응하는 정보일 수 있다. 이 경우, 서버는 추가적으로 사용자로부터 확인을 요청할 수 있다. 본 출원의 본 실시예에서는 이에 대해 제한하지 않는다.
일부 다른 실시예에서, 서버(200)는 제1 슬롯이 시스템 슬롯 유형에 대응한다고 결정한다. 시스템 슬롯 유형의 무수한 단어들이 있다. 따라서, 제1 입력의 엔티티 단어와 시스템 슬롯 유형의 모든 단어 사이의 레벤슈타인 거리가 시스템 슬롯 유형의 모든 단어를 순회하여 계산될 수 없다. 이 경우, 서버(200)는 사용자가 제1 슬롯에 대응하는 정보를 말하는지 여부를 판정할 수 없다. 사용자에 대한 과도한 방해를 피하기 위해, 서버(200)는 제1 슬롯에 대응하는 정보에 관해 사용자로부터 확인을 요청하지 않을 수 있다.
부정확한 슬롯 추출 모델로 인해 서버(200)가 제1 슬롯에 대응하는 정보를 추출하지 못할 때, 방법 2가 사용된다.
슬롯 추출 모델은 예를 들어, 개체명 인식(Named Entity Recognition, NER) 방법을 이용하여 제1 입력으로부터 엔티티를 인식하고, 인식된 엔티티를 슬롯 추출 모델에서 제1 슬롯에 대응하는 알고리즘에 입력하여 각각의 엔티티의 신뢰도를 계산할 수 있다. 선택적으로, 슬롯 추출 모델은 엔티티를 인식하지 않을 수 있지만, 제1 입력에 포함된 각각의 단어를 슬롯 추출 모델에서 제1 슬롯에 대응하는 알고리즘에 직접 입력하여 각각의 단어의 신뢰도를 계산한다. 각각의 엔티티 또는 각각의 단어의 계산된 신뢰도가 특정 조건을 만족할 때, 사용자가 제1 슬롯에 대응하는 정보를 말했을 가능성이 있는 것으로 간주하고, 그런 다음 사용자로부터 확인이 요청된다. 제1 입력의 각각의 엔티티 또는 각각의 단어의 신뢰도를 계산하는 것은, 종래 기술의 분류 기반의 계산 방법과 시퀀스 마킹 기반의 계산 방법 등을 참조하라. 본 명세서에서는 세부사항에 대해 설명하지 않는다.
예를 들어, 서버(200)는 제1 입력의 각각의 엔티티를 슬롯 추출 모델에 입력하여 각각의 엔티티의 신뢰도를 계산할 수 있다. 서버(200)는, 엔티티의 신뢰도가 특정 조건을 만족하는 경우에만 사용자로부터 확인을 요청한다.
슬롯 추출 모델이 제1 슬롯에 대응하는 정보를 추출하지 못한다는 것은, 사용자 담화로부터 인식된 엔티티에 대해 서버(200) 내의 슬롯 추출 모델에 의해 제공되는 슬롯 마킹 확률이 인식 임계값보다 작다는 것으로 이해할 수 있다. 이 경우, 사용자는 확인 임계값을 설정할 수 있다. 사용자 담화로부터 인식된 엔티티에 대해 슬롯 추출 모델에 의해 제공되는 슬롯 마킹 확률이 확인 임계값보다 크면, 서버(200)는 사용자 확인 메커니즘을 트리거한다. 즉, 서버(200)는, 제1 입력의 하나 이상의 엔티티에 대응하는, 슬롯 추출 모델로부터 획득된 신뢰도가 확인 임계값보다 크고 또한 인식 임계값보다 작은 경우에만 제1 슬롯에 대응하는 정보에 관해 사용자로부터 확인을 요청한다.
동일한 엔티티 및 동일한 슬롯 추출 모델에 대해, 슬롯 추출 모델이 처음에는 엔티티를 정확하게 인식하지 못할 수 있지만 두 번째는 엔티티를 정확하게 인식할 수 있다는 것을 유의해야 한다. 이는 사용자가 처음으로 엔티티를 말할 때 진술이 다른 엔티티를 포함할 수 있기 때문이다. 즉, 엔티티가 콘텍스트를 가지고 있다. 슬롯 추출 모델이 부정확하면, 콘텍스트를 인식하지 못하기 때문에 엔티티를 인식하지 못할 수 있다. 그러면, 서버(200)가 처음에는 엔티티를 인식할 수 없는 경우, 서버는 엔티티에 관해 사용자에게 질문을 한다. 이 경우, 사용자의 답변은 엔티티에 관한 것이다. 사용자의 답변은 엔티티만을 포함하거나, 또는 매우 적은 콘텍스트를 포함할 수 있고, 슬롯 추출 모델이 이번에는 엔티티를 인식할 가능성이 있다. 일부 다른 실시예에서, 엔티티는 또한 슬롯 추출 모델이 사용되지 않는 방식으로 사용자의 답변으로부터 인식될 수 있다. 예를 들어, 엔티티를 인식하도록 규칙이 활성화될 수 있다. 이 규칙은 사용자 답변의 콘텍스트 로직, 사용자 의도와의 연관성, 엔티티와 제1 슬롯 간의 대응관계와 같은 요인을 참조하여 엔티티를 인식할 수 있다는 것이다. 이는 서버(200)가 사용자가 말한 엔티티를 두 번째로 또는 그 이후에 인식할 확률을 효과적으로 높일 수도 있다.
전술한 기능을 구현하기 위해, 전술한 단말기 등이 기능을 수행하는 대응하는 하드웨어 구조 및/또는 소프트웨어 모듈을 포함한다고 이해할 수 있을 것이다. 당업자라면, 본 명세서에 개시된 실시예에서 설명된 예와 결합하여, 유닛들, 알고리즘들, 및 단계들이 하드웨어 또는 하드웨어와 컴퓨터 소프트웨어의 조합에 의해 구현될 수 있다는 것을 쉽게 인식해야 한다. 이러한 기능이 하드웨어에 의해 수행되는지 또는 컴퓨터 소프트웨어에 의해 구동되는 하드웨어에 의해 수행되는지 여부가 특정 애플리케이션과 기술적 해결책의 설계 제약 조건에 따라 달라진다. 당업자라면 다른 방법을 이용하여 각각의 특정 애플리케이션에 대해 설명된 기능을 구현할 수 있지만, 이러한 구현이 본 발명의 실시예의 범위를 벗어나는 것으로 간주해서는 안 된다..
본 출원의 실시예에서, 단말기 등이 전술한 방법 예에 기초하여 기능 모듈로 분할될 수 있다. 예를 들어, 각각의 기능 모듈이 대응하는 각각의 기능에 기초하여 분할을 통해 획득되거나 또는 2개 이상의 기능이 하나의 처리 모듈에 통합될 수 있다. 통합 모듈은 하드웨어 형태로 구현될 수 있거나, 또는 소프트웨어 기능 모듈의 형태로 구현될 수 있다. 본 발명의 본 실시예에서, 모듈로의 분할이 하나의 예이며 논리적 기능의 분할일 뿐이라는 것을 유의해야 한다. 실제 구현에서, 다른 분할 방식이 사용될 수 있다.
도 11은 본 출원의 일 실시예에 따른 서버(200)의 하드웨어 구조를 개략적으로 나타내는 도면이다. 서버(200)는 적어도 하나의 프로세서(201), 적어도 하나의 메모리(202), 및 적어도 하나의 통신 인터페이스(203)를 포함한다. 선택적으로, 서버(200)는 도 11에 도시되지 않은 출력 장치와 입력 장치를 더 포함할 수 있다.
프로세서(201), 메모리(202), 및 통신 인터페이스(203)는 버스를 통해 서로 연결된다. 프로세서(201)는 범용 중앙처리장치(Central Processing Unit, CPU), 또는 마이크로프로세서, 또는 주문형 반도체(Application-Specific Integrated Circuit, ASIC), 또는 본 출원의 해결책의 프로그램 실행을 제어하도록 구성된 하나 이상의 집적 회로일 수 있다. 프로세서(201)는 대안적으로 복수의 CPU를 포함할 수 있고, 프로세서(201)는 단일 코어(single-CPU) 프로세서 또는 멀티 코어(multi-CPU) 프로세서일 수 있다. 여기서, 프로세서는 데이터를 처리하도록 구성된 하나 이상의 장치, 회로, 및/또는 처리 코어(예를 들어, 컴퓨터 프로그램 명령)일 수 있다.
메모리(202)는 읽기 전용 메모리(read-only memory, ROM)이거나 또는 정적 정보와 명령을 저장할 수 있는 다른 유형의 정적 저장 장치, 또는 랜덤 액세스 메모리(랜덤 액세스 메모리, RAM) 또는 정보와 명령을 저장할 수 있는 다른 유형의 동적 저장 장치일 수 있거나; 또는 이이피롬(Electrically Erasable Programmable Read-Only Memory, EEPROM), 씨디롬(Compact Disc Read-Only Memory, CD-ROM) 또는 다른 콤팩트 디스크 저장 매체, (레이저 디스크, 광 디스크, 디지털 다용도 디스크(digital versatile disc), 또는 블루레이 디스크 등을 포함하는) 광 디스크 저장 매체, 자기 디스크 저장 매체, 다른 자기 저장 장치, 또는 명령이나 데이터 구조의 형태로 예상된 프로그램 코드를 싣거나 또는 저장하는 데 사용될 수 있는 어떤 다른 매체로서 컴퓨터에 의해 액세스될 수 있는 어떤 다른 매체일 수 있다. 이에 대해 제한하지 않는다. 메모리(202)는 독립적으로 존재할 수 있고 버스를 통해 프로세서(201)에 연결된다. 메모리(202)는 대안적으로 프로세서(201)와 통합될 수 있다. 메모리(202)는 본 출원의 해결책을 실행하기 위한 애플리케이션 프로그램 코드를 저장하도록 구성되고, 프로세서(201)는 실행을 제어한다. 프로세서(201)는 메모리(202)에 저장된 컴퓨터 프로그램 코드를 실행하여 본 출원의 실시예의 인간-컴퓨터 상호작용 방법을 구현하도록 구성된다.
통신 인터페이스(303)는 다른 장치 또는 통신 네트워크, 예컨대 이더넷 또는 무선 근거리 통신망(wireless local area networks, WLAN)과 통신하도록 구성될 수 있다.
프로세서와 통신할 때, 출력 장치는 복수의 방식으로 정보를 표시할 수 있다. 예를 들어, 출력 장치는 액정 표시 장치(Liquid Crystal Display, LCD), 또는 발광 다이오드(Light-Emitting Diode, LED) 표시 장치, 또는 음극선 관(Cathode Ray Tube, CRT) 표시 장치, 또는 프로젝터(projector) 등일 수 있다. 프로세서와 통신할 때, 입력 장치는 복수의 방식으로 사용자의 입력을 수신할 수 있다. 예를 들어, 입력 장치는 마우스, 또는 키보드, 또는 터치스크린 장치, 또는 감지 장치일 수 있다.
구현에 관한 전술한 설명은 당업자로 하여금, 편리하고 간단하게 설명하기 위해 전술한 기능 모듈로의 분할을 예시를 위한 예로 든다는 것을 이해할 수 있게 한다. 실제 적용에서, 전술한 기능은 서로 다른 모듈에 할당되어 요구사항에 따라 구현될 수 있다. 즉, 장치의 내부 구조가 서로 다른 기능 모듈로 분할되어 전술한 기능의 전부 또는 일부를 구현할 수 있다. 전술한 시스템, 장치, 및 유닛의 자세한 작동 과정은 전술한 방법 실시예의 대응하는 과정을 참조하고, 여기서는 세부사항에 대해 다시 설명하지 않는다.
본 출원의 실시예의 기능 유닛들은 하나의 처리 유닛으로 통합될 수 있거나, 또는 각각의 유닛이 물리적으로 단독으로 존재할 수 있거나, 또는 2개 이상의 유닛이 하나의 유닛으로 통합될 수 있다. 통합 유닛은 하드웨어의 형태로 구현될 수 있거나, 또는 소프트웨어 기능 유닛의 형태로 구현될 수 있다.
통합 유닛이 소프트웨어 기능 유닛의 형태로 구현되어 독립적인 제품으로 판매되거나 또는 사용될 때, 통합 유닛은 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 이러한 이해를 바탕으로, 본 출원의 실시예의 기술적 해결책, 또는 종래 기술에 기여하는 부분, 또는 기술적 해결책의 전부 또는 일부가 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되고, 컴퓨터 장치(개인용 컴퓨터, 서버, 또는 네트워크 장치일 수 있음)에 본 출원의 실시예에서 설명된 인간-컴퓨터 상호작용 방법의 단계의 전부 또는 일부를 수행하도록 지시하기 위한 여러 명령을 포함한다. 전술한 저장 매체는 플래시 메모리, 착탈식 하드 디스크(removable hard disk), 읽기 전용 메모리, 랜덤 액세스 메모리, 자기 디스크, 또는 광 디스크와 같은 프로그램 코드를 저장할 수 있는 어떠한 매체도 포함한다.
전술한 설명은 본 출원의 특정 구현일 뿐이며, 본 출원의 보호 범위를 제한하려는 것이 아니다. 본 출원에 공개된 기술적 범위 내의 어떠한 변형이나 대체도 본 출원의 보호 범위에 속할 것이다. 따라서, 본 출원의 보호 범위는 청구 범위의 보호 범위를 따를 것이다.

Claims (16)

  1. 인간-컴퓨터 대화 시스템에 적용될 수 있는 인간-컴퓨터 상호작용 방법으로서,
    서버가 사용자의 서비스 요구사항을 포함하는 제1 입력을 수신하는 단계;
    상기 서버가, 상기 제1 입력에 기초하여 상기 제1 입력에 대응하는 제1 필드를 결정하는 단계 - 상기 제1 필드는 상기 사용자의 서비스 요구사항에 대응하는 태스크 시나리오임 -;
    상기 서버가, 상기 제1 필드에 대응하는 의도 인식 모델(intention recognition model)에 상기 제1 입력을 분배하고, 상기 제1 입력에 대응하는 제1 의도를 인식하는 단계 - 상기 제1 의도는 상기 제1 필드의 하위 시나리오임 -;
    상기 서버가, 상기 제1 입력으로부터 상기 제1 의도 내의 제1 슬롯에 대응하는 정보를 추출하는 단계 - 상기 제1 슬롯은 상기 제1 의도에 미리 구성되어 있고, 상기 제1 슬롯은 선택적 키 슬롯임 -;
    상기 서버가 상기 제1 슬롯에 대응하는 상기 정보가 추출되지 못한다고 결정할 때, 상기 서버가, 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에게 질문을 하는 단계;
    상기 서버가 제2 입력을 수신하는 단계 - 상기 제2 입력은 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에 의해 답변된 정보를 포함하고 있음 -; 및
    상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 필요한 정보라고 결정하면, 상기 서버가 상기 제2 입력으로부터 상기 제1 슬롯에 대응하는 상기 정보를 추출하고, 상기 서버가 상기 제1 슬롯에 대응하는 상기 정보와 상기 제1 의도에 기초하여, 상기 제1 의도에 대응하는 조작을 수행하거나; 또는
    상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 불필요한 정보라고 결정하면, 상기 서버가 상기 제1 슬롯에 대응하는 상기 정보를 추출하는 단계를 생략하고, 상기 서버가 상기 제1 의도에 기초하여, 상기 제1 의도에 대응하는 조작을 수행하는 단계
    를 포함하는 인간-컴퓨터 상호작용 방법.
  2. 제1항에 있어서,
    상기 서버가, 상기 제1 입력으로부터 상기 제1 의도 내의 제1 슬롯에 대응하는 정보를 추출하는 단계는,
    상기 서버가 상기 제1 입력으로부터 인식된 각각의 단어 또는 각각의 엔티티를 상기 제1 슬롯에 대응하는 슬롯 추출 모델에 입력하고, 상기 제1 입력의 각각의 단어 또는 각각의 엔티티에 대응하는 신뢰도를 계산하는 단계; 및
    상기 제1 입력의 제1 단어 또는 제1 엔티티의 신뢰도가 제1 임계값보다 크거나 같으면, 상기 서버가 상기 제1 단어 또는 상기 제1 엔티티가 상기 제1 슬롯에 대응하는 상기 정보라고 결정하거나; 또는
    상기 제1 입력의 각각의 단어 또는 각각의 엔티티의 신뢰도가 상기 제1 임계값보다 작으면, 상기 서버가 상기 제1 슬롯에 대응하는 상기 정보가 추출되지 못한다고 결정하는 단계
    를 포함하는, 인간-컴퓨터 상호작용 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 인간-컴퓨터 상호작용 방법이,
    상기 제1 슬롯이 사용자 정의 슬롯 유형에 대응하면, 상기 서버가 상기 제1 입력으로부터 인식된 각각의 엔티티와 상기 사용자 정의 슬롯 유형의 각각의 단어 사이의 유사도를 계산하는 단계; 및
    상기 제1 입력으로부터 인식된 각각의 엔티티와 상기 사용자 정의 슬롯 유형의 각각의 단어 사이의 상기 유사도가 제2 임계값보다 작으면, 상기 서버가, 상기 제1 입력이 상기 제1 슬롯에 대응하는 상기 정보를 포함하지 않는다고 결정하거나; 또는 상기 제1 입력의 제2 엔티티와 상기 사용자 정의 슬롯 유형의 제2 단어 사이의 유사도가 제3 임계값보다 크거나 같으면, 상기 서버가, 상기 제2 단어가 상기 제1 슬롯에 대응하는 상기 정보라고 결정하거나; 또는 상기 제1 입력의 어느 엔티티와 상기 사용자 정의 슬롯 유형의 어느 단어 사이의 유사도가 상기 제2 임계값보다 크거나 같고 제3 임계값보다 작으면, 상기 서버가, 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에게 질문을 하기로 결정하는 단계
    를 더 포함하는 인간-컴퓨터 상호작용 방법.
  4. 제2항에 있어서,
    상기 제1 입력의 각각의 단어 또는 각각의 엔티티의 신뢰도가 제4 임계값보다 작으면, 상기 서버가, 상기 제1 입력이 상기 제1 슬롯에 대응하는 상기 정보를 포함하지 않는다고 결정하거나; 또는
    상기 제1 입력의 어느 단어 또는 어느 엔티티의 신뢰도가 상기 제1 임계값보다 작고 상기 제4 임계값보다 크거나 같으면, 상기 서버가, 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 사용자에게 질문을 하기로 결정하는 단계
    를 더 포함하는 인간-컴퓨터 상호작용 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 필요한 정보라고 결정하면, 상기 서버가, 상기 제2 입력으로부터 상기 제1 슬롯에 대응하는 상기 정보를 추출하는 것은,
    상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 필요한 정보라고 결정하면, 상기 서버가, 상기 제1 슬롯에 대응하는 상기 슬롯 추출 모델을 이용하여 또는 규칙을 이용하여 상기 제2 입력으로부터 상기 제1 슬롯에 대응하는 상기 정보를 추출하는 것
    을 포함하는, 인간-컴퓨터 상호작용 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    제2 슬롯이 추가적으로 상기 제1 의도에 미리 구성되어 있고, 상기 제2 슬롯은 필수 슬롯(mandatory slot)이며, 상기 인간-컴퓨터 상호작용 방법이,
    상기 서버가 상기 제2 슬롯에 대응하는 정보가 추출되지 못한다고 결정할 때, 상기 서버가, 상기 제2 슬롯에 대응하는 상기 정보를 추출하기 위해 상기 사용자에게 질문을 하는 단계;
    상기 서버가 상기 사용자의 답변을 포함하는 제3 입력을 수신하고, 상기 제3 입력으로부터 상기 제2 슬롯에 대응하는 상기 정보를 추출하는 단계; 및
    상기 서버가 상기 제1 의도, 상기 제1 슬롯에 대응하는 상기 정보, 및 상기 제2 슬롯에 대응하는 상기 정보에 기초하여, 상기 제1 의도에 대응하는 상기 조작을 수행하거나; 또는 상기 서버가 상기 제2 슬롯에 대응하는 상기 정보와 상기 제1 의도에 기초하여, 상기 제1 의도에 대응하는 상기 조작을 수행하는 단계
    를 더 포함하는 인간-컴퓨터 상호작용 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    제3 슬롯이 추가적으로 상기 제1 의도에 미리 구성되어 있고, 상기 제3 슬롯은 선택적인 넌-키 슬롯(non-key slot)이며, 상기 인간-컴퓨터 상호작용 방법이,
    상기 서버가 상기 제3 슬롯에 대응하는 정보가 추출되지 못한다고 결정할 때, 상기 서버가 상기 제3 슬롯에 대응하는 상기 정보를 추출하는 단계를 생략하는 단계
    를 더 포함하는 인간-컴퓨터 상호작용 방법.
  8. 인간-컴퓨터 대화 시스템에 적용될 수 있는 서버로서,
    상기 서바는 통신 인터페이스, 메모리, 및 프로세서를 포함하고, 상기 통신 인터페이스와 상기 메모리는 상기 프로세서에 연결되며, 상기 메모리는 컴퓨터 프로그램 코드를 저장하도록 구성되고, 상기 컴퓨터 프로그램 코드는 컴퓨터 명령을 포함하며, 상기 프로세서는 상기 메모리로부터 상기 컴퓨터 명령을 판독할 때 상기 서버로 하여금:
    상기 통신 인터페이스를 통해 제1 입력을 수신하는 단계 - 상기 제1 입력은 사용자의 서비스 요구사항을 포함하고 있음 -;
    상기 제1 입력에 기초하여, 상기 제1 입력에 대응하는 제1 필드를 결정하는 단계 - 상기 제1 필드는 상기 사용자의 서비스 요구사항에 대응하는 태스크 시나리오임 -;
    상기 제1 필드에 대응하는 의도 인식 모델에 상기 제1 입력을 분배하고, 상기 제1 입력에 대응하는 제1 의도를 인식하는 단계 - 상기 제1 의도는 상기 제1 필드의 하위 시나리오임 -;
    상기 제1 입력으로부터, 상기 제1 의도 내의 제1 슬롯에 대응하는 정보를 추출하는 단계 - 상기 제1 슬롯은 상기 제1 의도에 미리 구성되어 있고, 상기 제1 슬롯은 선택적 키 슬롯임 -;
    상기 서버가 상기 제1 슬롯에 대응하는 상기 정보가 추출되지 못한다고 결정할 때, 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에게 질문을 하는 단계;
    상기 통신 인터페이스를 통해 제2 입력을 수신하는 단계 - 상기 제2 입력은 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에 의해 답변된 정보를 포함하고 있음 -; 및
    상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 필요한 정보라고 결정하면, 상기 제2 입력으로부터 상기 제1 슬롯에 대응하는 상기 정보를 추출하고, 상기 제1 슬롯에 대응하는 상기 정보와 상기 제1 의도에 기초하여, 상기 제1 의도에 대응하는 조작을 수행하거나; 또는
    상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 불필요한 정보라고 결정하면, 상기 제1 슬롯에 대응하는 상기 정보를 추출하는 단계를 생략하고, 상기 제1 의도에 기초하여, 상기 제1 의도에 대응하는 조작을 수행하는 단계
    를 수행할 수 있게 하는, 서버.
  9. 제8항에 있어서,
    상기 프로세서가 상기 제1 입력으로부터, 상기 제1 의도 내의 상기 제1 슬롯에 대응하는 정보를 추출하는 것은 구체적으로,
    상기 프로세서가 상기 제1 입력으로부터 인식된 각각의 단어 또는 각각의 엔티티를 상기 제1 슬롯에 대응하는 슬롯 추출 모델에 입력하고, 상기 제1 입력의 각각의 단어 또는 각각의 엔티티에 대응하는 신뢰도를 계산하는 것; 및
    상기 제1 입력의 제1 단어 또는 제1 엔티티의 신뢰도가 제1 임계값보다 크거나 같으면, 상기 제1 단어 또는 상기 제1 엔티티가 상기 제1 슬롯에 대응하는 상기 정보라고 결정하거나; 또는
    상기 제1 입력의 각각의 단어 또는 각각의 엔티티의 신뢰도가 상기 제1 임계값보다 작으면, 상기 제1 슬롯에 대응하는 상기 정보가 추출되지 못한다고 결정하는 것
    을 포함하는, 서버.
  10. 제8항 또는 제9항에 있어서,
    상기 프로세서는 추가적으로, 상기 제1 슬롯이 사용자 정의 슬롯 유형에 대응하면, 상기 제1 입력으로부터 인식된 각각의 엔티티와 상기 사용자 정의 슬롯 유형의 각각의 단어 사이의 유사도를 계산하고;
    상기 제1 입력으로부터 인식된 각각의 엔티티와 상기 사용자 정의 슬롯 유형의 각각의 단어 사이의 상기 유사도가 제2 임계값보다 작으면, 상기 제1 입력이 상기 제1 슬롯에 대응하는 상기 정보를 포함하지 않는다고 결정하거나; 또는 상기 제1 입력의 제2 엔티티와 상기 사용자 정의 슬롯 유형의 제2 단어 사이의 유사도가 제3 임계값보다 크거나 같으면, 상기 제2 단어가 상기 제1 슬롯에 대응하는 상기 정보라고 결정하거나; 또는 상기 제1 입력의 어느 엔티티와 상기 사용자 정의 슬롯 유형의 어느 단어 사이의 유사도가 상기 제2 임계값보다 크거나 같고 제3 임계값보다 작으면, 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 상기 사용자에게 질문을 하기로 결정하도록 구성된, 서버.
  11. 제9항에 있어서,
    상기 프로세서는 추가적으로, 상기 제1 입력의 각각의 단어 또는 각각의 엔티티의 신뢰도가 제4 임계값보다 작으면, 상기 제1 입력이 상기 제1 슬롯에 대응하는 상기 정보를 포함하지 않는다고 결정하거나; 또는
    상기 제1 입력의 어느 단어 또는 어느 엔티티의 신뢰도가 상기 제1 임계값보다 작고 상기 제4 임계값보다 크거나 같으면, 상기 제1 슬롯에 대응하는 상기 정보가 필요한지 여부를 판정하기 위해 사용자에게 질문을 하기로 결정하도록 구성된, 서버.
  12. 제8항 내지 제11항 중 어느 한 항에 있어서,
    상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 필요한 정보라고 결정하면, 상기 프로세서가 상기 제2 입력으로부터 상기 제1 슬롯에 대응하는 상기 정보를 추출하는 것은 구체적으로,
    상기 사용자가 상기 제1 슬롯에 대응하는 상기 정보가 필요한 정보라고 결정하면, 상기 프로세서가 상기 제1 슬롯에 대응하는 상기 슬롯 추출 모델을 이용하여 또는 규칙을 이용하여 상기 제2 입력으로부터 상기 제1 슬롯에 대응하는 상기 정보를 추출하는 것
    을 포함하는, 서버.
  13. 제8항 내지 제12항 중 어느 한 항에 있어서,
    제2 슬롯이 추가적으로 상기 제1 의도에 미리 구성되어 있고, 상기 제2 슬롯이 필수 슬롯(mandatory slot)일 때,
    상기 프로세서는 더 구체적으로, 상기 제2 슬롯에 대응하는 정보가 추출되지 못한다고 결정할 때, 상기 제2 슬롯에 대응하는 상기 정보를 추출하기 위해 상기 사용자에게 질문을 하고;
    상기 통신 인터페이스를 통해 제3 입력을 수신하고, 상기 제3 입력으로부터 상기 제2 슬롯에 대응하는 상기 정보를 추출하며 - 여기서, 상기 제3 입력은 상기 사용자의 답변을 포함하고 있음 -;
    상기 제1 의도, 상기 제1 슬롯에 대응하는 상기 정보, 및 상기 제2 슬롯에 대응하는 상기 정보에 기초하여, 상기 제1 의도에 대응하는 상기 조작을 수행하거나; 또는 상기 제2 슬롯에 대응하는 상기 정보와 상기 제1 의도에 기초하여, 상기 제1 의도에 대응하는 상기 조작을 수행하도록 구성된, 서버.
  14. 제8항 내지 제13항 중 어느 한 항에 있어서,
    제3 슬롯이 추가적으로 상기 제1 의도에 미리 구성되어 있고, 상기 제3 슬롯이 선택적인 넌-키 슬롯(non-key slot)일 때,
    상기 프로세서는 더 구체적으로, 상기 제3 슬롯에 대응하는 정보가 추출되지 못한다고 결정할 때, 상기 제3 슬롯에 대응하는 상기 정보를 추출하는 것을 생략 하도록 구성된, 서버.
  15. 컴퓨터 저장 매체로서,
    상기 컴퓨터 저장 매체는 컴퓨터 명령을 포함하고, 상기 컴퓨터 명령은 단말기 상에서 실행될 때 상기 단말기로 하여금 제1항 내지 제7항 중 어느 한 항의 인간-컴퓨터 상호작용 방법을 수행할 수 있게 하는, 컴퓨터 저장 매체.
  16. 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 프로그램 제품은, 컴퓨터 상에서 실행될 때 상기 컴퓨터로 하여금 제1항 내지 제7항 중 어느 한 항의 인간-컴퓨터 상호작용 방법을 수행할 수 있게 하는 컴퓨터 프로그램 제품.
KR1020217013813A 2018-10-10 2018-10-10 인간-컴퓨터 상호작용 방법 및 전자 장치 KR20210062704A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/109704 WO2020073248A1 (zh) 2018-10-10 2018-10-10 一种人机交互的方法及电子设备

Publications (1)

Publication Number Publication Date
KR20210062704A true KR20210062704A (ko) 2021-05-31

Family

ID=70165016

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217013813A KR20210062704A (ko) 2018-10-10 2018-10-10 인간-컴퓨터 상호작용 방법 및 전자 장치

Country Status (6)

Country Link
US (1) US11636852B2 (ko)
EP (1) EP3855338A4 (ko)
JP (1) JP7252327B2 (ko)
KR (1) KR20210062704A (ko)
CN (1) CN112154431A (ko)
WO (1) WO2020073248A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11875231B2 (en) * 2019-06-26 2024-01-16 Samsung Electronics Co., Ltd. System and method for complex task machine learning
CN112380328B (zh) * 2020-11-11 2024-02-06 广州知图科技有限公司 一种安全应急响应机器人交互方法及系统
US11972759B2 (en) * 2020-12-02 2024-04-30 International Business Machines Corporation Audio mistranscription mitigation
CN112528002B (zh) * 2020-12-23 2023-07-18 北京百度网讯科技有限公司 对话识别方法、装置、电子设备和存储介质
US20230195933A1 (en) * 2021-12-17 2023-06-22 Accenture Global Solutions Limited Machine learning and rule-based identification, anonymization, and de-anonymization of sensitive structured and unstructured data
CN114490968B (zh) * 2021-12-29 2022-11-25 北京百度网讯科技有限公司 对话状态跟踪方法、模型训练方法、装置以及电子设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010049707A1 (en) * 2000-02-29 2001-12-06 Tran Bao Q. Systems and methods for generating intellectual property
US7228278B2 (en) 2004-07-06 2007-06-05 Voxify, Inc. Multi-slot dialog systems and methods
CN103198155B (zh) * 2013-04-27 2017-09-22 北京光年无限科技有限公司 一种基于移动终端的智能问答交互系统及方法
US9772994B2 (en) * 2013-07-25 2017-09-26 Intel Corporation Self-learning statistical natural language processing for automatic production of virtual personal assistants
CN104951458B (zh) * 2014-03-26 2019-03-01 华为技术有限公司 基于语义识别的帮助处理方法及设备
GB2537903B (en) * 2015-04-30 2019-09-04 Toshiba Res Europe Limited Device and method for a spoken dialogue system
CN105068661B (zh) * 2015-09-07 2018-09-07 百度在线网络技术(北京)有限公司 基于人工智能的人机交互方法和系统
DE112016004863T5 (de) * 2015-10-21 2018-07-19 Google Llc Parametersammlung und automatische Dialogerzeugung in Dialogsystemen
WO2018045553A1 (zh) * 2016-09-09 2018-03-15 上海海知智能科技有限公司 人机交互的系统及方法
CN108073628A (zh) * 2016-11-16 2018-05-25 中兴通讯股份有限公司 一种基于智能问答的交互系统与方法
WO2018157349A1 (zh) * 2017-03-02 2018-09-07 深圳前海达闼云端智能科技有限公司 一种机器人交互方法及交互机器人
JP6370962B1 (ja) * 2017-05-12 2018-08-08 ヤフー株式会社 生成装置、生成方法および生成プログラム
CN107170446A (zh) 2017-05-19 2017-09-15 深圳市优必选科技有限公司 语义处理服务器及用于语义处理的方法
CN107133349B (zh) 2017-05-24 2018-02-23 北京无忧创新科技有限公司 一种对话机器人系统
US10984003B2 (en) * 2017-09-16 2021-04-20 Fujitsu Limited Report generation for a digital task
US10490185B2 (en) * 2017-09-27 2019-11-26 Wipro Limited Method and system for providing dynamic conversation between application and user
CN107886948A (zh) * 2017-11-16 2018-04-06 百度在线网络技术(北京)有限公司 语音交互方法及装置,终端,服务器及可读存储介质

Also Published As

Publication number Publication date
JP7252327B2 (ja) 2023-04-04
CN112154431A (zh) 2020-12-29
EP3855338A4 (en) 2021-10-06
US20210383798A1 (en) 2021-12-09
JP2022515005A (ja) 2022-02-17
WO2020073248A1 (zh) 2020-04-16
US11636852B2 (en) 2023-04-25
EP3855338A1 (en) 2021-07-28

Similar Documents

Publication Publication Date Title
US11900924B2 (en) Semantic parsing method and server
CN112567457B (zh) 语音检测方法、预测模型的训练方法、装置、设备及介质
CN110910872B (zh) 语音交互方法及装置
RU2766255C1 (ru) Способ голосового управления и электронное устройство
US20210065716A1 (en) Voice processing method and electronic device supporting the same
US11636852B2 (en) Human-computer interaction method and electronic device
US20220214894A1 (en) Command execution method, apparatus, and device
US11537360B2 (en) System for processing user utterance and control method of same
KR102527178B1 (ko) 음성 제어 명령 생성 방법 및 단말
WO2021254411A1 (zh) 意图识别方法和电子设备
CN111739517A (zh) 语音识别方法、装置、计算机设备及介质
CN111191018B (zh) 对话系统的应答方法和装置、电子设备、智能设备
WO2022143258A1 (zh) 一种语音交互处理方法及相关装置
CN115131789A (zh) 文字识别方法、设备及存储介质
CN114691839A (zh) 一种意图槽位识别方法
CN113742460A (zh) 生成虚拟角色的方法及装置
WO2022135254A1 (zh) 一种编辑文本的方法、电子设备和系统
WO2022007757A1 (zh) 跨设备声纹注册方法、电子设备及存储介质
CN113470638B (zh) 槽位填充的方法、芯片、电子设备和可读存储介质
WO2024067630A1 (zh) 一种输入方法、电子设备和存储介质
CN116860913A (zh) 语音交互方法、装置、设备及存储介质
CN115938369A (zh) 语音识别方法、电子设备及存储介质
CN115775555A (zh) 标点符号生成方法、装置和存储介质
CN116206602A (zh) 语音解析方法、电子设备、可读存储介质及芯片系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application