KR20200115660A - 인텔리전트 지원 방법 - Google Patents

인텔리전트 지원 방법 Download PDF

Info

Publication number
KR20200115660A
KR20200115660A KR1020207027514A KR20207027514A KR20200115660A KR 20200115660 A KR20200115660 A KR 20200115660A KR 1020207027514 A KR1020207027514 A KR 1020207027514A KR 20207027514 A KR20207027514 A KR 20207027514A KR 20200115660 A KR20200115660 A KR 20200115660A
Authority
KR
South Korea
Prior art keywords
words
probability
insertion point
word
determining
Prior art date
Application number
KR1020207027514A
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 KR20200115660A publication Critical patent/KR20200115660A/ko

Links

Images

Classifications

    • 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
    • G06F40/00Handling natural language data
    • G06F40/30Semantic 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/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/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/197Probabilistic grammars, e.g. word n-grams
    • 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/26Speech to text systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)

Abstract

인텔리전트 지원 방법은 텍스트를 포함하는 입력 내에서 추가 정보를 제공하기 위해 하나 이상의 삽입 포인트들을 식별하는 단계를 포함한다. 입력의 의미를 명확히 하거나 보충하기 위해 입력의 적어도 일부와 추가 정보를 포함하는 후속(follow-up) 표현이 생성된다.

Description

