KR20160003765A - 제스처 타이핑에 대한 대안적 가정형태의 오류 정정 - Google Patents

제스처 타이핑에 대한 대안적 가정형태의 오류 정정 Download PDF

Info

Publication number
KR20160003765A
KR20160003765A KR1020157033499A KR20157033499A KR20160003765A KR 20160003765 A KR20160003765 A KR 20160003765A KR 1020157033499 A KR1020157033499 A KR 1020157033499A KR 20157033499 A KR20157033499 A KR 20157033499A KR 20160003765 A KR20160003765 A KR 20160003765A
Authority
KR
South Korea
Prior art keywords
computing device
gesture
word
alternative
determining
Prior art date
Application number
KR1020157033499A
Other languages
English (en)
Other versions
KR101750969B1 (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 KR20160003765A publication Critical patent/KR20160003765A/ko
Application granted granted Critical
Publication of KR101750969B1 publication Critical patent/KR101750969B1/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/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
    • G06F17/273
    • G06F17/276
    • 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
    • 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/0489Interaction 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 dedicated keyboard keys or combinations thereof
    • G06F3/04897Special input arrangements or commands for improving display capability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access

Landscapes

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

Abstract

일 예에서, 본 방법은 복수의 키들을 포함하는 그래픽 키보드를 컴퓨팅 디바이스에 의해 디스플레이를 위해 출력하는 것과, 그리고 제스처의 표시를 수신하는 것을 포함할 수 있다. 본 방법은 제스처에 의해 횡단된 정렬 지점 및 단어 접두어에 적어도 부분적으로 근거하고 있는 정렬 점수를 결정하는 것을 포함할 수 있다. 본 방법은 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정하는 것을 포함할 수 있다. 본 방법은 대안적 문자에 적어도 부분적으로 근거하여 대안적 정렬 점수를 결정하는 것과, 그리고 대안적 문자에 적어도 부분적으로 근거하는 후보 단어를 대안적 정렬 점수에 적어도 부분적으로 근거하여 컴퓨팅 디바이스에 의해 디스플레이를 위해 출력하는 것을 포함할 수 있다.

Description

제스처 타이핑에 대한 대안적 가정형태의 오류 정정{ALTERNATIVE HYPOTHESIS ERROR CORRECTION FOR GESTURE TYPING}
일부 컴퓨팅 디바이스들(computing devices)(예를 들어, 모바일 전화기들(mobile phones), 태블릿 컴퓨터들(tablet computers) 등)은 (예를 들어, 프레즌스-감지 입력 디바이스(presence-sensitive input device) 및/또는 프레즌스-감지 디스플레이(presence-sensitive display), 예컨대, 터치스크린(touchscreen)을 사용하여) 텍스트(text)를 작성하기 위한 그래픽 사용자 인터페이스(graphical user interface)의 일부로서 그래픽 키보드(graphical keyboard)를 제공한다. 그래픽 키보드는 컴퓨팅 디바이스의 사용자로 하여금 텍스트(예를 들어, 이메일(e-mail), 텍스트 메시지(text message), 혹은 문서(document) 등)를 입력할 수 있게 할 수 있다. 예를 들어, 컴퓨팅 디바이스의 프레즌스-감지 디스플레이는 사용자로 하여금 프레즌스-감지 디스플레이에서 디스플레이되는 키(key)들을 표시(indicating)함으로써(예를 들어, 탭핑(tapping)함으로써) 데이터를 입력할 수 있게 하는 그래픽 키보드(혹은 "소프트(soft)" 키보드)를 출력할 수 있다.
일부 경우들에 있어서, 컴퓨팅 디바이스는 연속-제스처 그래픽 키보드(continuous-gesture graphical keyboard)(이것은 때때로 "제스처 키보드(gesture keyboard)" 혹은 "콤보 제스처 키보드(combo gesture keyboard)"로서 지칭됨)를 프리젠테이션(presentation)할 수 있고, 사용자는 그래픽 키보드의 키들과 관련되어 있는 프레즌스-감지 디스플레이의 영역들 위에서 자신의 손가락을 슬라이딩(sliding)시킴으로써(그럼으로써 본질적으로 컴퓨팅 디바이스에 입력될 단어(word)를 제스처링(gesturing)하게 됨으로써) 이러한 연속-제스처 그래픽 키보드와 상호작용할 수 있다. 달리 말하면, 사용자는 프레즌스-감지 디스플레이에서 출력되는 단어의 글자(letter)들 위를 추적(tracing)함으로써 단일 제스처로 전체 단어를 입력할 수 있다. 이러한 방식으로, 연속-제스처 그래픽 키보드들은 사용자로 하여금 제스처를 통해 단어 혹은 단어들의 그룹을 입력할 수 있게 하는 입력 방법을 제공한다. 이처럼, 연속-제스처 그래픽 키보드는, 특히 프레즌스-감지 스크린(예를 들어, 컴퓨팅 디바이스에 동작가능하게 결합되어 있거나 혹은 컴퓨팅 디바이스와 동작가능하게 통합되어 있는 프레즌스-감지 스크린)의 한-손 탭핑(one-handed tapping)과 비교하여, 사용자로 하여금 어느 정도의 효율성을 달성할 수 있게 할 수 있다.
일부 예들에서, 제스처 키보드를 제공하는 컴퓨팅 디바이스는 제스처 입력으로부터 단어를 결정하기 위해 단어 예측(word prediction), 자동-정정(auto-correction), 및/또는 제안(suggestion) 기법들에 의존할 수 있다. 이러한 기법들은 텍스트 입력의 속도를 높일 수 있고 어휘-내 문자열들(in-vocabulary character strings)(예를 들어, 사전 내에 있는 단어들)의 철자 실수(spelling mistakes)를 최소화시킬 수 있다. 그러나, 이러한 기법들 중 하나 이상의 기법은 특정 문제점들을 가질 수 있다. 예컨대, 일부 예들에서, 제스처 키보드를 제공하며 이러한 기법들 중 하나 이상의 기법에 의존하고 있는 컴퓨팅 디바이스는 프레즌스-감지 스크린에서 입력되는 제스처 입력에 근거하여 사용자에 의해 의도된 단어를 올바르게 결정하지 못할 수 있다. 이처럼, 사용자는 제스처 입력을 사용하여 단어들을 입력하기 위해 추가적인 노력을 수행할 필요가 있을 수 있다.
일 예에서, 방법이 제공되며, 이러한 방법은, 복수의 키들을 포함하는 그래픽 키보드를 컴퓨팅 디바이스에 의해 디스플레이를 위해 출력하는 것을 포함할 수 있다. 본 방법은 프레즌스-감지 입력 디바이스에서 검출된 제스처의 표시(indication)를 컴퓨팅 디바이스에 의해 수신하는 것을 포함할 수 있다. 본 방법은 제스처에 의해 횡단(traverse)된 정렬 지점(alignment point) 및 단어 접두어(word prefix)에 적어도 부분적으로 근거하고 있는 정렬 점수(alignment score)를 컴퓨팅 디바이스에 의해 결정하는 것을 포함할 수 있으며, 여기서 정렬 점수는 정렬 지점이 복수의 키들 중 임의의 키를 표시할 확률(probability)을 나타낸다. 본 방법은 적어도 단어 접두어의 일부분을 포함하는 철자 오기(misspelling)에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자(alternative character)를 컴퓨팅 디바이스에 의해 결정하는 것을 포함할 수 있다. 본 방법은 대안적 문자에 적어도 부분적으로 근거하고 있는 대안적 정렬 점수(alternative alignment score)를 컴퓨팅 디바이스에 의해 결정하는 것을 포함할 수 있다. 본 방법은 대안적 정렬 점수에 적어도 부분적으로 근거하여 후보 단어(candidate word)를 컴퓨팅 디바이스에 의해 디스플레이를 위해 출력하는 것을 포함할 수 있다.
일 예에서, 컴퓨터-판독가능 저장 매체(computer-readable storage medium)가 제공되며, 컴퓨터-판독가능 저장 매체에는 명령들이 인코딩(encoding)되어 있을 수 있고, 여기서 명령들은 실행되는 경우 적어도 하나의 프로세서(processor)로 하여금 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력하도록 한다. 컴퓨터-판독가능 저장 매체에는 명령들이 인코딩되어 있을 수 있고, 여기서 명령들은 실행되는 경우 적어도 하나의 프로세서로 하여금 프레즌스-감지 입력 디바이스에서 검출된 제스처의 표시를 수신하도록 한다. 컴퓨터-판독가능 저장 매체에는 명령들이 인코딩되어 있을 수 있고, 여기서 명령들은 실행되는 경우 적어도 하나의 프로세서로 하여금 제스처에 의해 횡단된 정렬 지점 및 단어 접두어에 적어도 부분적으로 근거하고 있는 정렬 점수를 결정하도록 하고, 여기서 정렬 점수는 정렬 지점이 복수의 키들 중 임의의 키를 표시할 확률을 나타낸다. 컴퓨터-판독가능 저장 매체에는 명령들이 인코딩되어 있을 수 있고, 여기서 명령들은 실행되는 경우 적어도 하나의 프로세서로 하여금 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정하도록 한다. 컴퓨터-판독가능 저장 매체에는 명령들이 인코딩되어 있을 수 있고, 여기서 명령들은 실행되는 경우 적어도 하나의 프로세서로 하여금 대안적 문자에 적어도 부분적으로 근거하고 있는 대안적 정렬 점수를 결정하도록 한다. 컴퓨터-판독가능 저장 매체에는 명령들이 인코딩되어 있을 수 있고, 여기서 명령들은 실행되는 경우 적어도 하나의 프로세서로 하여금 대안적 문자에 적어도 부분적으로 근거하는 후보 단어를 대안적 정렬 점수에 적어도 부분적으로 근거하여 디스플레이를 위해 출력하도록 한다.
일 예에서, 컴퓨팅 디바이스가 제공되며, 이러한 컴퓨팅 디바이스는 적어도 하나의 프로세서를 포함할 수 있고, 여기서 적어도 하나의 프로세서는 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력하도록 구성된다. 적어도 하나의 프로세서는 프레즌스-감지 입력 디바이스에서 검출된 제스처의 표시를 수신하도록 구성될 수 있다. 적어도 하나의 프로세서는 제스처에 의해 횡단된 정렬 지점 및 단어 접두어에 적어도 부분적으로 근거하고 있는 정렬 점수를 결정하도록 구성될 수 있으며, 여기서 정렬 점수는 정렬 지점이 복수의 키들 중 임의의 키를 표시할 확률을 나타낸다. 적어도 하나의 프로세서는 정렬 점수가 임계치(threshold)를 만족시키는 데 실패했다고 결정함에 응답하여 적어도 하나의 대안적 단어 접두어를 컴퓨팅 디바이스에 의해 결정하는 것을 행하도록 구성될 수 있다. 적어도 하나의 프로세서는 적어도 하나의 대안적 단어 접두어에 적어도 부분적으로 근거하고 있는 대안적 정렬 점수를 결정하도록 구성될 수 있다. 적어도 하나의 프로세서는 대안적 정렬 점수에 적어도 부분적으로 근거하여 후보 단어를 디스플레이를 위해 출력하도록 구성될 수 있다.
본 개시내용의 하나 이상의 예들의 세부사항은 첨부되는 도면 및 아래의 상세한 설명에서 제시된다. 본 개시내용의 다른 특징, 목적 및 장점은 이러한 설명 및 도면으로 명백하게 될 것이며 아울러 본원의 청구범위로부터 명백하게 될 것이다.
도 1은 본 개시내용의 기법들에 따른, 제스처-기반 입력을 사용하는 입력의 오류 정정을 수행하기 위해 사용되는 예시적 컴퓨팅 디바이스를 나타내는 개념도이다.
도 2는 본 개시내용의 하나 이상의 실시형태들에 따른, 예시적 컴퓨팅 디바이스를 나타낸 블록도이다.
도 3은 본 개시내용의 하나 이상의 기법들에 따른, 원격 디바이스에서 디스플레이를 위해 그래픽 콘텐츠를 출력하는 예시적 컴퓨팅 디바이스를 나타낸 블록도이다.
도 4a 내지 도 4c는 본 개시내용의 하나 이상의 기법들에 따른, 제스처-기반 입력에 대한 대체형 오류 정정을 수행하기 위해 사용되는 도 1에서 제시된 컴퓨팅 디바이스의 일 예를 더 상세히 나타낸 블록도들이다.
도 5a 내지 도 5c는 본 개시내용의 하나 이상의 기법들에 따른, 제스처-기반 입력에 대한 삭제형 오류 정정을 수행하기 위해 사용되는 도 1에서 제시된 컴퓨팅 디바이스의 일 예를 더 상세히 나타낸 블록도들이다.
도 6a 내지 도 6c는 본 개시내용의 하나 이상의 기법들에 따른, 제스처-기반 입력에 대한 삽입형 오류 정정을 수행하기 위해 사용되는 도 1에서 제시된 컴퓨팅 디바이스의 일 예를 더 상세히 나타낸 블록도들이다.
도 7a 내지 도 7c는 본 개시내용의 하나 이상의 기법들에 따른, 제스처-기반 입력에 대한 전치형 오류 정정을 수행하기 위해 사용되는 도 1에서 제시된 컴퓨팅 디바이스의 일 예를 더 상세히 나타낸 블록도들이다.
도 8은 본 개시내용의 기법들에 따른, 제스처-기반 입력을 사용하는 입력의 오류 정정을 수행하도록 구성된 컴퓨팅 디바이스의 예시적 동작들을 나타내는 흐름도이다.
도 9는 본 개시내용의 기법들에 따른, 제스처-기반 입력을 사용하는 입력의 오류 정정을 수행하도록 구성된 컴퓨팅 디바이스의 예시적 동작들을 나타내는 흐름도이다.
도 10은 본 개시내용의 기법들에 따른, 제스처-기반 입력을 사용하는 입력의 오류 정정을 수행하도록 구성된 컴퓨팅 디바이스의 예시적 동작들을 나타내는 흐름도이다.
일반적으로, 본 개시내용은 본 명세서에서 개시되는 기법들에 따른, 오류가 있는 제스처-기반 입력에 응답하여 문자열 결정 및 예측을 위한 기법들에 관한 것이다. 일부 예들에서, 디스플레이를 위해 그래픽 키보드를 출력하는 컴퓨팅 디바이스는 프레즌스-감지 스크린에서 검출된 제스처들의 표시들을 수신할 수 있다. 예컨대, 그래픽 키보드의 복수의 키들과 관련된 프레즌스-감지 스크린의 위치들을 횡단하는 연속적인 제스처(예를 들어, 탭핑이 없는 제스처(non-tap gesture))는 이러한 키들 중 하나 이상의 키의 선택을 표시할 수 있다. 특정 예들에서, 컴퓨팅 디바이스는 하나 이상의 문자들을 포함하는 하나 이상의 문자열들을 표시하는 하나 이상의 제스처들과 관련된 입력을 프레즌스-감지 스크린에서 혹은 프레즌스-감지 스크린 가까이에서 수신할 수 있다. 이러한 문자열들은 어휘 목록(lexicon)(예를 들어, 사전의 단어들) 내에 포함될 수 있고, 임의 언어의 어휘(vocabulary) 내에 있는 단어를 나타낼 수 있거나 혹은 해당 어휘 내에 있는 단어의 일부분을 나타낼 수 있다. 이러한 예들에서, 제스처는 문자열 내에 포함되는 문자들에 대응하는 키들의 그룹을 횡단할 수 있다.
일부 예들에서, 제스처는 어휘 목록 내에 포함되는 문자열에 각각 대응하는 키들의 그룹을 거쳐 횡단하지 않을 수 있다. 달리 말하면, 사용자는 사용자에 의한 입력으로서 의도된 문자열을 나타내는 키들에 대응하지 않는 오류가 있는 연속적인 제스처를 제공했을 수 있다. 예를 들어, 사용자가 문자열 "truly"를 입력하고자 했지만, 사용자는 그래픽 키보드의 키들 T-R-U-E-L-Y를 횡단하는 연속적인 제스처를 잘못 수행할 수 있다. 사용자가 입력하려고 의도하지 않았던 "tiredly" 혹은 어떤 다른 단어를 단지 출력만하는 것이 아니라, 본 개시내용의 기법들은 본 예에서 사용자가 의도했던 문자열 "truly"의 자동정정된 철자에 근거하고 있는 적어도 하나의 대안적 가정형태(alternative hypothesis)를 발생시킬 수 있다.
본 개시내용에서 설명되는 기법들은 키들을 잘못 선택한 것에 대한 응답으로 컴퓨팅 디바이스가 자동-정정을 사용하여 후보 단어를 결정하는 정확도를 향상시킬 수 있다. 일부 예들에서, 본 개시내용의 기법들은 다양한 유형(type)의 철자 오류들에 대한 단어 예측의 정확도를 향상시킬 수 있는바, 이러한 철자 오류들은, 대체형 오류들(substitution errors)("cemetary" → "cemetery"), 삭제형 오류들(deletion errors)("Farenheit" → "Fahrenheit"), 삽입형 오류들(insertion errors)("truely" → "truly"), 및 전치형 오류들(transposition errors)("wierd" → "weird")을 포함하지만 이러한 것으로만 한정되는 것은 아니다. 예를 들어, 본 개시내용의 기법들을 구현하는 컴퓨팅 디바이스는 제스처의 제스처 경로에 의해 횡단된 그래픽 키보드의 키들의 상이한 그룹들을 점증적으로(incrementally) 결정할 수 있다. 이러한 점증적 결정은 임의의 주어진 글자에 대응하는 키의 소정의 키보드 위치에 맞게 정렬된 제스처의 하나 이상의 지점들을 탐색하는 것을 포함할 수 있다. 키들의 각각의 상이한 그룹은 문자열을 집합적으로 나타내는 문자들의 각각의 그룹에 대응할 수 있다. 각각의 문자열은 예를 들어, 어휘 목록 내에 포함된 하나 이상의 단어들의 접두어와 같은 가정형태일 수 있다.
본 개시내용의 기법들을 사용하여, 컴퓨팅 디바이스는 예를 들어, 문자들의 철자 오기, 문자들의 조합들, 및/또는 어휘 목록 내의 단어들에 근거하는 문자들을 포함하는 하나 이상의 단어들의 접두어들과 같은 대안적 가정형태들을 결정할 수 있다. 즉, 만약 제스처 경로가 어휘 목록 내의 단어에 대응하는 하나 이상의 키들에 맞게 잘-정렬되어 있지 않다면(예를 들어, 사용자가 임의의 의도한 단어의 올바르지 않은 철자를 잘못 제스처링했다면), 컴퓨팅 디바이스는 이러한 철자 오기에 근거하는 대안적 가정형태들을 결정할 수 있다. 대안적 가정형태들은 대안적 가정형태들의 문자들을 포함하는 어휘 목록 내의 특정 단어들에 대해 확률이 더 높음을 표시한다. 따라서, 본 개시내용의 기법들은 연속적인 제스처 입력에 관한 제약들을 완화시킬 수 있다(만약 본 개시내용의 기법들이 사용되지 않는다면 제스처 경로는 임의의 의도한 단어의 모두 문자에 대응하는 모든 키와 정합(match)될 것이 요구되게 됨). 결과적으로, 본 개시내용의 기법들을 구현하는 컴퓨팅 디바이스는 사용자가 의도했던 단어들을 더욱 정확하게 출력할 수 있다.
도 1은 본 개시내용의 기법들에 따른, 제스처-기반 입력을 사용하는 입력의 오류 정정을 수행하기 위해 사용되는 예시적 컴퓨팅 디바이스를 나타내는 개념도이다. 도 1의 예에서, 컴퓨팅 디바이스(10)는 모바일 전화기일 수 있다. 그러나, 다른 예들에서, 컴퓨팅 디바이스(10)는 태블릿 컴퓨터, 개인 휴대 정보 단말기(Personal Digital Assistant, PDA), 랩탑 컴퓨터(laptop computer), 휴대용 게이밍 디바이스(portable gaming device), 휴대용 미디어 플레이어(portable media player), 전자-책 리더(e-book reader), 시계(watch), 텔레비젼 플랫폼(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)는 컴퓨팅 디바이스(10)의 사용자에게 가시적 정보(visible information)를 출력할 수 있는 액정 디스플레이(Liquid Crystal Display, LCD), 도트 매트릭스 디스플레이(dot matrix display), 발광 다이오드(Light Emitting Diode, LED) 디스플레이, 유기 발광 다이오드(Organic Light-Emitting Diode, OLED) 디스플레이, 전자-잉크(e-ink) 또는 유사한 단색 혹은 컬러 디스플레이 중 임의의 하나 이상의 것을 사용하는 출력 디바이스로서의 기능을 수행할 수 있다.
컴퓨팅 디바이스(10)의 UID(12)는 컴퓨팅 디바이스(10)의 사용자로부터 촉각적 사용자 입력을 수신할 수 있는 프레즌스-감지 스크린을 포함할 수 있다. UID(12)는 컴퓨팅 디바이스(10)의 사용자로부터 하나 이상의 탭핑 및/또는 탭핑이 아닌 제스처들(예를 들어, 사용자가 손가락 혹은 스타일러스 펜(stylus pen)으로 UID(12)의 하나 이상의 위치들을 터치하거나 가리키는 것)을 검출함으로써 촉각적 사용자 입력의 표시들을 수신할 수 있다. UID(12)의 프레즌스-감지 스크린은 사용자에게 출력을 프리젠테이션할 수 있다. UID(12)는 컴퓨팅 디바이스(10)에 의해 제공되는 기능과 관련될 수 있는 사용자 인터페이스(예를 들어, 사용자 인터페이스(14))로서 출력을 프리젠테이션할 수 있다. 예를 들어, UID(12)는 컴퓨팅 디바이스(10)에서 실행되는 애플리케이션들(applications)(예를 들어, 전자 메시지 애플리케이션, 인터넷 브라우저 애플리케이션, 등)의 다양한 사용자 인터페이스들을 프리젠테이션할 수 있다. 컴퓨팅 디바이스(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 application) 혹은 "앱(app)" 또는 사전에-인스톨된 애플리케이션(pre-installed application) 혹은 "앱(app)"으로서 구현될 수 있다. 또 하나의 다른 예에서, UI 모듈(20)은 컴퓨팅 디바이스(10)의 오퍼레이팅 시스템(operating system)의 일부로서 구현될 수 있다.
컴퓨팅 디바이스(10)의 제스처 모듈(24)은 UID(12)의 프레즌스-감지 스크린에서 검출된 사용자 입력의 하나 이상의 표시들을 UID(12)로부터 수신할 수 있다. 일반적으로, UID(12)가 프레즌스-감지 스크린의 임의의 위치에서 검출된 사용자 입력의 표시를 수신할 때마다, 제스처 모듈(24)은 사용자 입력에 대한 정보를 UID(12)로부터 수신할 수 있다. 제스처 모듈(24)은 UID(12)로부터 수신된 정보를 제스처를 표시하는 이벤트(event)들의 시간-순서로 된 집합(time-ordered set)(예를 들어, 터치 이벤트(touch event)들의 시퀀스(sequence))으로 어셈블(assemble)할 수 있다. 이러한 시퀀스에서의 각각의 터치 이벤트는 프레즌스-감지 스크린에서의 입력의 프레즌스(presence) 및/또는 움직임(movement)을 특징짓는 파라미터들(parameters)을 나타내는(예를 들어, 언제(when) 일어났는지, 어디서(where) 일어났는지, 발생 방향(originating direction)은 어디인지를 나타내는) 데이터(data) 혹은 컴포넌트들(components)을 포함할 수 있다. 이러한 시퀀스에서의 각각의 터치 이벤트는, UID(12)의 위치에 대응하는 위치 컴포넌트(location component), UID(12)가 해당 위치에서 사용자 입력을 언제 검출했는지와 관련된 시간 컴포넌트(time component), 그리고 터치 이벤트가 해당 위치에서 리프트 업(lift up) 이벤트에 대응하는지 아니면 푸시 다운(push down) 이벤트에 대응하는지와 관련된 행위 컴포넌트(action component)를 포함할 수 있다. 더욱이, 해당 이벤트들 중 하나 이상의 이벤트는 동시에 일어나는 시간 컴포넌트(concurrent time component)를 가질 수 있고, 이러한 이벤트들은 단지 예시적 목적으로 터치 이벤트들로서 설명되며, 임의 형태의 프레즌스-감지 입력 디바이스에서의 임의의 제스처를 표시할 수 있다.
제스처 모듈(24)은 터치 이벤트들의 시퀀스에 근거하여 사용자 입력의 하나 이사의 특징들을 결정할 수 있고, 이러한 하나 이상의 특징들에 대한 정보를 터치 이벤트들의 시퀀스에서의 각각의 터치 이벤트 내에 포함할 수 있다. 예를 들어, 제스처 모듈(24)은 사용자 입력의 시작 위치, 사용자 입력의 종료 위치, 사용자 입력의 일부분의 밀도, 사용자 입력의 일부분의 속도, 사용자 입력의 일부분의 방향, 그리고 사용자 입력의 일부분의 곡률(curvature)을 결정할 수 있다. 터치 이벤트들의 시퀀스에서의 하나 이상의 터치 이벤트들은 (앞서 설명된 바와 같은 시간 컴포넌트, 위치 컴포넌트 및 행위 컴포넌트에 추가하여) 사용자 입력의 하나 이상의 특징들에 대한 정보(예를 들어, 밀도, 속도, 등)를 포함하는 특징 컴포넌트를 포함할 수 있다. 일부 예들에서, 제스처 모듈(24)은, 사용자 제스처에 응답하여, 그 터치된 혹은 그렇지 않으면 검출된 UID(12)의 하나 이상의 위치들을 UI 모듈(20)로부터 수신된 정보에 근거하여 결정한다. 일부 예들에서, 제스처 모듈(24)은 제스처와 관련된 하나 이상의 특성들을 결정할 수 있는바, 예컨대, 2개의 정렬 지점들 간의 유클리디안 거리(Euclidean distance), 제스처 경로의 길이, 제스처의 방향, 제스처 경로의 곡률, 제스처의 형상, 및 정렬 지점들 간의 제스처의 최대 곡률, 제스처의 속도 등을 결정할 수 있다. 일 예로서, 철자 오기인 것으로 고려하는 결정은, 속도와 같은 인자(factor)에 의존할 수 있거나(망설임(hesitation)은 더 큰 불확실성을 표시할 수 있음), 혹은 영향을 받는 글자들에 근거하는 특정 철자 정정의 가능성(likelihood)과 같은 인자에 의존할 수 있다('e'를 'i'로 잘못 쓰는 것은 흔한 철자 오기이지만, 'e'를 'z'로 잘못 쓰는 것은 확률적으로 덜 흔한 철자 오기임). 제스처 모듈(24)은 각각의 터치 이벤트와 관련된 컴포넌트들 혹은 파라미터화된 데이터를 포함하는 터치 이벤트들의 시퀀스를 데이터로서 키보드 모듈(22)에 전송할 수 있다.
도 1의 예에서, UI 모듈(20)은 UID(12)로 하여금 예시적인 사용자 인터페이스(14)를 프리젠테이션하도록 할 수 있다. 이러한 예에서, 사용자 인터페이스(14)는 UID(12)의 다양한 위치들에서 디스플레이되는 그래픽 요소들을 포함한다. 도 1은 사용자 인터페이스(14)의 편집 영역(16A), 그리고 사용자 인터페이스(14)의 그래픽 키보드(16B)를 예시한다. 편집 영역(16A)은 이미지들(image)들, 오브젝트(object)들, 하이퍼링크(hyperlink)들, 텍스트의 문자들 등과 같은 그래픽 요소들을 포함할 수 있다. 그래픽 키보드(16B)는 키들로서 디스플레이되는 그래픽 요소들을 포함한다. 사용자 인터페이스(14)는 편집 영역(16A)에 포함되는 문자열들을 대체하기 위한 선택가능한 철자 정정들 혹은 문자열 제안들을 포함하는 제안된 문자열 영역(suggested character string region)들(18A 내지 18C)을 포함한다. 도 1의 예에서, 편집 영역(16A)은 텍스트의 문자들(예를 들어, 문자열)로서 디스플레이되는 그래픽 요소들을 포함할 수 있다. 컴퓨팅 디바이스(10)의 사용자는 그래픽 키보드(16B)의 키들을 디스플레이하는 UID(12)의 위치들에서 사용자 입력을 제공함으로써 편집 영역(16A)에 텍스트를 입력할 수 있다. 이와 같은 사용자 입력에 응답하여, 컴퓨팅 디바이스(10)는 제안된 문자열 영역들(18A 내지 18C)에 하나 이상의 제안된 문자열들을 출력할 수 있다.
UI 모듈(20)은 UID(12)에 의해 검출된 입력에 근거하는 결정을 행하기 위해 아울러 UID(12)에 의해 프리젠테이션되는 출력을 발생시키기 위해 컴퓨팅 디바이스(10)의 다양한 컴포넌트들 간에 중개자(intermediary)로서 동작할 수 있다. 예를 들어, UI 모듈(20)은 그래픽 키보드(16B)에 포함되는 키들의 키보드 레이아웃(keyboard layout)의 표현(representation)을 입력으로서 키보드 모듈(22)로부터 수신할 수 있다. UI 모듈(20)은 사용자 입력의 표시들을 제스처 모듈(24)에 전송할 수 있고, 제스처 모듈(24)은 UID(12)에 의해 검출된 사용자 입력에 대한 정보로부터 발생되는 터치 이벤트들의 시퀀스를 발생시킬 수 있다. 키보드 모듈(22)은, 제스처 모듈(24)로부터 터치 이벤트들을 수신할 때, 시퀀스를 형성하는 터치 이벤트들 내의 위치 컴포넌트들에 근거하여, 하나 이상의 위치 컴포넌트들이 하나 이상의 키들의 선택에 근사(approximate)하고 있음을 결정할 수 있다. 이에 응답하여, UI 모듈(20)은 하나 이상의 제안된 문자열들을 키보드 모듈(22)로부터 수신할 수 있다. UI 모듈(20)은 편집 영역(16A) 및/또는 문자열 영역들(18A 내지 18C) 내에 하나의 문자열들을 포함하도록 사용자 인터페이스(14)를 업데이트할 수 있다. UI 모듈(20)은 UID(12)로 하여금 그 업데이트된 사용자 인터페이스(14)를 프리젠테이션하도록 할 수 있다.
컴퓨팅 디바이스(10)의 키보드 모듈(22)은 하나 이상의 문자 언어(written language)들(예를 들어, 영어, 스페인어, 등)과 관련된 복수의 키들을 포함하는 키보드 레이아웃을 (사용자 인터페이스(14)의 그래픽 키보드(16B)로서 포함되도록 하기 위해) 데이터로서 UI 모듈(20)에 전송할 수 있다. 키보드 모듈(22)은 키보드 레이아웃 내의 복수의 키들의 각각의 키에 하나 이상의 문자들 혹은 오퍼레이션(operation)들을 할당할 수 있다. 예를 들어, 키보드 모듈(22)은 영어를 타이핑(typing)하는데 사용되는 문자들을 나타내는 키들이 포함된 쿼티(QWERTY) 키보드 레이아웃을 발생시킬 수 있다. 쿼티 키보드 레이아웃은 또한 영어를 타이핑하는데 사용되는 오퍼레이션들을 나타내는 키들을 포함할 수 있다(예를 들어, 백스페이스(backspace), 딜리이트(delete), 스페이스바(spacebar), 엔터(enter), 등). 그래픽 키보드(16B)는 "Q" 키(32A), "W" 키(32B), 등과 같은 복수의 키들을 포함할 수 있다. 일부 예들에서, 그래픽 키보드(16)에 포함되는 복수의 키들 각각은 단일 문자를 나타낸다. 다른 예들에서, 그래픽 키보드(16)에 포함되는 복수의 키들 중 하나 이상의 키는 복수의 모드(mode)들에 근거하여 선택되는 문자들의 그룹을 나타낸다.
컴퓨팅 디바이스(10)는 터치 이벤트들의 시퀀스에 근거하여 하나 이상의 키들의 상이한 선택들을 점증적으로 결정하기 위해 공간 모델(spatial model)(26)과 같은 하나 이상의 공간 모델들을 포함할 수 있다. 일반적으로, 공간 모델(26)은 사용자 입력과 관련된 위치 데이터에 근거하여 그래픽 키보드의 특정 키가 선택되었을 하나 이상의 확률들을 발생시킬 수 있다. 일부 예들에서, 공간 모델(26)은 각각의 키에 대한 이변수 가우시안 모델(bivariate Gaussian model)을 포함한다. 임의의 키에 대한 이변수 가우시안 모델은 그 주어진 키를 프리젠테이션하는 UID(12)의 위치들에 대응하는 좌표들(예를 들어, (x,y) 좌표 쌍들)의 분포를 포함할 수 있다. 더 구체적으로, 일부 예들에서, 임의의 키에 대한 이변수 가우시안 모델은 사용자가 그 주어진 키를 선택하려고 의도할 때 사용자에 의해 가장 빈번하게 선택된 UID(12)의 위치들에 대응하는 좌표들의 분포를 포함할 수 있다. 공간 모델(26)의 더 높은 밀도 영역과 사용자 입력의 위치 데이터 간의 거리가 더 짧을수록, 공간 모델(26)과 관련된 키가 선택되었을 확률이 더 높다. 공간 모델(26)의 더 높은 밀도 영역과 사용자 입력의 위치 데이터 간의 거리가 더 클수록, 공간 모델(26)과 관련된 키가 선택되었을 확률이 더 낮다.
키보드 모듈(22)은 터치 이벤트들의 시퀀스 내의 하나 이상의 터치 이벤트들의 위치 컴포넌트들(예를 들어, 좌표들)을 그래픽 키보드(16B)의 하나 이상의 키들의 각각의 위치들과 비교하기 위해, 그리고 임의의 키의 선택이 발생했을 확률을 이러한 비교들에 근거하여 발생시키기 위해 공간 모델(26)을 사용할 수 있다. 일부 예들에서, 키보드 모듈(22)은 공간 모델(26)을 사용하여 공간 점수(spatial score)를 발생시킬 수 있다. 공간 점수는 제스처에 의해 횡단된 UID(12)의 위치들에 적어도 부분적으로 근거하여 임의의 선택된 키의 확률을 표시할 수 있다. 일부 예들에서, 공간 점수는 제스처에 의해 횡단된 UID(12)의 위치들에 적어도 부분적으로 근거하여 임의의 선택된 키들의 그룹의 결합된 확률을 표시할 수 있다.
예를 들어, 키보드 모듈(22)은 터치 이벤트들의 시퀀스 내의 하나 이상의 터치 이벤트들의 위치 컴포넌트를 그래픽 키보드(16B)의 특정 키의 키 위치와 비교하기 위해 공간 모델(26)을 사용할 수 있다. 시퀀스 내의 각각의 터치 이벤트의 위치 컴포넌트는 UID(12)의 하나의 위치를 포함할 수 있다. 그래픽 키보드(16B) 내의 키의 키 위치(예를 들어, 키의 중심(centroid))은 UID(12)의 상이한 위치를 포함할 수 있다. 키보드 모듈(22)은 두 개의 위치들 간의 유클리디안 거리를 결정하기 위해, 그리고 키가 선택되었을 확률을 이러한 유클리디안 거리에 근거하여 발생시키기 위해 공간 모델(26)을 사용할 수 있다. 공간 모델(26)은 하나 이상의 터치 이벤트들과 더 큰 유클리디안 거리를 공유하는 키보다 하나 이상의 터치 이벤트들과 더 작은 유클리디안 거리를 공유하는 키에 대해 더 높은 확률을 표시할 수 있다. 각각의 키와 관련된 공간 모델 확률에 근거하여, 키보드 모듈(22)은 가장 높은 공간 모델 확률들을 갖는 개개의 키 선택들을 키보드 모듈(22)이 이후 문자열을 나타내는 것으로 결정할 수 있는 키들의 시간-순서로 된 시퀀스로 어셈블할 수 있다. 각각의 키의 결합된 확률들은 문자열에 대한 공간 점수를 나타낼 수 있다.
컴퓨팅 디바이스(10)는, 일부 예들에서, 언어 모델(language model)(28)을 포함한다. 언어 모델(28)은 어휘 목록을 포함할 수 있다. 일부 예들에서, 어휘 목록은 단어들의 나열(listing)을 포함할 수 있고, 나열된 단어들에 대한 추가적인 정보를 포함할 수 있다. 어휘 목록은 하나 이상의 데이터 구조들에 의해 나타내어질 수 있는바, 예컨대 어레이(array), 리스트(list), 트리(tree), 혹은 다른 데이터 구조들 중 하나 이상의 것에 의해 나타내어질 수 있다. 예를 들어, 언어 모델(28)은 트리 데이터 구조(trie data structure)로 저장된 어휘 목록을 포함할 수 있다. 어휘 목록 트리 데이터 구조는 복수의 노드(node)들을 포함할 수 있다. 어휘 목록 트리의 각각의 노드는 글자를 나타낼 수 있다. 어휘 목록 트리 내의 제 1 노드는 엔트리 노드(entry node)인 것으로서 고려될 수 있는바, 엔트리 노드는 글자에 대응하지 않을 수 있다. 다른 예들에서, 엔트리 노드는 글자에 대응할 수 있다. 각각의 노드는 하나 이상의 차일드 노드(child node)들을 가질 수 있다. 예를 들어, 엔트리 노드는 26개의 차일드 노드들을 가질 수 있고, 이러한 차일드 노드들 각각은 영어 알파벳의 글자에 대응한다.
어휘 목록 트리 내의 노드들의 부분집합(subset)은 각각 플래그(flag)를 포함할 수 있는데, 이러한 플래그는 해당 노드가 터미널 노드(terminal node)임을 표시한다. 어휘 목록 트리의 각각의 터미널 노드는 어휘 목록 내에 포함된 완전한 단어(예를 들어, 후보 단어)를 표시할 수 있다. 엔트리 노드로부터 터미널 노드까지 노드들의 경로를 따라 노드들에 의해 표시된 글자들은 터미널 노드에 의해 표시되는 단어를 철자화(spell out)할 수 있다. 일부 예들에서, 언어 모델(28)은 컴퓨팅 디바이스(10) 상에 인스톨된 디폴트 사전(default dictionary)에 근거하고 있을 수 있다. 특정 예들에서, 언어 모델(28)은 컴퓨팅 디바이스(10) 상에 인스톨된 미리정의된 어구(phrase)들의 그룹을 포함할 수 있다. 다른 예들에서, 언어 모델(28)은 어휘 목록들의 복수의 소스들을 포함할 수 있는데, 이러한 어휘 목록들의 복수의 소스들은 컴퓨팅 디바이스(2)에서 저장될 수 있거나, 혹은 하나 이상의 통신 채널들을 통해 컴퓨팅 디바이스(2)에 액세스가능한 하나 이상의 원격 컴퓨팅 디바이스들에서 저장될 수 있다.
일부 예들에서, 언어 모델(28)은 컴퓨팅 디바이스(10)의 펌웨어로 구현될 수 있다. 언어 모델(28)은, n-그램 언어 모델들(n-gram language models)과 같은 언어 모델 빈도 정보를 포함할 수 있다. n-그램 언어 모델은 아이템(item)들의 연속적인 시퀀스 내의 아이템 x i (글자, 단어, 구분 문자(punctuation character), 혹은 다른 구획문자(delimiter))에 대한 확률 분포를 그 시퀀스 내의 이전 아이템들에 근거하여 제공할 수 있다(즉, P(x i | x i-(n- 1) ,...,x i -1 )). 예를 들어, 바이그램 언어 모델(bigram language model)(n-그램 모델, 여기서 n=2)은 글자 "w"가 글자들의 시퀀스 "no" 뒤에 올 확률을 제공할 수 있다. 또 하나의 다른 예로서, 트리그램 언어 모델(trigram language model)(n-그램 모델, 여기서 n=3)은 단어 "to"가 단어들의 시퀀스 "we aim" 뒤에 올 확률을 제공할 수 있다. 특정 예들에서, 트리그램 언어 모델은 구획 문자(delimiter character)(예를 들어, 콤마 구획 문자(comma delimiter character), 마침표 구획 문자(period delimiter character), 세미콜론 구획 문자(semicolon delimiter character))가 제 1 문자열과 제 2 문자열 사이에 위치할 확률을 제공할 수 있다. 예를 들어, 트리그램 언어 모델은 콤마 구획 문자가 제 1 문자열 "example"과 제 2 문자열 "the" 사이에 위치할 확률을 제공할 수 있다. 일부 예들에서, 언어 모델(28)은 통합된 언어 모델 빈도 정보를 갖는 어휘 목록 트리를 포함한다. 예를 들어, 어휘 목록 트리의 각각의 노드는 글자의 표현 및 확률 값을 포함할 수 있다.
키보드 모듈(22)은 제스처에 대응하는 키들의 시퀀스들에 근거하여 하나 이상의 문자열들의 그룹에 대한 언어 점수들을 점증적으로 결정하기 위해 컴퓨팅 디바이스(10)의 언어 모델(28)에 액세스할 수 있다. 문자열들은 언어 모델(28) 내에서 모델링(modeling)된 단어들의 접두어들일 수 있다. 키보드 모듈(22)이 하나 이상의 제스처들의 표시들을 수신함에 따라, 키보드 모듈(22)은 해당 접두어들에 대응하는 공간 및 언어 점수들을 점증적으로 결정할 수 있다. 공간 및 언어 점수들을 사용하여, 키보드 모듈(22)은 각각의 문자열 각각에 대한 이러한 공간 및 언어 점수에 근거하여 각각의 문자열에 대한 결합된 점수(예를 들어, 정렬 점수)를 결정할 수 있다. 키보드 모듈(22)이 제스처들의 후속 표시들을 결정함에 따라, 키보드 모듈(22)은 공간, 언어 및/또는 정렬 점수들을 업데이트할 수 있다. 키보드 모듈(22)은 본 개시내용에서 더 설명되는 바와 같이 해당 접두어들의 각각의 정렬 점수들에 의해 접두어들의 순위를 정할 수 있다. 그 다음에, 키보드 모듈(22)은 이러한 접두어들에 근거하여 문자열들, 단어들, 어구들, 등을 출력할 수 있다. 키보드 모듈(22)은 접두어에 각각 대응하는 언어 모델(28) 내의 하나 이상의 단어들을 결정하기 위해 탐색 혹은 "룩 어헤드(look ahead)"를 행할 수 있다. 예를 들어, 문자열 t-r-u가 주어진다면, 키보드 모듈(22)은 언어 모델(28)을 사용하여 문자열 truly의 확률을 결정할 수 있다. 키보드 모듈(22)은 이러한 확률에 근거하여 언어 점수를 결정할 수 있다. 이러한 방식으로, 임의의 주어진 언어 상황(language context)에서 더 높은 확률들을 갖는 언어 모델(28) 내의 문자열들이 더 높은 언어 점수들을 가질 수 있다.
일부 예들에서, 키보드 모듈(22)은 각각의 문자열 각각에 대한 각각의 공간 및 언어 모듈 점수들에 적어도 부분적으로 근거하여 각각의 접두어에 대한 정렬 점수를 결정한다. 따라서, 문자열에 대한 정렬 점수는 문자열의 확률을 나타낼 수 있다. 키보드 모듈(22)은 가장 가능성이 있는 문자열로부터 가장 가능성이 없는 문자열에 이르는 내림 차순으로 정렬 점수에 의해 문자열들의 그룹 내의 각각의 문자열을 배열할 수 있다. 일부 예들에서, 키보드 모듈(22)은 가장 높은 확률을 갖는 하나 이상의 접두어들에 근거하여 하나 이상의 단어들을 결정할 수 있다. UID(12)는 제안된 문자열 영역들(18A 내지 18C) 내에 이러한 문자열들을 제안된 문자열들로서 출력할 수 있다. 다른 예들에서, 가장 높은 확률들을 갖는 하나 이상의 후보 문자열들은 편집 영역(16A)에서 출력될 수 있다.
일부 예들에서, 컴퓨팅 디바이스(10)는 오류가 있는 제스처 입력을 표시하는 사용자 입력의 표시들을 점증적으로 수신할 수 있다. 즉, 제스처 경로는 언어 모델(28) 내의 단어들에 맞게 잘 정렬되지 않을 수 있다. 제스처에 의해 표시된 하나 이상의 올바르지 않은 키들에 근거하여 어휘 목록으로부터 덜 가능성이 있는 단어들을 출력하는 대신에, 본 개시내용의 기법들은 정정용 데이터를 사용하여 대안적 가정형태들을 점증적으로 결정함으로써 연속적인 제스처 입력에 근거하는 단어 결정 및/또는 예측을 향상시킬 수 있다. 예를 들어, 본 명세서에서 설명되는 바와 같은 각각의 토큰(token)은 제스처에 대한 단어 접두어를 나타낼 수 있다(예를 들어, 토큰 "w-?"는, 나머지 글자들이 아직 인식되지 않았음에도 불구하고, 제스처가 글자 "w"로 시작하는 가정형태를 나타낼 수 있다. 본 개시내용의 기법들을 구현하는 컴퓨팅 디바이스는 제스처 입력의 후속 표시들을 수신함에 대한 응답으로 해당 단어의 가능한 다음 글자를 고려하기 위해 토큰을 진척(advance)시킬 수 있다(예를 들어, "w-e-?", "w-i-?", 등). 컴퓨팅 디바이스는 제스처가 실제로 이런 가능한 다음 글자들을 걸쳐 지나간 것인지 여부를 결정하기 위해 이런 가능한 다음 글자들 각각을 제스처 경로와 비교할 수 있다.
본 기법들은 가능한 단어 후보들을 발생시키기 위해 단어 접두어의 하나 이상의 문자 위치들에서 상이한 편집형태 혹은 가정형태를 고려할 수 있다. 달리 말하면, 만약 제스처 경로가 임의의 주어진 단어 접두어와 정합되지 않는다면(예를 들어, 정합의 확률이 임계치를 만족시키지 않는다면), 본 기법들은 의도된 단어에서의 철자/편집 오류에 기인하는 하나 이상의 대안적 가정형태들을 고려할 수 있다. 따라서, 본 기법은 예를 들어, 제스처가 글자 "e"를 걸쳐 지나가지 않았을 지라도 혹은 심지어 글자 "e" 가까이 지나가지 않았을 지라도, 컴퓨팅 디바이스로 하여금 w-i-? 제스처를 w-e-? 단어 후보에 맞게 정렬시킬 수 있도록 할 수 있다. 이러한 기법들은 연속적인 제스처 입력에 관한 제약들을 완화시킬 수 있다(만약 이러한 기법들이 사용되지 않는다면 제스처 경로는 임의의 의도된 단어의 모두 문자와 정합될 것이 요구되게 됨). 연속적인 제스처 입력에 대한 이러한 제약들을 완화시키기 위해 대안적 가정형태들을 발생시킴으로써, 본 개시내용의 기법들은 향상된 단어 예측을 제공할 수 있고, 이에 따라 입력을 수행할 때 향상된 사용자 경험을 제공할 수 있다.
예시적 목적으로, 본 기법들이 도 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), 및 제안된 문자열 영역들(18A 내지 18C)을 포함하는 사용자 인터페이스(14)를 프리젠테이션하도록 할 수 있다. 그래픽 키보드(16B)는 복수의 키들을 포함할 수 있다.
키보드 모듈(22)은 사용자가 제스처를 수행함에 따라 제스처에 의해 표시되는 키들의 그룹을 점증적으로 결정할 수 있다. 예를 들어, 키보드 모듈(22)은 UID(12)에서 검출된 제스처의 하나 이상의 표시들을 수신할 수 있다. 일 예에서, 제스처는 UID(12)의 제 1 위치로부터 UID(12)의 제 2 위치로의 입력 유닛(input unit)(예를 들어, 손가락, 펜, 스타일러스, 등)의 모션(motion)을 포함하는 연속적인 모션 제스처(motion gesture)일 수 있고, 이에 따라 제 1 위치로부터 제 2 위치로 수행된 제스처는 제스처의 수행 동안 계속해서 UID(12)에 의해 검출된다. 예를 들어, UID(12)가 터치-감지 디스플레이를 포함하는 경우와 같은 예에서, 제스처는 입력 유닛과 UID(12) 간에 실질적으로 일정한 콘택(contact)을 갖는 상태에서 제 1 위치로부터 제 2 위치로의 입력 유닛의 모션을 포함할 수 있다. 도 1의 예에서 예시된 바와 같이, UID(12)는 "B" 키(32C)를 디스플레이하는 UID(12)의 위치로부터 "E" 키(32D)를 디스플레이하는 UID(12)의 위치로 제스처 경로(22)를 따라 사용자의 손가락에 의해 제공된 그러한 제스처 경로(34)를 포함하는 제스처를 검출할 수 있고, 이에 따라 UID(12)는 제스처 경로(34)에 걸쳐 손가락을 검출하게 된다.
제스처 경로(34)에 대응하는 제스처는 복수의 일부분들을 포함할 수 있다. 일부 예들에서, 제스처는 실질적으로 균등한 시구간들을 갖는 일부분들로 분할될 수 있다. 제스처가 복수의 일부분들을 포함하는 경우, 제스처는 최종 일부분을 포함할 수 있는데, 이러한 최종 일부분은 제스처가 완료되었음을 검출하기 전에 검출된 제스처의 일부분일 수 있다. 예를 들어, 사용자가 자신의 손가락이 UID(12)와 근접한 곳으로부터 벗어나도록 움직여 손가락이 이제 더 이상의 UID(12)에 의해 검출되지 않게 되는 그러한 제스처의 일부분이 최종 일부분으로서 지정될 수 있다.
예시된 바와 같이, 키보드 모듈(22)은 복수의 키들 중 키들의 그룹을 횡단하는 제스처의 하나 이상의 표시들을 수신할 수 있다. 도 1의 예에서, UI 모듈(6)은, 사용자가 제스처를 수행함에 따라 UID(12)에서 제스처 경로(34)를 갖는 제스처를 점증적으로 검출할 수 있는데, 이러한 검출은 원하는 단어의 하나 이상의 문자들(예를 들어, 단어 "benefit"에 대응하는 문자들)에 대응하는 그래픽 키보드(16B)의 키들에 거쳐 있거나 혹은 가까이에 있는 제스처 경로(34)를 추적함으로써 이루어진다. UI 모듈(20)은 제스처 경로(34)를 표시하는 데이터를 제스처 모듈(24)에 전송할 수 있고, 이에 따라 제스처 모듈(24)은 터치 이벤트들을 키보드 모듈(22)에 전송한다. 일부 예들에서, 제스처 경로(34)가 UI 디바이스(4)에 의해 검출됨에 따라 UI 모듈(20)은 제스처 경로(34)를 표시하는 데이터를 점증적으로 제스처 모듈(24)에 전송한다.
키보드 모듈(22)은 제스처의 표시들을 수신할 수 있고, 제스처에 의해 횡단된 적어도 하나의 정렬 지점 및 단어 접두어에 적어도 부분적으로 근거하고 있는 정렬 점수를 결정할 수 있다. 일부 예들에서, 키보드 모듈(22)은 정렬 점수들의 그룹을 결정할 수 있고, 여기서 각각의 정렬 점수는 상이한 접두어에 대응한다. 정렬 점수는 적어도 하나의 정렬 지점이 복수의 키들 중 임의의 키를 표시할 확률을 나타낼 수 있다. 키보드 모듈(22)은, 제스처 경로(34)에 의해 횡단된 정렬 지점들의 그룹을 결정하는 것과, 그리고 접두어들 각각이 정렬 지점들에 근접하는 키들의 문자들을 포함하는 그러한 접두어들에 대한 각각의 정렬 점수들을 결정하는 것을 행함으로써, 하나 이상의 토큰들을 결정할 수 있다. 예를 들어, "B" 키(32C)에서 시작하여 다른 곳을 거쳐 "N" 키(32E)에 이르게 되는 제스처(34)의 일부분을 결정함에 응답하여, 키보드 모듈(22)은 접두어들 "ben," brn", "bem", "ven", 등에 대한 각각의 정렬 점수들을 결정할 수 있다. 즉, 키보드 모듈(22)은, 제스처 경로(34)가 초기에 "B" 키(32C) 가까이에서 횡단함에 따라, 초기에 토큰 내의 접두어 "b"를 결정할 수 있다. 제스처 경로(34)가 "E" 키(32B) 가까이에서 횡단함에 따라, 키보드 모듈(22)은 (다른 추가적인 토큰들 중에서도) 토큰들 "br" 및 "be"를 생성함으로써 어휘 목록 트리 내에서 접두어 "b"에 대한 토큰을 "진척(advance)"시킬 수 있다.
정렬 지점은 그래픽 키보드(16B) 내에 포함되는 복수의 키들 중 임의의 키에 대응할 수 있는 제스처 경로(34)를 따르는 임의의 지점일 수 있다. 정렬 지점은 정렬 지점의 결정된 위치에 대응하는 하나 이상의 좌표들을 포함할 수 있다. 예를 들어, 정렬 지점은 사용자 인터페이스(14) 상의 임의의 지점에 대응하는 데카르트 좌표들(Cartesian coordinates)을 포함할 수 있다.
일부 예들에서, 키보드 모듈(22)은 제스처 경로(22)와 관련된 복수의 특성들에 근거하여 제스처 경로(34)에 의해 횡단된 정렬 지점들의 그룹을 결정한다. 제스처 경로(34)와 관련된 복수의 특성들은 제스처 경로(34)의 세그먼트(segment)의 길이, 속도, 곡률, 방향, 등을 포함할 수 있다. 예를 들어, 제스처 모듈(24)은 이전의 정렬 지점 및 현재의 정렬 지점으로부터 제스처 세그먼트를 따르는 길이를 결정할 수 있다. 더 좋은 정렬을 위해, 이러한 길이는 두 개의 대응하는 키보드 글자들에 대해 이들 간의 직선 거리에 더 가깝게 근사화될 것이다. 일부 예들에서, 정렬 지점들은 정렬 지점들에 근접하는 키들에 대응하는 공간 모델들과 비교될 수 있다. 이러한 방식으로, 키보드 모듈(22)은 정렬 지점들에 더 가까이 있는 키들에 대해 더 높은 확률들을 결정할 수 있다.
적어도 제스처 경로(34)의 일부분을 나타내는 데이터를 수신함에 응답하여, 제스처 모듈(24)은 앞서 설명된 바와 같은 하나 이상의 토큰들을 결정할 수 있는데, 이러한 토큰들 각각은 복수의 예측된 문자들의 단일 문자열을 포함한다. 예를 들어, 제스처 경로(34)의 일부분에 적어도 부분적으로 근거하여, 키보드 모듈(22)은 하나 이상의 토큰들을 결정할 수 있는데, 이러한 토큰들 각각은 제스처 경로(34)에 의해 표시되는 예측된 문자들의 단일 문자열을 포함한다. 앞서의 예에서 설명된 바와 같이, 키보드 모듈(22)은 "B" 키(32C), "E" 키(32D) 및 "N" 키(32E)의 예측된 선택의 표시에 대응하는 예측된 문자들 "ben"의 문자열로서 제 1 토큰을 결정할 수 있다. 유사하게, 제스처 모듈(8)은 "B" 키(32C), "R" 키(32G) 및 "N" 키(32E)의 예측된 선택의 표시에 대응하는 예측된 문자들 "brn"의 문자열로서 제 2 토큰을 결정할 수 있다. 키보드 모듈(22)은 그래픽 키보드(16B)의 하나 이상의 키들에 대한 제스처 경로(34)의 근접에 적어도 부분적으로 근거하여 복수의 이러한 토큰들을 점증적으로 결정할 수 있다. 각각의 토큰의 각각의 문자는 그 문자에 대응하는 키를 디스플레이하는 UID(12)의 영역과 관련될 수 있다. 키보드 모듈(22)은 토큰의 하나 이상의 문자들에 대응하는 하나 이상의 키들을 디스플레이하는 UI 디바이스(4)의 해당 영역에 대해서 그 관측된 터치 지점들에 근거하여 하나 이상의 토큰들을 결정할 수 있다.
예측된 문자들의 문자열을 포함하는 토큰들 각각은 어휘 목록 내에 포함된 단어의 접두어일 수 있다. 어휘 목록은 언어 모듈(28) 내에서 모델링될 수 있다. 키보드 모듈(22)은 하나 이상의 토큰들에 적어도 부분적으로 근거하여 하나 이상의 후보 단어들을 결정할 수 있다. 후보 단어는 제스처 경로(34)에 의해 표시되는 키들의 그룹으로 구성된 사용자에게 제안되는 단어일 수 있다. 예로서, 앞에서 설명된 바와 같이, 키보드 모듈(34)은 제스처 경로(34)의 일부분의 표시를 수신함에 응답하여 하나 이상의 토큰들을 결정할 수 있는데, 예를 들어, 예측된 문자들의 문자열 "ben"을 포함하는 제 1 토큰, 예측된 문자들의 문자열 "brn"을 포함하는 제 2 토큰, 예측된 문자들의 문자열 "bem"을 포함하는 제 3 토큰, 혹은 다른 토큰들을 결정할 수 있다. 토큰들 중 하나 이상의 토큰은 어휘 목록 내에 포함된 단어의 접두어일 수 있다. 키보드 모듈(22)은, 특정 예들에서, 토큰이 접두어가 되는 어휘 목록 내에 포함된 단어들 중 하나 이상의 단어로서 하나 이상의 후보 단어들을 점증적으로 결정할 수 있다.
일부 예들에서, 키보드 모듈(22)은 키보드(16B)에 포함되는 키들과 관련된 문자들을 포함하는 접두어들에 대해 각각의 정렬 점수들을 결정할 수 있다. 각각의 정렬 점수들 각각은 정렬 지점이 임의의 키를 표시할 확률을 나타낼 수 있다. 즉, 키보드 모듈(22)은 제스처 경로(34)가 언어 모델(28) 내에서 모델링된 임의의 주어진 단어와 얼마나 가깝게 정합되는 지를 표시하는 정렬 점수를 결정할 수 있다. 일부 예들에서, 토큰 내의 접두어에 대한 정렬 점수는, 단어 접두어를 나타내는 문자열, 제스처의 하나 이상의 정렬 지점들, 및/또는 하나 이상의 키들에 근거하고 있을 수 있다. 예를 들어, 단어 접두어에 대한 정렬 점수는, 키의 물리적 위치에 대한 정렬 지점의 물리적 위치에 근거하고 있을 수 있고, 그리고 키에 대응하는 문자와 함께 덧붙여지는 경우 단어 접두어가 어휘 목록 내의 단어에 대응할 확률에 근거하고 있을 수 있다.
일부 예들에서, 각각의 정렬 점수들은 언어 모델(28)에 근거하고 있을 수 있다. 예를 들어, 각각의 정렬 점수들은 제 1 키 이후에 제 2 키가 선택될 확률(예를 들어, "b" 키 이후에 "e" 키가 선택될 확률)에 근거하고 있을 수 있다. 또 하나의 다른 예로서, 각각의 정렬 점수들은 제 1 후보 단어 다음에 제 2 후보 단어가 따라올 확률(예를 들어, 후보 단어 "you" 다음에 후보 단어 "benefit"가 따라올 확률)에 근거하고 있을 수 있다. 특정 예들에서, 해당 키들에 대해 각각의 정렬 점수들이 결정된 그러한 키들은 언어 모델(28)에 적어도 부분적으로 근거하여 선택된다. 일부 예들에서, 정렬 점수들은 정렬 지점이 임의의 키를 표시할 가능성이 더 큰 그러한 곳에서 더 낮다. 다른 예들에서, 정렬 점수들은 정렬 지점이 임의의 키를 표시할 가능성이 더 큰 그러한 곳에서 더 높다.
일부 예들에서, 사용자는 의도한 단어를 입력하기 위해 제스처를 수행함에 있어 오류를 범할 수 있다. 예를 들어, 도 1에서 예시되는 바와 같이, 사용자는 제스처 경로(34)에 의해 표시되는 연속적인 제스처를 수행할 수 있다. 사용자가 단어 "benefit"를 입력하려고 의도했을지라도, 제스처 경로(34)에 의해 보여지는 바와 같이 사용자는 "benefit" 철자 오기에 대응하는 제스처를 입력했다. 오류가 있는 제스처 입력에 근거하여 의도하지 않은 단어(예를 들어, "Bemidji")를 출력하는 것이 아니라, 키보드 모듈(22)은 접두어 "ben"을 포함한 후보 단어 "benefit"의 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 가정형태를 결정할 수 있다. 달리 말하면, "beni" 및/또는 "benif"에 대한 정렬 점수가 낮을 수 있지만, 키보드 모듈(22)은 (예를 들어, 접두어로부터의 "i"를 "e"로 대체한) 적어도 하나의 대안적 문자를 사용하여 의도한 단어 "benefit"을 출력할 수 있는데, 이러한 대안적 문자는 접두어 "ben"을 포함하는 후보 단어의 철자 오기에 적어도 부분적으로 근거하고 있을 수 있다.
일부 예들에서, 대안적 문자는 정렬 지점으로부터 떨어진 거리가 임계 거리보다 더 큰 그러한 거리에 있는 그래픽 키보드의 키와 관련될 수 있다. 예를 들어, 그래픽 키보드의 하나 이상의 이웃하는 키들의 위치들은 정렬 지점의 임계 거리 내에 있을 수 있다. 대안적 문자는 이웃하는 키가 아닌 임의의 키와 관련될 수 있는데, 예를 들어, 대안적 문자는 정렬 지점으로부터 떨어진 거리가 임계 거리보다 더 큰 그러한 거리에 있는 그래픽 키보드의 키와 관련될 수 있다. 다른 예들에서, 대안적 문자는 이웃하는 키인 임의의 키와 관련될 수 있는데, 즉, 대안적 문자는 정렬 지점으로부터 떨어진 거리가 임계 거리보다 더 작거나 임계 거리와 동일한 그러한 거리에 있는 그래픽 키보드의 키와 관련될 수 있다.
키보드 모듈(22)은, 임의의 주어진 단어 접두어를 포함하는 후보 단어의 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정하기 위해, 일부 예들에서, 정정용 데이터(30)를 사용할 수 있다. 철자 오기는 올바르지 않은 철자일 수 있다. 하나의 비-한정적 예로서, 철자 오기는 어휘 내에 있는 단어의 올바르지 않은 철자를 포함하는 문자열일 수 있다(임의의 언어에서 사용되는 단어들의 본체(body)를 포함하는 어휘가 컴퓨팅 디바이스(10)에 의해 사용되는 사전 내에 포함될 수 있고 그리고/또는 언어 모델(28) 내에서 모델링될 수 있음). 정정용 데이터(30)는 일반적으로 하나 이상의 문자들의 조합체들 및/또는 대안적 문자들을 표시하는 데이터를 포함할 수 있다. 문자들의 조합체들 및/또는 대안적 문자들은 단어들 혹은 단어들의 일부분들 혹은 복수-단어 어구들의 철자 오기에 적어도 부분적으로 근거하고 있을 수 있다. 예를 들어, 정정용 데이터(30)는 글자 "i"와 "e" 간의 표음적 관계(phonetic relationship)를 표시하는 데이터를 포함할 수 있는데, 왜냐하면 표음적으로 글자들 "i"와 "e"는 사용자의 철자 오기에 의해 잘못하여 상호교환(interchange), 예를 들어, "대체(substitute)"될 수 있기 때문이다(예를 들어, 사용자가 단어 "benefit"를 입력하려고 의도했지만 그 대신 b-e-n-i-f-i-t를 제스처링한 경우). 이에 따라, 키보드 모듈(22)은, 접두어 "beni"가 임의의 낮은 정렬 점수(예를 들어, 임계치보다 작은 정렬 점수)와 관련되어 있다고 결정함에 대한 응답으로, 이러한 데이터에 근거하여 대안적 가정형태 "bene"를 결정할 수 있다.
일부 예들에서, 정정용 데이터(30)는 하나 이상의 문자들 및/또는 문자들의 조합체들 간의 위치적 관계(positional relationship)를 표시하는 데이터를 포함할 수 있다. 예를 들어, 정정용 데이터(30)는 글자 "i"와 "e" 간의 위치 관계를 표시하는 데이터를 포함할 수 있는데, 왜냐하면 위치적으로 문자들 "i"와 "e"는 사용자에 의해 잘못하여 상호교환, 예를 들어, "전치(transpose)"될 수 있기 때문이다(예를 들어, 사용자가 단어 "weird"를 입력하려고 의도했지만 그 대신 w-i-e-r-d를 제스처링한 경우). 키보드 모듈(22)은, 접두어 "wier"가 임의의 낮은 정렬 점수(예를 들어, 임계치보다 작은 정렬 점수)와 관련되어 있다고 결정함에 대한 응답으로, 이러한 데이터에 근거하여 대안적 가정형태 "weir"를 결정할 수 있다.
또 하나의 다른 예에서, 정정용 데이터(30)는 하나 이상의 문자들 및/또는 문자들의 조합체들의 누락(omission)들을 표시하는 데이터를 포함할 수 있다. 예를 들어, 정정용 데이터(30)는 글자 "h"와 글자 조합체 "Faren" 간의 누락 관계를 표시하는 데이터를 포함할 수 있는데, 왜냐하면 문자 "h"는 사용자에 의해 잘못하여 누락될 수 있기 때문이다(예를 들어, 사용자가 단어 "Farhenheit"를 입력하려고 의도했지만 그 대신 F-a-r-e-n-h-e-i-t를 제스처링한 경우). 키보드 모듈(22)은, 접두어 "Faren"이 임의의 낮은 정렬 점수와 관련되어 있다고 결정함에 대한 응답으로, 이러한 데이터에 근거하여 대안적 가정형태 "Farhen"을 결정할 수 있다.
또 다른 예에서, 정정용 데이터(30)는 하나 이상의 문자들 및/또는 문자들의 조합체들의 잘못된 삽입(insertion)들을 표시하는 데이터를 포함할 수 있다. 예를 들어, 정정용 데이터(30)는 글자 "e"와 글자 조합체 "uly" 간의 삽입 관계를 표시하는 데이터를 포함할 수 있는데, 왜냐하면 문자 "e"는 사용자에 의해 잘못하여 삽입될 수 있기 때문이다(예를 들어, 사용자가 단어 "truly"를 입력하려고 의도했지만 그 대신 t-r-u-e-l-y를 제스처링한 경우). 키보드 모듈(22)은, 접두어 "truel"이 임의의 낮은 정렬 점수와 관련되어 있다고 결정함에 대한 응답으로, 이러한 데이터에 근거하여 대안적 가정형태 "truly"를 결정할 수 있다. 앞에서 설명된 예들이 정정용 데이터(30) 내에 포함되는 데이터의 다양한 형태들 및/또는 유형들을 표시하고 있지만, (예를 들어, 철자 오기들, 발음 오류(mispronunciation)들, 의미상 오류(semantic error)들, 등에 관한) 하나 이상의 규칙들에 근거하여 문자들 및/또는 문자들의 조합체들 간의 관계를 표시하는 임의의 다른 이러한 적절한 정정용 데이터가 정정용 데이터(30) 내에 포함될 수 있다.
도 1의 예에서, 키보드 모듈(22)은 "beni"에 대한 정렬 점수가 임계치를 만족시키는데 실패했다고 결정할 수 있다. 예를 들어, 키보드 모듈(22)은 "beni"에 대한 정렬 점수가 임계치보다 낮다고 결정할 수 있다. 임계치는 컴퓨팅 디바이스(10)의 사용자 및/또는 엔지니어(engineer)에 의해 구성되는 임의의 값일 수 있다. 다른 예들에서, 키보드 모듈(22)은 임계치를 동적으로 결정할 수 있다. 정렬 점수가 임계치를 만족시키는데 실패했다고 결정함에 응답하여, 키보드 모듈(22)은 단어 접두어를 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다. 예를 들어, 도 1의 예에서, 키보드 모듈(22)은 "e"가 대안적 문자를 위해 "i" 대신에 대체될 수 있음을 표시하는 정정용 데이터 내의 관계에 근거하여 대안적 가정형태 "bene"를 결정할 수 있다(예를 들어, 사용자는 제스처에서 "e"에 대한 "i"의 표음적 대체형 오류를 범했을 수 있음). 일부 예들에서, 키보드 모듈(22)은 정정용 데이터(30)에 의해 표시되는 바와 같이 "e"에 대한 "i"의 대체형에 근거하여 단어 접두어 "bene"(예를 들어, 대안적 가정형태)를 포함하는 토큰을 생성할 수 있다.
키보드 모듈(22)은 토큰 내에 포함되는 단어 접두어 "bene"에 대한 대안적 정렬 점수를 결정할 수 있다. 단어 "benefit"가 언어 모델(28) 내에서 모델링될 수 있기 때문에, 그리고 일부 예들에서, "beni"로 시작하는 단어들보다 더 높은 확률을 갖도록 모델링될 수 있기 때문에, 단어 접두어 "bene"에 대한 대안적 정렬 점수는 "beni"보다 더 높을 수 있다. 일부 예들에서, 키보드 모듈(22)은 대안적 가정형태를 포함하는 토큰을 생성함이 없이 본 명세서에 더 설명되는 바와 같이 정렬 점수를 결정할 수 있다.
대안적 정렬 점수가 임계치를 만족시킨다고 결정함에 응답하여, 키보드 모듈(22)은 데이터를 UI 모듈(20)에 전송할 수 있고, UI 모듈(20)은 UID(12)로 하여금 대안적 가정형태 "bene" 내에서 "i" 대신 대체된 대안적 문자 "e"에 적어도 부분적으로 근거하여 후보 단어를 디스플레이를 위해 출력하도록 한다. 예를 들어, 키보드 모듈(22)은 접두어 "bene"에 각각 대응하는 언어 모델(28) 내의 하나 이상의 후보 단어들을 결정하기 위해 탐색 혹은 "룩 어헤드"를 행할 수 있다. 예를 들어, 문자열 "bene"가 주어지는 경우, 키보드 모듈(22)은 언어 모델(28)을 사용하여 후보 단어들 "benefit", "beg" 및 "benoit"의 각각의 확률들을 결정할 수 있다. 따라서, 키보드 모듈(22)은 후보 단어들 "benefit", "beg" 및 "benoit"를 출력할 수 있다. 일부 예들에서, 후보 단어들 "benefit", "beg" 및 "benoit"와 관련된 확률들은 단어 접두어 "bene"를 부여받은 임의의 다른 후보 단어들보다 더 클 수 있다. 또 다른 예들에서, 후보 단어들 "benefit", "beg" 및 "benoit"와 관련된 각각의 확률들은 하나 이상의 임계치들보다 더 클 수 있다. 예를 들어, 임계치는 단어 접두어들의 제 1 부분집합의 양(quantity)과 동일한 값일 수 있고, 여기서 단어 접두어들의 제 1 부분집합은 단어 접두어들의 제 2 부분집합 내의 단어 접두어들과 관련된 정렬 점수들보다 더 큰 하나 이상의 정렬 점수들과 관련된 단어 접두어들의 부분집합이다.
일부 예들에서, 키보드 모듈(22)은 각각의 그리고/또는 하나 이상의 정정들(예를 들어, 하나 이상의 오류 정정 동작들을 적용하는 것)에 대해 페널티(penalty)를 적용할 수 있고, 이에 따라 많은 철자 정정들을 갖는 단어는 더 낮은 정렬 점수를 갖게 된다. 즉, 키보드 모듈(22)이 대안적 단어 접두어를 발생시키고, 그리고/또는 대안적 정렬 점수를 결정함에 따라, 키보드 모듈(22)은 키보드 모듈(22)이 하나 이상의 오류 정정 동작들을 적용했던 단어 접두어와 관련된 정렬 점수에 페널티 값을 적용할 수 있다. 더욱이, 성능을 향상시키기 위해, 키보드 모듈(22)은 단일 단어에 대해 허용된 철자 정정들의 수를 제한할 수 있고, 혹은 일정 개수의 글자들에 대해서 철자 정정들의 빈도를 제한할 수 있는데(예를 들어, 매 N개의 글자들마다 많아야 1번의 정정), 이는 도 8에서 더 설명되는 바와 같다.
페널티를 적용하는 일부 예들에서, 키보드 모듈(22)은, 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정함(예를 들어, 오류 정정 동작을 적용함)에 응답하여, 페널티 값을 결정할 수 있다. 페널티 값은 본 명세서에서 더 설명되는 바와 같이 동적으로 결정될 수 있거나 혹은 사용자 및/또는 엔지니어에 의해 설정되는 값일 수 있다. 키보드 모듈(22)은 적어도 하나의 대안적 문자에 적어도 부분적으로 근거하여 대안적 정렬 점수를 결정할 수 있다. 이러한 예들에서, 키보드 모듈(22)은 페널티 값에 적어도 부분적으로 근거하여 대안적 정렬 점수를 결정할 수 있다. 예를 들어, 키보드 모듈(22)은 대안적 정렬 점수에 페널티 값을 더할 수 있고, 혹은 정렬 점수와 페널티 값을 곱하여 새로운 대안적 정렬 점수를 발생시킬 수 있다. 이러한 방식으로, 키보드 모듈(22)은 페널티 값을 대안적 정렬 점수에 적용할 수 있다. 본 개시내용의 기법들의 더 상세한 내용들은 도 2 내지 도 9의 예들에서 설명된다.
도 2는 본 개시내용의 하나 이상의 실시형태들에 따른, 예시적 컴퓨팅 디바이스를 나타낸 블록도이다. 도 1의 동작 환경 내에서 도 2의 컴퓨팅 디바이스(10)가 아래에서 설명된다. 도 2는 컴퓨팅 디바이스(10)의 단지 하나의 특정 예를 나타내며, 컴퓨팅 디바이스(10)의 다수의 다른 예들이 다른 실시예들에서 사용될 수 있고, 예시적 컴퓨팅 디바이스(10) 내에 포함되는 컴포넌트들의 부분집합을 포함할 수 있으며, 혹은 도 2에 제시되지 않은 추가적인 컴포넌트들을 포함할 수 있다.
도 2의 예에서 제시되는 바와 같이, 컴퓨팅 디바이스(10)는, 사용자-인터페이스 디바이스(12)(예를 들어, 프레즌스-감지 디스플레이), 하나 이상의 프로세서들(40), 하나 이상의 입력 디바이스들(42), 하나 이상의 통신 유닛들(44), 하나 이상의 출력 디바이스들(46), 그리고 하나 이상의 저장 디바이스들(48)을 포함한다. 컴퓨팅 디바이스(10)의 저장 디바이스들(48)은 또한, UI 모듈(20), 키보드 모듈(22), 제스처 모듈(24), 공간 모델(26), 언어 모듈(28), 정정용 데이터(30), 활성 빔(active beam)(52), 그리고 다음 빔(next beam)(54)을 포함한다. 통신 채널(communication channel)들(50)은 컴포넌트-간 통신을 위해 컴포넌트들(12, 40, 42, 44, 46, 48, 20, 22, 24, 26, 28, 30, 52, 54, 및 56) 각각을 (물리적으로, 통신가능하게, 그리고/또는 동작가능하게) 상호연결시킬 수 있다. 일부 예들에서, 통신 채널들(50)은 시스템 버스, 네트워크 연결, 프로세스-간 통신 데이터 구조, 혹은 데이터를 전달하기 위한 임의의 다른 구조를 포함할 수 있다.
컴퓨팅 디바이스(10)의 하나 이상의 입력 디바이스들(42)은 입력을 수신할 수 있다. 입력의 예들은 촉각적 입력(tactile input), 오디오 입력(audio input), 및 비디오 입력(video input)이다. 컴퓨팅 디바이스(10)의 입력 디바이스들(42)은, 하나의 예에서, 마우스, 키보드, 음성 응답 시스템, 비디오 카메라, 마이크로폰(microphone), 혹은 사람(human)이나 머신(machine)으로부터의 입력을 검출하기 위한 임의의 다른 유형의 디바이스를 포함한다. 일부 예들에서, 입력 디바이스(42)는 프레즌스-감지 입력 디바이스일 수 있으며, 이러한 프레즌스-감지 입력 디바이스는 프레즌스-감지 스크린, 터치-감지 스크린 등을 포함할 수 있다.
컴퓨팅 디바이스(10)의 하나 이상의 출력 디바이스들(46)은 출력을 발생시킬 수 있다. 출력의 예들은 촉각적 출력, 오디오 출력, 및 비디오 출력이다. 컴퓨팅 디바이스(10)의 출력 디바이스들(46)은, 하나의 예에서, 프레즌스-감지 스크린, 사운드 카드(sound card), 비디오 그래픽 어댑터 카드(video graphics adapter card), 스피커, 음극선관(Cathode Ray Tube, CRT) 모니터, 액정 디스플레이(Liquid Crystal Display, LCD), 혹은 사람이나 머신에게 출력을 발생시키기 위한 임의의 다른 타입의 디바이스를 포함한다. 출력 디바이스들(46)은 디스플레이 디바이스들을 포함할 수 있는데, 예를 들어, 음극선관(CRT) 모니터, 액정 디스플레이(LCD), 혹은 시각적 출력을 발생시키기 위한 임의의 다른 유형의 디바이스를 포함할 수 있다.
컴퓨팅 디바이스(10)의 하나 이상의 통신 유닛들(44)은 하나 이상의 네트워크들 상에서 네트워크 신호들을 전송 및/또는 수신함으로써 하나 이상의 네트워크들을 통해 외부 디바이스들과 통신할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 셀률러 무선 네트워크(cellular radio network)와 같은 무선 네트워크를 통해 무선 신호(radio signal)들을 전송 및/또는 수신하기 위해 통신 유닛(44)을 사용할 수 있다. 마찬가지로, 통신 유닛들(44)은 GPS 네트워크와 같은 위성 네트워크를 통해 위성 신호들을 전송 및/또는 수신할 수 있다. 통신 유닛(44)의 예들은, 네트워크 인터페이스 카드(예를 들어, 이더넷 카드(Ethernet card)와 같은 것), 광학 송수신기, 무선 주파수 송수신기, GPS 수신기, 혹은 정보를 전송 및/또는 수신할 수 있는 임의의 다른 유형의 디바이스를 포함한다. 통신 유닛들(44)의 다른 예들은, 모바일 디바이스들 뿐만 아니라 범용 직렬 버스(Universal Serial Bus, USB) 제어기들 내에서 발견되는, 블루투스(Bluetooth®), GPS, 3G, 4G 및 와이파이(Wi-Fi®) 무선기기들을 포함할 수 있다.
일부 예들에서, 컴퓨팅 디바이스(10)의 UID(12)는 입력 디바이스들(42) 및/또는 출력 디바이스들(46)의 기능을 포함할 수 있다. 도 2의 예에서, UID(12)는 프레즌스-감지 스크린, 터치-감지 스크린 등과 같은 프레즌스-감지 입력 디바이스일 수 있거나 이러한 프레즌스-감지 입력 디바이스를 포함할 수 있다. 일부 예들에서, 프레즌스 감지 스크린은 프레즌스-감지 스크린에서의 오브젝트 및/또는 프레즌스-감지 스크린 가까이 있는 오브젝트를 검출할 수 있다. 하나의 예시적 범위로서, 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), 정정용 데이터(30), 활성 빔(52), 다음 빔(54), 및 오퍼레이팅 시스템(56)과 관련되어 있는 프로그램 명령들 및/또는 데이터를 저장할 수 있다.
하나 이상의 프로세서들(40)은 컴퓨팅 디바이스(10) 내에서 명령들을 실행시킬 수 있고 그리고/또는 기능을 구현할 수 있다. 예를 들어, 컴퓨팅 디바이스(10) 상의 프로세서들(40)은, UI 모듈(20), 키보드 모듈(22), 제스처 모듈(24), 공간 모델(26), 언어 모듈(28), 정정용 데이터(30), 활성 빔(52), 다음 빔(54), 및 오퍼레이팅 시스템(56)의 기능을 실행시키는, 저장 디바이스들(48)에 의해 저장된 명령들을 수신 및 실행시킬 수 있다. 프로세서들(40)에 의해 실행되는 이러한 명령들은 컴퓨팅 디바이스(10)로 하여금 프로그램 실행 동안 저장 디바이스들(48) 내에 정보를 저장하도록 할 수 있다. 프로세서들(40)은 UID(12)로 하여금 사용자 인터페이스(14)를 디스플레이하도록 하기 위해 UI 모듈(20), 키보드 모듈(22), 제스처 모듈(24), 공간 모델(26), 언어 모듈(28), 정정용 데이터(30), 활성 빔(52), 다음 빔(54), 및 오퍼레이팅 시스템(56)의 명령들을 실행시킬 수 있다. 즉, UI 모듈(20), 키보드 모듈(22), 제스처 모듈(24), 공간 모델(26), 언어 모듈(28), 정정용 데이터(30), 활성 빔(52), 다음 빔(54), 및 오퍼레이팅 시스템(56)은, UID(12)의 프레즌스-감지 스크린의 위치들에서 제스처의 표시를 수신하는 것, 그리고 UID로 하여금 사용자 인터페이스(14)를 프리젠테이션하도록 하는 것을 포함하는 다양한 동작들을 수행하도록 프로세서들(40)에 의해 동작가능할 수 있다.
컴퓨팅 디바이스(2)는 오퍼레이팅 시스템(56)을 포함할 수 있다. 오퍼레이팅 시스템(56)은, 일부 예들에서, 컴퓨팅 디바이스(2)의 컴포넌트들의 동작을 제어한다. 예를 들어, 오퍼레이팅 시스템(56)은, 하나의 예에서, UI 모듈(20), 제스처 모듈(24) 및 키보드 모듈(22)이 프로세서들(40), 통신 유닛(44), 저장 디바이스(48), 입력 디바이스(42), 및 출력 디바이스(46)와 통신하는 것을 용이하게 한다.
컴퓨팅 디바이스(2)는 활성 빔(52)을 포함할 수 있다. 활성 빔(52)은, 일부 예들에서, 키보드 모듈(22)에 의해 발생되는 하나 이상의 토큰들을 저장하도록 구성된다. 활성 빔(52)은 저장 디바이스들(48) 내에 포함될 수 있다. 컴퓨팅 디바이스(2)는 또한, 다음 빔(54)을 포함할 수 있다. 다음 빔(54)은, 일부 예들에서, 키보드 모듈(22)에 의해 발생되는 하나 이상의 토큰들을 저장하도록 구성된다. 다음 빔(54)은 저장 디바이스들(48) 내에 포함될 수 있다. 정정용 데이터(30)는, 일부 예들에서, 하나 이상의 명시적 엔트리들(explicit entries)을 갖는 철자 오기 사전을 유지시킬 수 있는데, 이러한 명시적 엔트리들은 "wierd"와 같은 흔한 제스처 철자 오기가 "weird"로 정정돼야만 함을 표시하는 데이터를 포함한다.
컴퓨팅 디바이스(10)는 명확한 설명을 위해 도 2에서는 제시되지 않은 추가적인 컴포넌트들을 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 컴퓨팅 디바이스(2)의 컴포넌트들에 파워를 제공하기 위해 배터리를 포함할 수 있다. 유사하게, 도 2에서 제시되는 컴퓨팅 디바이스(2)의 컴포넌트들이 컴퓨팅 디바이스(2)의 모든 예에서 반드시 존재할 필요는 없다. 예를 들어, 일부 구성들에서, 컴퓨팅 디바이스(2)는 통신 유닛(44)을 포함하지 않을 수 있다.
본 개시내용의 기법들에 따르면, 키보드 모듈(22)은 UI 모듈(20)에 데이터를 전송할 수 있고 UI 모듈(20)은 UID(12)로 하여금 복수의 키들을 포함하는 그래픽 키보드(16B)를 디스플레이를 위해 출력하도록 한다. 사용자는 그래픽 키보드(16B)의 키들에 대응하는 그래픽 키보드(16B)의 하나 이상의 영역들을 횡단하는 제스처를 UID(12)에서 수행할 수 있다. 이러한 제스처에 응답하여, UID(12)는 도 1의 제스처 경로(34)와 같은 제스처 경로를 검출할 수 있고, 이러한 제스처 경로(34)는 제스처 경로 데이터로서 UI 모듈(20)에 의해 수신될 수 있다. 제스처 경로는 하나 이상의 일부분들을 포함할 수 있는데, 이러한 일부분들은 사용자가 제스처를 수행함에 따라 UI 모듈(20)에 의해 점증적으로 결정될 수 있다. 제스처 모듈(24)은 UI 모듈(20)로부터 제스처 경로 데이터를 수신할 수 있고, 제스처 경로 데이터에 대응하는 도 1에서 설명되는 바와 같은 하나 이상의 터치 이벤트들을 어셈블할 수 있다. 일부 예들에서, UI 모듈(20)은 제스처 경로(34)가 UID(12)에 의해 검출됨에 따라 제스처 경로 데이터를 제스처 모듈(24)에 점증적으로 전송한다.
"B" 키(32C)로부터 "E" 키(32D)에 이르는 제스처 경로(34)의 일부분에 대응하는 터치 이벤트들을 제스처 모듈(24)로부터 수신함에 응답하여, 키보드 모듈(22)은 제스처 경로(34)에 의해 횡단된 키들에 대응하는 접두어들을 포함하는 하나 이상의 토큰들을 생성할 수 있다. 예를 들어, 키보드 모듈(22)은 언어 모델(28) 내에 포함될 수 있는 어휘 목록의 엔트리 노드에서 토큰을 생성할 수 있다. 일부 예들에서, 언어 모델(28)은 트리 데이터 구조로서 구현될 수 있다. 각각의 이동가능한 토큰은 어휘 목록 내의 노드(즉, 부분적 단어 및/또는 어구)와 제스처를 따르는 경로 간의 부분적 정렬을 나타낼 수 있다. 토큰이 어휘 목록 내의 차일드 노드들(즉, 단어 내의 다음 글자들 및/또는 어구의 다음 단어들)로 진척됨에 따라, 제스처 상의 대응하는 정렬 지점도 또한 진척될 수 있다. 토큰이 워드 내의 다음 글자로 진척됨에 따라 혹은 어구 내의 다음 단어로 진척됨에 따라, 본 개시내용의 기법들은 토큰이 제스처 경로를 따라 얼마나 멀리 진척될 필요가 있는지를 결정할 수 있다. 예를 들어, 본 개시내용의 기법들은 키의 글자에 가장 잘 맞게 정렬되는 제스처를 따르는 정렬 지점을 탐색하는 것을 포함할 수 있다.
도 1에서 설명된 바와 같이, 어휘 목록 트리 데이터 구조는 복수의 노드들을 포함할 수 있고, 여기서 각각의 노드는 글자를 나타낼 수 있다. 키보드 모듈(22)은 각각의 토큰을 활성 빔(52)으로 푸시(push)할 수 있다. 제스처 모듈(8)은 키보드 모듈(22)이 제스처 경로(34)를 따라 사용자 입력의 추가 표시들을 점증적으로 수신함에 따라 토큰의 차일드 노드들 각각 상에 토큰 카피(token copy)를 생성할 수 있다. 예를 들어, 도 1의 예에서, 키보드 모듈(22)은, (예를 들어, "B" 키(32C)의 예측된 키 선택에 대응하는) 글자 "B"를 나타내는 제 1 토큰 카피를 차일드 노드 상에 생성할 수 있고, (예를 들어, "V" 키(32H)의 예측된 키 선택에 대응하는) 글자 "V"를 나타내는 제 2 토큰 카피를 차일드 노드 상에 생성할 수 있다.
각각의 토큰 카피에 대해, 키보드 모듈(22)은, 제스처 경로 데이터와 관련된 하나 이상의 특성들에 근거하여, 제스처에 의해 횡단된 하나 이상의 정렬 지점들을 결정할 수 있다. 도 1의 예에서, 키보드 모듈(22)은 제 1 정렬 지점이 제스처 경로(34)의 시작부분에 위치하고 있음을 결정할 수 있다. 일부 예들에서, 키보드 모듈(22)은 (예를 들어, "E" 키(32D)에 근접하는) 제스처 경로를 따르는 임의의 지점에서의 경로의 곡률을 결정할 수 있다. 이러한 예들에서, 키보드 모듈(22)은 해당 지점이 높은 곡률이 존재하는 정렬 지점일 가능성이 더 높다고 결정할 수 있다(여기서 제스처 경로는 그 해당 지점에서 방향이 급격하게 변하고 있음). 다른 예들에서, 키보드 모듈(22)은 중간-세그먼트 곡률(mid-segment curvature)(제스처를 따르는 두 개의 지점들 사이에서 제스처 경로의 최대 곡률)을 결정할 수 있다. 또 하나의 다른 예에서, 키보드 모듈(22)은 임의의 지점이 높은 중간-세그먼트 곡률이 존재하는 다음 정렬 지점일 가능성이 더 낮다고 결정할 수 있다. 일부 예들에서, 키보드 모듈(22)은 제스처 경로가 검출된 속도에 근거하여 임의의 지점이 정렬 지점이라고 결정할 수 있다. 일부 예들에서, 더 느린 속도의 검출은 해당 지점이 정렬 지점임을 표시한다. 일부 예들에서, 높은 중간-세그먼트 곡률은 제 1 지점과 제 2 지점 사이에 코너(corner)들이 존재함을 표시할 수 있는데, 이것은 제 2 지점이 다음 정렬 지점일 가능성이 더 낮음을 시사한다(즉, 임의의 지점이 그 사이에서 빠져 있음). 일부 예들에서, 정렬 지점은 제 1 키로부터 제 2 키에 이르는 이상적인 라인(ideal line)과 둘 이상의 지점들 사이에 있는 제스처 세그먼트의 지점들 간의 최대 거리에 근거하고 있을 수 있다. 이상적인 라인은 예를 들어, 제 1 키로부터 제 2 키에 이르는 가장 짧은 거리 경로일 수 있다. 더 좋은 정렬을 위해, 최대 거리는 작을 수 있는데, 이것이 의미하는 바는 제스처 세그먼트가 이상적인 라인으로부터 벗어나지 않았음을 의미한다.
각각의 정렬 지점에 대해, 제스처 모듈(8)은 복수의 키들 중 적어도 두 개의 키들 각각에 대한 각각의 정렬 점수들을 결정할 수 있다. 각각의 정렬 점수들 각각은 정렬 지점이 복수의 키들 중 임의의 키를 표시할 확률을 나타낼 수 있다. 도 1의 예에서, 키보드 모듈(22)은, 제 1 정렬 지점이 글자 "B"를 나타내는 노드를 표시할 확률을 나타내는 제 1 정렬 점수를 결정할 수 있고, 그리고 제 1 정렬 지점이 글자 "V"를 나타내는 노드를 표시할 확률을 나타내는 제 2 정렬 점수를 결정할 수 있다. 일부 예들에서, 키보드 모듈(22)은 그 다음에 각각의 정렬 지점 및/또는 정렬 점수로 (예를 들어, "B"를 포함하는) 토큰 카피를 업데이트할 수 있고, 이러한 토큰 카피를 다음 빔(54)에 푸시할 수 있다. 도 1의 예에서, 키보드 모듈(22)은 제 1 정렬 점수를 (예를 들어, "B"를 포함하는) 제 1 토큰 카피에 더할 수 있고, 제 2 해당 값을 (예를 들어, "V"를 포함하는) 제 2 토큰 카피에 더할 수 있다.
키보드 모듈(22)은 복수의 키들 중 적어도 두 개의 키들 각각에 대한 각각의 물리적 점수들을 결정할 수 있다. 각각의 물리적 해당 값들 각각은, 정렬 지점들의 그룹의 정렬 지점의 물리적 특성들이 복수의 키들 중 임의의 키를 표시할 확률을 나타낼 수 있다. 예를 들어, 키보드 모듈(22)은 정렬 지점들의 그룹의 정렬 지점과 키의 키보드 위치 간의 유클리디안 거리를 평가함으로써 각각의 물리적 점수들을 결정할 수 있다. 다른 예들에서, 키보드 모듈(22)은 공간 모델 및 제스처 경로(34)에 대응하는 정렬 지점의 위치에 근거하여 키의 확률을 결정하기 위해 공간 모델(26)을 사용할 수 있다.
복수의 키들의 물리적 특성들은 키 영역들 내에 포함될 수 있다. 예를 들어, 키 영역들은 복수의 키들 각각에 대해, 각각의 키가 디스플레이되는 그래픽 키보드(16B)의 위치 및/또는 구역에 대응하는 좌표들의 집합을 포함할 수 있다. 도 1의 예에서, 키보드 모듈(22)은 제 1 정렬 지점과 "B" 키(32C) 간의 유클리디안 거리에 근거하여 제 1 물리적 점수를 결정할 수 있다. 일부 예들에서, 키보드 모듈(22)은, 제 1 정렬 지점과 제 2 정렬 지점 간의 유클리디안 거리를, 제 1 정렬 지점에 의해 표시되는 제 1 키와 제 2 정렬 지점이 나타낼 수 있는 제 2 키 간의 유클리디안 거리와, 비교함으로써 물리적 점수들을 결정할 수 있다.
키보드 모듈(22)은, 복수의 키들 중 적어도 두 개의 키들 각각에 대한 각각의 언어 점수들을 결정함으로써, 토큰들 내에 포함되는 접두어들에 대한 각각의 정렬 점수들을 결정할 수 있다. 각각의 언어 점수들 각각은 복수의 키들 중 임의의 키가 나타내는 글자가 (토큰에 근거하고 있는) 임의의 후보 단어 내에 포함될 확률을 나타낼 수 있다. 언어 점수들은 언어 모델(28)에 근거하고 있을 수 있다. 예를 들어, 언어 점수들은 임의의 글자에 대응하는 임의의 주어진 키가 언어 모델(28) 내에 포함된 가능성 있는 단어들에 근거하여 선택될 가능성을 나타낼 수 있다. 도 1의 예에서, 키보드 모듈(22)은 글자 "B"가 임의의 단어 내의 첫 번째 글자가 되는 빈도를 표시하는 언어 모델(28) 내의 엔트리에 근거하여 언어 점수를 결정할 수 있다. 도 1에서 설명된 바와 같이, 단어 접두어 "B"를 포함하는 토큰에 대한 정렬 점수는 "B"에 대한 공간 점수 및 언어 점수에 근거하고 있을 수 있다. 예를 들어, 키보드 모듈(22)은 제 1 토큰 내의 단어 접두어 "B"에 대한 공간 점수와 언어 점수의 곱을 정렬 점수로서 결정할 수 있다.
일부 예들에서, 키보드 모듈(22)은 또한, 토큰이 어휘 목록의 터미널 노드에 있는지 여부를 결정할 수 있다. 어휘 목록의 터미널 노드는 어휘 목록 내에 포함된 완전한 단어를 나타내는 노드일 수 있다. 예컨대, 도 1의 예에서, 키보드 모듈(22)은, 제스처 경로(34)의 일부분의 표시에 적어도 부분적으로 근거하여, 그 예측된 문자들의 단일 문자열을 포함하는 토큰을 결정할 수 있다. 추가적으로, 토큰 자체는 어휘 목록 내에 포함된 완전한 단어(예를 들어, 영어로 된 완전한 단어)를 나타낼 수 있다. 토큰이 어휘 목록 내에 포함된 후보 단어를 나타내고 있다고 결정함에 응답하여, 키보드 모듈(22)은 다음-단어 토큰을 발생시킬 수 있다. 다음-단어 토큰은 제스처 경로에 근거하는 복수의 키들 중 임의의 다음 결정된 키가 어휘 목록 내에 포함된 제 2 단어의 접두어임을 표시할 수 있다.
복수의 키들 중 다음 키를 선택하기 위해 제스처의 일부분의 표시를 수신함에 응답하여, 제스처 모듈 키보드 모듈(22)은 임의의 토큰을 선택할 수 있고, 어휘 목록 내의 토큰의 차일드 노드들 각각 상에 토큰 카피를 생성할 수 있다. 각각의 차일드 노드는 제스처의 수신된 일부분에 의해 표시된 예측된 문자를 포함할 수 있다. 예를 들어, 키보드 모듈(22)은 단어 접두어 "beni"를 포함하는 토큰을 선택할 수 있다. 제스처 경로(34)에 대응하는 제스처가 도 1에서 예시되는 바와 같이 "F" 키(32F)로 움직임에 따라, 단어 접두어 "benif"를 생성하기 위해, 컴퓨팅 디바이스(10)는 "beni"의 토큰 카피를 생성할 수 있고, 제스처에 근접하고 있는 "F" 키(32F)에 대응하는 문자 "f"를 덧붙일 수 있다. 키보드 모듈(22)은 유사한 방식으로 토큰 카피들 내에 하나 이상의 추가적인 단어 접두어들(예를 들어, 단어 접두어 "benig", "benit", 등)을 생성할 수 있다.
도 1에서 설명된 바와 같이, 키보드 모듈(22)은 활성 빔(52) 내에 포함되는 각각의 토큰에 대한 정렬 점수를 결정할 수 있다. 일부 예들에서, 키보드 모듈(10)은 토큰들 중 하나 이상의 토큰 내에 포함된 단어 접두어의 일부분을 적어도 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다. 예를 들어, 도 1에서 설명된 바와 같이, 키보드 모듈(22)은 단어 접두어 "benif"에서 "i"를 "e"로 대체함으로써 대안적 단어 접두어 "benef"를 발생시킬 수 있다. 키보드 모듈(22)은 도 4 내지 도 7에서 더 설명되는 바와 같이 활성 빔(52) 내의 새로운 토큰에 대안적 단어 접두어를 저장할 수 있다.
일부 예들에서, 키보드 모듈(22)은 단어 접두어 "benef"에 대한 정렬 점수를 결정할 수 있다. 일부 예들에서, 키보드 모듈(22)은 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다. 예를 들어, 하나 이상의 단어 접두어들과 관련된 하나 이상의 정렬 점수들이 임계치를 만족시키는데 실패했다고 결정함에 응답하여, 키보드 모듈(22)은 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다. 다른 예들에서는, 단어 접두어와 관련된 정렬 점수가 임계치를 만족시키는지 여부를 결정함이 없이, 키보드 모듈(22)은 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다.
유형에 의해 식별되는 하나 이상의 오류 정정 동작들을 사용하여, 키보드 모듈(22)은 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다. 오류 정정 동작들의 제 1 예는 대체형 오류 정정을 수행하기 위해 도 4a 내지 도 4c에서 설명되는 기법들을 포함할 수 있고, 이러한 오류 정정 동작들의 유형은 "대체형 오류 정정(substitution error correction)"일 수 있다. 오류 정정 동작들의 제 2 예는 삭제형 오류 정정을 수행하기 위해 도 5a 내지 도 5c에서 설명되는 기법들을 포함할 수 있고, 이러한 오류 정정 동작들의 유형은 "삭제형 오류 정정(deletion error correction)"일 수 있다. 오류 정정 동작들의 제 3 예는 삽입형 오류 정정을 수행하기 위해 도 6a 내지 도 6c에서 설명되는 기법들을 포함할 수 있고, 이러한 오류 정정 동작들의 유형은 "삽입형 오류 정정(insertion error correction)"일 수 있다. 오류 정정 동작들의 제 4 예는 전치형 오류 정정을 수행하기 위해 도 7a 내지 도 7c에서 설명되는 기법들을 포함할 수 있고, 이러한 오류 정정 동작들의 유형은 "전치형 오류 정정(transposition error correction)"일 수 있다. 본 명세서에서는 이러한 예시적 오류 정정 동작들이 설명되지만, 키보드 모듈(22)은 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정하기 위해 다른 적절한 예시적 오류 정정 기법들을 사용할 수 있다.
일부 예들에서, 키보드 모듈(22)은 대안적 문자에 적어도 부분적으로 근거하고 있는 대안적 정렬 점수를 결정할 수 있다. 예를 들어, 키보드 모듈(22)은 활성 빔(52)에 추가되는 새로운 토큰 카피 내에 포함된 대안적 단어 접두어 "benef"의 정렬 점수를 결정할 수 있다. 컴퓨팅 디바이스(10)는, 대안적 정렬 점수가 제 2 임계치를 만족시킨다고 결정함에 응답하여, 대안적 문자에 적어도 부분적으로 근거하여 디스플레이를 위해 후보 단어를 출력할 수 있다. 예를 들어, 활성 빔(52) 내의 토큰들 각각은 가장 큰(혹은 가장 높은) 정렬 점수로부터 가장 작은(혹은 가장 낮은) 정렬 점수까지 순위가 정해진 순서대로 분류될 수 있다. 키보드 모듈(22)은 제 2 임계치를 만족시키는 정렬 점수들과 관련된 하나 이상의 단어 접두어들에 적어도 부분적으로 근거하여 하나 이상의 후보 단어들을 결정할 수 있다. 예를 들어, 키보드 모듈(22)은 가장 큰 정렬 점수와 관련된 단어 접두어가 임계치를 만족시킨다고 결정할 수 있고, 이에 따라 키보드 모듈(22)은 그 단어 접두어에 적어도 부분적으로 근거하여 하나 이상의 후보 단어들을 출력할 수 있다. 일부 예들에서, 키보드 모듈(22)은 복수의 단어 접두어들이 제 2 임계치를 만족시킨다고 결정할 수 있고, 이에 따라 제 2 임계치를 만족시키는 복수의 단어 접두어들에 각각 근거하고 있는 복수의 후보 단어들을 출력할 수 있다. 일부 예들에서, 대안적 단어 접두어와 관련된 대안적 정렬 점수는 임계치를 만족시킬 수 있고, 이에 따라 키보드 모듈(22)은 대안적 단어 접두어에 포함될 수 있는 대안적 문자에 적어도 부분적으로 근거하여 하나 이상의 후보 단어들을 출력할 수 있다. 본 개시내용의 기법들이 예시적 목적으로 연속적인 제스처 입력에 관해 설명되지만, 이러한 기법들은 또한, 그래픽 키보드의 키들 상에서 개별적으로 탭핑을 행함으로써 사용자가 문자들을 입력할 수 있는 탭핑 입력 및 탭핑 기반 키보드들에 적용될 수 있다.
도 1에서 설명된 바와 같이, 키보드 모듈(22)은 정렬 점수에 페널티 값을 적용할 수 있다. 일부 예들에서, 키보드 모듈(22)은 상이한 페널티 값들을 정렬 점수들에 적용할 수 있다. 예를 들어, 키보드 모듈(22)은 대안적 정렬 점수들을 발생시키기 위해 적용되는 오류 정정 동작에 근거하여 정렬 점수들에 더 큰 페널티 값들 혹은 더 작은 페널티 값들을 적용할 수 있다. 키보드 모듈(22)은, 예를 들어, 상이한 페널티 값들의 계층(hierarchy) 및/또는 맵핑(mapping)을 유지시킬 수 있다. 하나 이상의 오류 정정 동작들 각각은 오류 정정의 임의의 유형과 관련될 수 있고, 키보드 모듈(22)은 복수의 상이한 유형들을 유지시킬 수 있다. 각각의 유형은 상이한 페널티 값과 관련될 수 있다. 일부 예들에서, 상이한 페널티 값들은 글자 의존성일 수 있고 그리고/또는 복수-글자 의존성일 수 있으며, 이에 따라 더 작은 페널티 값이 단일 글자 정정들에 적용될 수 있으며, 반면 키보드 모듈(22)은 n-글자 정정들에 n의 크기에 근거하여 더 큰 페널티 값들을 적용할 수 있다. 키보드 모듈(22)은, 대안적 정렬 점수를 결정함에 응답하여, 키보드 모듈(22)이 대안적 정렬 점수를 결정하기 위해 사용한 복수의 오류 정정 동작들로부터 오류 정정 동작의 유형을 결정할 수 있다. 키보드 모듈(22)은 복수의 페널티 값들로부터 페널티 값을 선택할 수 있다. 복수의 페널티 값들 내의 각각의 페널티 값은 정해진 순위의 순서대로 배열될 수 있다. 일부 예들에서, 각각의 페널티 값은 오류 정정 동작의 적어도 하나의 유형과 관련된다.
하나의 예로서, 정정용 데이터(30)에서 표시된 흔한 철자 오기들은 제 1 페널티 값과 관련될 수 있으며, 제 1 페널티 값은 제 2 페널티 값보다 작다. 제 2 페널티 값은 표음적 대체형태들(예를 들어, "e"로 대체되는 "i")과 관련될 수 있고, 제 2 페널티 값은 제 3 페널티 값보다 작다. 제 3 페널티 값은 전치형 오류들과 관련될 수 있다. 만약 키보드 모듈(22)이 흔한 철자 오기에 근거하여 대안적 정렬 점수를 발생시키는 오류 정정 동작을 수행한다면, 키보드 모듈(22)은 제 1 페널티 값을 대안적 정렬 점수에 적용할 수 있다. 또 하나의 다른 예에서, 만약 키보드 모듈(22)이 표음적 대체형태에 근거하여 대안적 정렬 점수를 발생시키는 오류 정정 동작을 수행한다면, 키보드 모듈(22)은 제 2 페널티 값을 대안적 정렬 점수에 적용할 수 있다. 또 다른 예에서, 만약 키보드 모듈(22)이 전치형태(transposition)에 근거하여 대안적 정렬 점수를 발생시키는 오류 정정 동작을 수행한다면, 키보드 모듈(22)은 제 3 페널티 값을 대안적 정렬 점수에 적용할 수 있다.
일부 예들에서, 키보드 모듈(22)은 오류 정정 동작들에 기인하는 여분의 토큰 확장들(extra token expansions)에 대한 성능을 향상시킬 수 있는데, 이것은 이러한 여분의 정정 확장들을 활성 빔 내에서의 상위 N개의 토큰들만으로 한정시킴으로써 탐색 공간을 크게 확장시킴 없이 이루어질 수 있다(여기서, N은 전형적으로 정규 빔 크기보다 더 작음). 달리 말하면, 키보드 모듈(22)은 가장 큰 정렬 점수들과 관련된 활성 빔 내의 단어 접두어들의 부분집합에 대해서만 정렬 점수들 및/또는 대안적 단어 접두어들을 결정할 수 있으며, 여기서 가장 큰 정렬 점수들 각각은 활성 빔에서의 제 2 부분집합 내의 단어 접두어들과 관련된 정렬 점수들보다 더 크다. 일부 예들에서, 대안적 단어 접두어를 포함하는 각각의 토큰은, 토큰이 대안적 단어 접두어를 포함함을 표시하는 플래그(flag) 혹은 다른 적절한 데이터를 포함할 수 있다. 키보드 모듈(22)은 토큰이 대안적 단어 접두어를 포함함을 표시하는 플래그 혹은 다른 적절한 데이터를 포함하는 토큰들의 임계량(threshold quantity)만을 활성 빔에 저장할 수 있다. 이러한 방식으로, 만약 대안적 단어 접두어들을 포함하는 활성 빔 내의 토큰들의 양이 임계치를 만족시킨다고 키보드 모듈(22)이 결정한다면, 대안적 단어 접두어들을 포함하는 하나 이상의 토큰들이 활성 빔으로부터 제거될 때까지 키보드 모듈(22)은 추가적인 대안적 단어 접두어들을 발생시키지 않을 것이다(그리고/또는 대안적 단어 접두어들을 포함하도록 토큰들을 발생시키지 않을 것임).
도 3은 본 개시내용의 하나 이상의 기법들에 따른, 원격 디바이스에서 디스플레이를 위해 그래픽 콘텐츠를 출력하는 예시적 컴퓨팅 디바이스를 나타낸 블록도이다. 그래픽 콘텐츠는 일반적으로, 텍스트, 이미지들, 움직이는 이미지들의 그룹, 등과 같은 디스플레이를 위해 출력될 수 있는 임의의 시각적 정보를 포함할 수 있다. 도 3에 제시되는 예는, 컴퓨팅 디바이스(60), 프레즌스-감지 디스플레이(64), 통신 유닛(70), 프로젝터(80), 프로젝터 스크린(projector screen)(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)들, 서버들(servers), 메인프레임들(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)의 기능 모두 혹은 이러한 기능의 서브세트(subset)를 포함할 수 있다. 일부 예들에서, 프레즌스-감지 디스플레이(84)는 추가적인 기능을 포함할 수 있다. 프로젝터 스크린(82)(예를 들어, 전자 화이트보드)은 컴퓨팅 디바이스(60)로부터 데이터를 수신할 수 있고 그래픽 콘텐츠를 디스플레이할 수 있다. 일부 예들에서, 프레즌스-감지 디스플레이(84)는 프로젝터 스크린(82)에서의 하나 이상의 사용자 입력들(예를 들어, 연속적인 제스처들, 다중-터치 제스처들, 단일-터치 제스처들, 등)을 용량성, 유도성 및/또는 광학 인식 기법들을 사용하여 결정할 수 있고, 그리고 이러한 사용자 입력의 표시들을 하나 이상의 통신 유닛들을 사용하여 컴퓨팅 디바이스(60)에 전송할 수 있다.
도 3은 또한, 모바일 디바이스(86) 및 시각적 디스플레이 디바이스(90)를 예시한다. 모바일 디바이스(86) 및 시각적 디스플레이 디바이스(90) 각각은 컴퓨팅 능력 및 연결 능력을 포함할 수 있다. 모바일 디바이스(86)의 예들은, 전자책-리더 디바이스(e-book reader device)들, 컨버터블 노트북 디바이스(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)는 네트워크 링크(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)는, 정렬 점수가 제 1 임계치를 만족시키는데 실패했다고 결정함에 응답하여, 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다.
컴퓨팅 디바이스(60)는 대안적 문자에 적어도 부분적으로 근거하고 있는 대안적 정렬 점수를 결정할 수 있다. 일부 예들에서, 대안적 정렬 점수가 제 2 임계치를 만족시킨다고 결정함에 응답하여, 컴퓨팅 디바이스(60)는 대안적 문자에 적어도 부분적으로 근거하여 디스플레이를 위해 후보 단어를 출력할 수 있다. 예를 들어, 컴퓨팅 디바이스(60)는 후보 단어를 나타내는 데이터를 통신 유닛(70)에 전송할 수 있다. 통신 유닛(70)은 이러한 데이터를 외부 네트워크(74)를 통해 시각적 디스플레이 디바이스(90)에 전송할 수 있다. 시각적 디스플레이 디바이스(90)는 프레즌스-감지 디스플레이(92)로 하여금 데이터가 나타내는 문자열을 출력하도록 할 수 있다.
도 4a 내지 도 4c는 본 개시내용의 하나 이상의 기법들에 따른, 제스처-기반 입력에 대한 대체형 오류 정정을 수행하기 위해 사용되는 도 1에서 제시된 컴퓨팅 디바이스의 일 예를 더 상세히 나타낸 블록도들이다. 본 개시내용의 일부 예시적 기법들에서, 컴퓨팅 디바이스는 연속적인 제스처에서의 대체형 오류들을 검출할 수 있고, 단어 예측의 정확도를 향상시키기 위해 하나 이상의 대안적 가정형태들을 결정할 수 있다. 예를 들어, 사용자는 "cemetery"를 입력하려고 의도했을 수 있는데, 하지만 잘못하여 c-e-m-e-t-a-r-y를 제스처링을 했을 수 있다. 이러한 대체형 오류 예들에서, 후보 단어 내의 하나 이상의 글자들에 대해, 컴퓨팅 디바이스(10)는 가정형태들의 두 가지 유형을 고려할 수 있다. 첫 번째 가정형태는 (예를 들어, "cemet e ry"에 대해) 제스처가 정확한 글자를 걸쳐 지나갔다고 보는 것이다. 두 번째 가정형태는 (예를 들어, "cemet a ry"에 대해) 제스처가 다른 글자를 걸쳐서 지나갔다고 대신해서(예를 들어, "대체형태"로) 보는 것이다. 이러한 방식으로, 제스처링된 바와 같은 제 1 가정형태 c-e-m-t-a-r-y에 대한 제스처 정렬 점수는 낮을 수 있지만, "cemetery"에 대한 대안적 제 2 가정형태는 더 높을 수 있는데, 왜냐하면 "cemetery"는 언어 모델(28) 내에 있는 단어에 대응하기 때문이다. 일부 예들에서, 컴퓨팅 디바이스(10)에 의해 구현되는 이러한 대체형태 기법들은, 임의의 대체형태를 제공할 수 있거나 혹은 현재 언어에서 흔한 철자-오류들에 근거하여 대안적으로 특정 대체형태들을 제공할 수 있다(예를 들어, 영어에서 "e"는 유사한 발음의 글자들 "o" 혹은 "i"로 흔하게 대체될 수 있음, 하지만 "k"로 흔하게 대체되지는 않음). 이러한 대체형태 기법들이 이제 도 4a 내지 도 4c를 참조하여 더 설명된다.
도 4a 내지 도 4c는 본 개시내용의 하나 이상의 기법들에 따른, 도 1 내지 도 3에서 제시된 컴퓨팅 디바이스의 일 예를 더 상세히 나타낸 블록도들이다. 도 4a의 개념적 예에서 제시되는 바와 같이, 컴퓨팅 디바이스(10)는 GUI(100), 활성 빔(102), 및 다음 빔(104)을 포함할 수 있다. GUI(100)는 "B" 키(108A), "E" 키(108B), 및 "N" 키(108C)를 포함할 수 있는 그래픽 키보드(106)를 포함할 수 있다. 도 4a에서는 비록 보여지고 있지만, 110A 및 110B를 포함하는 제스처 경로(110) 그리고/또는 정렬 지점들(112A 내지 112C)은 본 명세서에서 설명되는 기법들을 수행하는 동안 보이지 않을 수 있다.
도 1의 예에서 제시되는 바와 같이, 사용자는 그래픽 키보드(106)에서 제스처를 수행함으로써 컴퓨팅 디바이스(10)에 단어 "benefit"를 입력하기를 원할 수 있다. 이전에 논의된 바와 같이, 사용자가 프레즌스-감지 입력 디바이스에서 제스처를 수행하는 동안, 컴퓨팅 디바이스(10)는 제스처 경로(110)를 갖는 제스처의 표시들을 점증적으로 수신할 수 있다. 도 4a의 예에서, 컴퓨팅 디바이스(10)는 제스처 경로(110A 및 110B)를 검출한 것으로서 제시된다.
제스처 경로(110A)를 검출함에 응답하여, 컴퓨팅 디바이스(10)는 제스처 경로(110A)를 따르는 정렬 지점들(112A 및 112B)을 결정할 수 있다. 제스처 경로(110A)를 검출함에 응답하여, 컴퓨팅 디바이스(10)는 하나 이상의 토큰들을 생성할 수 있고, 이러한 토큰들을 활성 빔(102)으로 푸시할 수 있다. 활성 빔(102)의 예시적 콘텐츠들의 일부분이 아래의 표 1에 의해 나타내어질 수 있다.
Figure pct00001
표 1에서, 각각의 행(row)은 개개의 토큰을 나타내고, "인덱스" 열(index column)은 각각의 토큰에 대한 고유 식별자를 나타내고, "페어런츠 인덱스" 열(parent index column)은 나열된 토큰이 해당 토큰에 대해 차일드(child)가 되는 그러한 해당 토큰의 인덱스 값을 나타내고, "현재 노드의 글자 키" 열(letter key of the current node column)은 토큰의 현재 노드가 나타내는 글자 키를 나타내고, "글자 체인" 열(letter chain column)은 엔트리 노드로부터 토큰의 현재 노드까지의 노드들이 나타내는 글자 키들을 모두 나타내고, 그리고 "정렬 점수" 열(alignment score column)은 토큰의 정렬 점수를 나타낸다. 표 1에서 제시되는 바와 같이, 그 생성된 토큰들은 i0 및 i1의 인덱스들을 갖는다(예를 들어, 이것은 토큰0 및 토큰1에 대응함).
제스처에 의해 표시되는 텍스트를 결정하기 위해, 컴퓨팅 디바이스(10)는 제스처 경로(110B)를 표시하는 제스처 입력의 추가적인 표시들에 응답하여 각각의 토큰의 카피를 그 차일드 노드들 상에 생성할 수 있다. 컴퓨팅 디바이스(10)는, 예를 들어, 인덱스 0을 갖는 토큰의 카피를 차일드 노드 "BE" (즉, 토큰0) 및 차일드 노드 "VE" (즉, 토큰1) 상에 생성할 수 있다. 각각의 생성된 토큰 카피에 대해, 컴퓨팅 디바이스(10)는 도 1 및 도 2에서 설명된 바와 같이 정렬 점수를 결정할 수 있다. 컴퓨팅 디바이스(10)는 각각의 토큰 카피를 다음 빔(104)으로 푸시할 수 있고, 그 예시적 콘텐츠들의 일부분이 아래의 표 2에 의해 나타내어질 수 있다.
Figure pct00002
표 2에서 제시되는 엔트리들은 표 1에서 제시된 엔트리와 형식(format)에 있어 유사하다. 표 2에서, 토큰3은 해당 값 AS0 + AS3을 갖고, 토큰1은 해당 값 AS1 + AS4를 갖는다. 컴퓨팅 디바이스(10)는 반복적으로 동작할 수 있거나 그렇지 않으면 임의의 문자를 각각의 토큰에 유사한 방식으로 더하는 것 그리고 업데이트된 토큰을 다음 빔(104)으로 추가하는 것을 행함으로써 활성 빔(102)으로부터의 각각의 토큰을 진척시킬 수 있다. 컴퓨팅 디바이스(10)는 후속적으로 활성 빔(102)이 비어있는지(즉, 프로세싱될 더 이상의 토큰들을 포함하고 있지 않은지) 여부를 결정할 수 있다. 활성 빔(102)이 비어 있다고 결정함에 응답하여, 컴퓨팅 디바이스(10)는 다음 빔(104)의 콘텐츠들을 도 4b의 활성 빔(102)으로 카피할 수 있고, 다음 빔(104)의 콘텐츠들을 폐기(discard)할 수 있다.
도 4b의 예에서, 컴퓨팅 디바이스(10)는 제스처 경로(110C)를 검출할 수 있다. 앞에서 설명된 바와 같이, 활성 빔(102)의 콘텐츠들은 표 2에 의해 나타내어질 수 있다. 컴퓨팅 디바이스(10)는 제스처 경로(110)를 따라 정렬 지점(112D)을 결정할 수 있다. 컴퓨팅 디바이스(10)는, 활성 빔(102) 내의 각각의 토큰에 대해, 각각의 차일드 노드 상에 임의의 카피를 생성할 수 있다. 도 4b의 예에서, 토큰6 및 토큰8 각각은 글자 키들 "I"를 갖는 차일드 노드들을 갖고, 토큰7은 글자 키 "U"를 갖는 차일드 노드를 갖는다. 각각의 생성된 토큰 카피에 대해, 컴퓨팅 디바이스(10)는 도 1 및 도 2에서 설명된 바와 같이 정렬 점수를 결정할 수 있다. 컴퓨팅 디바이스(10)는 각각의 토큰 카피를 다음 빔(104)으로 푸시할 수 있고, 그 예시적 콘텐츠들의 일부분이 아래의 표 3에 의해 나타내어질 수 있다.
Figure pct00003
표 3에서 제시되는 엔트리들은 표 1 및 표 2에서 제시된 엔트리들과 형식에 있어 유사하다. 표 3에서, 각각의 토큰에 대한 정렬 점수는 이전의 글자들에 대한 정렬 점수 및 현재 글자에 대한 정렬 점수를 포함한다. 컴퓨팅 디바이스(10)는 토큰들 중 만약 있다면 어떤 것이 터미널 노드들 상에 있는지를 결정할 수 있다(예를 들어, 루트 노드(root node)로부터 터미널 노드에 이르는 노드들의 경로는 언어 모델(28) 내의 단어를 나타내는 문자들의 문자열을 포함함). 일부 예들에서, 만약 토큰이 터미널 노드 상에 있다면, 컴퓨팅 디바이스(10)는 해당 단어를 선택할 수 있는바, 예를 들어, 디스플레이를 위해 그 단어를 출력하기 위해서 선택할 수 있다.
본 개시내용의 기법들에 따르면, 컴퓨팅 디바이스(10)는 단어 접두어와 관련된 정렬 점수가 임계치를 만족시키는데 실패했다고 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 정렬 점수가 임계치보다 작다고 결정할 수 있다. 하나의 예로서, 컴퓨팅 디바이스(10)는 VENI에 대한 정렬 점수, AS1 + AS4 + AS6이 임계치를 만족시키지 않는다고 결정할 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 각각의 단어 접두어들과 관련된 복수의 정렬 점수들이 임계치를 만족시키는데 실패했다고 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 VENI, BEMU, 및 BENI에 대한 정렬 점수들이 각각 임계치를 만족시키는데 실패했다고 결정할 수 있다.
정렬 점수가 임계치를 만족시키는데 실패했다고 결정함에 응답하여, 컴퓨팅 디바이스(10)는 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다. 예를 들어, 단어 접두어 "BENI"는 제 1 부분문자열 "BEN" 및 제 2 부분문자열 "I"를 포함할 수 있다. 즉, 각각의 부분문자열은 0개 혹은 이보다 많은 문자들을 포함할 수 있다. 본 예에서 제 2 부분문자열은 적어도 하나의 문자 "I"를 포함한다.
컴퓨팅 디바이스(10)는 단어 접두어 "BENI"의 제 2 부분문자열 "I"가 정정용 데이터(30) 내의 제 1 문자열과 정합된다고 결정할 수 있다. 제 1 문자열은 하나 이상의 문자들을 포함할 수 있다. 도 4b의 예에서, 컴퓨팅 디바이스(10)는 제 2 부분문자열 "I"가 정정용 데이터(30) 내의 제 1 문자열 "I"와 정합된다고 결정할 수 있다. 정정용 데이터(30)는 문자열들 간의 하나 이상의 관계들을 포함할 수 있다. 예를 들어, 정정용 데이터(30)는 정정용 데이터(30) 내의 제 1 문자열 "I"와 정정용 데이터(30) 내의 제 2 문자열 "E" 간의 관계를 표시하는 데이터를 포함할 수 있다. 정정용 데이터(30) 내의 제 2 문자열 "E"는 정정용 데이터(30) 내의 제 1 문자열 "I"에 대한 표음적 대체형태일 수 있다. 표음적 대체형태에 관해 설명되었지만, 문자열들 간의 임의의 다른 적절한 관계들이 대체형태들의 수행을 위해 정정용 데이터(30) 내에서 저장 및 검색될 수 있다.
컴퓨팅 디바이스(10)는, 정정용 데이터 내의 제 1 문자열 "I"에 적어도 부분적으로 근거하여, 대안적 단어 접두어에 포함될 적어도 하나의 대안적 문자를 포함하는 정정용 데이터 내의 제 2 문자열 "E"를 결정할 수 있다. 즉, 컴퓨팅 디바이스(10)는 단어 접두어 "BENI"의 제 1 부분문자열 "BEN"과 그리고 정정용 데이터(30) 내의 제 2 문자열 "E"로 구성된 대안적 단어 접두어 "BENE"를 발생시킬 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 대안적 단어 접두어 "BENE"를 형성하기 위해 "BEN"과 "E"를 연결(concatenate)시킬 수 있다. 컴퓨팅 디바이스(10)는 활성 빔(102) 내의 새로운 토큰에 "BENE"를 저장할 수 있다. 컴퓨팅 디바이스(10)는 또한, 새로운 토큰에 저장된 "BENE"에 대한 정렬 점수를 결정할 수 있다. 언어 모델(28) 내에서 모델링된 단어 "benefit"의 처음 네 개의 문자들과 "BENE"이 정합되기 때문에, "BENE"에 대한 정렬 점수는 "BENI"보다 더 높을 수 있다. 따라서, 사용자가 "benefit"의 틀린 철자에 대응하는 제스처 경로(110C)를 갖는 제스처를 수행했을지라도, 컴퓨팅 디바이스(10)는 단어 접두어 "BEN"의 일부분을 포함하는 "benefit"의 철자 오기에 근거하여 대안적 단어 접두어를 발생시킬 수 있다. 도 4c에서 더 예시되는 바와 같이, 사용자가 "benefit"의 나머지 일부분을 철자화하기 위해 제스처를 계속 수행함에 따라, 단어 접두어 "BENE"는 결과적으로 예를 들어, "BENI"보다 더 높은 정렬 점수들을 갖게 될 것이다. 활성 빔(102)의 예시적 콘텐츠들의 일부분이 아래의 표 4에서 예시된다.
Figure pct00004
도 4c의 예에서, 컴퓨팅 디바이스(10)는 제스처 경로(110D)를 검출한 것으로서 제시된다. 앞에서 설명된 바와 같이, 활성 빔(102)의 콘텐츠들은 표 4에 의해 나타내어질 수 있다. 컴퓨팅 디바이스(10)는 제스처 경로(110D)를 따라 정렬 지점(112E)을 결정할 수 있다. 컴퓨팅 디바이스(10)는, 활성 빔(102) 내의 각각의 토큰에 대해, 각각의 차일드 노드 상에 임의의 카피를 생성할 수 있다. 도 4c의 예에서, 토큰6 내지 토큰9 각각은 (예를 들어, 정렬 지점(112E)에 가까이 있는 그리고/또는 정렬 지점(112E)의 미리정의된 거리 내에 있는) 글자 키들 "F" 및 "G"를 갖는 차일드 노드들을 갖는다. 각각의 생성된 토큰 카피에 대해, 컴퓨팅 디바이스(10)는 도 1 및 도 2에서 설명된 바와 같이 정렬 점수를 결정할 수 있다. 컴퓨팅 디바이스(10)는 각각의 토큰 카피를 다음 빔(104)으로 푸시할 수 있고, 그 콘텐츠들이 아래의 표 5에 의해 나타내어질 수 있다.
Figure pct00005
표 6에서 제시되는 엔트리들은 표 1 내지 표 5에서 제시된 엔트리들과 형식에 있어 유사하다. 표 6에서, 각각의 토큰에 대한 정렬 점수는 이전의 글자들에 대한 정렬 점수 및 현재 글자에 대한 정렬 점수를 포함한다. 가장 큰 정렬 점수를 갖는 토큰으로부터 가장 작은 정렬 점수까지 순위가 정해진 순서대로 분류될 수 있는, 표 6의 예에서 알 수 있는 바와 같이, 대안적 단어 접두어 "BENEF"를 포함하는 토큰10은 가장 큰 정렬 점수 AS0 + AS3 + AS9 + AS10과 관련될 수 있다. 즉, 정렬 점수 AS0 + AS3 + AS9 + AS10은 표 6에서 가장 큰 정렬 점수일 수 있다. 언어 모델(28) 내에서의 단어 "benefit"의 처음 다섯 개의 문자들과 "BENEF"가 정합되기 때문에, 컴퓨팅 디바이스(10)는 언어 모델(28) 내에서 "e"에 대해 터미널 노드를 포함하는 추가적인 노드들에 대한 룩 어헤드를 행할 수 있고, 이것은 집합적으로 후보 단어 "benefit"를 표시한다. 일부 예들에서, 컴퓨팅 디바이스(10)는, 아래에서 더 설명되는 바와 같이, 단어 접두어 "BENEF"가 활성 빔(104) 내의 가장 큰 정렬 점수와 관련되는 것에 근거하여 디스플레이를 위해 "benefit"를 출력할 수 있다. 컴퓨팅 디바이스(10)가 제스처의 후속 표시들을 수신함에 따라 컴퓨팅 디바이스(10)는 하나 이상의 토큰들을 점증적으로 계속 결정할 수 있고, 그럼으로써 사용자는 단어 혹은 어구의 키들의 그룹을 선택하기 위한 단일 제스처를 제공할 수 있게 된다.
도 4c의 예에서, 컴퓨팅 디바이스(10)는 사용자가 제스처의 수행을 완료했는지 여부를 결정할 수 있다. 사용자가 제스처의 수행을 완료했다고 결정함에 응답하여, 컴퓨팅 디바이스(10)는 후보 단어들의 목록을 출력할 수 있다. 후보 단어들은 하나 이상의 토큰들에 적어도 부분적으로 근거하고 있을 수 있다. 일부 예들에서, 후보 단어들은 언어 모델(28) 내에서 모델링될 수 있고, 문자 언어의 단어들을 포함하는 하나 이상의 사전들의 콘텐츠들에 근거하고 있을 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 가장 높은 정렬 점수들을 갖는 후보 단어들(즉, 가장 높은 확률을 갖는 예측들)의 목록의 부분집합을 결정할 수 있다. 추가적으로, 일부 예들의 경우, 컴퓨팅 디바이스(10)는, 각각의 후속 정렬 지점에서, 도 4a 내지 도 4c의 예들에서 설명된 바와 같이 활성 빔(102) 내에 포함된 토큰들의 정렬 점수들을 수정(revise)할 수 있다.
도 5a 내지 도 5c는 본 개시내용의 하나 이상의 기법들에 따른, 제스처-기반 입력에 대한 삭제형 오류 정정을 수행하기 위해 사용되는 도 1에서 제시된 컴퓨팅 디바이스의 일 예를 더 상세히 나타낸 블록도들이다. 본 개시내용의 일부 예시적 기법들에서, 컴퓨팅 디바이스는 연속적인 제스처에서의 삭제형 오류들을 검출할 수 있고, 단어 예측의 정확도를 향상시키기 위해 하나 이상의 대안적 가정형태들을 결정할 수 있다. 예를 들어, 사용자는 "Fahrenheit"를 입력하려고 의도했을 수 있는데, 하지만 잘못하여 f-a-r-e-n을 제스처링했을 수 있다. 후보 단어 내의 각각의 글자에 대해, 본 개시내용의 기법들은 또한, 사용자가 뜻하지 않게 하나 이상의 글자들이 제스처로부터 벗어나게 했을 경우에 대한 임의의 가정형태를 고려할 수 있다. 예를 들어, 사용자는 제스처에서 글자 "h"에 대응하는 키를 의도치 않게 빠뜨렸을 수 있다. 이러한 예들에서, 본 개시내용의 기법들은 현재의 글자를 스킵(skip)할 수 있고. 제스처를 단어 내의 다음 글자에 계속 정합시킬 수 있다. "Farenheit" 철자 오기 예에 있어서, 본 기법들은 처음 두 개의 글자들 "F"-"a"를 유효한 단어(valid word) "Fahrenheit"에 맞게 정렬시킬 수 있다. 그러나, 만약 "h"가 제스처 내에서 다음 글자 아니라면(예를 들어, 낮은 정렬 점수를 갖는다면), 본 개시내용의 기법들은 또한, "h"가 빠졌을 경우에 대한 임의의 대안적 가정형태를 고려할 수 있고, 다음 글자 "r"로 스킵할 수 있다. 이러한 경우에, 제스처가 걸쳐 지나간 이전의 글자는 "a"이고, 따라서 본 기법은 제스처 경로가 (본래의 "h"로부터 "r"로 대신에) "a"로부터 "r"로 진행한다고 결정할 수 있다. 이러한 삭제형 오류 기법들이 이제 도 5a 내지 도 5c를 참조하여 더 설명된다.
도 5a 내지 도 5c는 본 개시내용의 하나 이상의 기법들에 따른, 도 1 내지 도 3에서 제시된 컴퓨팅 디바이스의 일 예를 더 상세히 나타낸 블록도들이다. 도 4a의 개념적 예에서 제시되는 바와 같이, 컴퓨팅 디바이스(10)는 GUI(124), 활성 빔(120), 및 다음 빔(122)을 포함할 수 있다. GUI(124)는 "A" 키(128A), "Q" 키(128B), 및 "U" 키(128C)를 포함할 수 있는 그래픽 키보드(126)를 포함할 수 있다. 도 5a에서는 비록 보여지고 있지만, 132A를 포함하는 제스처 경로(132) 그리고/또는 정렬 지점(130A)은 본 명세서에서 설명되는 기법들을 수행하는 동안 보이지 않을 수 있다.
도 1의 예에서 제시되는 바와 같이, 사용자는 그래픽 키보드(126)에서 제스처를 수행함으로써 컴퓨팅 디바이스(10)에 단어 "acquire"을 입력하기를 원할 수 있다. 이전에 논의된 바와 같이, 사용자가 프레즌스-감지 입력 디바이스에서 제스처를 수행하는 동안, 컴퓨팅 디바이스(10)는 제스처 경로(132A)를 갖는 제스처의 표시들을 점증적으로 수신할 수 있다. 도 5a의 예에서, 컴퓨팅 디바이스(10)는 제스처 경로(132A)를 검출한 것으로서 제시된다.
제스처 경로(132A)를 검출함에 응답하여, 컴퓨팅 디바이스(10)는 제스처 경로(132A)를 따르는 정렬 지점(130A)을 결정할 수 있다. 컴퓨팅 디바이스(10)는 하나 이상의 토큰들을 생성할 수 있고, 이러한 토큰들을 활성 빔(120)으로 푸시할 수 있다. 제스처 입력의 표시들에 응답하여, 하나 이상의 토큰들을 생성하고 이러한 토큰들을 활성 빔(120)으로 푸시하기 전에, 활성 빔(120)의 초기 콘텐츠들이 아래의 표 1에 의해 나타내어질 수 있다.
Figure pct00006
표 1에서, 각각의 행은 개개의 토큰을 나타내고, "인덱스" 열은 각각의 토큰에 대한 고유 식별자를 나타내고, "페어런츠 인덱스" 열은 나열된 토큰이 해당 토큰에 대해 차일드가 되는 그러한 해당 토큰의 인덱스 값을 나타내고, "현재 노드의 글자 키" 열은 토큰의 현재 노드가 나타내는 글자 키를 나타내고, "글자 체인" 열은 엔트리 노드로부터 토큰의 현재 노드까지의 노드들이 나타내는 글자 키들을 모두 나타내고, 그리고 "정렬 점수" 열은 토큰의 정렬 점수를 나타낸다. 표 1에서 제시되는 바와 같이, 그 생성된 토큰은 i0의 인덱스를 갖는다(예를 들어, 이것은 빈 토큰0에 대응함).
제스처에 의해 표시되는 텍스트를 결정하기 위해, 컴퓨팅 디바이스(10)는 제스처 경로(132A)를 포함하는 제스처 입력의 추가적인 표시들에 응답하여 각각의 토큰의 카피를 그 차일드 노드들 상에 생성할 수 있다. 초기에, 표 1은 i0의 인덱스를 갖는 빈 토큰(미도시)을 포함할 수 있다. 컴퓨팅 디바이스(10)는, 인덱스 i0을 갖는 토큰의 카피를 차일드 노드 "A" (즉, 토큰0) 및 차일드 노드 "S" (즉, 토큰1) 상에 생성할 수 있다. 각각의 생성된 토큰 카피에 대해, 컴퓨팅 디바이스(10)는 도 1 및 도 2에서 설명된 바와 같이 정렬 점수를 결정할 수 있다. 컴퓨팅 디바이스(10)는 각각의 토큰 카피를 다음 빔(122)으로 푸시할 수 있고, 그 예시적 콘텐츠들의 일부분이 아래의 표 2에 의해 나타내어질 수 있다.
Figure pct00007
표 2에서 제시되는 엔트리들은 표 1에서 제시된 엔트리와 형식에 있어 유사하다. 표 2에서, 토큰1은 해당 값 AS0을 갖고, 토큰2는 해당 값 AS1을 갖는다. 따라서, 표 2에 의해 예시되는 바와 같이, 컴퓨팅 디바이스(10)는 반복적으로 동작할 수 있거나 그렇지 않으면 임의의 문자(예를 들어, "A" 또는 "Q")를 각각의 토큰(예를 들어, 빈 토큰0)에 유사한 방식으로 더하는 것 그리고 업데이트된 토큰을 다음 빔(122)으로 추가하는 것을 행함으로써 활성 빔(120)으로부터의 각각의 토큰을 진척시킬 수 있다. 컴퓨팅 디바이스(10)는 후속적으로 활성 빔(120)이 비어있는지(즉, 프로세싱될 더 이상의 토큰들을 포함하고 있지 않은지) 여부를 결정할 수 있다. 활성 빔(120)이 비어 있다고 결정함에 응답하여, 컴퓨팅 디바이스(10)는 다음 빔(122)의 콘텐츠들을 도 5b의 활성 빔(120)으로 카피할 수 있고, 다음 빔(120)의 콘텐츠들을 폐기할 수 있다.
도 5b의 예에서, 컴퓨팅 디바이스(10)는 제스처 경로(132)를 따라 정렬 지점(130B)을 결정할 수 있다. 컴퓨팅 디바이스(10)는, 활성 빔(120) 내의 각각의 토큰에 대해, 각각의 차일드 노드 상에 임의의 카피를 생성할 수 있다. 도 5b의 예에서, 토큰3 및 토큰4 각각은 글자 키들 "Q"를 갖는 차일드 노드들을 갖는다. 각각의 생성된 토큰 카피에 대해, 컴퓨팅 디바이스(10)는 도 1 및 도 2에서 설명된 바와 같이 정렬 점수를 결정할 수 있다. 컴퓨팅 디바이스(10)는 각각의 토큰 카피를 다음 빔(122)으로 푸시할 수 있고, 그 예시적 콘텐츠들의 일부분이 아래의 표 3에 의해 나타내어질 수 있다.
Figure pct00008
표 3에서 제시되는 엔트리들은 표 1 및 표 2에서 제시된 엔트리들과 형식에 있어 유사하다. 표 3에서, 각각의 토큰에 대한 정렬 점수는 이전의 글자들에 대한 정렬 점수 및 현재 글자에 대한 정렬 점수를 포함한다. 컴퓨팅 디바이스(10)는 토큰들 중 만약 있다면 어떤 것이 터미널 노드들 상에 있는지를 결정할 수 있다(예를 들어, 루트 노드로부터 터미널 노드에 이르는 노드들의 경로는 언어 모델(28) 내의 단어를 나타내는 문자들의 문자열을 포함함). 일부 예들에서, 만약 토큰이 터미널 노드 상에 있다면, 컴퓨팅 디바이스(10)는 해당 단어를 선택할 수 있는바, 예를 들어, 디스플레이를 위해 그 단어를 출력하기 위해서 선택할 수 있다.
본 개시내용의 기법들에 따르면, 컴퓨팅 디바이스(10)는 단어 접두어와 관련된 정렬 점수가 임계치를 만족시키는데 실패했다고 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 정렬 점수가 임계치보다 작다고 결정할 수 있다. 하나의 예로서, 컴퓨팅 디바이스(10)는 "AQ"에 대한 정렬 점수, AS0 + AS2가 임계치를 만족시키지 않는다고 결정할 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 각각의 단어 접두어들과 관련된 복수의 정렬 점수들이 임계치를 만족시키는데 실패했다고 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 AQ 및 SQ에 대한 정렬 점수들이 각각 임계치를 만족시키는데 실패했다고 결정할 수 있다.
정렬 점수가 임계치를 만족시키는데 실패했다고 결정함에 응답하여, 컴퓨팅 디바이스(10)는 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다. 예를 들어, 단어 접두어 "AQ"는 제 1 부분문자열 "AQ" 및 제 2 부분문자열 ""를 포함할 수 있다. 즉, 각각의 부분문자열은 0개 혹은 이보다 많은 문자들을 포함할 수 있다. 본 예에서 제 2 부분문자열은 비어 있다.
컴퓨팅 디바이스(10)는 단어 접두어 "AQ"의 제 1 부분문자열 "AQ"가 정정용 데이터(30) 내의 제 1 문자열과 정합된다고 결정할 수 있다. 제 1 문자열은 하나 이상의 문자들을 포함할 수 있다. 도 4b의 예에서, 컴퓨팅 디바이스(10)는 제 1 부분문자열 "QC"가 정정용 데이터(30) 내의 제 1 문자열 "AQ"와 정합된다고 결정할 수 있다. 정정용 데이터(30)는 문자열들 간의 하나 이상의 관계들을 포함할 수 있다. 예를 들어, 정정용 데이터(30)는 정정용 데이터(30) 내의 제 1 문자열 "AQ"와 정정용 데이터(30) 내의 제 2 문자열 "C" 간의 관계를 표시하는 데이터를 포함할 수 있다. 일부 예들에서, 제 2 문자열은 임의의 문자를 나타낼 수 있는 와일드카드 문자(wildcard character) "*"일 수 있다. 즉, 대안적 문자는 문자 집합(character set) 내의 각각의 가능한 문자를 나타내는 와일드카드 문자를 포함할 수 있다. 예를 들어, 와일드카드 문자 "*"는 영어 알파벳 문자 집합 내의 임의의 문자 {a...z}를 나타낼 수 있다.
컴퓨팅 디바이스(10)는, 정정용 데이터 내의 제 1 문자열 "AQ"에 적어도 부분적으로 근거하여, 대안적 단어 접두어에 포함될 적어도 하나의 대안적 문자를 포함하는 정정용 데이터 내의 제 2 문자열 "*"를 결정할 수 있다. 즉, 컴퓨팅 디바이스(10)는 단어 접두어 "AQ"의 제 1 부분문자열 "AQ"와 그리고 정정용 데이터(30) 내의 제 2 문자열 "C"로 구성된 대안적 단어 접두어 "ACQ"를 발생시킬 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 대안적 단어 접두어 "ACQ"를 형성하기 위해 "AQ"와 "C"를 스플라이스(splice) 및/또는 연결(concatenate)시킬 수 있다. 정정용 데이터(30)는 문자 위치를 표시하는 데이터를 그 위치에서 단어 접두어 "AC"와 제 2 문자열 "C"를 스플라이스 및/또는 연결시키기 위해 포함할 수 있다. 컴퓨팅 디바이스(10)는 활성 빔(120) 내의 새로운 토큰에 "ACQ"를 저장할 수 있다. 컴퓨팅 디바이스(10)는 또한, 새로운 토큰에 저장된 "ACQ"에 대한 정렬 점수를 결정할 수 있다. 언어 모델(28) 내에서 모델링된 단어 "acquire"의 처음 세 개의 문자들과 "ACQ"가 정합되기 때문에, "ACQ"에 대한 정렬 점수는 "AQ"보다 더 높을 수 있다. 따라서, 사용자가 "acquire"의 틀린 철자에 대응하는 제스처 경로(132A)를 갖는 제스처를 수행했을지라도, 컴퓨팅 디바이스(10)는 단어 접두어 "ACQ"의 일부분을 포함하는 "acquire"의 철자 오기에 근거하여 대안적 단어 접두어를 발생시킬 수 있다. 도 5c에서 더 예시되는 바와 같이, 사용자가 "acquire"의 나머지 일부분을 철자화하기 위해 제스처를 계속 수행함에 따라, 단어 접두어 "ACQ"는 결과적으로 예를 들어, "AQ"보다 더 높은 정렬 점수들을 갖게 될 것이다. 활성 빔(102)의 예시적 콘텐츠들의 일부분이 아래의 표 4에서 예시된다.
Figure pct00009
도 5c의 예에서, 컴퓨팅 디바이스(10)는 제스처 경로(132B)를 검출한 것으로서 제시된다. 앞에서 설명된 바와 같이, 활성 빔(120)의 콘텐츠들은 표 4에 의해 나타내어질 수 있다. 컴퓨팅 디바이스(10)는 제스처 경로(132B)를 따라 정렬 지점(130C)을 결정할 수 있다. 컴퓨팅 디바이스(10)는, 활성 빔(120) 내의 각각의 토큰에 대해, 각각의 차일드 노드 상에 임의의 카피를 생성할 수 있다. 도 5c의 예에서, 토큰5 내지 토큰10 각각은 (예를 들어, 정렬 지점(130C)에 가까이 있는 그리고/또는 정렬 지점(130C)의 미리정의된 거리 내에 있는) 글자 키들 "U" 및 "I"를 갖는 차일드 노드들을 갖는다. 각각의 생성된 토큰 카피에 대해, 컴퓨팅 디바이스(10)는 도 1 및 도 2에서 설명된 바와 같이 그리고 표 4에서 예시되는 바와 같이 정렬 점수를 결정할 수 있다.
표 4에서 제시되는 엔트리들은 표 1 내지 표 3에서 제시된 엔트리들과 형식에 있어 유사하다. 표 4에서, 각각의 토큰에 대한 정렬 점수는 이전의 글자들에 대한 정렬 점수 및 현재 글자에 대한 정렬 점수를 포함한다. 가장 큰 정렬 점수를 갖는 토큰으로부터 가장 작은 정렬 점수까지 순위가 정해진 순서대로 분류될 수 있는, 표 4의 예에서 알 수 있는 바와 같이, 대안적 단어 접두어 "ACQU"를 포함하는 토큰5는 가장 큰 정렬 점수 AS0 + AS2 + AS4와 관련될 수 있다. 즉, 정렬 점수 AS0 + AS2 + AS4는 표 4에서 가장 큰 정렬 점수일 수 있다. 언어 모델(28) 내에서 "acquire"의 처음 네 개의 문자들과 "ACQU"가 정합되기 때문에, 컴퓨팅 디바이스(10)는 언어 모델(28) 내에서 "e"에 대해 터미널 노드를 포함하는 추가적인 노드들에 대한 "룩 어헤드"를 행할 수 있고, 이것은 집합적으로 후보 단어 "acquire"를 표시한다. 일부 예들에서, 컴퓨팅 디바이스(10)는, 아래에서 더 설명되는 바와 같이, 단어 접두어 "ACQU"가 활성 빔(120) 내의 가장 큰 정렬 점수와 관련되는 것에 근거하여 디스플레이를 위해 "acquire"를 출력할 수 있다. 컴퓨팅 디바이스(10)가 제스처의 후속 표시들을 수신함에 따라 컴퓨팅 디바이스(10)는 하나 이상의 토큰들을 점증적으로 계속 결정할 수 있고, 그럼으로써 사용자는 단어 혹은 어구의 키들의 그룹을 선택하기 위한 단일 제스처를 제공할 수 있게 된다.
도 5c의 예에서, 컴퓨팅 디바이스(10)는 사용자가 제스처의 수행을 완료했는지 여부를 결정할 수 있다. 사용자가 제스처의 수행을 완료했다고 결정함에 응답하여, 컴퓨팅 디바이스(10)는 후보 단어들의 목록을 출력할 수 있다. 후보 단어들은 하나 이상의 토큰들에 적어도 부분적으로 근거하고 있을 수 있다. 일부 예들에서, 후보 단어들은 언어 모델(28) 내에서 모델링될 수 있고, 문자 언어의 단어들을 포함하는 하나 이상의 사전들의 콘텐츠들에 근거하고 있을 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 가장 높은 정렬 점수들을 갖는 후보 단어들(즉, 가장 높은 확률을 갖는 예측들)의 목록의 부분집합을 결정할 수 있다. 추가적으로, 일부 예들의 경우, 컴퓨팅 디바이스(10)는, 각각의 후속 정렬 지점에서, 도 5a 내지 도 5c의 예들에서 설명된 바와 같이 활성 빔(120) 내에 포함된 토큰들의 정렬 점수들을 수정할 수 있다.
도 6a 내지 도 6c는 본 개시내용의 하나 이상의 기법들에 따른, 제스처-기반 입력에 대한 삽입형 오류 정정을 수행하기 위해 사용되는 도 1에서 제시된 컴퓨팅 디바이스의 일 예를 더 상세히 나타낸 블록도들이다. 본 개시내용의 일부 예시적 기법들에서, 컴퓨팅 디바이스는 연속적인 제스처에서의 삽입형 오류들을 검출할 수 있고, 단어 예측의 정확도를 향상시키기 위해 하나 이상의 대안적 가정형태들을 결정할 수 있다. 예를 들어, 사용자는 "bicep"를 입력하려고 의도했을 수 있는데, 하지만 잘못하여 b-i-s-c-e-p을 제스처링했을 수 있다. 이러한 대체형 오류 예들에서, 후보 단어 내의 하나 이상의 문자들에 대해, 본 개시내용의 기법들은 하나 이상의 문자들(예를 들어, "bicep"에서의 "s")이 뜻하지 않게 삽입되었고 이에 따라 후보 단어의 일부가 아닌 경우에 대한 임의의 가정형태를 고려할 수 있다. 본 개시내용의 기법들은 제스처가 다음 의도한 글자(예를 들어, "c")로 돌아가기 전에 다른 임의의 글자들(예를 들어, "s")로 진행할 수 있는 경우에 대한 대안적 가정형태를 생성할 수 있다. 또 하나의 다른 예로서, "truly"를 잘못 철자화한 철자 오기에 대해, 사용자 제스처가 "t"-"r"-"u"로부터 다음 글자 "l"로 바로 가도록 요구하는 것이 아니라, 본 개시내용의 기법들은 제스처가 해당 경로에서 또 하나의 다른 임의의 글자(*)를 거쳐 "l"로 갈 수 있는 경우("t"-"r"-"u"-*-"l")에 대한 대안적 삽입형 가정형태를 발생시킬 수 있다. 이러한 삽입형 오류 기법들이 이제 도 6a 내지 도 6c를 참조하여 더 설명된다.
도 6a 내지 도 6c는 본 개시내용의 하나 이상의 기법들에 따른, 도 1 내지 도 3에서 제시된 컴퓨팅 디바이스의 일 예를 더 상세히 나타낸 블록도들이다. 도 6a의 개념적 예에서 제시되는 바와 같이, 컴퓨팅 디바이스(10)는 GUI(144), 활성 빔(140), 및 다음 빔(142)을 포함할 수 있다. GUI(100)는 "B" 키(148A), "I" 키(148B), 및 "S" 키(148C)를 포함할 수 있는 그래픽 키보드(146)를 포함할 수 있다. 도 6a에서는 비록 보여지고 있지만, 제스처 경로 일부분들(150A 및 150B)을 포함하는 제스처 경로(150) 그리고/또는 정렬 지점들(152A 내지 152C)은 본 명세서에서 설명되는 기법들을 수행하는 동안 보이지 않을 수 있다.
도 6a의 예에서, 사용자는 그래픽 키보드(146)에서 제스처를 수행함으로써 컴퓨팅 디바이스(10)에 단어 "bicep"을 입력하기를 원할 수 있다. 이전에 논의된 바와 같이, 사용자가 프레즌스-감지 입력 디바이스에서 제스처를 수행하는 동안, 컴퓨팅 디바이스(10)는 제스처 경로(152)를 갖는 제스처의 표시들을 점증적으로 수신할 수 있다. 도 6a의 예에서, 컴퓨팅 디바이스(10)는 제스처 경로(150A 내지 150C)를 검출한 것으로서 제시된다.
제스처 경로(150A 및 150B)를 검출함에 응답하여, 컴퓨팅 디바이스(10)는 제스처 경로(150A 및 150B)를 따르는 정렬 지점들(152A 내지 152C)을 결정할 수 있다. 제스처 경로(150A 및 150B)를 검출함에 응답하여, 컴퓨팅 디바이스(10)는 하나 이상의 토큰들을 생성할 수 있고, 이러한 토큰들을 활성 빔(140)으로 푸시할 수 있다. 활성 빔(140)의 예시적 콘텐츠들의 일부분이 아래의 표 1에 의해 나타내어질 수 있다.
Figure pct00010
표 1에서, 각각의 행은 개개의 토큰을 나타내고, "인덱스" 열은 각각의 토큰에 대한 고유 식별자를 나타내고, "페어런츠 인덱스" 열은 나열된 토큰이 해당 토큰에 대해 차일드가 되는 그러한 해당 토큰의 인덱스 값을 나타내고, "현재 노드의 글자 키" 열은 토큰의 현재 노드가 나타내는 글자 키를 나타내고, "글자 체인" 열은 엔트리 노드로부터 토큰의 현재 노드까지의 노드들이 나타내는 글자 키들을 모두 나타내고, 그리고 "정렬 점수" 열은 토큰의 정렬 점수를 나타낸다. 표 1에서 제시되는 바와 같이, 그 생성된 토큰들은 i0 및 i1의 인덱스들을 갖는다(예를 들어, 이것은 토큰0 및 토큰1에 대응함).
제스처에 의해 표시되는 텍스트를 결정하기 위해, 컴퓨팅 디바이스(10)는 제스처 경로(150B)를 표시하는 제스처 입력의 추가적인 표시들에 응답하여 각각의 토큰의 카피를 그 차일드 노드들 상에 생성할 수 있다. 컴퓨팅 디바이스(10)는, 예를 들어, 인덱스 0을 갖는 토큰의 카피를 차일드 노드 "BI" (즉, 토큰0) 및 차일드 노드 "BU" (즉, 토큰1) 상에 생성할 수 있다. 각각의 생성된 토큰 카피에 대해, 컴퓨팅 디바이스(10)는 도 1 및 도 2에서 설명된 바와 같이 정렬 점수를 결정할 수 있다. 컴퓨팅 디바이스(10)는 각각의 토큰 카피를 다음 빔(142)으로 푸시할 수 있고, 그 예시적 콘텐츠들의 일부분이 아래의 표 2에 의해 나타내어질 수 있다.
Figure pct00011
표 2에서 제시되는 엔트리들은 표 1에서 제시된 엔트리와 형식에 있어 유사하다. 표 2에서, 토큰3은 해당 값 AS0 + AS3을 갖고, 토큰4는 해당 값 AS1 + AS4를 갖고, 그리고 토큰5는 해당 값 AS0 + AS5를 갖는다. 컴퓨팅 디바이스(10)는 반복적으로 동작할 수 있거나 그렇지 않으면 임의의 문자를 각각의 토큰에 유사한 방식으로 더하는 것 그리고 업데이트된 토큰을 다음 빔(142)으로 추가하는 것을 행함으로써 활성 빔(140)으로부터의 각각의 토큰을 진척시킬 수 있다. 컴퓨팅 디바이스(10)는 후속적으로 활성 빔(140)이 비어있는지(즉, 프로세싱될 더 이상의 토큰들을 포함하고 있지 않은지) 여부를 결정할 수 있다. 활성 빔(140)이 비어 있다고 결정함에 응답하여, 컴퓨팅 디바이스(10)는 다음 빔(142)의 콘텐츠들을 도 6b의 활성 빔(140)으로 카피할 수 있고, 다음 빔(142)의 콘텐츠들을 폐기할 수 있다.
본 개시내용의 기법들에 따르면, 컴퓨팅 디바이스(10)는 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다. 예를 들어, 표 2에서 예시되는 바와 같이, 컴퓨팅 디바이스(10)는 적어도 단어 접두어 "BIS"의 부분문자열을 포함하는 대안적 단어 접두어를 발생시킬 수 있다. 하나의 예로서, 대안적 단어 접두어는 단어 접두어 "BIS"로부터 부분문자열 "BI"를 포함할 수 있다. 컴퓨팅 디바이스(10)는 대안적 단어 접두어 "BI~"를 발생시키기 위해 부분문자열 "BI" 내에 플레이스홀더 값(placeholder value)을 삽입할 수 있다. 표 2에서 예시되는 바와 같이, 플레이스홀더 값은 대안적 단어 접두어 내에서 "~"에 의해 표시된다. 플레이스홀더 값은, 대안적 단어 접두어에 근거하고 있는 하나 이상의 후보 단어들 내에는 포함되지 않지만 제스처가 걸쳐 지나갈 수 있는 적어도 하나의 임의의 문자(arbitrary character)를 컴퓨팅 디바이스(10)에게 표시하는 데이터일 수 있다. 달리 말하면, 플레이스홀더 값 "~"은, 제스처의 표시가 사용자가 "BIS"에 대한 제스처링을 했다고 표시할지라도 "BI"에 근거하고 있는 후보 단어들을 언어 모델(28) 내에서 결정하도록 컴퓨팅 디바이스(10)에게 표시할 수 있다. 도 6B 및 도 6C에서 더 제시되는 바와 같이, 제스처가 키들 c-e을 걸쳐 지나감에 따라, 컴퓨팅 디바이스(10)는 "BI~CE"에 대응하는 접두어 "bice"에 근거하여 후보 단어들(예를 들어, "bicep")을 결정할 수 있는바, 이것은 예를 들어, "biscep"보다 사용자가 의도한 단어를 더 정확하게 나타낼 수 있다. 이러한 방식으로, 플레이스홀더 값 "~"을 포함하는 대안적 가정형태는 제스처가 제스처 bi~ cep에서의 "c"로 가는 중에 임의의 글자 "s'를 걸쳐 지나갈 수 있게 한다.
대안적 예에서, 컴퓨팅 디바이스(10)는 하나 이상의 제스처들에 응답하여 어휘 목록 트리 내에서 대안적 단어 접두어를 진척시키는 것을 억제(refraining)함으로써 삽입형 오류 정정을 구현할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 적어도 기존의 단어 접두어의 부분문자열을 포함하는 대안적 단어 접두어를 발생시킬 수 있다. 도 6의 예에서, 컴퓨팅 디바이스(10)는 토큰0으로부터 선택된 단어 접두어 "BI"의 카피를 생성할 수 있다. 컴퓨팅 디바이스(10)는 이러한 카피를 대안적 단어 접두어로서 새로운 토큰에 저장할 수 있다. 제 2 제스처(예를 들어, 제스처 경로(150B))를 수신함에 응답하여, 컴퓨팅 디바이스(10)는 대안적 단어 접두어 내에 하나 이상의 문자들을 삽입하는 것을 억제할 수 있다. 즉, 컴퓨팅 디바이스(10)는 어휘 목록 트리 내에서 "BI"를 포함하는 토큰을 진척시키지 않을 수 있다. 이러한 방식으로, 제스처 경로(150B)에 응답하여 "S"와 같은 어떠한 추가적인 글자도 대안적 단어 접두어 "BI"에 덧붙여지지 않을 것이다. "BI"의 끝에서 "S"를 삽입하는 것을 억제함으로써, 컴퓨팅 디바이스(10)는 제스처가 "c"로 가는 중에 (사용자 오류일 수 있는) 임의의 글자 "S"를 걸쳐 지나갈 수 있게 한다. 컴퓨팅 디바이스(10)는, 제스처 경로(150B)에 후속하는 제 3 제스처(예를 들어, 150C)의 표시를 수신함에 응답하여, 대안적 단어 접두어 내에 "c"와 같은 적어도 하나의 문자를 삽입할 수 있고, 그 다음에 대안적 단어 접두어는 "bic"를 포함하게 된다. 달리 말하면, 컴퓨팅 디바이스(10) 제스처의 일부분에 대해 대안적 단어 접두어를 진척시키는 것을 스킵할 수 있고, 그 다음에 컴퓨팅 디바이스(10)가 추가적인 제스처 경로들(예를 들어, 연속적인 제스처 경로의 일부분들)을 결정함에 따라 추가적인 문자들을 (예를 들어, 단어 접두어의 끝에) 삽입함으로써 대안적 단어 접두어를 계속 진척시킬 수 있다.
도 6b의 예에서, 컴퓨팅 디바이스(10)는 제스처 경로(150C)를 검출할 수 있다. 앞에서 설명된 바와 같이, 활성 빔(140)의 콘텐츠들은 표 2에 의해 나타내어질 수 있다. 컴퓨팅 디바이스(10)는 제스처 경로(150C)를 따라 정렬 지점(152D)을 결정할 수 있다. 컴퓨팅 디바이스(10)는, 활성 빔(140) 내의 각각의 토큰에 대해, 각각의 차일드 노드 상에 임의의 카피를 생성할 수 있다. 표 3에서 제시되는 도 6b의 예에서, 토큰6 내지 토큰8 각각은 글자 키들 "C"를 갖는 차일드 노드들을 갖는다. 각각의 생성된 토큰 카피에 대해, 컴퓨팅 디바이스(10)는 도 1 및 도 2에서 설명된 바와 같이 정렬 점수를 결정할 수 있다. 컴퓨팅 디바이스(10)는 각각의 토큰 카피를 다음 빔(142)으로 푸시할 수 있고, 그 예시적 콘텐츠들의 일부분이 아래의 표 3에 의해 나타내어질 수 있다.
Figure pct00012
표 3에서 제시되는 엔트리들은 표 1 및 표 2에서 제시된 엔트리들과 형식에 있어 유사하다. 표 3에서, 각각의 토큰에 대한 정렬 점수는 이전의 글자들에 대한 정렬 점수 및 현재 글자에 대한 정렬 점수를 포함한다. 컴퓨팅 디바이스(10)는 토큰 중 만약 있다면 어떤 것이 터미널 노드들 상에 있는지를 결정할 수 있다(예를 들어, 루트 노드로부터 터미널 노드에 이르는 노드들의 경로는 언어 모델(28) 내의 단어를 나타내는 문자들의 문자열을 포함함). 일부 예들에서, 만약 토큰이 터미널 노드 상에 있다면, 컴퓨팅 디바이스(10)는 해당 단어를 선택할 수 있는바, 예를 들어, 디스플레이를 위해 그 단어를 출력하기 위해서 선택할 수 있다.
도 4c의 예에서, 컴퓨팅 디바이스(10)는 제스처 경로(150D)를 검출한 것으로서 제시된다. 앞에서 설명된 바와 같이, 활성 빔(140)의 콘텐츠들은 표 3에 의해 나타내어질 수 있다. 컴퓨팅 디바이스(10)는 제스처 경로(150D)를 따라 정렬 지점(152E)을 결정할 수 있다. 컴퓨팅 디바이스(10)는, 활성 빔(140) 내의 각각의 토큰에 대해, 각각의 차일드 노드 상에 임의의 카피를 생성할 수 있다. 도 6c의 예에서, 토큰7 내지 토큰10 각각은 (예를 들어, 정렬 지점(152D)에 가까이 있는 그리고/또는 정렬 지점(152D)의 미리정의된 거리 내에 있는) 글자 키 "E"를 갖는 차일드 노드들을 갖는다. 각각의 생성된 토큰 카피에 대해, 컴퓨팅 디바이스(10)는 도 1 및 도 2에서 설명된 바와 같이 정렬 점수를 결정할 수 있다. 컴퓨팅 디바이스(10)는 각각의 토큰 카피를 다음 빔(142)으로 푸시할 수 있고, 그 콘텐츠들이 아래의 표 4에 의해 나타내어질 수 있다.
Figure pct00013
표 4에서 제시되는 엔트리들은 표 1 내지 표 3에서 제시된 엔트리들과 형식에 있어 유사하다. 표 4에서, 각각의 토큰에 대한 정렬 점수는 이전의 글자들에 대한 정렬 점수 및 현재 글자에 대한 정렬 점수를 포함한다. 가장 큰 정렬 점수를 갖는 토큰으로부터 가장 작은 정렬 점수까지 순위가 정해진 순서대로 분류될 수 있는, 표 4의 예에서 알 수 있는 바와 같이, 대안적 단어 접두어 "BI~CE"를 포함하는 토큰11은 가장 큰 정렬 점수 AS1 + AS4 + AS7 + AS11과 관련될 수 있다. 즉, 정렬 점수 AS1 + AS4 + AS7 + AS11은 표 4에서 가장 큰 정렬 점수일 수 있다. "BI~CE"가 언어 모델(28) 내에서 "bicep"의 처음 네 개의 문자들과 더 정합되는 "bice"에 대응하기 때문에, 컴퓨팅 디바이스(10)는 언어 모델(28) 내에서 "p"에 대해 터미널 노드를 포함하는 추가적인 노드들에 대한 "룩 어헤드"를 행할 수 있고, 이것은 집합적으로 후보 단어 "bicep"를 표시한다. 일부 예들에서, 컴퓨팅 디바이스(10)는, 아래에서 더 설명되는 바와 같이, 단어 접두어 "BI~CE"가 활성 빔(104) 내의 가장 큰 정렬 점수와 관련되는 것에 근거하여 디스플레이를 위해 "bicep"를 출력할 수 있다. 컴퓨팅 디바이스(10)가 제스처의 후속 표시들을 수신함에 따라 컴퓨팅 디바이스(10)는 하나 이상의 토큰들을 점증적으로 계속 결정할 수 있고, 그럼으로써 사용자는 단어 혹은 어구의 키들의 그룹을 선택하기 위한 단일 제스처를 제공할 수 있게 된다.
도 6c의 예에서, 컴퓨팅 디바이스(10)는 사용자가 제스처의 수행을 완료했는지 여부를 결정할 수 있다. 사용자가 제스처의 수행을 완료했다고 결정함에 응답하여, 컴퓨팅 디바이스(10)는 후보 단어들의 목록을 출력할 수 있다. 후보 단어들은 하나 이상의 토큰들에 적어도 부분적으로 근거하고 있을 수 있다. 일부 예들에서, 후보 단어들은 언어 모델(28) 내에서 모델링될 수 있고, 문자 언어의 단어들을 포함하는 하나 이상의 사전들의 콘텐츠들에 근거하고 있을 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 가장 높은 정렬 점수들을 갖는 후보 단어들(즉, 가장 높은 확률을 갖는 예측들)의 목록의 부분집합을 결정할 수 있다. 추가적으로, 일부 예들의 경우, 컴퓨팅 디바이스(10)는, 각각의 후속 정렬 지점에서, 도 6a 내지 도 6c의 예들에서 설명된 바와 같이 활성 빔(120) 내에 포함된 토큰들의 정렬 점수들을 수정할 수 있다.
도 7a 내지 도 7c는 본 개시내용의 하나 이상의 기법들에 따른, 제스처-기반 입력에 대한 전치형 오류 정정을 수행하기 위해 사용되는 도 1에서 제시된 컴퓨팅 디바이스의 일 예를 더 상세히 나타낸 블록도들이다. 본 개시내용의 일부 예시적 기법들에서, 컴퓨팅 디바이스는 연속적인 제스처에서의 전치형 오류들을 검출할 수 있고, 단어 예측의 정확도를 향상시키기 위해 하나 이상의 대안적 가정형태들을 결정할 수 있다. 즉, 사용자가 "thrift"를 입력하려고 의도했을 때 사용자는 두 개의 문자들의 위치를 상호교환하는 제스처를 수행할 수 있다(예를 들어, t-r-h-i-f-t를 제스처링할 수 있음). 달리 말하면, 사용자는 "h" 키에 대해 그 전에 "r" 키를 잘못 제스처링했을 수 있다. 또 하나의 다른 예는 사용자가 "weird"를 입력하려고 의도했을 때 w-i-e-r-d를 제스처링하는 것을 포함할 수 있다. 즉, 사용자는 "e" 키에 대해 그 전에 "i" 키를 잘못 제스처링했을 수 있다.
전치형 오류가 발생할 수 있는 이러한 경우들에서, 본 개시내용의 기법들은, 후보 단어 내의 하나 이상의 문자들에 대해, 다음 두 개의 글자들이 전치된 경우에 대한 대안적 가정형태를 고려한다. "wierd" 철자 오기 예에 있어서, 본 개시내용의 기법들이 해당 제스처를 사전 내의 단어 "weird"와 비교할 때, 본 기법들은 또한 두 번째 글자 및 세 번째 글자가 뜻하지 않게 "ei"에서 "ie"로 바뀐 경우에 대한 대안적 형태를 고려할 것이다. 그 다음에, 본 기법들은 본래의 "w[ei]" 해석 혹은 전치형으로-정정되는 "w[ie]" 해석이 제스처에 가장 잘 위치적으로 정합되는지 여부를 결정한다. 가장 가능성 있는 혹은 가장 높은 정렬 점수의 가정형태가 식별되면, 본 기법들은 해당 단어 내의 다음 글자("r")에 대한 정렬을 계속한다. 이러한 전치형 오류 기법들이 이제 도 6a 내지 도 6c를 참조하여 더 설명된다.
도 7a 내지 도 7c는 본 개시내용의 하나 이상의 기법들에 따른, 도 1 내지 도 3에서 제시된 컴퓨팅 디바이스의 일 예를 더 상세히 나타낸 블록도들이다. 도 7c의 개념적 예에서 제시되는 바와 같이, 컴퓨팅 디바이스(10)는 GUI(160), 활성 빔(162), 및 다음 빔(164)을 포함할 수 있다. GUI(160)는 "R" 키(168A) 및 "T" 키(168B)를 포함할 수 있는 그래픽 키보드(166)를 포함할 수 있다. 도 7a에서는 비록 보여지고 있지만, 제스처 경로 일부분(17A)을 포함하는 제스처 경로(172) 그리고/또는 정렬 지점들(170A 및 170B)은 본 명세서에서 설명되는 기법들을 수행하는 동안 보이지 않을 수 있다.
도 7a의 예에서, 사용자는 그래픽 키보드(166)에서 제스처를 수행함으로써 컴퓨팅 디바이스(10)에 단어 "thrift"를 입력하기를 원할 수 있다. 이전에 논의된 바와 같이, 사용자가 프레즌스-감지 입력 디바이스에서 제스처를 수행하는 동안, 컴퓨팅 디바이스(10)는 제스처 경로(172)를 갖는 제스처의 표시들을 점증적으로 수신할 수 있다. 도 7a의 예에서, 컴퓨팅 디바이스(10)는 제스처 경로(172A)를 검출한 것으로서 제시된다.
제스처 경로(172A)를 검출함에 응답하여, 컴퓨팅 디바이스(10)는 제스처 경로(172A)를 따르는 정렬 지점들(170A 및 170B)을 결정할 수 있다. 제스처 경로(172A)를 검출함에 응답하여, 컴퓨팅 디바이스(10)는 하나 이상의 토큰들을 생성할 수 있고, 이러한 토큰들을 활성 빔(162)으로 푸시할 수 있다. 활성 빔(162)의 예시적 콘텐츠들의 일부분이 아래의 표 1에 의해 나타내어질 수 있다.
Figure pct00014
표 1에서, 각각의 행은 개개의 토큰을 나타내고, "인덱스" 열은 각각의 토큰에 대한 고유 식별자를 나타내고, "페어런츠 인덱스" 열은 나열된 토큰이 해당 토큰에 대해 차일드가 되는 그러한 해당 토큰의 인덱스 값을 나타내고, "현재 노드의 글자 키" 열은 토큰의 현재 노드가 나타내는 글자 키를 나타내고, "글자 체인" 열은 엔트리 노드로부터 토큰의 현재 노드까지의 노드들이 나타내는 글자 키들을 모두 나타내고, 그리고 "정렬 점수" 열은 토큰의 정렬 점수를 나타낸다. 표 1에서 제시되는 바와 같이, 그 생성된 토큰들은 i0 및 i1의 인덱스들을 갖는다(예를 들어, 이것은 토큰0 및 토큰1에 대응함).
제스처에 의해 표시되는 텍스트를 결정하기 위해, 컴퓨팅 디바이스(10)는 제스처 경로(172A)를 표시하는 제스처 입력의 추가적인 표시들에 응답하여 각각의 토큰의 카피를 그 차일드 노드들 상에 생성할 수 있다. 컴퓨팅 디바이스(10)는, 예를 들어, 인덱스 0을 갖는 토큰의 카피를 차일드 노드 "TR" (즉, 토큰0) 및 차일드 노드 "GR" (즉, 토큰1) 상에 생성할 수 있다. 각각의 생성된 토큰 카피에 대해, 컴퓨팅 디바이스(10)는 도 1 및 도 2에서 설명된 바와 같이 정렬 점수를 결정할 수 있다. 컴퓨팅 디바이스(10)는 각각의 토큰 카피를 다음 빔(164)으로 푸시할 수 있고, 그 예시적 콘텐츠들의 일부분이 아래의 표 2에 의해 나타내어질 수 있다.
Figure pct00015
표 2에서 제시되는 엔트리들은 표 1에서 제시된 엔트리와 형식에 있어 유사하다. 표 2에서, 토큰3은 해당 값 AS0 + AS3을 갖고, 토큰4는 해당 값 AS1 + AS4를 갖는다. 컴퓨팅 디바이스(10)는 반복적으로 동작할 수 있거나 그렇지 않으면 임의의 문자를 각각의 토큰에 유사한 방식으로 더하는 것 그리고 업데이트된 토큰을 다음 빔(164)으로 추가하는 것을 행함으로써 활성 빔(162)으로부터의 각각의 토큰을 진척시킬 수 있다. 컴퓨팅 디바이스(10)는 후속적으로 활성 빔(162)이 비어있는지(즉, 프로세싱될 더 이상의 토큰들을 포함하고 있지 않은지) 여부를 결정할 수 있다. 활성 빔(162)이 비어 있다고 결정함에 응답하여, 컴퓨팅 디바이스(10)는 다음 빔(164)의 콘텐츠들을 도 7b의 활성 빔(162)으로 카피할 수 있고, 다음 빔(164)의 콘텐츠들을 폐기할 수 있다.
도 7b의 예에서, 컴퓨팅 디바이스(10)는 제스처 경로(172B)를 검출할 수 있다. 앞에서 설명된 바와 같이, 활성 빔(162)의 콘텐츠들은 표 2에 의해 나타내어질 수 있다. 컴퓨팅 디바이스(10)는 제스처 경로(172B)를 따라 정렬 지점(170C)을 결정할 수 있다. 컴퓨팅 디바이스(10)는, 활성 빔(162) 내의 각각의 토큰에 대해, 각각의 차일드 노드 상에 임의의 카피를 생성할 수 있다. 표 3에서 제시되는 도 7b의 예에서, 토큰6 내지 토큰7 각각은 글자 키들 "H"를 갖는 차일드 노드들을 갖는다. 토큰8 각각은 글자 키들 "G"를 갖는 차일드 노드를 갖는다. 각각의 생성된 토큰 카피에 대해, 컴퓨팅 디바이스(10)는 도 1 및 도 2에서 설명된 바와 같이 정렬 점수를 결정할 수 있다. 컴퓨팅 디바이스(10)는 각각의 토큰 카피를 다음 빔(164)으로 푸시할 수 있고, 그 예시적 콘텐츠들의 일부분이 아래의 표 3에 의해 나타내어질 수 있다.
Figure pct00016
표 3에서 제시되는 엔트리들은 표 1 및 표 2에서 제시된 엔트리들과 형식에 있어 유사하다. 표 3에서, 각각의 토큰에 대한 정렬 점수는 이전의 글자들에 대한 정렬 점수 및 현재 글자에 대한 정렬 점수를 포함한다. 컴퓨팅 디바이스(10)는 토큰 중 만약 있다면 어떤 것이 터미널 노드들 상에 있는지를 결정할 수 있다(예를 들어, 루트 노드로부터 터미널 노드에 이르는 노드들의 경로는 언어 모델(28) 내의 단어를 나타내는 문자들의 문자열을 포함함). 일부 예들에서, 만약 토큰이 터미널 노드 상에 있다면, 컴퓨팅 디바이스(10)는 해당 단어를 선택할 수 있는바, 예를 들어, 디스플레이를 위해 그 단어를 출력하기 위해서 선택할 수 있다.
본 개시내용의 기법들에 따르면, 컴퓨팅 디바이스(10)는 단어 접두어와 관련된 정렬 점수가 임계치를 만족시키는데 실패했다고 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 정렬 점수가 임계치보다 작다고 결정할 수 있다. 하나의 예로서, 컴퓨팅 디바이스(10)는 "TRH"에 대한 정렬 점수, AS1 + AS4 + AS6이 임계치를 만족시키지 않는다고 결정할 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 각각의 단어 접두어들과 관련된 복수의 정렬 점수들이 임계치를 만족시키는데 실패했다고 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 TRH, GRH, 및 TRG에 대한 정렬 점수들이 각각 임계치를 만족시키는데 실패했다고 결정할 수 있다.
정렬 점수가 임계치를 만족시키는데 실패했다고 결정함에 응답하여, 컴퓨팅 디바이스(10)는 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다. 예를 들어, 단어 접두어 "TRH"는 제 1 부분문자열 "T" 및 제 2 부분문자열 "RH"를 포함할 수 있다. 즉, 각각의 부분문자열은 0개 혹은 이보다 많은 문자들을 포함할 수 있다. 본 예에서 제 2 부분문자열은 두 개의 문자들 "RH"을 포함한다.
컴퓨팅 디바이스(10)는 제 2 부분문자열의 전치형태를 결정할 수 있고, 여기서 제 2 부분문자열의 적어도 두 개의 문자들의 문자 위치들은 전치형태에서 전치되어 있다. 전치형태는 문자들의 문자 위치들이 뒤바뀌거나 혹은 변경된 제 2 부분문자열의 하나 이상의 문자들을 포함할 수 있다. 적어도 하나의 대안적 문자가 전치형태(예를 들어, "RH")에 포함될 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 단어 접두어 "TRH"의 제 2 부분문자열 "RH"가 정정용 데이터(30) 내의 제 1 문자열과 정합된다고 결정할 수 있다. 제 1 문자열은 하나 이상의 문자들을 포함할 수 있다. 도 7b의 예에서, 컴퓨팅 디바이스(10)는 제 2 부분문자열 "RH"가 정정용 데이터(30) 내의 제 1 문자열 "RH"와 정합된다고 결정할 수 있다. 정정용 데이터(30)는 문자열들 간의 하나 이상의 관계들을 포함할 수 있다. 예를 들어, 정정용 데이터(30)는 정정용 데이터(30) 내의 제 1 문자열 "RH"와 정정용 데이터(30) 내의 제 2 문자열 "HR" 간의 관계를 표시하는 데이터를 포함할 수 있다. 정정용 데이터(30) 내의 제 2 문자열 "HR"은 정정용 데이터(30) 내의 제 1 문자열 "RH"의 전치형태일 수 있다. 문자열들 간의 관계들의 다른 예들은 하나 이상의 전치형태들을 특정하는 데이터를 포함할 수 있다. 예를 들어, 정정용 데이터(30)는 키보드 모듈(22)로 하여금 단어 접두어의 부분문자열을 전치시키도록 하는 데이터를 포함할 수 있다. 하나의 예로서, 이러한 데이터는 키보드 모듈(22)로 하여금 단어 접두어의 부분문자열을 결정하도록 할 수 있고 아울러 그 부분문자열을 전치시키도록 할 수 있다. 예를 들어, 키보드 모듈(22)은 단어 접두어 내에서 현재 결정된 문자를 뒤따르는 두 개의 문자들을 전치시킬 수 있다. 예시를 위해, 키보드 모듈(22)은 토큰이 문자 "wei"를 포함한다고 결정할 수 있고, 부분문자열 "ei"를 전치시켜 대안적 단어 접두어 "wie"를 발생시킬 수 있다. 다른 예들에서, 컴퓨팅 디바이스(10)는 자동으로 "RH"를 "HR"로 전치시켜 대안적 단어 접두어를 발생시킬 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 단어 접두어 내의 적어도 두 개의 문자들의 문자 위치들을 자동으로 뒤바꾸거나 혹은 그렇지 않으면 변경시켜 대안적 단어 접두어를 발생시킬 수 있다.
일부 예들에서, 컴퓨팅 디바이스(10)는 어휘 목록 트리 내에서 "룩 어헤드"를 행하여 문자들에 각각 대응하는 트리 내의 경로에서의 하나 이상의 노드들을 결정할 수 있다. 그 다음에, 컴퓨팅 디바이스(10)는 해당 경로의 노드들에 대응하는 문자들 중 하나 이상의 문자의 전치형태를 발생시킬 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 토큰이 단어 접두어 "t"를 포함한다고 결정할 수 있다. 컴퓨팅 디바이스(10)는 "루트t"로부터 토큰이 어휘 목록 트리 내에서 임의의 경로의 "t" 노드 상에 현재 있다고 결정할 수 있다. 컴퓨팅 디바이스(10)는 그래픽 키보드(16B)의 "R" 키를 횡단하는 제스처의 표시를 수신할 수 있고, 이러한 경우에 컴퓨팅 디바이스(10)는 활성 빔의 토큰들을 진척시킬 수 있고 단어 접두어 "tr"을 포함하는 토큰 카피를 발생시킬 수 있다. 그래픽 키보드(16B)의 "T" 키를 횡단하는 제스처의 표시를 수신함에 응답하여, 컴퓨팅 디바이스(10)는 또한 "루트th"와 같은 대안적 경로를 결정하기 위해 "w"를 포함하는 노드로부터 어휘 목록 트리의 하나 이상의 노드들에 대해 룩 어헤드 행할 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 "R" 키에 대응하는 문자 "r"에 근거하여 대안적 경로를 결정할 수 있다. 예를 들어, 정정용 데이터(30)는 "r"과 "h" 간의 관계 및/또는 "tr"과 "th" 간의 관계를 표시할 수 있다. 어느 경우에서건, 컴퓨팅 디바이스(10)는 대안적 단어 접두어 "th"를 포함하는 토큰을 발생시킬 수 있고, 컴퓨팅 디바이스(10)는 이러한 토큰을 활성 빔(162)에 포함할 수 있다.
일부 예들에서, 컴퓨팅 디바이스(10)는 어휘 목록 트리 내에서 임의의 경로를 따라 있는 복수의 문자들을 전치시켜 단어 접두어의 그 전치된 문자들이 얼마나 잘 제스처에 맞게 정렬되는지를 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 단어 접두어 "w"를 포함하는 토큰을 저장할 수 있다. 컴퓨팅 디바이스(10)는 어휘 목록 트리의 임의의 경로에서 다음 두 개의 노드들이 노드 "w"를 뒤따르는 문자들 "e" 및 "i"를 포함한다고 결정할 수 있다. 컴퓨팅 디바이스(10)는 다음 두 개의 문자들 "ei"의 전치형태를 포함하는 대안적 단어 접두어를 발생시켜 대안적 단어 접두어 "wie"를 발생시킬 수 있다. 컴퓨팅 디바이스(10)는 제스처 경로에 근거하여 "wie"에 대한 정렬 점수를 결정할 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 "wie"에 대한 정렬 점수를 "wei"에 대한 토큰에 할당할 수 있고, "wei"에 대한 점수에 페널티를 적용할 수 있다.
도 7b의 예에서, 컴퓨팅 디바이스(10)는, 단어 접두어 "TRH"의 제 1 부분문자열 "T"와, 그리고 정정용 데이터(30)에 근거하는(혹은 그렇지 않다면 자동으로 컴퓨팅 디바이스(10)에 의해 "HR"로서 전치되는) 제 2 문자열 "HR"로 구성된 대안적 단어 접두어 "THR"를 발생시킬 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 대안적 단어 접두어 "THR"를 형성하기 위해 "T"와 "HR"를 연결시킬 수 있다. 컴퓨팅 디바이스(10)는 활성 빔(162) 내의 새로운 토큰에 "THR"를 저장할 수 있다. 컴퓨팅 디바이스(10)는 또한, 새로운 토큰에 저장된 "THR"에 대한 정렬 점수를 결정할 수 있다. 언어 모델(28) 내에서 모델링된 단어 "thrift"의 처음 세 개의 문자들과 "THR"이 정합되기 때문에, "THR"에 대한 정렬 점수는 "TRH"보다 더 높을 수 있다. 따라서, 사용자가 "thrift"의 틀린 철자에 대응하는 제스처 경로(172A 및 172B)를 갖는 제스처를 수행했을지라도, 컴퓨팅 디바이스(10)는 단어 접두어 "THR"의 일부분을 포함하는 "thrift"의 철자 오기에 근거하여 대안적 단어 접두어를 발생시킬 수 있다. 도 7c에서 더 예시되는 바와 같이, 사용자가 "thrift"의 나머지 일부분을 철자화하기 위해 제스처를 계속 수행함에 따라, 단어 접두어 "THR"은 결과적으로 예를 들어, "TRH"보다 더 높은 정렬 점수들을 갖게 될 것이다. 활성 빔(162)의 예시적 콘텐츠들의 일부분이 표 4에서 예시된다.
Figure pct00017
도 7c의 예에서, 컴퓨팅 디바이스(10)는 제스처 경로(172C)를 검출한 것으로서 제시된다. 앞에서 설명된 바와 같이, 활성 빔(162)의 콘텐츠들은 표 4에 의해 나타내어질 수 있다. 컴퓨팅 디바이스(10)는 제스처 경로(172C)를 따라 정렬 지점(170D)을 결정할 수 있다. 컴퓨팅 디바이스(10)는, 활성 빔(162) 내의 각각의 토큰에 대해, 각각의 차일드 노드 상에 임의의 카피를 생성할 수 있다. 도 7c의 예에서, 토큰6 내지 토큰9 각각은 (예를 들어, 정렬 지점(170D)에 가까이 있는 그리고/또는 정렬 지점(170D)의 미리정의된 거리 내에 있는) 글자 키들 "U" 및 "I"를 갖는 차일드 노드들을 갖는다. 각각의 생성된 토큰 카피에 대해, 컴퓨팅 디바이스(10)는 도 1 및 도 2에서 설명된 바와 같이 정렬 점수를 결정할 수 있다. 컴퓨팅 디바이스(10)는 각각의 토큰 카피를 다음 빔(164)으로 푸시할 수 있고, 그 콘텐츠들이 아래의 표 5에 의해 나타내어질 수 있다.
Figure pct00018
표 5에서 제시되는 엔트리들은 표 1 내지 표 4에서 제시된 엔트리들과 형식에 있어 유사하다. 표 5에서, 각각의 토큰에 대한 정렬 점수는 이전의 글자들에 대한 정렬 점수 및 현재 글자에 대한 정렬 점수를 포함한다. 가장 큰 정렬 점수를 갖는 토큰으로부터 가장 작은 정렬 점수까지 순위가 정해진 순서대로 분류될 수 있는, 표 5의 예에서 알 수 있는 바와 같이, 대안적 단어 접두어 "THRI"를 포함하는 토큰10은 가장 큰 정렬 점수 AS1 + AS4 + AS9 + AS10과 관련될 수 있다. 즉, 정렬 점수 AS1 + AS4 + AS9 + AS10은 표 5에서 가장 큰 정렬 점수일 수 있다. 언어 모델(28) 내에서 "thrift"의 처음 네 개의 문자들과 "THRI"가 정합되기 때문에, 컴퓨팅 디바이스(10)는 언어 모델(28) 내에서 "t"에 대해 터미널 노드를 포함하는 추가적인 노드들에 대한 "룩 어헤드"을 행할 수 있고, 이것은 집합적으로 후보 단어 "thrift"를 표시한다. 일부 예들에서, 컴퓨팅 디바이스(10)는, 아래에서 더 설명되는 바와 같이, 단어 접두어 "THRI"가 활성 빔(162) 내의 가장 큰 정렬 점수와 관련되는 것에 근거하여 디스플레이를 위해 "thrift"를 출력할 수 있다. 컴퓨팅 디바이스(10)가 제스처의 후속 표시들을 수신함에 따라 컴퓨팅 디바이스(10)는 하나 이상의 토큰들을 점증적으로 계속 결정할 수 있고, 그럼으로써 사용자는 단어 혹은 어구의 키들의 그룹을 선택하기 위한 단일 제스처를 제공할 수 있게 된다.
도 7c의 예에서, 컴퓨팅 디바이스(10)는 사용자가 제스처의 수행을 완료했는지 여부를 결정할 수 있다. 사용자가 제스처의 수행을 완료했다고 결정함에 응답하여, 컴퓨팅 디바이스(10)는 후보 단어들의 목록을 출력할 수 있다. 후보 단어들은 하나 이상의 토큰들에 적어도 부분적으로 근거하고 있을 수 있다. 일부 예들에서, 후보 단어들은 언어 모델(28) 내에서 모델링될 수 있고, 문자 언어의 단어들을 포함하는 하나 이상의 사전들의 콘텐츠들에 근거하고 있을 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 가장 높은 정렬 점수들을 갖는 후보 단어들(즉, 가장 높은 확률을 갖는 예측들)의 목록의 부분집합을 결정할 수 있다. 추가적으로, 일부 예들의 경우, 컴퓨팅 디바이스(10)는, 각각의 후속 정렬 지점에서, 도 7a 내지 도 7c의 예들에서 설명된 바와 같이 활성 빔(162) 내에 포함된 토큰들의 정렬 점수들을 수정할 수 있다.
도 8은 본 개시내용의 기법들에 따른, 제스처-기반 입력을 사용하는 입력의 오류 정정을 수행하도록 구성된 컴퓨팅 디바이스의 예시적 동작들을 나타내는 흐름도이다. 예시적 목적으로, 도 1 및 도 2에서 제시되는 바와 같이, 컴퓨팅 디바이스(10)의 동작 환경 내에서 예시적인 동작들이 아래에서 설명된다.
도 8에서 제시되는 바와 같이, 컴퓨팅 디바이스(10)는 사용자가 제스처를 수행함에 응답하여 검출되는 사용자 입력의 표시들을 점증적으로 수신할 수 있다(180). 사용자 입력의 하나 이상의 표시들을 수신함에 응답하여, 컴퓨팅 디바이스(10)는, 도 1 및 도 2에서 설명된 바와 같이, 활성 빔 내의 각각의 토큰을 선택할 수 있고, 토큰의 하나 이상의 카피들을 생성할 수 있고, 그리고 어휘 목록 트리 내의 상이한 차일드 노드들로 각각의 토큰 카피들을 진척시킬 수 있다(184). 앞에서 설명된 바와 같이, 컴퓨팅 디바이스(10)는 하나 이상의 각각의 토큰들에 대한 하나 이상의 정렬 점수들이 임계치를 만족시키는지 여부를 결정할 수 있다(186). 예를 들어, 만약 하나 이상의 토큰들에 대한 각각의 정렬 점수들이 임계치를 만족시킨다면(예를 들어, 정렬 점수들이 임계치보다 각각 더 크다면)(190), 컴퓨팅 디바이스(10)는 하나 이상의 대안적 제스처 정렬들을 결정함이 없이 하나 이상의 후보 단어들을 결정할 수 있다(199).
그러나, 만약 하나 이상의 정렬 점수들이 임계치를 만족시키지 않는다면(180), 컴퓨팅 디바이스(10)는 대안적 단어 접두어들을 발생시키기 위해 하나 이상의 기법들을 수행한다. 일부 예들에서, 컴퓨팅 디바이스(10)는 단어 접두어에 적용된 정정들의 수를 표시하는 정보를 저장한다. 예를 들어, 컴퓨팅 디바이스(10)는 단어 접두어에 얼마나 많은 오류 정정 동작들이 적용되었는지를 결정할 수 있다. 만약 예를 들어, 컴퓨팅 디바이스(10)가 오류 정정 동작(예를 들어, 대체형 오류 정정)을 사용하여 단어 접두어로부터 제 1 대안적 단어 접두어를 발생시켰고, 후속적으로 제 2 오류 정정 동작(예를 들어, 전치형 오류 정정)을 사용하여 제 1 대안적 단어 접두어로부터 제 2 대안적 단어 접두어를 발생시켰다면, 컴퓨팅 디바이스(10)는 제 2 대안적 단어 접두어에 적용된 두 개의 오류 정정 기법들의 양을 표시하는 정보를 저장할 수 있다. 일부 예들에서, 단어 접두어에 적용된 오류 정정 기법들의 양은 단어 접두어를 포함하는 토큰에 저장될 수 있다.
하나의 예로서, 컴퓨팅 디바이스(10)는 단어 접두어의 부분문자열에 적어도 부분적으로 근거하여 단어 접두어에 제 1 오류 정정 동작을 적용할 수 있다. 컴퓨팅 디바이스(10)는 제 1 오류 정정 동작을 적용할 때 대안적 단어 접두어를 발생시킬 수 있고, 대안적 단어 접두어를 발생시키기 위해 적용되었던 하나의 오류 정정 동작의 양을 표시하는 정보를 단어 접두어를 포함하는 토큰에 저장할 수 있다. 제스처의 후속 표시를 수신함에 응답하여, 컴퓨팅 디바이스(10)는 단어 접두어에 적용된 오류 정정 동작들의 양을 결정할 수 있다(192). 컴퓨팅 디바이스(10)는 토큰에서 표시되는 오류 정정 동작들의 양이 임계치를 만족시킨다고 결정할 수 있고(예를 들어, 임계치보다 더 크다고 결정할 수 있거나 혹은 임계치보다 크거나 같다고 결정할 수 있고), 단어 접두어에 오류 정정 동작을 적용하는 것을 억제할 수 있다(194). 대안적으로, 만약 오류 정정 동작들의 양이 임계치를 만족시키지 않는다면(예를 들어, 임계치보다 더 작다면)(196), 컴퓨팅 디바이스(10)는 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 대안적 문자 혹은 문자들의 그룹에 적어도 부분적으로 근거하여 대안적 정렬 점수를 결정할 수 있다(198). 일부 예들에서, 컴퓨팅 디바이스(10)는 대안적 정렬 점수에 근거하여 하나 이상의 후보 단어들을 결정할 수 있다. 이러한 방식으로, 컴퓨팅 디바이스(10)가 정정들을 수행하고 그리고/또는 대안적 정렬 점수들 및/또는 대안적 단어 접두어들을 발생시킴에 따라, 컴퓨팅 디바이스(10)는 대안적 단어 접두어를 발생시키기 위해 적용되었던 오류 정정 동작들(예를 들어, 상이한 기법들)의 양을 결정할 수 있다. 만약 대안적 단어 접두어를 발생시키기 위해 컴퓨팅 디바이스(10)에 의해 임계 개수의 동작들이 적용되었다면, 컴퓨팅 디바이스(10)는 추가적인 대안적 단어 접두어들을 발생시키는 것을 억제할 수 있다.
일부 예들에서, 컴퓨팅 디바이스(10)는 언어 모델(28) 내에서 모델링된 단어에 대해 단어 접두어가 어느 정도의 유사성을 갖는지 여부를 결정할 수 있고, 만약 유사성의 정도가 임계치를 만족시키지 않는다면, 컴퓨팅 디바이스(10)는 단어 접두어에 하나 이상의 오류 정정 동작들을 적용하는 것을 억제할 수 있다. 이러한 방식으로, 컴퓨팅 디바이스(10)는 임계치와 비교해 언어 모델(28) 내에서의 하나 이상의 단어들과는 더 유사하지 않은 단어 접두어들에 관한 불필요한 프로세싱의 수행을 피할 수 있다. 예로서, 컴퓨팅 디바이스(10)는, 단어 접두어의 부분문자열에 적어도 부분적으로 근거하여 제 1 오류 정정 동작을 적용함으로써, 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다. 프레즌스-감지 입력 디바이스에서 검출된 제스처의 후속 표시를 수신함에 응답하여, 컴퓨팅 디바이스(10)는 (예를 들어, 언어 모델(28) 내에서 모델링된 바와 같은) 어휘 목록 내의 적어도 하나의 후보 단어와 단어 접두어 간의 유사성의 정도를 결정할 수 있다. 이러한 유사성의 정도는 임의 범위의 유사성의 정도들 내에 포함될 수 있다. 컴퓨팅 디바이스(10)는, 유사성의 정도가 임계치를 만족시키지 않는다고(예를 들어, 임계치보다 더 작다고) 결정함에 응답하여, 단어 접두어에 오류 정정 동작을 적용하는 것을 억제할 수 있다. 그러나, 만약 유사성의 정도가 임계치를 만족시킨다면(예를 들어, 임계치보다 크거나 같다면), 컴퓨팅 디바이스(10)는 단어 접두어에 하나 이상의 오류 정정 동작들을 적용할 수 있다.
도 9는 본 개시내용의 기법들에 따른, 제스처-기반 입력을 사용하는 입력의 오류 정정을 수행하도록 구성된 컴퓨팅 디바이스의 예시적 동작들을 나타내는 흐름도이다. 예시적 목적으로, 도 1 및 도 2에서 제시되는 바와 같이, 컴퓨팅 디바이스(10)의 동작 환경 내에서 예시적인 동작들이 아래에서 설명된다.
도 9의 예에서, 컴퓨팅 디바이스(10)는 초기에, 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력할 수 있다(200). 컴퓨팅 디바이스(10)는 또한, 프레즌스-감지 입력 디바이스에서 검출된 제스처의 표시를 수신할 수 있다(202). 예를 들어, 컴퓨팅 디바이스(10)는 프레즌스-감지 입력 디바이스에서 사용자에 의해 수행된 연속적인 제스처 입력의 하나 이상의 표시들을 수신할 수 있다. 일부 예들에서, 컴퓨팅 디바이스(10)는 제스처에 의해 횡단된 적어도 하나의 정렬 지점 및 단어 접두어에 적어도 부분적으로 근거하고 있는 정렬 점수를 결정할 수 있다(204). 일부 예들에서, 정렬 점수는 적어도 하나의 정렬 지점이 복수의 키들 중 임의의 키를 표시할 확률을 나타낸다.
컴퓨팅 디바이스(10)는, 일부 예들에서, 정렬 점수가 제 1 임계치를 만족시키는지 여부를 결정할 수 있다(206). 만약 정렬 점수가 임계치를 만족시킨다면(209), 컴퓨팅 디바이스(10)는 단어 접두어에 적어도 부분적으로 근거하여 하나 이상의 후보 단어들을 출력할 수 있다(216). 그러나, 만약 정렬 점수가 제 1 임계치를 만족시키지 않는다면, 컴퓨팅 디바이스(10)는 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다(208).
일부 예들에서, 컴퓨팅 디바이스(10)는 대안적 문자에 적어도 부분적으로 근거하고 있는 대안적 정렬 점수를 결정할 수 있다(210). 일부 예들에서, 컴퓨팅 디바이스(10)는 대안적 정렬 점수에 적어도 부분적으로 근거하여 디스플레이를 위해 후보 단어를 출력할 수 있다. 예를 들어, 컴퓨팅 디바이스(10)는 정렬 점수가 제 2 임계치를 만족시키는지 여부를 결정할 수 있다(212). 만약 정렬 점수가 제 2 임계치를 만족시킨다면(213), 컴퓨팅 디바이스(10)는 대안적 문자에 적어도 부분적으로 근거하여 디스플레이를 위해 하나 이상의 후보 단어들을 출력할 수 있다. 다른 예들에서, 만약 정렬 점수가 제 2 임계치를 만족시키지 않는다면(215), 컴퓨팅 디바이스(10)는 프레즌스-감지 입력 디바이스에서 검출된 제스처의 후속 표시들을 수신할 수 있다(202). 달리 말하면, 컴퓨팅 디바이스(10)는 이러한 때에는 대안적 문자에 근거하여 하나 이상의 후보 단어들을 출력하지 않을 수 있다.
도 10은 본 개시내용의 기법들에 따른, 제스처-기반 입력을 사용하는 입력의 오류 정정을 수행하도록 구성된 컴퓨팅 디바이스의 예시적 동작들을 나타내는 흐름도이다. 예시적 목적으로, 도 1 및 도 2에서 제시되는 바와 같이, 컴퓨팅 디바이스(10)의 동작 환경 내에서 예시적인 동작들이 아래에서 설명된다.
컴퓨팅 디바이스(10)는, 일부 예들에서, 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력할 수 있다(230). 컴퓨팅 디바이스(10)는 또한, 프레즌스-감지 입력 디바이스에서 검출된 제스처의 표시를 수신할 수 있다(232). 일부 예들에서, 컴퓨팅 디바이스(10)는 제스처에 의해 횡단된 정렬 지점 및 단어 접두어에 적어도 부분적으로 근거하고 있는 정렬 점수를 결정할 수 있고, 여기서 정렬 점수는 정렬 지점이 복수의 키들 중 임의의 키를 표시할 확률을 나타낸다(234). 컴퓨팅 디바이스(10)는 적어도 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정할 수 있다(236). 일부 예들에서, 컴퓨팅 디바이스(10)는 대안적 문자에 적어도 부분적으로 근거하고 있는 대안적 정렬 점수를 결정할 수 있다(238). 컴퓨팅 디바이스(10)는 또한, 대안적 정렬 점수에 적어도 부분적으로 근거하여 디스플레이를 위해 후보 단어를 출력할 수 있다(240).
일부 예들에서, 본 발명의 동작들은, 단어 접두어의 제 2 부분문자열이 정정용 데이터 내의 제 1 문자열과 정합됨을 컴퓨팅 디바이스에 의해 결정하는 것과; 적어도 하나의 대안적 문자를 포함하는 정정용 데이터 내의 제 2 문자열을 컴퓨팅 디바이스에 의해 정정용 데이터 내의 제 1 문자열에 적어도 부분적으로 근거하여 결정하는 것과; 그리고 단어 접두어의 제 1 부분문자열 및 정정용 데이터 내의 제 2 문자열을 포함하는 대안적 단어 접두어를 컴퓨팅 디바이스에 의해 발생시키는 것을 포함할 수 있다. 일부 예들에서, 정정용 데이터 내의 제 2 문자열은 단어 접두어 내의 제 2 부분문자열의 표음적 대체형태를 포함할 수 있다.
일부 예들에서, 본 발명의 동작들은, 단어 접두어의 부분문자열이 정정용 데이터 내의 제 1 문자열과 정합됨을 컴퓨팅 디바이스에 의해 결정하는 것과; 적어도 하나의 대안적 문자를 컴퓨팅 디바이스에 의해 정정용 데이터 내의 제 1 문자열에 적어도 부분적으로 근거하여 결정하는 것과; 그리고 단어 접두어 및 적어도 하나의 대안적 문자를 포함하는 대안적 단어 접두어를 컴퓨팅 디바이스에 의해 발생시키는 것을 포함할 수 있다. 일부 예들에서, 대안적 문자는 문자 집합 내의 각각의 가능한 문자를 나타내는 와일드카드 문자를 포함할 수 있다.
일부 예들에서, 본 발명의 동작들은, 적어도 단어 접두어의 부분문자열을 포함하는 대안적 단어 접두어를 컴퓨팅 디바이스에 의해 발생시키는 것과; 그리고 적어도 하나의 플레이스홀더 값을 컴퓨팅 디바이스에 의해 대안적 단어 접두어 내에 삽입하는 것을 포함할 수 있고, 여기서 적어도 하나의 플레이스홀더 값은 대안적 단어 접두어에 근거하고 있는 하나 이상의 후보 단어들 내에 포함되지 않는 적어도 하나의 임의의 문자를 표시한다. 일부 예들에서, 본 발명의 동작들은, 적어도 단어 접두어의 부분문자열을 포함하는 대안적 단어 접두어를 컴퓨팅 디바이스에 의해 발생시키는 것과; 제 1 제스처에 후속하는 제 2 제스처의 표시를 수신함에 응답하여, 하나 이상의 문자들을 대안적 단어 접두어 내에 삽입하는 것을 컴퓨팅 디바이스에 의해 억제하는 것과; 그리고 제 2 제스처에 후속하는 제 3 제스처의 표시를 수신함에 응답하여, 적어도 하나의 문자를 컴퓨팅 디바이스에 의해 대안적 단어 접두어 내에 삽입하는 것을 포함할 수 있다.
일부 예들에서, 본 발명의 동작들은, 적어도 단어 접두어의 부분문자열을 포함하는 대안적 단어 접두어를 컴퓨팅 디바이스에 의해 발생시키는 것과; 제 1 제스처에 후속하는 제 2 제스처의 표시를 수신함에 응답하여, 하나 이상의 문자들을 대안적 단어 접두어 내에 삽입하는 것을 컴퓨팅 디바이스에 의해 억제하는 것과; 그리고 제 2 제스처에 후속하는 제 3 제스처의 표시를 수신함에 응답하여, 적어도 하나의 문자를 컴퓨팅 디바이스에 의해 대안적 단어 접두어 내에 삽입하는 것을 포함할 수 있다. 일부 예들에서, 본 발명의 동작들은, 제 2 부분문자열의 전치형태를 컴퓨팅 디바이스에 의해 결정하는 것과(여기서, 제 2 부분문자열의 적어도 두 개의 문자들의 문자 위치들은 전치형태에서 전치되어 있고, 적어도 하나의 대안적 문자는 전치형태에 포함됨); 그리고 적어도 전치형태를 포함하는 대안적 단어 접두어를 컴퓨팅 디바이스에 의해 발생시키는 것을 포함할 수 있다.
일부 예들에서, 본 발명의 동작들은, 제 1 부분문자열과 제 2 부분문자열 중 적어도 하나가 정정용 데이터 내의 문자열과 정합됨을 컴퓨팅 디바이스에 의해 결정하는 것과; 그리고 전치형태를 컴퓨팅 디바이스에 의해 이러한 정합에 적어도 부분적으로 근거하여 결정하는 것을 포함할 수 있다. 일부 예들의 경우, 본 발명의 동작에서, 적어도 하나의 대안적 문자를 결정하는 것은, 단어 접두어의 부분문자열에 적어도 부분적으로 근거하여 제 1 오류 정정 동작을 적용하는 것을 포함할 수 있고, 본 방법은 또한, 프레즌스 감지 입력 디바이스에서 검출되는 제스처의 후속 표시를 수신함에 응답하여, 단어 접두어에 적용된 오류 정정 동작들의 양을 컴퓨팅 디바이스에 의해 결정하는 것과; 그리고 오류 정정 동작들의 양이 임계치를 만족시킨다고 결정함에 응답하여, 단어 접두어에 오류 정정 동작을 적용하는 것을 컴퓨팅 디바이스에 의해 억제하는 것을 포함할 수 있다.
일부 예들에서, 본 발명의 동작들은, 적어도 하나의 대안적 문자를 결정함에 응답하여 페널티 값을 컴퓨팅 디바이스에 의해 결정하는 것과; 그리고 페널티 값에 적어도 부분적으로 근거하여 대안적 정렬 점수를 컴퓨팅 디바이스에 의해 결정하는 것을 포함할 수 있다. 일부 예들에서, 본 발명의 동작들은, 복수의 오류 정정 동작들로부터 오류 정정 동작의 유형을 컴퓨팅 디바이스에 의해 결정하는 것과; 그리고 복수의 페널티 값들로부터 페널티 값을 컴퓨팅 디바이스에 의해 선택하는 것을 포함할 수 있고, 여기서 복수의 페널티 값들 내의 각각의 페널티 값은 정해진 순위의 순서대로 배열되어 있고, 각각이 페널티 값은 오류 정정 동작의 적어도 하나의 유형과 관련된다.
일부 예들에서, 본 발명의 동작들은, 대안적 정렬 점수가 임계치를 만족시킨다고 결정함에 응답하여, 대안적 문자에 적어도 부분적으로 근거하여 후보 단어를 컴퓨팅 디바이스에 의해 디스플레이를 위해 출력하는 것을 포함할 수 있고, 여기서 임계치는 단어 접두어들의 제 1 부분집합의 양과 동일한 값을 포함하고, 단어 접두어들의 제 1 부분집합은 단어 접두어들의 제 2 부분집합 내의 단어 접두어들과 관련된 정렬 점수보다 더 큰 하나 이상의 정렬 점수들과 관련된 단어 접두어들의 부분집합이다. 일부 예들에서, 본 발명의 동작들은, 프레즌스-감지 입력 디바이스에서 검출되는 제스처의 후속 표시를 수신함에 응답하여, 어휘 목록 내의 적어도 하나의 후보 단어와 단어 접두어 간의 유사성의 정도를 컴퓨팅 디바이스에 의해 결정하는 것과(여기서, 유사성의 정도는 임의 범위의 유사성의 정도들 내에 있음); 그리고 유사성의 정도가 임계치를 만족시키지 않음에 응답하여 단어 접두어에 오류 정정 동작을 적용하는 것을 컴퓨팅 디바이스에 의해 억제하는 것을 포함할 수 있다.
예시 1(Example 1): 방법이 제공되며, 상기 방법은, 복수의 키들을 포함하는 그래픽 키보드를 컴퓨팅 디바이스에 의해 디스플레이를 위해 출력하는 단계와; 프레즌스-감지 입력 디바이스에서 검출된 제스처의 표시를 상기 컴퓨팅 디바이스에 의해 수신하는 단계와; 상기 제스처에 의해 횡단된 정렬 지점 및 단어 접두어에 적어도 부분적으로 근거하고 있는 정렬 점수를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와(여기서, 상기 정렬 점수는 상기 정렬 지점이 상기 복수의 키들 중 임의의 키를 표시할 확률을 나타냄); 적어도 상기 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있고 있는 적어도 하나의 대안적 문자를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 상기 대안적 문자에 적어도 부분적으로 근거하고 있는 대안적 정렬 점수를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 그리고 상기 대안적 정렬 점수에 적어도 부분적으로 근거하여 후보 단어를 상기 컴퓨팅 디바이스에 의해 디스플레이를 위해 출력하는 단계를 포함한다.
예시 2(Example 2): 예시 1의 방법에 있어서, 상기 단어 접두어는 제 1 부분문자열 및 제 2 부분문자열을 포함하고, 상기 제 2 부분문자열은 상기 적어도 하나의 문자를 포함하고, 상기 적어도 하나의 대안적 문자를 결정하는 단계는 또한, 상기 단어 접두어의 상기 제 2 부분문자열이 정정용 데이터 내의 제 1 문자열과 정합됨을 상기 컴퓨팅 디바이스에 의해 결정하는 것과; 상기 적어도 하나의 대안적 문자를 포함하는 상기 정정용 데이터 내의 제 2 문자열을 상기 컴퓨팅 디바이스에 의해 상기 정정용 데이터 내의 상기 제 1 문자열에 적어도 부분적으로 근거하여 결정하는 것과; 그리고 상기 단어 접두어의 상기 제 1 부분문자열 및 상기 정정용 데이터 내의 상기 제 2 문자열을 포함하는 대안적 단어 접두어를 상기 컴퓨팅 디바이스에 의해 발생시키는 것을 포함한다.
예시 3(Example 3): 예시 1과 예시 2 중 어느 하나에 기재된 방법에 있어서, 상기 정정용 데이터 내의 상기 제 2 문자열은 상기 단어 접두어 내의 상기 제 2 부분문자열의 표음적 대체형태를 포함한다.
예시 4(Example 4): 예시 1 내지 예시 3 중 어느 하나에 기재된 방법에 있어서, 상기 방법은 또한, 상기 단어 접두어의 부분문자열이 정정용 데이터 내의 제 1 문자열과 정합됨을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 적어도 하나의 대안적 문자를 상기 컴퓨팅 디바이스에 의해 상기 정정용 데이터 내의 상기 제 1 문자열에 적어도 부분적으로 근거하여 결정하는 단계와; 그리고 상기 단어 접두어 및 상기 적어도 하나의 대안적 문자를 포함하는 대안적 단어 접두어를 상기 컴퓨팅 디바이스에 의해 발생시키는 단계를 포함한다.
예시 5(Example 5): 예시 1 내지 예시 4 중 어느 하나에 기재된 방법에 있어서, 상기 대안적 문자는 문자 집합 내의 각각의 가능한 문자를 나타내는 와일드카드 문자를 포함한다.
예시 6(Example 6): 예시 1 내지 예시 5 중 어느 하나에 기재된 방법에 있어서, 상기 적어도 하나의 대안적 문자는 적어도 하나의 플레이스홀더 값을 포함하고, 상기 적어도 하나의 대안적 문자를 결정하는 단계는 또한, 적어도 상기 단어 접두어의 부분문자열을 포함하는 대안적 단어 접두어를 상기 컴퓨팅 디바이스에 의해 발생시키는 것과; 그리고 적어도 하나의 플레이스홀더 값을 상기 컴퓨팅 디바이스에 의해 상기 대안적 단어 접두어 내에 삽입하는 것을 포함하고, 여기서 상기 적어도 하나의 플레이스홀더 값은 상기 대안적 단어 접두어에 근거하고 있는 하나 이상의 후보 단어들 내에 포함되지 않는 적어도 하나의 임의의 문자를 표시한다.
예시 7(Example 7): 예시 1 내지 예시 6 중 어느 하나에 기재된 방법에 있어서, 상기 제스처는 제 1 제스처이고, 상기 방법은 또한, 적어도 상기 단어 접두어의 부분문자열을 포함하는 대안적 단어 접두어를 상기 컴퓨팅 디바이스에 의해 발생시키는 단계와; 상기 제 1 제스처에 후속하는 제 2 제스처의 표시를 수신함에 응답하여, 하나 이상의 문자들을 상기 대안적 단어 접두어 내에 삽입하는 것을 상기 컴퓨팅 디바이스에 의해 억제하는 단계와; 그리고 상기 제 2 제스처에 후속하는 제 3 제스처의 표시를 수신함에 응답하여, 적어도 하나의 문자를 상기 컴퓨팅 디바이스에 의해 상기 대안적 단어 접두어 내에 삽입하는 단계를 포함한다.
예시 8(Example 8): 예시 1 내지 예시 7 중 어느 하나에 기재된 방법에 있어서, 상기 단어 접두어는 제 1 부분문자열 및 제 2 부분문자열을 포함하고, 상기 적어도 하나의 대안적 문자를 결정하는 단계는 또한, 상기 제 2 부분문자열의 전치형태를 상기 컴퓨팅 디바이스에 의해 결정하는 것과(여기서, 상기 제 2 부분문자열의 적어도 두 개의 문자들의 문자 위치들은 상기 전치형태에서 전치되어 있고, 상기 적어도 하나의 대안적 문자는 상기 전치형태에 포함됨); 그리고 적어도 상기 전치형태를 포함하는 대안적 단어 접두어를 상기 컴퓨팅 디바이스에 의해 발생시키는 것을 포함한다.
예시 9(Example 9): 예시 1 내지 예시 8 중 어느 하나에 기재된 방법에 있어서, 상기 방법은 또한, 상기 제 1 부분문자열과 상기 제 2 부분문자열 중 적어도 하나가 정정용 데이터 내의 문자열과 정합됨을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 그리고 상기 정합에 적어도 부분적으로 근거하여 상기 전치형태를 상기 컴퓨팅 디바이스에 의해 결정하는 단계를 포함한다.
예시 10(Example 10): 예시 1 내지 예시 9 중 어느 하나에 기재된 방법에 있어서, 상기 적어도 하나의 대안적 문자를 결정하는 단계는, 상기 단어 접두어의 부분문자열에 적어도 부분적으로 근거하여 제 1 오류 정정 동작을 적용하는 것을 포함하고, 상기 방법은 또한, 프레즌스-감지 입력 디바이스에서 검출되는 제스처의 후속 표시를 수신함에 응답하여, 상기 단어 접두어에 적용된 오류 정정 동작들의 양을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 그리고 상기 오류 정정 동작들의 양이 임계치를 만족시킨다고 결정함에 응답하여, 상기 단어 접두어에 오류 정정 동작을 적용하는 것을 상기 컴퓨팅 디바이스에 의해 억제하는 단계를 포함한다.
예시 11(Example 11): 예시 1 내지 예시 10 중 어느 하나에 기재된 방법에 있어서, 상기 대안적 문자에 적어도 부분적으로 근거하고 있는 상기 대안적 정렬 점수를 결정하는 단계는 또한, 상기 적어도 하나의 대안적 문자를 결정함에 응답하여 페널티 값을 상기 컴퓨팅 디바이스에 의해 결정하는 것과; 그리고 상기 페널티 값에 적어도 부분적으로 근거하여 상기 대안적 정렬 점수를 상기 컴퓨팅 디바이스에 의해 결정하는 것을 포함한다.
예시 12(Example 12): 예시 1 내지 예시 11 중 어느 하나에 기재된 방법에 있어서, 상기 적어도 하나의 대안적 문자를 결정하는 단계는, 상기 단어 접두어의 부분문자열에 적어도 부분적으로 근거하여 적어도 하나의 오류 정정 동작을 결정하는 것을 포함하고, 상기 방법은 또한, 복수의 오류 정정 동작들로부터 오류 정정 동작의 유형을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 그리고 복수의 페널티 값들로부터 상기 페널티 값을 상기 컴퓨팅 디바이스에 의해 선택하는 단계를 포함하고, 여기서 상기 복수의 페널티 값들 내의 각각의 페널티 값은 정해진 순위의 순서대로 배열되어 있고, 각각이 페널티 값은 오류 정정 동작의 적어도 하나의 유형과 관련된다.
예시 13(Example 13): 예시 1 내지 예시 12 중 어느 하나에 기재된 방법에 있어서, 상기 대안적 문자에 적어도 부분적으로 근거하여 상기 후보 단어를 출력하는 단계는 또한, 상기 대안적 정렬 점수가 임계치를 만족시킨다고 결정함에 응답하여, 상기 대안적 문자에 적어도 부분적으로 근거하여 상기 후보 단어를 상기 컴퓨팅 디바이스에 의해 디스플레이를 위해 출력하는 것을 포함하고, 여기서 상기 임계치는 단어 접두어들의 제 1 부분집합의 양과 동일한 값을 포함하고, 단어 접두어들의 상기 제 1 부분집합은 단어 접두어들의 제 2 부분집합 내의 단어 접두어들과 관련된 정렬 점수보다 더 큰 하나 이상의 정렬 점수들과 관련된 단어 접두어들의 부분집합이다.
예시 14(Example 14): 예시 1 내지 예시 13 중 어느 하나에 기재된 방법에 있어서, 상기 적어도 하나의 대안적 문자를 결정하는 단계는, 상기 단어 접두어의 부분문자열에 적어도 부분적으로 근거하여 제 1 오류 정정 동작을 적용하는 것을 포함하고, 상기 방법은 또한, 프레즌스-감지 입력 디바이스에서 검출되는 제스처의 후속 표시를 수신함에 응답하여, 어휘 목록 내의 적어도 하나의 후보 단어와 상기 단어 접두어 간의 유사성의 정도를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와(여기서, 상기 유사성의 정도는 임의 범위의 유사성의 정도들 내에 있음); 그리고 상기 유사성의 정도가 임계치를 만족시키지 않는다고 결정함에 응답하여 상기 단어 접두어에 오류 정정 동작을 적용하는 것을 상기 컴퓨팅 디바이스에 의해 억제하는 단계를 포함한다.
예시 15(Example 15): 예시 1 내지 예시 14 중 어느 하나에 기재된 방법에 있어서, 상기 방법은 또한, 상기 정렬 점수가 임계치를 만족시키는 데 실패했다고 상기 컴퓨팅 디바이스에 의해 결정함에 응답하여, 적어도 상기 단어 접두어의 일부분을 포함하는 상기 철자 오기에 적어도 부분적으로 근거하고 있는 상기 적어도 하나의 대안적 문자를 결정하는 단계를 포함한다.
예시 16(Example 16): 명령들이 인코딩(encoding)되어 있는 컴퓨터-판독가능 저장 매체(computer-readable storage medium)가 제공되며, 상기 명령들은 실행되는 경우 적어도 하나의 프로세서로 하여금, 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력하는 것과; 프레즌스-감지 입력 디바이스에서 검출된 제스처의 표시를 수신하는 것과; 상기 제스처에 의해 횡단된 정렬 지점 및 단어 접두어에 적어도 부분적으로 근거하고 있는 정렬 점수를 결정하는 것과(여기서, 상기 정렬 점수는 상기 정렬 지점이 상기 복수의 키들 중 임의의 키를 표시할 확률을 나타냄); 적어도 상기 단어 접두어의 일부분을 포함하는 철자 오기에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자를 결정하는 것과; 상기 대안적 문자에 적어도 부분적으로 근거하고 있는 대안적 정렬 점수를 결정하는 것과; 그리고 상기 대안적 문자에 적어도 부분적으로 근거하는 후보 단어를 상기 대안적 정렬 점수에 적어도 부분적으로 근거하여 디스플레이를 위해 출력하는 것을 행하도록 한다.
예시 17(Example 17): 예시 16에 기재된 컴퓨터-판독가능 저장 매체에 있어서, 상기 단어 접두어는 제 1 부분문자열 및 제 2 부분문자열을 포함하고, 상기 제 2 부분문자열은 상기 적어도 하나의 문자를 포함하며, 상기 컴퓨터-판독가능 저장 매체에 인코딩되어 있는 명령들은 실행되는 경우 적어도 하나의 프로세서로 하여금, 상기 단어 접두어의 상기 제 2 부분문자열이 정정용 데이터 내의 제 1 문자열과 정합됨을 결정하는 것과; 상기 적어도 하나의 대안적 문자를 포함하는 상기 정정용 데이터 내의 제 2 문자열을 상기 정정용 데이터 내의 상기 제 1 문자열에 적어도 부분적으로 근거하여 결정하는 것과; 그리고 상기 단어 접두어의 상기 제 1 부분문자열 및 상기 정정용 데이터 내의 상기 제 2 문자열을 포함하는 대안적 단어 접두어를 발생시키는 것을 행하도록 한다.
예시 18(Example 18): 예시 16과 예시 17 중 어느 하나에 기재된 컴퓨터-판독가능 저장 매체에 있어서, 상기 적어도 하나의 대안적 문자는 적어도 하나의 플레이스홀더 값을 포함하고, 상기 컴퓨터-판독가능 저장 매체에 인코딩되어 있는 명령들은 실행되는 경우 적어도 하나의 프로세서로 하여금, 적어도 상기 단어 접두어의 부분문자열을 포함하는 대안적 단어 접두어를 발생시키는 것과; 그리고 적어도 하나의 플레이스홀더 값을 상기 대안적 단어 접두어 내에 삽입하는 것을 행하도록 하고, 여기서 상기 적어도 하나의 플레이스홀더 값은 상기 대안적 단어 접두어에 근거하고 있는 하나 이상의 후보 단어들 내에 포함되지 않는 적어도 하나의 임의의 문자를 표시한다.
예시 19(Example 19): 예시 16 내지 예시 18 중 어느 하나에 기재된 컴퓨터-판독가능 저장 매체에 있어서, 상기 제스처는 제 1 제스처이고, 상기 컴퓨터-판독가능 저장 매체에 인코딩되어 있는 명령들은 실행되는 경우 적어도 하나의 프로세서로 하여금, 적어도 상기 단어 접두어의 부분문자열을 포함하는 대안적 단어 접두어를 발생시키는 것과; 상기 제 1 제스처에 후속하는 제 2 제스처의 표시를 수신함에 응답하여, 하나 이상의 문자들을 상기 대안적 단어 접두어 내에 삽입하는 것을 억제하는 것과; 그리고 상기 제 2 제스처에 후속하는 제 3 제스처의 표시를 수신함에 응답하여, 적어도 하나의 문자를 상기 대안적 단어 접두어 내에 삽입하는 것을 행하도록 한다.
예시 20(Example 20): 예시 16 내지 예시 19 중 어느 하나에 기재된 컴퓨터-판독가능 저장 매체에 있어서, 상기 단어 접두어는 제 1 부분문자열 및 제 2 부분문자열을 포함하고, 상기 컴퓨터-판독가능 저장 매체에 인코딩되어 있는 명령들은 실행되는 경우 적어도 하나의 프로세서로 하여금, 상기 제 2 부분문자열의 전치형태를 결정하는 것과(여기서, 상기 제 2 부분문자열의 적어도 두 개의 문자들의 문자 위치들은 상기 전치형태에서 전치되어 있고, 상기 적어도 하나의 대안적 문자는 상기 전치형태에 포함됨); 그리고 적어도 상기 전치형태를 포함하는 대안적 단어 접두어를 발생시키는 것을 행하도록 한다.
예시 21(Example 21): 적어도 하나의 프로세서를 포함하는 컴퓨팅 디바이스가 제공되며, 상기 적어도 하나의 프로세서는, 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력하는 것과; 프레즌스-감지 입력 디바이스에서 검출된 제스처의 표시를 수신하는 것과; 상기 제스처에 의해 횡단된 정렬 지점 및 단어 접두어에 적어도 부분적으로 근거하고 있는 정렬 점수를 결정하는 것과(여기서, 상기 정렬 점수는 상기 정렬 지점이 상기 복수의 키들 중 임의의 키를 표시할 확률을 나타냄); 상기 정렬 점수가 임계치를 만족시키는 데 실패했다고 결정함에 응답하여, 적어도 하나의 대안적 단어 접두어를 결정하는 것과; 상기 적어도 하나의 대안적 단어 접두어에 적어도 부분적으로 근거하고 있는 대안적 정렬 점수를 결정하는 것과; 그리고 상기 대안적 정렬 점수에 적어도 부분적으로 근거하여 디스플레이를 위해 후보 단어를 출력하는 것을 행하도록 구성된다.
예시 22(Example 22): 예시 21에 기재된 컴퓨팅 디바이스에 있어서, 상기 단어 접두어는 제 1 부분문자열 및 제 2 부분문자열을 포함하고, 상기 적어도 하나의 프로세서는, 상기 단어 접두어의 상기 제 2 부분문자열이 정정용 데이터 내의 제 1 문자열과 정합됨을 결정하는 것과; 상기 정정용 데이터 내의 제 2 문자열을 상기 정정용 데이터 내의 상기 제 1 문자열에 적어도 부분적으로 근거하여 결정하는 것과; 그리고 상기 단어 접두어의 상기 제 1 부분문자열 및 상기 정정용 데이터 내의 상기 제 2 문자열을 포함하는 대안적 단어 접두어를 발생시키는 것을 행하도록 구성된다.
예시 23(Example 23): 예시 21과 예시 22 중 어느 하나에 기재된 컴퓨팅 디바이스에 있어서, 상기 적어도 하나의 프로세서는, 적어도 상기 단어 접두어의 부분문자열을 포함하는 대안적 단어 접두어를 발생시키는 것과; 그리고 적어도 하나의 플레이스홀더 값을 상기 대안적 단어 접두어 내에 삽입하는 것을 행하도록 구성되고, 여기서 상기 적어도 하나의 플레이스홀더 값은 상기 대안적 단어 접두어에 근거하고 있는 하나 이상의 후보 단어들 내에 포함되지 않는 적어도 하나의 임의의 문자를 표시한다.
예시 24(Example 24): 예시 21 내지 예시 23 중 어느 하나에 기재된 컴퓨팅 디바이스에 있어서, 상기 제스처는 제 1 제스처이고, 상기 적어도 하나의 프로세서는, 적어도 상기 단어 접두어의 부분문자열을 포함하는 대안적 단어 접두어를 발생시키는 것과; 상기 제 1 제스처에 후속하는 제 2 제스처의 표시를 수신함에 응답하여, 하나 이상의 문자들을 상기 대안적 단어 접두어 내에 삽입하는 것을 억제하는 것과; 그리고 상기 제 2 제스처에 후속하는 제 3 제스처의 표시를 수신함에 응답하여, 적어도 하나의 문자를 상기 대안적 단어 접두어 내에 삽입하는 것을 행하도록 구성된다.
예시 25(Example 25): 예시 21 내지 예시 24 중 어느 하나에 기재된 컴퓨팅 디바이스에 있어서, 상기 단어 접두어는 제 1 부분문자열 및 제 2 부분문자열을 포함하고, 상기 적어도 하나의 프로세서는, 상기 제 2 부분문자열의 전치형태를 결정하는 것과(여기서, 상기 제 2 부분문자열의 적어도 두 개의 문자들의 문자 위치들은 상기 전치형태에서 전치되어 있고, 상기 적어도 하나의 대안적 문자는 상기 전치형태에 포함됨); 그리고 적어도 상기 전치형태를 포함하는 대안적 단어 접두어를 발생시키는 것을 행하도록 구성된다.
예시 26(Example 26): 컴퓨팅 디바이스가 제공되며, 상기 컴퓨팅 디바이스는, 복수의 키들을 포함하는 그래픽 키보드를 디스플레이를 위해 출력하기 위한 수단과; 프레즌스-감지 입력 디바이스에서 검출된 제스처의 표시를 수신하기 위한 수단과; 상기 제스처에 의해 횡단된 정렬 지점 및 단어 접두어에 적어도 부분적으로 근거하고 있는 정렬 점수를 결정하기 위한 수단과(여기서, 상기 정렬 점수는 상기 정렬 지점이 상기 복수의 키들 중 임의의 키를 표시할 확률을 나타냄); 상기 정렬 점수가 임계치를 만족시키는 데 실패했다고 결정함에 응답하여, 적어도 하나의 대안적 단어 접두어를 결정하기 위한 수단과; 상기 적어도 하나의 대안적 단어 접두어에 적어도 부분적으로 근거하고 있는 대안적 정렬 점수를 결정하기 위한 수단과; 그리고 상기 대안적 정렬 점수에 적어도 부분적으로 근거하여 디스플레이를 위해 후보 단어를 출력하기 위한 수단을 포함한다.
예시 27(Example 27): 예시 26에 기재된 컴퓨팅 디바이스는 예시 2 내지 예시 15의 방법들 중 어느 하나의 방법을 수행하기 위한 수단을 포함한다.
예시 28(Example 28): 명령들로 인코딩되어 있는 컴퓨터-판독가능 저장 매체가 제공되며, 상기 명령들은 실행되는 경우 컴퓨팅 디바이스의 적어도 하나의 프로세서로 하여금, 예시 1 내지 예시 15 중 어느 하나에 기재된 방법을 수행하도록 한다.
예시 29(Example 29): 디바이스가 제공되며, 상기 디바이스는 적어도 하나의 프로세서, 그리고 적어도 하나의 모듈을 포함하고, 상기 적어도 하나의 모듈은 예시 1 내지 예시 15 중 어느 하나에 기재된 방법을 수행하도록 상기 적어도 하나의 프로세서에 의해 동작가능하다.
하나 이상의 예들에서, 앞서 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어 혹은 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 이러한 기능들은 하나 이상의 명령들 혹은 코드로서 컴퓨터-판독가능 매체에 저장될 수 있거나 컴퓨터-판독가능 매체를 통해 전송될 수 있으며, 하드웨어-기반의 프로세싱 유닛에 의해 실행될 수 있다. 컴퓨터-판독가능 매체들은, 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터-판독가능 저장 매체들을 포함할 수 있거나, 또는 예를 들어, 통신 프로토콜(communication protocol)에 따라 하나의 장소로부터 또 하나의 다른 장소로 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수 있다. 이러한 방식으로, 컴퓨터-판독가능 매체들은 일반적으로, (1) 비-일시적 저장 매체인 유형의 컴퓨터-판독가능 저장 매체들, 또는 (2) 신호 혹은 반송파(carrier wave)와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체들은 본 개시내용에서 설명되는 기법들의 구현을 위해 명령들, 코드 및/또는 데이터 구조들을 검색하기 위한 하나 이상의 컴퓨터들 혹은 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수 있다.
예를 들어, 비한정적 의미로서, 이러한 컴퓨터-판독가능 저장 매체들은, 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)들, 또는 다른 등가의 집적된 혹은 분리된 로직 회로가 있다. 이에 따라, 본 명세서에서 사용되는 바와 같은 용어 "프로세서"는 앞서의 구조 중 어느 하나를 지칭할 수 있거나, 또는 본 명세서에서 설명되는 기법들의 구현을 위해 적합한 임의의 다른 구조를 지칭할 수 있다. 추가적으로, 일부 실시형태들에서, 본 명세서에서 설명되는 기능은 전용 하드웨어 모듈 및/또는 소프트웨어 모듈 내에 제공될 수 있다. 또한, 이러한 기법들은 하나 이상의 회로들 혹은 로직 소자(logic element)들 내에 완전히 구현될 수 있다.
본 개시내용의 이러한 기법들은, 무선 핸드셋(wireless handset), 집적 회로(Integrated Circuit, IC) 혹은 IC들의 집합(예를 들어, 칩 셋(chip set))을 포함하는, 매우 광범위하고 다양한 디바이스들 혹은 장치들에서 구현될 수 있다. 다양한 컴포넌트들, 모듈들, 혹은 유닛들이, 본 명세서에서 개시되는 기법들을 수행하도록 구성된 디바이스들의 기능적 실시형태들을 강조하기 위해, 본 개시내용에서 설명되고 있지만, 이러한 서로 다른 하드웨어 유닛들에 의해 반드시 실현될 것을 요구하는 것은 아니다. 오히려, 앞서 설명된 바와 같이, 다양한 유닛들은 임의의 하드웨어 유닛 내에서 결합될 수 있고, 혹은 상호 간에 동작가능한 하드웨어 유닛들의 집합체에 의해 제공될 수 있는바, 여기에는 적절한 소프트웨어 및/또는 펌웨어와 결합된 앞서 설명된 바와 같은 하나 이상의 프로세서들이 포함된다.
실시예에 따라, 본 명세서에서 설명되는 방법들 중 임의의 방법의 특정 동작들 혹은 이벤트들은 전체적으로 상이한 시퀀스로 수행될 수 있거나, 추가될 수 있거나, 병합될 수 있거나, 혹은 배제될 수 있음(예를 들어, 설명되는 동작들 혹은 이벤트들 모두가 본 방법의 실시를 위해 필요한 것은 아님)을 이해해야 한다. 더욱이, 특정 실시예들에서, 이러한 동작들 혹은 이벤트들은, 순차적으로 수행되는 것이 아니라, 예를 들어, 멀티-쓰레디드 프로세싱(multi-threaded processing), 인터럽트 프로세싱(interrupt processing), 혹은 복수의 프로세서들을 통해 동시에 수행될 수 있다.
다양한 예들이 설명되었다. 이러한 예들 및 다른 예들은 아래에 제시되는 청구범위 내에 있다.

