KR20150131040A - 다수의 언어 모델에 기초한 텍스트 예측 기법 - Google Patents

다수의 언어 모델에 기초한 텍스트 예측 기법 Download PDF

Info

Publication number
KR20150131040A
KR20150131040A KR1020157025077A KR20157025077A KR20150131040A KR 20150131040 A KR20150131040 A KR 20150131040A KR 1020157025077 A KR1020157025077 A KR 1020157025077A KR 20157025077 A KR20157025077 A KR 20157025077A KR 20150131040 A KR20150131040 A KR 20150131040A
Authority
KR
South Korea
Prior art keywords
text
user
dictionary
language model
dictionaries
Prior art date
Application number
KR1020157025077A
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 KR20150131040A publication Critical patent/KR20150131040A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • 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
    • G06F17/273
    • G06F17/2735
    • G06F17/276
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

하나 이상의 실시예에서, 검출된 텍스트 문자에 대응하는 텍스트 예측 후보가 적응성 언어 모델에 따라 생성된다. 적응성 언어 모델은 상이한 상호작용 시나리오에 대해 예측 후보에 등급을 부여하여 선택하기 위해 함께 결합되는 제각기의 점수 데이터를 갖는 다수의 개별 언어 모델 사전을 포함하도록 구성될 수 있다. 사전 설정된 일반 대중 사전에 더해, 사전은 개인화된 사전 및/또는 예측을 사용자의 스타일에 적응시키기 위해 사용자의 타이핑 활동을 모니터링함으로써 학습되는 상호작용 특정 사전을 포함할 수 있다. 예측을 위한 결합된 확률은 적응성 언어 모델의 다수의 사전으로부터의 개개의 확률들의 가중치 부여된 결합으로서 계산된다. 일 구현에서, 다수의 상이한 언어에 대응하는 사전들이 결합되어 다중 언어 예측을 생성할 수 있다.

Description