인텔리전트 지원 방법
하나 이상의 실시예들은 일반적으로 가상의 어시스턴트들(assistants)에 관한 것으로서, 보다 특정하면 인텔리전트 지원을 위한 후속 표현을 생성하는 것에 대한 것이다.
소비자들은 아마존 알렉사(AMAZON ALEXA), 구글 어시스턴트(GOOGLE ASSISTANT), 시리(SIRI), 마이크로소프트 코타나(MICROSOFT CORTANA) 및 삼성 빅스비(SAMSUNG BIXBY)와 같은 목소리 기반의 퍼스널 어시스턴트들(personal assistants)을 사용하여 질문에 답하고, 문제를 해결하고, 시간과 에너지를 절약하는 작업들을 수행하면서, 각자의 생활을 보다 편리하게 영위한다. 이러한 퍼스널 어시스턴트들과의 사용자 인터랙션(interaction)들은 보통, 대부분의 사용자들이 한 번의 말로 모든 관련된 세부사항을 특정할 수 없을 것이기 때문에 약간의 왔다갔다하는 통신을 요한다.
실시예들의 특성 및 이점뿐 아니라 바람직한 사용 모드에 대한 보다 충분한 이해를 위해, 아래와 같이 첨부된 도면과 연계하여 파악되는 이하의 상세 설명을 참고할 것이다.
도 1은 일부 실시예들에 따른 통신 시스템의 개략도를 도시한다.
도 2는 일부 실시예들에 따라, 인텔리전트 어시스턴트 앱을 포함하는 전자 기기를 포함하는 시스템 구조의 블록도를 도시한다.
도 3은 일부 실시예들에 따른 삽입 포인트들 및 볼륨을 식별하는 예를 도시한다.
도 4는 일부 실시예들에 따라, 사양에 맞춰 단어들을 생성하는 예를 도시한다.
도 5는 일부 실시예들에 따라, 세부사항들을 이용하여 후속 질문을 문의하는 예를 도시한다.
도 6은 일부 실시예들에 따라, 추가적인 세부사항들을 사용하여 기능적으로 유사하지만 의미상으로는 상이한 환언들(paraphrases)을 생성하는 프로세스의 블록도를 도시한다.
도 7은 일부 실시예들에 따라, 삽입 포인트들을 식별하고 삽입할 단어의 수를 결정하는 프로세스의 블록도를 도시한다.
도 8은 일부 실시예들에 따라, 표현 내 특정 지점들에서 특정된 수의 단어들을 생성하는 프로세스의 블록도를 도시한다.
도 9는 일부 실시예들에 따라, 명확화한 후속 질문들을 생성하기 위한 프로세스의 블록도를 도시한다.
도 10은 하나이상의 실시예들을 구현하는 컴퓨팅 시스템을 포함하는 정보 처리 시스템을 도시한 상위 블록도이다.
하나 이상의 실시예들은 일반적으로 인텔리전트 지원(assistance)을 위해 후속 표현을 생성하기 위한 추가 정보를 제공하도록 표현의 삽입 포인트들을 식별하는 것에 관한 것이다.
일 실시예에서, 인텔리전트 지원 방법은 텍스트를 포함하는 입력 내에서 추가 정보를 제공하기 위해 하나 이상의 삽입 포인트들을 식별하는 단계를 포함한다. 하나 이상의 삽입 포인트들에서 입력의 적어도 일부와 추가 정보를 포함하는 후속 표현이 입력의 의미를 명확히 하거나 보조하기 위해 생성된다.
다른 실시예에서, 전자 기기는 명령어들을 저장하는 메모리를 포함한다. 적어도 하나의 프로세서가, 텍스트를 포함하는 입력 내에서 추가 정보를 제공하기 위해 하나 이상의 삽입 포인트들을 식별하고, 하나 이상의 삽입 포인트들에서 입력의 의미를 명확히 하거나 보조하기 위해 입력의 적어도 일부와 추가 정보를 포함하는 후속 표현을 생성하도록 구성된 프로세스를 포함하는 명령어들을 실행한다.
일 실시예에서, 프로세서에 의해 실행될 때 텍스트를 포함하는 입력 안에서 하나 이상의 삽입 포인트들을 식별하는 단계를 포함하는 방법을 수행하는 프로그램을 포함하는 비일시적 프로세서 판독가능 매체가 추가 정보를 제공하기 위해 식별된다. 하나 이상의 삽입 포인트들에서 입력의 적어도 일부와 추가 정보를 포함하는 후속 표현이 입력의 의미를 명확히 하거나 보조하기 위해 생성된다.
하나 이상의 실시예들의 이러한, 그리고 기타의 양태들 및 이점들은 도면과 연계하여 취해질 때, 하나 이상의 실시예들의 원리들을 예로서 나타낸 이하의 상세한 설명으로부터 자명하게 될 것이다.
이하의 설명은 하나 이상의 실시예들의 일반적 원리를 예시할 목적으로 행해진 것으로서, 본 명세서에서 주장하는 발명의 개념들을 제한할 의도가 있는 것은 아니다. 또한, 본 명세서에 기술된 특정한 구성들은 가능한 다양한 조합 및 치환들 각각에 기재된 다른 구성들과 조합하여 사용될 수 있다. 본 명세서에서 달리 구체적으로 정의되지 않는 한, 모든 용어들은 명세서에 내포된 의미뿐만 아니라 당업자가 이해하는 의미들 및/또는 사전들, 조약들 등에서 정의된 의미들을 포함하는 가능한 가장 넓은 범위의 것으로 해석되어야 한다.
“~ 중 적어도 하나”라는 용어들은 뒤따르는 요소들 중 하나 이상을 의미한다. 예를 들어, “a, b, c, 또는 이들의 조합 중 적어도 하나”는 개별적으로 “a”, “b”, 또는 “c”로, “a” 및 “b”가 함께 조합된 것으로, “b” 및 “c”가 함께 조합된 것으로, “a” 및 “c”가 함께 조합된 것으로, 또는 “a”, “b” 및 “c”가 함께 조합된 것으로 해석될 수 있다.
하나 이상의 실시예들은 인텔리전트 지원을 위해 후속 표현을 생성하기 위한 추가 정보를 제공하도록 입력 내 삽입 포인트들을 식별하는 것을 지원한다. 일부 실시예들은 텍스트를 포함하는 입력 내에서 추가 정보를 제공하기 위한 하나 이상의 삽입 포인트들을 식별하는 단계를 포함하는 인텔리전트 지원을 위한 방법을 포함한다. 하나 이상의 삽입 포인트들에서 입력의 적어도 일부와 추가 정보를 포함하는 후속 표현이 입력의 의미를 명확히 하거나 보조하기 위해 생성된다.
종래의 퍼스널 어시스턴트들은 상호동작(interaction)하고, 사용자의 의도를 파악 및 실행하기 위한 고급 자연어 이해 및 대화 관리 기술들을 필요로 한다. 이러한 종래의 퍼스널 어시스턴트들은 의도들의 커다란 집합들이나 광범위한 관심 도메인들에까지는 잘 일반화되지 않는다.
퍼스널 어시스턴트를 구축하기 위한 종래의 접근 방식은, 의도 특정의 서비스 제공자들의 집합에 의한 다운스트림 처리를 위해 메타데이터와 함께 입력 언어를 증강시키는 코어 엔진을 구축하는 것이다. 이것을 스킬스(skills) API(application programming interface) 기반 접근 방식이라고 한다. 스킬스 API 기반 접근 방식에서, 코어 자연어 이해(NLU) 엔진은 의도 특정의 서비스 제공자들의 집합에 의한 다운스트림 처리를 위해 메타데이터와 함께 입력 언어를 증강시킨다. 이러한 서비스 제공자들 각각은 의도의 세부 사항들을 다루고 어떤 질문을 물어 볼 지와 수행할 액션들을 결정하기 위한 다운스트림 프로세싱을 구현해야 한다.
의도 서비스 제공자들은 “슬롯 채움(Slot Filling)” 접근 방식을 취하는 경향이 있다. 슬롯 채움 접근방식에서, 각각의 의도 서비스 제공자는 각각의 의도마다 사용자에 의해 제공되어야 하는 속성들(“슬롯들”)의 기정의된 집합을 생성한다. 각각의 속성에 대해, 서비스 제공자들은 그 속성에 대해 사용자에게 묻도록 설계된 질문 템플릿을 작성하고, 여기서 기존의 속성들에 대한 값들이 질문 템플릿 안에서 참조될 수 있다. 유한 상태 머신(finite state machine)이나 리스트 프로세싱 시스템, 또는 다른 유사한 기술을 갖춘 대화 관리자가 사용되어, 모든 속성들에 대한 값들이 제공될 때까지 그러한 질문들 중 하나를 선택하고 질의한다. 예를 들어, 피자 배달 서비스는 배달할 장소, 피자의 크기 및 피자 토핑들에 대한 속성들을 정의할 가능성이 높다.
종래의 접근 방식 이해의 용이함을 위해, 입력이 “소시지 피자를 사(Buy a sausage pizza)”인 예를 가정한다. 의도 분류기(classifier)가 피자 배달 의도를 고르고, 피자 토핑에 대한 태그로 소시지를 태깅할 수 있다. 그런 다음 대화 관리자가 피자 토핑 슬롯에 대한 그 값을 기록하고, 채워지지 않은(unfilled) 슬롯들의 리스트를 체크하고, 채워야 할 다음 슬롯을 선택할 것이다. 다음으로 그것은 '크기' 슬롯을 선택할 수 있고, 그렇게 하면, 그 슬롯에 대한 관련 질문 “What size pizza do you want(어떤 크기의 피자를 원하나요)?”을 묻기로 결정할 것이다. 이 프로세스는 주문할 준비가 될 때까지 나머지 슬롯들을 거치며 진행될 수 있다.
이러한 종래의 대화 관리 접근 방식에는 세 가지 문제점이 있다. 첫째, 미리 정의된 속성들에 대해 미리 정의된 후속 질문들만을 물을 수 있다. 템플릿이 없다면, 이어지는 스크립트는 존재하지 않으며, 따라서 후속 질문들도 존재하지 않는다. 템플릿이 슬롯 없이 만들어졌다면, 해당 슬롯에 대한 어떠한 후속 질문들도 결코 존재할 수 없을 것이다. 이러한 종래의 대화 관리 접근 방식은 일반적인 경우나 어떤 예상치 못한 일에 대해 작동되지 않는다. “Deliver a sausage pizza and a coke(소시지 피자와 콜라를 배달해 줘)”를 예로 들 수 있다. 슬롯 채움 접근 방식은 사이드 메뉴 주문에 대한 슬롯을 발견하여 그것에 콜라를 넣지 못할 것이고, 혹은 당신이 그 주문과 함께 브레드스틱(breadstick)이라는 사이드 메뉴를 원하는지를 당신에게 물을 수 없을 것이다. 슬롯 채움 접근 방식은 갈팡질팡하여, 틀린 의도 서비스 제공자에게 당신의 문장을 보내거나, 당신의 피자에 콜라를 놓을 수 있다. 슬롯 채움 접근 방식은 단지 당신의 피자와 함께 어떤 콜라도 요청하지 않을 수도 있다. 모두 피자 배달 서비스를 작성한 컴퓨터 프로그래머가 그 경우를 잊어버렸거나, 알지 못했기 때문이다. 이러한 문제는 평균적인 프로그래머가 사용하지 않거나 친숙하지 않은 서비스들에 있어 보다 두드러질 것이다.
둘째, 종래의 대화 관리 접근 방식은 슬롯 값들의 순위화하고, 후속 질문 시 가장 적합한 선택들을 제안하는 기능이 결여된다.
셋째, 각각의 의도/서비스에 대한 모든 속성들을 정의하고 시스템이 사용자의 의도를 인식하여 슬롯 값들에 슬롯 타입들을 태깅하도록 훈련시키는데 필요한 모든 입력 예를 작성하는데 많은 노력이 든다.
동일한 도메인 내에서 새로운 의도들을 추가하거나 또는 그 의도에 슬롯 타입들을 추가하거나, 심지어 어떤 의도 내에서 약간의 예들을 변경하는 것이, 시스템이 어떤 의도를 선택하고 어떤 슬롯 타입들을 태깅 할 지를 식별하는 방식을 바꿀 수 있으므로 안전한 동작이 아니기 때문에 이것은 중요한 문제이다. 모든 것은 동작 전에 다시 테스트되어야 한다. 이것이 중대한 결함인데, 잠재적으로 무한한 수의 의도들이 존재하고 각각의 의도가 다양한 세부사항의 레벨에서 다뤄질 수 있기 때문이다. 예들의 수가 많고 그러한 예들이 모든 유효한 순열로 모든 관련된 슬롯을 커버할 때, 의도들을 일반적으로 보다 용이하게 인식할 수 있다. 필요한 예들의 수는 시스템 내 스킬들, 슬롯 타입들, 슬롯 값들의 수, 그리고 의도들의 구조적 언어의 유사성 및 공유하는 어휘와 함께 증가한다.
종래의 퍼스널 어시스턴트들을 사용할 때, 어떤 가치 있는 서비스에 대해 보통 다수의 제공자들이 존재하고 하나만이 선택될 수 있다. 제3자 서비스 제공자들이 의도들을 자체적으로 구현하도록 남겨두면, 퍼스널 어시스턴트에 대한 개발 비용이 줄지만, 보다 많은 말들의 예들과 보다 많은 관련된 속성들의 예들을 가진 경쟁 서비스 제공자들이 그러한 단계들을 취하지 않는 경쟁자들을 이기기 십상이다. 다수의 경쟁하는 퍼스널 어시스턴트들이 존재할 때, 동일한 요인들이 여전히 유효하지만 보다 높은 레벨을 가진다.
일부 실시예들에서, 시스템은 특정되지 않은 슬롯들에 대한 후속 질문을 묻는 것뿐 아니라, 해당 의도에 원래 사용되지 않았던 슬롯들을 발견하고, 새로운 슬롯에 대한 슬롯 값들을 발견하며, 심지어 원래의 입력 안에 그러한 슬롯 값들을 맞추거나, 발견된 슬롯 값들을 가능한 권장 선택 사항으로 사용하여 슬롯에 대한 질문을 물을 수 있다.
한 예시적 실시예에서, 시스템은 “Deliver a sausage pizza and a coke(소시지 피자와 콜라를 배달해요)”에 “Did you want me to deliver a sausage pizza with breadsticks and a coke(소시지 피자에 브레드스틱과 콜라를 함께 배달할까요)?”로 응답할 수 있는데, 이는 추가 정보(예를 들어, 브레드스틱)가 보통 피자와 콜라 사이에 자리하는 것으로 결정했기 때문이다.
하나 이상의 실시예들은 고객에게 보다 강한 코어 엔진과 보다 많은 값을 제공하는 보다 유용한 스킬들을 가진 퍼스널 어시스턴트를 제공한다. 일부 실시예들에 따르면, 퍼스널 어시스턴트는 보다 많은 수의 스킬들을 제공하기 위해 올바른 스킬/의도를 선택할 수 있다. 일부 실시예들은 스킬 개발자들에게 부과되는 지루한 부담들을 경감시키고, 그들의 처리용량을 높이고 보다 많은 개발자들을 끌어들여 보다 유능한 퍼스널 어시스턴트가 된다.
하나 이상의 실시예들에서, 퍼스널 어시스턴트의 코어 엔진은 종래의 퍼스널 어시스턴트보다 유능하고, 융통성이 있으며, 범용성이 있다. 일부 실시예들은 스킬 개발에 있어 가장 지루한 부담들을 경감시키고, 올바른 스킬을 선택하는 코어 NLU 엔진의 능력을 향상시킨다.
일부 실시예들은 추가적인 관련 세부사항들이 자연어 표현 안에 삽입될 수 있는 위치를 결정하면서, 해당 표현의 의도를 변경하지 않고, 그 표현의 의미가 최소한으로 변경하도록 한다. 다른 버전의 자연어 표현이 원래 표현의 의미에 추가되는 말들이나 어구들과 함께 생성될 수 있다. 이것은 관련된 세부사항들을 추가하고, (설명되지 않은) 옵션들을 특정하고, 제약사항들을 추가하는 것을 포함한다. 원래의 표현과 다른 표현 둘 모두는, 같은 타입의 의도를 불러내나, 다른 의미를 가진다.
하나 이상의 실시예들은 관련된 세부사항들과 같은 추가 정보를 요청하고, 표현되지 않은 옵션들이나 제약사항들을 특정함으로써 표현의 의미를 명확히 하도록 고안된 후속 질문들을 생성한다. 표현 내에 슬롯들을 태깅하거나 표현의 의도를 판단하는 시스템들을 트레이닝 하기 위해, 다른 버전의 자연어 표현, 특히 상술한 타입들이 생성된다. 일부 실시예들은 추가적 세부사항들을 생성하여, 표현에 대한 판독성, 흐름 및 일반적 의도를 교란시키지 않고 그들을 문장 안에 삽입한다.
종래의 시스템들은 보통 표현의 나머지와 접하는 삽입 포인트로부터 자유롭게 흐르는 텍스트를 생성할 수 있고, 표현의 나머지와 다시 연결되는 텍스트를 생성하지 않을 수 있다. 이들은 다음으로 가장 가능성이 높은 텍스트를 생성한다. 이것이 여러 문제들을 일으킨다. 그것은 표현 내에 삽입할 실제 다음 단어들을 생성하여, 정보를 추가하지 않는 유창하지 못한 반복을 야기할 수 있다. 또한, 표현의 다음 부분이 가장 가능성이 높은 토픽(topic)에 관한 것이 아니면, 텍스트는 표현의 나머지에 다시 합리적으로 연결되지 않을 것이다.
일부 실시예들은 삽입 포인트들을 식별하고 삽입할 단어의 수를 결정하여, 표현 내 삽입 포인트들에서 결정된 수의 단어들을 생성한다. 이러한 기법들 모두는 퍼스널 어시스턴트에 대한 자연어 인터페이스의 다른 부분들을 지원하는 고유한 능력들을 가진 특성들이다.
하나 이상의 실시예들은, 시스템이 추가적 세부사항들이 일반적으로 위치(누락)되는 위치를 식별하고 얼마나 많은 추가 세부사항들을 추가할지를 결정할 필요가 있기 때문에, 시스템이 삽입 포인트들을 식별하고 삽입할 단어의 수를 결정하는 것에 의존하는 퍼스널 어시스턴트들로의 자연어 인터페이스를 위해 명확화한 후속 질문들을 생성한다. 일부 실시예들은 후속 질문이 적절할 때를 식별하고, 표현 내 특정 위치들에서 특정된 수의 단어들을 생성하는데 사용되어, 후속 질문의 새로운 세부사항들을 제공할 수 있다.
도 1은 일 실시예에 따른 통신 시스템(10)의 개략도이다. 통신 시스템(10)은 유출 통신 동작을 개시하는 통신 장치(전송 장치(12)) 및 통신 네트워크(110)를 포함할 수 있고, 통신 네트워크(110)는 전송 장치(12)가 통신 네트워크(110) 내 다른 통신 장치들과의 통신 동작들을 개시 및 수행하기 위해 사용될 수 있다. 예를 들어, 통신 시스템(10)은 전송 장치(12)로부터 통신 동작을 수신하는 통신 장치(수신 장치(11))를 포함할 수 있다. 통신 시스템(10)은 다수의 전송 장치들(12) 및 수신 장치들(11)을 포함할 수 있으나, 도면을 단순화하기 위해 도 1에서는 각각 하나씩만 보여지고 있다.
통신 네트워크를 생성하기 위해 유효한 어떤 적절한 회로, 장치, 시스템 또는 이들의 조합(예를 들어, 통신 타워들과 텔레콤 서버들을 포함하는 무선 통신 인프라)이 통신 네트워크(110)를 생성하는데 사용될 수 있다. 통신 네트워크(110)는 어떤 적절한 통신 프로토콜을 이용하여 통신을 제공할 수 있다. 일부 실시예들에서, 통신 네트워크(110)는 예컨대, 전통적인 전화선, 케이블 텔레비전, Wi-Fi(예를 들어, IEEE 802.11 프로토콜), 블루투스, 고주파 시스템(예를 들어, 900MHz, 2.4GHz 및 5.6GHz 통신 시스템들), 적외선, 기타 상대적으로 국지적인 무선 통신 프로토콜, 또는 이들의 어떤 조합을 지원할 수 있다. 일부 실시예들에서 통신 네트워크(110)는 무선 및 휴대 전화들과 개인 이메일 장치들(예를 들어, 블랙베리)이 사용하는 프로토콜들을 지원할 수 있다. 그러한 프로토콜들은 예컨대, GSM, GSM 플러스 EDGE, CDMA, 쿼드밴드(quadband) 및 기타 셀룰러 프로토콜들을 포함할 수 있다. 다른 예로서, 장거리 통신 프로토콜은 Wi-Fi 및 VOIP, LAN, WAN, 또는 다른 TCP-IP 기반 통신 프로토콜들을 사용하여 통화를 발신 또는 수신하기 위한 프로토콜들을 포함할 수 있다. 전송 장치(12) 및 수신 장치(11)는 통신 네트워크(110) 안에 위치할 때, 경로(13)과 같은 양방향 통신 경로, 또는 두 개의 일방 통신 경로들을 통해 통신할 수 있다. 전송 장치(12) 및 수신 장치(11) 둘 모두 통신 동작을 개시하고, 개시된 통신 동작을 수신할 수 있다.
전송 장치(12) 및 수신 장치(11)는 통신 동작들을 송수신하기 위한 어떤 적절한 장치를 포함할 수 있다. 예를 들어, 전송 장치(12) 및 수신 장치(11)는 비한정적으로, 모바일 전화 기기, 텔레비전 시스템, 카메라, 캠코더, 오디오 비디오 기능을 가진 장치, 태블릿, 웨어러블(wearable) 장치, 스마트 가전, 스마트 액자 및 무선(무선 실행 액세서리 시스템을 포함하거나 포함하지 않음) 또는 유선 경로(예를 들어, 전통적인 전화선을 사용함)를 통해 통신할 수 있는 어떤 다른 장치를 포함할 수 있다. 통신 동작은 예컨대, 데이터 및 제어 정보, 음성 통신(예를 들어, 전화 통화), 데이터 통신(예를 들어, 이메일, 문자 메시지, 미디어 메시지), 비디오 통신, 또는 이들의 조합(예를 들어, 비디오 화상회의)을 포함하는 모든 적절한 형태의 통신들을 포함할 수 있다.
도 2는 퍼스널 어시스턴트들이 관련 후속 질문들을 묻고, 빅스비와 같은 퍼스널 어시스턴트들의 개발 시간 및 비용을 크게 줄이면서 동시에 전자 기기(120)(예를 들어, 모바일 전화 장치들, 텔레비전(TV) 시스템들, 카메라들, 캠코더들, 오디오 비디오 기능을 가진 장치, 태블릿들, 패드 장치들, 착용형 장치들, 스마트 가전들, 스마트 사진 액자들, 스마트 조명 등)를 사용하여 자연어 의도 파악의 폭과 정확도를 높이기 위해 사용될 수 있는 시스템(100) 구조의 기능적 블록도를 도시한다. 전송 장치(12)(도 1) 및 수신 장치(11) 둘 모두 전자 기기(120)의 특징들 중 일부 또는 전부를 포함할 수 있다. 일 실시예에서, 전자 기기(120)는 디스플레이(121), 마이크로폰(122), 오디오 출력(123), 입력 메커니즘(124), 통신 회로(125), 제어 회로(126), 카메라(128), 인텔리전트 어시스턴트 앱(129)(기능적으로는 동일하나 의미상으로는 상이한 문구들을 추가적인 세부사항들과 함께 생성하고, 삽입 포인트들을 식별하고 삽입할 단어의 수를 결정하고, 표현 내 특정 위치들에서 특정된 수의 단어들을 생성하고, 명확화한 후속 질문들을 묻고, 클라우드나 서버(130)와 정보 획득/제공을 위해 통신 회로(125)와 통신하기 위한 것으로, 비한정적으로 이하의 실시예들에서 기술하는 것과 같은 예들에 대한 처리 중 어느 하나를 포함할 수 있음) 및 어떤 다른 적절한 구성요소들을 포함할 수 있다. 일 실시예에서, 애플리케이션들 1-N(127)이 제공되고 클라우드나 서버(130), 통신 네트워크(110) 등으로부터 획득될 수 있으며, 이때 N은 1 이상의 양의 정수이다.
일 실시예에서, 오디오 출력부(123), 디스플레이(123), 입력 메커니즘(124), 통신 회로(125) 및 마이크로폰(122)에 의해 사용되는 애플리케이션들 모두는 상호 연결되어 제어 회로(126)에 의해 관리될 수 있다. 일 예에서, 다른 튜닝 장치들로 음악을 전송할 수 있는 손에 들고 쓰는 뮤직 플레이어가 전자 기기(120) 안에 병합될 수 있다.
일 실시예에서, 오디오 출력부(123)는 전자 기기(120)의 사용자에게 오디오를 제공하기 위한 어떤 적절한 오디오 구성요소를 포함할 수 있다. 예를 들어 오디오 출력부(123)는 전자 기기(120)에 내장되는 하나 이상의 스피커들(예를 들어, 모노 또는 스테레오 스피커들)을 포함할 수 있다. 일부 실시예들에서 오디오 출력부(123)는 전자 기기(120)와 원격으로 연결되는 오디오 구성요소를 포함할 수 있다. 예를 들어 오디오 출력부(123)는 유선으로(예를 들어, 잭이 있는 전자 기기(120)에 연결됨) 또는 무선으로(예를 들어, 블루투스 헤드폰들이나 블루투스 헤드셋) 통신 장치에 연결될 수 있는 헤드셋, 헤드폰 또는 이어폰을 포함할 수 있다.
일 실시예에서, 디스플레이(121)는 사용자에게 보여지는 디스플레이를 제공하기 위한 어떤 적절한 스크린이나 프로젝션(projection) 시스템을 포함할 수 있다. 예를 들어 디스플레이(121)는 전자 기기(120)에 병합되는 스크린(예를 들어, LCD 스크린, LED 스크린, OLED 스크린 등)을 포함할 수 있다. 다른 예로서, 디스플레이(121)는 전자 기기(120)(예를 들어, 비디오 프로젝터)로부터 먼 표면 상에 콘텐츠에 대한 디스플레이를 제공하는 이동형 디스플레이나 프로젝팅(projecting) 시스템(예를 들어, 비디오 프로젝터)을 포함할 수 있다. 디스플레이(121)는 제어 회로(126)의 지시 하에서 콘텐츠(예를 들어, 통신 동작들에 관한 정보나 이용 가능한 미디어 선택에 관한 정보)를 표시하도록 작동할 수 있다.
일 실시예에서, 입력 메커니즘(124)은 전자 기기(120)에 사용자 입력이나 명령들을 제공하기 위한 임의의 적절한 메커니즘 또는 사용자 인터페이스일 수 있다. 입력 메커니즘(124)은 버튼, 키패드, 다이얼, 클릭 휠, 마우스, 비주얼 포인터, 리모콘, 하나 이상의 센서들(예를 들어, 카메라 또는 비주얼 센서, 광 센서, 근접 센서 등), 또는 터치 스크린과 같은 다양한 형태를 취할 수 있다. 입력 메커니즘(124)은 멀티 터치 스크린을 포함할 수 있다.
일 실시예에서, 통신 회로(125)는 통신 네트워크(예를 들어, 도 1의 통신 네트워크(110))와 연결하여, 전자 기기(120)로부터 통신 네트워크 내 다른 장치들로 통신 동작들 및 매체를 전송하도록 동작하는 어떤 적절한 통신 회로일 수 있다. 통신 회로(125)는 예를 들어, Wi-Fi (예를 들어, IEEE 802.11 프로토콜), 블루투스, 고주파 시스템(예를 들어, 900 MHz, 2.4 GHz 및 5.6 GHz 통신 시스템), 적외선, GSM, GSM 플러스 EDGE, CDMA, 쿼드밴드(quadband) 및 다른 셀룰러 프로토콜들, VOIP, TCP-IP, 또는 어떤 다른 적절한 프로토콜과 같은 어떤 적절한 통신 프로토콜을 사용하여 통신 네트워크와 인터페이스하도록 동작할 수 있다.
일부 실시예들에서, 통신 회로(125)는 어떤 적절한 통신 프로토콜을 이용하여 통신 네트워크를 생성하도록 작동할 수 있다. 예를 들어 통신 회로(125)는 다른 통신 장치들에 연결하기 위해 단거리 통신 프로토콜을 사용하는 단거리 통신 네트워크를 생성할 수 있다. 예를 들어, 통신 회로(125)는 전자 기기(120)를 블루투스 헤드셋과 연결하기 위해 블루투스 프로토콜을 이용하여 로컬 통신 네트워크를 생성하도록 동작될 수 있다.
일 실시예에서, 제어 회로(126)는 전자 기기(120)의 동작들 및 성능을 제어하도록 동작할 수 있다. 제어 회로(126)는 예를 들어, 프로세서, (예를 들어, 전자 기기(120)의 다른 구성요소들로 명령어들을 전송하기 위한) 버스, 메모리, 저장부, 또는 전자 기기(120)의 동작들을 제어하기 위한 어떤 다른 적절한 구성요소를 포함할 수 있다. 일부 실시예들에서, 프로세서는 디스플레이를 구동하고, 사용자 인터페이스로부터 수신된 입력들을 처리할 수 있다. 메모리 및 저장부는 예를 들어, 캐시, 플래쉬 메모리, ROM 및/또는 RAM/DRAM을 포함할 수 있다. 일부 실시예들에서, 메모리는 구체적으로, (예를 들어, 운영 시스템, 사용자 인터페이스 기능들 및 프로세서 기능들과 같은 장치 애플리케이션들을 위한) 펌웨어를 저장하기 위한 것일 수 있다. 일부 실시예들에서, 메모리는 전자 기기(120)가 통신 동작들을 수행하는 다른 장치들과 관련된 정보를 저장(예를 들어, 통신 동작들과 관련된 연락처 정보를 저장하거나 사용자에 의해 선택된 다양한 미디어 타입들 및 미디어 항목들과 관련된 정보를 저장)하도록 동작할 수 있다.
일 실시예에서, 제어 회로(126)는 전자 기기(120) 상에 구현되는 하나 이상의 애플리케이션들의 동작들을 수행하도록 작동될 수 있다. 임의의 적절한 수나 종류의 애플리케이션들이 구현될 수 있다. 이하의 내용은 서로 다른 애플리케이션들을 열거할 것이지만, 그 애플리케이션들 중 일부나 전체가 하나 이상의 애플리케이션들로 결합될 수도 있다는 것을 알아야 한다. 예를 들어, 전자기기(120)는 비한정적으로, 자동 음성 인식(ASR) 애플리케이션, OCR 애플리케이션, 다이얼로그 애플리케이션, 맵 애플리케이션, 미디어 애플리케이션(예를 들어, 퀵타임(QuickTime), 모바일뮤직(MobileMusic). 앱, 또는 모바일 비디오(MobileVideo) 앱), 소셜 네트워킹 애플리케이션들(예를 들어, 페이스북, 인스타그램, 트위터 등), 일정 관리 애플리케이션(예를 들어, 이벤트, 약속 관리 캘린더 등), 인터넷 브라우징 애플리케이션 등을 포함할 수 있다. 일부 실시예들에서, 전자 기기(120)는 통신 동작들을 수행하도록 작동하는 하나 혹은 다수의 애플리케이션들을 포함할 수 있다. 예를 들어, 전자 기기(120)는 메시징 애플리케이션, 이메일 애플리케이션, 보이스 메일 애플리케이션, 인스턴트 메시징 애플리케이션(예를 들어, 채팅용), 화상회의 애플리케이션, 팩스 애플리케이션, 또는 어떤 적절한 통신 동작을 수행하기 위한 어떤 다른 적절한 애플리케이션을 포함할 수 있다.
일부 실시예들에서, 전자 기기(120)는 마이크로폰(122)을 포함할 수 있다. 예를 들어, 전자 기기(120)는 사용자가 통신 동작 중이나 통신 동작을 설정하는 수단으로서나 물리적 사용자 인터페이스를 사용하는 것에 대한 대안으로서, 애플리케이션들 1-N(127)의 음성 제어 및 탐색을 위해 오디오(예를 들어, 음성 오디오)를 전송할 수 있게 하는 마이크로폰(122)을 포함할 수 있다. 마이크로폰(122)은 전자 기기(120) 안에 병합되거나, 전자 기기(120)와 원격으로 연결될 수 있다. 예를 들어, 마이크로폰(122)은 유선 헤드폰들 안에 병합되거나, 무선 헤드셋에 병합되거나, 리모컨 장치 등에 병합될 수 있다.
일 실시예에서, 카메라 모듈(128)은 정지 영상 및 동영상을 촬영하는 기능, 편집 기능, 사진/비디오 등을 전송하거나 공유하는 등을 위한 통신 상호운용 기능을 포함하는 하나 이상의 카메라 기기들을 포함한다.
일 실시예에서, 전자 기기(120)는 통신 동작을 수행하기 적합한 어떤 다른 구성요소를 포함할 수 있다. 예를 들어, 전자 기기(120)는 호스트 장치, 이차 입력 메커니즘(예를 들어, 온/오프 스위치), 또는 어떤 다른 적절한 구성요소에 연결하기 위한 인터페이스, 포트, 또는 전력 공급기를 포함할 수 있다.
도 3은 일부 실시예들에 따른 삽입 포인트들을 식별하고 삽입할 단어의 수를 결정하는 예(300)를 도시한다. 예(300)에서, “buy me a sausage pizza(소시지 피자를 사)”라는 표현이 사용되고 삽입 포인트들(310, 320 및 330)을 포함한다.
일부 실시예들에서, 말이 발설되어, 마이크로폰(예를 들어, 도 1의 마이크로폰(122))에 의해 캡처되고, 텍스트로 변환된다(예를 들어, 전자 기기(120), 클라우드/서버(130), 또는 그들의 조합에 의한 음성-텍스트 인식 처리를 이용함). 다른 실시예들에서, 입력은 텍스트적 표현이다.
일부 실시예들에서, 표현 내에서 각각의 순차적 단어 쌍마다, 클라우드나 서버(130), 전자 기기(120)의 프로세서 및 메모리를 이용하는 인텔리전트 어시스턴트(129), 또는 그들의 조합을 통한 프로세싱에 의해 기본 점수가 결정된다. 기본 점수는 순차적 쌍인 두 단어들이 정상적으로 사용될 때, 그 순서로 사용될 가능성이 얼마나 있는지를 평가한다. 일부 실시예들에서, 상기 프로세싱은 그 두 단어들이 정상적으로 사용될 때, 그 순서로, 그러나 서로에 대해 다양한 짧은 거리들을 두고 사용될 가능성이 얼마나 있는지를 평가한다. 프로세싱은 또한, 삽입 품질에 대한 점수를 매기며, 이는 기본 점수에 의해 나누어진 단어 거리 D에서의 점수들에 기반한다. 그 비율이 기준치(예를 들어, 인공 지능(AI) 프로그래머에 의해 선택되거나, 프로세싱 속도에 기반하여 선택되는 수)보다 크면, 프로세싱은 두 단어들 사이의 위치를 삽입 포인트로서 식별하고, 삽입할 단어의 수를 단어 거리 D로 설정한다.
예(300)에서, 1인 단어 거리 D에 대해(참조부호 311), “buy”와 “me”의 쌍은 buy_me/buy me > 1이라는 결과를 가져온다. “a”와 “sausage”의 쌍은 a _ sausage/ a sausage > 1의 결과를 가져온다. “sausage”와 “pizza”의 쌍은 sausage_pizza/sausage pizza < 1의 결과를 가져온다.
2인 단어 거리 D에 대해(참조부호 312), “buy”와 “me”의 쌍은 buy__me/buy me > 1이라는 결과를 가져온다. “a”와 “sausage”의 쌍은 a __ sausage/ a sausage > 1의 결과를 가져온다. “sausage”와 “pizza”의 쌍은 sausage__pizza/sausage pizza < 1의 결과를 가져온다.
3인 단어 거리 D에 대해(참조부호 313), “buy”와 “me”의 쌍은 buy___me/buy me < 1이라는 결과를 가져온다. “a”와 “sausage”의 쌍은 a __ _sausage/ a sausage > 1의 결과를 가져온다. “sausage”와 “pizza”의 쌍은 sausage___pizza/sausage pizza > 1의 결과를 가져온다.
삽입 포인트 310는 1 또는 2 개의 단어들이 삽입되게 할 수 있다. 삽입 포인트 320은 1, 2, 또는 3 개의 단어들이 삽입되게 할 수 있다. 삽입 포인트 330은 3 개의 단어들이 삽입되게 할 수 있다. 삽입 포인트들 및 단어의 수를 식별하기 위한 추가적 세부사항들을 이하에서 도 7을 참조해 기술할 것이다.
도 4는 일부 실시예들에 따라 사양에 맞춰 단어들을 생성하는 예(400)를 도시한다. 예(300)(도 3)를 따라갈 때, 예(400)에서 전처리 부분은 순방향 확률을 예측하도록 생성 언어 모델을 훈련시키고, 역방향 확률을 예측하기 위해 그 생성 언어 모델을 훈련시키는 것을 포함한다.
표현(예를 들어, “buy me a sausage pizza”)이 노드들을 포함하는 그래프로 나타내어진다. 이때 프로세싱은 단어들이 생성되어야 하는 삽입 포인트들을 위한 노드들을 생성한다. 노드들은 엣지 가중치들(edge weights)을 생성하기 위해 순방향 및 역방향 모델들을 이용하여 그래프 안으로 삽입된다. 프로세싱은 시작부터 끝까지 경로들이 연결되게 하고, 삽입 포인트들에서 특정된 수의 삽입 노드들을 거치도록 진행한다. 경로들은 모델들로부터 순방향 및 역방향 점수들로 점수가 매겨지고, 최상위 X 개의 최고 점수 경로들을 선택하며, 관련된 단어들을 가져온다. 일부 실시예들에서, 생성 언어 모델들은 개인화될 수 있다.
단순 개인화된 언어 모델 실시예들은, 이메일들 및 다른 녹음된 대화들과 같이 사용자에 의해 생성된 퍼스널인 자연어 데이터에 대해 트레이닝하는 단계; 기존의 언어 모델을 퍼스널 언어 데이터에 대한 추가 트레이닝을 반복하여 업데이트하는 단계; 개인 및 일반 모델들의 앙상블을 사용하는 단계; 개인 및 일반 모델들의 모델 파라미터들을 블렌딩하는 단계; 개인 및 일반 모델들과의 퓨전(fusion) 모델을 이용하는 단계 등을 포함할 수 있다.
예(400)에서, 삽입 포인트(310)에 있어서, 관련 단어들(410)은 다음과 같은 단어들(즉, 1 또는 2 개의 단어들)의 예를 포함할 수 있다: “one get”, “and get”, “it for”, “to get”, “to make”, “they give”, “and give”, “and”, “make”, “and”, “bring” 및 “to bring”.
삽입 포인트(320)에 있어서, 관련 단어들(420)은 다음과 같은 단어들(즉, 1 개의 단어)의 예를 포함할 수 있다: “free”, “turkey”, “chicken”, “new”, “small”, “delicious”, “little”, “large” 및 “Italian”; 관련 단어들(421)은 다음과 같은 단어들(즉, 2 개의 단어들)을 포함할 수 있다: “slice of”, “piece of”, “chicken and”, “cheese and”, “bowl of”, “pepperoni and”, “side of”, “turkey and”, “sausage and”, 그리고 “bag of”; 관련 단어들(422)은 다음과 같은 단어들(즉, 3 개의 단어들)의 예를 포함할 수 있다: “slice of the”, “pizza and a”, “sample of the”, “piece of the”, “side of the”, “bowl of the”, “bite of the”, “bag of the”, “sandwich and a”, 그리고 “salad and a”.
삽입 포인트(330)에 있어서, 관련 단어들(430)은 다음과 같은 단어들(즉, 3 개의 단어들)의 예를 포함할 수 있다: “sandwich and a”, “and a cheese”, “pizza or a”, “sandwich or a”, “and cheese and”, “and goat cheese”, “and gluten free”, “salad and a”, “and a white”, “instead of a”, “egg and cheese”, “ham and cheese”, “instead of the”, 그리고 “and thin crust”. 사양에 맞춰 단어들을 생성하기 위한 추가적 세부사항들을 이하에서 도 8을 참조해 기술할 것이다.
도 5는 일부 실시예들에 따라, 세부사항들을 이용하여 후속 질문들을 생성하는 예(500)를 도시한다. 일부 실시예들에서, 예(500)에 대한 프로세싱은 삽입 포인트들을 식별하는 단계, 표현 내 특정 위치들에서 특정된 수의 단어들을 생성하는 단계(생성된 단어들은 명확화되어야 하는 세부사항들이다) 및 세부사항들과 함께 명확화한 질문을 생성하는 단계를 포함한다.
하나 이상의 실시예들에서, 명확화한 질문의 생성은 유사한 대안들(예를 들어, 용어 “or(또는)”를 이용한 각각의 옵션들); 일반적 템플릿(예를 들어, “X, Y 또는 Z 중에서 어떤 것을 의미하였습니까?”); 및 맥락 내에서 세부사항들을 더한 일반적 템플릿 사이에서 선택을 제시하기 위해 생성된 세부사항들을 그룹핑하는 것을 포함한다.
또한, 명확화한 질문의 생성은 삽입 포인트(510) 주변의 단어들을 생성된 세부사항들 옆에 놓는다(예를 들어, 하나의 세부사항에 대한 확인을 요구하거나 “or”를 사용한 선택을 제시할 수 있다).
그룹핑(grouping) 단계(520)의 결과로서, 단어들(521)의 집합은 small, little 및 large를 포함할 수 있고; 단어들(522)의 집합은 turkey, chicken 및 Italian을 포함할 수 있으며, 다른 단어들(523)의 집합은 free, new 및 delicious를 포함할 수 있다. 단어들의 그룹핑은 단어들의 순서를 유지하며, 이때 집합들(521, 522 및 523)은 단어들의 부분집합들이라고 간주된다.
일부 실시예들에서, 다음 단계(530)에 있어서, 특정 단어들을 옵션들로서 사용하여 세부 질문이 행해진다. 세그먼트 내에 삽입 문맥의 단어들이 복사되고(540), 하나의 집합 내 단어들이 삽입된다(545). 이 예에서, 하나의 집합(521)(small, little 및 large)로부터의 단어들이 “A” 다음에 삽입된다. 단어 “or”와 쉼표들(commas)이 집합의 단어들 사이에 삽입된다(550). 그 결과가 “A small, little or large sausage pizza”이다. 세부사항들을 사용하여 후속 질문들을 생성하기 위한 추가 세부사항들에 대해 이하에서 도 9를 참조해 기술할 것이다.
도 6은 일부 실시예들에 따라 기능적으로 유사하지만 의미상으로는 상이한 환언들(paraphrases)을 생성하는 프로세스(600)의 블록도를 도시한다.
블록 610에서, 단어들이 콘텐츠 또는 비콘텐츠 단어들로서 태깅된다. 일부 실시예들에서, 비콘텐츠 단어들은 부분 스피치 태거(a part-of-speech tagger) 프로세스를 실행함으로써 식별될 수 있다. 닫힌 종류(closed class)의 단어들이 보통 비콘텐츠 단어들이며, 부분 스피치 태그들(전치사, 한정사 등)에 의해 식별될 수 있다. 다른 모든 단어들은 콘텐츠 단어들이라고 간주된다.
블록 620에서, 모든 콘텐츠 단어들에 대해, 같은 문맥의 두 단어들 간 기능적 유사성을 평가하기 위한 프로세싱을 이용하여 후보 단어들의 집합이 생성된다.
블록 630에서, 후보 단어들의 잠정적 조합들에 대한 점수가 매겨지고, 점수들을 이용하여 불량한(bad) 조합들은 제거된다. 일부 실시예들에서, 각각의 선택된 후보에 대해 기능성 유사도 점수들이 곱해진다. 조합 점수들이 허용될 수 있을 만큼 충분히 큰 값을 가지는지를 결정하기 위한 기준치가 사용된다. 기준치는 미리 특정된 기능적 유사도 레벨로 설정될 수 있다. 이와 달리, 일부 실시예들에서 기준치는 각각의 후보에 대해 기능적 유사도 점수가 주어진 상태에서 한 값을 선택하기 위한 일련의 규칙들을 사용하여 정해진다. 규칙의 일 예는 기준치를 모든 개방된 종류의 단어들에 대해 가장 좋은 것으로 제안된 대체자들의 집합에서 가장 나쁜 것으로 제안된 기능적 유사 단어를 가진 가능적 유사도 점수로 설정하는 것일 수 있다.
프로세스(600)는 그런 다음, 블록들(640, 650 및 660)에 따라 해당 조합들에 대한 추가 세부사항들을 생성하고 그들을 식별된 삽입 포인트들 안에 삽입한다.
일부 실시예들에서, 각각의 콘텐츠 단어들을 대체할 후보 단어들의 조합들이 생성되었다(블록 630). 일 실시예에서, 추가 세부사항들은 원래의 표현 상에서 생성되며, 추가 세부사항들을 블록 630에서 생성된 조합들의 동일한 삽입 포인트들 안에 삽입함으로써 재사용된다. 블록 640에서, 삽입 포인트들이 식별되고 삽입할 단어의 수가 결정된다. 블록 650에서, 특정된 수의 단어들이 표현 내 특정 위치들에서 생성된다. 블록 660에서, 생성된 단어들은 블록 640에서 식별된 삽입 포인트들에서 삽입된다.
도 7은 일부 실시예들에 따라, 삽입 포인트들을 식별하고 삽입할 단어의 수를 결정하는 프로세스(700)의 블록도를 도시한다.
일부 실시예들에서, 표현 내 각각의 순차적 단어 쌍에 대해(예를 들어, 그 표현이 말해지고, 마이크로폰(예를 들어 도 1의 마이크로폰(122))에 의해 캡처되고 (예를 들어 전자 기기(120), 클라우드/서버(130), 또는 이들의 조합에 의한 음성-텍스트 인식 프로세싱을 이용하여) 텍스트로 변환됨), 블록 710에서, 프로세스(700)는 그 두 단어들이 정상적으로 사용될 때, 그러한 순서로 발생하는 것이 얼마나 가능한지를 평가한다. 이것은 기본 점수이다. 일부 실시예들에서, 정상적 사용은 통계적 언어 모델에 저장된 확률들을 사용하여 평가된다. 하나 이상의 실시예들에서 프로세스(700)는 말뭉치 n 그램 카운트(raw corpus n-gram counts)를 이용한다.
블록 720에서, 프로세스(700)는 그 두 단어들이 정상적으로 사용될 때, 그 순서로, 그러나 서로에 대해 다양한 짧은 거리들을 두고 발생할 가능성이 얼마나 있는지를 평가한다. 일부 실시예들에서, 프로세스(700)는 한 쌍의 단어들 사이에 1, 2, 또는 3 개의 단어들이 존재할 때를 평가한다. 이 점수들이 단어 거리 D 에서의 점수들이고, 이때 D는 한 쌍의 단어들 사이에서의 단어들의 수이다.
블록 730에서, 프로세스(700)는 삽입 품질=단어 거리 D에서의 점수/기본 점수로 점수를 매긴다. 블록 740에서, 그 비율이 기준치보다 크면, 두 단어들 사이의 위치가 삽입 포인트로서 식별되고, 삽입할 단어의 수가 단어 거리 D로 설정된다.
도 8은 일부 실시예들에 따라, 표현 내 특정 지점들에서 특정된 수의 단어들을 생성하는 프로세스(800)의 블록도를 도시한다. 표현(예를 들어, 표현이 말해지고, 마이크로폰(예를 들어, 도 1의 마이크로폰(122)에 의해 캡처되고 (예를 들어, 전자 기기(120), 클라우드/서버(130), 또는 그 조합에 의해 음성-텍스트 변환 프로세싱을 이용하여) 텍스트로 변환된 경우) 및 특정 위치들에서 특정 수의 단어들을 생성하는 요건이 주어질 때, 프로세스(800)는 대응하는 위치들로 삽입될 수 있는 단어들의 집합을 생성한다. 일부 실시예들에서, 표현은 텍스트적 표현일 수 있다. 여기서, “X”가 생성이 요구되는 단어들의 고유 집합들의 수를 나타내기 위해 사용된다.
블록 810에서, 프로세스(800)는 이전 단어들을 감안하여 다음 단어의 확률들을 예측하기 위해 생성 언어 모델을 트레이닝 한다. 블록 810에서의 프로세싱을 순방향 모델이라고 부른다. 일부 실시예들에서, 순방향 모델은 n 그램(n-gram) 언어 모델이다. 하나 이상의 실시예들에서, 순방향 모델은 장-단기 메모리 블록들을 가진 RNN(Recurrent Neural Network, 회귀 신경망)이다.
블록 820에서, 프로세스(800)는 다음 단어들을 감안하여 이전 단어의 확률들을 예측하기 위해 생성 언어 모델을 트레이닝 한다. 블록 820에서의 프로세싱을 역방향 모델이라고 부른다. 일부 실시예들에서, 역방향 모델은 n 그램 언어 모델이다. 하나 이상의 실시예들에서, 역방향 모델은 장-단기 메모리 블록들을 가진 RNN이다.
블록 830에서, 프로세스(800)는 표현을 그래프로 나타낸다. 일부 실시예들에서, 표현의 앞과 뒤에 시작과 종료 노드들이 추가되고, 각각의 단어가 엣지를 가진 후계자(successor)와 연결된다.
블록 840에서, 프로세스(800)는 생성되어야 하는 각각의 단어에 대한 노드들을 생성한다.
블록 850에서, 프로세스(800)는 블록 840으로부터의 노드들을 그래프 내 특정된 삽입 포인트들에 놓는다. 일부 실시예들에서, 순방향 및 역방향 모델들이 사용되어, 그러한 추가 노드들을 그래프와 연결시키는 점수 엣지 가중치들을 생성하고 점수 매긴다. 시작부터 종료까지의 경로들이 존재하도록 노드들이 삽입되어야 하고, 이때 각각의 경로는 그 삽입 포인트에서 특정된 수의 단어들에 해당하는 수의 노드들을 거친다. 한 단어가 각각의 엣지와 연관된다
일부 실시예들에서, 생성 모델을 사용하여 해당 단어를 생성하는 확률이, 블록 860에서 해당 경로를 점수 매기는데 사용되는 엣지에 대한 가중치로서 사용된다. 일부 실시예들은 엣지 점수들에 대해, 순방향 모델들과 역방향 모델들 둘 모두로부터의 점수들을 합한다. 하나 이상의 실시예들은 덧셈을 사용하여 그 점수들을 합하고, 일부 실시예들은 곱셈을 사용하여 그 점수들을 합한다. 하나 이상의 실시예들은 삽입의 앞부분 절반에 있었던 엣지들에 대해 순방향 점수들을 사용하고, 삽입의 뒷부분 절반에 있는 엣지들에 대해 역방향 점수들을 사용한다.
일부 실시예들에서, 블록 860에서 선택되기로 했던 노드들 및 엣지들의 부분집합 만을 유지하기 위해 파티클(particle) 필터링 기법들이 사용된다. 블록 860에서, 프로세스(800)는 경로들을 모델들로부터의 순방향 및 역방향 점수들로 점수 매기고, 상위 X 개의 최고 점수 경로들을 선택한다. 삽입을 위해 관련된 단어들이 귀환된다. 일부 실시예들에서, 최선의 경로들을 선택하기 위해 동적 프로그래밍이 사용된다. 하나 이상의 실시예들에서, 파티클 필터링 기법들이 그러한 최선의 경로들을 결정하기 위해 사용된다.
도 9는 일부 실시예들에 따라, 명확화한 후속 질문들을 생성하기 위한 프로세스(900)의 블록도를 도시한다.
블록 910에서, 프로세스(900)는 프로세스(700)(도 7)를 사용하여 삽입 포인트들을 식별하고 삽입할 단어의 수를 결정한다.
블록 920에서, 프로세스(900)는 프로세스(700)(도 8)를 사용하여 표현 내 특정 위치들에서 특정된 수의 단어들을 생성한다. 이들은 명확화를 요하는 세부사항들이다.
블록 930에서, 프로세스(900)는 세부사항들 중 어느 것이 의도되는 것인지를 묻는 명확화한 질문을 형성한다. 일부 실시예들에서, 추가 세부사항들이 “Did you mean X, Y, or Z(X, Y 또는 Z 중에서 어떤 것을 의미하였습니까)?”와 같은 일반적인 질문에 들어 맞는 경우 일반 템플릿이 사용될 수 있다.
하나 이상의 실시예들에서, 템플릿 내 삽입 포인트를 둘러 싼 텍스트는 문맥(context)을 제공해야 한다. 삽입 포인트 주변에서 고정된 수의 단어들이 선택되거나, 전체 문장(삽입 추가)이 선택되거나, 구문 해석기(parser)의 출력에 기반하는 규칙들을 통해 문장의 하위 섹션들이 선택될 수 있다.
일부 실시예들에서 문장의 하위 섹션들이 사용된다. 하위 섹션의 끝은 문장의 끝이거나, 삽입 포인트로부터 최초로 만나는 닫힌 종류의 단어(비포함형(non-inclusive))이다. 하위 섹션의 시작은 삽입 포인트로부터 마지막으로 만나는 닫힌 종류의 단어이다(포함형(inclusive)).
도 10은 하나이상의 실시예들을 구현하는 컴퓨팅 시스템을 포함하는 정보 처리 시스템을 도시한 상위 블록도이다. 시스템(1000)은 하나 이상의 프로세서들(1011)(예를 들어, ASIC, CPU 등)을 포함하며, (그래픽, 텍스트 및 기타 데이터를 디스플레이 하기 위한) 전자적 디스플레이 장치(1012), 메인 메모리(1013)(예를 들어, RAM(random access memory), 캐시 장치들 등), 저장 장치(1014)(예를 들어, 하드 디스크 드라이브), 착탈 가능 저장 장치(1015)(예를 들어, 착탈 가능 저장 드라이브, 착탈 가능 메모리, 자기 테이프 드라이브, 광 디스크 드라이브, 컴퓨터 소프트웨어 및/또는 데이터를 안에 저장하는 컴퓨터 판독가능 매체), 사용자 인터페이스 장치(1016)(예를 들어, 키보드, 터치 스크린, 키패드, 포인팅 장치) 및 통신 인터페이스(1017)(예를 들어, 모뎀, 무선 트랜시버(Wi-Fi, 셀룰러 등), 네트워크 인터페이스(이더넷 카드 등), 통신 포트, 또는 PCMCIA 슬롯 및 카드)를 더 포함할 수 있다.
통신 인터페이스(1017)는 인터넷(1050), 모바일 전자 기기(1051), 서버(1052), 네트워크(1053) 등을 통해 컴퓨터 시스템 및 외부 장치들 사이에서 소프트웨어 및 데이터가 전송될 수 있게 한다. 시스템(1000)은 상술한 장치들(1011 내지 1017)이 연결되는 통신 인프라(1018)(예를 들어, 통신 버스, 크로스 바, 또는 네트워크)를 더 포함한다.
통신 인터페이스(1017)를 통해 전송되는 정보는 신호를 운반하는 통신 링크를 통해 통신 인터페이스(1017)가 수신할 수 있는 전자 신호, 전자기 신호, 광 신호, 또는 기타 신호들의 형태일 수 있으며, 유선 또는 케이블, 광섬유, 전화선, 휴대폰 링크, 무선 주파수(RF) 링크 및/또는 기타 통신 채널들을 이용하여 구현될 수 있다.
모바일 무선 기기(예를 들어, 모바일 전화, 태블릿, 착용형 장치 등)에서의 하나 이상의 실시예들의 한 구현예에서, 시스템(1000)은 카메라(128)(도 2)와 같은 이미지 촬영 장치(1020) 및 마이크로폰(122)(도 2)과 같은 오디오 캡처 장치(1019)를 더 포함한다. 시스템(1000)은 MMS(1021), SMS(1022), 이메일(1023), 소셜 네트워크 인터페이스(SNI)(1024), 오디오/비디오(AV) 플레이어(1025), 웹 브라우저(1026), 이미지 캡처(1027) 등과 같은 애플리케이션 처리 또는 프로세서들을 더 포함할 수 있다.
일 실시예에서, 시스템(1000)은 인텔리전트 어시스턴트 앱(129)(도 2)에 관하여 기술한 것과 유사한 프로세싱, 상술한 바와 같은 프로세스(600)(도 6), 프로세스(700)(도 7), 프로세스(800)(도 8) 및 프로세스(900)(도 9)의 프로세싱을 구현할 수 있는 인텔리전트 에이전트 프로세싱(1030)을 포함한다. 일 실시예에서, 인텔리전트 에이전트 프로세싱(1030)은 운영체제(1029)와 함께 시스템(1000)의 메모리에 상주하는 실행 가능 코드로서 구현될 수 있다. 다른 실시예에서, 지능형 에이전트 프로세싱(1030)은 하드웨어, 펌웨어 등으로 제공될 수 있다.
일 실시예에서, 각각이거나 조합 형태의, 메인 메모리(1003), 저장 장치(1004) 및 착탈가능 저장 장치(1005)는 상술한 실시예들에 대해 하나 이상의 프로세서들(1001)이 실행할 수 있는 명령어들을 저장할 수 있다.
당업자에게 알려져 있다시피, 상술한 예시적 아키텍처들은 상기 아키텍처들에 따라, 소프트웨어 모듈들, 마이크로코드, 컴퓨터 판독가능 매체 상의 컴퓨터 프로그램 제품, 아날로그/로직 회로, ASIC(application specific integrated circuit)들, 펌웨어, 가전 기기, AV 장치, 무선/유선 송신기, 무선/유선 수신기, 네트워크, 멀티미디어 기기 등과 같은 프로세서에 의해 실행될 프로그램 명령어들과 같이 여러 방식에 따라 구현될 수 있다. 또한, 상기 아키텍처의 실시예들은 전적인 하드웨어 실시예, 전적인 소프트웨어 실시예, 또는 하드웨어 및 소프트웨어 요소들 모두를 포함하는 실시예의 형태를 취할 수 있다.
하나 이상의 실시예들이 하나 이상의 실시예들에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품들의 흐름도들 및/또는 블록도들을 참조하여 기술되었다. 그러한 예시도/도면들에 대한 각각의 블록, 또는 이들의 조합들은 컴퓨터 프로그램 명령어들에 의해 구현될 수 있다. 컴퓨터 프로그램 명령어들은 프로세서에 의해 제공될 때, 프로세서를 통해 실행되는 명령어들이 상기 흐름도 및/또는 블록도에 특정된 기능들/동작들을 구현하기 위한 수단들을 생성하도록 하는 머신을 생성한다. 흐름도/블록도들 내 각각의 블록은 하나 이상의 실시예들을 구현하는 하드웨어 및/또는 소프트웨어 모듈이나 로직을 나타낼 수 있다. 다른 구현예들에서, 블록들 내에 표기된 기능들은 도면에 표시된 순서와 다르게, 동시 발생적으로나, 다른 식으로 일어날 수 있다.
"컴퓨터 프로그램 매체", "컴퓨터 사용가능 매체", "컴퓨터 판독가능 매체" 및 "컴퓨터 프로그램 제품"이라는 용어들은 일반적으로, 주 메모리, 이차 메모리, 착탈 가능 저장 드라이브, 하드 디스크 드라이브에 설치되는 하드 디스크와 같은 매체를 의미하는데 사용된다. 이러한 컴퓨터 프로그램 제품들은 컴퓨터 시스템으로 소프트웨어를 제공하기 위한 수단들이다. 컴퓨터 판독가능 매체는 컴퓨터 시스템이 컴퓨터 판독가능 매체로부터 데이터, 명령어들, 메시지들 또는 메시지 패킷들 및 다른 컴퓨터 판독가능 정보를 판독 가능하게 한다. 예컨대, 컴퓨터 판독가능 매체는 플로피 디스크, ROM, 플래시 메모리, 디스크 드라이브 메모리, CD-ROM 및 다른 영구 저장부와 같은 비휘발성 메모리를 포함할 수 있다. 그것은 예컨대, 컴퓨터 시스템들 간 데이터 및 컴퓨터 명령어들과 같은 정보를 전송하는데 유용하다. 컴퓨터 프로그램 명령어들은 컴퓨터, 기타 프로그래머블 데이터 프로세싱 장치, 또는 기타 전자 기기들이 특정 방식으로 기능하게 할 수 있는 컴퓨터 판독가능 매체에 저장되어, 컴퓨터 판독가능 매체에 저장된 명령어들이 흐름도 및/또는 블록도의 블록이나 블록들에서 특정된 기능/행위를 구현하는 명령어들을 포함하는 제조품을 생성하도록 한다.
이 명세서 내 블록도 및/또는 흐름도들을 나타내는 컴퓨터 프로그램 명령어들은 컴퓨터, 프로그래머블 데이터 처리 장치, 또는 처리 장치들 상으로 로딩되어, 그 위에서 수행되는 일련의 동작들이 컴퓨터 구현 프로세스를 생성하도록 할 수 있다. 컴퓨터 프로그램들(즉, 컴퓨터 제어 로직)은 주 메모리 및/또는 이차 메모리 안에 저장된다. 컴퓨터 프로그램들은 또한 통신 인터페이스를 통해 수신될 수도 있다. 그러한 컴퓨터 프로그램들은 실행 시, 컴퓨터 시스템이 여기 논의된 바와 같은 실시예들의 특성들을 수행할 수 있게 한다. 특히, 컴퓨터 프로그램들은 실행 시, 프로세서 및/또는 멀티코어 프로세서가 컴퓨터 시스템의 특성들을 수행하게 할 수 있다. 그러한 컴퓨터 프로그램들은 컴퓨터 시스템의 제어기들(controllers)을 나타낸다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능하고 하나 이상의 실시예들의 방법을 수행하기 위해 컴퓨터 시스템에 의해 실행될 명령어들을 저장하는 유형의 저장 매체를 포함한다.
실시예들은 소정 버전을 참조하여 기술되었지만, 다른 버전들도 가능하다. 따라서, 첨부된 청구항들의 사상 및 범위가 이 명세서에 포함된 바람직한 버전들에 대한 설명에 국한되어서는 안될 것이다.

Claims (15)

  1. 인텔리전트 지원을 위한 방법으로서,
    텍스트를 포함하는 입력 내 적어도 하나의 순차적 단어 쌍 사이에 적어도 하나의 단어가 삽입될 삽입 포인트를 식별하는 단계;
    상기 식별된 삽입 포인트에 삽입할 단어의 수를 결정하는 단계;
    상기 결정된 삽입할 단어의 수에 기초하여, 상기 식별된 삽입 포인트에 삽입될 복수개의 관련 단어들을 획득하는 단계;
    상기 획득된 복수개의 관련 단어들을 하나 이상의 집합들로 그룹핑하는 단계; 및
    상기 그룹핑된 하나 이상의 집합들 중 적어도 하나의 집합에 포함된 적어도 하나의 관련 단어를 포함하는 추가 정보를 상기 식별된 삽입 포인트에 삽입하여 질문을 생성하고, 상기 생성된 질문을 출력하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서, 상기 삽입 포인트를 식별하고 상기 삽입할 단어의 수를 결정하는 단계는,
    상기 적어도 하나의 순차적 단어 쌍에 대해, 순차적으로 사용될 제 1 확률을 결정하는 단계;
    상기 적어도 하나의 순차적 단어 쌍 사이에 단어 거리(word distance)가 존재하여 순차적으로 사용될 제 2 확률을 결정하는 단계; 및
    상기 제 1 확률 및 상기 제 2 확률에 기초하여, 상기 삽입 포인트를 식별하고 상기 삽입할 단어의 수를 결정하는 단계를 포함하는 방법.
  3. 제 2 항에 있어서, 상기 제 1 확률 및 상기 제 2 확률에 기초하여 상기 삽입 포인트를 식별하고 상기 삽입할 단어의 수를 결정하는 단계는,
    상기 제 1 확률과 상기 제 2 확률의 비율을 결정하는 단계; 및
    상기 비율이 기 결정된 기준치보다 크면, 상기 적어도 하나의 순차적 단어 쌍 사이의 위치를 상기 삽입 포인트로 결정하고, 상기 단어 거리를 상기 삽입할 단어의 수로 결정하는 단계를 포함하는 방법.
  4. 제 1 항에 있어서, 상기 삽입 포인트에 삽입될 복수개의 관련 단어들을 획득하는 단계는,
    순방향(forward) 언어 모델 및 역방향(backward) 언어 모델을 모두 사용하여, 상기 복수개의 관련 단어들을 결정하는 단계를 포함하고,
    상기 순방향 언어 모델은 다음 단어의 확률을 예측하고 상기 역방향 언어 모델은 이전 단어의 확률을 예측하는 방법.
  5. 제 4 항에 있어서, 상기 순방향 언어 모델 및 상기 역방향 언어 모델을 모두 사용하여, 상기 복수개의 관련 단어들을 결정하는 단계는,
    상기 텍스트를 그래프로 나타내는 단계;
    상기 복수개의 관련 단어들에 대응되는 복수개의 노드들을 생성하는 단계;
    상기 복수개의 노드들을 상기 삽입 포인트에 삽입하여 복수개의 경로들을 생성하는 단계;
    상기 순방향 언어 모델 및 상기 역방향 언어 모델을 사용하여, 상기 복수개의 경로들의 점수를 매기는 단계; 및
    상기 점수에 근거하여, 상기 복수개의 관련 단어들을 결정하는 단계를 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 텍스트 내 단어들을 콘텐츠 단어들 또는 비콘텐츠 단어들로 분류하는 단계;
    상기 콘텐츠 단어들을 대체할 후보 단어들의 조합들을 생성하는 단계;
    상기 조합들에 대해 점수를 매기는 단계; 및
    상기 점수에 근거하여, 상기 조합들 중 낮은 점수를 가지는 조합을 제거하는 단계를 더 포함하는 방법.
  7. 제 1 항에 있어서,
    상기 추가 정보는 상기 적어도 하나의 집합에 포함된 상기 적어도 하나의 관련 단어 사이에 "또는"과 적어도 하나의 쉼표를 포함하는 방법.
  8. 명령어들을 저장하는 메모리; 및
    적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는 상기 명령어들을 실행하여,
    텍스트를 포함하는 입력 내 적어도 하나의 순차적 단어 쌍 사이에 적어도 하나의 단어가 삽입될 삽입 포인트를 식별하고;
    상기 식별된 삽입 포인트에 삽입할 단어의 수를 결정하고;
    상기 결정된 삽입할 단어의 수에 기초하여, 상기 식별된 삽입 포인트에 삽입될 복수개의 관련 단어들을 획득하고;
    상기 획득된 복수개의 관련 단어들을 하나 이상의 집합들로 그룹핑하고;
    상기 그룹핑된 하나 이상의 집합들 중 적어도 하나의 집합에 포함된 적어도 하나의 관련 단어를 포함하는 추가 정보를 상기 식별된 삽입 포인트에 삽입하여 질문을 생성하고, 상기 생성된 질문을 출력하도록 구성된, 전자 기기.
  9. 제 8 항에 있어서, 상기 적어도 하나의 프로세서는 상기 명령어들을 실행하여,
    상기 적어도 하나의 순차적 단어 쌍에 대해, 순차적으로 사용될 제 1 확률을 결정하고;
    상기 적어도 하나의 순차적 단어 쌍 사이에 단어 거리가 존재하여 순차적으로 사용될 제 2 확률을 결정하고;
    상기 제 1 확률 및 상기 제 2 확률에 기초하여, 상기 삽입 포인트를 식별하고 상기 삽입할 단어의 수를 결정하도록 구성된, 전자 기기.
  10. 제 9 항에 있어서, 상기 적어도 하나의 프로세서는 상기 명령어들을 실행하여,
    상기 제 1 확률과 상기 제 2 확률의 비율을 결정하고;
    상기 비율이 기 결정된 기준치보다 크면, 상기 적어도 하나의 순차적 단어 쌍 사이의 위치를 상기 삽입 포인트로 결정하고, 상기 단어 거리를 상기 삽입할 단어의 수로 결정하도록 구성된, 전자 기기.
  11. 제 8 항에 있어서, 상기 적어도 하나의 프로세서는 상기 명령어들을 실행하여,
    순방향 언어 모델 및 역방향 언어 모델을 모두 사용하여, 상기 복수개의 관련 단어들을 결정하도록 구성되고,
    상기 순방향 언어 모델은 다음 단어의 확률을 예측하고 상기 역방향 언어 모델은 이전 단어의 확률을 예측하는, 전자 기기.
  12. 제 11 항에 있어서, 상기 적어도 하나의 프로세서는 상기 명령어들을 실행하여,
    상기 텍스트를 그래프로 나타내고;
    상기 복수개의 관련 단어들에 대응되는 복수개의 노드들을 생성하고;
    상기 복수개의 노드들을 상기 삽입 포인트에 삽입하여 복수개의 경로들을 생성하고;
    상기 순방향 언어 모델 및 상기 역방향 언어 모델을 사용하여, 상기 복수개의 경로들의 점수를 매기고;
    상기 점수에 근거하여, 상기 복수개의 관련 단어들을 결정하도록 구성된, 전자 기기.
  13. 제 8 항에 있어서, 상기 적어도 하나의 프로세서는 상기 명령어들을 실행하여,
    상기 텍스트 내 단어들을 콘텐츠 단어들 또는 비콘텐츠 단어들로 분류하고;
    상기 콘텐츠 단어들을 대체할 후보 단어들의 조합들을 생성하고;
    상기 조합들에 대해 점수를 매기고;
    상기 점수에 근거하여, 상기 조합들 중 낮은 점수를 가지는 조합을 제거하도록 더 구성된, 전자 기기.
  14. 제 8 항에 있어서,
    상기 추가 정보는 상기 적어도 하나의 집합에 포함된 상기 적어도 하나의 관련 단어 사이에 "또는"과 적어도 하나의 쉼표를 포함하는, 전자 기기.
  15. 제 1 항 내지 제 7 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.

KR1020207027514A 2017-12-29 2019-02-22 인텔리전트 지원 방법 KR20200115660A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762612296P 2017-12-29 2017-12-29
US15/904,196 US10929606B2 (en) 2017-12-29 2018-02-23 Method for follow-up expression for intelligent assistance
US15/904,196 2018-02-23
PCT/KR2019/002178 WO2019164321A1 (en) 2017-12-29 2019-02-22 Method for intelligent assistance

Publications (1)

Publication Number Publication Date
KR20200115660A true KR20200115660A (ko) 2020-10-07

Family

ID=67058260

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207027514A KR20200115660A (ko) 2017-12-29 2019-02-22 인텔리전트 지원 방법

Country Status (5)

Country Link
US (1) US10929606B2 (ko)
EP (1) EP3695330A4 (ko)
KR (1) KR20200115660A (ko)
CN (1) CN111742311A (ko)
WO (1) WO2019164321A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733380B2 (en) * 2017-05-15 2020-08-04 Thomson Reuters Enterprise Center Gmbh Neural paraphrase generator
US11036926B2 (en) * 2018-05-21 2021-06-15 Samsung Electronics Co., Ltd. Generating annotated natural language phrases
JP6965846B2 (ja) * 2018-08-17 2021-11-10 日本電信電話株式会社 言語モデルスコア算出装置、学習装置、言語モデルスコア算出方法、学習方法及びプログラム
CN109766473B (zh) * 2018-11-30 2019-12-24 北京达佳互联信息技术有限公司 信息交互方法、装置、电子设备及存储介质
US11210590B2 (en) * 2019-01-08 2021-12-28 International Business Machines Corporation Generating free text representing semantic relationships between linked entities in a knowledge graph
US11646014B1 (en) * 2022-07-25 2023-05-09 Intuit Inc. Ensemble of machine learning models for real-time predictions in expert electronic chats

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5027406A (en) * 1988-12-06 1991-06-25 Dragon Systems, Inc. Method for interactive speech recognition and training
US5850627A (en) * 1992-11-13 1998-12-15 Dragon Systems, Inc. Apparatuses and methods for training and operating speech recognition systems
US7030863B2 (en) 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US7860706B2 (en) * 2001-03-16 2010-12-28 Eli Abir Knowledge system method and appparatus
US7403890B2 (en) * 2002-05-13 2008-07-22 Roushar Joseph C Multi-dimensional method and apparatus for automated language interpretation
US20060036430A1 (en) 2004-08-12 2006-02-16 Junling Hu System and method for domain-based natural language consultation
US20070106499A1 (en) * 2005-08-09 2007-05-10 Kathleen Dahlgren Natural language search system
US7734562B1 (en) 2005-12-30 2010-06-08 Brainpool, Inc. Voice to text conversion with keyword parse and match to semantic and transactional concepts stored in a brain pool state machine using word distance to generate character model interaction in a plurality of dramatic modes
US8996682B2 (en) 2007-10-12 2015-03-31 Microsoft Technology Licensing, Llc Automatically instrumenting a set of web documents
US8196030B1 (en) * 2008-06-02 2012-06-05 Pricewaterhousecoopers Llp System and method for comparing and reviewing documents
EP2350779A4 (en) * 2008-11-25 2018-01-10 Jeffrey R. Spetalnick Methods and systems for improved data input, compression, recognition, correction, and translation through frequency-based language analysis
KR101739531B1 (ko) 2010-10-13 2017-05-25 삼성전자주식회사 음성 인식 장치 및 방법
US8688698B1 (en) 2011-02-11 2014-04-01 Google Inc. Automatic text suggestion
WO2013059691A1 (en) 2011-10-19 2013-04-25 Cornell University Systems and methods for identifying objects
US9201859B2 (en) 2011-12-15 2015-12-01 Microsoft Technology Licensing, Llc Suggesting intent frame(s) for user request(s)
US9449599B2 (en) 2013-05-30 2016-09-20 Promptu Systems Corporation Systems and methods for adaptive proper name entity recognition and understanding
US9196246B2 (en) * 2013-06-14 2015-11-24 Mitsubishi Electric Research Laboratories, Inc. Determining word sequence constraints for low cognitive speech recognition
WO2015061761A1 (en) * 2013-10-24 2015-04-30 Fleksy, Inc. User interface for text input and virtual keyboard manipulation
US10204096B2 (en) 2014-05-30 2019-02-12 Apple Inc. Device, method, and graphical user interface for a predictive keyboard
KR102332729B1 (ko) 2014-07-28 2021-11-30 삼성전자주식회사 발음 유사도를 기반으로 한 음성 인식 방법 및 장치, 음성 인식 엔진 생성 방법 및 장치
US9542929B2 (en) * 2014-09-26 2017-01-10 Intel Corporation Systems and methods for providing non-lexical cues in synthesized speech
US9760560B2 (en) * 2015-03-19 2017-09-12 Nuance Communications, Inc. Correction of previous words and other user text input errors
US10049152B2 (en) 2015-09-24 2018-08-14 International Business Machines Corporation Generating natural language dialog using a questions corpus
US10592601B2 (en) * 2016-06-10 2020-03-17 Apple Inc. Multilingual word prediction
US20180101599A1 (en) * 2016-10-08 2018-04-12 Microsoft Technology Licensing, Llc Interactive context-based text completions
US10748663B2 (en) * 2017-05-04 2020-08-18 Efthymios Kalafatis Machine learning, natural language processing and network analysis-guided discovery related to medical research

Also Published As

Publication number Publication date
US10929606B2 (en) 2021-02-23
EP3695330A4 (en) 2020-11-11
WO2019164321A1 (en) 2019-08-29
US20190205383A1 (en) 2019-07-04
EP3695330A1 (en) 2020-08-19
CN111742311A (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
US11314940B2 (en) Cross domain personalized vocabulary learning in intelligent assistants
KR20200115660A (ko) 인텔리전트 지원 방법
US10007660B2 (en) Contextual language understanding for multi-turn language tasks
US10217463B2 (en) Hybridized client-server speech recognition
US20170277993A1 (en) Virtual assistant escalation
US11182565B2 (en) Method to learn personalized intents
WO2019018061A1 (en) AUTOMATIC INTEGRATION OF CAPTURE AND IMAGE RECOGNITION IN VOICE INTERROGATION TO UNDERSTAND INTENT
CN107294837A (zh) 采用虚拟机器人进行对话交互的方法和系统
US11468881B2 (en) Method and system for semantic intelligent task learning and adaptive execution
KR20180080986A (ko) 머신 러닝 기반의 인공지능 이모티콘 서비스 제공 시스템
CN115840841A (zh) 多模态对话方法、装置、设备及存储介质
US20220245401A1 (en) Method and apparatus for training model
KR20200040625A (ko) 사용자의 발화를 처리하는 사용자 단말 및 그 제어 방법
CN111339770B (zh) 用于输出信息的方法和装置
CN111178086B (zh) 数据处理方法、装置和介质
CN113901832A (zh) 人机对话方法、装置、存储介质及电子设备
CN114138943A (zh) 对话消息生成方法、装置、电子设备及存储介质
CN111354348B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN113254611A (zh) 提问推荐方法及装置、电子设备及存储介质
WO2024139722A1 (zh) 语音转化方法、装置、设备及可读存储介质
CN113079247A (zh) 关联服务提供方法和关联服务提供装置
CN111143557A (zh) 实时语音交互处理方法及装置、电子设备、存储介质
CN117592480A (zh) 一种文档切分方法、装置、设备及介质
CN114117016A (zh) 对话生成方法、对话生成装置、存储介质与电子设备
CN117099077A (zh) 具有用户视图上下文和多模态输入支持的支持语音助手的客户端应用