Claims (17)

  1. 복수의 키(key)들을 포함하는 그래픽 키보드(graphical keyboard)를 컴퓨팅 디바이스(computing device)에 의해 디스플레이(display)를 위해 출력하는 단계와;
    프레즌스 감지 입력 디바이스(presence-sensitive input device)에서 검출된 제스처(gesture)의 표시(indication)를 상기 컴퓨팅 디바이스에 의해 수신하는 단계와;
    상기 제스처에 의해 횡단(traverse)된 정렬 지점(alignment point) 및 단어 접두어(word prefix)에 적어도 부분적으로 근거하고 있는 정렬 점수(alignment score)를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와, 여기서 상기 정렬 점수는 상기 정렬 지점이 상기 복수의 키들 중 임의의 키를 표시할 확률(probability)을 나타내고;
    적어도 상기 단어 접두어의 일부분을 포함하는 철자 오기(misspelling)에 적어도 부분적으로 근거하고 있는 적어도 하나의 대안적 문자(alternative character)를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와;
    상기 대안적 문자에 적어도 부분적으로 근거하고 있는 대안적 정렬 점수(alternative alignment score)를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 그리고
    상기 대안적 정렬 점수에 적어도 부분적으로 근거하여 후보 단어(candidate word)를 상기 컴퓨팅 디바이스에 의해 디스플레이를 위해 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 단어 접두어는 제 1 부분문자열(substring) 및 제 2 부분문자열을 포함하고, 상기 제 2 부분문자열은 상기 적어도 하나의 문자를 포함하고,
    상기 적어도 하나의 대안적 문자를 결정하는 단계는 또한,
    상기 단어 접두어의 상기 제 2 부분문자열이 정정용 데이터(correction data) 내의 제 1 문자열(string)과 정합(match)됨을 상기 컴퓨팅 디바이스에 의해 결정하는 것과;
    상기 적어도 하나의 대안적 문자를 포함하는 상기 정정용 데이터 내의 제 2 문자열을 상기 컴퓨팅 디바이스에 의해 상기 정정용 데이터 내의 상기 제 1 문자열에 적어도 부분적으로 근거하여 결정하는 것과; 그리고
    상기 단어 접두어의 상기 제 1 부분문자열 및 상기 정정용 데이터 내의 상기 제 2 문자열을 포함하는 대안적 단어 접두어(alternative word prefix)를 상기 컴퓨팅 디바이스에 의해 발생시키는 것을 포함하는 것을 특징으로 하는 방법.
  3. 제1항 내지 제2항 중 어느 하나의 항에 있어서,
    상기 정정용 데이터 내의 상기 제 2 문자열은 상기 단어 접두어 내의 상기 제 2 부분문자열의 표음적 대체형태(phonetic substitution)를 포함하는 것을 특징으로 하는 방법.
  4. 제1항 내지 제3항 중 어느 하나의 항에 있어서,
    상기 단어 접두어의 부분문자열이 정정용 데이터 내의 제 1 문자열과 정합됨을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와;
    적어도 하나의 대안적 문자를 상기 컴퓨팅 디바이스에 의해 상기 정정용 데이터 내의 상기 제 1 문자열에 적어도 부분적으로 근거하여 결정하는 단계와; 그리고
    상기 단어 접두어 및 상기 적어도 하나의 대안적 문자를 포함하는 대안적 단어 접두어를 상기 컴퓨팅 디바이스에 의해 발생시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제1항 내지 제4항 중 어느 하나의 항에 있어서,
    상기 대안적 문자는 문자 집합(character set) 내의 각각의 가능한 문자를 나타내는 와일드카드 문자(wildcard character)를 포함하는 것을 특징으로 하는 방법.
  6. 제1항 내지 제5항 중 어느 하나의 항에 있어서,
    상기 적어도 하나의 대안적 문자는 적어도 하나의 플레이스홀더 값(placeholder value)을 포함하고,
    상기 적어도 하나의 대안적 문자를 결정하는 단계는 또한,
    적어도 상기 단어 접두어의 부분문자열을 포함하는 대안적 단어 접두어를 상기 컴퓨팅 디바이스에 의해 발생시키는 것과; 그리고
    적어도 하나의 플레이스홀더 값을 상기 컴퓨팅 디바이스에 의해 상기 대안적 단어 접두어 내에 삽입하는 것을 포함하고, 여기서 상기 적어도 하나의 플레이스홀더 값은 상기 대안적 단어 접두어에 근거하고 있는 하나 이상의 후보 단어들 내에 포함되지 않는 적어도 하나의 임의의 문자(arbitrary character)를 표시하는 것을 특징으로 하는 방법.
  7. 제1항 내지 제6항 중 어느 하나의 항에 있어서,
    상기 제스처는 제 1 제스처이고, 상기 방법은 또한,
    적어도 상기 단어 접두어의 부분문자열을 포함하는 대안적 단어 접두어를 상기 컴퓨팅 디바이스에 의해 발생시키는 단계와;
    상기 제 1 제스처에 후속하는 제 2 제스처의 표시를 수신함에 응답하여, 하나 이상의 문자들을 상기 대안적 단어 접두어 내에 삽입하는 것을 상기 컴퓨팅 디바이스에 의해 억제(refraining)하는 단계와; 그리고
    상기 제 2 제스처에 후속하는 제 3 제스처의 표시를 수신함에 응답하여, 적어도 하나의 문자를 상기 컴퓨팅 디바이스에 의해 상기 대안적 단어 접두어 내에 삽입하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제1항 내지 제7항 중 어느 하나의 항에 있어서,
    상기 단어 접두어는 제 1 부분문자열 및 제 2 부분문자열을 포함하고,
    상기 적어도 하나의 대안적 문자를 결정하는 단계는 또한,
    상기 제 2 부분문자열의 전치형태(transposition)를 상기 컴퓨팅 디바이스에 의해 결정하는 것과, 여기서 상기 제 2 부분문자열의 적어도 두 개의 문자들의 문자 위치들은 상기 전치형태에서 전치되어 있고, 상기 적어도 하나의 대안적 문자는 상기 전치형태에 포함되며; 그리고
    적어도 상기 전치형태를 포함하는 대안적 단어 접두어를 상기 컴퓨팅 디바이스에 의해 발생시키는 것을 포함하는 것을 특징으로 하는 방법.
  9. 제1항 내지 제8항 중 어느 하나의 항에 있어서,
    상기 제 1 부분문자열과 상기 제 2 부분문자열 중 적어도 하나가 정정용 데이터 내의 문자열과 정합됨을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 그리고
    상기 정합에 적어도 부분적으로 근거하여 상기 전치형태를 상기 컴퓨팅 디바이스에 의해 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제1항 내지 제9항 중 어느 하나의 항에 있어서,
    상기 적어도 하나의 대안적 문자를 결정하는 단계는, 상기 단어 접두어의 부분문자열에 적어도 부분적으로 근거하여 제 1 오류 정정 동작(error correction operation)을 적용(applying)하는 것을 포함하고,
    상기 방법은 또한,
    프레즌스 감지 입력 디바이스에서 검출되는 제스처의 후속 표시를 수신함에 응답하여, 상기 단어 접두어에 적용된 오류 정정 동작들의 양(quantity)을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 그리고
    상기 오류 정정 동작들의 양이 임계치(threshold)를 만족시킨다고 결정함에 응답하여, 상기 단어 접두어에 오류 정정 동작을 적용하는 것을 상기 컴퓨팅 디바이스에 의해 억제하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제1항 내지 제10항 중 어느 하나의 항에 있어서,
    상기 대안적 문자에 적어도 부분적으로 근거하고 있는 상기 대안적 정렬 점수를 결정하는 단계는 또한,
    상기 적어도 하나의 대안적 문자를 결정함에 응답하여 페널티 값(penalty value)을 상기 컴퓨팅 디바이스에 의해 결정하는 것과; 그리고
    상기 페널티 값에 적어도 부분적으로 근거하여 상기 대안적 정렬 점수를 상기 컴퓨팅 디바이스에 의해 결정하는 것을 포함하는 것을 특징으로 하는 방법.
  12. 제1항 내지 제11항 중 어느 하나의 항에 있어서,
    상기 적어도 하나의 대안적 문자를 결정하는 단계는, 상기 단어 접두어의 부분문자열에 적어도 부분적으로 근거하여 적어도 하나의 오류 정정 동작을 결정하는 것을 포함하고,
    상기 방법은 또한,
    복수의 오류 정정 동작들로부터 오류 정정 동작의 유형(type)을 상기 컴퓨팅 디바이스에 의해 결정하는 단계와; 그리고
    복수의 페널티 값들로부터 상기 페널티 값을 상기 컴퓨팅 디바이스에 의해 선택하는 단계를 포함하고, 여기서 상기 복수의 페널티 값들 내의 각각의 페널티 값은 정해진 순위의 순서대로 배열되어 있고, 각각이 페널티 값은 오류 정정 동작의 적어도 하나의 유형과 관련되는 것을 특징으로 하는 방법.
  13. 제1항 내지 제12항 중 어느 하나의 항에 있어서,
    상기 대안적 문자에 적어도 부분적으로 근거하여 상기 후보 단어를 출력하는 것은 또한,
    상기 대안적 정렬 점수가 임계치를 만족시킨다고 결정함에 응답하여, 상기 대안적 문자에 적어도 부분적으로 근거하여 상기 후보 단어를 상기 컴퓨팅 디바이스에 의해 디스플레이를 위해 출력하는 것을 포함하고, 여기서 상기 임계치는 단어 접두어들의 제 1 부분집합(subset)의 양과 동일한 값을 포함하고, 단어 접두어들의 상기 제 1 부분집합은 단어 접두어들의 제 2 부분집합 내의 단어 접두어들과 관련된 정렬 점수보다 더 큰 하나 이상의 정렬 점수들과 관련된 단어 접두어들의 부분집합인 것을 특징으로 하는 방법.
  14. 제1항 내지 제13항 중 어느 하나의 항에 있어서,
    상기 적어도 하나의 대안적 문자를 결정하는 단계는, 상기 단어 접두어의 부분문자열에 적어도 부분적으로 근거하여 제 1 오류 정정 동작을 적용하는 것을 포함하고,
    상기 방법은 또한,
    프레즌스 감지 입력 디바이스에서 검출되는 제스처의 후속 표시를 수신함에 응답하여, 어휘 목록(lexicon) 내의 적어도 하나의 후보 단어와 상기 단어 접두어 간의 유사성의 정도를 상기 컴퓨팅 디바이스에 의해 결정하는 단계와, 여기서 상기 유사성의 정도는 임의 범위의 유사성의 정도들 내에 있고; 그리고
    상기 유사성의 정도가 임계치를 만족시키지 않는다고 결정함에 응답하여 상기 단어 접두어에 오류 정정 동작을 적용하는 것을 상기 컴퓨팅 디바이스에 의해 억제하는 단계를 포함하는 것을 특징으로 하는 방법.
  15. 제1항 내지 제14항 중 어느 하나의 항에 있어서,
    상기 정렬 점수가 임계치를 만족시키는 데 실패했다고 상기 컴퓨팅 디바이스에 의해 결정함에 응답하여, 적어도 상기 단어 접두어의 일부분을 포함하는 상기 철자 오기에 적어도 부분적으로 근거하고 있는 상기 적어도 하나의 대안적 문자를 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. 컴퓨터 판독가능 저장 매체로서, 상기 컴퓨터 판독가능 저장 매체에는 명령들이 인코딩되어 있고, 상기 명령들은 실행되는 경우 컴퓨팅 디바이스의 적어도 하나의 프로세서로 하여금 청구항 제1항 내지 제15항 중 어느 하나의 항에 기재된 방법을 수행하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  17. 적어도 하나의 프로세서 및 적어도 하나의 모듈을 포함하는 디바이스로서,
    상기 적어도 하나의 모듈은 청구항 제1항 내지 제15항 중 어느 하나의 항에 기재된 방법을 수행하도록 상기 적어도 하나의 프로세서에 의해 동작가능한 것을 특징으로 하는 디바이스.