다수의 언어 모델에 기초한 텍스트 예측 기법{TEXT PREDICTION BASED ON MULTIPLE LANGUAGE MODELS}
이동 전화, 휴대용 및 태블릿 컴퓨터, 오락 기기, 핸드헬드 네비게이션 장치 등과 같은 컴퓨팅 장치는 일반적으로 텍스트 입력을 위해 및/또는 컴퓨팅 장치와의 다른 상호작용을 위해 채용될 수 있는 온스크린 키보드(예를 들어, 소프트 키보드)를 갖도록 구현된다. 사용자가 온스크린 키보드 또는 유사한 입력 장치를 이용하여 텍스트 박스에 텍스트 문자를 입력하거나 또는 그와 다른 식으로 텍스트를 입력하는 경우, 컴퓨팅 장치는 오탈자를 자동으로 교정하기 위한 자동 교정 및/또는 입력 문자에 기초하여 문자 단어/구를 예측 및 제공하기 위한 텍스트 예측을 적용할 수 있다.
전통적인 방식에서, 자동 교정 및 텍스트 예측은, 장치상에서 시험 시뮬레이션을 통해 개발될 수 있고 하드 코딩될 수 있는 정적 언어 모델을 생성된다. 사용자는 명시적으로 단어를 모델에 추가하거나 단어를 생략할 수 있지만, 그와 달리 정적 언어 모델은 특정 사용자 및 상호작용 시나리오에 적응되지 않을 수 있다. 따라서, 전통적인 기법을 사용하여 제공된 텍스트 예측 후보는 종종 사용자 및/또는 시나리오에 적합하지 않거나 그와 무관하며, 그에 따라 불만스러운 예측과 불충실한 예측이 야기된다.
본 명세서에서는 텍스트 예측을 위한 적응성 언어 모델이 설명된다. 하나 이상의 실시예에서, 장치와의 상호작용 동안 텍스트 문자의 입력이 검출된다. 검출된 텍스트 문자에 대응하는 텍스트 예측 후보는 적응성 언어 모델에 따라 생성된다. 적응성 언어 모델은 상이한 상호작용 시나리오에서 예측 후보에 등급을 부여하고 선택하기 위해 함께 결합되는 제각기의 점수 데이터를 갖는 다수의 개별 언어 모델 사전을 포함하도록 구성될 수 있다. 사전 정의된 일반 대중 사전 외에, 사전들은 사용자의 스타일에 예측을 적응시키기 위해 사용자의 타이핑 활동을 모니터링함으로써 학습된 개인화된 사전 및/또는 상호작용 특정 사전을 포함할 수 있다. 예측을 위한 결합된 확률은 적응성 언어 모델의 다수의 사전으로부터의 개개의 확률의 가중치 부여된 결합으로서 계산된다. 일 실시예에서, 다수의 상이한 언어에 대응하는 사전들이 결합되어 다중 언어 예측을 생성한다.
본 요약은 이하 발명의 상세한 설명에서 보다 자세히 기술될 선택된 개념들을 단순화된 형식으로 소개하기 위해 제공되는 것이다. 본 요약은 청구대상의 주된 사항 또는 핵심 사항을 밝히기 위한 것이 아니며, 청구대상의 범위를 결정하는 것을 돕는데 사용되려는 것도 아니다.
상세한 설명은 첨부한 도면을 참조하여 설명된다. 도면에서, 참조 번호의 가장 왼쪽의 숫자는 그 참조번호가 처음 등장하는 도면을 식별한다. 상세한 설명 및 도면의 상이한 사례에서 동일한 참조 번호의 사용은 유사한 또는 동일한 항목을 나타낼 수 있다.
도 1은 텍스트 예측을 위한 적응성 언어 모델의 측면들이 구현될 수 있는 예시적인 동작 환경을 나타낸다.
도 2는 하나 이상의 실시예에 따른 예시적인 사용자 인터페이스를 나타낸다.
도 3은 하나 이상의 실시예에 따른 예시적인 텍스트 예측 시나리오를 나타낸다.
도 4a는 하나 이상의 실시예에 따른 적응성 언어 모델의 예시적인 표현을 나타낸다.
도 4b는 하나 이상의 실시예에 따른 언어 모델 사전들 간의 예시적인 관계를 나타낸다.
도 5는 하나 이상의 실시예에 따라 텍스트 예측이 제공되는 예시적인 절차를 나타낸다.
도 6은 하나 이상의 실시예에 따라 텍스트 예측을 위해 상호작용 특정 사전이 사용되는 예시적인 절차를 나타낸다.
도 7은 하나 이상의 실시예에 따라 다수의 사전으로부터의 점수 데이터의 가중치 부여된 결합을 사용하여 텍스트 예측 후보가 선택되는 예시적인 절차를 나타낸다.
도 8은 하나 이상의 실싱예에 따라 여러 언어 텍스트 예측 후보가 생성되는 예시적인 절차를 나타낸다.
도 9는 텍스트 예측을 위해 적응성 언어 모델의 하나 이상의 실시예에 채용될 수 있는 예시적인 시스템 및 장치를 나타낸다.
개요
전통적인 방식에서, 텍스트 예측은 장치에서 테스팅 시뮬레이션을 통해 개발되고 하드 코딩된 정적 언어 모델에 의존할 수 있다. 정적 언어 모델은 사용자 개인의 스타일에 적응될 수 없기 때문에, 통상적인 기법을 사용하여 생성된 텍스트 예측 후보는 종종 부적합하거나 관련이 없을 수 있는데, 이로 인해 불만스러운 예측과 불충실한 예측이 야기될 수 있다.
본 명세서에는 텍스트 예측을 위한 적응성 언어 모델이 설명된다. 하나 이상의 실시예에서, 장치와의 상호작용 동안 텍스트 문자의 입력이 검출된다. 검출된 텍스트 문자에 대응하는 텍스트 예측 후보가 적응성 언어 모델에 따라 생성된다. 적응성 언어 모델은 상이한 상호작용 시나리오들에 대해 예측 후보들을 순위를 매겨 선택하기 위해 함께 결합되는 제각기의 점수 데이터를 갖는 다수의 개별 언어 모델 사전을 포함하도록 구성될 수 있다. 사전정의된 일반 대중 사전 외에, 사전들은 개인적인 사전 및/또는 예측을 사용자의 스타일에 적응시키기 위해 사용자의 타이핑 활동을 모니터링함으로써 학습되는 상호작용 특정 사전을 포함할 수 있다. 예측들에 대해 결합된 확률은 적응성 언어 모델의 다수의 사전으로부터의 개개의 확률을 가중치를 부여하여 결합한 것으로서 계산된다. 일 실시예에서, 다수의 상이한 언어에 대응하는 사전들이 결합되어 다중 언어 사전을 생성할 수 있다.
이하의 설명에서, "동작 환경"이라는 타이틀의 섹션은 텍스트 예측을 위해 적응성 언어 모델의 하나 이상의 실시예에 따라 채용될 수 있는 예시적인 환경 및 예시적인 사용자 인터페이스를 설명한다. 이어서, "적응성 언어 모델"이라는 타이틀의 섹션은 하나 이상의 실시예에 따른 예시적인 적응성 언어 모델의 세부사항 및 절차를 설명한다. 마지막으로, "예시적인 시스템"이라는 타이틀의 섹션은 텍스트 예측을 위해 적응성 언어 모델의 하나 이상의 실시예에 채용될 수 있는 예시적인 시스템 및 장치를 설명한다.
동작 환경
도 1은 텍스트 예측을 위한 적응성 언어 모델의 실시예들이 구현될 수 있는 예시적인 시스템(100)을 나타낸다. 예시적인 시스템(100)은 소비자, 컴퓨터, 휴대용, 통신, 네비게이션, 미디어 재생, 오락, 게이밍, 태블릿 및/또는 전자 장치 중 임의의 형식을 갖는, 고정된 또는 이동가능한 장치 중 임의의 한 또는 이들의 조합일 수 있는 컴퓨팅 장치(102)를 포함한다. 예를 들어, 컴퓨팅 장치(102)는 텔레비전 클라이언트 장치(104), 컴퓨터(106) 및/또는 미디어 콘텐츠를 디스플레이하는 디스플레이 장치(110)에 연결된 게이밍 시스템(108)으로서 구현될 수 있다. 이와 달리, 컴퓨팅 장치는 휴대용 컴퓨터, 이동 전화, 또는 통합된 디스플레이(114)를 포함하는 휴대용 장치 중 임의의 유형일 수 있다. 이들 컴퓨팅 장치 중 임의의 장치는 하나 이상의 프로세서 및 메모리 장치와 같은 다양한 컴포넌트, 및 도 9에 도시되어 있는 예시적인 장치를 참조하여 더 설명되는 상이한 컴포넌트들의 임의의 조합을 이용하여 구현될 수 있다.
컴퓨팅 장치(102)의 통합 디스플레이(114), 또는 디스플레이 장치(110)는 터치 스크린 디스플레이에 디스플레이되는 사용자 인터페이스 내에서의 사용자 개시 문자, 키, 타이핑된 또는 셀렉터 입력과 같은 터치 및 제스처 입력을 감지하도록 구성된 터치 스크린 디스플레이일 수 있다. 이와 달리 또는 그에 더해, 컴퓨팅 장치의 예는 키보드, 마우스, 온스크린 키보드, 원격 제어 장치, 게임 컨트롤러, 또는 임의의 다른 유형의 사용자 개시 및/또는 사용자 선택가능 입력 장치와 같은 다양한 다른 입력 메카니즘 및 장치를 포함할 수 있다.
실시예들에서, 컴퓨팅 장치(102)는 온스크린 키보드 문자 입력, 터치 입력 및 제스처, 카메라 기반 제스처, 컨트롤러 입력 및 다른 사용자 선택 입력과 같은 다양한 상이한 종류의 입력에 관련된 입력 센서 데이터(118)를 검출 및/또는 인식하는 입력 모듈(116)을 포함할 수 있다. 입력 모듈(116)은 터치 입력 및/또는 제스처를 식별하고 이 터치 입력 및/또는 제스처에 해당하는 동작이 수행되게 하는 기능부를 나타낸다. 입력 모듈(116)은 예를 들어 사용자의 손을 통해 터치 스크린 디스플레이와의 사용작용을 통해 (예를 들어, 터치스크린 기능을 사용하여) 검출된 제스처를 인식하도록 구성될 수 있다. 이에 더해, 또는 그와 달리, 입력 모듈(116)은 사용자의 손 흔듬, 움켜지는 제스처, 팔 위치 또는 다른 정의된 제스처와 같은, 카메라에 의해 검출되는 제스처를 인식하도록 구성될 수 있다. 따라서, 터치 입력, 제스처 및 그 밖의 다른 입력도 입력 모듈(116)에 의해 인식되는 상이한 입력들 간을 구별하는데 사용될 수 있는 속성(예를 들어, 이동, 선택 지점, 위치, 속도, 배향 등)을 비롯하여 입력 센서 데이터(118)를 통해 인식될 수 있다. 이러한 구별은 입력들로부터 제스처를 식별하고 결과적으로 제스처의 식별에 기초하여 수행될 동작을 식별하는 기초로서 그 역할을 할 수 있다.
컴퓨팅 장치는 본 명세서에서 설명되는 다양한 실시예들을 구현하기 위해 하나 이상의 프로세서에 의해 실행되는 소프트웨어 애플리케이션 또는 모듈과 같은 컴퓨터 실행가능 명령어로서 구현될 수 있는 키보드 입력 모듈(120)을 포함한다. 키보드 입력 모듈(120)은 컴퓨팅 장치(102)와의 키보드 상호작용을 위해 온스크린 키보드를 제공 및 관리하는 기능부를 나타낸다. 키보드 입력 모듈(120)은 예를 들어 텍스트 입력 박스, 검색 제어, 또는 다른 텍스트 입력 제어가 활성화되는 경우 온스크린 키보드의 표현이 상이한 시점에서 선택적으로 제시되게 구성될 수 있다. 디스플레이 장치(110)와 같은 외부 디스플레이 또는 통합 디스플레이(114)와 같은 통합 디스플레이 상에 디스플레이할 온스크린 키보드가 제공될 수 있다. 또한, 하드웨어 키보드/입력 장치가 본 명세서에서 설명되는 기법에 적절한 적어도 몇몇 소프트 키를 갖는 적응성 "온스크린" 키보드를 구현할 수 있다. 예를 들어, 외부 장치로서 제공되거나 컴퓨팅 장치(102)와 통합된 하드웨어 키보드는 디스플레이 장치, 터치 키, 및/또는 본 명세서에서 기술된 텍스트 예측 키를 디스플레이하는데 채용될 수 있는 터치스크린을 포함할 수 있다. 이 경우, 키보드 입력 모듈(120)은 하드웨어 키보드/입력 장치를 위한 장치 드라이버의 컴포넌트로서 제공될 수 있다.
키보드 입력 모듈(120)은 문자 입력(124)에 대응하는 후보 단어들의 예측을 형성 및 제공하기 위해 문자 입력(124)을 처리하고 해석하는 기능부를 나타내는 텍스트 예측 엔진(122)을 포함하거나 이를 이용할 수 있다. 예를 들어, 온스크린 키보드는 텍스트 입력 박스, 패스워드 입력 박스, 검색 컨트롤, 데이터 폼(form), 메시지 쓰레드, 또는 소정의 폼, HTML 페이지, 애플리케이션 UI 또는 문자 입력(124)(예를 들어, 글자, 숫자, 및/또는 다른 영숫자 문자)의 사용자 입력을 용이하게 하기 위한 문서와 같은 사용자 인터페이스의 다른 텍스트 입력 컨트롤에 텍스트를 입력하기 위한 상이한 상호작용 시나리오에 선택적으로 노출될 수 있다.
일반적으로, 텍스트 예측 엔진(122)은 입력되는 문자 입력(124)에 가장 근접하게 일치하는 하나 이상의 가능한 후보를 알아낸다. 이러한 식으로, 텍스트 예측 엔진(122)은 사용자에 의해 입력되는 문자 입력(124)에 응답하여 확인되는 하나 이상의 예측 단어를 제공함으로써 텍스트 입력을 용이하게 할 수 있다. 예를 들어, 텍스트 예측 엔진(122)에 의해 예측되는 단어가 사용되어 입력 텍스트의 자동 교정을 수행할 수 있고, 완성하기 위해 사용자에 의해 선택되는 후보로서 하나 이상의 단어를 제시할 수 있으며, 입력 텍스트를 수정 또는 교정할 수 있고, 예측되는 단어에 대응하는 온스크린 키보드의 키들에 대한 터치 적중 영역을 자동으로 변경할 수 있다.
본 명세에서 설명되는 기술에 따르면, 텍스트 예측 엔진(122)은 전술한 바와 같이 또한 이하에서 설명되는 바와 같이 적응성 언어 모델(128)을 포함하거나 이를 이용하도록 구성될 수 있다. 일반적으로, 적응성 언어 모델(128)은 상이한 사용자가 타이핑하는 상이한 방식에 순응하기 위해 텍스트 예측 엔진(122)에 의해 행해진 예측들을 개개인에 대해 적응시키는 기능부를 나타낸다. 따라서, 적응성 언어 모델(128)은 장치의 사용자에 의해 행해진 텍스트 입력에 관련된 데이터를 모니터링 및 수집할 수 있다. 데이터의 모니터링 및 수집은 상이한 애플리케이션, 사람 (예를 들어, 연락처 또는 타겟), 텍스트 입력 메카니즘, 및 상호작용을 위한 다른 컨텍스트 요소들을 포함할 수 있는 상이한 상호작용 시나리오에서 장치 상에서 행해질 수 있다. 하나의 접근방식에서, 적응성 언어 모델(128)은 단어들의 소스로서의 다수의 언어 모델 사전과, 텍스트 입력에 기초하여 다음 단어 또는 의도한 단어를 예측하는데 사용될 수 있는 대응하는 점수 데이터(예를 들어, 조건부 확률, 단어 계수, n-gram 모델 등)를 이용하도록 설계된다. 다수의 사전으로부터의 단어 확률 및/또는 다른 점수 데이터는 다양한 방식으로 결합되어 가능한 후보 단어들을 서로에 대해 등급을 부여하고 주어진 텍스트 입력에 대해 가장 그럴 듯한 예측으로서 후보들 중 적어도 일부를 선택할 수 있다. 이하에서 보다 자세히 설명되는 바와 같이, 주어진 상호작용 시나리오에 대해 적용된 다수의 사전은 일반 대중 사전, 개인화된 사전, 및/또는 적응성 언어 모델(128)에 의해 이용될 수 있는 하나 이상의 상호작용 특정 사전으로부터 선택될 수 있다. 텍스트 예측을 위한 적응성 언어 모델에 관한 이들 및 다른 측면에 관한 세부사항은 후속하는 도면과 관련하여 알 수 있다.
도 2는 하나 이상의 실시예에 따른 텍스트 예측 예시를 일반적으로 참조번호(200)로 나타낸다. 도시된 예시는 도 1과 관련하여 설명된 컴퓨팅 장치(102) 및 다양한 컴포넌트에 의해 구현될 수 있다. 특히, 도 2는 컴퓨팅 장치(102)와의 상호작용을 용이하게 하기 위해 출력될 수 있는 예시적인 사용자 인터페이스(126)를 나타낸다. 사용자 인터페이스(126)는 예를 들어 운영 체제 또는 다른 애플리케이션 프로그램에 의해 컴퓨팅 장치에 제공될 수 있는 임의의 적절한 인터페이스를 나타낸다. 도시되어 있는 바와 같이, 사용자 인터페이스(126)는 키보드(202)를 포함하거나 또는 이를 이용하도록 구성될 수 있다. 이 예에서, 키보드(202)는 적절한 디스플레이 장치에 디스플레이되도록 렌더링 및/또는 출력될 수 있는 온스크린 키보드이다. 몇몇 경우, 키보드(202)는 애플리케이션의 일부로서 통합될 수 있고 텍스트 입력, 네비게이션 및 애플리케이션과의 다른 상호작용을 용이하게 하기 위해 대응하는 사용자 인터페이스(126) 내에 나타날 수 있다. 이에 더해, 또는 이와 달리, 키보드(202)의 표현은 텍스트 입력이 적절한 경우 사용자 인터페이스(126) 내에 키보드 입력 모듈에 의해 선택적으로 노출될 수 있다. 예를 들어, 키보드(202)는 사용자가 검색 제어, 데이터 형식 또는 텍스트 입력 박스와 같은 텍스트 입력 제어를 활성화하는 경우 선택적으로 등장할 수 있다. 언급한 바와 같이, 적절히 구성된 하드웨어 키보드도 이용되어 텍스트 예측이 결정되고 추가의 텍스트 입력을 용이하게 하기 위해 사용되게 하는 입력을 제공한다.
적어도 몇몇 실시예에서, 키보드 입력 모듈(120)은 텍스트 예측 엔진(122)으로부터 입수가능한 하나 이상의 적절한 텍스트 예측 후보의 표현이 사용자 인터페이스를 통해 제시되게 할 수 있다. 예를 들어, 텍스트 예측 바(204) 또는 다른 적절한 사용자 인터페이스 제어 또는 도구는 하나 이상의 적절한 텍스트 예측 후보의 표현을 제시하도록 구성될 수 있다. 예를 들어, 예측된 텍스트, 단어 또는 구의 표현은 예를 들어 몇 가지 예를 나열하자면 도시되어 있는 예측 바(204), 드롭 다운 박스, 슬라이드 요소, 팝업 박스, 토스트(toast) 메시지 윈도우, 또는 리스트 박스와 같은 적절한 사용자 인터페이스 도구를 사용하여 디스플레이될 수 있다. 텍스트 예측 후보는 선택된 경우 대응하는 텍스트의 입력을 야기하는 선택가능 요소(예를 들어, 키, 버튼, 접촉 영역)로서 제공될 수 있다. 사용자는 사용자의 손(206)으로부터의 터치 입력을 통해 또는 다른 방식으로 디스플레이된 후보들 중 하나를 선택하기 위해 선택가능 요소와 상호작용할 수 있다. 이에 더해, 또는 이와 달리, 텍스트 예측 엔진(122)에 의해 도출된 텍스트 예측 후보는 입력 텍스트의 자동 교정하거나, 키보드(202)의 하나 이상의 키의 기본 적중 영역을 확장시키거나, 또는 예측된 텍스트를 사용하여 텍스트 입력을 용이하게 하는데 이용될 수 있다.
도 3은 예시적인 상호작용 시나리오에 따른 텍스트 예측의 제시를 일반적으로 참조번호(300)로 나타낸다. 특히, 탐색 제공자와 상호작용하도록 구성된 사용자 인터페이스(126)는 이동 전화 장치용의 온스크린 키보드(302)를 갖는 것으로 도시되어 있다. 이 인터페이스는 탐색 입력 박스 형태의 텍스트 입력 제어(304)를 포함한다. 도시되어 있는 예에서, 사용자는 부분적인 구에 대응하는 텍스트 문자 "Go H"를 입력하기 위해 텍스트 입력 제어와 상호작용하였다. 이 텍스트의 입력에 응답하여, 텍스트 예측 엔진(122)은 하나 이상의 예측 후보를 결정하도록 동작할 수 있다. 이러한 텍스트 예측(306)이 행해진 경우, 키보드 입력 모듈(120)은 하나 이상의 예측 후보가 이용가능함을 알아내고 그 후보를 사용자 인터페이스(126)를 통해 제시하거나 이와 달리 그 예측 후보를 이용할 수 있다.
제한이 아닌 예로서, 도 3은 키보드의 상단에 나타내는 텍스트 예측 바(308)에 출력되는, 입력 텍스트 "Go H"에 대한 다양한 텍스트 예측 옵션을 나타낸다. 특히, 옵션 "Home", "Hokies", "Hotel", "Hawaii" 및 "Huskies"가 입력 텍스트의 가능한 완성 단어로서 도시된다. 이러한 시나리오에서, 옵션은 텍스트 예측 바(308)를 통해 제시되는 대응하는 예측 후보의 삽입을 야기하도록 동작가능한 사용자 인터페이스의 선택가능 요소로서 구성될 수 있다. 따라서, 사용자가 터치 등을 통해 "Hokies" 옵션을 선택하는 경우, 선택된 옵션에 따라 탐색 입력 박스 내의 입력 텍스트 "Go H"는 "Go Hokies"로 자동으로 완성된다.
예시적인 환경을 설명하였으며, 이제는 다양한 측면을 더 설명하기 위해 몇몇 적응성 언어 모델 예시에 대해 설명한다.
적응성 언어 모델 세부사항
본 섹션은 도 4a 및 4b의 예시적인 표현 및 도 5 내지 8의 예시적인 절차를 참조하여 텍스트 예측을 위해 적응성 언어 모델을 이용하는 기법에 대해 자세히 설명한다. 이하의 설명에서, 다양한 측면이 구현될 수 있는 도 1의 예시적인 동작 환경을 참조한다. 이하에서 설명되는 각각의 절차에 대한 측면들은 하드웨어, 펌웨어, 또는 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 절차들은 하나 이상의 장치에 의해 수행되는 동작들을 지정하는 블록들의 집합으로 도시되어 있고 또한 절차들은 각 블록에 의해 동작들을 수행하는 것으로 도시되어 있는 순서에 반드시 국한될 필요는 없다. 적어도 일부 실시예에서, 절차들은 텍스트 예측 엔진(122) 또는 그에 필적하는 기능을 포함하거나 이를 이용하는 도 1의 예시적인 컴퓨팅 장치(102)와 같은 적절히 구성된 컴퓨팅 장치에 의해 수행될 수 있다.
도 4a는 하나 이상의 실시예에 따른 적응성 언어 모델의 표현을 일반적으로 참조번호(400)로 나타낸다. 도시되어 있는 바와 같이, 적응성 언어 모델(128)은 텍스트 예측을 하는데 의존하는 다수의 개별적 언어 모델 사전을 포함하거나 이를 이용할 수 있다. 특히, 도 4a에서의 적응성 언어 모델(128)은 일반 대중 사전(402), 개인화된 사전(404) 및 상호작용 특정 사전(406)을 포함하는 것으로 도시되어 있다. 적응성 언어 모델(128)은 텍스트 예측을 개별 사용자 및 상호작용에 적응시키기 위해 텍스트 예측 엔진(122)에 의해 구현될 수 있다. 이를 위해, 적응성 언어 모델(128)은 사용자가 어떻게 타이핑하는지를 모니터링하고, 사용자가 "온 더 플라이(on the fly)"로 동적으로 타이핑함에 따라 사용자의 타이핑의 특성을 학습하고, 다수의 사전을 사용하여 입력 텍스트 문자에 기초하여 조건부 확률을 생성하도록 구성될 수 있다.
특히, 적응성 언어 모델은 사용자에 의해 행해진 텍스트 입력과 함과 검출된 사용자 피드백의 하나 이상의 유형에 기초하여 사용자 특정 타이핑 스타일을 학습하도록 구성될 수 있다. 사용자 피드백은 처리하여 사용자의 개인화된 사전에 추가할 텍스트 입력을 결정하는 수동적인 또는 명백한 행위를 지칭할 수 있다. 예를 들어, 시스템은 텍스트 입력 박스, 편집 제어 또는 다른 UI 요소에 대한 초점이 벗어난 경우 적응시킬 텍스트 입력을 처리 및 파싱할 수 있다. 다시 말해, 시스템은 용어들을 학습하기 전에 사용자에 의한 텍스트 입력 또는 텍스트에 대한 작업의 완료를 대기할 수 있다. 사용자는 메시지를 전송하는 전송 동작, 상태 업데이트 또는 사진을 포스팅하는 포스트 동작, 스위칭 애플리케이션, 제스처, 저장 동작, 또는 입력되는 텍스트에 대한 몇몇 다른 형식의 작업과 같이 명시적인 선택을 통해 텍스트 입력에 대한 작업을 수행할 수 있다. 단어의 명시적인 교정 또는 사용자의 어휘집에 추가한다는 선택은 사용자의 개인화된 사전을 언제 및 어떻게 적응시킬지를 결정하는데 이용되는 사용자 피드백으로서 해석될 수 있다. 유사하게, 사용자가 단어에 대해 예측 바 또는 "온-디맨드" 제공을 통해 예측 후보를 선택한 경우, 선택된 단어는 추가될 수 있고 및/또는 단어가 선택된 횟수에 일부 기초하여 단어 확률에 가중치가 부여될 수 있다. 또한, 단어를 학습하는 것에 더해, 폰트 타입, 대문자 사용, 이모티콘, 텍스트 효과, 및 텍스트 입력에 대한 다른 특성에 대한 사용자 선호가 학습될 수 있다. 당연히, 전술한 예를 포함하나 그에 국한되지 않는 상이한 타입의 사용자 피드백의 조합이 이용되어 시스템이 사용자의 스타일 및 습관을 학습하는 방식을 도출할 수 있다.
언어 모델 사전은 일반적으로 가능한 단어 후보들을 서로에 대해 등급을 매기고 주어진 텍스트 입력에 대해 후보들 중 적어도 일부를 가장 적합한 예측인 것으로 선택하는데 사용될 수 있는 확률 및/또는 다른 적절한 점수 데이터(예를 들어, 조건부 확률, 점수, 단어 계수, n-gram 모델 데이터, 빈도 데이터 등)에 단어들을 연관시키도록 구성된다. 적응성 언어 모델(128)은 대응하는 사전을 생성 및 유지하기 위해 사용자의 타이핑 행위 및/또는 상호작용 특정 기본 행위를 추적할 수 있다. 사전에 포함된 단어 및 구는 또한 시스템에 의해 수집된 단어 및 구가 사용되는 특정 상호작용 시나리오(예를 들어, 컨텍스트)를 나타내는 다양한 사용 파라미터와 연관될 수 있다. 사용 파라미터는 상이한 상호작용 시나리오를 정의하고, 다양한 대응 언어 모델 사전을 생성하도록 데이터를 필터링 또는 조직화하는데 사용될 수 있다. 개별 사전들의 하나 이상의 상이한 조합이 그에 따라 상이한 상호작용 시나리오에 적용될 수 있다.
도 4b는 하나 이상의 실시예에 따라 언어 모델 사전들 간의 예시적인 관계의 표현을 일반적으로 참조번호(408)로 나타낸다. 이 예에서, 일반 대중 사전(402)은 사전정의될 수 있고 컴퓨팅 장치(102)에 로딩될 수 있는 일반 대중에게 적용가능한 사전을 나타낸다. 일반 대중 사전(402)은 다수의 사용자의 전체적인 타이핑 동작에 기초하여 단어 사용에 대한 확률 및/또는 점수 데이터를 반영한다. 일 실시예에서, 일반 대중 사전(402)은 사용자의 타이핑에 관련된 많은 양의 이력 트레이닝 데이터(historical training data)를 사용하여 개발자에 의해 작성되고 장치에 사전 로딩될 수 있다. 일반 대중 사전(402)은 사용자 및 장치에 걸쳐 예측을 위한 단어 소스로서 이용되도록 구성될 수 있다. 다시 말해, 일반 대중 사전(402)은 전체적으로 사용자들의 집단 또는 공동체의 공통된 사용을 나타내고 특정 개인에 맞춤화되지는 않는다. 일반 대중 사전(402)은 선택된 언어, 예를 들어 영어 사용자들의 공통 사용을 위한 "공지된" 단어들의 전체 집합을 나타낼 수 있다.
개인화된 사전(404)은 개개인의 실제 사용에 기초하여 도출된다. 개인화된 사전(404)은 적응성 언어 모델(128)이 학습 및 추적하는, 사용자가 장치와의 상호작용을 통해 타이핑하는 단어들을 반영한다. 일반 대중 사전에 있는 기존의 단어들은 사용자의 어휘집의 일부로서 개인화된 사전에 할당될 수 있다. 일반 대중 사전에 포함되어 있지 않은 단어들은 개인화된 사전(404)에 새로운 단어로서 자동으로 추가될 수 있다. 따라서, 개인화된 사전은 도 4b에 나타낸 바와 같이 일반 대중 사전(402)의 부분집합을 포함할 수 있다. 개인화된 사전(404)은 개개인이 실제로 사용하는 (예를 들어, 사용자 특정 사용) 단어 및 구에 기초하여 각 개인에게 맞춤화되는 조건부 사용 확률을 나타낼 수 있다.
상호작용 특정 사전(406)은 대응하는 상호작용 시나리오에 대한 단어들의 상호작용 특정 사용을 나타낸다. 예를 들어, 사람이 사용하는 단어 및 이들이 타이핑하는 방식은 상이한 환경에서 달라진다. 언급한 바와 같이, 사용 파라미터는 상이한 상호작용 시나리오를 정의하고 상이한 상호작용 시나리오들 간을 구별하는데 사용될 수 있다. 또한, 적응성 언어 모델(128)은 다수의 상호작용 시나리오에 대해 대응하는 상호작용 특정 언어 모델 사전을 유지 및 관리하도록 구성될 수 있다. 각각의 상호작용 특정 사전(406)은 도 4b에서 단어, 구, 및 컴퓨팅 장치와의 상호작용에 대한 제각기의 컨텍스트에 대응하는 점수 데이터를 갖는 것으로 도시되어 있는 개인화된 사전(404)의 부분집합을 나타낸다.
특히, 다양한 상호작용 시나리오는 사용자의 타이핑 동작과 연관될 수 있는 대응하는 사용 파라미터를 사용하여 정의될 수 있다. 예를 들어, 상호작용 동안 입력된 단어/구와 연관된 사용 파라미터는 몇 가지 예를 들면 애플리케이션 아이덴티티, 애플리케이션의 유형, 사람(예를 들어, 연락처 이름 또는 타겟 수신자 ID), 하루 중 소정의 시간, 날짜, 지리적 위치 또는 장소, 일 년 중 소정의 시간 또는 계절, 설정, 사람의 나이, 선호 아이템, 구매 이력, 입력 텍스트와 연관된 관련 주제, 및/또는 사용되는 특정 언어를 포함하나 이에 국한되지 않는 상호작용의 하나 이상의 특징을 나타낼 수 있다. 상호작용의 컨텍스트를 설명하는 이들 예시적인 사용 파라미터 및 그 밖의 다른 사용 파라미터 중 하나 이상에 대응하는 상호작용 특정 사전(408)이 형성될 수 있다.
제한이 아닌 예로서, 도 4b는 특정 애플리케이션(메시지, 생산성, 및 스포츠 애플리케이션), 특정 위치(집, 직장), 및 특정 사람(엄마, 배우자)에 대응하는 예시적인 상호작용 특정 사전을 나타낸다. 사용자가 통신하는 방식은 이들 상이한 시나리오 각각에 대해 달라질 수 있고 적응성 언어 모델(128)은 예측을 그에 따라 적응시키기 위해 상이한 상호작용의 차이점을 계속 추적한다. 사용자가 상이한 설정에 걸쳐 동일한 단어 및 구의 일부를 사용할 수 있기 때문에 도 4b의 예시적인 사전들 간의 몇몇 오버랩도 표현된다. 적응성 언어 모델 기법의 이들 및 다른 측면에 대한 추가적인 세부사항은 이하의 예시적인 절차와 관련하여 설명된다.
도 5는 텍스트 예측이 하나 이상의 실시예에 따라 제공되는 절차(500)를 나타낸다. 장치와의 상호작용 동안 텍스트 문자의 입력이 검출된다(블록 502). 예를 들어, 텍스트는 온스크린 키보드, 하드웨어 키보드, 음성 명령, 또는 다른 입력 메카니즘을 통해 입력될 수 있다. 이동 전화 또는 다른 컴퓨팅 장치(102)는 입력을 검출 및 처리하여 장치를 통해 출력된 사용자 인터페이스 내에 입력 텍스트를 표현하도록 구성될 수 있다.
검출된 텍스트 문자에 대응하는 하나 이상의 텍스트 예측 후보가 적응성 언어 모델에 따라 생성되고(블록 504) 하나 이상의 텍스트 예측 후보가 이용되어 장치와의 상호작용 동안 추가의 텍스트 입력을 이용하게 할 수 있다(블록 506). 예측은 전술한 또는 후술되는 다양한 상이한 기법을 사용하여 임의의 적절한 방식으로 생성될 수 있다. 예를 들어, 컴퓨팅 장치는 본 명세서에서 기술한 바와 같이 적응성 언어 모델(128)을 구현하도록 구성된 텍스트 예측 엔진(122)을 포함할 수 있다.
동작시, 적응성 언어 모델(128)은 특정 텍스트 문자에 적용되어, 하나 이상의 개별 사전을 사용하여 및/또는 이들을 조합하여 대응하는 예측을 결정할 수 있다. 적응성 언어 모델(128)은 예를 들어 도 4b와 관련하여 표현 및 설명된 예시적인 사전과 같이, 상이한 시간 및 상이한 시나리오에서 적용될 수 있는 상이한 레벨의 특별함(예를 들어, 일반 대중, 사용자, 상호작용)에서 언어 모델 사전들의 계층을 구성한다.
도 4b에 도시되어 있는 언어 모델 사전들의 계층은 사용자가 타이핑하는 단어 및 사용자에 의해 상이한 단어 및 스타일이 사용되는 컨텍스트를 모니터링 및 분석함으로써 시간에 걸쳐 각각의 개별 사용자에 대해 수립될 수 있다. 초기에, 사용자의 개별 스타일에 관한 충분한 데이터가 수집되기 전에 텍스트 예측을 위해 의존하는 일반 대중 사전(402)이 장치에 공급된다. 사용자가 다양한 방식으로 장치와 상호작용하기 시작하는 경우, 텍스트 예측 엔진(122)은 사용자의 개별 스타일을 학습하기 시작한다. 따라서, 사용자의 실제 사용 및 스타일을 반영하는 개인화된 사전(404)이 구성된다. 또한, 사용자의 개별 스타일과 관련된 데이터와 연관된 사용 파라미터는 이 사용 파라미터에 의해 정의된 특정 상호작용 시나리오에 관련된 하나 이상의 상호작용 특정 사전(406)을 생성하는데 사용될 수 있다. 사용자의 개별 스타일에 관련된 보다 많은 데이터가 이용가능해짐에 따라, 언어 모델 사전의 계층은 사용자의 스타일에 점점 특정적이게 되고 맞춤화될 수 있다. 언어 모델 사전의 계층 내에 있는 사전들 중 하나 이상이 적용되어 장치와의 후속 상호작용을 위한 텍스트 예측을 생성할 수 있다.
예측을 도출하기 위해, 적응성 언어 모델(128)은 상이한 상호작용 시나리오에 대해 계층 내의 사전들의 상이한 조합을 선택적으로 사용하여 입력 텍스트에 기초하여 후보들을 식별하고 그 후보들을 서로에 대해 등급을 부여하도록 구성된다. 일반적으로, 후보들에 대해 등급을 부여하는 점수 또는 값은 주어진 상호작용과 연관된 사전으로부터의 기여분을 지정된 방식으로 수학적으로 결합함으로써 계산될 수 있다. 다수의 사전으로부터의 기여분은 다양한 방식으로 결합될 수 있다. 하나 이상의 실시예에서, 적응성 언어 모델(128)은 다수의 사전에 포함된 단어들과 연관된 점수 데이터의 가중치 부여된 결합을 계산하는 등급 부여 또는 점수 부여 알고리즘을 사용하도록 구성된다. 예측 후보를 생성 및 사용하기 위한 추가의 예시 및 세부사항은 이하에서 설명된다.
도 6은 하나 이상의 실시예에 따라 텍스트 예측을 위해 상호작용 특정 사전이 사용되는 절차(600)를 나타낸다. 장치와의 상호작용 시나리오에 대한 텍스트 입력과 연관된 상호작용 특정 사전이 식별된다(블록 602). 이것은 임의의 적절한 방식으로 행해질 수 있다. 하나의 접근방식에서, 전술한 바와 같은 사용 파라미터에 따라 상호작용 시나리오가 정의된다. 텍스트 예측 엔진(122)은 사용 파라미터에 기초하여 현재의 상호작용을 정의된 상호작용 시나리오와 일치하는 것으로 인식하도록 구성될 수 있다. 이를 위해, 텍스트 예측 엔진(122)은 애플리케이션에 질의하고, 운영 체제와 상호작용하고, 메시지 콘텐츠 또는 문서 콘텐츠를 파싱하고, 메타데이터를 조사하는 등을 통해 현재 상호작용과 관련된 맥락 정보를 수집 또는 획득할 수 있다. 텍스트 예측 엔진(122)은 수집된 정보에 기초하여 상호작용에 대한 하나 이상의 사용 파라미터를 설정할 수 있다. 그런 다음, 텍스트 예측 엔진(122)은 적응성 언어 모델(128)을 호출하여 설정된 사용 파라미터에 일치하는 상호작용 시나리오에 대해 사용할 적절한 상호작용 특정 사전을 식별할 수 있다.
식별된 상호작용 특정 사전은 개별적으로 또는 하나 이상의 다른 사전과 결합하여 적용되어 텍스트 예측을 생성한다. 특히, 하나 이상의 텍스트 예측을 결정하기 위해 적응성 언어 모델에 의해 할당된 확률의 구성요소로서 상호작용 특정 사전으로부터의 단어 확률을 사용하여 상호작용 시나리오에 대한 하나 이상의 텍스트 예측이 계산된다(블록 604). 예를 들어, 언어 모델 사전은 단어 사용에 대한 조건부 확률을 나타내는 점수 데이터를 포함할 수 있다. 조건부 확률은 예측에 이용될 수 있는 시퀀스 내에서의 다수의 단어 "n"에 대한 확률을 계산하는 n-gram 단어 모델에 기초할 수 있다. 예를 들어, tri-gram (n=3) 또는 bi-gram(n=2) 단어 모델이 구현될 수 있지만, 상위 차수를 갖는 모델들도 또한 고려된다.
일 접근방식에서, 상호작용 특정 사전으로부터의 조건부 확률은 예측 후보에 등급을 부여하는데 사용되는 점수에 기여하는 하나의 구성요소로서 사용된다. 이 예에서, 점수는 상호작용 특정 사전에 적어도 일부 기초하는 결합된 확률로서 구성될 수 있다. 일 실시예에서, 점수에 기여하는 또 다른 구성요소로서 일반 대중 사전으로부터의 조건부 확률이 이용된다. 이에 더해, 또는 이와 달리, 점수에 기여하는 구성요소로서 개인화된 사전으로부터의 조건부 확률이 이용될 수 있다. 보다 일반적으로, 점수는 다수의 상호작용 특정 사전을 포함하는 결합을 비롯하여, 적응성 언어 모델(128)에 의해 제공된 개별 사전들 중 임의의 둘 이상으로부터의 확률 및/또는 다른 적절한 점수 데이터의 결합을 반영할 수 있다.
언급한 바와 같이, 다양한 상이한 상호작용 시나리오 및 대응하는 상호작용 특정 사전이 고려된다. 각 상호작용 시나리오는 상호작용의 컨텍스추얼 특징을 나타내는 하나 이상의 사용 파라미터에 관련될 수 있다. 상호작용 시나리오는 일반적으로 사용자의 타이핑 및 행동이 변경될 수 있는 컨텍스추얼 특징에 따라 정의된다. 본 명세서에서 설명된 적응성 언어 모델 기법의 기본적인 개념은 상이한 시나리오에서는 사용자가 다른 단어를 타이핑하고 타이핑 스타일이 변경된다는 것이다. 이러한 개념을 더 설명하기 위해, 몇 가지 예가 이어서 설명된다.
사용자는 사용되는 애플리케이션 또는 애플리케이션의 유형에 기초하여 다르게 타이핑할 수 있다. 따라서, 상호작용 시나리오는 애플리케이션별로 정의될 수 있고 개별 애플리케이션에 대해 대응하는 사전이 설정될 수 있다. 예를 들어, 장치의 사용자에 의해 이용되는 상이한 스타일, 단어 및 용어를 반영하는 상이한 사전은 몇 가지 예를 들자면, 텍스트 메시징 애플리케이션, 브라우저, 소셜 네트워킹 애플리케이션, 워드 프로세서, 전화 애플리케이션 및 웹 콘텐츠 애플리케이션과 연관될 수 있다. 따라서, 현재 애플리케이션에 따라 상이한 텍스트 예측이 생성될 수 있다. 예를 들어, 텍스트 메시징 애플리케이션에서 "lo"의 입력은 "lol"을 생성할 수 있는 반면, 워드 프로세서의 경우 적용되는 다른 사전에 기초하면 "loud"가 예측될 수 있다. 애플리케이션 특정 사전을 구현하기 위해, 텍스트 예측 엔진(122)은 애플리케이션 식별자, 이름, 또는 다른 구별 파라미터를 사용하여 애플리케이션별로 타이핑 활동을 수집하도록 구성될 수 있다.
이어 더해, 또는 이와 달리, 활동을 추적하여 애플리케이션의 카테고리에 대응하는 사전을 생성하기 위해 애플리케이션 유형 데이터가 사용될 수 있다. 이 경우, 특정 사전이 대응하는 애플리케이션 유형과 연관된 애플리케이션들의 그룹에 적용될 수 있다. 상이한 애플리케이션에 대해 타이핑 스타일이 변경될 수 있을 지라도, 예를 들어 상이한 공급자로부터의 2개의 상이한 소셜 네트워킹 애플리케이션 또는 브라우저에 대해 동일한 유형의 애플리케이션을 사용하는 경우 사용자의 타이핑 행위 및 특징은 유사할 수 있다. 텍스트 예측에 대해 유형에 따라 애플리케이션을 그룹화하게 되면 유사한 애플리케이션에 대해 존재할 수 있는 타이핑 스타일 유사성을 이용할 수 있다. 애플리케이션 유형에 기초하여 사전을 설정하는데 사용될 수 있는 몇몇 예시적인 애플리케이션 유형은 생산성, 비즈니스, 메시징, 소셜 네트워킹, 채팅, 게임, 웹 콘텐츠, 미디어 등을 포함하나 이에 국한되지는 않는다.
사람별로 상호작용 시나리오가 또한 정의될 수 있고 대응하는 사람 특정 사전이 사용자가 상호작용하는 개개의 사람마다 설정될 수 있다. 하나의 접근방식에서, 사용자의 연락처 정보가 특정 사람과의 상호작용을 인식하는데 이용될 수 있고 또한 그 연락처 정보에 의해 표시된 개별 연락처와 타이핑 활동을 연관시키는데 이용될 수 있다. 텍스트 예측 엔진(122)은 주소 필드, 메시지 콘텐츠, 메타데이터, 또는 다른 적절한 데이터를 파싱하여 상호작용과 연관된 연락처를 인식하도록 구성될 수 있다. 상호작용을 위한 연락처 또는 사람 대상이 인식되는 경우, 그에 대응하는 사람 특정 사전이 발견되고 적용되어 상호작용을 위한 텍스트 예측을 행할 수 있다. 연락처가 인식되는 상이한 상호작용을 위한 장치에 걸쳐 연락처에 대응하는 사람 특정 사전이 이용될 수 있다. 이러한 식으로, 사용자의 하나 이상의 연락처에 대해 사람 특정 사전이 설정될 수 있다. 이에 더해, 또는 이와 달리, 사용자의 연락처와 연관된 연락처 그룹 또는 카테고리가 사용되어 사람들의 그룹에 기초하여 사전을 설정할 수 있다. 예를 들어, 사용자의 연락처들은 몇 가지 예를 들면, 가족, 친구, 직장, 북 클럽, 및 축구 팀과 같은 카테고리로 그룹화되거나, 그러한 카테고리와 연관될 수 있다. 사용자가 상호작용하는 사람들의 이러한 그룹핑은 본 명세서에서 설명한 방식으로 텍스트 예측을 위해 이용될 수 있는 연락처 그룹 특정 사전을 형성하는데 이용될 수 있다. 연락처 그룹은 사용자 및/또는 장치와 연관된 임의의 적절한 연락처에 대응할 수 있다. 이것은 예를 들어 웹 기반 서비스 및/또는 공급자(예를 들어, 소셜 네트워크 서비스, 메시징 서비스 등)에 대한 사용자 계정과 연관된 연락처 및 그룹, 장치에 대한 로컬 주소록, 이동 전화 연락처, 애플리케이션 특정 연락처 및 그룹, 및/또는 이들의 조합을 포함할 수 있다.
위치 특정 사전도 고려된다. 예를 들어, 장치에 대해 이용가능한 위치 데이터는 또한 타이핑 활동과 연관될 수 있고 특정 위치에 대응하는 사전을 설정하는데 사용될 수 있다. 위치는 지리적 위치(예를 들어, 도시, 주, 나라) 및/또는 직장, 집 또는 학교와 같은 설정에 대응할 수 있다. 컴퓨팅 장치는 자신의 위치를 판정하여 위치 정보를 나타내는 데이터를 다양한 방식으로 애플리케이션에 제공하도록 구성될 수 있다. 예를 들어, 장치 위치는 장치와 연관된 GPS를 통해, 셀룰러 또는 와이파이 삼각측량을 통해, 네트워크 컴포넌트로부터의 위치 비콘을 디코딩함으로써, 인터넷 프로토콜 어드레스에 기초하여, 또는 다른 방식으로 판정될 수 있다. 일 접근방식으로, 사용자는 설정 이름(예를 들어, 직장, 집 또는 학교)을 하나 이상의 위치에 할당하여 위치 기반 서비스를 용이하게 할 수 있다. 빈번히 검출되고 및/또는 장치/사용자가 많은 시간을 보내는 위치에 대해 설정 이름을 할당하기 위한 프롬프트가 제시될 수 있다. 위치 특정 사전은 사용자에 의해 지정된 또는 자동으로 검출된 위치 설정에 대해 생성될 수 있다. 위치 특정 사전은 또한 도시, 주 등과 같은 알려진 위치에 대해서도 생성될 수 있다.
상호작용 특정 사전의 추가적인 예는 상이한 상호작용에서 인식될 수 있는 토픽 키워드(예를 들어, 수퍼볼, 하와이, 3월의 광란 등)에 따라 설정된 토픽 기반 사전을 포함한다. 다양한 타이밍 기반 사전도 고려된다. 타이밍 기반 사전은 하루 중 시간(낮/밤), 일 년 중 시간(봄/여름, 가을, 겨울), 달, 휴가 시즌 등에 따라 설정된 사전들을 포함할 수 있으나 이에 국한되지 않는다. 다수의 언어 특정 사전(예를 들어, 영어, 스페인어, 일본어 등)도 이용되어 다중 언어 텍스트 예측을 생성할 수 있다. 다중 언어 텍스트 예측 기법은 이하에서 도 8을 참조하여 설명된다.
몇몇 상호작용 특정 사전은 방금 설명한 상호작용 시나리오 예들의 조합에 애응할 수 있음을 주목한다. 예를 들어, 사전은 애플리케이션과 사람의 결합에 대해, 예를 들어 엄마와 메시징, 엄마와 메일, 형제와 이메일, 및 직장동료와 이메일에 대해 설정될 수 있다. 다양한 다른 결합, 예를 들어 사람과 위치의 결합, 애플리케이션과 타이밍의 결합, 애플리케이션과 위치의 결합, 애플리케이션과 사람 및 위치의 결합 등이 이용될 수 있다.
도 7은 하나 이상의 실시예에 따라 다수의 사전으로부터 점수 데이터의 가중치 부여된 결합을 사용하여 텍스트 예측 후보가 선택되는 절차(700)를 나타낸다. 하나 이상의 검출된 텍스트 문자에 기초하여 텍스트의 예측을 위한 단어들의 소스로서 사용할 다수의 사전이 식별된다(블록 702). 예를 들어, 주어진 상호작용에 대해 적용할 사전은 앞서 설명한 바와 같이 적응성 언어 모델(128)에 따라 선택된다. 예를 들어, 텍스트 예측 엔진(122)은 검출된 텍스트 문자에 일치하는 하나 이상의 사용 파라미터에 따라 사전을 식별할 수 있다. 입수가능한 경우, 사용자 특정 및/또는 상호작용 특정 사전이 텍스트 예측을 생성하는 구성요소로서 텍스트 예측 엔진(122)에 의해 식별 및 사용될 수 있다. 입수가능하지 않은 경우, 텍스트 예측 엔진(122)은 자연히 일반 대중 사전(402)을 사용할 수 있다.
단어들은 다수의 사전에 포함된 단어들과 연관된 점수 데이터의 가중치 부여된 결합을 사용하여, 검출된 텍스트 문자에 대해 예측 후보로서 서로에 대해 등급이 부여될 수 있다(블록 704). 검출된 텍스트 문자에 대한 예측 후보로서의 등급에 따라 상위 등급을 갖는 하나 이상의 단어가 선택된다(블록 706). 후보의 등급 부여 및 선택은 다양한 방식으로 행해질 수 있다. 일반적으로, 예측 후보에 등급을 부여하는 점수가 다수의 사전으로부터의 기여분을 결합함으로써 계산될 수 있다. 예를 들어, 텍스트 예측 엔진(122) 및 적응성 언어 모델(128)은 점수 데이터의 가중치 부여된 결합을 계산하는 등급 또는 점수 부여 알고리즘을 구현하도록 구성될 수 있다. 가중치 부여된 결합은 일반 대중 사전 및 적어도 하나의 다른 사전으로부터 예측을 보간하도록 설계될 수 있다. 다른 사전은 개인화된 사전, 상호작용 특정 사전, 또는 심지어 다른 언어에 대한 또 다른 일반 대중 사전일 수 있다.
언급한 바와 같이, 언어 모델 사전은 텍스트 예측을 위해 확률 및/또는 다른 적절한 점수 데이터와 연관된 단어를 포함한다. 관련 텍스트 예측 후보 리스트가 검출된 텍스트 문자에 대한 잠재적 예측 후보로서 식별된 단어에 대해 다수의 사전으로부터 도출된 개개의 점수 또는 확률의 보간에 의해 다수의 사전으로부터 생성될 수 있다. 따라서, 둘 이상의 언어 모델 사전에 대한 개개의 점수 요소들의 가중치 부여된 평균으로서 결합된 또는 조정된 점수가 계산될 수 있다. 결합된 점수는 후보들을 서로에 대해 등급을 부여하는데 사용될 수 있다. 지정된 개수의 상위 후보가 그 등급에 따라 선택될 수 있다. 예를 들어, 텍스트 예측 후보를 사용자에게 제시하기 위해 사용할 상위 등급의 5개 또는 10개의 후보 리스트가 생성될 수 있다. 자동 교정을 위해, 최상위 점수를 갖는 가장 그럴듯한 후보가 선택 및 적용되어 자동 교정을 수행할 수 있다.
일반적으로, 본 명세서에서 설명한 언어 모델 사전의 보간은 아래와 같은 공식으로 표현될 수 있다.
Figure pct00001
여기서, Sc는 제각기의 보간 가중치 W1, W2,...Wn가 부여된 각 개별 사전으로부터의 점수 S1,S2,...Sn을 합산함으로써 계산된 결합된 점수이다. 위의 일반 공식은 다양한 종류의 점수 데이터를 사용하여 둘 이상의 사전으로부터 보간하는데 적용될 수 있다. 제한이 아닌 예로서, 점수 데이터는 확률, 단어 계수, 빈도 등 중 하나 이상을 포함할 수 있다. 개개의 구성요소는 제각기의 사전으로부터 도출될 수 있다. 사전정의된 또는 동적으로 생성되는 가중치는 개개의 구성요소에 할당될 수 있다. 그런 다음, 할당된 가중치에 따라 각각 가중치가 부여된 개개의 구성요소를 합산함으로써 결합된 점수가 계산된다.
일 실시예에서, 두 개의 사전으로부터의 확률을 결합하기 위해 선형 보간이 이용될 수 있다. 두 소스로부터의 확률의 보간은 아래와 같은 공식으로 표현될 수 있다.
Figure pct00002
여기서, Pc는 제각기의 보간 가중치 W1, W2가 부여된 각각의 개별 사전으로부터의 확률 P1, P2을 합산함으로써 계산된 결합된 확률이다. 선형 보간 접근방식은 위의 일반적인 공식에 따라 세 개 이상의 소스로 확장될 수 있다.
공식의 구성요소에 할당된 보간 가중치는 다양한 방식으로 계산될 수 있다. 예를 들어, 가중치는 경험적으로 결정될 수 있고 점수 알고리즘을 위한 개별 가중 파라미터로서 할당될 수 있다. 몇몇 실시예에서, 가중 파라미터는 상이한 사전의 영향을 변경하도록, 적응성 언어 모델을 선택적으로 턴 온/오프하도록, 또는 계산값을 조정하도록 사용자에 의해 구성가능하다.
적어도 몇몇 실시예에서, 보간 가중치들은 서로에 대해 의존적일 수 있다. 예를 들어, W2는 1-W1으로 설정될 수 있고, W1은 0과 1 사이의 값이다. 위의 예에서, 이것은 아래와 같은 공식을 표현한다.
Figure pct00003
이에 더해, 또는 이와 달리, 가중 파라미터는 보간 함수에 따라 동적으로 조정되도록 구성될 수 있다. 보간 함수는 하나 이상의 가중 인자에 기초하여 점수의 상이한 구성요소의 상대적 기여분을 변경하기 위해 가중치를 자동으로 조정하도록 설계된다. 앞선 방정식에서, 이것은 W1의 값을 동적으로 설정함으로서 행해질 수 있는데, 이는 P1과 P2 모두와 연관된 가중치를 변경시킨다.
예를 들어, 보간 함수는 전체 이용가능한 사용자 데이터의 양(예를 들어, 전체 단어 계수), 개별 단어의 계수 또는 빈도, 얼마나 최근에 단어가 사용되었는지 등과 같은 인자를 고려하도록 구성될 수 있다. 일반적으로, 가중치는 사용자에 대한 보다 많은 데이터가 수집됨에 따라 개별 사용자의 어휘집의 영향력을 증가시키고 또한 보다 빈번히 사용되는 개별 단어의 영향력을 증가시키도록 조정될 수 있다. 또한, 보다 최근에 사용된 단어에 대한 가중치는 그 최근 단어의 영향력을 증가시키도록 조정될 수 있다. 보간 함수는 장치에 걸쳐 및/또는 특정 상호작용에 대해 단어 계수 및 사용자의 타이핑 활동과 연관된 타이밍 데이터를 총괄적으로 이용하여 그에 따라 가중치를 조정할 수 있다. 따라서, 상호작용 시나리오 및 선택된 대응하는 사전에 따라 상이한 가중치가 이용될 수 있다.
따라서, 가중치는 수집된 사용자 데이터의 양에 대한 전체 단어 계수 또는 다른 측정값, 후보 단어에 대한 개별 단어 계수, 및/또는 얼마나 최근에 후보 단어가 사용되었는지 중 하나 이상에 기초하여 달라질 수 있다. 접근방식에서, 보간 함수는 최소 값과 최대 값 사이, 예를 들어 0과 0.5 사이에서 W1의 값을 조정하도록 구성될 수 있다. 값은 주어진 기울기를 갖는 선택된 1차 방정식에 따라 최소값과 최대 값 사이에서 달라질 수 있다.
보간 함수는 또한 개별 단어 계수에 대한 임계값을 설정할 수 있다. 임계값 아래에서는 W1의 값은 0으로 설정될 수 있다. 이것은 단어가 텍스트 예측에 고려되기 전에 그 단어의 최소 개수의 사례(예를 들어, 2,3,10 등)가 발생하게 한다. 임계값을 사용하게 되면 잘못 쓴 및 잘못 취한 단어가 사용자 특정 어휘집의 일부로서 즉시 사용되는 것을 방지할 수 있다.
최신성(recency)을 고려하기 위해, W1의 값은 단어가 얼마나 최근에 사용되었는지에 의존하는 승수(multiplier)에 의해 조정될 수 있다. 이 승수의 값은 단어의 가장 최근의 등장 또는 지정된 횟수의 가장 최근의 등장(예를 들어, 최근 10회 또는 최근 5회)에 대한 롤링 평균 값에 기초할 수 있다. 예를 들어, 특정 단어가 마지막으로 사용된 것이 몇 일 또는 몇 달 전인지에 기초할 수 있다. 승수는 보다 최근에 입력된 단어에 대한 확률/점수의 기여도를 증가시킬 수 있다. 예를 들어, 1.2의 승수는 지난달에 사용되는 단어에 적용될 수 있고 이 값은 추가되는 각 달마다 감소되어 1년 이상 전에 마지막으로 사용된 단어에 대해서는 1의 값으로 감소될 수 있다. 당연히, 다양한 다른 값 및 시간 프레임이 이용되어 최근성을 고려하는 기법을 구현할 수 있다. 최근성 기반 인자를 보간 방정식에 추가하는 것, 마지막으로 등장한 시간이 더 멀어질수록 단어에 할당된 가중치를 감쇠 함수에 따라 감소시키는 것 등을 포함하는, 최근성을 고려하는 다른 기법도 이용될 수 있다.
지정된 기간 이후 오래된 단어들을 제거하는 기법도 구현될 수 있다. 이것은 다양한 방식으로 달성될 수 있다. 하나의 접근방식에서, 주기적인 클린업(clean up) 동작은 예를 들어 1년 또는 18개월과 같은 지정된 시간 프레임 동안 사용되지 않은 단어를 식별할 수 있다. 식별된 단어들은 사용자의 맞춤 어휘집으로부터 제거될 수 있다. 또 다른 접근방식은 지정된 시간 프레임 이후 단어들에 대한 가중치를 0으로 설정하는 것이다. 본 명세서에서, 오래된 단어들에 대한 데이터를 유지할 충분한 공간이 존재한다면 이 데이터는 보존될 수 있지만, 0의 가중치는 시스템이 오래된 단어를 후보로서 사용하는 것을 방지한다. 사용자가 그 단어를 또 다시 사용하기 시작하면, 그 단어는 기존 이력과 함께 부활할 수 있다. 당연히, 이용가능한 저장 공간의 양은 얼마나 많은 타이핑 활동이 보존되는지와 오랜된 단어에 대한 데이터가 언제 제거되는지를 결정할 수 있다.
방금 설명한 기법을 사용하여 단어가 등급 부여되고 선택되면, 선택된 단어들은 이용되어 다양한 방식으로 텍스트 입력을 용이하게 한다(블록 708). 제한이 아닌 예로서, 선택된 후보 단어는 입력 키의 적중 타겟을 수정하고(블록 710), 검출된 텍스트 문자의 자동 교정을 수행하며(블록 712) 및/또는 검출된 텍스트 문자에 대한 예측으로서 하나 이상의 단어를 출력(블록 714)하는데 사용될 수 있다.
도 8은 하나 이상의 실시예에 따라 다중 언어 텍스트 예측 후보가 생성되는 예시적인 구현의 절차(800)를 나타낸다. 특정 상호작용 시나리오에서 텍스트 입력을 위한 다수의 상이한 언어의 사용이 인식된다(블록 802). 상호작용 시나리오와 연계하여 텍스트 예측을 위해 이용할 다수의 상이한 언어에 대응하는 다수의 사전이 활성화된다(블록 804). 예를 들어, 텍스트 예측 엔진(122)은 사용자가 언어들 사이에 전환하는 때를 인지하거나 또는 상이한 상호작용에서 언어의 혼합을 사용할 수 있다. 다중 언어 사용이 충분한 횟수로 발생되면, 텍스트 예측 엔진(122)은 상이한 언어의 사전을 활성화함으로써 응답할 수 있다. 일 접근 방식에서, 제2 언어에 대한 언어 특정 사전은 적응성 언어 모델(128)의 일부로서 상호작용 특정 사전(406)으로서 생성될 수 있다. 이 경우, 제2 언어에 대한 사용자의 사용은 언어 특정 사전에 반영될 수 있다. 이에 더해, 또는 이와 달리, 텍스트 예측 엔진(122)은 적응성 언어 모델(128)의 일부로서 기존 일반 대중 사전과 함께 제2 언어의 일반 대중 사전을 위치시키고 설치할 수 있다. 텍스트 예측 엔진(122)은 또한 사용자 타이핑 이력에 기초하여 특정 언어를 설치할 수 있다. 다중 언어 상호작용에 대한 텍스트 예측은 다수의 상이한 언어의 다수의 사전에 의존할 수 있다.
특히, 적응성 언어 모델에 따라 다수의 상이한 언어에 대응하는 다수의 사전을 사용하여 획득된 단어 확률들을 결합함으로써 상호작용 시나리오와 연관된 텍스트 입력에 대한 다중 언어 텍스트 예측이 생성된다(블록 806). 예를 들어, 둘 이상의 개별적인 언어 특정 사전에 대한 확률은 전술한 보간 기법을 사용하여 결합될 수 있다. 보간을 위한 가중치는 특히 다중 언어 시나리오를 위해 선택될 수 있다. 하나의 접근방식에서, 가중치는 사용자에 의한 상이한 언어들의 상대적 사용에 비례할 수 있다. 따라서, 영어 및 스페인어에 대한 사용이 75/25으로 나누어지는 경우, 이들 언어 간을 보간하기 위한 선택된 가중치는 이들 비율을 반영할 수 있다. 이와 달리, 상이한 언어 결합에 대한 경험적 값이 결정 및 적용될 수 있다.
일 구현에서, 활성화되는 각각의 일반 대중 언어 사전은 본 명세서에서의 적응성 언어 모델의 기법을 이용하도록 정렬될 수 있다. 따라서, 상이한 언어에 대응하는 해당 적응성 언어 모델(128) 각각은 제각기의 언어에 대한 기본적인 사용자 특정 및 상호작용 특정 사전을 가질 수 있다. 예측을 생성하기 위해, 본 명세서에서 설명한 보간 기법을 제각기의 적응성 언어 모델에 적용함으로써 각 언어에 대해 입력 텍스트 문자에 대한 예측 후보의 리스트가 별개로 생성될 수 있다. 그런 다음, 언어 특정 리스트 각각으로부터의 개개의 확률을 공통 리스트에 결합하기 위한 제2 보간이 이용될 수 있다. 이러한 식으로, 사용자에게 제시되거나 텍스트 입력을 용이하게 하기 위해 사용되는 텍스트 예측은 사용자에 의해 이용되는 상이한 언어의 다수의 사전으로부터의 확률을 보간함으로써 (또는 점수 데이터를 결합함으로써) 다수의 언어를 반영할 수 있다.
다중 언어 텍스트 예측은 다양한 방식으로 이용될 수 있다. 예를 들어, 특정 시나리오에 대한 다중 언어 텍스트 예측은 예측 바를 통해 또는 전술한 방식으로 텍스트 입력 동안 제공될 수 있다. 상이한 언어 후보들에 대한 언어에 적합한 후보 또는 옵션이 또한 "온 디맨드(on-demand)를 편집하는 동안 제공될 수 있다. 이 경우, 사용자는 예측 후보 리스트를 획득하기 위해 터치 또는 다른 입력 메카니즘을 통해 단어를 선택할 수 있다. 이 리스트는 다수의 언어 사용이 검출되는 시나리오에서 다중 언어 텍스트 예측을 포함하도록 구성될 수 있다.
또한, 상이한 언어 사전에 언제 의존할 지 및/또는 예측을 위해 하나의 특정 언어를 사용할지 또는 언어들의 조합을 이용할지를 선택적으로 결정하기 위해 다중 언어 사용에 관한 정보가 이용될 수 있다. 예를 들어, 사용자는 영어 키보드에서 불어 키보드로의 전환을 선택할 수 있다. 이 경우, 불어 사전이 기본 값으로 설정될 수 있다. 이에 더해, 또는 이와 달리, 불어를 선호하도록 영어와 불어 간의 가중치가 그에 따라 조정될 수 있다. 한편, 다수의 언어에 대해 단일 키보드가 사용되는 경우(예를 들어, 영어 및 불어 모두를 타이핑하는데 영어 키보드가 사용되는 경우), 본 명세서에서 설명한 다수의 사전으로부터의 확률 및/또는 점수 데이터를 결합하는 일반적인 접근방식이 이용되어 적절한 언어를 결정할 수 있고 언어에 적합한 후보를 보여줄 수 있다. 따라서, 시스템은 특정 텍스트 입력 시나리오에 따라 예측을 위해 단일 사전과 다수의 사전 사용 간을 전이할 수 있다.
텍스트 입력을 위해 사용되는 키보드의 유형도 대응하는 단어와 함께 저장될 수 있다. 따라서, 사용자가 예측 단어를 선택하는 경우, 그 단어에 대한 대응하는 키보드가 자동으로 디스플레이되어 대응하는 언어의 타이핑을 용이하게 할 수 있고 언어에 적절한 예측 후보가 그에 따라 생성될 수 있다. 또 다시, 이것은 키보드의 특정 언어에 대한 후보를 기본값으로 설정하는 것, 또는 적어도 특정 언어를 선호하도록 예측에 보다 많은 가중치를 부여하는 것을 포함할 수 있다. 따라서, 텍스트 예측 및/또는 키보드는 특정 다중 언어 사용 시나리오에 부합하도록 자동으로 조정될 수 있다.
적응성 언어 모델과 관련하여 몇몇 예시적인 기법을 설명하였으며, 이하에서는 본 명세서에서 설명한 하나 이상의 실시예를 구현하는데 이용될 수 있는 예시적인 시스템을 설명한다.
예시적인 시스템 및 장치
도 9는 본 명세서에 기술된 다양한 기법들을 구현할 수 있는 하나 이상의 컴퓨팅 시스템 및/또는 장치를 나타내는 예시적인 컴퓨팅 장치(902)를 포함하는 예시적인 시스템(900)을 도시한 것이다. 컴퓨팅 장치(902)는, 예를 들어 서비스 제공자의 서버, 클라이언트(예컨대, 클라이언트 장치)와 연관된 장치, 온칩 시스템, 및/또는 기타 다른 적합한 컴퓨팅 장치 또는 컴퓨팅 시스템일 수 있다.
도시된 예시적인 컴퓨팅 장치(902)는 서로 통신가능하게 연결되어 있는 처리 시스템(904), 하나 이상의 컴퓨터 판독가능 매체(906), 및 하나 이상의 I/O 인터페이스(908)를 포함한다. 도시되어 있지는 않지만, 컴퓨팅 장치(902)는 다양한 컴포넌트들을 서로 연결하는 시스템 버스 또는 다른 데이터 및 커맨드 전송 시스템을 더 포함할 수 있다. 시스템 버스는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 범용 직렬 버스, 및/또는 프로세서 또는 로컬 버스와 같은 상이한 버스 구조의 임의의 하나 이상의 조합을 포함할 수 있다. 제어 및 데이터 라인과 같은 다양한 다른 예들이 고려된다.
처리 시스템(904)은 하드웨어를 사용하여 하나 이상의 동작을 수행하는 기능을 나타낸다. 따라서, 처리 시스템(904)은 프로세서, 기능 블록 등으로 구성될 수 있는 하드웨어 요소(910)를 포함하는 것으로 도시되어 있다. 이것은 하나 이상의 반도체를 이용하여 형성된 애플리케이션 특정 집적 회로 또는 다른 로직 장치로서의 하드웨어 구현을 포함할 수 있다. 하드웨어 요소(910)는 이들을 형성하는 재료 또는 그 내부에서 이용되는 처리 메커니즘에 의해 제한되지 않는다. 예를 들어, 프로세서는 반도체 및/또는 트랜지스터(예컨대 전자 집적 회로(IC))로 이루어질 수 있다. 이러한 상황에서, 프로세서 실행가능 명령어는 전자적으로 실행가능한 명령어일 수 있다.
컴퓨터 판독가능 매체(906)는 메모리/저장부(912)를 포함하는 것으로 도시되어 있다. 메모리/저장부(912)는 하나 이상의 컴퓨터 판독가능 매체와 연관된 메모리/저장 용량을 나타낸다. 메모리/저장부(912)는 휘발성 매체(예컨대, RAM) 및/또는 비휘발성 매체(예컨대, ROM, 플래시 메모리, 광학 디스크, 자기 디스크 등)를 포함할 수 있다. 메모리/저장부(912)는 고정식 매체(예컨대, RAM, ROM, 고정식 하드 드라이브 등) 및 착탈식 매체(예컨대, 플래시 메모리, 착탈실 하드 드라이브, 광 디스크 등)를 포함할 수 있다. 컴퓨터 판독가능 매체(906)는 후술하는 바와 같이 다양한 방식으로 구성될 수 있다.
입력/출력 인터페이스(908)는, 사용자가 컴퓨팅 장치(902)에 커맨드 및 정보를 입력할 수 있게 하고 또한 사용자 및/또는 다양한 입력/출력 장치를 사용하는 다른 컴포넌트 또는 장치에게 정보를 제시할 수 있게 하는 기능을 나타낸다. 입력 장치의 예로는 키보드, 커서 제어 장치(예컨대, 마우스), 음성 동작을 위한 마이크로폰, 스캐너, 터치 기능(예컨대, 물리적 터치를 검출하도록 구성되는 용량성 센서 또는 기타 센서), (예컨대, 터치를 제스처로서 포함하지 않는 움직임을 검출하기 위해 적외선 주파수와 같은 가시적 또는 비가시적 파장을 이용할 수 있는) 카메라 등을 들 수 있다. 출력 장치의 예로는 디스플레이 장치(예컨대, 모니터 또는 프로젝터), 스피커, 프린터, 촉감 응답 장치 등을 들 수 있다. 컴퓨팅 장치(902)는 예를 들어 무선 및/또는 이동 통신을 지원하기 위해 네트워크 통신을 위한 네트워크 인터페이스 카드 및/또는 다양한 안테나를 포함하는, 유선 및 무선 통신을 가능하게 하는 다양한 컴포넌트를 포함할 수 있다. 하나 이상의 Wi-Fi 안테나, 일반 대중 네비게이션 위성 시스템(GNSS) 또는 일반 대중 위치 확인 시스템(GPS) 안테나, 셀룰러 안테나, 근거리 통신(NFC) 214 안테나, 블루투쓰 안테나 등을 포함하나 이에 국한되지 않는 다양한 상이한 유형의 적절한 안테나가 고려된다. 따라서, 컴퓨팅 장치(902)는 후술하는 바와 같이 다양한 방식으로 구성되어 사용자 상호작용을 지원할 수 있다.
다양한 기법들은 소프트웨어, 하드웨어 요소, 또는 프로그램 모듈의 일반적인 맥락으로 설명될 수 있다. 일반적으로, 이러한 모듈은 특정 태스크를 수행하거나 또는 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 요소, 컴포넌트, 데이터 구조 등을 포함한다. 본 명세서에 사용된 "모듈", "기능(functionality)" 및 "컴포넌트"란 용어는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합을 나타낸다. 본 명세서에 기술된 기법들의 특징은 플랫폼 독립적인데, 이는 이들 기법이 다양한 프로세서를 갖는 다양한 상용 컴퓨팅 플랫폼 상에서 구현될 수 있음을 의미한다.
상술한 모듈들 및 기법들의 구현예는 일부 형태의 컴퓨터 판독가능 매체 상에 저장되거나 또는 이들을 통해 전송될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 장치(902)에 의해 액세스될 수 있는 다양한 매체를 포함할 수 있다. 예를 들어, 컴퓨터 판독가능 매체는 "컴퓨터 판독가능 저장 매체" 및 "통신 매체"를 포함할 수 있다.
"컴퓨터 판독가능 저장 매체"는 단순한 신호 전송, 반송파, 또는 신호 그 자체와 달리 정보의 저장을 가능하게 하는 매체 및/또는 장치를 지칭한다. 따라서, 컴퓨터 판독가능 저장 매체는 신호 전달 매체 또는 신호 자체를 포함하지는 않는다. 컴퓨터 판독가능 저장 매체는, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 논리 소자/회로, 또는 그 밖의 다른 데이터와 같은 정보의 저장에 적합한 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체 및/또는 저장 장치를 포함한다. 컴퓨터 판독가능 저장 매체의 예로는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 다른 광학 저장부, 하드 디스크, 자기 카세트, 자기 테이프, 자기 디스크 저장부 또는 기타 자기 저장 장치, 또는 기타 저장 장치, 유형의 매체, 또는 원하는 정보를 저장하기에 적합하고 컴퓨터에 의해 액세스될 수 있는 제품을 들 수 있다.
"통신 매체"는 명령어를, 예컨대 네트워크를 통해, 컴퓨팅 장치(902)의 하드웨어에 전송하도록 구성된 신호 전달 매체를 지칭한다. 통신 매체는 통상적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 그 밖의 다른 데이터를, 반송파, 데이터 신호, 또는 기타 전송 메커니즘과 같은 변조된 데이터 신호로 구현할 수 있다. 통신 매체는 또한 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"란 용어는 신호 내의 정보를 인코딩하는 방식으로 설정되거나 변경된 특징들 중 하나 이상을 갖는 신호를 의미한다. 예를 들어, 통신 매체는 유선 네트워크 또는 직도선(direct-wired) 연결과 같은 유선 매체, 및 음향, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함한다.
전술한 바와 같이, 하드웨어 소자(910) 및 컴퓨터 판독가능 매체(906)는, 일부 실시예에서 본 명세서에 기술된 기법들 중 적어도 일부 특징을 구현하기 위해 이용될 수 있는 하드웨어 형태로 구현된 명령어, 모듈, 프로그램가능 장치 로직 및/또는 고정된 장치 로직을 나타낸다. 하드웨어 요소는 집적 회로 또는 온칩 시스템의 컴포넌트, ASIC(application-specific integrated circuit), FPGA(field-programmable gate array), CPLD(complex programmable logic device), 및 실리콘 또는 다른 하드웨어 장치의 다른 구현예들을 포함할 수 있다. 이런 맥락에서, 하드웨어 요소는 명령어, 모듈, 및/또는 하드웨어 요소에 의해 구현된 로직에 의해 정의된 프로그램 태스크를 수행하는 처리 장치뿐만 아니라 실행할 명령어를 저장하는데 이용되는 하드웨어 장치, 예컨대 전술한 컴퓨터 판독가능 저장 매체로서 동작할 수 있다.
본 명세서에 기술된 다양한 기법들 및 모듈들을 구현하기 위해 앞서 말한 것들의 조합이 이용될 수도 있다. 따라서, 텍스트 예측 엔진(122), 적응성 언어 모델(128), 및 그 밖의 다른 프로그램 모듈을 포함하는 소프트웨어, 하드웨어, 또는 프로그램 모듈은, 몇몇 형태의 컴퓨터 판독가능 저장 매체 상에 그리고/또는 하나 이상의 하드웨어 요소(910)에 의해 구현된 하나 이상의 명령어 및/또는 로직으로서 구현될 수 있다. 컴퓨팅 장치(902)는 소프트웨어 및/또는 하드웨어 모듈에 대응하는 특정한 명령어 및/또는 기능을 실행하도록 구성될 수 있다. 따라서, 컴퓨팅 장치(902)에 의해 소프트웨어로서 실행될 수 있는 모듈로서의 모듈의 구현은, 예컨대, 컴퓨터 판독가능 저장 매체 및/또는 처리 시스템의 하드웨어 요소(910)의 사용을 통해 적어도 부분적으로 하드웨어로 달성될 수 있다. 명령어 및/또는 기능은 본 명세서에 기술된 기법들, 모듈들, 및 예들을 구현하기 위한 하나 이상의 제품(예컨대, 하나 이상의 컴퓨팅 장치(902) 및/또는 처리 시스템(904))에 의해 실행가능/동작가능할 수 있다.
또한 도 9에 도시된 바와 같이, 예시적인 시스템(900)은 PC, 텔레비전 장치 및/또는 모바일 서비스에서 애플리케이션을 실행할 때 끊김없는 사용자 경험을 위해 유비쿼터스 환경을 제공할 수 있다. 서비스 및 애플리케이션은 애플리케이션을 활용하거나, 비디오 게임을 하거나, 비디오를 시청하거나 하는 동안 하나의 장치로부터 다음 장치로 전환할 때 공통의 사용자 경험을 위해 세 환경 모두에서 실질적으로 유사하게 실행된다.
예시적인 시스템(900)에서, 복수의 장치가 중앙 컴퓨팅 장치를 통해 상호연결된다. 중앙 컴퓨팅 장치는 복수의 장치에 대해 로컬일 수도 있고 또는 복수의 장치로부터 원격으로 위치할 수 있다. 일실시예에서, 중앙 컴퓨팅 장치는 네트워크, 인터넷, 또는 다른 데이터 통신 링크를 통해 복수의 장치에 연결되는 하나 이상의 서버 컴퓨터의 클라우드일 수 있다.
일실시예에서, 이 상호연결 구조는 복수의 장치의 사용자에게 공통의 끊김없는 경험을 제공하기 위해 복수의 장치에 걸쳐 기능이 전달되게 할 수 있다. 복수의 장치 각각은 상이한 물리적 요건 및 능력을 가질 수 있고, 중앙 컴퓨팅 장치는 장치에 맞게 조정되지만 모든 장치에 공통인 경험을 장치에 전달할 수 있는 플랫폼을 사용한다. 일실시예에서, 타겟 장치의 부류(class)가 생성되고 경험이 일반 부류의 장치에 맞게 조정된다. 장치의 부류는 장치의 물리적 특징, 사용 유형, 또는 기타 공통인 특징에 의해 정의될 수 있다.
다양한 구현예에서, 컴퓨팅 장치(902)는 컴퓨터(914), 모바일(916), 및 텔레비전(918) 용의 다양한 구성을 취할 수 있다. 이들 구성 각각은 일반적으로 상이한 구성 및 능력을 가질 수 있는 장치를 포함하며, 따라서 컴퓨팅 장치(902)는 상이한 장치 부류 중 하나 이상에 따라 구성될 수 있다. 예를 들어, 컴퓨팅 장치(902)는 개인용 컴퓨터, 데스크탑 컴퓨터, 멀티스크린 컴퓨터, 랩탑 컴퓨터, 넷북 등을 포함하는 장치의 컴퓨터(914) 부류로서 구현될 수 있다.
컴퓨팅 장치(902)는 모바일 폰, 휴대형 뮤직 플레이어, 휴대형 게이밍 장치, 태블릿 컴퓨터, 멀티스크린 컴퓨터 등과 같은 모바일 장치를 포함하는 장치의 모바일(916) 부류로서 구현될 수 있다. 컴퓨팅 장치(902)는 일반적인 뷰잉 환경에서 일반적으로 대형 스크린을 갖거나 또는 그에 연결된 장치를 포함하는 장치의 텔레비전(918) 부류로서 구현될 수 있다. 이들 장치는 텔레비전, 셋탑 박스, 게이밍 콘솔 등을 포함한다.
본 명세서에 기술된 기법들은 컴퓨팅 장치(902)의 이들 다양한 구성에 의해 지원될 수 있으며, 본 명세서에 기술된 기법들의 특정 예에 한정되지 않는다. 이것은 컴퓨팅 장치(902) 상에 텍스트 예측 엔진(122)을 포함시킨 것으로 도시되어 있다. 텍스트 예측 엔진(122) 및 다른 모듈의 기능은 모두 또는 부분적으로, 전술한 플랫폼(922)을 통한 예컨대 "클라우드"(920)에 걸친 분산 시스템의 사용을 통해 구현될 수 있다.
클라우드(920)는 리소스(924)에 대한 플랫폼(922)을 포함하고/또는 이러한 플랫폼을 나타낸다. 플랫폼(922)은 하드웨어(예컨대, 서버)의 기본 기능 및 클라우드(920)의 소프트웨어 리소스를 추상화한다. 리소스(924)는 컴퓨터 프로세싱이 컴퓨팅 장치(902)로부터 원격인 서버에서 실행되는 동안 이용될 수 있는 애플리케이션 및/또는 데이터를 포함할 수 있다. 리소스(924)는 또한 인터넷 상에서 및/또는 셀룰러 또는 WiFi 네트워크와 같은 가입자 네트워크를 통해 제공된 서비스를 포함할 수 있다.
플랫폼(922)은 컴퓨팅 장치(902)를 다른 컴퓨팅 장치와 연결하기 위한 리소스 및 기능을 추상화할 수 있다. 플랫폼(922)은 또한 플랫폼(922)을 통해 구현되는 리소스(924)에 대해 마주치는 요청에 대해 대응하는 스케일 레벨을 제공하기 위해 리소스의 스케일링을 추상화하는 역할을 할 수도 있다. 따라서, 상호연결된 장치 실시예에서, 본 명세서에 기술된 기능의 구현이 시스템(900)에 걸쳐 분산될 수 있다. 예컨대, 이 기능은 컴퓨팅 장치(902) 상에서뿐만 아니라 클라우드(920)의 기능을 추상화하는 플랫폼(922)을 통해 부분적으로 구현될 수 있다.
결론
본 발명은 구조적 특징 및/또는 방법론적 동작에 특정한 언어로 기술되었지만, 첨부된 청구항에 정의된 본 발명은 반드시 이러한 특정한 특징 또는 기술된 동작으로 한정되지는 않는다. 오히려, 특정한 특징 및 동작은 청구된 본 발명을 구현하는 예시적인 형태로서 개시된다.

