KR101484583B1 - 대체 점수를 사용하여 사전-내에-없는 문자열들의 제스처 키보드 입력 - Google Patents

대체 점수를 사용하여 사전-내에-없는 문자열들의 제스처 키보드 입력 Download PDF

Info

Publication number
KR101484583B1
KR101484583B1 KR20140050979A KR20140050979A KR101484583B1 KR 101484583 B1 KR101484583 B1 KR 101484583B1 KR 20140050979 A KR20140050979 A KR 20140050979A KR 20140050979 A KR20140050979 A KR 20140050979A KR 101484583 B1 KR101484583 B1 KR 101484583B1
Authority
KR
South Korea
Prior art keywords
string
strings
computing device
score
determining
Prior art date
Application number
KR20140050979A
Other languages
English (en)
Other versions
KR20140128884A (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 KR20140128884A publication Critical patent/KR20140128884A/ko
Application granted granted Critical
Publication of KR101484583B1 publication Critical patent/KR101484583B1/ko

Links

Images

Classifications

    • 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/0236Character input methods using selection techniques to select from displayed items
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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
    • 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
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • 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

Abstract

일 예에서, 그래픽 키보드를 출력하는 적어도 하나의 프로세서를 포함할 수 있는 컴퓨팅 디바이스가 제공된다. 적어도 하나의 프로세서는, 하나 이상 키들의 선택을 결정할 수 있고, 그리고 이러한 선택에서의 하나 이상의 키들에 근거하여 문자열을 결정할 수 있으며, 이 문자열은 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다. 적어도 하나의 프로세서는, 문자열이 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 문자열을 어휘목록 내에 없는 언어 모델 점수와 관련시킬 수 있고, 그리고 제스처와 관련된 공간 모델 점수 및 어휘목록 내에 없는 언어 모델 점수에 적어도 부분적으로 근거하여, 문자열이 제스처에 대응할 확률을 표시하는 결합된 점수를 결정할 수 있으며, 그리고 문자열을 디스플레이를 위해 출력할 수 있다.

Description

대체 점수를 사용하여 사전-내에-없는 문자열들의 제스처 키보드 입력{GESTURE KEYBOARD INPUT OF NON-DICTIONARY CHARACTER STRINGS USING SUBSTITUTE SCORING}
일반적으로, 본 개시내용은 그래픽 키보드(graphical keyboard)의 하나 이상의 키(key)들을 선택하기 위한 임의의 검출된 제스처에 근거하여 하나 이상의 어휘목록-내에-없는(Out-Of-Vocabulary, OOV)(예를 들어, 사전-내에-없는(out-of-dictionary)) 문자열들을 결정하기 위한 기법들에 관한 것이다.
일부 컴퓨팅 디바이스들(computing devices)(예를 들어, 모바일 전화기들(mobile phones), 태블릿 컴퓨터들(tablet computers) 등)은 프레즌스-감지 입력 디바이스(presence-sensitive input device)(예를 들어, 프레즌스-인식 및/또는 터치 스크린(presence-aware and/or touch screen)과 같은 프레즌스-감지 디스플레이(presence-sensitive display))를 사용하여 텍스트(text)를 작성하기 위한 그래픽 사용자 인터페이스(graphical user interface)의 일부로서 그래픽 키보드를 제공할 수 있다. 그래픽 키보드는 컴퓨팅 디바이스의 사용자로 하여금 텍스트(예를 들어, 이-메일(e-mail), 텍스트 메시지, 혹은 문서 등)를 입력할 수 있게 한다. 예를 들어, 컴퓨팅 디바이스의 프레즌스-감지 디스플레이는 프레즌스-감지 디스플레이에서 디스플레이되는 키들을 표시함으로써(예를 들어, 탭핑(tapping)함으로써) 사용자로 하여금 데이터를 입력할 수 있게 하는 그래픽 키보드(혹은 "소프트(soft)" 키보드)를 출력할 수 있다.
일부 경우에 있어서, 컴퓨팅 디바이스는 연속적인-제스처 그래픽 키보드(continuous-gesture graphical keyboard)(이것은 때때로 "콤보 제스처 키보드(combo gesture keyboard)" 혹은 "제스처 키보드(gesture keyboard)"로서 지칭됨)를 프리젠테이션(presentation)할 수 있는바, 이러한 키보드를 통해 사용자는 컴퓨팅 디바이스에 입력될 문자열을 표시하는 연속적인 제스처를 입력함으로써(예를 들어, 키보드의 원하는 키들과 관련된 프레즌스-감지 디스플레이의 다양한 영역들 위에서 사용자의 손가락을 슬라이딩(sliding)시킴으로써) 상호대화를 할 수 있다. 이러한 방식으로, 연속적인-제스처 그래픽 키보드는 사용자로 하여금 문자열 혹은 문자열들의 그룹을 단일 제스처로 입력할 수 있게 한다. 이처럼, 연속적인-제스처 그래픽 키보드는 사용자로 하여금 어느 정도의 입력 효율성을 달성할 수 있게 한다.
일부 예들에서, 제스처 키보드를 제공하는 컴퓨팅 디바이스는 제스처 입력으로부터 단어를 결정하기 위해 단어 예측 기법, 자동-정정 기법, 그리고/또는 제안 기법에 의존할 수 있다. 이러한 기법들은 텍스트 입력의 속도를 높여줄 수 있고 소정의 어휘목록(예를 들어, 사전) 내에 포함되어 있는 문자열들의 스펠링 실수를 최소화시킬 수 있다. 그러나, 이러한 기법들 중 하나 이상의 기법은 어떤 결점들을 가지고 있을 수 있다. 예를 들어, 일부 예들에서, 제스처 키보드를 제공하고 앞서의 기법들 중 하나 이상의 기법에 의존하는 컴퓨팅 디바이스는 프레즌스-감지 스크린에서 입력되는 제스처 입력으로부터 어휘목록-내에-없는 문자열들(예를 들어, 사전 내에 포함되어 있지 않은 단어들)을 올바르게 결정하지 못할 수 있다. 이처럼, 사용자는 제스처 입력을 사용하여 사전-내에-없는 문자열들(non-dictionary character strings)(예를 들어, 이름(names), 슬랭(slang), 약어(abbreviation), 두문자어(acronyms) 등)을 입력하기 위해서는 추가적인 노력을 수행할 필요가 있을 수 있다.
일 예에서, 방법이 제공되며, 이 방법은 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 컴퓨팅 디바이스에 의해 출력하는 것을 포함한다. 본 방법은 또한, 프레즌스-감지 입력 디바이스에서 검출된 제스처의 표시를 수신함에 응답하여, 복수의 키들 중 하나 이상 키의 선택을 컴퓨팅 디바이스에 의해 결정하는 것을 포함할 수 있다. 본 방법은 또한, 이러한 선택에서의 복수의 키들 중 하나 이상의 키에 근거하여 컴퓨팅 디바이스에 의해 문자열을 결정하는 것을 포함할 수 있고, 이 문자열은 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다. 본 방법은 또한, 문자열이 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 컴퓨팅 디바이스에 의해, 문자열을 어휘목록-내에-없는 언어 모델 점수(out-of-vocabulary language model score)와 관련시키는 것을 포함할 수 있다. 본 방법은 또한, 제스처와 관련된 공간 모델 점수(spatial model score) 및 어휘목록-내에-없는 언어 모델 점수에 적어도 부분적으로 근거하여, 문자열이 제스처에 대응할 확률을 표시하는 결합된 점수(combined score)를 컴퓨팅 디바이스에 의해 결정하는 것을 포함할 수 있다. 본 방법은 또한, 문자열을 디스플레이를 위해 컴퓨팅 디바이스에 의해 출력하는 것을 포함할 수 있다.
일 예에서는, 명령들이 인코딩되어 있는 컴퓨터-판독가능 저장 매체(computer-readable storage medium)가 제공되며, 여기서 명령들은 실행시 적어도 하나의 프로세서로 하여금, 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력하도록 한다. 명령들이 인코딩되어 있을 수 있는 이러한 컴퓨터-판독가능 저장 매체에서, 명령들은 실행시 적어도 하나의 프로세서로 하여금, 프레즌스-감지 입력 디바이스에서 검출된 제스처의 표시를 수신함에 응답하여, 복수의 키들 중 하나 이상 키의 선택을 결정하도록 한다. 명령들이 인코딩되어 있을 수 있는 이러한 컴퓨터-판독가능 저장 매체에서, 명령들은 실행시 적어도 하나의 프로세서로 하여금, 앞서의 선택에서의 복수의 키들 중 하나 이상의 키에 근거하여 문자열을 결정하도록 하며, 이 문자열은 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다. 명령들이 인코딩되어 있을 수 있는 이러한 컴퓨터-판독가능 저장 매체에서, 명령들은 실행시 적어도 하나의 프로세서로 하여금, 문자열이 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 문자열을 어휘목록-내에-없는 언어 모델 점수와 관련시키도록 한다. 명령들이 인코딩되어 있을 수 있는 이러한 컴퓨터-판독가능 저장 매체에서, 명령들은 실행시 적어도 하나의 프로세서로 하여금, 제스처와 관련된 공간 모델 점수 및 어휘목록-내에-없는 언어 모델 점수에 적어도 부분적으로 근거하여, 문자열이 제스처에 대응할 확률을 표시하는 결합된 점수를 결정하도록 한다. 명령들이 인코딩되어 있을 수 있는 이러한 컴퓨터-판독가능 저장 매체에서, 명령들은 실행시 적어도 하나의 프로세서로 하여금, 문자열을 디스플레이를 위해 출력하도록 한다.
일 예에서, 적어도 하나의 프로세서를 포함할 수 있는 컴퓨팅 디바이스가 제공되며, 여기서 적어도 하나의 프로세서는 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력하도록 구성된다. 적어도 하나의 프로세서는 프레즌스 감지 입력 디바이스에서 검출된 제스처의 표시를 수신함에 응답하여, 복수의 키들 중 하나 이상 키의 선택을 결정하도록 구성될 수 있다. 적어도 하나의 프로세서는 이러한 선택에서의 복수의 키들 중 하나 이상의 키에 근거하여 문자열을 결정하도록 구성될 수 있으며, 이 문자열은 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다. 적어도 하나의 프로세서는 문자열이 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 문자열을 어휘목록-내에-없는 언어 모델 점수와 관련시키도록 구성될 수 있다. 적어도 하나의 프로세서는 제스처와 관련된 공간 모델 점수 및 어휘목록-내에-없는 언어 모델 점수에 적어도 부분적으로 근거하여, 문자열이 제스처에 대응할 확률을 표시하는 결합된 점수를 결정하도록 구성될 수 있다. 적어도 하나의 프로세서는 문자열을 디스플레이를 위해 출력하도록 구성될 수 있다.
본 개시내용의 하나 이상의 예들의 세부사항은 첨부되는 도면 및 아래의 설명에서 제시된다. 본 개시내용의 다른 특징, 목적 및 장점은 이러한 설명 및 도면으로 명백하게 될 것이며 아울러 특허청구범위로부터 명백하게 될 것이다.
도 1은 본 개시내용의 하나 이상의 실시형태들에 따른, 어휘목록-내에-없는 문자열을 제스처 키보드로 결정하도록 구성되어 있는 예시적인 컴퓨팅 디바이스를 나타낸 개념도이다.
도 2는 본 개시내용의 하나 이상의 실시형태들에 따른, 예시적인 컴퓨팅 디바이스를 나타낸 블록도이다.
도 3은 본 개시내용의 하나 이상의 기법들에 따른, 원격 디바이스에서 디스플레이를 위해 그래픽 콘텐츠를 출력하는 예시적인 컴퓨팅 디바이스를 나타낸 블록도이다.
도 4는 본 개시내용의 하나 이상의 실시형태들에 따른, 어휘목록-내에-없는 문자열들을 결정하기 위한 예시적인 데이터를 나타낸 개념도이다.
도 5는 본 개시내용의 하나 이상의 실시형태들에 따른, 어휘목록-내에-없는 문자열을 제스처 키보드로 결정하도록 되어 있는 컴퓨팅 디바이스의 예시적인 동작들을 나타낸 흐름도이다.
일반적으로, 본 개시내용은 그래픽 키보드의 하나 이상의 키들을 선택하기 위한 임의의 검출된 제스처에 근거하여 하나 이상의 어휘목록-내에-없는(Out-Of-Vocabulary, OOV)(예를 들어, 사전-내에-없는(out-of-dictionary)) 문자열들을 결정하기 위한 기법들에 관한 것이다. 일부 예들에서, 예를 들어, 프레즌스-감지 스크린에 그래픽 키보드를 출력하는 컴퓨팅 디바이스는 또한, 프레즌스-감지 스크린에서 검출되는 제스처들의 표시들을 수신할 수 있다. 예를 들어, 프레즌스-감지 스크린에 의해 프리젠테이션되는 복수의 키들과 관련된 위치들을 가로질러 이동(traverse)하는 연속적인 제스처(예를 들어, 비-탭핑 제스처(non-tap gesture))는 복수의 키들의 선택을 표시할 수 있다. 또 하나의 다른 예에서, 비-연속적인 제스처(예를 들어 탭핑 제스처(tap gesture))는 개개의 키의 선택을 표시할 수 있다. 특정 예들에서, 컴퓨팅 디바이스는 일련의 텍스트, 예를 들어, 사전 내에 있는 문자열 혹은 OOV 문자열을 표시하는 하나 이상의 제스처들과 관련된 수신을 프레즌스-감지 스크린에서 혹은 프레즌스-감지 스크린 가까이에서 수신할 수 있다.
본 명세서에서 설명되는 기법들은, 컴퓨팅 디바이스가 OOV 문자열(예를 들어, 하나 이상의 사전들 내에 현재 존재하지 않는 문자열 혹은 하나 이상의 사전들에 근거하는 언어 모델들 내에 현재 존재하지 않는 문자열)을 발생시키고 출력시키려는 키들의 선택을 검출할 때의 정확도(accuracy)를 향상시킬 수 있다. 예를 들어, 사용자가 OOV 문자열을 입력하기 위한 제스처를 제공하는 경우, 제스처-기반 키보드들을 구현하는 일부 컴퓨팅 디바이스들은 OOV 문자열을 식별하지 못할 수 있고 OOV 문자열의 출력을 자제할 수 있다. 다른 예들에서, 이러한 컴퓨팅 디바이스들은 사용자에 의해 실제로 의도된 OOV 문자열을 (사용자가 입력하려고 의도하지 않은) 사전 내에 있는 상이한 문자열로 자동정정할 수 있고, 그럼으로써 사용자에게 그 자동정정된 문자열을 더 수정하도록 요구할 수 있다. 이러한 컴퓨팅 디바이스들은 입력된 문자열들을 예측 및/또는 자동정정하기 위해 오로지 사전 내에 있는 미리정의된 세트의 문자열들에만 의존하고 있기 때문에, 컴퓨팅 디바이스는 만약 사용자에 의해 입력되는 OOV 문자열이 사전 내에 존재하고 있지 않다면 OOV 문자열을 출력하는 것 혹은 자동정정하는 것을 행하지 않을 수 있다. 본 개시내용의 기법들에 따르면, 본 개시내용의 기법은, OOV 문자열들(예를 들어, 사전 내에 없는 문자열들)을 구성하는 사용자에 의해 입력된 문자열들을 폐기(discard) 및/또는 자동정정하는 것이 아니라, 이러한 OOV 문자열들을 출력하기 위해 컴퓨팅 디바이스에 의해 적용될 수 있다.
일 예에서, 본 개시내용의 기법들을 사용하여, 컴퓨팅 디바이스는 초기에, 프레즌스-감지 디스플레이에서 검출된 제스처의 표시에 근거하여 그래픽 키보드의 복수의 키들을 결정한다. 컴퓨팅 디바이스는 제스처의 표시에 대응하는 문자열을 출력할지 여부를 공간 모델 점수 및 언어 모델 점수에 근거하여 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스는 제스처가 가로질러 이동한 프레즌스-감지 스크린의 위치들에 적어도 부분적으로 근거하여 하나 이상의 키들에 대한 공간 모델 점수들을 결정할 수 있다. 공간 모델 점수들은 제스처가 가로질러 이동한 프레즌스-감지 스크린의 위치들에 적어도 부분적으로 근거하여 각각의 키의 확률들을 표시할 수 있다. 언어 모델 점수는 언어 상황(language context)에 적어도 부분적으로 근거하여 문자열의 확률을 표시할 수 있는바, 여기서 언어 상황은 사전 내에 있는 문자열들을 포함할 수 있고 그리고/또는 현재 제스처에 일시적으로 근접한 이전에 입력된 문자열들을 포함할 수 있다. 컴퓨팅 디바이스가 사전에 해당 문자열이 포함되어 있지 않다고 결정하는 경우 그 문자열을 자동정정하거나 출력을 자제하는 것이 아니라, 컴퓨팅 디바이스는 사전 내에 포함되어 있지 않은 그 문자열과 관련될 수 있는 사전-내에-없는 언어 모델 점수를 또한 결정할 수 있다. 결과적으로, 컴퓨팅 디바이스는 이러한 사전-내에- 없는 언어 모델 점수 및 공간 모델 점수에 근거하여 임의의 결합된 점수를 결정할 수 있다. 만약 컴퓨팅 디바이스가 이러한 결합된 점수가 임계조건을 만족시킨다고 결정한다면, 컴퓨팅 디바이스는 해당 문자열(예를 들어, OOV 문자열)을 디스플레이를 위해 출력할 수 있다. 이러한 방식으로, 컴퓨팅 디바이스는 사전 내에 포함되어 있지 않은 문자열에 대한 사전-내에-없는 언어 모델 점수를 사용하여, OOV 문자열을 디스플레이를 위해 출력할 수 있다(사용자 의도와 일치할 수 있음).
따라서, 본 개시내용의 기법들은 컴퓨팅 디바이스로 하여금, 단일의 연속적인 제스처 입력들 및 제스처-기반 그래픽 키보드들이 사용자에게 제공하는 속도 및 편이성을 향상 및/또는 유지시키면서, OOV 문자열을 결정할 수 있게 한다. 이처럼, 본 개시내용에서 설명되는 기법들은 사용자가 그래픽 키보드에서 OOV 문자열을 타이핑할 때의 속도를 향상시킬 수 있다. 본 기법들은 컴퓨팅 디바이스가 제스처 입력으로부터 문자열을 잘못 자동정정하거나 잘못 예측하는 것을 감소시킬 수 있거나 방지할 수 있다. 이러한 방식으로, 본 기법들은 사용자가 OOV 문자열을 입력할 때 자동정정되거나 혹은 예측된 문자열을 정정할 필요성을 감소시킬 수 있고 그리고/또는 제거할 수 있다. 결과적으로, 컴퓨팅 디바이스는 이러한 잘못들을 수동으로 정정하기 위해 사용자로부터 더 적은 수의 입력을 수신할 수 있고, 그럼으로써 문자열들을 입력하기 위한 사용자 노력을 감소시킬 수 있다. 더 적은 수의 입력들을 수신한 컴퓨팅 디바이스는, 일부 예들에서, 더 적은 수의 연산을 수행할 수 있고, 이에 따라 더 적은 전력을 소비할 수 있다.
도 1은 본 개시내용의 하나 이상의 실시형태들에 따른, 어휘목록-내에-없는 문자열을 제스처 키보드로 결정하도록 구성되어 있는 예시적인 컴퓨팅 디바이스를 나타낸 개념도이다. 도 1의 예에서, 컴퓨팅 디바이스(10)는 모바일 전화기일 수 있다. 그러나, 다른 예들에서, 컴퓨팅 디바이스(10)는 태블릿 컴퓨터, 개인용 휴대정보 단말기(Personal Digital Assistant, PDA), 랩탑 컴퓨터, 휴대용 게이밍 디바이스(portable gaming device), 휴대용 미디어 플레이어(portable media player), 전자책 리더(e-book reader), 시계, 텔레비젼 플랫폼(television platform), 혹은 또 다른 타입의 컴퓨팅 디바이스일 수 있다.
도 1에서 제시되는 바와 같이, 컴퓨팅 디바이스(10)는 사용자 인터페이스 디바이스(User Interface Device, UID)(12)를 포함한다. 컴퓨팅 디바이스(10)의 UID(12)는 컴퓨팅 디바이스(10)에 대한 입력 디바이스로서의 기능을 수행할 수 있고 출력 디바이스로서의 기능을 수행할 수 있다. UID(12)는 다양한 기술들을 사용하여 구현될 수 있다. 예를 들어, UID(12)는 프레즌스-감지 스크린을 사용하여 입력 디바이스로서의 기능을 수행할 수 있는바, 프레즌스-감지 스크린의 예로는 저항성 터치스크린(resistive touchscreen), 표면 탄성파 터치스크린(surface acoustic wave touchscreen), 용량성 터치스크린(capacitive touchscreen), 투사형 커패시턴스 터치스크린(projective capacitance touchscreen), 압력 감지 스크린(pressure sensitive screen), 음향 펄스 인식 터치스크린(acoustic pulse recognition touchscreen), 혹은 또 다른 프레즌스-감지 스크린 기술과 같은 것이 있다. UID(12)는, 액정 디스플레이(Liquid Crystal Display, LCD), 도트 매트릭스 디스플레이(dot matrix display), 발광 다이오드(Light Emitting Diode, LED) 디스플레이, 유기 발광 다이오드(Organic Light-Emitting Diode, OLED) 디스플레이, 전자-잉크(e-ink), 혹은 컴퓨팅 디바이스(10)의 사용자에게 시각적 정보를 출력할 수 있는 유사한 흑백 혹은 컬러 디스플레이 중 하나 이상을 사용하여 출력 디바이스로서의 기능을 수행할 수 있다.
컴퓨팅 디바이스(10)의 UID(12)는 컴퓨팅 디바이스(10)의 사용자로부터 촉각적 사용자 입력을 수신할 수 있는 프레즌스-감지 스크린을 포함할 수 있다. UID(12)는 컴퓨팅 디바이스(10)의 사용자로부터 하나 이상의 탭핑 제스처 및/또는 비-탭핑 제스처(예를 들어, 사용자가 손가락 혹은 스타일러스 펜(stylus pen)으로 UID(12)의 하나 이상의 위치들을 터치하는 것 혹은 가리키는 것)를 검출함으로써 촉각적 사용자 입력의 표시들을 수신할 수 있다. UID(12)의 프레즌스-감지 스크린은 사용자에게 출력을 프리젠테이션할 수 있다. UID(12)는 컴퓨팅 디바이스(10)에 의해 제공되는 기능과 관련될 수 있는 사용자 인터페이스(예를 들어, 사용자 인터페이스(14))로서 출력을 프리젠테이션할 수 있다. 예를 들어, UID(12)는 컴퓨팅 디바이스(10)에서 실행되는 애플리케이션들(예를 들어, 전자 메시지 애플리케이션, 인터넷 브라우저 애플리케이션, 등)의 다양한 사용자 인터페이스들을 프리젠테이션할 수 있다. 컴퓨팅 디바이스(10)의 사용자는 각각의 애플리케이션의 각각의 사용자 인터페이스를 통해 컴퓨팅 디바이스(10)로 임의의 기능을 수행하기 위해 이러한 애플리케이션들 중 하나 이상의 애플리케이션과 상호대화할 수 있다.
컴퓨팅 디바이스(10)는 사용자 인터페이스(User Interface)("UI") 모듈(20), 키보드 모듈(22), 그리고 제스처 모듈(24)을 포함할 수 있다. 모듈들(20, 22, 및 24)은, 컴퓨팅 디바이스(10) 내에 상주하여 컴퓨팅 디바이스(10) 상에서 실행되는, 소프트웨어, 하드웨어, 펌웨어, 또는 하드웨어, 소프트웨어, 및 펌웨어 모두의 혼합체를 사용하여 기술되는 동작들을 수행할 수 있다. 컴퓨팅 디바이스(10)는 복수의 프로세서들로 모듈들(20, 22, 및 24)을 실행시킬 수 있다. 컴퓨팅 디바이스(10)는 기반이 되는 하드웨어 상에서 실행되는 가상 머신(virtual machine)으로서 모듈들(20, 22, 및 24)을 실행시킬 수 있다. 모듈들(20, 22, 및 24)은 다양한 방식으로 구현될 수 있다. 예를 들어, UI 모듈(20)은 다운로드가능한(downloadable) 또는 미리-인스톨된(pre-installed) 애플리케이션(application) 혹은 "앱(app)"으로서 구현될 수 있다. 또 하나의 다른 예에서, UI 모듈(20)은 컴퓨팅 디바이스(10)의 오퍼레이팅 시스템(operating system)의 일부로서 구현될 수 있다.
컴퓨팅 디바이스(10)의 제스처 모듈(24)은 UID(12)의 프레즌스-감지 스크린에서 검출된 사용자 입력의 하나 이상의 표시들을 UID(12)로부터 수신할 수 있다. 일반적으로, UID(12)가 프레즌스-감지 스크린의 임의의 위치에서 검출된 사용자 입력의 표시를 수신할 때마다, 제스처 모듈(24)은 UID(12)로부터 사용자 입력에 대한 정보를 수신할 수 있다. 제스처 모듈(24)은 UID(12)로부터 수신된 정보를, 터치 이벤트들(touch event)의 시퀀스(sequence)와 같은, 제스처를 표시하는 이벤트들의 시간순으로-정렬된 세트로 집합시킬 수 있다. 시퀀스에서의 각각의 터치 이벤트는, 프레즌스-감지 스크린에서의 입력의 움직임 및/또는 프레즌스를 특징짓는 파라미터들(예를 들어, 언제(when), 어디서(where), 발생 방향(originating direction))을 나타내는 데이터 혹은 컴포넌트들을 포함할 수 있다. 시퀀스에서의 각각의 터치 이벤트는, UID(12)의 위치에 대응하는 위치 컴포넌트(location component), UID(12)가 그 위치에서 사용자 입력을 언제 검출하는지와 관련된 시간 컴포넌트(time component), 그리고 터치 이벤트가 그 위치에서 리프트업(lift up)에 대응하는지 아니면 푸시다운(push down)에 대응하는지와 관련된 액션 컴포넌트(action component)를 포함할 수 있다. 더욱이, 이벤트들 중 하나 이상의 이벤트는 동시발생 시간 컴포넌트(concurrent time component)를 가질 수 있고, 이러한 이벤트들은 단지 예시적 목적으로 터치 이벤트들로서 설명되며, 임의 형태의 프레즌스-감지 입력 디바이스에서 제스처를 표시할 수 있다.
제스처 모듈(24)은 터치 이벤트들의 시퀀스에 근거하여 사용자 입력의 하나 이상의 특성들을 결정할 수 있고, 터치 이벤트들의 시퀀스에서의 각각의 터치 이벤트 내에 이러한 하나 이상의 특성들에 대한 정보를 포함할 수 있다. 예를 들어, 제스처 모듈(24)은 사용자 입력의 시작 위치, 사용자 입력의 종료 위치, 사용자 입력의 일부분의 밀도, 사용자 입력의 일부분의 속도, 사용자 입력의 일부분의 방향, 그리고 사용자 입력의 일부분의 곡률을 결정할 수 있다. 터치 이벤트들의 시퀀스에서의 하나 이상의 터치 이벤트들은 (앞서 설명된 바와 같은 시간 컴포넌트, 위치 컴포넌트 그리고 액션 컴포넌트에 추가하여) 사용자 입력의 하나 이상의 특성들(예를 들어, 밀도, 속도, 등)에 대한 정보를 포함하는 특성 컴포넌트를 포함할 수 있다. 제스처 모듈(24)은 각각의 터치 이벤트와 관련된 컴포넌트들 혹은 파라미터화된 데이터를 포함하는 터치 이벤트들의 시퀀스를 키보드 모듈(22)에 출력으로서 전송할 수 있다.
도 1의 예에서, UI 모듈(20)은 UID(12)로 하여금 예시적인 사용자 인터페이스(14)를 프리젠테이션하도록 할 수 있다. 이러한 예에서, 사용자 인터페이스(14)는 UID(12)의 다양한 위치들에서 디스플레이되는 그래픽 요소들을 포함한다. 도 1은 사용자 인터페이스(14)의 편집 영역(edit region)(16A), 그리고 사용자 인터페이스(14)의 그래픽 키보드(16B)를 예시한다. 편집 영역(16A)은, 이미지들(images), 오브젝트들(objects), 하이퍼링크들(hyperlinks), 텍스트의 문자들, 등을 포함할 수 있다. 그래픽 키보드(16B)는 키들로서 디스플레이되는 그래픽 요소들을 포함한다. 사용자 인터페이스(14)는 제안된 문자열 영역들(38A 내지 38C)을 포함하는바, 제안된 문자열 영역들(38A 내지 38C)은 편집 영역(16A)에 포함되는 문자열들을 대체하기 위해, 선택가능한 스펠링 정정들(selectable spelling corrections) 혹은 문자열 제안들을 포함한다. 도 1의 예에서, 편집 영역(16A)은 텍스트의 문자들(예를 들어, 문자열)로서 디스플레이되는 그래픽 요소들을 포함한다. 컴퓨팅 디바이스(10)의 사용자는 그래픽 키보드(16B)의 키들을 디스플레이하는 UID(12)의 위치들에서 사용자 입력을 제공함으로써 편집 영역(16A)에 텍스트를 입력할 수 있다. 이와 같은 사용자 입력에 응답하여, 컴퓨팅 디바이스(10)는 제안된 문자열 영역들(38A 내지 38C)에 하나 이상의 제안된 문자열들을 출력할 수 있다.
UI 모듈(20)은 UID(12)에 의해 검출된 입력에 근거하여 결정들을 행하기 위해 그리고 UID(12)에 의해 프리젠테이션되는 출력을 발생시키기 위해 컴퓨팅 디바이스(10)의 다양한 컴포넌트들 간의 중재자(intermediary)로서 동작할 수 있다. 예를 들어, UI 모듈(20)은 그래픽 키보드(16B)에 포함되는 키들의 키보드 레이아웃(keyboard layout)의 표현을 입력으로서 키보드 모듈(22)로부터 수신할 수 있다. UI 모듈(20)은 UID(12)에 의해 검출되는 사용자 입력에 대한 정보로부터 발생된 터치 이벤트들의 시퀀스를 입력으로서 제스처 모듈(24)로부터 수신할 수 있다. UI 모듈(20)은 터치 이벤트들의 시퀀스에서의 위치 컴포넌트들에 근거하여, 하나 이상의 위치 컴포넌트들이 하나 이상의 키들의 선택에 근사(approximate)하고 있음을 결정할 수 있다(예를 들어, UI 모듈(20)은 터치 이벤트들 중 하나 이상의 터치 이벤트의 위치가 그래픽 키보드(16B)를 프리젠테이션하는 UID(12)의 임의 영역에 대응함을 결정할 수 있다). 제스처 모듈(24)은 UID(12)가 키들 각각을 프리젠테이션하는 위치들과 함께 터치 이벤트들의 시퀀스를 출력으로서 키보드 모듈(22)에 전송할 수 있다. 이에 응답하여, UI 모듈(20)은 하나 이상의 제안된 문자열들을 키보드 모듈(22)로부터 수신할 수 있다. UI 모듈(20)은 편집 영역(16A) 및/또는 문자열 영역들(38A 내지 38C) 내에 하나 이상의 문자열들을 포함하도록 사용자 인터페이스(14)를 업데이트할 수 있다. UI 모듈(20)은 UID(12)로 하여금 그 업데이트된 사용자 인터페이스(14)를 프리젠테이션하도록 할 수 있다.
컴퓨팅 디바이스(10)의 키보드 모듈(22)은 하나 이상의 문어적 언어들(written languages)(예를 들어, 영어, 스페인어 등)과 관련된 복수의 키들을 포함하는 키보드 레이아웃을 (사용자 인터페이스(14))의 그래픽 키보드(16B)로서 포함시키기 위해) 출력으로서 UI 모듈(20)에 전송할 수 있다. 키보드 모듈(22)은 키보드 레이아웃 내의 복수의 키들의 각각의 키에 하나 이상의 문자들 혹은 동작들을 할당할 수 있다. 예를 들어, 키보드 모듈(22)은 영어로 된 언어를 타이핑하는데 사용되는 문자들을 나타내는 키들을 포함하는 쿼티(QWERTY) 키보드 레이아웃을 발생시킬 수 있다. 쿼티 키보드 레이아웃은 또한, 영어로 된 언어를 타이핑하는데 사용되는 동작들을 나타내는 키들(예를 들어, 백스페이스 키(backspace key), 딜리이트 키(delete key), 스페이스바 키(spacebar key), 엔터 키(enter key), 등)을 포함할 수 있다.
키보드 모듈(22)은 제스처 모듈(24)에 의해 발생된 터치 이벤트들의 시퀀스를 나타내는 데이터를 제스처 모듈(24)로부터 수신할 수 있다. 키보드 모듈(22)은 또한, UID(12)가 그래픽 키보드(16B)의 키들 각각을 프리젠테이션하는, UID(12)의 프레즌스-감지 스크린의 위치들을 나타내는 데이터를 제스처 모듈(24)로부터 수신할 수 있다. 키보드 모듈(22)은 키들의 위치들에 근거하여 터치 이벤트들의 시퀀스가 하나 이상의 키들의 선택을 나타낸다고 결정할 수 있다. 키보드 모듈(22)은, 본 개시내용의 기법들에 따라, 이러한 선택에 근거하여 하나 이상의 문자열들을 결정할 수 있는바, 여기서 문자열 내의 각각의 문자는 그래픽 키보드의 키에 대응한다. 키보드 모듈(22)은 사용자 인터페이스(14)의 편집 영역(16A)에 포함시키기 위해 하나 이상의 문자열들을 표시하는 데이터를 UI 모듈(20)에 전송할 수 있다.
터치 이벤트들의 시퀀스가 하나 이상의 키들의 선택을 나타내는 지를 결정하기 위해 키보드 모듈(22)은 공간 모델(26)을 포함할 수 있다. 일반적으로, 공간 모델(26)은 사용자 입력과 관련된 위치 데이터에 근거하여 그래픽 키보드의 특정 키가 선택되었을 하나 이상의 확률들을 발생시킬 수 있다. 일부 예들에서, 공간 모델(26)은 각각의 키에 대한 이변수 가우시안 모델(bivariate Gaussian model)을 포함한다. 임의의 키에 대한 이변수 가우시안 모델은 소정의 키를 나타내는 UID(12)의 위치들에 대응하는 좌표들(예를 들어, (x,y) 좌표 쌍들)의 분포를 포함할 수 있다. 보다 구체적으로 살펴보면, 일부 예들에서, 임의의 키에 대한 이변수 가우시안 모델은, 사용자가 소정의 키를 선택하려고 할 때, 사용자에 의해 가장 빈번하게 선택되는 UID(12)의 위치들에 대응하는 좌표들의 분포를 포함할 수 있다. 공간 모델(26)의 더 높은 밀도 영역과 사용자 입력의 위치 데이터 간의 거리가 짧으면 짧을수록, 공간 모델(26)과 관련된 그 키가 선택되었을 확률은 더 높아진다. 공간 모델(26)의 더 높은 밀도 영역과 사용자 입력의 위치 데이터 간의 거리가 크면 클수록, 공간 모델(26)과 관련된 그 키가 선택되었을 확률은 더 낮아진다.
키보드 모듈(22)은 공간 모델(26)을 사용하여, 터치 이벤트들의 시퀀스에서의 하나 이상의 터치 이벤트들의 위치 컴포넌트들(예를 들어, 좌표들)을 그래픽 키보드(16B)의 하나 이상의 키들의 각각의 위치들과 비교할 수 있고, 이러한 비교에 근거하여 키의 선택이 일어났을 확률을 발생시킬 수 있다. 일부 예들에서, 키보드 모듈(22)은 공간 모델(26)을 사용하여 공간 모델 점수를 발생시킬 수 있다. 공간 모델 점수는 제스처가 가로질러 이동한 UID(12)의 위치들에 적어도 부분적으로 근거하여 임의의 선택된 키의 확률을 표시할 수 있다. 일부 예들에서, 공간 모델 점수는 제스처가 가로질러 이동한 UID(12)의 위치들에 적어도 부분적으로 근거하여 그 선택된 키들의 그룹의 결합된 확률을 표시할 수 있다.
예를 들어, 키보드 모듈(22)은 공간 모델(26)을 사용하여, 터치 이벤트들의 시퀀스에서의 하나 이상의 터치 이벤트의 위치 컴포넌트와 그래픽 키보드(16B)의 특정 키의 키 위치를 비교할 수 있다. 시퀀스에서의 각각의 터치 이벤트의 위치 컴포넌트는 UID(12)의 하나의 위치를 포함할 수 있다. 그래픽 키보드(16B) 내의 키의 키 위치(예를 들어, 키의 중심)는 UID(12)의 상이한 위치를 포함할 수 있다. 키보드 모듈(22)은 공간 모델(26)을 사용하여 두 개의 위치들 간의 유클리드 거리(Euclidian distance)를 결정할 수 있고 키가 선택된 유클리드 거리에 근거하여 확률을 발생시킬 수 있다. 공간 모델(26)은, 하나 이상의 터치 이벤트들과 더 큰 유클리드 거리를 공유하는 키보다 하나 이상의 터치 이벤트들과 더 작은 유클리드 거리를 공유하는 키에 대해 더 높은 확률을 표시할 수 있다. 각각의 키와 관련된 공간 모델 확률에 근거하여, 키보드 모듈(22)은 가장 높은 공간 모델 확률들을 갖는 개개의 키 선택들을 키들의 시간순으로-정렬된 시퀀스로 집합시킬 수 있고, 그 다음에 키보드 모듈(22)은 임의의 문자열을 나타낼 것을 결정할 수 있다. 각각의 키의 결합된 확률들은 문자열에 대한 공간 모델 점수를 나타낼 수 있다.
키보드 모듈(22)은 터치 이벤트들에 대응하는 키들의 시퀀스에 근거하여 하나 이상의 문자열들에 대한 언어 모델 점수들을 결정하기 위해 언어 모델(28)을 사용할 수 있다. 예를 들어, 키보드의 각각의 키는 문자 혹은 키보드 동작을 나타낼 수 있다. 키보드 모듈(22)은 키들의 시퀀스에 근거하여 하나 이상의 키 선택들이 나타내는 특정 문자들을 결정할 수 있다. 숫자 혹은 소문자와 같은 문자는 단일 문자 키 선택(예를 들어, <글자-키>, <숫자-키>, 등)을 요구할 수 있고, 대문자와 같은 키는 두 개의 키 선택들(예를 들어, <시프트-키> + <글자-키>, 등)을 요구할 수 있다.
키보드 모듈(22)은 제스처에 대응하는 키들의 시퀀스들에 근거하여 하나 이상의 문자열들의 그룹에 대한 언어 모델 점수들을 결정하기 위해 컴퓨팅 디바이스(10)의 언어 모델(28)에 액세스할 수 있다. 즉, 키보드 모듈(22)은 하나 이상의 제스처들의 표시들을 수신함에 응답하여 언어 모델(28)을 사용하여 하나 이상의 문자열들의 그룹을 점진적으로 발생시킬 수 있다. 문자열은 언어 모델(28) 내에 포함되어 있는 문자열 혹은 OOV 문자열의 접두어(prefix) 혹은 일부분을 포함하는 문자들의 그룹일 수 있다. 일부 예들에서, 문자열은 언어 모델(28) 내에 포함되어 있는 완전한 문자열 혹은 완전한 OOV 문자열을 포함하는 문자들의 그룹일 수 있다. 키보드 모듈(22)이 하나 이상의 제스처들의 표시들을 수신함에 따라, 키보드 모듈(22)은 문자열들에 대응하는 공간 모델 점수 및 언어 모델 점수를 점진적으로 결정할 수 있다. 공간 모델 점수 및 언어 모델 점수의 사용을 통해, 키보드 모듈(22)은 각각의 문자열에 대한 공간 모델 점수 및 언어 모델 점수에 근거하여 각각의 문자열에 대한 결합된 점수를 결정할 수 있다. 키보드 모듈(22)이 제스처들의 후속 표시들을 결정함에 따라, 키보드 모듈(22)은 공간 점수, 언어 점수, 및/또는 결합된 점수를 점진적으로 업데이트할 수 있다. 예를 들어, 키보드 모듈(22)은, 프레즌스-감지 스크린에서 검출된 하나 이상의 제스처들의 복수의 표시들을 수신하면서, 언어 상황에 근거하여 어휘목록-내에-없는 언어 모델 점수를 업데이트할 수 있고, 여기서 언어 상황은 하나 이상의 제스처들의 복수의 표시들 중 적어도 하나의 표시에 응답하여 변한다. 예를 들어, 언어 모델(28) 내의 문자열들과 관련된 언어 모델 점수들은 입력되는 문자열들에 응답하여 변할 수 있다. 어휘목록-내에-없는 언어 모델 점수는 언어 모델(28) 내에 포함되어 있는 언어 모델 점수에 근거하고 있을 수 있기 때문에, 키보드 모듈(22)은 변하는 언어 상황에 근거하여 어휘목록-내에-없는 언어 모델 점수를 업데이트할 수 있다. 결합된 점수는 문자열이 제스처에 대응할 확률을 표시할 수 있기 때문에, 키보드 모듈(22)은 본 개시내용에서 후속하여 더 설명되는 바와 같이, 문자열들의 순위를 이들의 각각의 결합된 점수들에 의해 정할 수 있다. 그 다음에, 키보드 모듈(22)은 문자열들을 출력할 수 있고, 그리고/또는 출력을 위해 이러한 문자열들에 근거하여 다른 문자열들을 결정할 수 있다.
일반적으로, 컴퓨팅 디바이스(10)의 언어 모델(28)은 문어적 언어 어휘목록 내에 있는 문자열들의 리스트(list), 예를 들어, 단어들의 리스트를 포함할 수 있다. 일부 예들에서, 언어 모델(28)은 컴퓨팅 디바이스(10)에서 저장되어 있거나 또는 컴퓨팅 디바이스(10)에 의해 액세스가능한 원격 컴퓨팅 디바이스에서 저장되어 있는 사전(예를 들어, 단어들의 어휘목록을 포함하는 사전)에 근거하는 문자열들의 세트를 포함할 수 있고, 그리고/또는 이러한 문자열들의 세트에 기반을 두고 있을 수 있다. 일부 예들에서, 사전은 단어들의 어휘목록을 포함할 수 있다. 단어들의 어휘목록은 문어적 언어(written language) 및/또는 구어적 언어(spoken language)에서 사용되는 단어들의 집합체일 수 있다. 사전은 구조화되는 방식으로 어휘목록의 하나 이상의 단어들을 저장하는 데이터 구조체로서 구현될 수 있다. 언어 모델(28)은 소정의 언어 상황에서 문자열이 일어나는 빈도에 근거하여 각각의 문자열의 확률을 표시할 수 있다. 예를 들어, 문자열 "door"는, 문자열 "the" 이후에 영어로 된 언어에서 더 빈번하게 사용될 수 있고, 따라서, 예를 들어, 문자열 "the" 이후의 문자열 "run"보다 더 큰 확률과 관련될 수 있다.
키보드 모듈(22)은 언어 모델(28) 내의 하나 이상의 문자열들, 예를 들어, 단어들을 식별하기 위해 언어 모델(28) 내에서 검색(lookup)을 수행할 수 있는바, 여기서 언어 모델(28)은 제스처에 대응하는 키들과 관련된 문자들의 그룹 중 일부 혹은 모두를 포함하고 있다. 언어 모델(28)은 n-그램 언어 모델(n-gram language model)들을 구현할 수 있다. n-그램 언어 모델은 아이템(item)들의 연속적인 시퀀스에서의 이전 아이템들에 근거하여 아이템들의 연속적인 시퀀스에서의 아이템
Figure 112014040613733-pat00001
(글자, 단어, 구분 문자(punctuation character), 혹은 다른 구획문자(delimiter))에 대한 확률 분포(즉,
Figure 112014040613733-pat00002
)를 제공할 수 있다. 예를 들어, 문자-레벨 바이그램 언어 모델(character-level bigram language model)(n=2인 n-그램 모델)은 글자 "w"가 글자들의 시퀀스 "no" 뒤에 올 확률을 제공할 수 있다. 또 하나의 다른 예에서, 단어-레벨 트리그램 언어 모델(word-level trigram language model)은 "fox"가 단어 시퀀스 "the quick brown" 뒤에 올 확률을 제공할 수 있다.
키보드 모듈(22)은, 예를 들어, 사용자에 의해 수행된 제스처의 표시에 대응하는 문자, 사전 내에 있는 문자열들, 그리고/또는 이전에 입력된 문자열들 등을 포함할 수 있는(하지만 이러한 것으로만 한정되는 것은 아님) 언어 상황에 근거하는 문자열에 대해 언어 모델 점수를 결정하기 위해 언어 모델(28)을 사용할 수 있다. 예를 들어, 키보드 모듈(22)은 제스처에 대응하는 키들과 관련된 문자들의 그룹을 결정할 수 있다. 문자들의 그룹은 문자열의 접두어 혹은 일부분일 수 있다. 문자열은 언어 모델(28) 내에 포함되어 있을 수 있거나, 또는 어휘목록-내에-없는 문자열일 수 있다. 키보드 모듈(22)은 접두어에 각각 대응하는 언어 모델(28) 내의 하나 이상의 문자열들을 결정하기 위해 탐색 혹은 "미리보기(look ahead)"를 행할 수 있다. 예를 들어, 문자열 "s-a-t"가 주어지는 경우, 키보드 모듈(22)은 언어 모델(28)을 사용하여 문자열 "satin"의 확률을 결정할 수 있다. 키보드 모듈(22)은 이러한 확률에 근거하여 언어 모델 점수를 결정할 수 있다. 이러한 방식으로, 소정의 언어 상황에서 더 높은 확률들을 갖는 언어 모델(28) 내의 문자열들은 더 높은 언어 모델 점수들을 가질 수 있다.
일부 예들에서, 키보드 모듈(22)은 제스처에 대응하는 키들과 관련된 문자들의 복수의 서로 다른 그룹들의 검색을 수행할 수 있는바, 예를 들어, 여기서 문자들의 각각의 그룹은 문자열의 접두어 혹은 일부분일 수 있다. 키보드 모듈(22)은, 문자열의 접두어 혹은 일부분일 수 있는 문자들의 그룹의 문자들 중 일부 혹은 모두를 포함하는 언어 모델(28) 내의 하나 이상의 문자열들을 식별하기 위해 언어 모델(28)을 사용할 수 있다. 도 1에서 제시되는 바와 같이, 사용자는 키들 "s-a-r-t"를 가로질러 이동하는 UID(12)에서의 제스처(30)를 수행할 수 있다. 따라서, 키보드 모듈(22)은 "s-a-r"로 시작하는 문자열들의 그룹을 결정하기 위해 접두어 "s-a-r"의 검색을 수행할 수 있다. 유사하게, 키보드 모듈(22)은 "s-a-t"로 시작하는 문자열들의 그룹을 결정하기 위해 접두어 "s-a-t"의 검색을 수행할 수 있다.
일부 예들에서, 키보드 모듈(22)은 각각의 문자열에 대한 각각의 공간 및 언어 모듈 점수들에 적어도 부분적으로 근거하여 각각의 문자열에 대한 결합된 점수를 결정한다. 따라서, 문자열에 대한 결합된 확률은, 언어 상황에 근거하는 문자열의 확률, 그리고 키들의 세트가 주어지는 경우 제스처의 정확도를 나타낼 수 있다. 키보드 모듈(22)은 가능성이 가장 높은 문자열로부터 가능성이 가장 낮은 문자열로 배열되는 내림차순으로 문자열들의 그룹 내의 각각의 문자열을 결합된 점수에 의해 정렬할 수 있다. 일부 예들에서, 키보드 모듈(22)은 가장 높은 확률들을 갖는 하나 이상의 문자열에 근거하여 하나 이상의 문자열들을 결정할 수 있다. UID(12)는 이러한 문자열들을 제안된 문자열 영역들(38A 내지 38C) 내에 제안된 문자열들로서 출력할 수 있다. 다른 예들에서, 가장 높은 확률들을 갖는 하나 이상의 후보 문자열들은 편집 영역(16A)에서 출력될 수 있다.
만약 컴퓨팅 디바이스(10)가 언어 모델(28)이 문자열을 포함하고 있지 않다고 결정하면 문자열의 출력을 자제하거나 혹은 문자열을 자동정정하는 것이 아니라, 컴퓨팅 디바이스(10)는 언어 모델(28) 내에 포함되어 있지 않은 문자열(예를 들어, OOV 문자열)과 관련될 수 있는 어휘목록-내에-없는 언어 모델 점수를 결정할 수 있다. 즉, 어휘목록-내에-없는 문자열이 언어 모델(28) 내에 포함되어 있지 않아도(그리고 이에 따라 어휘목록-내에-없는 문자열에 대한 언어 모델 점수가 언어 모델(28)로부터 입수가능하지 않아도), 키보드 모듈(22)은 어휘목록-내에-없는 문자열과 관련될 어휘목록-내에-없는 언어 모델 점수를 결정할 수 있다. 결과적으로, 컴퓨팅 디바이스(10)는 어휘목록-내에-없는 언어 모델 점수 및 공간 모델 점수에 근거하여 임의의 결합된 점수를 결정할 수 있다. 이러한 방식으로, 컴퓨팅 디바이스(10)는, 사전 내에 포함되어 있지 않은 문자열에 대한 어휘목록-내에-없는 언어 모델 점수를 사용하여, 디스플레이를 위해 OOV 문자열들을 (비록 이러한 어휘목록-내에-없는 문자열이 언어 모델(28) 내에 포함되어 있지않아도) 여전히 출력할 수 있다.
예시적 목적으로, 이러한 기법들은 도 1을 참조하여 더 상세하게 설명된다. 도 1의 예에서, 컴퓨팅 디바이스(10)는 복수의 키들을 포함하는 그래픽 키보드(16B)를 디스플레이를 위해 출력한다. 예를 들어, 키보드 모듈(22)은 그래픽 키보드(16B)의 표현을 포함하는 데이터를 발생시킬 수 있다. UI 모듈(20)은 사용자 인터페이스(14)를 발생시킬 수 있고, 그래픽 키보드(16B)를 나타내는 데이터에 근거하여 사용자 인터페이스(14) 내에 그래픽 키보드(16B)를 포함할 수 있다. UI 모듈(20)은 UID(12)의 프레즌스-감지 스크린에서 사용자 인터페이스(14)를 디스플레이하기 위한 명령들을 포함하는 정보를 UID(12)에 전송할 수 있다. UID(12)는 이러한 정보를 수신할 수 있고, UID(12)의 프레즌스-감지 스크린으로 하여금 편집 영역(16A), 그래픽 키보드(16B), 및 제안된 문자열 영역들(38A 내지 38C)을 포함하는 사용자 인터페이스(14)를 프리젠테이션하도록 할 수 있다. 그래픽 키보드(16B)는 복수의 키들을 포함할 수 있다.
컴퓨팅 디바이스(10)는, UID(12)의 프레즌스-감지 디스플레이에서 검출된 제스처(30)의 표시를 수신함에 응답하여, 복수의 키들 중 하나 이상의 키의 선택을 결정할 수 있다. 예를 들어, UID(12)가 프레즌스-감지 스크린에서 사용자 인터페이스(14)를 프리젠테이션함에 따라, 사용자는 UID(12)가 그래픽 키보드(16B)를 프리젠테이션하는 프레즌스-감지 스크린의 위치에서 제스처 사용자 입력(30)(혹은 간단히 "제스처"(30))을 제공할 수 있다. 도 1은 제스처(30)의 경로의 일부분들(34A 내지 4J)(집합적으로 "일부분들"(34))을 포함하는 제스처(30)의 경로를 예시하는바, 이들은 각각 제스처(30)의 경로의 일부분 혹은 서브섹션(subsection)을 나타낸다. 예를 들어, 일부분(34A)은 제스처(30)의 시작 부분을 나타내고, 일부분(34J)은 제스처(30)의 종료 부분을 나타내고, 그리고 일부분들(34B 내지 34I) 각각은 제스처(30)의 중간-부분들을 나타낸다. 일부분들(34) 각각은 예시적 목적으로 도 1에서 파선으로 된 원들로 구획되어 있지만, UID(12)는 일부 예들에서 이러한 파선으로 된 원들을 출력하지 않을 수 있으며, 이러한 일부분들은 다양한 서로 다른 예들에서 더 클 수도 있고 그리고/또는 더 작을 수도 있다.
제스처 모듈(24)은 UID(12)로부터 제스처(30)를 표시하는 정보를 수신할 수 있고, 이러한 정보를 터치 이벤트들(예를 들어, 위치 컴포넌트, 시간 컴포넌트, 및 액션 컴포넌트를 포함하는 각각의 터치 이벤트)의 시간순으로-정렬된 시퀀스로 집합시킬 수 있다. 제스처 모듈(24)은 터치 이벤트들을 키보드 모듈(22)로 전송할 수 있다. 키보드 모듈(22)은 각각의 터치 이벤트와 관련된 정보(예를 들어, 위치, 시간, 액션, 등)와 함께 터치 이벤트들의 시퀀스를 UI 모듈(20)로부터 수신할 수 있다. 키보드 모듈(22)은, 터치 이벤트들의 시퀀스에서의 터치 이벤트들의 위치들과 동일한 UID(12)의 근사 위치들을 공유하고 있는 하나 이상의 키들을 결정하기 위해, 터치 이벤트들의 시퀀스에서의 각각의 터치 이벤트의 위치 컴포넌트를 각각의 키 위치와 비교할 수 있다. 예를 들어, 키보드 모듈(22)은 하나 이상의 터치 이벤트들이 키의 선택에 대응할 확률을 표시하는 공간 모델 점수를 결정하기 위해 공간 모델(26)을 사용할 수 있다.
키보드 모듈(22)은 복수의 키들로부터의 하나 이상의 문자들에 근거하여 문자열을 결정할 수 있다. 예를 들어, 키보드 모듈(22)은 그래픽 키보드(16B)의 <S-키>, <A-키>, <T-키>, <O-키>, 및 <K-키>의 순차적 선택에 근거하여 키들의 시퀀스가 문자열 "satok"을 나타낸다고 결정할 수 있다. 일부 예들에서, 키보드 모듈(22)은 "sartik", "satyok" 등과 같은 다른 가능한 문자열들을 결정할 수 있다. 일 예로서 "satok"을 취하면, 키보드 모듈(22)은 제스처에 의해 표시된 키들의 선택에 대응하는 문자들의 그룹 "s-a-t-o-k"에 근거하여 문자열을 결정하기 위해 언어 모델(28)을 사용할 수 있다. 유사하게, 키보드 모듈(22)은 또한, 제스처에 의해 표시된 가능한 키들의 상이한 그룹들의 선택에 각각 대응하는 문자들의 그룹 "s-a-t-i-n-g" 및 "s-a-r-i-n"에 근거하여 하나 이상의 문자열들을 결정하기 위해 언어 모델(28)을 사용할 수 있다.
일부 예들에서, 키보드 모듈(22)은, 문자열들 중 하나 이상 문자열이 문자열을 식별하기 위해 컴퓨팅 디바이스(10)에 의해 사용되는 사전 내에 포함되어 있지 않다고 결정할 수 있다. 즉, 일부 예들에서, 언어 모델(28)은 하나 이상의 사전들의 문자열들을 모델링 및/또는 포함할 수 있고, 키보드 모듈(22)은 제스처에 의해 표시된 키들의 선택에 대응하는 문자들의 그룹을 포함하는 문자열이 언어 모델(28) 내에 포함되어 있지 않은지 여부 그리고 이에 따라 사전(예를 들어, 단어들의 어휘목록을 포함하는 사전) 내에 포함되어 있지 않은지 여부를 결정할 수 있다. 예를 들어, 일 예로서, 키보드 모듈(22)은 "satok"이 언어 모델(28) 내에 포함되어 있지 않음을 결정할 수 있다. 따라서, 문자열 "satok"은 어휘목록-내에-없는(Out-Of-Vocabulary, OOV) 문자열임이 결정될 수 있다. 그러나, 키보드 모듈(22)은 "satin" 및 "sarin"이 언어 모델(28) 내에 포함되어 있는 문자열임을 결정할 수 있다. 문자열들 "satin" 및 "sarin"은 "satok"과 동일한 접두어 "sa"를 공유하고 있으며, 유사한 제스처 경로들과 관련되어 있다. 따라서, 키보드 모듈(22)은, 입력된 문자열 "satok"을 포함하는 언어 상황이 주어지면 문자열들("satin" 및 "sarin")의 각각의 확률들을 표시하는 "satin" 및 "sarin"에 대한 언어 모델 점수들을 결정할 수 있다. 앞서 설명된 바와 같이, 키보드 모듈(22)은 또한, 제스처(30)가 가로질러 이동한 키들이 주어지면 문자열들("satin" 및 "sarin")의 각각의 확률들을 표시하는 "satin" 및 "sarin"에 대한 공간 모델 점수들을 결정할 수 있다.
본 개시내용의 기법들에 따르면, 언어 모델(28)은 "satok"을 포함하고 있지 않기 때문에 "satok"을 폐기하는 것이 아니라, 키보드 모듈(22)이 문자열 "satok"을 어휘목록-내에-없는 언어 모델 점수와 관련시킬 수 있다. 어휘목록-내에-없는 언어 모델 점수는 (하나 이상의 사전들로부터의 문자열들을 포함할 수 있는) 언어 모델(28) 내에 포함되어 있지 않은 문자열에 대한 대체 언어 모델 점수(substitute language model score)를 나타낼 수 있다. 일부 예들에서, 어휘목록-내에-없는 언어 모델 점수는 미리-결정된 값일 수 있다. 다른 예들에서, 키보드 모듈(22)은 언어 모델(28) 내에서 가능성이-가장 낮은 문자열의 확률에 적어도 부분적으로 근거하여 어휘목록-내에-없는 언어 모델 점수를 결정할 수 있다. 예를 들어, 도 4에 더 예시되는 바와 같이, 언어 모델(28) 내에 있는 각각의 문자열은 소정의 상황에서 문자열의 확률을 표시하는 값과 관련될 수 있다. 키보드 모듈(22)은 어휘목록-내에-없는 언어 모델 점수를 언어 모델(28) 내에 있는 가능성이-가장 낮은 문자열의 언어 모델 점수가 되도록 결정할 수 있다. 어떤 경우에서건, 키보드 모듈(22)은 문자열 "satok"을 어휘목록-내에-없는 언어 모델 점수와 관련시킬 수 있다. 추가적으로, 키보드 모듈(22)은, 앞서 설명된 바와 같이, 키들 "s-a-t-o-k" 및 제스처(30)에 근거하여 "satok"에 대한 공간 모델 점수를 결정할 수 있다.
키보드 모듈(22)은, (문자열 "satok"(예를 들어, OOV 문자열)을 포함할 수 있는) 문자열들 중 하나 이상의 문자열에 대한 결합된 점수들을 결정할 수 있다. 키보드 모듈(22)은 문자열의 각각의 공간 모델 점수 및 언어 모델 점수에 근거하여 각각의 문자열에 대한 결합된 점수를 결정할 수 있다. 결합된 점수는 문자열이 제스처에 대응할 확률을 표시할 수 있다. 일부 예들에서, 키보드 모듈(22)은 하나 이상의 문자열 제안들(예를 들어, 후보 문자열 및/또는 OOV 문자열)을 문자열 제안 영역들(38A 내지 38C)에 출력할 수 있다. 예를 들어, 도 1에 제시되는 바와 같이, 가장 높은 결합된 점수들을 갖는 세 개의 문자열들이 디스플레이를 위해, 제안된 문자열 영역들(38A 내지 38C)에 출력될 수 있다. 도 1의 예에서, 문자열 "satok"과 관련된 결합된 점수는 가장 높은 결합된 점수일 수 있다. "satok"에 대해 어휘목록-내에-없는 언어 모델 점수는 낮을 수 있지만, "satok"과 관련된 공간 모델 점수는 다른 후보 문자열들의 공간 모델 점수들에 비해 높을 수 있는데, 그 이유는 OOV 문자열 "satok"을 입력하려는 의도를 갖는 사용자로 인해 더 정확하게 "s-a-t-o-k" 키들을 가로질러 이동하는 제스처 경로(30)가 일어나기 때문이다. 결과적으로, "satok"의 결합된 점수는 후보 문자열들 가운데 가장 높은 결합된 점수들 중 하나로 유지될 수 있다. 따라서, 키보드 모듈(22)은, 키보드 모듈(22)에 의해 결정된 후보 문자열들 가운데 가장 높은 결합된 점수들을 갖는 세 개의 문자열들 중 하나로서 OOV 문자열 "satok"을 디스플레이를 위해 문자열 제안 영역(38A)에 출력할 수 있다.
키보드 모듈(22)은 하나 이상의 후보 문자열들 또는 어구들 그리고 관련된 순위들을, 사용자 인터페이스(14)의 제안된 문자열 영역들(38A 내지 38C)에 개개의 제안된 문자열들(38)로서 포함시키기 위해 혹은 사용자 인터페이스(14)의 편집 영역(16A)에 포함시키기 위해, UI 모듈(20)에 출력할 수 있다. UI 모듈(20)은 하나 이상의 후보 문자열들 혹은 어구들의 순위와 함께 키보드 모듈(22)로부터 하나 이상의 후보 문자열 또는 어구들(여기에는 미가공 문자열(raw character string)이 포함됨)을 수신할 수 있다. UI 모듈(20)은 제안된 문자열들로서 세 개의 가장 높은 순위의 후보 문자열들을 포함함으로써, 제안된 문자열 영역들(38A 내지 38C)을 업데이트할 수 있다. 도 1에서 예시되는 바와 같이, 사용자가 제스처(30)로 OOV 문자열 혹은 어구를 입력하려고 하는 경우, 문자열 제안 영역(38A)과 함께 예시되는 바와 같이, UI 모듈(20)은 미가공 문자열(예를 들어, OOV 문자열)을 포함할 수 있다. 사용자 인터페이스(14)로부터, 사용자는, UID(12)가 제안된 문자열 영역들(38A 내지 38C)을 출력하는 UID(12)의 위치에서 입력을 제공하거나 탭핑을 행함으로써, 제안된 문자열들(38) 중 하나를 선택할 수 있다. 예를 들어, 사용자는 UID(12)가 임의의 제안된 문자열, 예를 들어, "satok"을 프리젠테이션하는 UID(12)의 그 위치 위에서 탭핑을 행한다. 제안된 문자열 영역(38A) 위에서의 탭핑은 UI 모듈(20)로 하여금 사용자 인터페이스(14)를 업데이트하도록 할 수 있고, OOV 문자열 "satok"을 편집 영역(16A)에 포함하도록 할 수 있다.
이러한 방식으로, 본 개시내용의 기법들은 그래픽 키보드에서 입력되는 제스처 입력에 근거하여 컴퓨팅 디바이스가 OOV 문자열들 혹은 어구들을 수신할 수 있게 한다. 본 개시내용의 기법들은 컴퓨팅 디바이스가 문자열을 더 정확하게 결정할 수 있게 하며 OOV 문자열을 출력할 수 있게 한다. 본 기법에서 사용자는 컴퓨팅 디바이스를 정정하기 위해 더 적은 수의 입력들을 제공할 수 있고 또는 OOV 문자열들을 입력하기 위해 키들에서 개별적으로 탭핑을 제공할 수 있기 때문에, 본 기법들은 또한, 사용자가 컴퓨팅 디바이스에서 더욱 빠르게 문자열들을 입력할 수 있게 한다. 이와 같은 컴퓨팅 디바이스는 더 적은 수의 사용자 입력들을 프로세싱할 수 있고, 더 적은 수의 연산을 실행할 수 있으며, 결과적으로 더 적은 전력을 소비할 수 있다.
도 2는 본 개시내용의 하나 이상의 실시형태들에 따른, 예시적인 컴퓨팅 디바이스를 나타낸 블록도이다. 도 2의 컴퓨팅 디바이스(10)는 아래에서 도 1과 연계되어 설명된다. 도 2는 컴퓨팅 디바이스(10)의 단지 일 특정 예를 나타내고, 컴퓨팅 디바이스(10)의 다른 많은 예들이 다른 사례들에서 사용될 수 있으며, 예시적인 컴퓨팅 디바이스(10)에 포함된 컴포넌트들의 서브세트를 포함할 수 있고, 혹은 도 2에 제시되지 않은 추가적인 컴포넌트들을 포함할 수 있다.
도 2의 예에서 제시되는 같이, 컴퓨팅 디바이스(10)는 사용자-인터페이스 디바이스(12)(예를 들어, 프레즌스-감지 디스플레이), 하나 이상의 프로세서들(40), 하나 이상의 입력 디바이스들(42), 하나 이상의 통신 유닛들(44), 하나 이상의 출력 디바이스들(46), 그리고 하나 이상의 저장 디바이스들(48)을 포함한다. 컴퓨팅 디바이스(10)의 저장 디바이스들(48)은 또한, UI 모듈(20), 키보드 모듈(22), 제스처 모듈(24), 공간 모델(26), 및 언어 모듈(28)을 포함한다. 통신 채널들(50)은 컴포넌트간 통신을 위해 (물리적으로, 통신가능하게, 그리고/또는 동작가능하게) 컴포넌트들(12, 40, 42, 44, 46, 48, 20, 22, 24, 26, 및 28) 각각을 상호연결할 수 있다. 일부 예들에서, 통신 채널들(50)은 시스템 버스, 네트워크 연결, 프로세스간 통신 데이터 구조, 혹은 데이터를 전달하기 위한 임의의 다른 방법을 포함할 수 있다.
컴퓨팅 디바이스(10)의 하나 이상의 입력 디바이스들(42)은 입력을 수신할 수 있다. 입력의 예들은 촉각적 입력, 청각적 입력, 및 시각적 입력이다. 컴퓨팅 디바이스(10)의 입력 디바이스들(42)은 일 예에서, 마우스, 키보드, 음성 응답 시스템, 비디오 카메라, 마이크로폰, 또는 사람 혹은 머신(machine)으로부터의 입력을 검출하기 위한 임의의 다른 타입의 디바이스를 포함한다. 일부 예들에서, 입력 디바이스(42)는 프레즌스-감지 입력 디바이스일 수 있으며, 이것은 프레즌스-감지 스크린, 터치-감지 스크린 등을 포함할 수 있다.
컴퓨팅 디바이스(10)의 하나 이상의 출력 디바이스들(46)은 출력을 발생시킬 수 있다. 출력의 예들은 촉각적 출력, 청각적 출력, 및 시각적 출력이다. 컴퓨팅 디바이스(10)의 출력 디바이스들(46)은, 일 예에서, 프레즌스-감지 스크린, 사운드 카드, 비디오 그래픽 어댑터 카드(video graphics adapter card), 스피커, 음극선관(Cathode Ray Tube, CRT) 모니터, 액정 디스플레이(Liquid Crystal Display, LCD), 또는 사람 혹은 머신에게 출력을 발생시키기 위한 임의의 다른 타입의 디바이스를 포함한다. 출력 디바이스들(46)은 음극선관(CRT) 모니터, 액정 디스플레이(LCD), 또는 시각적 출력을 발생시키기 위한 임의의 다른 타입의 디바이스와 같은 디스플레이 디바이스들을 포함할 수 있다.
컴퓨팅 디바이스(10)의 하나 이상의 통신 유닛들(44)은 하나 이상의 네트워크들을 통해 네트워크 신호들을 전송 및/또는 수신함으로써 하나 이상의 네트워크들을 통해 외부 디바이스들과 통신할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 셀률러 무선 네트워크(cellular radio network)와 같은 무선 네트워크를 통해 무선 신호들을 전송 및/또는 수신하기 위해 통신 유닛(44)을 사용할 수 있다. 마찬가지로, 통신 유닛들(44)은 GPS 네트워크와 같은 위성 네트워크를 통해 위성 신호들을 전송 및/또는 수신할 수 있다. 통신 유닛(44)의 예들은, (예를 들어, 이더넷 카드(Ethernet card)와 같은) 네트워크 인터페이스 카드, 광학 송수신기, 무선 주파수 송수신기, GPS 수신기, 혹은 정보를 전송 및/또는 수신할 수 있는 임의의 다른 타입의 디바이스를 포함한다. 통신 유닛들(44)의 다른 예들은, 모바일 디바이스들에서 발견되는 블루투스(Bluetooth®), GPS, 3G, 4G 및 Wi-Fi® 무선기기, 뿐만 아니라 범용 직렬 버스(Universal Serial Bus, USB) 제어기들을 포함할 수 있다.
일부 예들에서, 컴퓨팅 디바이스(10)의 UID(12)는 입력 디바이스들(42) 및/또는 출력 디바이스들(46)의 기능을 포함할 수 있다. 도 2의 예에서, UID(12)는, 프레즌스-감지 스크린, 터치-감지 스크린 등과 같은 프레즌스-감지 입력 디바이스일 수 있거나, 또는 이러한 프레즌스-감지 입력 디바이스를 포함할 수 있다. 일부 예들에서, 프레즌스 감지 스크린은 프레즌스-감지 스크린에 있는 오브젝트(object) 그리고/또는 프레즌스-감지 스크린 가까이 있는 오브젝트를 검출할 수 있다. 하나의 예시적 범위에 있어서, UID(12)는, 프레즌스-감지 스크린으로부터 2 인치(inch) 혹은 이보다 작은 인치 내에 있는 오브젝트(예를 들어, 손가락 혹은 스타일러스)를 검출할 수 있다. 프레즌스-감지 스크린은 오브젝트가 검출된 프레즌스-감지 스크린의 위치(예를 들어, (x,y) 좌표)를 결정할 수 있다. 또 하나의 다른 예시적 범위에 있어서, 프레즌스-감지 스크린은, 프레즌스-감지 스크린으로부터 6 인치 혹은 이보다 작은 인치만큼 떨어져 있는 오브젝트를 검출할 수 있고, 다른 예시적 범위가 또한 가능하다. 프레즌스-감지 스크린은, 용량성, 유도성 및/또는 광학 인식 기법들을 사용하여 사용자의 손가락에 의해 선택된 스크린의 위치를 결정할 수 있다. 일부 예들에서, UID(12)는 출력 디바이스(46)에 관하여 설명된 바와 같이, 촉각적 자극, 청각적 자극, 혹은 시각적 자극들을 사용하여 사용자에게 출력을 제공한다. 도 2의 예에서, UID(12)는 도 1의 사용자 인터페이스(14)와 같은 사용자 인터페이스를 프리젠테이션한다.
컴퓨팅 디바이스(10)의 내부 컴포넌트들로서 예시되고 있지만, UID(12)는 또한, 입력 및 출력을 전송 및/또는 수신하기 위해 컴퓨팅 디바이스(10)의 다른 컴포넌트들과 데이터 경로를 공유하는 외부 컴포넌트를 나타낼 수 있다. 예를 들어, 일 예에서, UID(12)는 컴퓨팅 디바이스(10)의 외부 패키징(external packaging) 내부에 위치함과 아울러 이러한 외부 패키징에 물리적으로 연결되는 컴퓨팅 디바이스(10)의 빌트-인 컴포넌트(built-in component)를 나타낸다(예를 들어, 모바일 전화기 상의 스크린). 또 하나의 다른 예에서, UID(12)는 컴퓨팅 디바이스(10)의 패키징 외부에 위치함과 아울러 이러한 패키징으로부터 물리적으로 분리된 컴퓨팅 디바이스(10)의 외부 컴포넌트일 수 있다(예를 들어, 태블릿 컴퓨터와 유선 및/또는 무선 데이터 경로를 공유하는 모니터, 프로젝터(projector) 등).
컴퓨팅 디바이스(10) 내의 하나 이상의 저장 디바이스들(48)은 컴퓨팅 디바이스(10)의 동작 동안 프로세싱을 위한 정보를 저장할 수 있다. 일부 예들에서, 저장 디바이스(48)는 일시적 메모리인바, 이것의 의미는 저장 디바이스(48)의 주된 목적이 장-기간 저장(long-term storage)을 위한 것이 아님을 나타낸다. 컴퓨팅 디바이스(10) 상의 저장 디바이스들(48)은 휘발성 메모리로서 정보를 단-기간 저장(short-term storage)하도록 구성될 수 있고, 이에 따라 파워 오프(power off)되는 경우 그 저장된 콘텐츠들을 보유하지 않는다. 휘발성 메모리들의 예들은, 랜덤 액세스 메모리들(Random Access Memories, RAM), 다이나믹 랜덤 액세스 메모리들(Dynamic Random Access Memories, DRAM), 스태틱 랜덤 액세스 메모리들(Static Random Access Memories, SRAM), 그리고 종래 기술분야에 알려진 다른 형태의 휘발성 메모리들을 포함한다.
저장 디바이스들(48)은 또한, 일부 예들에서, 하나 이상의 컴퓨터-판독가능 저장 매체들을 포함한다. 저장 디바이스들(48)은 휘발성 메모리보다 더 많은 양의 정보를 저장하도록 구성될 수 있다. 저장 디바이스들(48)은 또한, 비-휘발성 메모리 공간으로서 정보를 장-기간 저장하도록 구성될 수 있어, 파워 온/오프 싸이클들(power on/off cycles) 이후에도 정보를 보유할 수 있다. 비-휘발성 메모리들의 예들은, 자기 하드 디스크들, 광학 디스크들, 플로피 디스크들, 플래시 메모리들, 혹은 여러 형태의 전기적으로 프로그래밍가능한 메모리들(electrically programmable memories, EPROM) 혹은 전기적으로 소거가능하고 프로그래밍가능한 메모리들(electrically erasable and programmable memories, EEPROM)을 포함한다. 저장 디바이스들(48)은 UI 모듈(20), 키보드 모듈(22), 제스처 모듈(24), 공간 모델(26) 및 언어 모델(28)과 관련된 프로그램 명령들 및/또는 데이터를 저장할 수 있다.
하나 이상의 프로세서들(40)은 컴퓨팅 디바이스(10) 내에서 명령들을 실행시킬 수 있고 그리고/또는 기능을 구현할 수 있다. 예를 들어, 컴퓨팅 디바이스(10) 상의 프로세서들(40)은, UI 모듈(20), 키보드 모듈(22), 제스처 모듈(24), 공간 모델(26) 및 언어 모델(28)의 기능을 실행시키는, 저장 디바이스들(48)에 의해 저장된 명령들을 수신 및 실행할 수 있다. 프로세서들(40)에 의해 실행된 이러한 명령들은 컴퓨팅 디바이스(10)로 하여금 프로그램 실행 동안 저장 디바이스들(48) 내에 정보를 저장하도록 할 수 있다. 프로세서들(40)은 UID(12)로 하여금 사용자 인터페이스(14)를 디스플레이하도록 하기 위해 UI 모듈(20), 키보드 모듈(22), 제스처 모듈(24), 공간 모델(26) 및 언어 모듈(28)의 명령들을 실행시킬 수 있다. 즉, UI 모듈(20), 키보드 모듈(22), 제스처 모듈(24), 공간 모델(26) 및 언어 모듈(28)과 같은 모듈들은 다양한 액션들을 수행하기 위해 프로세서들(40)에 의해 동작가능하게 될 수 있는바, 여기서 액션들은 UID(12)의 프레즌스-감지 스크린의 위치들에서 제스처의 표시를 수신하는 것, 그리고 프레즌스-감지 디스플레이(4)로 하여금 UID(12)에서 사용자 인터페이스(14)를 프리젠테이션하도록 하는 것을 포함한다.
본 개시내용의 실시형태들에 따르면, 키보드 모듈(22)은 UI 모듈(20)에 초기에 데이터를 전송할 수 있는바, UI 모듈(20)은 프레즌스-감지 디스플레이(4)로 하여금 디스플레이를 위해 그래픽 키보드를 출력하도록 한다. 그래픽 키보드는 복수의 키들을 포함할 수 있다. 복수의 키들 중 적어도 하나의 키는 하나 이상의 문자들 및/또는 기호들과 관련될 수 있다. 일부 예들에서, UI 모듈(20)은 프레즌스-감지 디스플레이에서 검출된 제스처의 표시를 수신함에 응답하여 복수의 키들 중 하나 이상의 키의 선택을 결정할 수 있다. 예를 들어, UI 모듈(20)은 UID(12) 및/또는 입력 디바이스(42)로부터 제스처의 표시를 수신할 수 있다. 또 하나의 다른 예에서, 예를 들어, 만약 프레즌스-감지 입력 디바이스가 도 3에서 또한 예시되는 바와 같이 컴퓨팅 디바이스(10)로부터 분리되어 있다면, UI 모듈(20)은 통신 유닛들(44)로부터 제스처의 표시를 수신할 수 있다.
키보드 모듈(22)은 이러한 선택에서의 복수의 키들 중 하나 이상의 키에 대응하는 문자열을 결정할 수 있다. 이 문자열은 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 사전 내에 포함되어 있지 않다. 예를 들어, 키보드 모듈(22)은 도 1 및 도 4에서 설명되는 바와 같이 앞서의 선택에서의 복수의 키들 중 하나 이상의 키에 대응하는 문자열을 결정하기 위해 공간 모델(26) 및/또는 언어 모델(28)을 사용할 수 있다. 본 개시내용의 기법들에 따르면, 키보드 모듈(22)은 문자열을 사전의 어휘목록-내에-없는 언어 모델 점수, 즉 어휘목록-내에-없는 언어 모델 점수와 관련시킬 수 있다.
일부 예들에서, 키보드 모듈(22)은 제스처와 관련된 공간 모델 점수 및 어휘목록-내에-없는 언어 모델 점수에 적어도 부분적으로 근거하여, 문자열이 제스처에 대응할 확률을 표시하는 결합된 점수를 결정할 수 있다. 일부 예들에서, 키보드 모듈(22)은 어휘목록-내에-없는 언어 모델 점수 및/또는 공간 모델 점수의 곱(product) 및/또는 합(sum)에 근거하여 그 결합된 점수를 발생시킬 수 있다. 키보드 모듈(22)은 디스플레이를 위해 문자열을 UID(12), 입력 디바이스(42), 및/또는 통신 유닛(44)에서 출력할 수 있다. 예를 들어, 만약 문자열과 관련된 결합된 점수가 임계조건을 만족시킨다면(예를 들어, 임계치보다 더 크다면), 키보드 모듈(22)은 UI 모듈(20)에 데이터를 전송할 수 있고, UI 모듈(20)은 UID(12), 입력 디바이스(42), 및/또는 통신 유닛(44)으로 하여금 문자열을 출력하게 한다.
도 1에서 설명된 바와 같이, 키보드 모듈(22)은 하나 이상의 제스처들에 근거하여 복수의 문자열들을 결정할 수 있다. 키보드 모듈(22)은 복수의 문자열들 중 하나 이상의 문자열을 디스플레이를 위해 선택할 수 있다. 일부 예들에서, 그 선택된 문자열들 중 하나의 문자열은 어휘목록-내에-없는 문자열일 수 있는바, 예를 들어, 언어 모델(28) 내에 포함되어 있지 않은 문자열일 수 있고, 이 문자열은 언어 모델(28) 내에 포함되어 있는 다른 문자열들과 함께 디스플레이된다. 예를 들어, 키보드 모듈(22)은 앞서의 선택에서의 복수의 키들 중 하나 이상의 키에 대응하는 복수의 서로 다른 문자열들을 컴퓨팅 디바이스에 의해 결정할 수 있다. 일부 예들에서, 복수의 서로 다른 문자열들 각각은 사전(예를 들어, 단어들의 어휘목록을 포함할 수 있는 사전) 내에 포함되어 있는바, 예를 들어, 언어 모델(28) 내에 포함되어 있는 문자열들의 사전 내에 포함되어 있다. 예를 들어, 키보드 모듈(22)은 문자열들 각각을 포함하는 언어 모델(28)에 근거하여 문자열들 "satin", "sarin", "satire"를 결정할 수 있다. 키보드 모듈(22)은 또한, 언어 모델(28) 내에 포함되어 있지 않지 않을 수 있는 문자열 "satok"을 결정할 수 있다. 일부 예들에서, 키보드 모듈(22)은, "S" 키, "A" 키, "T" 키, "O" 키, 및 "K" 키와 관련된 그래픽 키보드(16B)의 키들에 대응하는 UID(12)의 하나 이상의 위치들에 근거하여 문자열 "satok"을 결정할 수 있다. 예를 들어, 각각의 키의 각각의 문자와 관련된 공간 모델 확률들은 임계치보다 더 클 수 있다.
키보드 모듈(22)은 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수를 결정할 수 있다. 예를 들어, 도 4에서 또한 예시되는 바와 같이, 키보드 모듈(22)은 언어 모델(28) 내에 포함되어 있는 각각의 문자열에 대한 언어 모델 점수를 결정할 수 있다. 본 개시내용의 기법들에 따르면, 키보드 모듈(22)은 "satok"이 언어 모델(28) 내에 포함되어 있지 않음을 결정할 수 있다. 키보드 모듈(22)은 어휘목록-내에-없는 언어 모델 점수를 문자열 "satok"과 관련시킬 수 있다. 예를 들어, 어휘목록-내에-없는 언어 모델 점수는 언어 모델(28) 내에서 가장 낮은 언어 모델 점수와 동일할 수 있다.
키보드 모듈(22)은 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의결합된 점수를 결정할 수 있다. 각각의 결합된 점수는 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수 및 공간 모델 점수에 적어도 부분적으로 근거하고 있을 수 있다. 예를 들어, 키보드 모듈(22)은 복수의 문자열들 각각에 대한 결합된 점수를 결정할 수 있다. 복수의 문자열들 중 임의의 문자열에 대한 결합된 점수는 문자열들 중 하나의 문자열과 관련된 공간 모델 점수, 그리고 그 문자열과 관련된 언어 모델 점수(예를 들어, 언어 모델(28)에 근거하는 언어 모델 점수 혹은 어휘목록-내에-없는 언어 모델 점수)에 근거하고 있을 수 있다.
복수의 문자열들의 서로 다른 문자열들 중 적어도 하나의 문자열에 대한 각각의 결합된 점수가 임계조건을 만족시킨다는 결정에 응답하여, 키보드 모듈(22)은 UI 모듈(20)에 데이터를 전송할 수 있고, UI 모듈(20)은 UI 디바이스(16)로 하여금 어휘목록-내에-없는 문자열을 갖는 서로 다른 문자열들을 중 적어도 하나를 출력하도록 한다. 예를 들어, 도 1에서 제시된 바와 같이, 문자열 "satin"은 임계조건을 만족시키는 결합된 점수와 관련될 수 있다. 문자열 "satin"은, 언어 모델(28) 내에 포함되어 있지 않은, 어휘목록-내에-없는 문자열 "satok"과 함께 디스플레이를 위해 출력될 수 있다. 이러한 방식으로, 만약 사용자가 문자열 "satok"을 입력하려고 한다면, 키보드 모듈(22)은 사용자가 "satok"을 선택하기 위한 사용자 입력을 제공할 수 있도록 "satok"을 출력할 수 있다.
일부 예들에서, 그래픽 사용자 인터페이스는 문자열 제안들을 디스플레이하기 위해 임의의 제한된 양의 영역을 포함할 수 있다. 그러나, 일부 예들에서, 사용자는 어휘목록-내에-없는 문자열 제안을 보기를 원할 수 있다. 일부 예들에서, 사용자는, 비록 사전 내에 있는 하나 이상의 다른 문자열들이 어휘목록-내에-없는 문자열과 관련된 결합된 점수보다 더 높은 결합된 점수들과 관련되어 있을지라도, 어휘목록-내에-없는 문자열을 보기를 원할 수 있다. 본 개시내용의 기법들에 따르면, 컴퓨팅 디바이스(10)는 문자열 제안 영역 내에 어휘목록-내에-없는 문자열을 출력할 수 있다.
일 예에서, UI 모듈(20)은 디스플레이를 위해 출력되는 그래픽 사용자 인터페이스 내에 복수의 문자열 제안 영역들을 결정할 수 있다. 예를 들어, UI 모듈은 사용자 인터페이스(14)의 문자열 제안된 영역들(38A 내지 38C)을 결정할 수 있다. 하나 이상의 제스처들의 하나 이상의 표시들을 수신함에 응답하여, 키보드 모듈(22)은 앞서의 선택에서의 복수의 키들 중 하나 이상의 키에 대응하는 복수의 서로 다른 문자열들을 결정할 수 있다. 일부 예들에서, 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열은 사전 내에 포함되어 있다. 키보드 모듈(22)은 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수를 결정할 수 있다. 예를 들어, 키보드 모듈(22)은 문자열들에 대한 언어 모델 점수들을 결정하기 위해 언어 모델(28)을 사용할 수 있다.
키보드 모듈(22)은 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 결합된 점수를 결정할 수 있다. 일부 예들에서, 각각의 결합된 점수는 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수 및 공간 모델 점수에 적어도 부분적으로 근거하고 있을 수 있다. 본 개시내용의 다른 예들에서 설명되는 바와 같이, 결합된 점수는 일부 예들에서, 공간 모델 점수와 언어 모델 점수의 합 혹은 곱일 수 있다.
일부 예들에서, 키보드 모듈(22)은 복수의 문자열들에서의 가능성 있는 문자열들의 양을 결정할 수 있다. 가능성 있는 문자열들은 어휘목록-내에-없는 문자열의 결합된 점수보다 더 높은 확률들(예를 들어, 더 큰 확률들)을 표시하는 결합된 점수들과 관련될 수 있다. 예를 들어, 가능성 있는 문자열은 사전 내에 포함되어 있는 문자열일 수 있고, 그리고 어휘목록-내에-없는 문자열의 결합된 점수보다 더 적은 결합된 점수와 관련될 수 있다.
키보드 모듈(22)은, 가능성 있는 문자열들의 양이 복수의 문자열 제안 영역들에서의 문자열 제안 영역들의 양보다 더 크다는 결정에 응답하여, UI 모듈(20)에 데이터를 전송할 수 있고, UI 모듈(20)은 UID(12)로 하여금 복수의 문자열 제안 영역들 중 적어도 하나의 문자열 제안 영역 내에 어휘목록-내에-없는 문자열을 디스플레이를 위해 출력하도록 한다. 예를 들어, 키보드 모듈(22)은 "satok"(예를 들어, 어휘목록-내에-없는 문자열)으로 하여금 문자열 제안 영역(38A)에 디스플레이되도록 할 수 있다. 일부 예들에서, 키보드 모듈(22)은, "satok"과 관련된 결합된 점수가 "satok"보다 더 큰 결합된 점수들과 관련된 다량의 문자열들의 결합된 점수들보다 더 작을지라도, "satok"으로 하여금 문자열 제안 영역들(38) 중 하나의 문자열 제안 영역 내에 디스플레이를 위해 출력되도록 할 수 있는바, 여기서, 다량의 문자열들의 양은 문자열 제안 영역들의 양보다 더 크거나 혹은 동일하다. 이러한 방식으로, 키보드 모듈(22)은, "satok"보다 더 큰 결합된 점수들을 갖는 다른 문자열들이 문자열 제안 영역들(38) 내에 디스플레이될 수 있는 경우에도, "satok"으로 하여금 디스플레이를 위해 출력되도록 할 수 있다.
도 3은 본 개시내용의 하나 이상의 기법들에 따른, 원격 디바이스에서의 디스플레이를 위해 그래픽 콘텐츠를 출력하는 예시적인 컴퓨팅 디바이스를 나타낸 블록도이다. 그래픽 콘텐츠는 일반적으로, 텍스트, 이미지들, 움직이는 이미지들의 그룹, 등과 같은, 디스플레이를 위해 출력될 수 있는 임의의 시각적 정보를 포함할 수 있다. 도 3에 제시되는 예는, 컴퓨팅 디바이스(60), 프레즌스-감지 디스플레이(64), 통신 유닛(70), 프로젝터(80), 프로젝터 스크린(82), 모바일 디바이스(86) 그리고 시각적 디스플레이 디바이스(90)를 포함한다. 독립형 컴퓨팅 디바이스(10)로서 도 1 및 도 2에서 예시적 목적으로 제시되고 있지만, 컴퓨팅 디바이스(60)와 같은 컴퓨팅 디바이스는 일반적으로, 소프트웨어 명령들을 실행시키기 위한 프로세서 혹은 다른 적절한 컴퓨팅 환경을 포함하는 임의의 컴포넌트 또는 시스템일 수 있고, 예를 들어, 프레즌스-감지 디스플레이를 포함할 필요가 없을 수도 있다.
도 3의 예에서 제시되는 바와 같이, 컴퓨팅 디바이스(60)는 도 2에서의 프로세서(40)에 관하여 설명된 바와 같은 기능을 포함하는 프로세서일 수 있다. 이러한 예들에서, 컴퓨팅 디바이스(60)는 통신 채널(62A)에 의해 프레즌스-감지 디스플레이(64)에 동작가능하게 결합될 수 있는바, 여기서 통신 채널(62A)은 시스템 버스 혹은 다른 적절한 연결일 수 있다. 컴퓨팅 디바이스(60)는 또한 통신 채널(62B)에 의해 아래에서 더 설명되는 바와 같은 통신 유닛(70)에 동작가능하게 결합될 수 있는바, 여기서 통신 채널(62B)도 또한 시스템 버스 혹은 다른 적절한 연결일 수 있다. 예시적으로 도 3에서는 개별적으로 제시되고 있지만, 컴퓨팅 디바이스(60)는 임의 개수의 하나 이상의 통신 채널들에 의해 프레즌스-감지 디스플레이(64) 및 통신 유닛(70)에 동작가능하게 결합될 수 있다.
도 1 및 도 2에서 컴퓨팅 디바이스(10)에 의해 앞서 예시된 바와 같은 다른 예들에서, 컴퓨팅 디바이스는 (스마트폰들을 포함하는) 모바일 전화기들과 같은 휴대용 혹은 모바일 디바이스, 랩탑 컴퓨터들, 등을 지칭할 수 있다. 일부 예들에서, 컴퓨팅 디바이스는 데스크탑 컴퓨터들, 태블릿 컴퓨터들, 스마트 텔레비젼 플랫폼들(smart television platforms), 카메라들, 개인 휴대정보 단말기(PDA)들, 서버들, 메인프레임들(mainframes), 등일 수 있다.
도 1에서 제시되는 바와 같은 UID(12)와 같은 사용자-인터페이스 디바이스일 수 있는 프레즌스-감지 디스플레이(64)는 디스플레이 디바이스(66) 및 프레즌스-감지 입력 디바이스(68)를 포함할 수 있다. 디스플레이 디바이스(66)는 예를 들어, 컴퓨팅 디바이스(60)로부터 데이터를 수신할 수 있고 그래픽 콘텐츠를 디스플레이할 수 있다. 일부 예들에서, 프레즌스-감지 입력 디바이스(68)는 용량성, 유도성 및/또는 광학 인식 기법들을 사용하여 프레즌스-감지 디스플레이(64)에서 하나 이상의 사용자 입력들(예를 들어, 연속적인 제스처들, 다중-터치 제스처들, 단일-터치 제스처들 등)을 결정할 수 있고, 그리고 통신 채널(62A)을 사용하여 이러한 사용자 입력의 표시들을 컴퓨팅 디바이스(60)에 전송할 수 있다. 일부 예들에서, 프레즌스-감지 입력 디바이스(68)는 디스플레이 디바이스(66)의 상부에 물리적으로 배치될 수 있고, 이에 따라 사용자가 디스플레이 디바이스(66)에 의해 디스플레이되는 그래픽 요소 위에서 입력 유닛을 위치시킬 때, 프레즌스-감지 입력 디바이스(68)는 그래픽 요소가 디스플레이되는 디스플레이 디바이스(66)의 그 위치에 대응하는 위치를 정하게 된다.
도 3에서 제시되는 바와 같이, 컴퓨팅 디바이스(60)는 또한 통신 유닛(70)을 포함할 수 있고 그리고/또는 통신 유닛(70)과 동작가능하게 결합될 수 있다. 통신 유닛(70)은 도 2에서 설명된 바와 같은 통신 유닛(44)의 기능을 포함할 수 있다. 통신 유닛(70)의 예들은, 네트워크 인터페이스 카드, 이더넷 카드, 광학 송수신기, 무선 주파수 송수신기, 혹은 정보를 전송 및 수신할 수 있는 임의의 다른 타입의 디바이스를 포함할 수 있다. 이러한 통신 유닛들의 다른 예들은, 블루투스, 3G 및 WiFi 무선기기, 범용 직렬 버스(USB) 인터페이스 등을 포함할 수 있다. 컴퓨팅 디바이스(60)는 또한, 하나 이상의 다른 디바이스들을 포함할 수 있고 그리고/또는 하나 이상의 다른 디바이스들과 동작가능하게 결합될 수 있는바, 이러한 하나 이상의 다른 디바이스들은, 예를 들어, 입력 디바이스들, 출력 디바이스들, 메모리, 저장 디바이스들 등이며, 이들은 간결한 예시적 설명을 위해 도 3에서는 제시되지 않는다.
도 3은 또한 프로젝터(80) 및 프로젝터 스크린(82)을 예시한다. 이러한 프로젝션 디바이스(projection device)들의 다른 예들은 전자 화이트보드(electronic whiteboard)들, 홀로그래픽 디스플레이 디바이스(holographic display device)들, 그리고 그래픽 콘텐츠를 디스플레이하기 위한 임의의 다른 적절한 디바이스들을 포함할 수 있다. 프로젝터(80) 및 프로젝터 스크린(82)은 각각의 디바이스들로 하여금 컴퓨팅 디바이스(60)와 통신할 수 있게 하는 하나 이상의 통신 유닛들을 포함할 수 있다. 일부 예들에서, 하나 이상의 통신 유닛들은 프로젝터(80)와 프로젝터 스크린(82) 간의 통신을 가능하게 할 수 있다. 프로젝터(80)는 그래픽 콘텐츠를 포함하는 데이터를 컴퓨팅 디바이스(60)로부터 수신할 수 있다. 프로젝터(80)는, 이러한 데이터를 수신함에 응답하여, 그래픽 콘텐츠를 프로젝터 스크린(82) 상에 프로젝트(project)할 수 있다. 일부 예들에서, 프로젝터(80)는 프로젝터 스크린에서의 하나 이상의 사용자 입력들(예를 들어, 연속적인 제스처들, 다중-터치 제스처들, 단일-터치 제스처들, 등)을 광학 인식 기법 혹은 다른 적절한 기법들을 사용하여 결정할 수 있고, 그리고 이러한 사용자 입력의 표시들을 하나 이상의 통신 유닛들을 사용하여 컴퓨팅 디바이스(60)에 전송할 수 있다. 이러한 예들에서, 프로젝터 스크린(82)은 필요하지 않을 수 있으며, 프로젝터(80)는 임의의 적절한 매체 상에 그래픽 콘텐츠를 프로젝트할 수 있고, 광학 인식 기법 혹은 이와 같은 다른 적절한 기법들을 사용하여 하나 이상의 사용자 입력들을 검출할 수 있다.
프로젝터 스크린(82)은, 일부 예들에서, 프레즌스-감지 디스플레이(84)를 포함할 수 있다. 프레즌스-감지 디스플레이(84)는 본 개시내용에서 설명된 바와 같은 UID(12)의 기능 모두 혹은 이러한 기능의 서브세트를 포함할 수 있다. 일부 예들에서, 프레즌스-감지 디스플레이(84)는 추가적인 기능을 포함할 수 있다. 프로젝터 스크린(82)(예를 들어, 전자 화이트보드)은 컴퓨팅 디바이스(60)로부터 데이터를 수신할 수 있고 그래픽 콘텐츠를 디스플레이할 수 있다. 일부 예들에서, 프레즌스-감지 디스플레이(84)는 프로젝터 스크린(82)에서의 하나 이상의 사용자 입력들(예를 들어, 연속적인 제스처들, 다중-터치 제스처들, 단일-터치 제스처들, 등)을 용량성, 유도성 및/또는 광학 인식 기법들을 사용하여 결정할 수 있고, 그리고 이러한 사용자 입력의 표시들을 하나 이상의 통신 유닛들을 사용하여 컴퓨팅 디바이스(60)에 전송할 수 있다.
도 3은 또한, 모바일 디바이스(86) 및 시각적 디스플레이 디바이스(90)를 예시한다. 모바일 디바이스(86) 및 시각적 디스플레이 디바이스(90) 각각은 컴퓨팅 능력 및 연결 능력을 포함할 수 있다. 모바일 디바이스(86)의 예들은, 전자책 리더 디바이스들, 컨버터블 노트북 디바이스(convertible notebook device)들, 하이브리드 슬레이트 디바이스(hybrid slate device)들, 등을 포함할 수 있다. 시각적 디스플레이 디바이스(90)의 예들은 텔레비젼들, 컴퓨터 모니터들, 등과 같은 다른 준-고정형 디바이스(semi-stationary device)들을 포함할 수 있다. 도 3에서 제시되는 바와 같이, 모바일 디바이스(86)는 프레즌스-감지 디스플레이(88)를 포함할 수 있다. 시각적 디스플레이 디바이스(90)는 프레즌스-감지 디스플레이(92)를 포함할 수 있다. 프레즌스-감지 디스플레이들(88, 92)은 본 개시내용에서 설명된 바와 같은 UID(12)의 기능 모두 혹은 이러한 기능의 서브세트를 포함할 수 있다. 일부 예들에서, 프레즌스-감지 디스플레이들(88, 92)은 추가적인 기능을 포함할 수 있다. 임의의 경우에 있어, 예를 들어, 프레즌스-감지 디스플레이(92)는 컴퓨팅 디바이스(60)로부터 데이터를 수신할 수 있고, 그래픽 콘텐츠를 디스플레이할 수 있다. 일부 예들에서, 프레즌스-감지 디스플레이(92)는 프로젝터 스크린에서의 하나 이상의 사용자 입력들(예를 들어, 연속적인 제스처들, 다중-터치 제스처들, 단일-터치 제스처들, 등)을 용량성, 유도성 및/또는 광학 인식 기법들을 사용하여 결정할 수 있고, 그리고 이러한 사용자 입력의 표시들을 하나 이상의 통신 유닛들을 사용하여 컴퓨팅 디바이스(60)에 전송할 수 있다.
앞서 설명된 바와 같이, 일부 예들에서, 컴퓨팅 디바이스(60)는 프레즌스-감지 디스플레이(64)에서의 디스플레이를 위한 그래픽 콘텐츠를 출력할 수 있는바, 여기서 프레즌스-감지 디스플레이(64)는 시스템 버스 혹은 다른 적절한 통신 채널에 의해 컴퓨팅 디바이스(60)에 결합된다. 컴퓨팅 디바이스(60)는 또한, 프로젝터(80), 프로젝터 스크린(82), 모바일 디바이스(86) 및 시각적 디스플레이 디바이스(90)와 같은 하나 이상의 원격 디바이스들에서의 디스플레이를 위한 그래픽 콘텐츠를 출력할 수 있다. 예를 들어, 컴퓨팅 디바이스(60)는 본 개시내용의 기법들에 따른, 그래픽 콘텐츠를 발생시키고 그리고/또는 수정하는 하나 이상의 명령들을 실행시킬 수 있다. 컴퓨팅 디바이스(60)는 그래픽 콘텐츠를 포함하는 데이터를 컴퓨팅 디바이스(60)의 통신 유닛, 예컨대 통신 유닛(70)에 출력할 수 있다. 통신 유닛(70)은 이러한 데이터를 원격 디바이스들 중 하나 이상의 원격 디바이스(예를 들어, 프로젝터(80), 프로젝터 스크린(82), 모바일 디바이스(86) 및/또는 시각적 디스플레이 디바이스(90)와 같은 것)에 전송할 수 있다. 이러한 방식으로, 컴퓨팅 디바이스(60)는 원격 디바이스들 중 하나 이상의 원격 디바이스에서의 디스플레이를 위한 그래픽 콘텐츠를 출력할 수 있다. 일부 예들에서, 원격 디바이스들 중 하나 이상의 원격 디바이스는 각각의 원격 디바이스들에 동작가능하게 결합된 그리고/또는 각각의 원격 디바이스들에 포함된 프레즌스-감지 디스플레이에서 그래픽 콘텐츠를 출력할 수 있다.
일부 예들에서, 컴퓨팅 디바이스(60)는 컴퓨팅 디바이스(60)에 동작가능하게 결합되는 프레즌스-감지 디스플레이(64)에서 그래픽 콘텐츠를 출력하지 않을 수 있다. 다른 예들에서, 컴퓨팅 디바이스(60)는 통신 채널(62A)에 의해 컴퓨팅 디바이스(60)에 결합되는 프레즌스-감지 디스플레이(64)에서 그리고 하나 이상의 원격 디바이스들에서 모두 디스플레이를 위한 그래픽 콘텐츠를 출력할 수 있다. 이러한 예들에서, 그래픽 콘텐츠는 각각의 디바이스에서 실질적으로 동시에 디스플레이될 수 있다. 예를 들어, 그래픽 콘텐츠를 포함하는 데이터를 원격 디바이스에 전송하기 위해 통신 레이턴시(communication latency)에 의한 약간의 지연이 일어날 수 있다. 일부 예들에서, 컴퓨팅 디바이스(60)에 의해 발생되고 프레즌스-감지 디스플레이(64)에서의 디스플레이를 위해 출력되는 그래픽 콘텐츠는 하나 이상의 원격 디바이스들에서의 디스플레이를 위해 출력된 그래픽 콘텐츠 디스플레이와는 서로 다른 것일 수 있다.
컴퓨팅 디바이스(60)는 임의의 적절한 통신 기법들을 사용하여 데이터를 전송 및 수신할 수 있다. 예를 들어, 컴퓨팅 디바이스(60)는 네트워크 링크(network link)(72A)를 사용하여 외부 네트워크(74)에 동작가능하게 결합될 수 있다. 도 3에서 예시되는 원격 디바이스들 각각은 각각의 네트워크 링크들(72B, 72C, 및 72D) 중 하나의 네트워크 링크에 의해 네트워크 외부 네트워크(74)에 동작가능하게 결합될 수 있다. 외부 네트워크(74)는, 네트워크 허브(network hub)들, 네트워크 스위치(network switch)들, 네트워크 라우터(network router)들, 등을 포함할 수 있는바, 이들은 동작가능하게 상호-결합되어 도 3에서 예시되는 원격 디바이스들과 컴퓨팅 디바이스(60) 간의 정보의 교환을 제공하게 된다. 일부 예들에서, 네트워크 링크들(72A 내지 72D)은 이더넷, ATM 혹은 다른 네트워크 연결들일 수 있다. 이러한 연결들은 무선 연결 및/또는 유선 연결일 수 있다.
일부 예들에서, 컴퓨팅 디바이스(60)는 다이렉트 디바이스 통신(direct device communication)(78)을 사용하여 도 3에 포함되어 있는 원격 디바이스들 중 하나 이상의 원격 디바이스에 동작가능하게 결합될 수 있다. 다이렉트 디바이스 통신(78)은 컴퓨팅 디바이스(60)가 유선 통신 혹은 무선 통신을 사용하여 원격 디바이스와 직접적으로 데이터의 전송 및 수신을 행할 때 이용하게 되는 통신을 포함할 수 있다. 즉, 다이렉트 디바이스 통신(78)의 일부 예들에서, 컴퓨팅 디바이스(60)에 의해 전송되는 데이터는 원격 디바이스에서 수신되기 전에 하나 이상의 추가적인 디바이스들에 의해 포워딩(forwarding)되지 않을 수 있는바, 그 반대의 경우도 마찬가지다. 다이렉트 디바이스 통신(78)의 예들은 블루투스, 근거리 무선 통신(Near-Field Communication), 범용 직렬 버스, WiFi, 적외선, 등을 포함할 수 있다. 도 3에서 예시되는 원격 디바이스들 중 하나 이상의 원격 디바이스는 통신 링크들(76A 내지 76D)에 의해 컴퓨팅 디바이스(60)와 동작가능하게 결합될 수 있다. 일부 예들에서, 통신 링크들(76A 내지 76D)은 블루투스, 근거리 무선 통신, 범용 직렬 버스, 적외선 등을 사용하는 연결일 수 있다. 이러한 연결은 무선 연결 및/또는 유선 연결일 수 있다.
본 개시내용의 기법들에 따르면, 컴퓨팅 디바이스(60)는 외부 네트워크(74)를 사용하여 시각적 디스플레이 디바이스(90)에 동작가능하게 결합될 수 있다. 컴퓨팅 디바이스(60)는 그래픽 키보드를 프레즌스-감지 디스플레이(92)에서의 디스플레이를 위해 출력할 수 있다. 예를 들어, 컴퓨팅 디바이스(60)는 그래픽 키보드의 표현을 포함하는 데이터를 통신 유닛(70)에 전송할 수 있다. 통신 유닛(70)은 그래픽 키보드의 표현을 포함하는 데이터를 외부 네트워크(74)를 사용하여 시각적 디스플레이 디바이스(90)에 전송할 수 있다. 시각적 디스플레이 디바이스(90)는, 외부 네트워크(74)를 사용하여 이러한 데이터를 수신함에 응답하여, 프레즌스-감지 디스플레이(92)로 하여금 그래픽 키보드를 출력하도록 할 수 있다. 사용자가 프레즌스-감지 디스플레이(92)에서(예를 들어, 그래픽 키보드를 출력하는 프레즌스-감지 디스플레이(92)의 영역에서) 제스처를 수행하는 것에 응답하여, 시각적 디스플레이 디바이스(90)는 제스처의 표시를 외부 네트워크(74)를 사용하여 컴퓨팅 디바이스(60)에 전송할 수 있다. 통신 유닛(70)은 제스처의 표시를 수신할 수 있고 이러한 표시를 컴퓨팅 디바이스(60)에 전송할 수 있다.
프레즌스-감지 입력 디바이스에서 검출된 적어도 하나의 제스처의 표시를 수심함에 응답하여, 컴퓨팅 디바이스(60)는 복수의 키들 중 하나 이상의 키의 선택을 결정할 수 있다. 컴퓨팅 디바이스(60)는 이러한 선택에의 복수의 키들 중 하나 이상의 키에 대응하는 문자열을 결정할 수 있다. 이 문자열은 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 사전 내에 포함되어 있지 않을 수 있다. 일부 예들에서, 컴퓨팅 디바이스(60)는 이 문자열을 어휘목록-내에-없는 언어 모델 점수와 관련시킬 수 있다. 어휘목록-내에-없는 언어 모델 점수는 사전(예를 들어, 단어들의 어휘목록을 포함할 수 있는 사전) 내에 포함되어 있지 않은 문자열과 관련될 수 있다.
컴퓨팅 디바이스(60)는, 제스처와 관련된 공간 모델 점수 및 어휘목록-내에-없는 언어 모델 점수에 적어도 부분적으로 근거하여, 문자열이 제스처에 대응할 확률을 표시하는 결합된 점수를 결정할 수 있다. 일부 예들에서, 만약 결합된 점수가 임계조건을 만족시킨다면, 컴퓨팅 디바이스(60)는 디스플레이를 위해 문자열을 출력할 수 있다. 일 예에서, 컴퓨팅 디바이스(60)는 디스플레이를 위해 문자열(예를 들어, 어휘목록-내에-없는 문자열)을 출력할 수 있다. 예를 들어, 컴퓨팅 디바이스(60)는 문자열을 나타내는 데이터를 통신 유닛(70)에 전송할 수 있다. 통신 유닛(70)은 외부 네트워크(74)를 통해 시각적 디스플레이 디바이스(90)에 데이터를 전송할 수 있다. 시각적 디스플레이 디바이스(90)는 프레즌스-감지 디스플레이(92)로 하여금 데이터가 나타내는 문자열을 출력하도록 할 수 있다.
도 4는 본 개시내용의 하나 이상의 실시형태들에 따른, 어휘목록-내에-없는 문자열들을 결정하기 위한 예시적인 데이터를 나타낸 개념도이다. 도 4는 예를 들어, 도 1 및 도 2에서 앞서 설명된 바와 같은 컴퓨팅 디바이스(10)를 포함한다. 본 명세서에서 앞서 설명된 바와 같이, 컴퓨팅 디바이스(10)는 UID(12), 키보드 모듈(22), 공간 모듈(26), 및 언어 모델(28)을 포함한다. 도 4에서는 문자열들, 공간 점수들, 언어 점수들, 및 결합된 점수들이 이들 값들 간의 관련성들을 용이하게 예시하기 위해 테이블의 여러 행들 내에 제시되어 있지만, 이러한 값들 중 하나 이상의 값은 임의의 적절한 데이터 구조 및 임의 개수의 적절한 데이터 구조들에 저장될 수 있다. 대안적으로, 이러한 값들 중 하나 이상의 값은 컴퓨팅될 수는 있지만 데이터 구조들에 더 이상 전혀 저장되지 않을 수 있다. 비록 도 4에서 일부 값들이 로그값(logarithm value)들을 사용하여 예시될 수 있지만, 확률 및/또는 점수를 나타내는 임의의 적절한 값들도 사용될 수 있다.
도 4에서 제시되는 바와 같이, 키보드 모듈(22)은 "satok", "satin", "sarin" 및 "satire"와 같은 문자열들을 결정할 수 있다. 키보드 모듈(22)은 입력 디바이스에서 점진적으로 수행되는 하나 이상의 제스처들의 표시들을 수신함에 응답하여 문자열들을 연속적으로 결정할 수 있다. 예를 들어, 그래픽 키들을 디스플레이하는 UID(12)의 위치들을 가로질러 이동하는 UID(12)에서의 연속적인 제스처를 사용자가 수행함에 응답하여, 키보드 모듈(22)은 UID(12)의 상이한 위치들에서 제스처의 표시들을 수신할 수 있다.
일부 예들에서, 컴퓨팅 디바이스(10)는 제스처의 표시들을 수신함에 응답하여 하나 이상의 키들에 대한 공간 모델 점수들을 결정할 수 있다. 예를 들어, (도 1에서 제시된 바와 같은) 일부분(34B)에 대응하는 제스처(30)의 하나 이상의 표시들을 수신함에 응답하여, 키보드 모듈(22)은 'A' 키, 'S' 키, 'W' 키, 및 'Z' 키에 대응하는 그래픽 키보드(16B)의 키들에 대한 공간 모델 점수들을 결정할 수 있다. 키보드 모듈(22)은 이러한 각각의 키들에 대한 공간 모델 점수들을 결정할 수 있는데, 왜냐하면 이들 각각은 일부분(34B)의 위치의 임계 거리 내에 있을 수 있기 때문이다. 예를 들어, 일부분(34B)에 대한 제스처의 표시들은 제스처(30)의 제스처 경로에 대응하는 UID(12)의 위치들을 표시하는 터치 이벤트들을 포함할 수 있다. 키보드 모듈(30)은, 일부분(34B)에 대응하는 위치들로부터 'A' 키, 'S' 키, 'W' 키, 및 'Z' 키의 위치들까지의 거리들 각각이 임계 거리보다 작다고 결정할 수 있다.
도 1에서 앞서 설명된 바와 같이, 키보드 모듈(30)은, 키보드 모듈(30)에 의해 결정된 각각의 키에 대한 공간 모델 점수를 결정하기 위해, 하나 이상의 키들에 대응하는 하나 이상의 공간 모델들(예를 들어, 공간 모델(26))을 사용할 수 있다. 일부 예들에서, 문자열은 그래픽 키보드(16B)의 상이한 키들에 대응하는 복수의 문자들을 포함할 수 있다. 예를 들어, 문자열(100)("satok")은 "S" 키, "A" 키, "T" 키, "O" 키, 및 "K" 키를 포함하는 그래픽 키보드(16B)의 키들에 각각 대응하는 문자들 's', 'a', 't', 'o', 'k'를 포함할 수 있다. 따라서, 문자열(100)에 대한 공간 모델 점수(102)는 그래픽 키보드(16B)의 각각의 키들 각각에 대한 개개의 공간 모델 점수들에 근거하고 있을 수 있다. 예를 들어, 문자열(100)에 대한 공간 모델 점수(102)는 "S" 키, "A" 키, "T" 키, "O" 키, 및 "K" 키(이러한 키는 사용자가 그래픽 키보드(16B)의 이러한 키들에 근접하는 연속적인 제스처를 수행했다고 키보드 모듈(22)이 결정한 키임) 각각에 대응하는 개개의 공간 모델 점수들의 곱일 수 있다.
도 4에서 제시되는 바와 같이, 컴퓨팅 디바이스(10)는 언어 모델(28)을 포함한다. 도 1에서 앞서 설명된 바와 같이, 언어 모델(28)은 소정의 언어 상황에서 문자열이 일어나는 빈도에 근거하여 각각의 문자열의 확률을 표시할 수 있다. 예를 들어, 문자열 "the"는, 하나 이상의 문자들, 문자열들, 및/또는 어구들을 포함할 수 있는 현재 언어 상황에서 문자열 "satin"보다 더 빈번하게 사용될 수 있다. 따라서, "the"는 예를 들어, 이러한 언어 상황에서 문자열 "satin"보다 더 큰 확률과 관련될 수 있다.
일부 예들에서, 언어 모델(28)은 언어의 구어적 어휘목록 내의 단어들의 개수와 동일한 문자열들의 양을 포함할 수 있다. 다른 예들에서, 언어 모델(28)은 언어의 문어적 어휘목록 내에 있는 모든 가능한 단어들보다 적은 문자열들의 양을 포함할 수 있다. 예를 들어, 언어 모델(28)은 문어적 어휘목록의 가능한 문자열들 모두보다 더 적은 수의 문자열들을 포함하는 사전으로부터의 문자열들을 포함할 수 있다. 예를 들어, 언어는 150,000개의 가능한 단어들을 포함할 수 있지만, 사전은 가장 일반적으로 사용되는 단어들 중 단지 50,000개만을 포함할 수 있다. 이러한 예에서, 언어 모델(28)은 50,000개의 가장 일반적으로 사용되는 단어들을 포함할 수 있다. 도 4에서의 예시적 문자열들은 문자열들(108A 내지 108N)을 포함한다. 문자열(108A)("the")은 가능성이 가장 높은 문자열일 수 있고, 문자열(108N)("stringN")은 가능성이 가장 낮은 문자열일 수 있다.
사용자가 점진적으로 제스처(예를 들어, 하나 이상의 연속적인 제스처 및/또는 탭핑 제스처)를 수행함에 따라, 키보드 모듈(22)은, 제스처에 대응하는 키들과 관련된 문자들을 포함하는 문자열의 문자들 모두 혹은 그 일부를 포함하는 언어 모델(28) 내의 문자열들의 검색을 점진적으로 수행할 수 있다. 예를 들어, 키보드 모듈(22)이 그래픽 키보드(16B)의 "S" 키 및 "A" 키로부터 그래픽 키보드의 "T" 키로 가로질러 이동하는 제스처의 표시들을 수신함에 따라, 키보드 모듈(22)은 제스처(30)의 제스처 경로가 그래픽 키보드(16B)의 "R" 키 및 "T" 키에 근접하여 UID(12)를 가로질러 이동한다고 결정할 수 있다. 따라서, 키보드 모듈(22)은 제스처(30)의 제스처 경로에 근접하는 키들의 문자들을 포함하는 다른 가능한 문자열들 가운데 문자열 "SAT" 및 "SAR"을 결정할 수 있다.
언어 모델(28) 내의 문자열들의 검색을 점진적으로 수행하기 위해서, 키보드 모듈(22)은, 접두어를 부여받은 문자열의 확률을 표시하는 데이터 구조에 언어 모델(28)의 문자열들(예를 들어, 제스처의 제스처 경로에 근접하는 키들에 대응하는 하나 이상의 가능성 있는 문자열들의 그룹)을 모델링할 수 있다. 예를 들어, 언어 모델(28)은 트리 데이터 구조(trie data structure)에 저장되는 어휘집(lexicon)을 포함할 수 있다. 어휘집 트리 데이터 구조는 복수의 노드(node)들을 포함할 수 있고, 각각의 노드는 사전 내에 포함되어 있는 문자열의 글자를 나타낼 수 있다. 어휘집 트리 내의 첫 번째 노드는 임의의 글자에 대응하지 않을 수 있는 진입 노드(entry node)로 지칭될 수 있다. 다른 예들에서, 진입 노드는 임의의 글자에 대응할 수 있다. 각각의 노드는 하나 이상의 차일드 노드(child node)들을 가질 수 있다. 예를 들어, 진입 노드는 그 각각이 영어 알파벳의 글자에 대응하는 26개의 차일드 노드들을 가질 수 있다.
어휘집 트리 내의 일 서브세트의 노드들 각각은 노드가 말단 노드(terminal node)임을 표시하는 플래그(flag)를 포함할 수 있다. 어휘집 트리의 각각의 말단 노드는 완성된 문자열(예를 들어, 문어적 어휘목록 내의 단어)을 표시할 수 있다. 진입 노드로부터 말단 노드로의 노드들의 경로를 따라 노드들에 의해 표시되는 글자들은 문자열을 표현할 수 있는바, 이는 말단 노드에 의해 표시된다. 예를 들어, 어휘집 트리의 노드들의 경로 내에 있는 노드들은 's', 'a', 't', 'i', 'n'에 각각 대응할 수 있고, 여기서 'n'에 대응하는 노드가 말단 노드이다.
도 4에서 제시되는 바와 같이, 언어 모델(28)은 n-그램 언어 모델들과 같은 언어 모델 빈도 정보를 포함할 수 있다. n-그램 언어 모델은 아이템들의 연속적인 시퀀스에서의 이전 아이템들에 근거하여 아이템들의 연속적인 시퀀스에서의 아이템
Figure 112014040613733-pat00003
(글자 혹은 단어)에 대한 확률 분포(즉,
Figure 112014040613733-pat00004
)를 제공할 수 있다. 예를 들어, 바이그램 언어 모델(n=2인 n-그램 모델)은 글자 "t"가 시퀀스 "sa" 뒤에 올 확률을 제공할 수 있다. 일부 예들에서, 언어 모델(28)은 어휘집 트리 내에 언어 모델 빈도 정보를 포함한다. 예를 들어, 어휘집 트리의 각각의 노드는 글자의 표현, 그리고 (이 글자가 어휘집 트리의 경로 내에서 앤세스터 노드(ancestor node)들에 대응하는 문자들의 접두어 뒤에 오는 다음 문자일 가능성(likelihood)을 표시하는) 확률 값을 포함할 수 있다. 도 4에서 제시되는 바와 같이, 't', 'h', 'e'에 대응하는 어휘집 트리 내의 각각의 확률 노드들은 빈도(110A)에 근거하고 있을 수 있다. 예를 들어, 빈도(110A)는 소정의 언어 상황에서 문자열 "the"의 확률을 표시할 수 있다. 일 예로서, 만약 언어 상황이 두 개의 이전에 입력된 문자열들을 포함하고 있다면, 빈도(110)는 두 개의 이전에 입력된 문자열들이 주어진 상황에서의 "the"의 확률을 나타낼 수 있다. 't', 'h', 'e'에 대응하는 노드들 각각에 포함된 확률들은 집합적으로 빈도(110A)와 동일할 수 있다. 예를 들어, 't', 'h', 'e'에 대한 노드들 각각에 대응하는 확률들의 곱 및/또는 합은 빈도(110A)와 동일할 수 있다.
탭핑 제스처 및/또는 연속적인 제스처의 하나 이상의 표시들에 응답하여 언어 모델(28) 내의 문자열들의 참조를 점진적으로 수행하기 위해, 키보드 모듈(22)은 어휘집 트리의 노드들의 하나 이상의 경로들을 결정함으로써 예시적 접두어들 "SAR" 및 "SAT"에 근거하여 하나 이상의 문자열들을 결정할 수 있다. 말단 노드에서 끝나는 임의의 경로에서의 노드들의 시퀀스는 언어 모델(28) 내의 문자열에 대응할 수 있다. 키보드 모듈(22)은 접두어의 각각의 문자들에 대응하는 노드들을 포함하는 하나 이상의 경로들을 결정할 수 있다. 일 예에서, 사용자가 단지 부분적으로 제스처를 완료한 경우(예를 들어, 단지 "sat"만을 포함하는 접두어) 하나 이상의 제안된 문자열들을 출력하기 위해, 키보드 모듈(22)은 노드들 "s", "a", "t"의 경로의 "t"에 대응하는 노드가 말단 노드가 아님을 결정할 수 있고, 키보드 모듈(22)은 "t"에 대응하는 노드로부터 말단 노드들로의 하나 이상의 경로들을 탐색할 수 있다. 각각의 경로는, 각각의 경로 내의 노드들과 관련된 문자들을 포함하는 언어 모델 내의 상이한 문자열에 대응할 수 있다. 따라서, 키보드 모듈(22)은 예를 들어, 하나 이상의 노드들을 포함함과 아울러 임의의 선택된 문자열에 대응하는 경로의 각각의 노드에 포함된 확률들에 근거하여, 가장 높은 언어 모델 점수들을 갖는 경로들을 선택함으로써 언어 모델(28)을 사용하여 문자열들을 선택할 수 있다.
도 1에서 앞서 설명된 바와 같이, 키보드 모듈(22)은 언어 모델 점수 및 공간 모델 점수에 근거하는 결합된 점수를 문자열들(예를 들어, 언어 모델(28)로부터의 단어)과 관련시킬 수 있다. 키보드 모듈(22)은 가장 높은 결합된 점수들을 갖는 하나 이상의 문자열들을 선택할 수 있다. 키보드 모듈(22)은 디스플레이를 위해 이러한 문자열들을 출력할 수 있거나, 아니면 이러한 문자열들을 선택할 수 있다. 그러나, 일부 예들에서, 사용자는 언어 모델(28) 내에 포함되어 있지 않은 문자열을 입력하고자 할 수 있다. 예를 들어, 어휘목록-내에-없는 문자열 "satok"은 언어 모델 내에 포함되어 있지 않을 수 있다. 달리 말하면, 언어 모델(28)의 어휘집 트리가 "s", "a", "t", "o", "k"에 대응하는 노드들의 경로를 포함하지 않을 수 있다. 그 의도된 문자열 "satok"이 언어 모델(28) 내에 포함되어 있지 않기 때문에 문자열 "satok"을 출력하지 않는 것이 아니라, 키보드 모듈(22)은 문자열 "satok"을 어휘목록-내에-없는 언어 모델 점수와 관련시킬 수 있다. 어휘목록-내에-없는 언어 모델 점수는 사전 내에 포함되어 있지 않은 문자열과 관련될 수 있고, 언어 모델(28)에 근거하는 언어 모델 점수가 없는 경우 대체 점수로서의 역할을 할 수 있다. 이러한 방식으로, 키보드 모듈(22)은 어휘목록-내에-없는 언어 모델 점수 및 공간 모델 점수에 근거하여 결합된 점수를 결정할 수 있고, 이에 따라 그 결합된 점수는 "satok"과 관련되게 된다. 그 다음에 키보드 모듈(22)은 "satok"의 결합된 점수를 비교할 수 있고, 만약 가장 높은 결합된 점수들을 갖는 문자열들의 그룹 내에 이것이 포함되어 있다면, 키보드 모듈(22)은 (예를 들어, 디스플레이를 위해 출력하기 위해) "satok"을 선택할 수 있다.
일부 예들에서, 어휘목록-내에-없는 언어 모델 점수는 언어 모델(28) 내에서 문자열과 관련된 가장 낮은 언어 모델 점수일 수 있다. 예를 들어, 키보드 모듈(22)은 (예를 들어, 사전의 문자열들을 포함하는) 언어 모델(28) 내에 포함되어 있는 복수의 문자열들을 결정할 수 있다. 도 4에서 제시되는 바와 같이, 언어 모델(28) 내의 복수의 문자열들의 각각의 문자열은 빈도(110A, 110N, 등)와 같은 각각의 확률과 관련될 수 있다. 키보드 모듈(22)은 언어 모델(28) 내에서 복수의 확률들에 포함되어 있는 가장 낮은 확률을 결정할 수 있다. 예를 들어, 키보드 모듈(22)은 빈도(110N)가 언어 모델(28) 내에서 가장 낮은 확률(예를 들어, 문자열들과 관련된 다른 확률들에 비해 가장 작은 확률)임을 결정할 수 있다. 키보드 모듈(22)은 가장 낮은 확률에 적어도 부분적으로 근거하여 어휘목록-내에-없는 언어 모델 점수를 결정할 수 있다. 예를 들어, 키보드 모듈(22)은 언어 모델(28) 내에서 문자열과 관련된 가장 낮은 확률을 어휘목록-내에-없는 언어 모델 점수로서 사용할 수 있다. 다른 예들에서, 키보드 모듈(22)은 가장 낮은 확률에 가중치를 적용할 수 있고 이러한 가중치가 부여된 가장 낮은 확률을 어휘목록-내에-없는 언어 모델 점수로서 사용할 수 있다. 어떤 경우에서건, 어휘목록-내에-없는 언어 모델 점수의 결정시, 키보드 모듈(22)은 문자열과 관련된 공간 모델 점수 및 어휘목록-내에-없는 언어 모델 점수에 근거하여 임의의 결합된 점수를 결정할 수 있다.
일부 예들에서, 키보드 모듈(22)은 미리정의된 값을 어휘목록-내에-없는 언어 모델 점수로서 사용할 수 있다. 예를 들어, 키보드 모듈(22)은 사용자 및/또는 엔지니어(engineer)에 의해 구성되는 임의의 미리정의된 값을 저장 및/또는 결정할 수 있다. 미리-정의된 값은 상수 값일 수 있다. 예를 들어, 미리-정의된 값은 비-제로 값(non-zero value)일 수 있다. 일부 예들에서, 미리-정의된 값은 언어 모델(28) 내의 문자열들과 관련된 확률들에 근거하고 있지 않을 수 있다. 또 다른 예들에서, 키보드 모듈(22)은 미리-정의된 값에 가중치를 적용할 수 있고, 이에 따라 이러한 가중치가 부여된 미리-정의된 값은 어휘목록-내에-없는 언어 모델 점수로서 사용되게 된다. 일부 예들에서, 가중치는 키보드 모듈(22)에 의해 어휘목록-내에-없는 언어 모델 점수와 관련되는 문자열의 공간 모델 점수에 적어도 부분적으로 근거하고 있을 수 있다.
일부 예들에서, 키보드 모듈(22)은 문자열의 결합된 점수, 공간 모델 점수, 및 어휘목록-내에-없는 언어 모델 점수 중 적어도 하나에 패널티 값(penalty value)을 적용할 수 있다. 예를 들어, 키보드 모듈(28)은 결합된 점수가 어휘목록-내에-없는 언어 모델 점수에 적어도 부분적으로 근거하고 있다는 결정에 응답하여 패널티 값을 적용할 수 있다. 키보드 모듈(22)은, 어휘목록-내에-없는 문자열이 그 문자열 내에 포함된 문자들에 대응하는 키들과 관련된 공간 모델 점수가 높은 이유로 매우 높은 결합된 점수를 가질 수 있기 때문에, 패널티 값을 적용할 수 있다. 일부 예들에서, 패널티 값은 상수 값일 수 있다. 패널티 값은 사용자 및/또는 엔지니어에 의해 구성될 수 있다. 일부 예들에서, 임의의 값(예를 들어, 패널티 값, 미리-정의된 값, 점수 등)에 가중치를 적용하는 것은 해당하는 값과 가중치를 더하는 것 혹은 곱하는 것을 포함할 수 있다.
일부 예들에서, 키보드 모듈(22)은 문자열과 관련된 공간 모델 점수가 임계조건을 만족시킨다는 결정에 응답하여 어휘목록-내에-없는 언어 모델 점수를 문자열과 관련시킬 수 있다. 일부 예들에서, 공간 모델 점수는 점수가 임계치보다 더 큰 경우 임계조건을 만족시킬 수 있다. 다른 예들에서, 공간 모델 점수는 점수가 임계치보다 더 작은 경우 임계조건을 만족시킬 수 있다. 따라서, 일부 예들에서, 키보드 모듈(22)은 어휘목록-내에-없는 언어 모델 점수를, 임계조건을 만족시키는 못하는 공간 모델 점수를 갖는 문자열과 관련시키지 않을 수 있다. 결과적으로, 일부 예들에서, 키보드 모듈(22)은, 문자열과 관련된 공간 모델 점수가 임계조건을 만족시키는 경우에만 어휘목록-내에-없는 언어 모델 점수를 문자열과 관련시킬 수 있다.
도 5는 본 개시내용의 하나 이상의 실시형태들에 따른, 어휘목록-내에-없는 문자열을 제스처 키보드로 결정하도록 구성되어 있는 컴퓨팅 디바이스의 예시적인 동작들을 나타낸 흐름도이다. 예시적 목적으로, 도 1 및 도 2에서 제시되는 바와 같은 컴퓨팅 디바이스(10)와 관련시켜 예시적인 동작들이 아래에서 설명된다.
컴퓨팅 디바이스(10)는 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 초기에 출력할 수 있다(120). 예를 들어, 도 1에서 제시되는 바와 같이, 컴퓨팅 디바이스(10)는 사용자 인터페이스(14) 내에 그래픽 키보드(16B)를 출력할 수 있다. UID(12)와 같은 프레즌스-감지 디스플레이에서 검출된 제스처의 표시를 수신함에 응답하여, 컴퓨팅 디바이스(10)는 복수의 키들 중 하나 이상의 키의 선택을 결정할 수 있다(122). 예를 들어, 컴퓨팅 디바이스(10)는 복수의 키들 중 하나 이상의 키의 선택을 결정하기 위해 공간 모델(26)과 같은 하나 이상의 공간 모델들을 사용할 수 있다.
컴퓨팅 디바이스(10)는 이러한 선택에서의 복수의 키들 중 하나 이상의 키에 대응하는 문자열을 결정할 수 있다(124). 일부 예들에서, 이 문자열은 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 사전(예를 들어, 단어들의 어휘목록을 포함할 수 있는 사전) 내에 포함되어 있지 않을 수 있다(127). 예를 들어, 예를 들어, 문자열은 사전 내에 있는 문자열의 접두어에 대응하지 않는 하나 이상의 문자들의 시퀀스를 포함하는 접두어일 수 있다. 다른 예들에서, 문자열은 사전 내에 포함되어 있을 수 있다(129). 일부 예들에서, 문자열이 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 사전 내에 포함되어 있지 않다는 결정에 응답하여, 컴퓨팅 디바이스(10)는 문자열을 어휘목록 내에 없는 언어 모델 점수와 관련시킬 수 있다(126). 일부 예들에서, 어휘목록-내에-없는 언어 모델 점수는 사전 내에 포함되어 있지 않은 문자열과 관련될 수 있다.
일부 예들에서, 컴퓨팅 디바이스(10)는 제스처와 관련된 공간 모델 점수 및 어휘목록-내에-없는 언어 모델 점수에 적어도 부분적으로 근거하여, 문자열이 제스처에 대응할 확률을 표시하는 결합된 점수를 결정할 수 있다(128). 컴퓨팅 디바이스(10)는 디스플레이를 위해 문자열을 출력할 수 있다(128). 예를 들어, 일부 예들에서, 컴퓨팅 디바이스(10)는 결합된 점수가 임계조건을 만족시킴을 결정할 수 있다. 컴퓨팅 디바이스(10)는 사용자 인터페이스(14) 내에 디스플레이를 출력할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 사용자 인터페이스(14)의 영역들(16) 중 하나의 영역에 디스플레이를 위해 문자열을 출력할 수 있다.
일부 예들에서, 이러한 동작들은, 어휘목록 내에 포함되어 있는 복수의 문자열들로부터의 각각의 문자열에 대해, 각각의 문자열과 관련된 각각의 확률을 컴퓨팅 디바이스에 의해 복수의 확률들로부터 결정하는 것과; 복수의 확률들에 포함된 가장 낮은 확률을 컴퓨팅 디바이스에 의해 결정하는 것과; 그리고 가장 낮은 확률을 어휘목록-내에-없는 언어 모델 점수로서 컴퓨팅 디바이스에 의해 사용하는 것과; 복수의 확률들에 포함된 가장 낮은 확률을 컴퓨팅 디바이스에 의해 결정하는 것과; 그리고 가장 낮은 확률을 어휘목록-내에-없는 언어 모델 점수로서 컴퓨팅 디바이스에 의해 사용하는 것을 포함할 수 있다. 일부 예들에서, 이러한 동작들은, 문자열이 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 컴퓨팅 디바이스에 의해, 미리정의된 값을 어휘목록-내에-없는 언어 모델 점수로서 선택하는 것을 포함할 수 있다.
일부 예들에서, 이러한 동작들은, 앞서의 선택에서의 복수의 키들 중 하나 이상의 키에 대응하는 복수의 서로 다른 문자열들을 컴퓨팅 디바이스에 의해 결정하는 것과, 여기서 복수의 서로 다른 문자열들 각각은 어휘목록 내에 포함되어 있으며; 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수를 컴퓨팅 디바이스에 의해 결정하는 것과; 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 결합된 점수를 컴퓨팅 디바이스에 의해 결정하는 것과, 여기서 각각의 결합된 점수는 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수 및 공간 모델 점수에 적어도 부분적으로 근거하고 있으며; 그리고 복수의 문자열들의 서로 다른 문자열들 중 적어도 하나의 문자열에 대한 각각의 결합된 점수가 임계조건을 만족시킨다는 결정에 응답하여, 서로 다른 문자열들 중 적어도 하나의 문자열을 어휘목록-내에-없는 문자열과 함께 디스플레이를 위해 컴퓨팅 디바이스에 의해 출력하는 것을 포함할 수 있다.
일부 예들에서, 이러한 동작들은, 디스플레이를 위해 컴퓨팅 디바이스에 의해 출력되는 그래픽 사용자 인터페이스 내의 복수의 문자열 제안 영역들을 컴퓨팅 디바이스에 의해 결정하는 것과; 앞서의 선택에서의 복수의 키들 중 하나 이상의 키에 대응하는 복수의 서로 다른 문자열들을 컴퓨팅 디바이스에 의해 결정하는 것과, 여기서 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열은 어휘목록 내에 포함되어 있고; 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수를 컴퓨팅 디바이스에 의해 결정하는 것과; 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 결합된 점수를 컴퓨팅 디바이스에 의해 결정하는 것과, 여기서 각각의 결합된 점수는 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수 및 공간 모델 점수에 적어도 부분적으로 근거하고 있으며; 복수의 문자열들 내의 가능성 있는 문자열들의 양을 컴퓨팅 디바이스에 의해 결정하는 것과, 여기서 가능성 있는 문자열들은 어휘목록-내에-없는 문자열의 결합된 점수보다 더 높은 확률들을 표시하는 결합된 점수들과 관련되고; 가능성 있는 문자열들의 양이 복수의 문자열 제안 영역들에서의 문자열 제안 영역들의 양보다 더 크다는 결정에 응답하여, 복수의 문자열 제안 영역들 중 적어도 하나의 문자열 제안 영역 내에 어휘목록-내에-없는 문자열을 디스플레이를 위해 컴퓨팅 디바이스에 의해 출력하는 것을 포함할 수 있다.
일부 예들에서, 이러한 동작들은, 패널티 값을 컴퓨팅 디바이스에 의해 결정하는 것과; 그리고 컴퓨팅 디바이스에 의해, 문자열의 결합된 점수, 공간 모델 점수, 그리고 어휘목록-내에-없는 언어 모델 점수 중 적어도 하나에 패널티 값을 적용하는 것을 포함할 수 있다. 일부 예들에서, 이러한 동작들은, 프레즌스-감지 스크린에서 검출된 하나 이상의 제스처들의 복수의 표시들을 수신하면서, 언어 상황에 근거하여 어휘목록-내에-없는 언어 모델 점수를 컴퓨팅 디바이스에 의해 업데이트하는 것을 포함하며, 여기서 언어 상황은 하나 이상의 제스처들의 복수의 표시들 중 적어도 하나의 표시에 응답하여 변한다. 일부 예들에서, 제스처는 그래픽 키보드의 복수의 키들에 각각 대응하는 프레즌스-감지 스크린의 복수의 위치들을 가로질러 이동하는 연속적인 제스처일 수 있다.
하나 이상의 예들에서, 앞서 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어 혹은 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 이러한 기능들은 하나 이상의 명령들 혹은 코드로서 컴퓨터-판독가능 매체에 저장될 수 있거나 컴퓨터-판독가능 매체를 통해 전송될 수 있으며, 하드웨어-기반의 프로세싱 유닛에 의해 실행될 수 있다. 컴퓨터-판독가능 매체들은, 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터-판독가능 저장 매체들을 포함할 수 있거나, 또는 예를 들어, 통신 프로토콜에 따라 하나의 장소로부터 또 하나의 다른 장소로 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수 있다. 이러한 방식으로, 컴퓨터-판독가능 매체들은 일반적으로, (1) 비-일시적인 저장 매체인 유형의 컴퓨터-판독가능 저장 매체들, 또는 (2) 신호 혹은 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체들은 본 개시내용에서 설명되는 기법들의 구현을 위해 명령들, 코드 및/또는 데이터 구조들을 검색하기 위한 이상의 컴퓨터들 혹은 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수 있다. 컴퓨터 프로그램물은 컴퓨터-판독가능 매체를 포함할 수 있다.
예시 1(Example 1): 방법이 제공되며, 이 방법은, 복수의 키(key)들을 포함하는 그래픽 키보드(graphical keyboard)를 디스플레이(display)를 위해 컴퓨팅 디바이스(computing device)에 의해 출력하는 단계와; 프레즌스 감지 입력 디바이스(presence-sensitive input device)에서 검출된 제스처(gesture)의 표시를 수신함에 응답하여, 상기 복수의 키들 중 하나 이상 키의 선택을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 상기 선택의 상기 복수의 키들 중 하나 이상의 키에 근거하여 상기 컴퓨팅 디바이스에 의해 문자열(character string)을 결정하는 단계와, 여기서 상기 문자열은 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록(vocabulary) 내에 포함되어 있지 않으며; 상기 문자열이 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 상기 컴퓨팅 디바이스에 의해, 상기 문자열을 어휘목록 내에 없는 언어 모델 점수(out-of-vocabulary language model score)와 관련시키는 단계와, 여기서 상기 어휘목록 내에 없는 언어 모델 점수는 상기 문자열에 언어 모델을 적용함이 없이 결정되는 대체 점수(substitute score)이고; 상기 제스처와 관련된 공간 모델 점수(spatial model score) 및 상기 어휘목록 내에 없는 언어 모델 점수에 적어도 부분적으로 근거하여, 상기 문자열이 상기 제스처에 대응할 확률을 표시하는 결합된 점수(combined score)를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 그리고 상기 문자열을 디스플레이를 위해 상기 컴퓨팅 디바이스에 의해 출력하는 단계를 포함한다.
예시 2(Example 2): 예시 1의 방법에 있어서, 상기 문자열을 상기 어휘목록 내에 없는 언어 모델 점수와 관련시키는 단계는 또한, 상기 어휘목록 내에 포함되어 있는 복수의 문자열들로부터의 각각의 문자열에 대해, 상기 각각의 문자열과 관련된 각각의 확률을 상기 컴퓨팅 디바이스에 의해 복수의 확률들로부터 결정하는 것과; 상기 복수의 확률들에 포함된 가장 낮은 확률을 상기 컴퓨팅 디바이스에 의해 결정하는 것과; 그리고 상기 가장 낮은 확률을 상기 어휘목록 내에 없는 언어 모델 점수로서 상기 컴퓨팅 디바이스에 의해 사용하는 것을 포함한다.
예시 3(Example 3): 예시 1과 예시 2 중 어느 하나의 예시의 방법에 있어서, 상기 문자열을 상기 어휘목록 내에 없는 언어 모델 점수와 관련시키는 단계는 또한, 상기 문자열이 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 상기 컴퓨팅 디바이스에 의해, 미리정의된 값(predefined value)을 상기 어휘목록 내에 없는 언어 모델 점수로서 선택하는 것을 포함한다.
예시 4(Example 4): 예시 1 내지 예시 3 중 어느 하나의 예시의 방법에 있어서, 상기 문자열은 어휘목록 내에 없는 문자열이고, 상기 방법은, 상기 선택에서의 상기 복수의 키들 중 하나 이상의 키에 대응하는 복수의 서로 다른 문자열들을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와, 여기서 상기 복수의 서로 다른 문자열들 각각은 상기 어휘목록 내에 포함되어 있으며; 상기 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 결합된 점수를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와, 여기서 각각의 결합된 점수는 상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 상기 각각의 언어 모델 점수 및 상기 공간 모델 점수에 적어도 부분적으로 근거하고 있으며; 그리고 상기 복수의 문자열들의 서로 다른 문자열들 중 적어도 하나의 문자열에 대한 각각의 결합된 점수가 임계조건을 만족시킨다는 결정에 응답하여, 상기 서로 다른 문자열들 중 상기 적어도 하나의 문자열을 상기 어휘목록 내에 없는 문자열과 함께 디스플레이를 위해 상기 컴퓨팅 디바이스에 의해 출력하는 단계를 더 포함한다.
예시 5(Example 5): 예시 1 내지 예시 4 중 어느 하나의 예시의 방법에 있어서, 상기 문자열은 어휘목록 내에 없는 문자열이고, 상기 방법은, 디스플레이를 위해 상기 컴퓨팅 디바이스에 의해 출력되는 그래픽 사용자 인터페이스(graphical user interface) 내의 복수의 문자열 제안 영역(character string suggestion region)들을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 상기 선택에서의 상기 복수의 키들 중 하나 이상의 키에 대응하는 복수의 서로 다른 문자열들을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와, 여기서 상기 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열은 상기 어휘목록 내에 포함되어 있고; 상기 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 결합된 점수를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와, 여기서 각각의 결합된 점수는 상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 상기 각각의 언어 모델 점수 및 상기 공간 모델 점수에 적어도 부분적으로 근거하고 있으며; 상기 복수의 문자열들 내의 가능성 있는 문자열(probable character string)들의 양(quantity)을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와, 여기서 상기 가능성 있는 문자열들은 상기 어휘목록 내에 없는 문자열의 결합된 점수보다 더 높은 확률들을 표시하는 결합된 점수들과 관련되고; 상기 가능성 있는 문자열들의 양이 상기 복수의 문자열 제안 영역들에서의 문자열 제안 영역들의 양보다 더 크다는 결정에 응답하여, 상기 복수의 문자열 제안 영역들 중 적어도 하나의 문자열 제안 영역 내에 상기 어휘목록 내에 없는 문자열을 디스플레이를 위해 상기 컴퓨팅 디바이스에 의해 출력하는 단계를 더 포함한다.
예시 6(Example 6): 예시 1 내지 예시 5 중 어느 하나의 예시의 방법에 있어서, 패널티 값(penalty value)을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 그리고 상기 컴퓨팅 디바이스에 의해, 상기 문자열의 결합된 점수, 상기 공간 모델 점수, 그리고 상기 어휘목록 내에 없는 언어 모델 점수 중 적어도 하나에 상기 패널티 값을 적용하는 단계를 더 포함한다.
예시 7(Example 7): 예시 1 내지 예시 6 중 어느 하나의 예시의 방법에 있어서, 프레즌스 감지 스크린(presence-sensitive screen)에서 검출된 하나 이상의 제스처들의 복수의 표시들을 수신하면서, 언어 상황(language context)에 근거하여 상기 어휘목록 내에 없는 언어 모델 점수를 상기 컴퓨팅 디바이스에 의해 업데이트하는 단계를 더 포함하며, 상기 언어 상황은 상기 하나 이상의 제스처들의 복수의 표시들 중 적어도 하나의 표시에 응답하여 변한다.
예시 8(Example 8): 예시 1 내지 예시 7 중 어느 하나의 예시의 방법에 있어서, 상기 제스처는 또한, 상기 그래픽 키보드의 복수의 키들에 각각 대응하는 프레즌스 감지 스크린의 복수의 위치들을 가로질러 이동(traverse)하는 연속적인 제스처를 포함한다.
예시 9(Example 9): 명령들이 인코딩되어 있는 컴퓨터 판독가능 저장 매체(computer-readable storage medium)가 제공되며, 상기 명령들은 실행시 적어도 하나의 프로세서로 하여금, 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력하는 것과; 프레즌스 감지 입력 디바이스에서 검출된 제스처의 표시를 수신함에 응답하여, 상기 복수의 키들 중 하나 이상 키의 선택을 결정하는 것과; 상기 선택에서의 상기 복수의 키들 중 하나 이상의 키에 근거하여 문자열을 결정하는 것과, 여기서 상기 문자열은 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않으며; 상기 문자열이 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 상기 문자열을 어휘목록 내에 없는 언어 모델 점수와 관련시키는 것과, 여기서 상기 어휘목록 내에 없는 언어 모델 점수는 상기 문자열에 언어 모델을 적용함이 없이 결정되는 대체 점수이고; 상기 제스처와 관련된 공간 모델 점수 및 상기 어휘목록 내에 없는 언어 모델 점수에 적어도 부분적으로 근거하여, 상기 문자열이 상기 제스처에 대응할 확률을 표시하는 결합된 점수를 결정하는 것과; 그리고 상기 문자열을 디스플레이를 위해 출력하는 것을 수행하도록 한다.
예시 10(Example 10): 명령들이 인코딩되어 있는 예시 9의 컴퓨터 판독가능 저장 매체에 있어서, 상기 명령들은 실행시 상기 적어도 하나의 프로세서로 하여금, 예시 2 내지 예시 8에 기재된 방법들 중 어느 하나의 방법을 수행하도록 한다.
예시 11(Example 11): 적어도 하나의 프로세서를 포함하는 컴퓨팅 디바이스가 제공되며, 여기서 상기 적어도 하나의 프로세서는, 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력하는 것과; 프레즌스 감지 입력 디바이스에서 검출된 제스처의 표시를 수신함에 응답하여, 상기 복수의 키들 중 하나 이상 키의 선택을 결정하는 것과; 상기 선택에서의 상기 복수의 키들 중 하나 이상의 키에 근거하여 문자열을 결정하는 것과, 여기서 상기 문자열은 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않으며; 상기 문자열이 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 상기 문자열을 어휘목록 내에 없는 언어 모델 점수와 관련시키는 것과, 여기서 상기 어휘목록 내에 없는 언어 모델 점수는 상기 문자열에 언어 모델을 적용함이 없이 결정되는 대체 점수이고; 상기 제스처와 관련된 공간 모델 점수 및 상기 어휘목록 내에 없는 언어 모델 점수에 적어도 부분적으로 근거하여, 상기 문자열이 상기 제스처에 대응할 확률을 표시하는 결합된 점수를 결정하는 것과; 그리고 상기 문자열을 디스플레이를 위해 출력하는 것을 수행하도록 되어 있다.
예시 12(Example 12): 예시 11의 컴퓨팅 디바이스에 있어서, 상기 적어도 하나의 프로세서는 예시 2 내지 예시 8에 기재된 방법들 중 어느 하나의 방법을 수행하도록 구성된다.
예시 13(Example 13): 장치가 제공되며, 상기 장치는, 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력하기 위한 수단과; 프레즌스 감지 입력 디바이스에서 검출된 제스처의 표시를 수신함에 응답하여, 상기 복수의 키들 중 하나 이상 키의 선택을 결정하기 위한 수단과; 상기 선택의 상기 복수의 키들 중 하나 이상의 키에 근거하여 문자열을 결정하기 위한 수단과, 여기서 상기 문자열은 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않으며; 상기 문자열이 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 상기 문자열을 어휘목록 내에 없는 언어 모델 점수와 관련시키기 위한 수단과, 여기서 상기 어휘목록 내에 없는 언어 모델 점수는 상기 문자열에 언어 모델을 적용함이 없이 결정되는 대체 점수이고; 상기 제스처와 관련된 공간 모델 점수 및 상기 어휘목록 내에 없는 언어 모델 점수에 적어도 부분적으로 근거하여, 상기 문자열이 상기 제스처에 대응할 확률을 표시하는 결합된 점수를 결정하기 위한 수단과; 그리고 상기 문자열을 디스플레이를 위해 출력하기 위한 수단을 포함한다.
예시 14(Example 14): 예시 13의 장치는 예시 2 내지 예시 8에 기재된 방법들 중 어느 하나의 방법을 수행하기 위한 수단을 더 포함한다.
예를 들어, 비한정적 의미로서, 이러한 컴퓨터-판독가능 저장 매체는, RAM, ROM, EEPROM, CD-ROM 혹은 다른 광학 디스크 저장소, 자기 디스크 저장소 혹은 다른 자기 저장 디바이스들, 플래시 메모리, 또는 임의의 다른 매체를 포함할 수 있는바, 이들은 필요한 프로그램 코드를 명령들 혹은 데이터 구조들의 형태로 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있다. 또한, 임의의 연결이 컴퓨터-판독가능 매체로서 지칭된다. 예를 들어, 명령들이 동축 케이블, 광섬유 케이블, 트위스티드 페어(twisted pair), 디지털 가입자 회선(Digital Subscriber Line, DSL) 또는 무선 기술들(예컨대, 적외선(infrared), 라디오(radio), 및 마이크로파(microwave))을 사용하여 웹사이트, 서버, 혹은 다른 원격 소소로부터 전송되는 경우, 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL 또는 무선 기술들(예컨대, 적외선, 라디오, 및 마이크로파)이 매체의 정의(definition)에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체 및 데이터 저장 매체는 이러한 연결들, 반송파들, 신호들, 혹은 다른 일시적 매체들을 포함하지 않으며, 대신 비-일시적인 유형의 저장 매체에 관한 것임을 이해해야 한다. 사용되는 그러한 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(Compact Disc, CD), 레이저 디스크, 광학 디스크, 디지털 다용도 디스크(Digital Versatile Disc, DVD), 플로피 디스크, 및 블루-레이 디스크(Blu-ray disc)를 포함하며, 여기서 디스크(disk)들은 자기적으로(magnetically) 데이터를 재생시키고, 반면 디스크(disc)들은 레이저들을 통해 광학적으로(optically) 데이터를 재생시킨다. 앞서의 것들의 조합이 또한 컴퓨터-판독가능 매체들의 범위 내에 포함돼야 한다.
명령들은 하나 이상의 프로세서들에 의해 실행될 수 있는바, 이러한 프로세서들의 예로는 하나 이상의 디지털 신호 프로세서(Digital Signal Processor, DSP)들, 범용 마이크로프로세서(general purpose microprocessor)들, 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit, ASIC)들, 현장 프로그래밍가능 로직 어레이(Field Programmable Logic Array, FPGA)들, 또는 다른 등가의 집적된 혹은 분리된 로직 회로가 있다. 이에 따라, 그 사용되는 바와 같은 용어 "프로세서"는 앞서의 구조 중 어느 하나 또는 본 명세서에서 설명되는 기법들의 구현을 위해 적합한 임의의 다른 구조를 지칭할 수 있다. 추가적으로, 일부 실시형태들에서, 본 명세서에서 설명되는 기능은 전용 하드웨어 모듈 및/또는 소프트웨어 모듈 내에 제공될 수 있다. 또한, 이러한 기법들은 하나 이상의 회로들 혹은 로직 소자들 내에 완전히 구현될 수 있다.
본 개시내용의 이러한 기법들은, 무선 핸드셋(wireless handset), 집적 회로(Integrated Circuit, IC) 혹은 IC들의 세트(예를 들어, 칩 셋(chip set))를 포함하는, 매우 광범위하고 다양한 디바이스들 혹은 장치들에서 구현될 수 있다. 다양한 컴포넌트들, 모듈들, 혹은 유닛들이, 본 명세서에서 개시되는 기법들을 수행하도록 구성된 디바이스들의 기능적 실시형태들을 강조하기 위해, 본 개시내용에서 설명되고 있지만, 이러한 서로 다른 하드웨어 유닛들에 의해 반드시 실현될 것을 요구하는 것은 아니다. 오히려, 앞서 설명된 바와 같이, 다양한 유닛들은 임의의 하드웨어 유닛 내에서 결합될 수 있고, 혹은 상호 간에 동작가능한 하드웨어 유닛들의 집합체에 의해 제공될 수 있는바, 여기에는 앞서 설명된 바와 같은 하나 이상의 프로세서들이 적합한 하드웨어 및/또는 펌웨어와 결합되어 포함된다.
실시예에 따라, 본 명세서에서 설명되는 방법들 중 임의의 방법의 특정 동작들 혹은 이벤트들은, 상이한 시퀀스로 수행될 수 있거나, 추가될 수 있거나, 병합될 수 있거나, 혹은 배제될 수 있는바, 이들은 모두 함께 행해질 수 있음을 이해해야 한다(예를 들어, 본 명세서에서 설명된 동작들 혹은 이벤트들 모두가 본 방법의 실시를 위해 필요한 것은 아님). 더욱이, 특정 실시예들에서, 이러한 동작들 혹은 이벤트들은, 순차적으로 수행되는 것이 아니라, 예를 들어, 멀티-쓰레디드 프로세싱(multi-threaded processing), 인터럽트 프로세싱(interrupt processing), 혹은 복수의 프로세서들을 통해, 동시에 수행될 수 있다.
다양한 예들이 설명되었다. 이러한 예들 및 다른 예들은 아래에 제시되는 특허청구범위 내에 있다.