KR1020157033499A 2013-05-03 2014-05-01 제스처 타이핑에 대한 대안적 가정형태의 오류 정정 KR101750969B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361819363P 2013-05-03 2013-05-03
US61/819,363 2013-05-03
US13/907,614 US9081500B2 (en) 2013-05-03 2013-05-31 Alternative hypothesis error correction for gesture typing
US13/907,614 2013-05-31
PCT/US2014/036459 WO2014179624A1 (en) 2013-05-03 2014-05-01 Alternative hypothesis error correction for gesture typing

Publications (2)

Publication Number Publication Date
KR20160003765A true KR20160003765A (ko) 2016-01-11
KR101750969B1 KR101750969B1 (ko) 2017-06-26

Family

ID=51841200

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157033499A KR101750969B1 (ko) 2013-05-03 2014-05-01 제스처 타이핑에 대한 대안적 가정형태의 오류 정정

Country Status (7)

Country Link
US (3) US9081500B2 (ko)
EP (1) EP2992406B1 (ko)
KR (1) KR101750969B1 (ko)
CN (1) CN105378606B (ko)
AU (1) AU2014259754B2 (ko)
CA (1) CA2910413C (ko)
WO (1) WO2014179624A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081500B2 (en) 2013-05-03 2015-07-14 Google Inc. Alternative hypothesis error correction for gesture typing
US9690478B2 (en) * 2014-03-04 2017-06-27 Texas Instruments Incorporated Method and system for processing gestures to cause computation of measurement of an angle or a segment using a touch system
US9952763B1 (en) * 2014-08-26 2018-04-24 Google Llc Alternative gesture mapping for a graphical keyboard
CN104268166B (zh) * 2014-09-09 2017-04-19 北京搜狗科技发展有限公司 一种输入方法、装置和电子设备
USD771646S1 (en) * 2014-09-30 2016-11-15 Apple Inc. Display screen or portion thereof with graphical user interface
CN104317426B (zh) * 2014-09-30 2018-02-27 联想(北京)有限公司 输入方法及电子设备
CN104615591B (zh) * 2015-03-10 2019-02-05 上海触乐信息科技有限公司 基于上下文的前向输入纠错方法和装置
US9678664B2 (en) 2015-04-10 2017-06-13 Google Inc. Neural network for keyboard input decoding
US10402490B1 (en) * 2015-08-14 2019-09-03 Shutterstock, Inc. Edit distance based spellcheck
CN107229348B (zh) * 2016-03-23 2021-11-02 北京搜狗科技发展有限公司 一种输入纠错方法、装置和用于输入纠错的装置
US20180018086A1 (en) * 2016-07-14 2018-01-18 Google Inc. Pressure-based gesture typing for a graphical keyboard
US10884610B2 (en) * 2016-11-04 2021-01-05 Myscript System and method for recognizing handwritten stroke input
US10572591B2 (en) * 2016-11-18 2020-02-25 Lenovo (Singapore) Pte. Ltd. Input interpretation based upon a context
US20180188823A1 (en) * 2017-01-04 2018-07-05 International Business Machines Corporation Autocorrect with weighted group vocabulary
US20190013016A1 (en) * 2017-07-07 2019-01-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Converting speech to text and inserting a character associated with a gesture input by a user
CN107390894A (zh) * 2017-07-21 2017-11-24 Tcl移动通信科技(宁波)有限公司 五笔输入法的输入前识别控制方法、存储装置及移动终端
US11928083B2 (en) 2017-10-09 2024-03-12 Box, Inc. Determining collaboration recommendations from file path information
US11030223B2 (en) * 2017-10-09 2021-06-08 Box, Inc. Collaboration activity summaries
US11709753B2 (en) 2017-10-09 2023-07-25 Box, Inc. Presenting collaboration activities
RU2726009C1 (ru) 2017-12-27 2020-07-08 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для исправления неверного набора слова вследствие ошибки ввода с клавиатуры и/или неправильной раскладки клавиатуры
US11061556B2 (en) * 2018-01-12 2021-07-13 Microsoft Technology Licensing, Llc Computer device having variable display output based on user input with variable time and/or pressure patterns
JP2020026086A (ja) * 2018-08-10 2020-02-20 京セラドキュメントソリューションズ株式会社 画像形成装置
US10757208B2 (en) 2018-08-28 2020-08-25 Box, Inc. Curating collaboration activity
US11163834B2 (en) 2018-08-28 2021-11-02 Box, Inc. Filtering collaboration activity
US10788889B1 (en) * 2019-03-25 2020-09-29 Raytheon Company Virtual reality locomotion without motion controllers
WO2023137099A2 (en) * 2022-01-14 2023-07-20 Bierman, Ellen, M. Contextual keyboard input method, system, and techniques