Claims (10)

  1. 장치와의 상호작용 동안 텍스트 문자의 입력을 검출하는 단계와,
    적응성 언어 모델에 따라, 상기 검출된 텍스트 문자에 대응하는 하나 이상의 텍스트 예측 후보를 생성하는 단계와,
    상기 장치와의 상호작용 동안 추가의 텍스트 입력을 용이하게 하기 위해 상기 하나 이상의 텍스트 예측 후보를 이용하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 적응성 언어 모델은 텍스트 예측 엔진에 의해 행해진 예측들을 개개인별로 사용자의 타이핑 스타일에 적응시키도록 구성된 방법.
  3. 제1항에 있어서,
    상기 적응성 언어 모델은 단어들 및 대응하는 점수 데이터의 소스로서 다수의 언어 모델 사전을 사용하도록 구성되는 방법.
  4. 제3항에 있어서,
    상기 다수의 언어 모델 사전은 범용 사전(global dictionary) 및 사용자 특정 사전을 포함하고,
    상기 하나 이상의 텍스트 예측 후보를 생성하는 단계는
    상기 범용 사전 및 상기 사용자 특정 사전으로부터의 단어 후보에 대한 조건부 확률 기여분(conditional probability contributions)을 수학적으로 결합하여 예측 후보들에 대한 점수를 계산하는 단계와,
    상기 계산된 점수에 기초하여 상기 예측 후보들을 서로에 대해 등급을 부여하는 단계
    를 포함하는 방법.
  5. 제1항에 있어서,
    상기 하나 이상의 텍스트 예측 후보를 생성하는 단계는 상기 적응성 언어 모델과 연관된 다수의 사전에 포함된 단어들과 연관된 점수 데이터의 가중치 부여된 결합을 계산하는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 적응성 언어 모델을 위한 사용자 특정 사전을 생성하기 위해 사용자별로 타이핑 활동에 대한 데이터를 수집하는 단계와,
    특정 상호작용 시나리오를 나타내는 사용 파라미터(usage parameters)를, 타이핑 활동에 대한 상기 수집된 데이터와 연관시키는 단계와,
    상기 사용 파라미터에 기초하여 제각기의 상호작용 시나리오에 대응하는 하나 이상의 상호작용 특정 사전을 형성하는 단계
    를 더 포함하는 방법.
  7. 제1항에 있어서,
    상기 하나 이상의 텍스트 예측 후보를 이용하는 단계는 사용자에 의한 선택을 위해 상기 장치의 사용자 인터페이스를 통해 하나 이상의 텍스트 예측 후보의 표현을 제시하는 단계를 포함하는 방법.
  8. 컴퓨팅 장치에 의해 실행되는 경우 상기 컴퓨팅 장치로 하여금 동작들을 수행하게 하는 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 저장 매체로서,
    상기 동작들은
    하나 이상의 검출된 텍스트 문자에 기초하여 텍스트의 예측을 위한 단어들의 소스로서 사용할 다수의 사전을 식별하는 동작- 상기 다수의 사전은 사용자들의 공동체에 걸쳐 공통 사용을 나타내는 범용 사전 및 특정 사용자의 개별 타이핑 스타일을 반영하도록 상기 컴퓨팅 장치의 상기 특정 사용자에 의한 텍스트 입력에 기초하여 동적으로 생성된 적어도 하나의 다른 사전을 포함함 -과,
    상기 다수의 사전에 포함된 단어들과 연관된 점수 데이터의 가중치 부여된 결합을 사용하여, 상기 검출된 텍스트 문자에 대한 예측 후보로서 단어들을 서로에 대해 등급을 부여하는 동작과,
    상기 검출된 텍스트 문자에 대한 예측 후보로서 상기 등급에 따라 하나 이상의 상위 등급의 단어를 선택하는 동작과,
    텍스트 입력을 용이하게 하기 위해 상기 선택된 단어를 이용하는 동작
    을 포함하는, 컴퓨터 판독가능 저장 매체.
  9. 제8항에 있어서,
    상기 단어들을 서로에 대해 등급을 부여하는 동작은 상기 검출된 텍스트 문자에 대한 잠재적 예측 후보로서 식별된 단어들에 대해 상기 다수의 사전으로부터 도출된 개개의 점수를 보간하는 동작을 포함하는 컴퓨터 판독가능 저장 매체.
  10. 제8항에 있어서,
    상기 선택된 단어를 이용하는 동작은
    대응하는 예측의 입력을 야기하도록 동작가능한 사용자 인터페이스의 요소들로서, 상기 검출된 텍스트 문자에 대한 예측으로서의 상기 선택된 단어들 중 하나 이상을 출력하는 동작과,
    상기 선택된 단어들 중 하나를 사용하여 상기 검출된 텍스트 문자의 자동 교정을 수행하는 동작과,
    상기 컴퓨팅 장치를 통해 디스플레이되는 온스크린 키보드의 입력 키들의 적중 타겟을 상기 선택된 단어들에 기초하여 수정하는 동작
    중 적어도 하나를 포함하는
    컴퓨터 판독가능 저장 매체.