Claims (24)

  1. 복수의 키(key)들을 포함하는 그래픽 키보드(graphical keyboard)를 디스플레이(display)를 위해 컴퓨팅 디바이스(computing device)에 의해 출력하는 단계와;
    프레즌스 감지 입력 디바이스(presence-sensitive input device)에서 검출된 제스처(gesture)의 표시를 수신함에 응답하여, 상기 복수의 키들 중 하나 이상 키의 선택을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와;
    상기 선택의 상기 복수의 키들 중 하나 이상의 키에 근거하여 상기 컴퓨팅 디바이스에 의해 문자열(character string)을 결정하는 단계와, 여기서 상기 문자열은 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록(vocabulary) 내에 포함되어 있지 않으며;
    상기 문자열이 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 상기 컴퓨팅 디바이스에 의해, 상기 문자열을 어휘목록 내에 없는 언어 모델 점수(out-of-vocabulary language model score)와 관련시키는 단계와, 여기서 상기 어휘목록 내에 없는 언어 모델 점수는 상기 문자열에 언어 모델을 적용함이 없이 결정되는 대체 점수(substitute score)이고;
    상기 제스처와 관련된 공간 모델 점수(spatial model score) 및 상기 어휘목록 내에 없는 언어 모델 점수에 적어도 부분적으로 근거하여, 상기 문자열이 상기 제스처에 대응할 확률을 표시하는 결합된 점수(combined score)를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 그리고
    상기 문자열을 디스플레이를 위해 상기 컴퓨팅 디바이스에 의해 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 문자열을 상기 어휘목록 내에 없는 언어 모델 점수와 관련시키는 단계는 또한,
    상기 어휘목록 내에 포함되어 있는 복수의 문자열들로부터의 각각의 문자열에 대해, 상기 각각의 문자열과 관련된 각각의 확률을 상기 컴퓨팅 디바이스에 의해 복수의 확률들로부터 결정하는 것과;
    상기 복수의 확률들에 포함된 가장 낮은 확률을 상기 컴퓨팅 디바이스에 의해 결정하는 것과; 그리고
    상기 가장 낮은 확률을 상기 어휘목록 내에 없는 언어 모델 점수로서 상기 컴퓨팅 디바이스에 의해 사용하는 것을 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 문자열을 상기 어휘목록 내에 없는 언어 모델 점수와 관련시키는 단계는 또한,
    상기 문자열이 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 상기 컴퓨팅 디바이스에 의해, 미리정의된 값(predefined value)을 상기 어휘목록 내에 없는 언어 모델 점수로서 선택하는 것을 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 문자열은 어휘목록 내에 없는 문자열이고, 상기 방법은,
    상기 선택에서의 상기 복수의 키들 중 하나 이상의 키에 대응하는 복수의 서로 다른 문자열들을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와, 여기서 상기 복수의 서로 다른 문자열들 각각은 상기 어휘목록 내에 포함되어 있으며;
    상기 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와;
    상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 결합된 점수를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와, 여기서 각각의 결합된 점수는 상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 상기 각각의 언어 모델 점수 및 상기 공간 모델 점수에 적어도 부분적으로 근거하고 있으며; 그리고
    상기 복수의 문자열들의 서로 다른 문자열들 중 적어도 하나의 문자열에 대한 각각의 결합된 점수가 임계조건을 만족시킨다는 결정에 응답하여, 상기 서로 다른 문자열들 중 상기 적어도 하나의 문자열을 상기 어휘목록 내에 없는 문자열과 함께 디스플레이를 위해 상기 컴퓨팅 디바이스에 의해 출력하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 문자열은 어휘목록 내에 없는 문자열이고, 상기 방법은,
    디스플레이를 위해 상기 컴퓨팅 디바이스에 의해 출력되는 그래픽 사용자 인터페이스(graphical user interface) 내의 복수의 문자열 제안 영역(character string suggestion region)들을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와;
    상기 선택에서의 상기 복수의 키들 중 하나 이상의 키에 대응하는 복수의 서로 다른 문자열들을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와, 여기서 상기 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열은 상기 어휘목록 내에 포함되어 있고;
    상기 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와;
    상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 결합된 점수를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와, 여기서 각각의 결합된 점수는 상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 상기 각각의 언어 모델 점수 및 상기 공간 모델 점수에 적어도 부분적으로 근거하고 있으며;
    상기 복수의 문자열들 내의 가능성 있는 문자열(probable character string)들의 양(quantity)을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와, 여기서 상기 가능성 있는 문자열들은 상기 어휘목록 내에 없는 문자열의 결합된 점수보다 더 높은 확률들을 표시하는 결합된 점수들과 관련되고;
    상기 가능성 있는 문자열들의 양이 상기 복수의 문자열 제안 영역들에서의 문자열 제안 영역들의 양보다 더 크다는 결정에 응답하여, 상기 복수의 문자열 제안 영역들 중 적어도 하나의 문자열 제안 영역 내에 상기 어휘목록 내에 없는 문자열을 디스플레이를 위해 상기 컴퓨팅 디바이스에 의해 출력하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    패널티 값(penalty value)을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 그리고
    상기 컴퓨팅 디바이스에 의해, 상기 문자열의 결합된 점수, 상기 공간 모델 점수, 그리고 상기 어휘목록 내에 없는 언어 모델 점수 중 적어도 하나에 상기 패널티 값을 적용하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    프레즌스 감지 스크린(presence-sensitive screen)에서 검출된 하나 이상의 제스처들의 복수의 표시들을 수신하면서, 언어 상황(language context)에 근거하여 상기 어휘목록 내에 없는 언어 모델 점수를 상기 컴퓨팅 디바이스에 의해 업데이트하는 단계를 더 포함하며,
    상기 언어 상황은 상기 하나 이상의 제스처들의 복수의 표시들 중 적어도 하나의 표시에 응답하여 변하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 제스처는 또한, 상기 그래픽 키보드의 복수의 키들에 각각 대응하는 프레즌스 감지 스크린(presence-sensitive screen)의 복수의 위치들을 가로질러 이동(traverse)하는 연속적인 제스처를 포함하는 것을 특징으로 하는 방법.
  9. 명령들이 인코딩되어 있는 컴퓨터 판독가능 저장 매체(computer-readable storage medium)로서, 상기 명령들은 실행시 적어도 하나의 프로세서로 하여금,
    복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력하는 것과;
    프레즌스 감지 입력 디바이스(presence-sensitive input device)에서 검출된 제스처의 표시를 수신함에 응답하여, 상기 복수의 키들 중 하나 이상 키의 선택을 결정하는 것과;
    상기 선택에서의 상기 복수의 키들 중 하나 이상의 키에 근거하여 문자열을 결정하는 것과, 여기서 상기 문자열은 문자열들의 식별을 위해 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않으며;
    상기 문자열이 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 상기 문자열을 어휘목록 내에 없는 언어 모델 점수와 관련시키는 것과, 여기서 상기 어휘목록 내에 없는 언어 모델 점수는 상기 문자열에 언어 모델을 적용함이 없이 결정되는 대체 점수이고;
    상기 제스처와 관련된 공간 모델 점수 및 상기 어휘목록 내에 없는 언어 모델 점수에 적어도 부분적으로 근거하여, 상기 문자열이 상기 제스처에 대응할 확률을 표시하는 결합된 점수를 결정하는 것과; 그리고
    상기 문자열을 디스플레이를 위해 출력하는 것을 수행하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  10. 제9항에 있어서,
    명령들이 인코딩되어 있는 상기 컴퓨터 판독가능 저장 매체에서, 상기 명령들은 실행시 적어도 하나의 프로세서로 하여금,
    상기 어휘목록 내에 포함되어 있는 복수의 문자열들을 결정하는 것과, 여기서 상기 복수의 문자열들의 각각의 문자열은 복수의 확률들의 각각의 확률과 관련되며;
    상기 복수의 확률들에 포함된 가장 낮은 확률을 결정하는 것과; 그리고
    상기 가장 낮은 확률을 상기 어휘목록 내에 없는 언어 모델 점수로서 사용하는 것을 수행하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  11. 제9항에 있어서,
    명령들이 인코딩되어 있는 상기 컴퓨터 판독가능 저장 매체에서, 상기 명령들은 실행시 적어도 하나의 프로세서로 하여금,
    상기 문자열이 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 미리정의된 값을 상기 어휘목록 내에 없는 언어 모델 점수로서 선택하는 것을 수행하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  12. 제9항에 있어서,
    상기 문자열은 어휘목록 내에 없는 문자열이고,
    명령들이 인코딩되어 있는 상기 컴퓨터 판독가능 저장 매체에서, 상기 명령들은 실행시 적어도 하나의 프로세서로 하여금,
    상기 선택에서의 상기 복수의 키들 중 하나 이상의 키에 대응하는 복수의 서로 다른 문자열들을 결정하는 것과, 여기서 상기 복수의 서로 다른 문자열들 각각은 상기 어휘목록 내에 포함되어 있으며;
    상기 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수를 결정하는 것과;
    상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 결합된 점수를 결정하는 것과, 여기서 각각의 결합된 점수는 상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 상기 각각의 언어 모델 점수 및 상기 공간 모델 점수에 적어도 부분적으로 근거하고 있으며; 그리고
    상기 복수의 문자열들의 서로 다른 문자열들 중 적어도 하나의 문자열에 대한 각각의 결합된 점수가 임계조건을 만족시킨다는 결정에 응답하여, 상기 서로 다른 문자열들 중 상기 적어도 하나의 문자열을 상기 어휘목록 내에 없는 문자열과 함께 디스플레이를 위해 출력하는 것을 수행하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  13. 제9항에 있어서,
    상기 문자열은 어휘목록 내에 없는 문자열이고,
    명령들이 인코딩되어 있는 상기 컴퓨터 판독가능 저장 매체에서, 상기 명령들은 실행시 적어도 하나의 프로세서로 하여금,
    디스플레이를 위해 상기 컴퓨팅 디바이스에 의해 출력되는 그래픽 사용자 인터페이스 내의 복수의 문자열 제안 영역들을 결정하는 것과;
    상기 선택에서의 상기 복수의 키들 중 하나 이상의 키에 대응하는 복수의 서로 다른 문자열들을 결정하는 것과, 여기서 상기 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열은 상기 어휘목록 내에 포함되어 있으며;
    상기 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수를 결정하는 것과;
    상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 결합된 점수를 결정하는 것과, 여기서 각각의 결합된 점수는 상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 상기 각각의 언어 모델 점수 및 상기 공간 모델 점수에 적어도 부분적으로 근거하고 있으며;
    상기 복수의 문자열들 내의 가능성 있는 문자열들의 양을 결정하는 것과, 여기서 상기 가능성 있는 문자열들은 상기 어휘목록 내에 없는 문자열의 결합된 점수보다 더 높은 확률들을 표시하는 결합된 점수들과 관련되고; 그리고
    상기 가능성 있는 문자열들의 양이 상기 복수의 문자열 제안 영역들에서의 문자열 제안 영역들의 양보다 더 크다는 결정에 응답하여, 상기 복수의 문자열 제안 영역들 중 적어도 하나의 문자열 제안 영역 내에 상기 어휘목록 내에 없는 문자열을 디스플레이를 위해 출력하는 것을 수행하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  14. 제9항에 있어서,
    명령들이 인코딩되어 있는 상기 컴퓨터 판독가능 저장 매체에서, 상기 명령들은 실행시 적어도 하나의 프로세서로 하여금,
    패널티 값을 결정하는 것과; 그리고
    상기 문자열의 결합된 점수, 상기 공간 모델 점수, 그리고 상기 어휘목록 내에 없는 언어 모델 점수 중 적어도 하나에 상기 패널티 값을 적용하는 것을 수행하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  15. 제9항에 있어서,
    명령들이 인코딩되어 있는 상기 컴퓨터 판독가능 저장 매체에서, 상기 명령들은 실행시 적어도 하나의 프로세서로 하여금,
    프레즌스 감지 스크린(presence-sensitive screen)에서 검출된 하나 이상의 제스처들의 복수의 표시들을 수신하면서, 언어 상황에 근거하여 상기 어휘목록 내에 없는 언어 모델 점수를 업데이트하는 것을 수행하도록 하며,
    상기 언어 상황은 상기 하나 이상의 제스처들의 복수의 표시들 중 적어도 하나의 표시에 응답하여 변하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  16. 제9항에 있어서,
    상기 제스처는 또한, 상기 그래픽 키보드의 복수의 키들에 각각 대응하는 프레즌스 감지 스크린(presence-sensitive screen)의 복수의 위치들을 가로질러 이동하는 연속적인 제스처를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  17. 적어도 하나의 프로세서를 포함하는 컴퓨팅 디바이스로서,
    상기 적어도 하나의 프로세서는,
    복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력하는 것과;
    프레즌스 감지 입력 디바이스(presence-sensitive input device)에서 검출된 제스처의 표시를 수신함에 응답하여, 상기 복수의 키들 중 하나 이상 키의 선택을 결정하는 것과;
    상기 선택에서의 상기 복수의 키들 중 하나 이상의 키에 근거하여 문자열을 결정하는 것과, 여기서 상기 문자열은 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않으며;
    상기 문자열이 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 상기 문자열을 어휘목록 내에 없는 언어 모델 점수와 관련시키는 것과, 여기서 상기 어휘목록 내에 없는 언어 모델 점수는 상기 문자열에 언어 모델을 적용함이 없이 결정되는 대체 점수이고;
    상기 제스처와 관련된 공간 모델 점수 및 상기 어휘목록 내에 없는 언어 모델 점수에 적어도 부분적으로 근거하여, 상기 문자열이 상기 제스처에 대응할 확률을 표시하는 결합된 점수를 결정하는 것과; 그리고
    상기 문자열을 디스플레이를 위해 출력하는 것을 수행하도록 되어 있는 것을 특징으로 하는 컴퓨팅 디바이스.
  18. 제17항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 어휘목록 내에 포함되어 있는 복수의 문자열들을 결정하는 것과, 여기서 상기 복수의 문자열들의 각각의 문자열은 복수의 확률들의 각각의 확률과 관련되며;
    상기 복수의 확률들에 포함된 가장 낮은 확률을 결정하는 것과; 그리고
    상기 가장 낮은 확률을 상기 어휘목록 내에 없는 언어 모델 점수로서 사용하는 것을 수행하도록 되어 있는 것을 특징으로 하는 컴퓨팅 디바이스.
  19. 제17항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 문자열이 문자열들의 식별을 위해 상기 컴퓨팅 디바이스에 의해 사용되는 어휘목록 내에 포함되어 있지 않다는 결정에 응답하여, 미리정의된 값을 상기 어휘목록 내에 없는 언어 모델 점수로서 선택하는 것을 수행하도록 되어 있는 것을 특징으로 하는 컴퓨팅 디바이스.
  20. 제17항에 있어서,
    상기 문자열은 어휘목록 내에 없는 문자열이고,
    상기 적어도 하나의 프로세서는,
    상기 선택에서의 상기 복수의 키들 중 하나 이상의 키에 대응하는 복수의 서로 다른 문자열들을 결정하는 것과, 여기서 상기 복수의 서로 다른 문자열들 각각은 상기 어휘목록 내에 포함되어 있으며;
    상기 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수를 결정하는 것과;
    상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 결합된 점수를 결정하는 것과, 여기서 각각의 결합된 점수는 상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 상기 각각의 언어 모델 점수 및 상기 공간 모델 점수에 적어도 부분적으로 근거하고 있으며; 그리고
    상기 복수의 문자열들의 서로 다른 문자열들 중 적어도 하나의 문자열에 대한 각각의 결합된 점수가 임계조건을 만족시킨다는 결정에 응답하여, 상기 서로 다른 문자열들 중 상기 적어도 하나의 문자열을 상기 어휘목록 내에 없는 문자열과 함께 디스플레이를 위해 출력하는 것을 수행하도록 되어 있는 것을 특징으로 하는 컴퓨팅 디바이스.
  21. 제17항에 있어서,
    상기 문자열은 어휘목록 내에 없는 문자열이고,
    상기 적어도 하나의 프로세서는,
    디스플레이를 위해 상기 컴퓨팅 디바이스에 의해 출력되는 그래픽 사용자 인터페이스 내의 복수의 문자열 제안 영역들을 결정하는 것과;
    상기 선택에서의 상기 복수의 키들 중 하나 이상의 키에 대응하는 복수의 서로 다른 문자열들을 결정하는 것과, 여기서 상기 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열은 상기 어휘목록 내에 포함되어 있고;
    상기 복수의 서로 다른 문자열들의 각각의 서로 다른 문자열에 대한 각각의 언어 모델 점수를 결정하는 것과;
    상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 각각의 결합된 점수를 결정하는 것과, 여기서 각각의 결합된 점수는 상기 복수의 문자열들의 각각의 서로 다른 문자열에 대한 상기 각각의 언어 모델 점수 및 상기 공간 모델 점수에 적어도 부분적으로 근거하고 있으며;
    상기 복수의 문자열들 내의 가능성 있는 문자열들의 양을 결정하는 것과, 여기서 상기 가능성 있는 문자열들은 상기 어휘목록 내에 없는 문자열의 결합된 점수보다 더 높은 확률들을 표시하는 결합된 점수들과 관련되고; 그리고
    상기 가능성 있는 문자열들의 양이 상기 복수의 문자열 제안 영역들에서의 문자열 제안 영역들의 양보다 더 크다는 결정에 응답하여, 상기 복수의 문자열 제안 영역들 중 적어도 하나의 문자열 제안 영역 내에 상기 어휘목록 내에 없는 문자열을 디스플레이를 위해 출력하는 것을 수행하도록 되어 있는 것을 특징으로 하는 컴퓨팅 디바이스.
  22. 제17항에 있어서,
    상기 적어도 하나의 프로세서는,
    패널티 값을 결정하는 것과; 그리고
    상기 문자열의 결합된 점수, 상기 공간 모델 점수, 그리고 상기 어휘목록 내에 없는 언어 모델 점수 중 적어도 하나에 상기 패널티 값을 적용하는 것을 수행하도록 되어 있는 것을 특징으로 하는 컴퓨팅 디바이스.
  23. 제17항에 있어서,
    상기 적어도 하나의 프로세서는,
    프레즌스 감지 스크린(presence-sensitive screen)에서 검출된 하나 이상의 제스처들의 복수의 표시들을 수신하면서, 언어 상황에 근거하여 상기 어휘목록 내에 없는 언어 모델 점수를 업데이트하는 것을 수행하도록 되어 있으며,
    상기 언어 상황은 상기 하나 이상의 제스처들의 복수의 표시들 중 적어도 하나의 표시에 응답하여 변하는 것을 특징으로 하는 컴퓨팅 디바이스.
  24. 제17항에 있어서,
    상기 제스처는 또한, 상기 그래픽 키보드의 복수의 키들에 각각 대응하는 프레즌스 감지 스크린(presence-sensitive screen)의 복수의 위치들을 가로질러 이동하는 연속적인 제스처를 포함하는 것을 특징으로 하는 컴퓨팅 디바이스.
KR20140050979A 2013-04-29 2014-04-28 대체 점수를 사용하여 사전-내에-없는 문자열들의 제스처 키보드 입력 KR101484583B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/872,937 US8756499B1 (en) 2013-04-29 2013-04-29 Gesture keyboard input of non-dictionary character strings using substitute scoring
US13/872,937 2013-04-29

Publications (2)

Publication Number Publication Date
KR20140128884A KR20140128884A (ko) 2014-11-06
KR101484583B1 true KR101484583B1 (ko) 2015-01-20

Family

ID=50624452

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20140050979A KR101484583B1 (ko) 2013-04-29 2014-04-28 대체 점수를 사용하여 사전-내에-없는 문자열들의 제스처 키보드 입력

Country Status (4)

Country Link
US (1) US8756499B1 (ko)
EP (1) EP2800011A1 (ko)
KR (1) KR101484583B1 (ko)
CN (2) CN105929975A (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9454240B2 (en) 2013-02-05 2016-09-27 Google Inc. Gesture keyboard input of non-dictionary character strings
US20140359434A1 (en) * 2013-05-30 2014-12-04 Microsoft Corporation Providing out-of-dictionary indicators for shape writing
US10928924B2 (en) * 2013-11-26 2021-02-23 Lenovo (Singapore) Pte. Ltd. Typing feedback derived from sensor information
US9703394B2 (en) * 2015-03-24 2017-07-11 Google Inc. Unlearning techniques for adaptive language models in text entry
US20170185286A1 (en) * 2015-12-29 2017-06-29 Google Inc. Continuous keyboard recognition
US10884610B2 (en) * 2016-11-04 2021-01-05 Myscript System and method for recognizing handwritten stroke input
US9959868B1 (en) * 2017-03-09 2018-05-01 Wisconsin Alumni Research Foundation Conversational programming interface
US10635699B2 (en) * 2017-05-03 2020-04-28 Servicenow, Inc. Fuzzy matching for computing resources
KR102509822B1 (ko) * 2017-09-25 2023-03-14 삼성전자주식회사 문장 생성 방법 및 장치
CN112084081A (zh) * 2020-08-28 2020-12-15 苏州富强科技有限公司 一种基于工业控制的键盘检测方法及装置
US11880511B1 (en) * 2023-01-30 2024-01-23 Kiloma Advanced Solutions Ltd Real-time automatic multilingual input correction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005196759A (ja) 2004-01-06 2005-07-21 Internatl Business Mach Corp <Ibm> パーソナルコンピューティング装置のユーザ入力を改善するシステム及び方法
KR101003879B1 (ko) 2003-12-22 2010-12-30 에이오엘 엘엘씨 텍스트 입력 시스템
US20110202330A1 (en) 2010-02-12 2011-08-18 Google Inc. Compound Splitting
JP2012248153A (ja) 2011-05-31 2012-12-13 Kddi Corp 文字入力装置およびプログラム

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63198154A (ja) * 1987-02-05 1988-08-16 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション つづり誤り訂正装置
US5829002A (en) * 1989-02-15 1998-10-27 Priest; W. Curtiss System for coordinating information transfer and retrieval
JPH086707A (ja) * 1993-12-30 1996-01-12 Xerox Corp スクリーン指向ディスプレー処理システム
US5805911A (en) 1995-02-01 1998-09-08 Microsoft Corporation Word prediction system
US5764241A (en) * 1995-11-30 1998-06-09 Microsoft Corporation Method and system for modeling and presenting integrated media with a declarative modeling language for representing reactive behavior
US5923778A (en) * 1996-06-12 1999-07-13 Industrial Technology Research Institute Hierarchical representation of reference database for an on-line Chinese character recognition system
US5943674A (en) * 1996-07-11 1999-08-24 Tandem Computers Incorporated Data structure representing an interface definition language source file
US5953541A (en) * 1997-01-24 1999-09-14 Tegic Communications, Inc. Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use
US6119079A (en) * 1997-04-24 2000-09-12 Hewlett-Packard Company Method and structure for tokenized message logging system
KR100327209B1 (ko) 1998-05-12 2002-04-17 윤종용 첨펜의자취를이용한소프트웨어키보드시스템및그에따른키코드인식방법
US7293231B1 (en) 1999-03-18 2007-11-06 British Columbia Ltd. Data entry for personal computing devices
CA2392446C (en) 1999-05-27 2009-07-14 America Online Incorporated Keyboard system with automatic correction
US7750891B2 (en) * 2003-04-09 2010-07-06 Tegic Communications, Inc. Selective input system based on tracking of motion parameters of an input device
US6654733B1 (en) * 2000-01-18 2003-11-25 Microsoft Corporation Fuzzy keyboard
US7035788B1 (en) 2000-04-25 2006-04-25 Microsoft Corporation Language model sharing
CN1276336C (zh) 2000-07-21 2006-09-20 拉发耶尔·巴赫曼 实现快速书写系统的方法和快速书写机
US7385591B2 (en) * 2001-03-31 2008-06-10 Microsoft Corporation Out-of-vocabulary word determination and user interface for text input via reduced keypad keys
US7027988B1 (en) * 2001-07-20 2006-04-11 At&T Corp. System and method of ε removal of weighted automata and transducers
US7042443B2 (en) 2001-10-11 2006-05-09 Woodard Scott E Speed Writer program and device with Speed Writer program installed
US7075520B2 (en) * 2001-12-12 2006-07-11 Zi Technology Corporation Ltd Key press disambiguation using a keypad of multidirectional keys
US7151530B2 (en) 2002-08-20 2006-12-19 Canesta, Inc. System and method for determining an input selected by a user through a virtual interface
US7199786B2 (en) 2002-11-29 2007-04-03 Daniel Suraqui Reduced keyboards system using unistroke input and having automatic disambiguating and a recognition method using said system
US7251367B2 (en) 2002-12-20 2007-07-31 International Business Machines Corporation System and method for recognizing word patterns based on a virtual keyboard layout
US7453439B1 (en) * 2003-01-16 2008-11-18 Forward Input Inc. System and method for continuous stroke word-based text input
US7098896B2 (en) * 2003-01-16 2006-08-29 Forword Input Inc. System and method for continuous stroke word-based text input
SG135918A1 (en) 2003-03-03 2007-10-29 Xrgomics Pte Ltd Unambiguous text input method for touch screens and reduced keyboard systems
US7706616B2 (en) 2004-02-27 2010-04-27 International Business Machines Corporation System and method for recognizing word patterns in a very large vocabulary based on a virtual keyboard layout
US7508324B2 (en) 2004-08-06 2009-03-24 Daniel Suraqui Finger activated reduced keyboard and a method for performing text input
US20060176283A1 (en) 2004-08-06 2006-08-10 Daniel Suraqui Finger activated reduced keyboard and a method for performing text input
US7634406B2 (en) * 2004-12-10 2009-12-15 Microsoft Corporation System and method for identifying semantic intent from acoustic information
US9606634B2 (en) * 2005-05-18 2017-03-28 Nokia Technologies Oy Device incorporating improved text input mechanism
US8036878B2 (en) 2005-05-18 2011-10-11 Never Wall Treuhand GmbH Device incorporating improved text input mechanism
US20070094024A1 (en) * 2005-10-22 2007-04-26 International Business Machines Corporation System and method for improving text input in a shorthand-on-keyboard interface
WO2008106729A1 (en) * 2007-03-07 2008-09-12 Kannuu Pty Ltd Method system and apparatus for entering text on a computing device
US8059101B2 (en) 2007-06-22 2011-11-15 Apple Inc. Swipe gestures for touch screen keyboards
GB2453366B (en) * 2007-10-04 2011-04-06 Toshiba Res Europ Ltd Automatic speech recognition method and apparatus
US8077983B2 (en) * 2007-10-04 2011-12-13 Zi Corporation Of Canada, Inc. Systems and methods for character correction in communication devices
US8390577B2 (en) * 2008-07-25 2013-03-05 Intuilab Continuous recognition of multi-touch gestures
US8423916B2 (en) * 2008-11-20 2013-04-16 Canon Kabushiki Kaisha Information processing apparatus, processing method thereof, and computer-readable storage medium
GB0905457D0 (en) 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
US8135582B2 (en) 2009-10-04 2012-03-13 Daniel Suraqui Keyboard system and method for global disambiguation from classes with dictionary database from first and last letters
US8433762B1 (en) * 2009-11-20 2013-04-30 Facebook Inc. Generation of nickname dictionary based on analysis of user communications
US8423351B2 (en) 2010-02-19 2013-04-16 Google Inc. Speech correction for typed input
US9104312B2 (en) * 2010-03-12 2015-08-11 Nuance Communications, Inc. Multimodal text input system, such as for use with touch screens on mobile phones
US20110320978A1 (en) * 2010-06-29 2011-12-29 Horodezky Samuel J Method and apparatus for touchscreen gesture recognition overlay
US8918734B2 (en) 2010-07-28 2014-12-23 Nuance Communications, Inc. Reduced keyboard with prediction solutions when input is a partial sliding trajectory
US20120324391A1 (en) * 2011-06-16 2012-12-20 Microsoft Corporation Predictive word completion

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101003879B1 (ko) 2003-12-22 2010-12-30 에이오엘 엘엘씨 텍스트 입력 시스템
JP2005196759A (ja) 2004-01-06 2005-07-21 Internatl Business Mach Corp <Ibm> パーソナルコンピューティング装置のユーザ入力を改善するシステム及び方法
US20110202330A1 (en) 2010-02-12 2011-08-18 Google Inc. Compound Splitting
JP2012248153A (ja) 2011-05-31 2012-12-13 Kddi Corp 文字入力装置およびプログラム

Also Published As

Publication number Publication date
CN104123012B (zh) 2016-05-11
US8756499B1 (en) 2014-06-17
CN105929975A (zh) 2016-09-07
KR20140128884A (ko) 2014-11-06
CN104123012A (zh) 2014-10-29
EP2800011A1 (en) 2014-11-05

Similar Documents

Publication Publication Date Title
KR101484583B1 (ko) 대체 점수를 사용하여 사전-내에-없는 문자열들의 제스처 키보드 입력
US10241673B2 (en) Alternative hypothesis error correction for gesture typing
US10073536B2 (en) Virtual keyboard input for international languages
US9703394B2 (en) Unlearning techniques for adaptive language models in text entry
US9122376B1 (en) System for improving autocompletion of text input
AU2014212844B2 (en) Character and word level language models for out-of-vocabulary text input
US10095405B2 (en) Gesture keyboard input of non-dictionary character strings
US20140351760A1 (en) Order-independent text input
US20150160855A1 (en) Multiple character input with a single selection
US20170336969A1 (en) Predicting next letters and displaying them within keys of a graphical keyboard
US10146764B2 (en) Dynamic key mapping of a graphical keyboard
EP3241105B1 (en) Suggestion selection during continuous gesture input
EP3485361B1 (en) Pressure-based gesture typing for a graphical keyboard
US9298276B1 (en) Word prediction for numbers and symbols

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 5