Family Cites Families (232)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4534261A (en) 1983-03-30 1985-08-13 Raymond Fabrizio Vent key modification for flute
US4833610A (en) * 1986-12-16 1989-05-23 International Business Machines Corporation Morphological/phonetic method for ranking word similarities
US4988981B1 (en) 1987-03-17 1999-05-18 Vpl Newco Inc Computer data entry and manipulation apparatus and method
US4847766A (en) 1988-01-05 1989-07-11 Smith Corona Corporation Dictionary typewriter with correction of commonly confused words
US5075896A (en) 1989-10-25 1991-12-24 Xerox Corporation Character and phoneme recognition based on probability clustering
US5307267A (en) 1990-03-27 1994-04-26 Yang Gong M Method and keyboard for input of characters via use of specified shapes and patterns
EP0450196B1 (en) 1990-04-02 1998-09-09 Koninklijke Philips Electronics N.V. Data processing system using gesture-based input data
US5604897A (en) 1990-05-18 1997-02-18 Microsoft Corporation Method and system for correcting the spelling of misspelled words
US6094188A (en) 1990-11-30 2000-07-25 Sun Microsystems, Inc. Radio frequency tracking system
US5202803A (en) 1991-07-02 1993-04-13 International Business Machines Corporation Disk file with liquid film head-disk interface
US5848187A (en) 1991-11-18 1998-12-08 Compaq Computer Corporation Method and apparatus for entering and manipulating spreadsheet cell data
FR2689290B1 (fr) 1992-03-26 1994-06-10 Aerospatiale Procede et dispositif de communication multimodes et multifonctions entre un operateur et un ou plusieurs processeurs.
CA2089784C (en) 1992-04-15 1996-12-24 William Joseph Anderson Apparatus and method for disambiguating an input stream generated by a stylus-based user interface
JP3367116B2 (ja) 1992-09-02 2003-01-14 ヤマハ株式会社 電子楽器
US5502803A (en) 1993-01-18 1996-03-26 Sharp Kabushiki Kaisha Information processing apparatus having a gesture editing function
US5677710A (en) 1993-05-10 1997-10-14 Apple Computer, Inc. Recognition keypad
US5522932A (en) 1993-05-14 1996-06-04 Applied Materials, Inc. Corrosion-resistant apparatus
US5606494A (en) 1993-11-25 1997-02-25 Casio Computer Co., Ltd. Switching apparatus
US6008799A (en) * 1994-05-24 1999-12-28 Microsoft Corporation Method and system for entering data using an improved on-screen keyboard
JPH0844719A (ja) 1994-06-01 1996-02-16 Mitsubishi Electric Corp 辞書アクセスシステム
US5761689A (en) 1994-09-01 1998-06-02 Microsoft Corporation Autocorrecting text typed into a word processing document
WO1996009579A1 (en) 1994-09-22 1996-03-28 Izak Van Cruyningen Popup menus with directional gestures
US5521986A (en) 1994-11-30 1996-05-28 American Tel-A-Systems, Inc. Compact data input device
FI97508C (fi) 1995-01-09 1996-12-27 Nokia Mobile Phones Ltd Pikavalinta henkilökohtaisessa matkaviestimessä
US5748512A (en) * 1995-02-28 1998-05-05 Microsoft Corporation Adjusting keyboard
US5797098A (en) 1995-07-19 1998-08-18 Pacific Communication Sciences, Inc. User interface for cellular telephone
JPH0981364A (ja) 1995-09-08 1997-03-28 Nippon Telegr & Teleph Corp <Ntt> マルチモーダル情報入力方法及び装置
US6061050A (en) 1995-10-27 2000-05-09 Hewlett-Packard Company User interface device
US6041292A (en) 1996-01-16 2000-03-21 Jochim; Carol Real time stenographic system utilizing vowel omission principle
USRE37654E1 (en) 1996-01-22 2002-04-16 Nicholas Longo Gesture synthesizer for electronic sound device
US6115482A (en) 1996-02-13 2000-09-05 Ascent Technology, Inc. Voice-output reading system with gesture-based navigation
JP3280559B2 (ja) 1996-02-20 2002-05-13 シャープ株式会社 ジョグダイアルの模擬入力装置
US5917493A (en) 1996-04-17 1999-06-29 Hewlett-Packard Company Method and apparatus for randomly generating information for subsequent correlating
US5905246A (en) 1996-10-31 1999-05-18 Fajkowski; Peter W. Method and apparatus for coupon management and redemption
JP3889466B2 (ja) 1996-11-25 2007-03-07 ソニー株式会社 文章入力装置及び方法
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
US6047300A (en) 1997-05-15 2000-04-04 Microsoft Corporation System and method for automatically correcting a misspelled word
US6278453B1 (en) 1997-06-13 2001-08-21 Starfish Software, Inc. Graphical password methodology for a microprocessor device accepting non-alphanumeric user input
US6686931B1 (en) 1997-06-13 2004-02-03 Motorola, Inc. Graphical password methodology for a microprocessor device accepting non-alphanumeric user input
US6141011A (en) 1997-08-04 2000-10-31 Starfish Software, Inc. User interface methodology supporting light data entry for microprocessor device having limited user input
US6160555A (en) 1997-11-17 2000-12-12 Hewlett Packard Company Method for providing a cue in a computer system
US6057845A (en) 1997-11-14 2000-05-02 Sensiva, Inc. System, method, and apparatus for generation and recognizing universal commands
WO1999028811A1 (en) 1997-12-04 1999-06-10 Northern Telecom Limited Contextual gesture interface
US7614008B2 (en) 2004-07-30 2009-11-03 Apple Inc. Operation of a computer with touch screen interface
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
KR100327209B1 (ko) 1998-05-12 2002-04-17 윤종용 첨펜의자취를이용한소프트웨어키보드시스템및그에따른키코드인식방법
US6438523B1 (en) 1998-05-20 2002-08-20 John A. Oberteuffer Processing handwritten and hand-drawn input and speech input
US6424983B1 (en) 1998-05-26 2002-07-23 Global Information Research And Technologies, Llc Spelling and grammar checking system
US6131102A (en) * 1998-06-15 2000-10-10 Microsoft Corporation Method and system for cost computation of spelling suggestions and automatic replacement
US6407679B1 (en) 1998-07-31 2002-06-18 The Research Foundation Of The State University Of New York System and method for entering text in a virtual environment
US6150600A (en) 1998-12-01 2000-11-21 Buchla; Donald F. Inductive location sensor system and electronic percussion system
GB2347247A (en) 1999-02-22 2000-08-30 Nokia Mobile Phones Ltd Communication terminal with predictive editor
US7293231B1 (en) 1999-03-18 2007-11-06 British Columbia Ltd. Data entry for personal computing devices
US7750891B2 (en) 2003-04-09 2010-07-06 Tegic Communications, Inc. Selective input system based on tracking of motion parameters of an input device
NZ519928A (en) 1999-05-27 2004-07-30 America Online Inc Keyboard system with automatic correction
US7030863B2 (en) 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US6904405B2 (en) 1999-07-17 2005-06-07 Edwin A. Suominen Message recognition using shared language model
US6396523B1 (en) 1999-07-29 2002-05-28 Interlink Electronics, Inc. Home entertainment device remote control
US6512838B1 (en) 1999-09-22 2003-01-28 Canesta, Inc. Methods for enhancing performance and data acquired from three-dimensional image systems
US6789231B1 (en) 1999-10-05 2004-09-07 Microsoft Corporation Method and system for providing alternatives for text derived from stochastic input sources
US7798417B2 (en) 2000-01-03 2010-09-21 Snyder David M Method for data interchange
DE60025901T2 (de) 2000-01-11 2006-08-24 International Business Machines Corp. Verfahren und Vorrichtung zur Markierung eines Textdokuments mit einem Muster von zusätzlichen Leerstellen zum Zweck der Authentifizierung
US6573844B1 (en) 2000-01-18 2003-06-03 Microsoft Corporation Predictive keyboard
US7028259B1 (en) 2000-02-01 2006-04-11 Jacobson Robert L Interactive legal citation checker
US6630924B1 (en) 2000-02-22 2003-10-07 International Business Machines Corporation Gesture sensing split keyboard and approach for capturing keystrokes
US7047493B1 (en) 2000-03-31 2006-05-16 Brill Eric D Spell checker with arbitrary length string-to-string transformations to improve noisy channel spelling correction
US7035788B1 (en) 2000-04-25 2006-04-25 Microsoft Corporation Language model sharing
CA2416835A1 (en) 2000-07-21 2002-01-31 Raphael Bachmann Method for a high-speed writing system and high-speed writing device
US20020015064A1 (en) 2000-08-07 2002-02-07 Robotham John S. Gesture-based user interface to multi-level and multi-modal sets of bit-maps
US6606597B1 (en) 2000-09-08 2003-08-12 Microsoft Corporation Augmented-word language model
US20020194223A1 (en) 2000-10-16 2002-12-19 Text Analysis International, Inc. Computer programming language, system and method for building text analyzers
EP1887451A3 (en) 2000-10-18 2009-06-24 602531 British Columbia Ltd. Data entry method and system for personal computer, and corresponding computer readable medium
US7336827B2 (en) * 2000-11-08 2008-02-26 New York University System, process and software arrangement for recognizing handwritten characters
US6570557B1 (en) 2001-02-10 2003-05-27 Finger Works, Inc. Multi-touch system and method for emulating modifier keys via fingertip chords
CA2340531C (en) 2001-03-12 2006-10-10 Ibm Canada Limited-Ibm Canada Limitee Document retrieval system and search method using word set and character look-up tables
US7035794B2 (en) 2001-03-30 2006-04-25 Intel Corporation Compressing and using a concatenative speech database in text-to-speech systems
FI116591B (fi) 2001-06-29 2005-12-30 Nokia Corp Menetelmä ja laite toiminnon toteuttamiseksi
US7042443B2 (en) 2001-10-11 2006-05-09 Woodard Scott E Speed Writer program and device with Speed Writer program installed
US7610189B2 (en) 2001-10-18 2009-10-27 Nuance Communications, Inc. Method and apparatus for efficient segmentation of compound words using probabilistic breakpoint traversal
US7296019B1 (en) 2001-10-23 2007-11-13 Microsoft Corporation System and methods for providing runtime spelling analysis and correction
US7362243B2 (en) 2001-11-16 2008-04-22 International Business Machines Corporation Apparatus and method using color-coded or pattern-coded keys in two-key input per character text entry
US6765556B2 (en) 2001-11-16 2004-07-20 International Business Machines Corporation Two-key input per character text entry apparatus and method
US7075520B2 (en) 2001-12-12 2006-07-11 Zi Technology Corporation Ltd Key press disambiguation using a keypad of multidirectional keys
US7231343B1 (en) 2001-12-20 2007-06-12 Ianywhere Solutions, Inc. Synonyms mechanism for natural language systems
US7175438B2 (en) 2002-03-01 2007-02-13 Digit Wireless Fast typing system and method
US7170430B2 (en) 2002-03-28 2007-01-30 Michael Goodgoll System, method, and computer program product for single-handed data entry
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
DE60212976T2 (de) 2002-11-20 2006-11-16 Nokia Corp. Verfahren und Benutzerschnittstelle zur Zeicheneingabe
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
US7382358B2 (en) 2003-01-16 2008-06-03 Forword 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
NZ529518A (en) 2003-11-13 2005-03-24 Andy Zheng Song Input method, system and device
US20050114115A1 (en) 2003-11-26 2005-05-26 Karidis John P. Typing accuracy relaxation system and method in stylus and other keyboards
DE10357475A1 (de) * 2003-12-09 2005-07-07 Siemens Ag Kommunikationsvorrichtung und Verfahren zum Eingeben und Vorhersagen von Text
US7250938B2 (en) * 2004-01-06 2007-07-31 Lenovo (Singapore) Pte. Ltd. System and method for improved user input on personal computing devices
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
US8095364B2 (en) 2004-06-02 2012-01-10 Tegic Communications, Inc. Multimodal disambiguation of speech recognition
ATE418756T1 (de) 2004-06-02 2009-01-15 Research In Motion Ltd Tragbares elektronisches gerät mit eliminierung der vieldeutigkeit bei texteingabe
US20060004638A1 (en) 2004-07-02 2006-01-05 Royal Eliza H Assisted electronic product design
JP4284531B2 (ja) 2004-07-06 2009-06-24 オムロン株式会社 実装用基板及びそれを使用した駆動装置
US7207004B1 (en) 2004-07-23 2007-04-17 Harrity Paul A Correction of misspelled words
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
US20060055669A1 (en) 2004-09-13 2006-03-16 Mita Das Fluent user interface for text entry on touch-sensitive display
WO2006068250A1 (ja) 2004-12-24 2006-06-29 Japan Science And Technology Agency ナノ黒鉛構造体-金属ナノ粒子複合体
US8552984B2 (en) 2005-01-13 2013-10-08 602531 British Columbia Ltd. Method, system, apparatus and computer-readable media for directing input associated with keyboard-type device
US7487461B2 (en) 2005-05-04 2009-02-03 International Business Machines Corporation System and method for issuing commands based on pen motions on a graphical keyboard
US20060256139A1 (en) 2005-05-11 2006-11-16 Gikandi David C Predictive text computer simplified keyboard with word and phrase auto-completion (plus text-to-speech and a foreign language translation option)
US8036878B2 (en) 2005-05-18 2011-10-11 Never Wall Treuhand GmbH Device incorporating improved text input mechanism
US7886233B2 (en) 2005-05-23 2011-02-08 Nokia Corporation Electronic text input involving word completion functionality for predicting word candidates for partial word inputs
US20070016862A1 (en) 2005-07-15 2007-01-18 Microth, Inc. Input guessing systems, methods, and computer program products
GB0516246D0 (en) 2005-08-08 2005-09-14 Scanlan Timothy A data entry device and method
US20070152980A1 (en) 2006-01-05 2007-07-05 Kenneth Kocienda Touch Screen Keyboards for Portable Electronic Devices
US7542029B2 (en) 2005-09-20 2009-06-02 Cliff Kushler System and method for a user interface for text editing and menu selection
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
US20070106317A1 (en) 2005-11-09 2007-05-10 Shelton Frederick E Iv Hydraulically and electrically actuated articulation joints for surgical instruments
US7774294B2 (en) 2006-03-06 2010-08-10 Veveo, Inc. Methods and systems for selecting and presenting content based on learned periodicity of user content selection
US7831911B2 (en) 2006-03-08 2010-11-09 Microsoft Corporation Spell checking system including a phonetic speller
ITRM20060136A1 (it) 2006-03-10 2007-09-11 Link Formazione S R L Sistema multimediale interattivo
EP1860576A1 (en) 2006-05-23 2007-11-28 Harman/Becker Automotive Systems GmbH Indexing big world lists in databases
US7831423B2 (en) 2006-05-25 2010-11-09 Multimodal Technologies, Inc. Replacing text representing a concept with an alternate written form of the concept
CN101529494B (zh) 2006-07-03 2012-01-04 克利夫·库什勒 文本编辑和菜单选择用户界面的系统和方法
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US7774193B2 (en) 2006-12-05 2010-08-10 Microsoft Corporation Proofing of word collocation errors based on a comparison with collocations in a corpus
US20080172293A1 (en) 2006-12-28 2008-07-17 Yahoo! Inc. Optimization framework for association of advertisements with sequential media
US7907125B2 (en) 2007-01-05 2011-03-15 Microsoft Corporation Recognizing multiple input point gestures
US7957955B2 (en) * 2007-01-05 2011-06-07 Apple Inc. Method and system for providing word recommendations for text input
US8074172B2 (en) 2007-01-05 2011-12-06 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US8225203B2 (en) 2007-02-01 2012-07-17 Nuance Communications, Inc. Spell-check for a keyboard system with automatic correction
US7809719B2 (en) 2007-02-08 2010-10-05 Microsoft Corporation Predicting textual candidates
US20080229255A1 (en) 2007-03-15 2008-09-18 Nokia Corporation Apparatus, method and system for gesture detection
US20080232885A1 (en) 2007-03-19 2008-09-25 Giftventure Studios, Inc. Systems and Methods for Creating Customized Activities
US7903883B2 (en) 2007-03-30 2011-03-08 Microsoft Corporation Local bi-gram model for object recognition
US7895518B2 (en) 2007-04-27 2011-02-22 Shapewriter Inc. System and method for preview and selection of words
US8504349B2 (en) 2007-06-18 2013-08-06 Microsoft Corporation Text prediction with partial selection in a variety of domains
US8059101B2 (en) 2007-06-22 2011-11-15 Apple Inc. Swipe gestures for touch screen keyboards
TW200905538A (en) 2007-07-31 2009-02-01 Elan Microelectronics Corp Touch position detector of capacitive touch panel and method of detecting the touch position
US20090058823A1 (en) 2007-09-04 2009-03-05 Apple Inc. Virtual Keyboards in Multi-Language Environment
US8661340B2 (en) 2007-09-13 2014-02-25 Apple Inc. Input methods for device having multi-language environment
US8015232B2 (en) * 2007-10-11 2011-09-06 Roaming Keyboards Llc Thin terminal computer architecture utilizing roaming keyboard files
US20090100383A1 (en) 2007-10-16 2009-04-16 Microsoft Corporation Predictive gesturing in graphical user interface
US20090119376A1 (en) 2007-11-06 2009-05-07 International Busness Machines Corporation Hint-Based Email Address Construction
US8232973B2 (en) 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US8456425B2 (en) 2008-01-30 2013-06-04 International Business Machines Corporation Self-adapting keypad
US8280886B2 (en) 2008-02-13 2012-10-02 Fujitsu Limited Determining candidate terms related to terms of a query
US20090249198A1 (en) 2008-04-01 2009-10-01 Yahoo! Inc. Techniques for input recogniton and completion
US20100021871A1 (en) 2008-07-24 2010-01-28 Layng Terrence V Teaching reading comprehension
US8619048B2 (en) 2008-08-08 2013-12-31 Moonsun Io Ltd. Method and device of stroke based user input
AU2009280785A1 (en) 2008-08-12 2010-02-18 Keyless Systems Ltd. Data entry system
US20100070908A1 (en) 2008-09-18 2010-03-18 Sun Microsystems, Inc. System and method for accepting or rejecting suggested text corrections
US20100079382A1 (en) 2008-09-26 2010-04-01 Suggs Bradley N Touch-screen monitoring
WO2010053437A1 (en) 2008-11-04 2010-05-14 Saplo Ab Method and system for analyzing text
US7996369B2 (en) 2008-11-14 2011-08-09 The Regents Of The University Of California Method and apparatus for improving performance of approximate string queries using variable length high-quality grams
US20100131447A1 (en) 2008-11-26 2010-05-27 Nokia Corporation Method, Apparatus and Computer Program Product for Providing an Adaptive Word Completion Mechanism
KR101126406B1 (ko) 2008-11-27 2012-04-20 엔에이치엔(주) 유사어 결정 방법 및 시스템
US20100141484A1 (en) 2008-12-08 2010-06-10 Research In Motion Limited Optimized keyboard for handheld thumb-typing and touch-typing
US20100199226A1 (en) 2009-01-30 2010-08-05 Nokia Corporation Method and Apparatus for Determining Input Information from a Continuous Stroke Input
SG177239A1 (en) 2009-02-04 2012-02-28 Keyless Systems Ltd Data entry system
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9311112B2 (en) 2009-03-16 2016-04-12 Apple Inc. Event recognition
US8566044B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US20100235780A1 (en) 2009-03-16 2010-09-16 Westerman Wayne C System and Method for Identifying Words Based on a Sequence of Keyboard Events
US20100238125A1 (en) 2009-03-20 2010-09-23 Nokia Corporation Method, Apparatus, and Computer Program Product For Discontinuous Shapewriting
KR101844366B1 (ko) 2009-03-27 2018-04-02 삼성전자 주식회사 터치 제스처 인식 장치 및 방법
US9189472B2 (en) 2009-03-30 2015-11-17 Touchtype Limited System and method for inputting text into small screen devices
GB0905457D0 (en) 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
US20120046544A1 (en) 2009-04-16 2012-02-23 Shimadzu Corporation Radiation tomography apparatus
US20100315266A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Predictive interfaces with usability constraints
CN101963840B (zh) 2009-07-22 2015-03-18 罗技欧洲公司 用于远程、虚拟屏幕输入的系统和方法
WO2011014978A1 (en) 2009-08-04 2011-02-10 Google Inc. Generating search query suggestions
US9317116B2 (en) 2009-09-09 2016-04-19 Immersion Corporation Systems and methods for haptically-enhanced text interfaces
US20110063231A1 (en) 2009-09-14 2011-03-17 Invotek, Inc. Method and Device for Data Input
US8341558B2 (en) 2009-09-16 2012-12-25 Google Inc. Gesture recognition on computing device correlating input to a template
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
US8386574B2 (en) 2009-10-29 2013-02-26 Xerox Corporation Multi-modality classification for one-class classification in social networks
US8365059B2 (en) 2009-11-03 2013-01-29 Oto Technologies, Llc E-reader semantic text manipulation
US8884872B2 (en) 2009-11-20 2014-11-11 Nuance Communications, Inc. Gesture-based repetition of key activations on a virtual keyboard
US8358281B2 (en) 2009-12-15 2013-01-22 Apple Inc. Device, method, and graphical user interface for management and manipulation of user interface elements
US8587532B2 (en) 2009-12-18 2013-11-19 Intel Corporation Multi-feature interactive touch user interface
US8782556B2 (en) 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
US9417787B2 (en) 2010-02-12 2016-08-16 Microsoft Technology Licensing, Llc Distortion effects to indicate location in a movable data collection
US8515969B2 (en) 2010-02-19 2013-08-20 Go Daddy Operating Company, LLC Splitting a character string into keyword strings
US9965165B2 (en) 2010-02-19 2018-05-08 Microsoft Technology Licensing, Llc Multi-finger gestures
KR101557358B1 (ko) 2010-02-25 2015-10-06 엘지전자 주식회사 문자열 입력 방법 및 그 장치
US20110210850A1 (en) 2010-02-26 2011-09-01 Phuong K Tran Touch-screen keyboard with combination keys and directional swipes
CN101788855B (zh) 2010-03-09 2013-04-17 华为终端有限公司 一种获取用户输入信息的方法、装置及通信终端
EP2545426A4 (en) 2010-03-12 2017-05-17 Nuance Communications, Inc. Multimodal text input system, such as for use with touch screens on mobile phones
US8542195B2 (en) 2010-03-30 2013-09-24 International Business Machines Corporation Method for optimization of soft keyboards for multiple languages
CN101853126B (zh) * 2010-05-12 2012-02-15 中国科学院自动化研究所 一种联机手写句子实时识别方法
US8266528B1 (en) 2010-06-24 2012-09-11 Google Inc. Spelling suggestions based on an input sequence including accidental “delete”
US8918734B2 (en) 2010-07-28 2014-12-23 Nuance Communications, Inc. Reduced keyboard with prediction solutions when input is a partial sliding trajectory
US20120036468A1 (en) 2010-08-03 2012-02-09 Nokia Corporation User input remapping
US20120036485A1 (en) 2010-08-09 2012-02-09 XMG Studio Motion Driven User Interface
US8898586B2 (en) 2010-09-24 2014-11-25 Google Inc. Multiple touchpoints for efficient text input
GB201200643D0 (en) 2012-01-16 2012-02-29 Touchtype Ltd System and method for inputting text
US8810581B2 (en) 2010-10-20 2014-08-19 Blackberry Limited Character input method
US20120113008A1 (en) 2010-11-08 2012-05-10 Ville Makinen On-screen keyboard with haptic effects
WO2012068407A2 (en) 2010-11-17 2012-05-24 Imerj LLC Multi-screen email client
US9870141B2 (en) 2010-11-19 2018-01-16 Microsoft Technology Licensing, Llc Gesture recognition
CN103649876B (zh) 2010-11-20 2017-02-15 纽昂斯通信有限公司 使用上下文键盘在计算设备上执行操作
US20120166428A1 (en) 2010-12-22 2012-06-28 Yahoo! Inc Method and system for improving quality of web content
US8730188B2 (en) * 2010-12-23 2014-05-20 Blackberry Limited Gesture input on a portable electronic device and method of controlling the same
US8922489B2 (en) 2011-03-24 2014-12-30 Microsoft Corporation Text input using key and gesture information
US8914275B2 (en) 2011-04-06 2014-12-16 Microsoft Corporation Text prediction
US8570372B2 (en) 2011-04-29 2013-10-29 Austin Russell Three-dimensional imager and projection device
US8587542B2 (en) 2011-06-01 2013-11-19 Motorola Mobility Llc Using pressure differences with a touch-sensitive display screen
US9471560B2 (en) 2011-06-03 2016-10-18 Apple Inc. Autocorrecting language input for virtual keyboards
US8719719B2 (en) 2011-06-17 2014-05-06 Google Inc. Graphical icon presentation
US20130212515A1 (en) 2012-02-13 2013-08-15 Syntellia, Inc. User interface for text input
US8751972B2 (en) 2011-09-20 2014-06-10 Google Inc. Collaborative gesture-based input language
US20130082824A1 (en) 2011-09-30 2013-04-04 Nokia Corporation Feedback response
US8490008B2 (en) * 2011-11-10 2013-07-16 Research In Motion Limited Touchscreen keyboard predictive display and generation of a set of characters
US9310889B2 (en) 2011-11-10 2016-04-12 Blackberry Limited Touchscreen keyboard predictive display and generation of a set of characters
US9122672B2 (en) 2011-11-10 2015-09-01 Blackberry Limited In-letter word prediction for virtual keyboard
CN102411477A (zh) 2011-11-16 2012-04-11 鸿富锦精密工业(深圳)有限公司 电子设备及其文本导读方法
CN102508553A (zh) 2011-11-23 2012-06-20 赵来刚 电子产品手持输入数据和指令的技术
US8436827B1 (en) 2011-11-29 2013-05-07 Google Inc. Disambiguating touch-input based on variation in characteristic such as speed or pressure along a touch-trail
EP2812777A4 (en) 2012-02-06 2015-11-25 Michael K Colby STRING COMPLETION
CN102629158B (zh) 2012-02-29 2015-04-08 广东威创视讯科技股份有限公司 基于触摸屏系统的文字输入方法及装置
US8667414B2 (en) 2012-03-23 2014-03-04 Google Inc. Gestural input at a virtual keyboard
US9021380B2 (en) 2012-10-05 2015-04-28 Google Inc. Incremental multi-touch gesture recognition
US8782549B2 (en) 2012-10-05 2014-07-15 Google Inc. Incremental feature-based gesture-keyboard decoding
US8850350B2 (en) 2012-10-16 2014-09-30 Google Inc. Partial gesture text entry
US8701032B1 (en) 2012-10-16 2014-04-15 Google Inc. Incremental multi-word recognition
US8843845B2 (en) 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
US8819574B2 (en) 2012-10-22 2014-08-26 Google Inc. Space prediction for text input
US8832589B2 (en) 2013-01-15 2014-09-09 Google Inc. Touch keyboard using language and spatial models
US9081500B2 (en) 2013-05-03 2015-07-14 Google Inc. Alternative hypothesis error correction for gesture typing

Also Published As

Publication number Publication date
EP2992406A1 (en) 2016-03-09
CN105378606A (zh) 2016-03-02
AU2014259754B2 (en) 2016-08-18
KR101750969B1 (ko) 2017-06-26
CN105378606B (zh) 2018-10-02
US20150277757A1 (en) 2015-10-01
US20140327622A1 (en) 2014-11-06
WO2014179624A1 (en) 2014-11-06
US9081500B2 (en) 2015-07-14
EP2992406B1 (en) 2022-01-12
US9841895B2 (en) 2017-12-12
US20180074698A1 (en) 2018-03-15
CA2910413C (en) 2019-04-02
AU2014259754A1 (en) 2015-11-12
CA2910413A1 (en) 2014-11-06
US10241673B2 (en) 2019-03-26

Similar Documents

Publication Publication Date Title
KR101750969B1 (ko) 제스처 타이핑에 대한 대안적 가정형태의 오류 정정
US11379663B2 (en) Multi-gesture text input prediction
US10073536B2 (en) Virtual keyboard input for international languages
KR101477530B1 (ko) 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템
US9026428B2 (en) Text/character input system, such as for use with touch screens on mobile phones
US9047268B2 (en) Character and word level language models for out-of-vocabulary text input
KR101484583B1 (ko) 대체 점수를 사용하여 사전-내에-없는 문자열들의 제스처 키보드 입력
EP3241105B1 (en) Suggestion selection during continuous gesture input
US9298276B1 (en) Word prediction for numbers and symbols

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant