KR101693653B1 - 다중 디바이스 지능형 언어 모델 동기화 - Google Patents

다중 디바이스 지능형 언어 모델 동기화 Download PDF

Info

Publication number
KR101693653B1
KR101693653B1 KR1020157012909A KR20157012909A KR101693653B1 KR 101693653 B1 KR101693653 B1 KR 101693653B1 KR 1020157012909 A KR1020157012909 A KR 1020157012909A KR 20157012909 A KR20157012909 A KR 20157012909A KR 101693653 B1 KR101693653 B1 KR 101693653B1
Authority
KR
South Korea
Prior art keywords
language processing
master
local
processing system
local language
Prior art date
Application number
KR1020157012909A
Other languages
English (en)
Other versions
KR20150074075A (ko
Inventor
앤드류 필립스
데이비드 제이. 카이
얼랜드 운루
에릭 제이. 푸
Original Assignee
뉘앙스 커뮤니케이션즈, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 뉘앙스 커뮤니케이션즈, 인코포레이티드 filed Critical 뉘앙스 커뮤니케이션즈, 인코포레이티드
Publication of KR20150074075A publication Critical patent/KR20150074075A/ko
Application granted granted Critical
Publication of KR101693653B1 publication Critical patent/KR101693653B1/ko

Links

Images

Classifications

    • G06F17/289
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/263Language identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • G06F17/30578
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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

Abstract

복수의 디바이스에 걸쳐 사용될 수 있는 지능형 언어 모델들을 위한 시스템들 및 방법들이 제시된다. 몇몇 실시예는 로컬 언어 프로세싱 시스템을 실행하는 각각의 디바이스로부터의 변경 이벤트들을 마스터 언어 모델로 통합하기 위한 클라이언트-서버 시스템을 제공한다. 변경 이벤트들은 마스터 모델뿐만 아니라 각각의 다른 로컬 언어 모델들로 통합될 수 있다. 그 결과, 몇몇 실시예는 복수의 디바이스에 걸친 사용의 동기화뿐만 아니라 새 디바이스들로의 복구를 가능하게 한다. 추가로, 높은 우선순위 변경 이벤트들이 모든 활성 디바이스들에 걸쳐 빠르게 업데이트되는 것을 보장하기 위해 실시간 메시징이 선택된 메시지들에 대해 사용될 수 있다. 서버 시설에 의해 운용되는 구독 모델을 사용하여, 클라이언트 측의 활용 로직(utilization logic)은 선택적 언어 모델 업데이트들을 또한 운용할 수 있다.

Description

다중 디바이스 지능형 언어 모델 동기화{MULTIPLE DEVICE INTELLIGENT LANGUAGE MODEL SYNCHRONIZATION}
하나 이상의 입력 모드(input modes)를 사용하도록 설계된 매우 다양한 언어 인식 시스템들(language recognition systems)이 있다. 일반적으로, 이 입력 모드들은 텍스트 입력 모드, 음성 입력 모드(speech input mode), 및/또는 필기 입력 모드(handwriting input mode)를 포함한다. 이 언어 입력 시스템들의 기초가 되는 기본 목적들 중 하나는 사용자들이 하나 이상의 입력 모드를 이용하여 향상된 속도에서 향상된 신뢰도로 텍스트를 생성할 수 있게 하는 것이다. 예를 들어, 텍스트 입력 모드는 사용자가 비슷한 시스템들에 의해 요구되는 것보다 덜 정밀하게 동작들을 수행할 수 있도록 하여 종종 향상된 입력 속도를 가능하게 한다. 또한 이 모드는 종종 단어 완성을 제안하는 서술적 완성 특성(predicative completion feature)을 제공한다. 음성 및 필기 입력 모드는 일부 사용자들이 타이핑보다 편하고 빠르다고 발견할 수 있는 입력 동작들의 다른 세트를 활용한다. 그다음에 이 입력들은 텍스트로 변환된다.
일반적으로, 언어 인식 시스템들은 사용자에 의해 수행되는 입력 동작들에 기초하여 시스템에 의해 생성될 수 있는 텍스트 개체들(textual objects)의 어휘와 함께 로컬 언어 모델들에 의존한다. 그러나, 각 사용자가 다르기 때문에, 이 언어 모델들은 각 사용자의 상호작용들에 기초하여 상이한 방식들로 동적으로 진화한다. 또한, 언어 인식 시스템들의 사용자들은 종종 언어 인식 시스템들을 사용하기 위한 복수의 디바이스를 가지고 있다. 이것은 사용자가 각 디바이스에 대해 언어 모델을 독립적으로 학습시켜야 함을 야기한다. 따라서, 복수의 디바이스에 걸쳐 사용될 수 있는 언어 모델들을 제공하는 기술들이 필요하다.
대한민국 공개특허공보 제10-2011-0093785호(2011.08.18.) 미국공개특허공보 US2011/0060587호(2011.03.10.) 미국특허공보 US7,228,275호(2007.06.05.)
.
본 발명의 실시예들은 수반하는 도면들의 사용을 통하여 기술되고 설명될 것이다.
도 1은 본 발명의 몇몇 실시예들이 이용될 수 있는 컴퓨팅 환경의 한 예를 도시한다.
도 2는 본 발명의 하나 이상의 실시예에 따른 로컬 언어 프로세싱 시스템을 위한 구성요소들의 한 세트를 도시한다.
도 3은 본 발명의 다양한 실시예들에 따른 마스터 언어 프로세싱 시스템(master language processing system)을 위한 구성요소들의 한 세트를 도시한다.
도 4는 본 발명의 하나 이상의 실시예들에 따른 마스터 언어 모델에 기초하여 로컬 언어 모델들을 동기화하기 위한 동작들의 한 세트를 도시하는 순서도이다.
도 5는 본 발명의 다양한 실시예들에 따른 높은 우선순위의 메시징 시스템을 이용하기 위한 동작들의 한 세트를 도시하는 순서도이다.
도 6은 본 발명의 하나 이상의 실시예에 따른 서버 기반 구독 모델들(server-based subscription models)을 통합하기 위한 동작들의 한 세트를 도시하는 순서도이다.
도 7은 사용자가 사용자의 모바일 디바이스를 위한 구독들을 관리할 수 있게 하는 대표적인 그래픽 사용자 인터페이스의 스크린 샷이다.
도 8은 본 발명의 다양한 실시예들에 따른 각 사용자와 연관될 수 있는 정보의 한 세트를 도시한다.
도 9는 본 발명의 실시예들이 이용될 수 있는 컴퓨터 시스템의 한 예이다.
도면들은 꼭 축척대로 그려져 있지는 않다. 예를 들어, 도면들 내의 시그널링 기간들(signaling periods)의 상대적인 크기들은 축적 대로가 아니고, 특정 시그널링 또는 메시징 기간들의 크기는 다를 수 있다. 유사하게, 몇몇 구성요소 및/또는 동작은 본 발명의 몇몇 실시예의 논의의 목적들을 위하여 다른 블록들로 분리되거나 단일한 블록으로 결합될 수 있다. 또한, 본 발명은 다양한 수정들 및 대안적인 방식들로 처리될 수 있지만, 특정 실시예들이 도면들에 예로써 도시되어 있고 아래에서 상세히 설명된다. 그러나, 그 의도는 본 발명을 설명된 특정 실시예들로 제한하려는 것이 아니다. 반대로, 본 발명은 첨부된 청구항들에 의해 정의되는 바와 같이 본 발명의 범주에 드는 모든 수정들, 균등물들 및 대안들을 포함하려고 의도한다.
개시된 언어 프로세싱 시스템 및 방법들의 다양한 실시예는 일반적으로 입력 디바이스를 이용한 시스템으로의 정보의 사용자 엔트리에 관련된다. 특히, 몇몇 실시예는 복수의 디바이스에 걸쳐 사용될 수 있는 지능형 언어 모델들을 제공한다. 전통적인 언어 인식 시스템들은 시스템에 의해 생성될 수 있는 텍스트 개체들의 어휘와 함께 로컬 언어 모델들에 의존한다. 몇몇 경우에서, 언어 인식 시스템을 실행하는 디바이스들은 사용자에 의해 수행된 입력 동작들을 어휘 내의 이 텍스트 객체들 중 하나 이상에 매핑(map)하기 위하여 언어 모델들을 이용한다. 이 모델들은 종종 동적이며 그들이 사용됨에 따라 성장하고 학습하여, 사용자가 사용 및 가르침으로 기본적인 예측을 개선할 수 있게 한다.
컴퓨팅 디바이스들의 급증으로, 사용자들이 복수의 디바이스를 가지고, 그 결과 복수의 로컬 언어 모델을 가지는 것은 드물지 않다. 전통적인 언어 인식 시스템들을 이용하면, 각각의 디바이스는 각각의 디바이스에 대한 사용자 입력들에 기초하여 커스터마이징된 로컬 언어 모델을 개별적으로 배우거나 개발할 필요가 있을 것이다. 또한, 수많은 변수들이 이 언어 인식 시스템들이 입력들을 인식하여 텍스트 객체들에 매핑하는 정확도에 영향을 미칠 것이다. 이 요인들 중 두드러지는 것은 텍스트 객체가 어휘 내에 존재하는지 및 텍스트 객체의 사용의 빈도이다. 예를 들어, 단어가 자주 사용되지 않는 경우, 텍스트 입력 시스템은 통계적으로 더 사용될 것 같은 것을 선호하여, 그 단어를 잘못 인식할 수 있다. 흔히 잘못 인식되는 단어들 중에는, 사람들, 도로들, 식당들과 같은 고유한 이름들과, 음성메시지들(voicemails)과 같은 개인적인 메시지들과 특별한 관련성을 가진 다른 단어들이 있다. 그 결과, 언어 모델이 사용자의 입력 전부로 학습되지 않았기 때문에, 임의의 한 디바이스 내의 언어 모델은 덜 바람직한 응답을 가질 수 있다.
그에 반해서, 본원에 개시된 언어 프로세싱 시스템들 및 방법들은 마스터 언어 모델을 생성하고, 개별 디바이스의 모델로부터의 변경들을 마스터 언어 모델과 동기화하고, 마스터 언어 모델로부터의 변경을 사용자와 연관된 다른 디바이스들에 동기화한다. 마스터 언어 모델은 원격 서버 또는 다른 디바이스와 같은 "클라우드 내에" 저장될 것이다. 마스터 언어 모델을 유지하는 것은 사용자가 사용자와 함께 디바이스들 간을 이동할 뿐만 아니라 복수의 디바이스를 동기화된 채로 유지하는 커스텀 언어 모델을 생성하는 것을 가능하게 한다. 또한, 마스터 언어 모델의 사용은 새 디바이스들이 가장 최근의 언어 모델을 쓸 수 있게 한다. 몇몇 실시예에서, 언어 업데이트들을 위한 서버-기반 구독 모델은 사용자의 디바이스상에서 실행되는 클라이언트에 의하여 활용될 수 있는데, 그것은 각각의 로컬 디바이스에서 유지되는 언어 모델들을 위한 최적의 업데이트 스케줄링을 결정한다.
몇몇 상황들에서(예를 들어, 접속 타입 또는 많은 사용량 때문에), 로컬 디바이스상의 이벤트들을 마스터 언어 모델과 지속적으로 동기화하는 것은 비현실적일 수 있다. 다양한 실시예들은 다른 2차적인 디바이스들상에서의 즉각적인 예측을 개선하기 위하여 실시간으로(또는 거의 실시간으로) 몇몇 이벤트들을 마스터 언어 모델에 선택적으로 전달하는 능력을 제공한다. 적어도 하나의 실시예에서, 메시징 시스템은 이벤트들을 로컬 디바이스들에 언제 분배할지 우선순위를 매기기 위해 사용될 수 있다. 예를 들어, 메시징 시스템은 어떤 이벤트들이 높은 중요성을 갖는지를 결정할 수 있고, 그 이벤트를 언어 모델로 즉시 입력할 수 있다. 메시징 시스템은 복수의 디바이스에 걸쳐 사용자를 위한 입력 경험을 향상시키기 위해 언어 모델 변경 이벤트들을 동기화하는 능력이 가능하도록, 복수의 클라이언트와 서버 또는 서버들의 세트 사이의 실시간(또는 거의 실시간) 메시지 버스(message bus)를 활용할 수 있다.
이하의 기술에서, 설명의 목적으로, 다수의 특정한 세부 사항이 본 발명의 실시예들의 완전한 이해를 제공하기 위하여 개시된다. 그러나 본 발명의 실시예들이 특정 세부사항들의 일부가 없이도 실시될 수 있음은 본 기술분야의 숙련된 자에게 명백할 것이다. 편의를 위하여, 본 발명의 실시예들이 클라우드-기반 마스터 언어 모델들을 참조하여 설명되지만, 본 발명의 실시예들은 마스터 언어 모델이 존재할 수 있는 다양한 다른 네트워킹 패러다임에 똑같이 적용 가능하다.
여기 소개된 기술들은 특정-목적 하드웨어(예를 들어, 회로)로, 소프트웨어 및/또는 펌웨어로 적절히 프로그램된 프로그래밍 가능한 회로로, 또는 특정-목적의 프로그래밍 가능한 회로의 조합으로 구현될 수 있다. 그러므로, 실시예들은 프로세스를 수행하도록 컴퓨터(또는 다른 전자 디바이스들)를 프로그래밍하기 위해 사용될 수 있는 저장된 명령어들을 가진 머신-판독가능 매체를 포함할 수 있다. 머신-판독가능 매체는 플로피 디스켓들, 광 디스크들, CD-ROM들(compact disc read-only memories), 자기-광학 디스크들(magneto-optical disks), ROM들, RAM들(random access memories), EPROM들(erasable programmable read-only memories), EEPROM들(electrically erasable programmable read-only memories), 자기 또는 광 카드들(magnetic or optical cards), 플래시 메모리, 또는 전자 명령어들을 저장하기에 적합한 다른 타입의 매체 / 머신-판독가능 매체를 포함할 수 있지만 이에 한정되지 않는다.
문구들 "몇몇 실시예에서", "몇몇 실시예에 따르면", "보여진 실시예들에서", "다른 실시예들에서" 및 그 비슷한 것은 그 문구에 후속하는 특정 특성, 구조, 또는 특징이 본 발명의 적어도 하나의 구현에 포함되고, 하나 보다 많은 구현에 포함될 수 있음을 일반적으로 의미한다. 또한, 그러한 문구들은 동일한 실시예들 또는 상이한 실시예들을 반드시 참조하지는 않는다.
도 1은 본 발명의 실시예들이 활용될 수 있는 컴퓨팅 환경(100)의 예를 도시한다. 도 1에 도시된 바와 같이, 언어 인식 시스템은 {모바일 폰, 태블릿 컴퓨터, 모바일 미디어 디바이스, 모바일 게이밍 디바이스(mobile gaming device), 차량-기반 컴퓨터 등과 같은} 하나 이상의 모바일 디바이스들(110a-n), {컴퓨터(120)와 같은} 하나 이상의 컴퓨팅 디바이스들, 및 {예를 들어 내비게이션 시스템(130)과 같은} 사용자 입력을 수신할 수 있는 다른 디바이스상에서 동작하고 있을 수 있다. 이 디바이스들 각각은 사용자 상호작용들(예를 들어, 음성, 텍스트, 및/또는 필기 입력들)을 수신하기 위한 다양한 입력 메커니즘(예를 들어, 마이크들, 키패드들, 및/또는 터치 스크린들)을 포함할 수 있다. 이 디바이스들상의 언어 인식 시스템 각각은 로컬 언어 모델을 실행시키고 있을 수 있다.
도 1에 도시된 바와 같이, 이 디바이스들은 하나 이상의 유선 또는 무선의 공공 또는 사적 네트워크들(150)을 통하여 마스터 언어 프로세싱 시스템(140)과 통신할 수 있다. 본 발명의 다양한 실시예들에 따라, 마스터 언어 프로세싱 시스템(140)은 모바일 디바이스들상에서 국부적으로 실행하고 있는 복수의 언어 모델들로부터 수신된 변경들을 적용함으로써 마스터 언어 모델을 구축한다. 그 결과, 마스터 언어 모델은 최종 사용자(end user)와 연관된 디바이스들 각각과 최종 사용자가 가진 상호작용으로부터 최종 사용자를 위하여 특별히 생성된 모델(즉, 단일한 모델 또는 복수의 모델의 조합)이다.
다양한 실시예들에 따라, 마스터 언어 모델은 정적 언어 모델(static language model)(160) 및 동적 언어 모델(dynamic language model)(170)과 같은 복수의 모델을 포함할 수 있다. 정적 언어 모델(160)은 일반 언어 사용에 기초하여 언어에 대해 생성된 단어 리스트이다. 몇몇 실시예에서, 드물게 사용되는 단어들(예를 들어, 공룡 이름들 또는 도로명들)이 장소 또는 다른 트리거링 이벤트에 기반하여 새로운 파티션(partition) 또는 언어 모델로서 영구적으로 또는 임시적으로 추가될 수 있다. 반면, 동적 언어 모델(170)은 최종 사용자와 연관된 각각의 디바이스로부터 변경 이벤트들{예를 들어, 단어를 추가, 단어를 삭제, 단어 수정, 엔-그램들(n-grams), 및 단어 카운트(word count)}을 수신한다. 변경 이벤트들은 일반적으로 그들이 동적 언어 모델을 업데이트하기 위해 발생한 순서로 (예를 들어, 실시간으로 또는 거의 실시간으로) 프로세싱된다. 그러나 몇몇 실시예에서, 변경 이벤트들은 동적 언어 모델을 업데이트하기 위해 순서에 위배된 채 프로세싱될 수 있다. 예를 들어, 더 중요한 변경 이벤트들은 덜 중요한 변경 이벤트들 전의 프로세싱을 위하여 우선순위가 매겨질 수 있다.
도 2는 로컬 언어 프로세싱 시스템(200)을 위한 구성요소들의 한 세트를 도시한다. 도 2에 도시된 실시예들에 따르면, 로컬 언어 프로세싱 시스템(200)은 메모리(205), 하나 이상의 프로세서(210), 전원 공급기(215), 입력 디바이스(220), 이벤트 감지 모듈(event detection module)(225), 이벤트 종합 모듈(event aggregation module)(230), 로컬 언어 모델(235), 우선화 모듈(prioritization module)(240), 동기화 모듈(245), 통신 모듈(250), 대기 모듈(queuing module)(255), 및 GUI(graphical user interface) 생성 모듈(260)을 포함할 수 있다. 시스템의 다른 실시예들은 다른 모듈들, 애플리케이션들, 및/또는 구성요소들과 함께, 이 모듈들 및 구성요소들의 일부 또는 전부를 포함하거나, 아무것도 포함하지 않을 수 있다. 여전히 또, 몇몇 실시예는 2 이상의 이 모듈들 및 구성요소들을 단일한 모듈로 통합할 수 있고/있거나, 하나 이상의 이 모듈들의 기능의 일부와 다른 모듈을 연관지을 수 있다. 예를 들어, 일 실시예에서, 우선화 모듈(240) 및 대기 모듈(255)은 이벤트 데이터를 전송하는 우선순위를 매기기 위한 단일한 모듈로 결합될 수 있다.
메모리(205)는 정보를 저장하기 위해 사용되는 임의의 디바이스, 메커니즘, 또는 채워진 데이터 구조(populated data structure)일 수 있다. 본 시스템의 몇몇 실시예에 따라, 메모리(205)는 임의의 타입의 휘발성 메모리, 비휘발성 메모리, 및 동적 메모리를 포함할 수 있지만, 이에 한정되지 않는다. 예를 들어, 메모리(205)는 랜덤 액세스 메모리, 메모리 저장 디바이스들, 광 메모리 디바이스들, 매체 자기 매체, 플로피 디스크들, 자기 테이프들, 하드 드라이브들, SDRAM, RDRAM, DDR RAM, EPROM들(erasable programmable read-only memories), EEPROM들(electrically erasable programmable read-only memories), 콤팩트 디스크들, DVD들, 및/또는 그 비슷한 것들일 수 있다. 몇몇 실시예에 따르면, 메모리(205)는 하나 이상의 디스크 드라이브, 플래시 드라이브, 하나 이상의 데이터베이스, 하나 이상의 테이블, 하나 이상의 파일, 로컬 캐시 메모리들, 프로세서 캐시 메모리들, 관계형 데이터베이스들(relational databases), 플랫 데이터베이스들(flat databases) 및/또는 그 비슷한 것을 포함할 수 있다. 또한 본 기술분야의 통상적인 기술을 가진 자는 메모리(205)로 사용될 수 있는 정보를 저장하기 위한 많은 추가적인 장치 및 기술을 이해할 것이다.
메모리(205)는 프로세서들(210)상에서 하나 이상의 애플리케이션들 또는 모듈들을 실행하기 위한 명령어들을 저장하기 위해 사용될 수 있다. 예를 들어, 메모리(205)는 이벤트 감지 모듈(225), 이벤트 종합 모듈(230), 로컬 언어 모델들(235), 우선화 모듈(240), 동기화 모듈(245), 통신 모듈(250), 대기 모듈(255) 및/또는 GUI 생성 모듈(260)의 기능을 실행하기 위해 필요한 명령어들의 전부 또는 일부를 수용하기 위하여 하나 이상의 실시예에서 사용될 수 있다. 메모리(205), 프로세서들(210), 및 다른 구성요소들{예를 들어, 입력 디바이스들(220)}은 전원 공급기(215)(예를 들어, 배터리 또는 다른 전원)에 의해 전력을 공급받을 수 있다.
이벤트 감지 모듈(225)은 각각의 컴퓨팅 디바이스(110-130)상에서 실행되는 로컬 언어 모델들과 연관된 하나 이상의 변경 이벤트를 감지하기 위하여 하나 이상의 입력 디바이스(220)(예를 들어, 키보드, 터치스크린, 또는 마이크)를 사용할 수 있다. 변경 이벤트는 로컬 디바이스상의 언어 프로세싱 시스템과 사용자의 상호작용의 결과로 발생한다. 변경 이벤트는 로컬 언어 모델을 수정하기 위하여 사용될 수 있다. 몇몇 변경 이벤트는 로컬 언어 모델상에 큰 영향을 가질 수 있는 반면(예를 들어, 단어를 추가할 때), 다른 변경 이벤트들은 영향이 작거나 영향이 없을 수 있다(예를 들어, 이미 높은 빈도수를 가진 단어를 사용). 변경 이벤트들은 언어 모델을 수정하는 변경들을 프로세싱하기 위해 시스템에 의해 사용될 수 있는 데이터 포인트들을 포함할 수 있다. 감지될 수 있는 이벤트들의 예들은 새로운 단어 이벤트들, 단어 삭제 이벤트들, 마크 사용 이벤트들(mark use events), 마크 비사용 이벤트들(mark nonuse events), 퀄리티 조정 이벤트들(adjust quality events), 언어 삭제 이벤트들, 새로운 단어 쌍 이벤트들(new word pair events), 새로운 엔-그램 이벤트들(new n-gram events), 위치 이벤트들, 및 동적 언어 모델을 발전시키기 위해 사용될 수 있는 많은 다른 이벤트들을 포함한다. 몇몇 실시예에서, 변경 이벤트들은 가중 인자(weighting factor), 분류 지시자(categorization indicator), 위치 정보, (예를 들어, 언어 사용의 방언을 결정하기 위한) 장소 정보(locale information), 및 단어 사용 정보와 같은 추가적인 데이터 또한 포함할 수 있다. 추가적인 데이터는 로컬 디바이스와 사용자의 상호작용으로부터 얻어질 수 있거나, 시스템에 의하여 자동적으로 생성될 수 있다.
몇몇 경우에서, 이벤트 종합 모듈(230)은 통신 모듈(250)이 마스터 언어 프로세싱 시스템(140)에 이벤트들을 푸쉬(push)할 수 있게 하기 위하여 이벤트들을 단일한 그룹핑으로 통합하거나 분류할 수 있다. 또한, 엔-그램들 또는 단어들의 그룹핑으로 정의된 임의의 분류는 언어의 커스터마이제이션(customization) 및 복잡한 모델 관리를 가능하게 한다. 적어도 한 실시예에서, 전체로서의 각각의 카테고리에 대한 상이한 가중치들을 가능하게 하도록, 언어 변경들은 카테고리로서 밀어 내려질(pushed down) 수 있다. 상이한 가중치들을 각각의 카테고리에 할당하는 능력은, 예를 들어, 언어 모델들에 대한 영향이 조정되게 해준다. 다른 실시예들에서, 카테고리들은 삭제될 수 있고, 따라서 남아있는 모델에 영향을 주지 않고 사용자의 모델로부터 단어 및 엔-그램 세트를 쉽게 지울 수 있다.
로컬 언어 모델들(235)은 국부적으로 사용자의 입력들을 프로세싱하기 위해 각각의 디바이스와 연관될 수 있다. 이 로컬 언어 모델들은 연관된 디바이스로 감지되는 이벤트들만을 포함한다. 몇몇 경우에, 모델들은 로컬 언어 모델을 발전시키기 위해 임의의 로컬 콘택트 리스트들(local contact lists), 로컬 이메일들, 로컬 SMS/MMS 텍스트들, 및 다른 로컬 텍스트-기반 통신들에 또한 액세스할 수 있다.
우선화 모듈(240)은 이벤트 감지 모듈(225)에 의하여 감지된 변경 이벤트들에 우선순위를 매긴다. 몇몇 실시예에서, 우선화는 네트워크 접속들, 현재 사용률들, 전원 레벨들, 또는 사용자 선호도들과 같은 로컬의 맥락 관련 정보(local contextual information)에 기반할 수 있다. 감지된 이벤트들에 대한 정보 및 이 감지된 이벤트들의 우선순위를 이용하여, 동기화 모듈(245)은 이벤트들을 개별적으로 또는 종합하여, 마스터 언어 프로세싱 시스템(140)에 보낼 수 있다. 몇몇 실시예에서, 동기화 모듈(245)은 마스터 언어 프로세싱 시스템(140)으로부터 업데이트 명령어들을 수신한다.
통신 모듈(250)은 임의의 업데이트들을 마스터 언어 프로세싱 시스템(140)으로 전송하고 마스터 언어 프로세싱 시스템(140)으로부터 수신한다. 몇몇 실시예에서, 통신 모듈(250)은 현재 접속 타입(예를 들어, 셀룰러 또는 와이파이)을 모니터링하고, 업데이트들과 이벤트들이 푸쉬(push)될어야 하는지 또는 풀(pull)되어야 하는지에 결정을 내릴 수 있다. 예를 들어, 통신 모듈(250)이 셀룰러 접속이 현재 사용되고 있다고 결정할 경우, 임의의 나가는 메시지는 대기 모듈(255)을 사용하여 대기하게 될 수 있다. 현재 접속 타입뿐 아니라, 통신 모듈은 데이터를 푸쉬할지 또는 풀할지 결정할 때 이벤트 우선순위 및/또는 사용자 선호도들과 같은 다른 정보를 사용할 수 있다.
GUI 생성 모듈(260)은 언어 프로세싱 시스템의 사용자와의 상호작용을 가능하게 하는 하나 이상의 GUI 화면을 생성한다. 적어도 하나의 실시예에서, GUI 생성 모듈(260)은 컴퓨팅 디바이스들의 사용자가 선호도를 세팅하는 것을 가능하게 하는 그래픽 사용자 인터페이스를 생성하고, 언어 프로세싱 시스템을 학습시키기 위한 학습 애플리케이션들을 실행하고, 디바이스 제약 조건을 세팅하고, 임시 정적 언어 모델 추가들을 선택하고, 및/또는 그 외에 사용자와 디바이스 사이의 정보를 수신하거나 전달한다.
도 3은 마스터 언어 프로세싱 시스템(140)을 위한 구성요소들의 한 세트를 도시한다. 도 3에 보여진 실시예들에 따르면, 마스터 언어 프로세싱 시스템(140)은 메모리(305), 하나 이상의 프로세서들(310), 전원 공급기(315), 사용자 식별 모듈(user identification module)(320), 로컬 모델 식별 모듈(local model identification module)(325), 이벤트 분석 모듈(330), 마스터 언어 모델들(335), 비교 모듈(340), 동기화 모듈(345), 및 통신 모듈(350)을 포함할 수 있다. 본 발명의 다른 실시예들은 다른 모듈들, 애플리케이션들, 및/또는 구성요소들과 함께, 이 모듈들과 구성요소들의 일부 또는 전부를 포함하거나 포함하지 않을 수 있다. 여전히 또, 몇몇 실시예는 2 이상의 이 모듈들 및 구성요소들을 단일한 모듈로 통합할 수 있고/있거나, 하나 이상의 이 모듈들의 기능의 일부와 다른 모듈을 연관지을 수 있다. 예를 들어, 일 실시예에서, 사용자 식별 모듈(320) 및 로컬 모델 식별 모듈(325)의 기능은 단일한 모듈로 통합될 수 있다.
메모리(305)는 메모리(205)를 참조하여 상술된 바와 같이 정보를 저장하기 위해 사용되는 임의의 디바이스, 메커니즘, 또는 채워진 데이터 구조일 수 있다. 메모리(305)는 프로세서(310)상에서 하나 이상의 애플리케이션 또는 모듈들을 실행하기 위한 명령어들을 저장하기 위하여 사용될 수 있다. 예를 들어 메모리(305)는 사용자 식별 모듈(320), 로컬 모델 식별 모듈(325), 이벤트 분석 모듈(330), 마스터 언어 모델(335), 비교 모듈(340), 동기화 모듈(345), 및/또는 통신 모듈(350)의 기능을 실행하기 위해 필요한 명령어들의 전부 또는 일부를 수용하기 위하여 하나 이상의 실시예에서 사용될 수 있다.
사용자 식별 모듈(320)은 사용자를 식별하도록 구성될 수 있다. 다양한 실시예에 따라, 로그인 크리덴셜들(log in credentials), 텔레커뮤니케이션 디바이스 식별자들(telecommunication device identifiers), 음성 식별(voice identification), 비주얼 인식(visual recognition), 및/또는 사용자들을 식별하기 위한 다른 기술과 같은 다양한 방법들이 사용될 수 있지만, 이에 한정되지 않는다. 동일한 또는 상이한 식별 방법들이 사용자가 언어 프로세싱 시스템에 액세스할 때 사용자를 식별하기 위하여 각각의 디바이스에서 사용될 수 있다. 각각의 사용자는 로컬 언어 모델들을 가진 복수의 디바이스와 연관된다. 로컬 모델 식별 모듈(325)은 각 모델의 현재 상태를 트래킹(track)하기 위해 사용될 수 있다.
이벤트들이 개인과 연관된 다양한 로컬 언어 모델들로부터 수신되기 때문에, 이벤트 분석 모듈(330)은 마스터 언어 모델(335)에게 이벤트들이 어떻게{예를 들어, 할당된 이벤트 우선순위에 기반하여 또는 타임 스탬프(time stamp)에 기반하여 순차적으로} 프로세싱되고 적용되어야 하는지 결정한다. 몇몇 실시예들이 사용자에게 불일치들을 알릴 수 있는 반면, 다른 실시예들은 자동적으로 변경들을 처리하고 언어 모델을 관리한다. 몇몇 경우에, 디스크 공간과 같은 시스템 리소스들이 이벤트들을 어떻게 프로세싱하고 적용할지 및/또는 단어의 리스트들을 유지할지에 대한 결정을 내리는 데에 사용될 수 있다. 몇몇 실시예에서, 마스터 언어 모델들(335)에 대한 변경들은 SQL 데이터베이스 내의 변경 로그(change log)를 이용하여 트래킹될 수 있다. 다른 실시예에서, 변경들은 디스크상 변경 로그(on disk change log) 내에 저장된다. 로컬 디바이스들로부터 수신된 이벤트들뿐 아니라, 웹사이트 데이터, 소셜 네트워킹 데이터, (친구들과의 커뮤니케이션과 같은) 소셜 네트워킹 친구 데이터, 퍼스널 컴퓨팅 디바이스들로부터의 정보, 인터넷 액세스가능 문서들{예를 들어, 구글 독스(Google docs)}로부터의 데이터, 및 다른 것들과 같은 다른 오프-보드 개인 데이터(off-board personal data)가 마스터 언어 모델들을 구축하는 데 활용될 수 있다.
비교 모듈(340)은 현재 마스터 언어 모델들과 비교하여 사용자의 로컬 언어 모델들 중 임의의 것의 현재 상태를 결정한다. 비교 모듈(340)에 의해 결정된 상태 정보를 이용하여, 정보 동기화 모듈(345)은 통신 모듈(350)을 이용하여 업데이트들을 (예를 들어, 여러 묶음으로) 전송할지 또는 전체의 로컬 언어 모델이 교체될 것을 요청할지 결정할 수 있다.
도 4는 마스터 언어 모델에 기반하여 로컬 언어 모델들을 동기화하기 위한 동작들의 한 세트(400)를 도시하는 순서도이다. 다양한 실시예에 따라, 도 4에 도시된 동작들은 하나 이상의 구성요소들{예를 들어, 프로세서(310)} 및/또는 모듈들{예를 들어, 사용자 식별 모듈(320) 또는 동기화 모듈(345)}에 의해 수행될 수 있다. 식별 동작(410)은 사용자, 및 로컬 언어 모델들을 가진 임의의 연관된 디바이스들을 식별한다. 유지 동작(420)은 식별 동작(410)에서 식별된 로컬 언어 모델들로부터 기록된 이벤트들에 기반하여 마스터 언어 모델들을 구축하고 유지한다. 마스터 언어 모델들은 일반적으로 클라우드-기반 환경 또는 다른 분산 서버-클라이언트 시스템(distributed server-client system)에서 유지된다.
기록 동작(recordation operation)(430)은 연관된 사용자 디바이스들로부터 수신된 새 단어들, 삭제된 단어들, 엔-그램들, 및 단어/엔-그램 가중치들과 같은 변경들에 기초하여 마스터 언어 모델에 대한 임의의 변경들을 기록한다. 동기화 동작(440)을 이용하여, 사용자 디바이스들상의 다양한 로컬 모델들이 동기화될 수 있다. 언어 모델 동기화는 최종 사용자가 복수의 디바이스들을 사용하고 그 디바이스들의 각각의 사용이 마스터 모델 및 다른 디바이스들상의 모델들 모두에 영향을 미치게 하는 것을 가능하게 한다. 태블릿들, 폰들(phones), 텔레비전들, 및 자동차들은 모두 언어 모델들의 동기화를 이용할 수 있는 텍스트 입력을 포함한다. 사용자의 한 디바이스의 사용이 사용자가 다른 디바이스상에서 수신할 예측에 영향을 주기 때문에 최종 결과는 더 나은 경험이다.
결정 동작(determination operation)(450)은 새로운 또는 리셋된(reset) 디바이스들이 감지되었는지 결정한다. 감지되었다면, 결정 동작(450)은 전체의 마스터 언어 모델이 새로운 또는 리셋된 디바이스에 로컬 언어 모델로서 제공되는 복원 동작(460)으로 분기(branches)한다. 이것에 의하여 감지되는 임의의 변경들 또는 이벤트들, 또는 임의의 다른 로컬 언어 모델은, 마스터 언어 모델을 갱신하기 위하여 사용된다. 결정 동작(450)이 새로운 또는 리셋된 디바이스가 감지된 것이 없다고 결정하는 경우, 결정 동작은 마스터 언어 모델에 대한 임의의 변경들이 기록되는 기록 동작(430)으로 분기한다.
마스터 언어 모델을 새로운 디바이스에 적용하기 위한 이하의 예를 고려하자. 사용자가 복수의 디바이스에 걸쳐 언어 모델을 백업하고 동기화할 수 있게 하는 언어 프로세싱 시스템을 사용자가 사용해왔다고 가정하자. 사용자는 기존의 모바일폰상의 언어 프로세싱 시스템을 사용하지만 새로운 모바일폰을 구매한다. 사용자가 새로운 디바이스상에서 언어 프로세싱 시스템을 시작(launches)할 때, 그것은 로그인 크리덴셜들의 세트를 요청한다. 사용자가 기존의 언어 프로세싱 시스템 계정(또는 페이스북™과 같은 다른 식별계정)에 로그인되면, 로컬 언어 프로세싱 시스템은 마스터 언어 프로세싱 시스템에 접속하고, 마스터 동적 언어 모델을 로딩하는데, 그것은 기존 폰으로부터의 모든 사용을 포함한다. 그 결과, 로컬 언어 프로세싱 시스템은 모든 변경들을 되찾아오고, 그것들을 새로운 디바이스에 포함시킨다. 결과적으로, 사용자가 타이핑을 시작할 때, 새로운 폰의 언어 모델은 기존의 사용에 기초하여 예측을 하고, 사용자는 더 나은 경험을 제공받는다.
본 발명의 다양한 실시예에 따라 복수의 디바이스를 동기화하기 위한 아래의 예를 고려하자. 사용자가 사용자의 모바일 폰과 함께 쓰기 위해 새 태블릿을 구매한다고 가정하자. 사용자 계정이 액세스되고 로컬 언어 모델이 클라우드 내에 있는 마스터 언어 모델과 동기화된다. 몇몇 실시예에서, 클라우드 또는 클라우드 시설은 그저 분산될 수 있는 서버 기반 시스템이다. 사용자가 태블릿을 이용하여 이메일들을 쓰기 시작하면, 현재 지역에서 흔히 사용되는 새로운 단어들뿐 아니라 몇몇 새로운 구문들이 로딩된다. 그다음에, 사용자가 모바일폰을 집어들고 최근에 로딩된 새 단어의 몇 글자를 타이핑할 때, 그 단어는 그녀의 단어 선택 리스트에 보여진다. 사용자가 그 단어를 선택하는 경우, 새 구문 내의 다음 단어가 사용자의 단어 선택 리스트 내의 예측 옵션으로 주어진다.
본 발명의 다양한 실시예의 한 이점은 사용자가 언어 모델을 복수의 디바이스에 걸쳐 유지하고, 그것을 시간이 지나도 최신으로 유지할 수 있게 하는 능력이다. 이것은 사용자들이 새 디바이스를 구매하고 그들이 중단한 곳에서 계속하게 할 뿐만 아니라, 단어 사용을 복수의 디바이스에 걸쳐 일관되게 유지할 수 있게 한다. 본 발명의 다양한 실시예들은 복수의 디바이스에 걸친 실제 사용자 언어 모델들의 분석의 방법들을 허용함에 의해 이 정보가 디폴트 또는 공유된 언어 모델들을 개선하기 위해 사용되는 것을 또한 가능하게 한다.
본 발명의 다양한 실시예는 복수의 디바이스들 사이에 높은 중요성을 갖는 것으로 결정되는 변경 이벤트들을 동기화하기 위한 메시징 시스템을 제공할 수 있다. 도 5는 본 발명의 다양한 실시예에 따라 높은 우선순위 메시징 시스템을 활용하기 위한 동작들의 세트(500)를 도시한다. 우선순위 결정 동작(510)은 로컬 언어 모델에서의 변경 이벤트들의 우선순위를 결정한다. 높은 우선순위 변경 이벤트(예를 들어, 언어 모델에 추가되는 새 단어들 및 엔-그램들)는 높은 우선순위 전송 동작(520)에서 실시간 접속(예를 들어, TCP 접속)을 통하여 마스터 프로세싱 시스템에 즉각적으로 전송된다. 몇몇 실시예에서, 예측 엔진 내의 단어의 가중치에 상당히 영향을 미치는 이벤트들은 높은 우선순위로 결정될 수 있다.
마스터 프로세싱 시스템은 동기화 동작(530) 중에 이 변경 이벤트들로 마스터 언어 모델을 갱신하고, 변경들을 로컬 언어 모델들에 푸쉬한다. 낮은 우선순위 변경 이벤트들은 낮은 우선순위 전송 동작(540)을 이용하여 뒤늦게 {예를 들어, 배치 메시징(batch messaging)을 통하여} 마스터 프로세싱 시스템에 전송된다. 마스터 프로세싱 시스템은 동기화 동작(550) 중에 이 변경 이벤트들로 마스터 언어 모델을 업데이트하고, 변경들을 로컬 언어 모델들에 푸쉬한다.
몇몇 실시예에서, 마스터 프로세싱 시스템은 단일한 디바이스로부터와 복수의 디바이스로부터 둘 다의 언어 모델 변경들을 통합할 수 있다. 예를 들어, 동기화하는 세 디바이스가 있는 경우, 마스터 모델은 제1 및 제2 디바이스로부터의 변경들의 세트를 제3 디바이스를 위해 통합할 수 있다. 몇몇 경우에서, 시스템은 사용 및/또는 시간에 기초하여 더 이상 적용가능하지 않은 이벤트들을 뺄 수 있을 뿐 아니라 공통의 이벤트들을 결합하고/결합하거나 종합할 수 있다. 몇몇 실시예에서 동일한 우선순위가 모든 변경 이벤트들에 적용될 수 있다. 한편 다른 실시예에서, 각각의 이벤트, 또는 이벤트들의 그룹들은 상이한 우선순위들을 가질 수 있다. 로컬 디바이스들은 복수의 고려 사항들(예를 들어 네트워크 이용 가능성)에 기초하여 업데이트들을 생성하고 우선순위에 따라 또는 더 큰 블록들로 이벤트들을 전송하기 위해 이벤트 우선순위를 사용할 수 있다. 그다음에 마스터 프로세싱 시스템은 이벤트들을 프로세싱하고 그들을 다른 디바이스들로 내려보낼 수 있다.
이하의 실시간 동기화 예를 고려하자. 사용자가 단어들을 실시간으로 동기화하는 능력을 가진 언어 프로세싱 시스템의 최신 버전을 가진 폰과 태블릿을 모두 가지고 있다고 가정하자. 사용자는 그가 가장 좋아하는 새로운 쇼, 배틀스타 갤럭티카(Battlestar Galactica)에 대하여 몇몇 친구에게 태블릿상에서 이메일을 쓰고 있다. 배틀스타는 사용자의 언어 모델의 일부가 아니고 따라서 사용자는 그것을, 인식되지 않는 단어 갤럭티카와 함께 완전히 타이핑해야 한다. 시스템은 단어 추가 이벤트를 감지하고 메시지 시스템을 건너서 서버로 전송되는 메시지를 생성한다. 서버는 폰도 액티브(active)함을 감지하고 이벤트를 사용자의 폰으로 내려보낸다. 사용자가 이메일을 완성한 뒤, 그는 배틀스타 갤럭티카에 대하여 대화하고 싶어하는 그의 친구 중 하나로부터의 텍스트를 그의 폰상에서 즉각적으로 수신한다. 사용자는 답장을 쓰기를 시작하기 위하여 그의 폰을 집어들고, 그가 배틀스타를 타이핑하기 시작할 때, 그는 자신이 그것을 타이핑할 필요 없이, 시스템이 그것을 즉각적으로 예측함을 알아챈다.
본 발명의 몇몇 실시예는 클라이언트에 의해 언어 업데이트를 위한 서버-기반 구독 모델이 활용되는 언어 프로세싱 시스템을 또한 제공한다. 적어도 한 실시예에서, 클라이언트들은 접속 상태(예를 들어, 셀룰러 또는 와이파이) 및/또는 사용자 선호도들과 같은 디바이스 레벨 인자들을 이용하여 최적의 업데이트 스케줄링을 결정할 수 있다. 예를 들어, 높은 품질 및 무료(free)의 데이터 파이프(data pipe)가 이용가능하다고 결정이 내려진 경우 더 잦은 업데이트들이 적용될 수 있다. 비슷하게, 낮은 품질{예를 들어, 지속적으로 누락(constantly dropping), 또는 EDGE}만이 있는 경우, 시스템은 큰 데이터 세트들의 동기화를 지연할 수 있다. 또한, 불량한 접속은 시스템이 이벤트들을 묶거나(batching) 누락하는(dropping) 것을 야기할 수 있는 한편, 양호한 접속 변경들이 실시간으로 전송될 수 있는 높은 우선순위 이벤트들에 대하여 업데이트들이 더 빈번하게 발생할 수 있다. 몇몇 실시예에 따라, 디바이스는 수동으로(manually) 또는 자동으로 구독되고 그다음에 로컬 언어 모델들에 통합되는 가능한 언어 모델 개선사항들(예를 들어, 공룡 또는 도로 이름)의 리스트를 통지받을 수 있다.
도 6은 본 발명의 하나 이상의 실시예에 따라 서버-기반 구독 모델들을 통합시키기 위한 동작들의 한 세트(600)를 도시하는 순서도이다. 로컬 언어 모델이 자동적으로 업데이트 되어야 할 때를 지정하는(specifying) 규칙들은 본원에 "구독"으로 언급되고, 구독하에서 클라이언트에게 전송되고 로컬 언어 모델을 업데이트하기 위하여 사용되는 주기적 변경들은 "구독 패키지들"로 언급된다. 구독들은 분류-기반(class-based)(예를 들어, 국가에 입국할 때 그 국가와 연관된 언어를 다운로드) 또는 주제 특정적(예를 들어, 덴버 미술관과 연관된 모든 업데이트들을 수신)일 수 있다. 다양한 실시예에 따르면, 구독 패키지(즉, 실제의 업데이트들)는 이벤트들의 묶음 이진 세트(batch binary set of events), 텍스트 기반 이벤트들의 묶음, 또는 둘 중 하나의 세트일 수 있다. 구독 패키지들은 시스템의 수신 시에, 아래에 위치-기반, 이벤트-기반, 커뮤니티-기반 등일 수 있다고 개시되는 트리거링 이벤트에 의해 자동으로 사용자에게 전송된다. 다양한 실시예에 따라, 구독 업데이트들은 일반적으로 사용자가 구독을 승인(accepts)한 때의 제1 다운로드를 포함하고, 변경들을 포함하는 주기적 또는 때때로의 업데이트들이 그에 후속한다.
몇몇 실시예에서, 예를 들어, 사용자는 하나 이상의 카테고리, 세팅, 옵션 또는 이용가능한 구독 패키지를 제시하는 GUI를 통해 탐색(navigate)할 수 있다. GUI는 위치 기반 구독들을 작동시키기 위한 세팅들, 사용자의 위치 모두에 기반한 이용가능한 옵션들의 수동 리스트(manual list), 및/또는 이용가능한 구독들의 전체 리스트를 포함할 수 있다. GUI는 위치에 기초하여 구독하도록 사용자에게 알림을 제시할 수 있다. 예를 들어, 사용자가 박물관 또는 다른 장소로 이동함에 따라, 시스템은 특별히 그 장소를 위한 리스트를 감지하고, 사용자가 선택을 하도록 한다.
도 6에 도시된 바와 같이, 수신 동작(610)은 추가적인 단어들을 (아마 임시로) 추가함으로써 언어 모델을 업데이트하기 위한 트리거링 이벤트를 수신한다. 몇몇 실시예에서, 트리거링 이벤트는 추가적인 단어들의 세트와 연관된 식별자를 지시하는 브로드캐스트 신호(broadcast signal)일 수 있다. 예를 들어, 박물관의 전시회는 사용자가 방금 입장한 전시회를 위한 단어들의 공통 세트를 가진 구독 패키지를 식별하는 신호를 브로드캐스팅할 수 있다. 브로드캐스트는 구독 패키지를 원격 서버로부터 다운로드하기 위해 사용될 수 있는 식별자일 수 있다. 다른 경우들에서, 브로드캐스트는 단어들의 공통 세트 그 자체를 포함할 수 있다. 트리거링 이벤트들의 다른 예들은 사용자가 (예를 들어, 표지판, 광고, 또는 잡지상의) 1차원 또는 2차원 바코드를 스캐닝하는 것, 또는 GPS 위치를 포함할 수 있다. 구독 패키지들은 자동으로 또는 수동으로 승인될 수 있다. 그다음에, 전송 동작(620)은 승인(acceptance)을 마스터 언어 프로세싱 시스템에 전송하는데, 구독 패키지가 업데이트 동작(630) 중에 마스터 언어 모델에 추가된다. 그다음에 사용자의 디바이스상의 로컬 모델은 동기화 동작(640)을 이용하여 업데이트된다.
몇몇 실시예에서, 로컬 언어 프로세싱 시스템(즉, 최종 사용자의 디바이스상에서 실행되는 클라이언트)은 어떤 모델들을 업데이트할 것인지 결정하기 위해 현재 언어 활용을 트리거링 이벤트로 사용할 수 있다. 이 경우에, 언어-기반 업데이트들은 서버-기반 시스템(즉, 마스터 언어 프로세싱 시스템)으로부터 클라이언트에게 이용 가능하게 만들어질 수 있고, 클라이언트는 업데이트가 페치(fetch)되어야 하는지를 결정하기 위하여 활성화된(active) 언어들을 사용할 것이다. 한 이점은 사용자가 업데이트들을 가진 다른 언어들을 사용했을 수 있더라도, 개선사항들이 사용자가 활성화시켜 사용하고 있는 언어를 위하여만 다운로드된다는 것이다. 사용자가 언어를 바꿀 때, 시스템은 서버가 그 언어에 대한 업데이트를 디바이스에게 알렸는지 결정할 것이고 임의의 업데이트들을 프로세싱할 것이다.
사용자의 폰이 서버로부터 이용가능한 구독들의 리스트를 찾아오는 이하의 예를 고려하자. 로컬 언어 프로세싱 시스템은 사용자가 현재 영어를 사용하고 있고 US 지역 내에 있음을 감지한다. 클라이언트는 적절한 이용가능한 영어 구독들의 전부를 결정하고, 그것들을 구독한다. 클라이언트는 사용자의 디바이스를 위해 현재의 업데이트들을 다운로드한다. 그 결과, 사용자는 디바이스가 이전에는 예측하지 않았던 그의 가장 좋아하는 뮤지션의 이름을 이제 예측한다는 것을 발견한다. 사용자가 그의 모국어 프랑스어로 전환하는 때, 클라이언트는 적절한 이용가능한 프랑스어 구독들의 전부를 결정하고 그것들을 구독한다. 다음날 서버는 클라이언트들에게 그것이 구독했던 영어 및 프랑스어 모델들에 대한 업데이트를 알린다. 디바이스가 여전히 프랑스어로 세팅되어 있기 때문에, 디바이스는 프랑스어 구독들을 업데이트하고, 사용자가 영어로 다시 전환할 때 영어 구독들이 이용 가능하다고 마킹(marks)한다.
몇몇 실시예에서, 위치 및/또는 크라우드소싱(location and/or crowd sourcing)이 다운로드를 위한 단어들 또는 구독 패키지들을 결정하기 위하여 트리거링 이벤트들로서 사용될 수 있다. 예를 들어, 사용자가 파리에 도착하는 때, 프랑스어 구독 패키지가 다운로드되고/다운로드되거나 활성화될 수 있다. 크라우드소싱의 예로, 어떠한 패키지들이 다운로드되고/다운로드되거나 활성화되어야 하는지에 대한 결정이 당신의 지리적 위치에 있는 사람들로부터 내려질 수 있다. 즉, 소정의 지리적 영역 내의 대다수의 사람들이 특정 구독을 가지고서 자신의 모바일 디바이스를 자발적으로 구성한 경우, 시스템은 그 구독을 사용자에게 추천할 수 있거나, 그 구독을 사용자의 디바이스에 자동으로 추가할 수 있다. 그러한 경우에서, 다운로드를 위한 트리거링 이벤트는 구독을 가진 소정의 지리적 영역 내의 사람 수의 백분율이다. 거리 및/또는 시간과 같은 특정 제한들에 따르는 것 또한 트리거링 조건들을 지정하는 데 적용될 수 있다.
다양한 실시예는 구독들의 관리를 위한 상이한 메커니즘들을 가능하게 한다. 예를 들어, 몇몇 경우에서, 최종 사용자는 애플리케이션 내에서 또는 웹 기반 시스템을 통하여 구독들을 관리할 수 있다. 사용자가 수동 또는 자동 업데이트들 및 전환(switching)을 선택하는 것을 가능하게 하는 다양한 그래픽 사용자 인터페이스들이 만들어질 수 있다. 도 7은 사용자가 사용자의 모바일 디바이스를 위한 구독들을 관리할 수 있게 하는 GUI 생성 모듈(260)에 의해 생성되는 전형적인 그래픽 사용자 인터페이스(700)의 스크린 샷이다. 사용자 인터페이스(700)는 사용자가 로컬 언어 모델을 자동으로 업데이트하기 위한 구독들과 연관된 세팅들을 수정할 수 있게 하는 다양한 라디오 버튼들 및 필드들을 포함한다. 예를 들어, 영역(710)에서 사용자는 외국어 구독들과 연관된 다양한 세팅들을 정의할 수 있다. 다양한 실시예에 따라, 사용자는 언어 사용에 기초하여 자동으로 구독하고, 위치에 기초하여 디바이스가 업데이트되는 것을 유지하도록 선택할 수 있다. 새로운 구독들이 이용 가능해졌을 때 사용자를 유도하거나 옵션들을 변경하기 위해 그들이 세팅들을 입력하게 하도록, 사용자는 언어 및/또는 위치에 기초하여 수동으로 구독하는 것을 선택할 수 있다.
영역(720)에서, 사용자는 위치-기반 구독들과 연관된 다양한 세팅들을 정의할 수 있다. 라디오 버튼(722)은 사용자가 모바일 디바이스의 새로운 도시로의 도착에 의해 트리거링되는 자동 위치-기반 업데이트들을 선택하는 것을 가능하게 하고, 라디오 버튼(724)은 사용자가 모바일 디바이스의 새로운 국가로의 도착 시에 트리거링되는 자동 위치-기반 업데이트들을 선택하는 것을 가능하게 한다. 라디오 버튼(726)은 사용자가 그들이 랜드마크 또는 관심 지점(point of interest){예를 들면, 박물관, 도서관, 도시 건물(civic building)}에 연관된 위치-기반 업데이트들을 수신하는 것에 관심이 있는지 지정하는 것을 가능하게 한다. 연관된 드롭-다운 메뉴(drop-down menu)(728)는 사용자가 랜드마크 또는 관심 지점에 의해 위치-기반 업데이트가 트리거링되는 범위를 지정할 수 있게 한다. 예를 들어, 사용자는 사용자가 랜드마크 또는 관심 지점으로부터 1km 이내의 영역에 들어갈 때 업데이트가 자동으로 일어나야 한다고 지정할 수 있다.
영역(730)에서 사용자는 소셜(social) 구독들과 연관된 다양한 세팅들을 정의할 수 있다. 예를 들어, 드롭-다운 메뉴(732)는 사용자가 페이스북®과 같은 소셜 네트워킹 서비스로부터 사용자가 공동의 언어 모델을 함께 유지하고 싶은 친구들의 그룹들을 식별할 수 있게 한다. 이러한 방식으로, 친구들의 그룹 내의 사용자에 의해 만들어지고 로컬 언어 모델에 추가되는 별명들과 같은 용어들은 친구들의 그룹 내의 다른 사람들에게 자동으로 전파(propagated)된다. 트위터, 구글 플러스, 패스(Path), 블로거(Blogger), 오르컷(Orkut), 시나 웨이보(Sina Weibo), 및 다른 것들과 같은 다른 소셜 네트워크들이 몇몇 실시예에서 또한 사용될 수 있다.
영역(740)에서, 사용자는 구독 패키지들에 적용하는 다양한 네트워크 또는 디바이스 세팅들을 정의할 수 있다. 예를 들어, 라디오 버튼(742)은 사용자가 사용자의 모바일 디바이스가 와이파이 또는 다른 저렴한 네트워크 접속에 접속되었을 때만 모든 패키지들이 다운로드 되도록 지정할 수 있게 한다. 라디오 버튼(744)은 사용자가 사용자가 그들의 모바일 디바이스를 사용하고 있지 않을 것 같은 소정의 시간들 사이에서 모든 패키지들이 발생해야 하도록 지정할 수 있게 한다. 드롭다운 메뉴(746)는 사용자가 정의된 구독들을 현재의 디바이스에만 적용할지, 또는 사용자에 의해 소유된 모든 디바이스에 적용할지 지정할 수 있게 한다. 예를 들어 사용자는 그들의 데이터 요금제를 다 써버리지 않도록, 구독들을 다운로드하기 위해 와이파이만을 이용하기를 원할 수 있다. 무료 와이파이의 급증 덕분에, 사용자는 공공 와이파이로 들어가 최종 사용자를 위해 로컬 디바이스에 마킹된 이용가능한 업데이트들을 다운로드할 수 있다. 사용자는 다른 디바이스에 또는 중앙 서버로부터 데이터를 전송하기 위해 로컬 블루투스 네트워크와 같은 다른 네트워크 기반 시스템들 역시 활용할 수 있다.
몇몇 실시예에서, 시스템은 네트워크 조건들을 활용할 수 있다. 예를 들어, 시스템이 그것이 불량하거나 계량되는(metered) 것이라고 결정한 접속상에 현재 사용자가 있다고 감지하는 경우 업데이트들은 프로세싱되지 않을 수 있다. 시스템이 사용자가 높은 품질 및/또는 계랑되지 않는(un-metered) 접속상에 있다고 결정할 때 시스템은 적절한 개선사항들을 업데이트할 수 있다.
영역(750)에서, 시스템은 사용자에 의해 선택된 구독 옵션들의 추가 비용을 사용자에게 제시한다. 비용은 사용자가 구독 업데이트들과 연관된 다양한 세팅들을 정의함에 따라 시스템에 의해 동적으로 업데이트된다. 사용자가 디스플레이된 가격을 승인하는데 동의하는 경우, 시스템은 지불을 요구하는 그 구독들을 위한 지불 정보를 수락하는 하나 이상의 그래픽 사용자 인터페이스 화면(도시되지 않음)을 생성할 수 있다. 다양한 요금 스케줄들(fee schedules), 요금들(rates), 및/또는 요금제들(plans)이 다양한 실시예에서 사용될 수 있다. 예를 들어, 구독 요금들은 시간 경과에 기초하거나(예를 들어, 사용에 대한 월별 또는 연간 요금), 전체 시스템을 위한 사용에 대한 일 회의 비용, 각각의 서비스에 대한 일 회의 비용, 또는 개별적으로 각각의 랜드마크에 대한 비용일 수 있다.
도 8은 본 발명의 다양한 실시예에 따라 각각의 사용자와 연관될 수 있는 정보(800)의 세트를 도시한다. 도 8에 도시되었듯이, 사용자 기록은 사용자 ID, 로컬 ID, 로컬 디바이스 버전, 현재 위치, 현재 언어 ID, 및 로컬 언어 프로세싱 시스템들에 의해 사용되고 있는 임의의 임시 언어 모델들을 포함할 수 있다.
예시적인 컴퓨터 시스템 개요
본 발명의 실시예들은 상술된 다양한 단계들 및 동작들을 포함한다. 이 다양한 단계들 및 동작들은 하드웨어 구성요소에 의해 수행될 수 있거나 머신-실행가능 명령들로 구현될 수 있는데, 명령들은 단계들을 수행하기 위해 범용(general-purpose) 또는 특수-목적(special-purpose) 프로세서가 명령들로 프로그램되도록 하기 위해 사용될 수 있다. 다르게는, 단계들은 하드웨어, 소프트웨어, 및/또는 펌웨어의 조합에 의해 수행될 수 있다. 이와 같이, 도 9는 본 발명의 실시예들이 이용될 수 있는 컴퓨터 시스템(900)의 예이다. 본 예에 따라, 컴퓨터 시스템은 버스(905), 적어도 하나의 프로세서(910), 적어도 하나의 통신 포트(915), 메인 메모리(920), 제거 가능한 저장 매체(925), 읽기 전용 메모리(930), 및 대용량 기억 장치(mass storage)(935)를 포함한다.
프로세서(들)(910)는 인텔® 아이타니엄® 또는 아이타니엄 2® 프로세서(들); AMD® 옵테론® 또는 애슬론 MP® 프로세서(들); 또는 모토로라® 계열 프로세서들과 같은 임의의 알려진 프로세서일 수 있으나, 그에 한정되지 않는다. 통신 포트(들)(915)는 모뎀 기반 다이얼업 접속(dialup connection)과 함께 사용하기 위한 RS-232 포트, 구리 또는 섬유를 사용하는 기가비트 포트(Gigabit port) 또는 10/100 이더넷 포트(Ethernet port) 중 임의의 것일 수 있다. 통신 포트(들)(915)는 LAN(Local Area Network), WAN(Wide Area Network), 또는 컴퓨터 시스템(900)이 접속하는 임의의 네트워크와 같은 네트워크에 따라 선택될 수 있다.
메인 메모리(920)는 RAM(Random Access Memory), 또는 본 기술분야에 흔히 알려진 임의의 다른 동적 저장 디바이스(들)일 수 있다. 읽기 전용 메모리(930)는 프로세서(910)를 위한 명령들과 같은 정적 정보를 저장하기 위한 PROM(Programmable Read Only Memory) 칩들과 같은 임의의 정적 저장 디바이스(들)일 수 있다.
대용량 기억 장치(935)는 정보 및 명령들을 저장하기 위하여 사용될 수 있다. 예를 들어, SCSI 드라이브들의 아답텍® 군과 같은 하드 디스크들, 광 디스크, RAID 드라이브들의 아답텍 군과 같은 RAID와 같은 디스크들의 배열(array of disks), 또는 임의의 다른 대용량 기억 장치들이 사용될 수 있다.
버스(905)는 프로세서(들)(910)를 다른 메모리, 저장소, 및 통신 블록들과 통신적으로(communicatively) 결합한다. 버스(905)는 사용된 저장 장치들에 따라 PCI/PCI-X 또는 SCSI 기반 시스템 버스일 수 있다.
제거 가능한 저장 매체(925)는 임의의 종류의 외장 하드-드라이브들, 플로피 드라이브들, IOMEGA® 집 드라이브들(Zip Drives), CD-ROM(Compact Disc - Read Only Memory), CD-RW(Compact Disc - Re-Writable), DVD-ROM(Digital Video Disk - Read Only Memory)일 수 있다.
상술된 구성요소들은 몇몇 종류의 가능성들을 예시하는 의도이다. 전술한 예들은 단지 예시적인 실시예들이기 때문에 어떤 방법으로도 본 발명의 범위를 제한할 수 없다.
문맥이 명확하게 달리 요구하지 않는 한, 상세한 설명 및 청구항을 통틀어, 단어들 "포함하다(comprise)", "포함하는(comprising)", 및 그 비슷한 것은 배타적(exclusive)이거나 빠뜨림 없이 완전한(exhaustive) 의미가 아니라 포함적(inclusive) 의미; 즉, "포함하지만, 이에 한정되는 것은 아니다"라는 의미로 해석되어야 한다. 본원에서 사용될 때, 단어 "연결된(connected)", "결합된(coupled)" 또는 그것들의 임의의 변형은 2 이상의 구성요소 사이의 직접적 또는 비직접적인(indirect) 임의의 연결 또는 결합을 의미하고; 구성요소들 사이의 결합 또는 연결은 물리적, 논리적(logical), 또는 그것들의 조합일 수 있다. 추가로, 단어 "본원에서", "위", "아래", 및 유사한 의미의 단어들은, 본 출원에서 사용될 때, 본 출원의 임의의 특정한 부분이 아니라 본 출원을 전체로서 참조한다. 문맥상 허용된다면, 단수 또는 복수의 숫자를 이용하는 위 상세한 설명 내의 단어들은 각각 복수 또는 단수도 또한 포함할 수 있다. 2개 이상의 항목의 목록을 참조하는 단어 "또는"은, 목록 내의 항목들 중 임의의 것, 목록 내의 항목들 모두, 및 목록 내의 항목들의 임의의 조합과 같은 해석들 모두를 포괄한다.
본 발명의 예들의 위 상세한 설명은 빠뜨림 없이 완전한 것이거나 본 발명을 위에 개시된 방식 그대로 제한하기 위한 것이 아니다. 본 발명을 위한 특정 예들이 설명의 목적으로 전술되었지만, 관련 분야의 숙련된 자가 인지하듯이, 본 발명의 범위 내에서 다양한 균등한 수정이 가능하다. 예를 들어, 프로세스들 또는 블록들이 주어진 순서로 제시되지만, 대안 또는 하위 조합들을 제공하기 위하여, 대안적인 구현들은 단계들을 갖는 루틴들을 상이한 순서로 수행하거나, 블록들을 갖는 시스템들을 상이한 순서로 이용할 수 있고, 몇몇 프로세스 또는 블록은 제거, 이동, 부가, 세분, 결합 및/또는 수정될 수 있다. 각각의 이 프로세스들 또는 블록들은 다양한 상이한 방식들로 구현될 수 있다. 또한, 프로세스들 또는 블록들이 때때로 직렬로 수행되는 것으로 보여지지만, 이 프로세스들 또는 블록들은 그 대신 병렬적 구현되거나 수행될 수 있고, 또는 상이한 시간들에 수행될 수 있다. 또한, 본원에 기재된 임의의 특정 숫자들은 단지 예이며: 대안적인 구현들은 상이한 값들 또는 범위들을 이용할 수 있다.
본원에 제공된 본 발명의 교시들은 반드시 전술한 시스템들이 아니라, 다른 시스템들에 적용될 수 있다. 전술한 다양한 예들의 구성요소들 및 동작들은 또 다른 본 발명의 실시예들을 제공하기 위해 결합될 수 있다. 본 발명의 몇몇 대안적인 구현은 위에 언급된 그것들의 구현들에 추가적인 구성요소들을 포함할 수 있을 뿐만 아니라 더 적은 구성요소들 또한 포함할 수 있다.
이 변경들 및 다른 변경들은 위의 상세한 설명을 고려하여 본 발명에 대해 이루어질 수 있다. 위 설명이 본 발명의 소정의 예들을 설명하고, 고려된 최선의 방법을 설명하지만, 위의 내용들이 글로 얼마나 상세하게 나타나는지에 상관없이, 본 발명은 많은 방식으로 실시될 수 있다. 시스템의 세부사항들은 그것의 특정 구현 내에서 상당히 달라질 수 있지만, 본원에 개시된 본 발명에 여전히 포함된다. 전술한 바와 같이, 본 발명의 소정의 특성들 또는 태양들을 설명할 때 사용된 특정 용어는 용어와 연관된 본 발명의 임의의 특정 특징들, 특성들, 태양들로 제한되도록 본원에서 재정의되고 있는 것으로 암시되지 않아야 한다. 일반적으로, 이하의 청구항들에서 사용되는 용어들은 위 상세한 설명 부분에서 분명하게 그러한 용어들을 정의하지 않는 한, 본 발명을 본 명세서에 개시된 특정 예들로 제한하는 것으로 이해되어서는 안 된다. 따라서, 본 발명의 실제의 범위는 개시된 예들뿐만 아니라, 청구항들의 발명을 실시하거나 구현하는 모든 균등한 방법들을 포함한다.
청구항의 수를 줄이기 위하여, 발명의 소정의 태양들이 소정의 청구항 형식으로 아래에 제시되지만, 출원인은 임의의 개수의 청구항 형태로 발명의 다양한 태양들을 예상한다. 예를 들어, 발명의 단 하나의 태양만이 컴퓨터-판독가능 매체 청구항으로 기술되더라도, 다른 태양들이 마찬가지로 컴퓨터-판독가능 매체 청구항으로서 또는 기능식 청구항(means-plus-function claim)으로 구현되는 것과 같이 다른 형식으로 구현될 수 있다. (35 U.S.C. 112조의 6번째 단락하에서 다루어지도록 의도된 임의의 청구항들은 단어들 "위한 수단"으로 표현되지만, 임의의 다른 맥락에서의 용어 "위한"의 사용은 35 U.S.C. 112조의 6번째 단락하의 처리를 적용하도록 의도하지 않는다.) 따라서, 출원인은 그러한 추가적인 청구항 형태들을 추구하기 위해서, 본 출원을 출원한 후에 본 출원 또는 계속 출원 모두에서 추가적인 청구항들을 추구할 수 있는 권리를 보유할 수 있다.

Claims (41)

  1. 마스터 언어 프로세싱 시스템(master language processing system)을 운용하기 위한 방법으로서,
    상기 마스터 언어 프로세싱 시스템에서, 복수의 로컬 언어 프로세싱 시스템(local language processing systems)으로부터 업데이트 메시지들을 수신하는 단계 - 상기 업데이트 메시지들은 상기 복수의 로컬 언어 프로세싱 시스템에 의해 감지되는 로컬 언어 모델들에 대한 변경 이벤트들을 포함하고, 상기 복수의 로컬 언어 프로세싱 시스템의 각각은 컴퓨팅 디바이스 상에 있고, 상기 복수의 로컬 언어 프로세싱 시스템은 공통의 사용자와 연관됨 -;
    상기 복수의 로컬 언어 프로세싱 시스템으로부터 수신된 상기 업데이트 메시지들 내에 포함된 상기 변경 이벤트들에 기초하여 상기 마스터 언어 프로세싱 시스템 내의 마스터 언어 모델을 업데이트하는 단계;
    다른 로컬 언어 프로세싱 시스템들로부터의 변경 이벤트들을 통합하기 위하여 상기 복수의 로컬 언어 프로세싱 시스템 각각을 위한 동기화 메시지들을 생성하는 단계 - 각각의 로컬 언어 프로세싱 시스템을 위한 상기 동기화 메시지는, 상기 컴퓨팅 디바이스에서 상기 로컬 언어 모델 내에 통합될 변경들로서, 다른 컴퓨팅 디바이스들상의 다른 로컬 언어 프로세싱 시스템들에 의하여 상기 마스터 언어 프로세싱 시스템에 보고된(reported) 변경 이벤트들에 기초하여 상기 컴퓨팅 디바이스에서 상기 로컬 언어 모델 내에 통합될 변경들을 포함함 -; 및
    상기 마스터 언어 모델로의 업데이트들이 상기 로컬 언어 모델들로 전파될 수 있도록 상기 복수의 로컬 언어 프로세싱 시스템 각각에 상기 동기화 메시지들을 전송하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    각각의 업데이트 메시지는 상기 업데이트 메시지 내의 변경 이벤트들의 우선순위를 반영하는 우선순위 레벨을 더 포함하는, 방법.
  3. 제2항에 있어서,
    상기 마스터 언어 프로세싱 시스템에서 수신된 상기 업데이트 메시지들은 상기 복수의 로컬 언어 프로세싱 시스템으로부터의 낮은 우선순위 레벨을 가진 배치 업데이트 메시지들(batched update messages)의 그룹들을 포함하는, 방법.
  4. 제2항에 있어서,
    상기 마스터 언어 모델은 상기 마스터 언어 모델이 낮은 우선순위 레벨을 가진 임의의 업데이트 메시지들로 업데이트되기 전에 높은 우선순위 레벨을 가진 임의의 업데이트 메시지들로 업데이트되는, 방법.
  5. 제4항에 있어서,
    각각의 동기화 메시지는 상기 동기화 메시지 내의 변경 이벤트들의 상기 우선순위를 반영하는 우선순위 레벨을 더 포함하는, 방법.
  6. 제5항에 있어서,
    높은 우선순위 레벨을 가진 동기화 메시지들은, 상기 마스터 언어 모델이 상기 높은 우선순위 레벨을 가진 각각의 업데이트 메시지로 업데이트된 후에 즉시 생성되는, 방법.
  7. 제2항에 있어서,
    상기 업데이트 메시지들은 우선순위 레벨에 따라 상이한 네트워크 접속들을 통하여 전송되는, 방법.
  8. 제1항에 있어서,
    상기 마스터 언어 프로세싱 시스템은 서버-기반 시스템이고, 업데이트 메시지들은 네트워크 접속을 통하여 수신되는, 방법.
  9. 제1항에 있어서,
    하나 이상의 상기 변경 이벤트는 새로운 단어들, 제거된 단어들, 엔-그램들(n-grams), 또는 단어 가중치들을 포함하는, 방법.
  10. 컴퓨터 시스템에 의하여 실행될 때, 복수의 컴퓨팅 디바이스에 걸쳐 로컬 언어 모델들을 유지하는 방법을 구현하는 명령을 포함한 컴퓨터-판독가능 매체로서, 상기 방법은
    마스터 언어 프로세싱 시스템에서, 공통의 사용자의 복수의 컴퓨팅 디바이스와 연관된 복수의 로컬 언어 프로세싱 시스템으로부터 업데이트 메시지들을 수신하는 단계 - 각각의 업데이트 메시지는 상기 사용자의 컴퓨팅 디바이스상의 로컬 언어 모델로의 하나 이상의 변경 이벤트를 포함하고, 상기 변경 이벤트들의 각각은 연관된 우선순위를 가짐 -;
    상기 복수의 로컬 언어 프로세싱 시스템으로부터 수신된 상기 업데이트 메시지들 내에 포함된 상기 변경 이벤트들에 기초하여 상기 마스터 언어 프로세싱 시스템 내의 마스터 언어 모델을 업데이트하는 단계 - 상기 마스터 언어 모델은 상기 변경 이벤트와 연관된 상기 우선순위에 기초한 순서로 업데이트됨-;
    다른 로컬 언어 프로세싱 시스템들로부터의 변경 이벤트들을 통합하기 위하여 상기 복수의 로컬 언어 프로세싱 시스템의 각각을 위한 동기화 메시지들을 생성하는 단계 - 각각의 로컬 언어 프로세싱 시스템을 위한 상기 동기화 메시지는, 상기 컴퓨팅 디바이스에서 상기 로컬 언어 모델 내에 통합될 변경들로서, 다른 컴퓨팅 디바이스들상의 다른 로컬 언어 프로세싱 시스템들에 의하여 상기 마스터 언어 프로세싱 시스템에 보고된(reported) 변경 이벤트들에 기초하여 상기 컴퓨팅 디바이스에서 상기 로컬 언어 모델 내에 통합될 변경들을 포함함 -; 및
    상기 마스터 언어 모델로의 업데이트들이 상기 사용자의 상기 컴퓨팅 디바이스들상의 상기 로컬 언어 모델들로 전파될 수 있도록 상기 복수의 로컬 언어 프로세싱 시스템의 각각에 상기 동기화 메시지들을 전송하는 단계
    를 포함하는, 컴퓨터-판독가능 매체.
  11. 제10항에 있어서,
    각각의 동기화 메시지는 상기 동기화 메시지 내의 변경 이벤트들의 상기 우선순위를 반영하는 우선순위 레벨을 더 포함하는, 컴퓨터-판독가능 매체.
  12. 제11항에 있어서,
    높은 우선순위 레벨을 가진 동기화 메시지들은, 상기 마스터 언어 모델이 높은 우선순위 레벨을 가진 각각의 변경 메시지로 업데이트된 후 즉시 생성되는, 컴퓨터-판독가능 매체.
  13. 제10항에 있어서,
    수신된 상기 하나 이상의 변경 이벤트들은 마스터 언어 프로세서가 비슷한 이벤트들을 프로세싱할 수 있게 하기 위하여 변경 이벤트들의 그룹으로 분류되는(categorized), 컴퓨터-판독가능 매체.
  14. 제10항에 있어서,
    상기 마스터 언어 모델은 정적 언어 모델 및 동적 언어 모델을 포함하는, 컴퓨터-판독가능 매체.
  15. 로컬 언어 프로세싱 시스템을 운용하기 위한 컴퓨터-구현 방법으로서,
    상기 로컬 언어 프로세싱 시스템을 실행하는 컴퓨팅 디바이스에서, 로컬 언어 모델로의 하나 이상의 변경 이벤트를 감지하는 단계 - 상기 하나 이상의 변경 이벤트는 상기 로컬 언어 모델로의 업데이트를 반영하여 상기 로컬 언어 모델은 마스터 언어 모델과 다르게 됨 -;
    감지된 상기 하나 이상의 변경 이벤트에 기초하여 상기 로컬 언어 모델을 수정하는 단계;
    상기 하나 이상의 변경 이벤트를 마스터 언어 프로세싱 시스템에 통신하는 단계 - 상기 마스터 언어 프로세싱 시스템은 상기 하나 이상의 변경 이벤트를 사용하여 마스터 언어 모델을 업데이트하고, 상기 마스터 언어 프로세싱 시스템은 상기 컴퓨팅 디바이스로부터 떨어진 서버-기반 컴퓨팅 시스템상에서 작동함 -; 및
    상기 마스터 언어 프로세싱 시스템으로부터 동기화 메시지를 수신하는 단계
    를 포함하고,
    상기 동기화 메시지는, 상기 컴퓨팅 디바이스에서 상기 로컬 언어 모델 내에 통합될 변경들로서, 다른 컴퓨팅 디바이스들상의 다른 로컬 언어 프로세싱 시스템들에 의하여 상기 마스터 언어 프로세싱 시스템에 보고된(reported) 변경 이벤트들에 기초하여 상기 컴퓨팅 디바이스에서 상기 로컬 언어 모델 내에 통합될 변경들을 포함하며,
    상기 컴퓨팅 디바이스상에서의 상기 로컬 언어 프로세싱 시스템 및 다른 컴퓨팅 디바이스들상의 상기 다른 로컬 언어 프로세싱 시스템들이 공통의 사용자와 연관되는, 방법.
  16. 삭제
  17. 삭제
  18. 제15항에 있어서,
    상기 하나 이상의 변경 이벤트는 새 단어들, 제거된 단어들, 엔-그램들, 또는 단어 가중치들을 포함하는, 방법.
  19. 제15항에 있어서,
    상기 컴퓨팅 디바이스가 사용자와 연관된 새로운 디바이스인지 결정하는 단계; 및
    상기 컴퓨팅 디바이스가 새로운 디바이스인 경우, 상기 로컬 언어 모델이 상기 마스터 언어 모델과 동기화되도록 상기 로컬 언어 모델에 대한 변경 이벤트들을 수신하는 단계
    를 더 포함하는 방법.
  20. 제15항에 있어서,
    상기 하나 이상의 변경 이벤트의 각각과 연관된 우선순위 레벨을 결정하는 단계;
    높은 우선순위 레벨을 가진 임의의 상기 하나 이상의 변경 이벤트를 상기 마스터 언어 프로세싱 시스템으로 초기에 전송하는 단계; 및
    낮은 우선순위 레벨을 가진 임의의 상기 하나 이상의 변경 이벤트를 나중에 상기 마스터 언어 프로세싱 시스템으로 전송될 묶음들(batches)로 그룹핑(grouping)하는 단계
    를 더 포함하는 방법.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
KR1020157012909A 2012-10-17 2013-10-16 다중 디바이스 지능형 언어 모델 동기화 KR101693653B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261715186P 2012-10-17 2012-10-17
US61/715,186 2012-10-17
US13/834,575 2013-03-15
US13/834,887 2013-03-15
US13/834,887 US9035884B2 (en) 2012-10-17 2013-03-15 Subscription updates in multiple device language models
US13/834,575 US8983849B2 (en) 2012-10-17 2013-03-15 Multiple device intelligent language model synchronization
PCT/US2013/065318 WO2014062851A1 (en) 2012-10-17 2013-10-16 Multiple device intelligent language model synchronization

Publications (2)

Publication Number Publication Date
KR20150074075A KR20150074075A (ko) 2015-07-01
KR101693653B1 true KR101693653B1 (ko) 2017-01-06

Family

ID=50476174

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157012909A KR101693653B1 (ko) 2012-10-17 2013-10-16 다중 디바이스 지능형 언어 모델 동기화

Country Status (5)

Country Link
US (3) US8983849B2 (ko)
EP (1) EP2909736A4 (ko)
KR (1) KR101693653B1 (ko)
CN (1) CN104885071B (ko)
WO (1) WO2014062851A1 (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201208373D0 (en) * 2012-05-14 2012-06-27 Touchtype Ltd Mechanism for synchronising devices,system and method
US9747895B1 (en) * 2012-07-10 2017-08-29 Google Inc. Building language models for a user in a social network from linguistic information
US8983849B2 (en) 2012-10-17 2015-03-17 Nuance Communications, Inc. Multiple device intelligent language model synchronization
US9253160B2 (en) * 2012-12-31 2016-02-02 Kent Lawson Methods, systems, and media for secure connection management and automatic compression over metered data connections
US10102845B1 (en) * 2013-02-25 2018-10-16 Amazon Technologies, Inc. Interpreting nonstandard terms in language processing using text-based communications
US9323780B2 (en) * 2013-03-13 2016-04-26 Microsoft Technology Licensing, Llc Locale-based sorting on mobile devices
US9672818B2 (en) 2013-04-18 2017-06-06 Nuance Communications, Inc. Updating population language models based on changes made by user clusters
KR101456974B1 (ko) 2013-05-21 2014-10-31 삼성전자 주식회사 사용자 단말기, 음성인식 서버 및 음성인식 가이드 방법
US10049656B1 (en) * 2013-09-20 2018-08-14 Amazon Technologies, Inc. Generation of predictive natural language processing models
US10643616B1 (en) * 2014-03-11 2020-05-05 Nvoq Incorporated Apparatus and methods for dynamically changing a speech resource based on recognized text
US9812130B1 (en) * 2014-03-11 2017-11-07 Nvoq Incorporated Apparatus and methods for dynamically changing a language model based on recognized text
US20150301795A1 (en) * 2014-04-16 2015-10-22 Facebook, Inc. Crowd sourced based training for natural language interface systems
US20150309984A1 (en) * 2014-04-25 2015-10-29 Nuance Communications, Inc. Learning language models from scratch based on crowd-sourced user text input
US20150370674A1 (en) * 2014-06-19 2015-12-24 Microsoft Corporation Tenant provisioning for testing a production multi-tenant service
US9338071B2 (en) 2014-10-08 2016-05-10 Google Inc. Locale profile for a fabric network
WO2016058138A1 (en) * 2014-10-15 2016-04-21 Microsoft Technology Licensing, Llc Construction of lexicon for selected context
US10248640B2 (en) * 2015-02-05 2019-04-02 Microsoft Technology Licensing, Llc Input-mode-based text deletion
US10073828B2 (en) * 2015-02-27 2018-09-11 Nuance Communications, Inc. Updating language databases using crowd-sourced input
KR102325724B1 (ko) * 2015-02-28 2021-11-15 삼성전자주식회사 다수의 기기에서 텍스트 데이터 동기화
US20160307562A1 (en) * 2015-04-14 2016-10-20 GM Global Technology Operations LLC Controlling speech recognition systems based on radio station availability
US20160379630A1 (en) * 2015-06-25 2016-12-29 Intel Corporation Speech recognition services
CN105654945B (zh) * 2015-10-29 2020-03-06 乐融致新电子科技(天津)有限公司 一种语言模型的训练方法及装置、设备
US10354200B2 (en) 2015-12-14 2019-07-16 Here Global B.V. Method, apparatus and computer program product for collaborative mobility mapping
US10248406B2 (en) * 2016-11-17 2019-04-02 International Business Machines Corporation Locale object management
KR20180070970A (ko) * 2016-12-19 2018-06-27 삼성전자주식회사 음성 인식 방법 및 장치
KR102068182B1 (ko) * 2017-04-21 2020-01-20 엘지전자 주식회사 음성 인식 장치, 및 음성 인식 시스템
CN107481722A (zh) * 2017-08-21 2017-12-15 无锡小天鹅股份有限公司 语音控制方法、衣物处理装置及服务器
CN107918497A (zh) * 2017-11-14 2018-04-17 厦门攸信信息技术有限公司 一种控制器的预测方法及系统
CN108597533B (zh) * 2018-04-10 2021-11-23 北京三听科技有限公司 一种增强智能终端的语音输入信号的方法和系统
WO2019203795A1 (en) * 2018-04-16 2019-10-24 Google Llc Automatically determining language for speech recognition of spoken utterance received via an automated assistant interface
US11494200B2 (en) * 2018-05-02 2022-11-08 Microsoft Technology Licensing, Llc. Configuring an electronic device using artificial intelligence
US11205045B2 (en) * 2018-07-06 2021-12-21 International Business Machines Corporation Context-based autocompletion suggestion
KR102225984B1 (ko) * 2018-09-03 2021-03-10 엘지전자 주식회사 음성 인식 서비스를 제공하는 서버
CN109617950B (zh) * 2018-11-26 2021-09-03 杭州涂鸦信息技术有限公司 一种数据更新方法、装置、设备及可读存储介质
CN110609654B (zh) * 2019-08-14 2021-03-12 广州视源电子科技股份有限公司 数据同步显示方法、装置、设备以及远程会议系统
CN111209075B (zh) * 2020-01-21 2024-02-09 深圳市优必选科技股份有限公司 多语言界面维护方法、系统、存储介质和智能设备
KR20220055789A (ko) * 2020-10-27 2022-05-04 삼성전자주식회사 사용자 모델을 관리하는 전자 장치 및 이의 동작 방법
US11929079B2 (en) 2020-10-27 2024-03-12 Samsung Electronics Co., Ltd Electronic device for managing user model and operating method thereof
US20220171929A1 (en) * 2020-12-01 2022-06-02 Rovi Guides, Inc. Systems and methods to support a new locale in a language model
US11115353B1 (en) * 2021-03-09 2021-09-07 Drift.com, Inc. Conversational bot interaction with utterance ranking
CN112926042B (zh) * 2021-04-13 2024-01-16 效生软件科技(上海)有限公司 一种跨通道生物语音识别验证系统及验证方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228275B1 (en) * 2002-10-21 2007-06-05 Toyota Infotechnology Center Co., Ltd. Speech recognition system having multiple speech recognizers
US20100312555A1 (en) 2009-06-09 2010-12-09 Microsoft Corporation Local and remote aggregation of feedback data for speech recognition
US20110060587A1 (en) * 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566229A (en) * 1992-08-24 1996-10-15 At&T Voice directed communications system employing shared subscriber identifiers
US5677989A (en) * 1993-04-30 1997-10-14 Lucent Technologies Inc. Speaker verification system and process
US5896544A (en) * 1996-12-26 1999-04-20 Intel Corporation Software device for supporting a new class of PC peripherals
US6205418B1 (en) * 1997-06-25 2001-03-20 Lucent Technologies Inc. System and method for providing multiple language capability in computer-based applications
US6623529B1 (en) * 1998-02-23 2003-09-23 David Lakritz Multilingual electronic document translation, management, and delivery system
US6226618B1 (en) 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
DE69937962T2 (de) 1998-10-02 2008-12-24 International Business Machines Corp. Vorrichtung und verfahren zur bereitstellung von netzwerk-koordinierten konversationsdiensten
US6785869B1 (en) * 1999-06-17 2004-08-31 International Business Machines Corporation Method and apparatus for providing a central dictionary and glossary server
US6263051B1 (en) 1999-09-13 2001-07-17 Microstrategy, Inc. System and method for voice service bureau
US9076448B2 (en) 1999-11-12 2015-07-07 Nuance Communications, Inc. Distributed real time speech recognition system
JP2002073072A (ja) 2000-08-31 2002-03-12 Sony Corp モデル適応装置およびモデル適応方法、記録媒体、並びにパターン認識装置
US6823306B2 (en) 2000-11-30 2004-11-23 Telesector Resources Group, Inc. Methods and apparatus for generating, updating and distributing speech recognition models
US20020169777A1 (en) 2001-03-15 2002-11-14 Liviu Balajel Database architecture and method
US7103534B2 (en) 2001-03-31 2006-09-05 Microsoft Corporation Machine learning contextual approach to word determination for text input via reduced keypad keys
US7058890B2 (en) 2002-02-13 2006-06-06 Siebel Systems, Inc. Method and system for enabling connectivity to a data system
US6763019B2 (en) 2002-03-05 2004-07-13 Nokia Corporation Method and system for authenticated fast channel change of media provided over a DSL connection
US7016849B2 (en) 2002-03-25 2006-03-21 Sri International Method and apparatus for providing speech-driven routing between spoken language applications
JP3863118B2 (ja) * 2002-04-01 2006-12-27 松下電器産業株式会社 受信装置、印刷装置およびファームウェア更新システム
CN1453767A (zh) * 2002-04-26 2003-11-05 日本先锋公司 语音识别装置以及语音识别方法
US7398209B2 (en) 2002-06-03 2008-07-08 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
US7313528B1 (en) * 2003-07-31 2007-12-25 Sprint Communications Company L.P. Distributed network based message processing system for text-to-speech streaming data
US20050193370A1 (en) * 2004-02-27 2005-09-01 Goring Brian R. System and method for interactive wireless applications with conditional UI controls and screen navigation
US7324083B2 (en) 2004-06-02 2008-01-29 Research In Motion Limited Handheld electronic device with text disambiguation
US9178948B2 (en) * 2004-07-30 2015-11-03 Qualcomm Incorporated Methods and apparatus for subscribing to multimedia delivery services in a data network
US20060122840A1 (en) * 2004-12-07 2006-06-08 David Anderson Tailoring communication from interactive speech enabled and multimodal services
US7640160B2 (en) 2005-08-05 2009-12-29 Voicebox Technologies, Inc. Systems and methods for responding to natural language speech utterance
US7590536B2 (en) 2005-10-07 2009-09-15 Nuance Communications, Inc. Voice language model adjustment based on user affinity
ATE439665T1 (de) * 2005-11-25 2009-08-15 Swisscom Ag Verfahren zur personalisierung eines dienstes
US8140336B2 (en) 2005-12-08 2012-03-20 Nuance Communications Austria Gmbh Speech recognition system with huge vocabulary
US7587378B2 (en) 2005-12-09 2009-09-08 Tegic Communications, Inc. Embedded rule engine for rendering text and other applications
US20070136068A1 (en) * 2005-12-09 2007-06-14 Microsoft Corporation Multimodal multilingual devices and applications for enhanced goal-interpretation and translation for service providers
DE102006006551B4 (de) 2006-02-13 2008-09-11 Siemens Ag Verfahren und System zum Bereitstellen von Sprachdialoganwendungen sowie mobiles Endgerät
US8719021B2 (en) 2006-02-23 2014-05-06 Nec Corporation Speech recognition dictionary compilation assisting system, speech recognition dictionary compilation assisting method and speech recognition dictionary compilation assisting program
US7756708B2 (en) 2006-04-03 2010-07-13 Google Inc. Automatic language model update
CN100472524C (zh) * 2006-06-26 2009-03-25 腾讯科技(深圳)有限公司 一种中文词库更新系统及方法
US8073681B2 (en) * 2006-10-16 2011-12-06 Voicebox Technologies, Inc. System and method for a cooperative conversational voice user interface
CN1968281A (zh) * 2006-11-21 2007-05-23 华为技术有限公司 实现终端间单词库数据同步的方法及终端
WO2008067562A2 (en) * 2006-11-30 2008-06-05 Rao Ashwin P Multimodal speech recognition system
WO2008086253A2 (en) * 2007-01-07 2008-07-17 Apple Inc. Background data transmission between media device and host device
US20080288252A1 (en) 2007-03-07 2008-11-20 Cerra Joseph P Speech recognition of speech recorded by a mobile communication facility
US8886540B2 (en) * 2007-03-07 2014-11-11 Vlingo Corporation Using speech recognition results based on an unstructured language model in a mobile communication facility application
US8996379B2 (en) 2007-03-07 2015-03-31 Vlingo Corporation Speech recognition text entry for software applications
CN100464308C (zh) * 2007-04-20 2009-02-25 北京搜狗科技发展有限公司 一种用户词库同步更新的方法和系统
US8065624B2 (en) 2007-06-28 2011-11-22 Panasonic Corporation Virtual keypad systems and methods
CN101169789A (zh) * 2007-11-30 2008-04-30 腾讯科技(深圳)有限公司 基于输入法的词库更新装置及方法
CN101551801B (zh) * 2008-03-31 2013-05-22 国际商业机器公司 数据同步的方法和系统
CN102272754B (zh) 2008-11-05 2015-04-01 谷歌公司 定制语言模型
US8229937B2 (en) 2008-12-16 2012-07-24 Sap Ag Automatic creation and transmission of data originating from enterprise information systems as audio podcasts
GB201108200D0 (en) * 2011-05-16 2011-06-29 Touchtype Ltd User input prediction
US8682640B2 (en) * 2009-11-25 2014-03-25 International Business Machines Corporation Self-configuring language translation device
US8595380B2 (en) 2009-12-15 2013-11-26 Red Hat, Inc. Message bus based replication
US20110197227A1 (en) 2010-02-11 2011-08-11 Alan Rouse Systems and methods for providing roaming video wanted list and roaming video preferences
CN102063450A (zh) * 2010-04-16 2011-05-18 百度在线网络技术(北京)有限公司 一种基于网络的供用户进行文字输入的方法与设备
CN101847159A (zh) * 2010-05-11 2010-09-29 中兴通讯股份有限公司 终端设备及其词库更新的方法
US8595234B2 (en) 2010-05-17 2013-11-26 Wal-Mart Stores, Inc. Processing data feeds
US20120010886A1 (en) * 2010-07-06 2012-01-12 Javad Razavilar Language Identification
US20120324391A1 (en) 2011-06-16 2012-12-20 Microsoft Corporation Predictive word completion
US8903707B2 (en) * 2012-01-12 2014-12-02 International Business Machines Corporation Predicting pronouns of dropped pronoun style languages for natural language translation
US8909565B2 (en) * 2012-01-30 2014-12-09 Microsoft Corporation Clustering crowdsourced data to create and apply data input models
US9020824B1 (en) * 2012-03-09 2015-04-28 Google Inc. Using natural language processing to generate dynamic content
US20140365221A1 (en) * 2012-07-31 2014-12-11 Novospeech Ltd. Method and apparatus for speech recognition
US8983849B2 (en) 2012-10-17 2015-03-17 Nuance Communications, Inc. Multiple device intelligent language model synchronization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228275B1 (en) * 2002-10-21 2007-06-05 Toyota Infotechnology Center Co., Ltd. Speech recognition system having multiple speech recognizers
US20110060587A1 (en) * 2007-03-07 2011-03-10 Phillips Michael S Command and control utilizing ancillary information in a mobile voice-to-speech application
US20100312555A1 (en) 2009-06-09 2010-12-09 Microsoft Corporation Local and remote aggregation of feedback data for speech recognition

Also Published As

Publication number Publication date
EP2909736A4 (en) 2016-05-11
CN104885071B (zh) 2019-05-28
US20150234807A1 (en) 2015-08-20
US9361292B2 (en) 2016-06-07
US20140108018A1 (en) 2014-04-17
US20140108003A1 (en) 2014-04-17
US8983849B2 (en) 2015-03-17
KR20150074075A (ko) 2015-07-01
US9035884B2 (en) 2015-05-19
EP2909736A1 (en) 2015-08-26
WO2014062851A1 (en) 2014-04-24
CN104885071A (zh) 2015-09-02

Similar Documents

Publication Publication Date Title
KR101693653B1 (ko) 다중 디바이스 지능형 언어 모델 동기화
US10853582B2 (en) Conversational agent
KR102132146B1 (ko) 수행할 작업들을 나타내는 작업 항목들의 생성 및 프로세싱
US11412349B2 (en) Suppressing notifications based on directed location activity
US11281992B2 (en) Predicting geofence performance for optimized location based services
US20110106736A1 (en) System and method for intuitive user interaction
US10491690B2 (en) Distributed natural language message interpretation engine
US11575624B2 (en) Contextual feedback, with expiration indicator, to a natural understanding system in a chat bot
CN113268498A (zh) 业务推荐方法和具有智能助手的装置
EP2779057A1 (en) Computing system with relationship model mechanism and method of operation thereof
US10623890B1 (en) Event-based location based services
US10394966B2 (en) Systems and methods for multi-protocol, multi-format universal searching
US20200380076A1 (en) Contextual feedback to a natural understanding system in a chat bot using a knowledge model
KR20200043659A (ko) 미응답 메시지를 수집하는 방법, 시스템, 및 비-일시적인 컴퓨터 판독가능한 기록 매체
CN105229636A (zh) 上下文社交感知本地搜索
KR102039995B1 (ko) 메신저 서비스에서의 사용자 상황에 따른 효율적인 멀티미디어 메시지 제공 방법 및 시스템
CN112825256A (zh) 录制语音包功能的引导方法、装置、设备和计算机存储介质
US11477140B2 (en) Contextual feedback to a natural understanding system in a chat bot

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191223

Year of fee payment: 4