KR1020157025077A 2013-03-14 2014-03-10 다수의 언어 모델에 기초한 텍스트 예측 기법 KR20150131040A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/830,614 2013-03-14
US13/830,614 US20140267045A1 (en) 2013-03-14 2013-03-14 Adaptive Language Models for Text Predictions
PCT/US2014/022233 WO2014150104A1 (en) 2013-03-14 2014-03-10 Text prediction based on multiple language models

Publications (1)

Publication Number Publication Date
KR20150131040A true KR20150131040A (ko) 2015-11-24

Family

ID=50442642

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157025077A KR20150131040A (ko) 2013-03-14 2014-03-10 다수의 언어 모델에 기초한 텍스트 예측 기법

Country Status (17)

Country Link
US (1) US20140267045A1 (ko)
EP (1) EP2972690B1 (ko)
JP (1) JP2016519349A (ko)
KR (1) KR20150131040A (ko)
CN (1) CN105229575B (ko)
AU (1) AU2014237534A1 (ko)
BR (1) BR112015019803A2 (ko)
CA (1) CA2899779A1 (ko)
CL (1) CL2015002614A1 (ko)
HK (1) HK1215080A1 (ko)
IL (1) IL240029A0 (ko)
MX (1) MX2015012828A (ko)
PH (1) PH12015501583B1 (ko)
RU (1) RU2015138987A (ko)
SG (1) SG11201507015PA (ko)
WO (1) WO2014150104A1 (ko)
ZA (1) ZA201505643B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170101730A (ko) * 2016-02-29 2017-09-06 삼성전자주식회사 사용자 데모그래픽 정보 및 콘텍스트 정보에 기초한 텍스트 입력 예측 방법 및 장치
WO2019045185A1 (en) * 2017-08-31 2019-03-07 Phill It Co., Ltd. MOBILE DEVICE, AND METHOD FOR CORRECTING CHARACTER CHAIN ENTERED VIA A VIRTUAL KEYBOARD
KR20220083959A (ko) 2020-12-12 2022-06-21 이승훈 음주운전 및 졸음운전 방지 장치

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10191654B2 (en) 2009-03-30 2019-01-29 Touchtype Limited System and method for inputting text into electronic devices
GB0905457D0 (en) 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
US9424246B2 (en) 2009-03-30 2016-08-23 Touchtype Ltd. System and method for inputting text into electronic devices
US20140208258A1 (en) * 2013-01-22 2014-07-24 Jenny Yuen Predictive Input Using Custom Dictionaries
US20150019539A1 (en) * 2013-07-15 2015-01-15 Blackberry Limited Methods and devices for providing a text prediction
US10049656B1 (en) * 2013-09-20 2018-08-14 Amazon Technologies, Inc. Generation of predictive natural language processing models
JP5932869B2 (ja) 2014-03-27 2016-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation N−gram言語モデルの教師無し学習方法、学習装置、および学習プログラム
US9477653B2 (en) * 2014-06-26 2016-10-25 Blackberry Limited Character entry for an electronic device using a position sensing keyboard
US9799049B2 (en) * 2014-12-15 2017-10-24 Nuance Communications, Inc. Enhancing a message by providing supplemental content in the message
US20160170971A1 (en) * 2014-12-15 2016-06-16 Nuance Communications, Inc. Optimizing a language model based on a topic of correspondence messages
CN104571874B (zh) * 2015-02-13 2018-10-30 上海触乐信息科技有限公司 动态切换键盘背景的方法和装置
US9697194B2 (en) 2015-06-08 2017-07-04 International Business Machines Corporation Contextual auto-correct dictionary
US10403271B2 (en) 2015-06-11 2019-09-03 Nice Ltd. System and method for automatic language model selection
US20170018268A1 (en) * 2015-07-14 2017-01-19 Nuance Communications, Inc. Systems and methods for updating a language model based on user input
US10042841B2 (en) * 2015-07-17 2018-08-07 International Business Machines Corporation User based text prediction
US9588966B2 (en) * 2015-07-21 2017-03-07 Facebook, Inc. Data sorting for language processing such as POS tagging
US10311859B2 (en) * 2016-01-16 2019-06-04 Genesys Telecommunications Laboratories, Inc. Material selection for language model customization in speech recognition for speech analytics
JP2017167955A (ja) * 2016-03-17 2017-09-21 富士通株式会社 入力支援装置、入力支援プログラム、及び入力支援方法
US9996532B2 (en) * 2016-06-17 2018-06-12 Microsoft Technology Licensing, Llc Systems and methods for building state specific multi-turn contextual language understanding systems
US11010551B2 (en) 2016-06-22 2021-05-18 Huawei Technologies Co., Ltd. Method and apparatus for displaying candidate word, and graphical user interface
GB201610984D0 (en) 2016-06-23 2016-08-10 Microsoft Technology Licensing Llc Suppression of input images
US10558749B2 (en) 2017-01-30 2020-02-11 International Business Machines Corporation Text prediction using captured image from an image capture device
US10255268B2 (en) 2017-01-30 2019-04-09 International Business Machines Corporation Text prediction using multiple devices
US10747427B2 (en) * 2017-02-01 2020-08-18 Google Llc Keyboard automatic language identification and reconfiguration
US11520412B2 (en) 2017-03-06 2022-12-06 Microsoft Technology Licensing, Llc Data input system/example generator
US10318632B2 (en) * 2017-03-14 2019-06-11 Microsoft Technology Licensing, Llc Multi-lingual data input system
US10754441B2 (en) 2017-04-26 2020-08-25 Microsoft Technology Licensing, Llc Text input system using evidence from corrections
US20180349348A1 (en) * 2017-06-05 2018-12-06 Blackberry Limited Generating predictive texts on an electronic device
EP3646150A4 (en) * 2017-08-29 2020-07-29 Samsung Electronics Co., Ltd. METHOD FOR PROVIDING MULTIMODAL PREDICTIONS BASED ON COGNITIVE SEMIOTICS, AND ELECTRONIC DEVICE THEREFOR
KR20190024071A (ko) * 2017-08-31 2019-03-08 필아이티 주식회사 가상 키보드에서 추천어를 제공하는 모바일 장치 및 방법
CN107704102B (zh) * 2017-10-09 2021-08-03 北京新美互通科技有限公司 一种文本输入方法及装置
CN110321012A (zh) * 2018-03-30 2019-10-11 北京金山安全软件有限公司 一种空上文词预测方法、装置及电子设备
US10915183B2 (en) * 2018-03-30 2021-02-09 AVAST Software s.r.o. Automatic language selection in messaging application
CN109062888B (zh) * 2018-06-04 2023-03-31 昆明理工大学 一种出现错误文本输入时的自纠正方法
CN108932069B (zh) * 2018-07-11 2023-04-07 科大讯飞股份有限公司 输入法候选词条确定方法、装置、设备及可读存储介质
KR20200046185A (ko) * 2018-10-18 2020-05-07 삼성전자주식회사 전자 장치 및 이의 제어 방법
US11023503B2 (en) * 2018-12-13 2021-06-01 Textio, Inc. Suggesting text in an electronic document
EP3703381A1 (en) * 2019-02-28 2020-09-02 InterDigital CE Patent Holdings Method and device for the search of content based on user search habits
US10929596B2 (en) * 2019-05-15 2021-02-23 International Business Machines Corporation Pattern based electronic dictionary modification and presentation
US11017157B2 (en) * 2019-05-15 2021-05-25 International Business Machines Corporation Group pattern based electronic dictionary modification and presentation
KR20210026962A (ko) * 2019-09-02 2021-03-10 삼성전자주식회사 보이스 어시스턴트 서비스를 제공하는 장치 및 방법
KR20210052958A (ko) * 2019-11-01 2021-05-11 엘지전자 주식회사 인공 지능 서버
US11516155B1 (en) * 2019-12-20 2022-11-29 Twitter, Inc. Hard and soft ranking messages of conversation graphs in a messaging platform
US11501067B1 (en) * 2020-04-23 2022-11-15 Wells Fargo Bank, N.A. Systems and methods for screening data instances based on a target text of a target corpus
CN112149408B (zh) * 2020-09-18 2022-11-08 北京有竹居网络技术有限公司 标题生成方法、训练方法、装置、电子设备和存储介质
US11657216B2 (en) * 2021-05-20 2023-05-23 International Business Machines Corporation Input text management

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000235571A (ja) * 1999-02-16 2000-08-29 Toshiba Corp 用例辞書作成装置
WO2008120033A1 (en) * 2007-03-29 2008-10-09 Nokia Corporation Prioritizing words based on content of input
US7953692B2 (en) * 2007-12-07 2011-05-31 Microsoft Corporation Predicting candidates using information sources
GB0905457D0 (en) * 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
US8782556B2 (en) * 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
EP2545426A4 (en) * 2010-03-12 2017-05-17 Nuance Communications, Inc. Multimodal text input system, such as for use with touch screens on mobile phones
US8635061B2 (en) * 2010-10-14 2014-01-21 Microsoft Corporation Language identification in multilingual text
WO2012090027A1 (en) * 2010-12-30 2012-07-05 Nokia Corporation Language models for input text prediction
US8977553B2 (en) * 2012-07-30 2015-03-10 Google Inc. Dynamic adjustment of text input system components
US8965754B2 (en) * 2012-11-20 2015-02-24 International Business Machines Corporation Text prediction using environment hints

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170101730A (ko) * 2016-02-29 2017-09-06 삼성전자주식회사 사용자 데모그래픽 정보 및 콘텍스트 정보에 기초한 텍스트 입력 예측 방법 및 장치
WO2019045185A1 (en) * 2017-08-31 2019-03-07 Phill It Co., Ltd. MOBILE DEVICE, AND METHOD FOR CORRECTING CHARACTER CHAIN ENTERED VIA A VIRTUAL KEYBOARD
KR20220083959A (ko) 2020-12-12 2022-06-21 이승훈 음주운전 및 졸음운전 방지 장치

Also Published As

Publication number Publication date
BR112015019803A2 (pt) 2017-07-18
WO2014150104A1 (en) 2014-09-25
CA2899779A1 (en) 2014-09-25
CL2015002614A1 (es) 2016-04-08
IL240029A0 (en) 2015-09-24
RU2015138987A3 (ko) 2018-03-19
PH12015501583A1 (en) 2015-10-05
AU2014237534A1 (en) 2015-08-06
PH12015501583B1 (en) 2015-10-05
CN105229575B (zh) 2018-01-26
SG11201507015PA (en) 2015-10-29
US20140267045A1 (en) 2014-09-18
MX2015012828A (es) 2016-02-03
EP2972690A1 (en) 2016-01-20
RU2015138987A (ru) 2017-03-16
HK1215080A1 (zh) 2016-08-12
CN105229575A (zh) 2016-01-06
ZA201505643B (en) 2016-12-21
EP2972690B1 (en) 2017-04-19
JP2016519349A (ja) 2016-06-30

Similar Documents

Publication Publication Date Title
KR20150131040A (ko) 다수의 언어 모델에 기초한 텍스트 예측 기법
EP2972691B1 (en) Language model dictionaries for text predictions
KR102262453B1 (ko) 텍스트 예측용 이모지
US10733360B2 (en) Simulated hyperlinks on a mobile device
CN109800386B (zh) 突出显示文档内文本的关键部分
CN108139849B (zh) 针对用户选择内容的动作建议
US10078631B2 (en) Entropy-guided text prediction using combined word and character n-gram language models
US20190080008A1 (en) Compiling Local and Remote Search Results
RU2581840C2 (ru) Регистрация для поискового интерфейса пользователя системного уровня
US11194448B2 (en) Apparatus for vision and language-assisted smartphone task automation and method thereof
JP2013543196A (ja) システムレベル検索ユーザーインターフェース
KR20170010004A (ko) 콘텐츠 성능 최적화를 위한 자동화된 클릭 타입 선택
KR20160060110A (ko) 온스크린 키보드에 대한 빠른 작업
US10073828B2 (en) Updating language databases using crowd-sourced input
JP2019522852A (ja) 文脈情報を提供するためのシステムおよび方法
US9507879B2 (en) Query formation and modification
US11545144B2 (en) System and method supporting context-specific language model
US20160378871A1 (en) Generating Search Results Using Current Software Application States
US20140181672A1 (en) Information processing method and electronic apparatus
CN113641408A (zh) 快捷入口的生成方法和装置
WO2016198893A1 (en) System and method for generating text predictions

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid