KR102078785B1 - 세계어들을 위한 가상 키보드 입력 - Google Patents
세계어들을 위한 가상 키보드 입력 Download PDFInfo
- Publication number
- KR102078785B1 KR102078785B1 KR1020157029527A KR20157029527A KR102078785B1 KR 102078785 B1 KR102078785 B1 KR 102078785B1 KR 1020157029527 A KR1020157029527 A KR 1020157029527A KR 20157029527 A KR20157029527 A KR 20157029527A KR 102078785 B1 KR102078785 B1 KR 102078785B1
- Authority
- KR
- South Korea
- Prior art keywords
- candidate character
- character string
- computing device
- edge
- grid
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/018—Input/output arrangements for oriental characters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements 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/0233—Character input methods
- G06F3/0237—Character input methods using prediction or retrieval techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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/04883—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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/04886—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/274—Converting codes to words; Guess-ahead of partial word inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/041—Indexing scheme relating to G06F3/041 - G06F3/045
- G06F2203/04101—2.5D-digitiser, i.e. digitiser detecting the X/Y position of the input means, finger or stylus, also when it does not touch, but is proximate to the digitiser's interaction surface and also measures the distance of the input means within a short range in the Z direction, possibly with a separate measurement setup
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04803—Split screen, i.e. subdividing the display area or the window area into separate subareas
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04808—Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/044—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
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
일례에서, 컴퓨팅 디바이스는 그래픽 키보드를 디스플레이하기 위해 출력하도록 구성된 적어도 하나의 프로세서를 포함한다. 상기 적어도 하나의 프로세서는 또한, 제1 알파벳의 심볼들을 포함하는 복수의 후보 문자 스트링들을 제1 격자에 모델링하도록 구성된다. 상기 제1 격자는 복수의 후보 문자 스트링들의 공간적 확률들을 나타낼 수 있다. 상기 적어도 하나의 프로세서는 상기 복수의 후보 문자 스트링들의 공간적 확률에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 단어들의 확률들을 나타내는 제2 격자를 이용하여, 상기 복수의 후보 문자 스트링들 중 적어도 하나가 상기 제2 언어에 포함된 적어도 하나의 단어에 대응할 확률을 결정하도록 구성될 수 있다. 상기 적어도 하나의 프로세서는 적어도 하나의 단어를 표시하는 하나 이상의 심볼들을 디스플레이하기 위해 출력하도록 구성될 수 있다.
Description
일부 컴퓨팅 디바이스들(예컨대, 모바일 폰들, 태블릿 컴퓨터들, 등)은 프레즌스-감응형 디스플레이(presence-sensitive display)(예컨대, 스크린)을 이용하여 텍스트를 구성하기 위한 그래픽 사용자 인터페이스의 일부로서 그래픽 키보드를 제공할 수 있다. 상기 그래픽 키보드는 컴퓨팅 디바이스의 사용자로 하여금 텍스트(예컨대, 이메일, 텍스트 메시지 또는 문서, 등)를 입력할 수 있게 한다. 예를 들어, 컴퓨팅 디바이스의 프레즌스-감응형 디스플레이는, 상기 프레즌스-감응형 디스플레이에 디스플레이되는 키들을 나타냄으로써(예컨대, 태핑함으로써) 사용자로 하여금 데이터를 입력할 수 있게 하는 그래픽(또는 "소프트") 키보드를 출력할 수 있다.
일부 경우들에서, 상기 컴퓨팅 디바이스는, 키보드의 개별 키들을 탭핑함으로써 또는 상기 키들과 관련된 영역들 위에 자신의 손가락을 슬라이딩함에 의해 본질적으로 단어를 제스쳐(gesturing out)함으로써 사용자가 인터랙션할 수 있게 하는 그래픽 키보드를 제시할 수 있다. 이 방식으로, 그래픽 키보드들은 사용자로 하여금 하나 이상의 제스쳐들에 의해 문자(character)들, 단어들 또는 단어들의 그룹들을 입력할 수 있게 하는 입력 방법을 제공한다. 따라서, 그래픽 키보드는 텍스트를 빠르고 정확하게 입력함으로써 사용자로 하여금 특정한 정도의 효율성을 달성할 수 있게 한다.
그래픽 키보드를 제공하는 컴퓨팅 디바이스는 사용자 입력으로부터 단어를 결정하기 위해 단어 예측, 자동-정정 및/또는 제시 기법들을 이용할 수 있다. 일부 세계적 맥락(international context)들에서, 그래픽 키보드의 키들은 제1 언어(예컨대, 영어)의 알파벳의 문자들과 관련될 수 있다. 사용자는 제2 언어(예컨대, 중국어, 한국어, 일본어, 등)에 포함되는 단어 및/또는 문자를 나타내는 문자들의 스트링을 입력하기 위해 그래픽 키보드의 하나 이상의 키들을 선택할 수 있다. 단어 예측, 자동-정정 및/또는 제시 기법들을 이용하는 것은 텍스트 입력을 빨리할 수 있게 하고 철자 실수들을 감소시킬 수 있다. 그러나, 이 기법들 중 하나 이상은 특정한 결점(drawback)들을 가질 수 있다. 예를 들어, 일부 예들에서, 그래픽 키보드를 제공하고 상기 기법들 중 하나 이상에 의존하는 컴퓨팅 디바이스는 사용자 입력으로부터 사용자가 의도한 제2 언어의 단어들 및/또는 문자들을 정확하게 결정하지 못할 수 있다. 따라서, 사용자는 제2 언어의 문자들 및/또는 단어들을 입력하기 위해 추가적인 노력을 해야할 필요가 있을 수 있다.
일례에서, 방법이 컴퓨팅 디바이스에 의해 그리고 디스플레이하기 위해, 복수의 키들을 포함하는 그래픽 키보드를 출력하는 단계를 포함한다. 복수의 키들 중 적어도 하나는 제1 언어의 제1 알파벳에 포함되는 하나 이상의 심볼들과 관련될 수 있다. 이 방법은 또한, 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 제1 격자(lattice) 내에, 복수의 후보 문자 스트링들을 모델링하는 단계를 포함할 수 있으며, 상기 복수의 후보 문자 스트링들 각각은 제1 알파벳의 심볼들을 포함한다. 상기 제1 격자는 복수의 후보 문자 스트링들 각각의 공간적 확률들을 나타내며, 상기 공간적 확률들은 상기 적어도 하나의 제스쳐의 표시에 적어도 부분적으로 근거한다. 상기 방법은 상기 복수의 후보 문자 스트링들 중 적어도 하나에 대해, 상기 복수의 후보 문자 스트링들의 공간적 확률들에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 단어들의 확률들을 나타내는 제2 격자를 이용하여, 상기 복수의 후보 문자 스트링들 중 적어도 하나가 상기 제2 언어에 포함되는 적어도 하나의 단어에 대응할 확률을 결정하는 단계를 포함할 수 있다. 상기 적어도 하나의 단어는 상기 제2 언어에 대응하는 제2 알파벳의 하나 이상의 심볼들에 의해 표시될 수 있다. 상기 방법은 상기 확률이 임계(threshold)를 만족함을 결정함에 응답하여, 상기 컴퓨팅 디바이스에 의해 그리고 디스플레이하기 위해, 적어도 하나의 단어를 표시하는 하나 이상의 심볼들을 출력하는 단계를 포함할 수 있다.
일례에서, 컴퓨터 판독가능 저장 매체가 명령어들을 수록할 수 있으며, 상기 명령어들은 실행될 때, 적어도 하나의 프로세서로 하여금 복수의 키들을 포함하는 그래픽 키보드를 디스플레이하기 위해 출력하도록 한다. 상기 복수의 키들 중 적어도 하나는 제1 언어의 제1 알파벳에 포함된 하나 이상의 심볼들과 관련될 수 있다. 컴퓨터 판독가능 저장 매체는 명령어들을 수록할 수 있으며, 상기 명령어들은 적어도 하나의 프로세서로 하여금, 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 제1 격자에 복수의 후보 문자 스트링들을 모델링하도록 하고, 상기 복수의 후보 문자 스트링들 각각은 제1 알파벳의 심볼들을 포함한다. 상기 제1 격자는 상기 복수의 후보 문자 스트링들 각각의 공간적 확률들을 나타낼 수 있고, 상기 공간적 확률들은 적어도 하나의 제스쳐의 표시에 적어도 부분적으로 근거한다. 컴퓨터 판독가능 저장 매체는 명령어들을 수록할 수 있으며, 상기 명령어들은 상기 적어도 하나의 프로세서로 하여금 상기 복수의 후보 문자 스트링들 중 적어도 하나에 대해, 상기 복수의 후보 문자 스트링들의 공간적 확률들에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 단어들의 확률들을 나타내는 제2 격자를 이용하여, 상기 복수의 후보 문자 스트링들 중 적어도 하나가 상기 제2 언어에 포함되는 적어도 하나의 단어에 대응할 확률을 결정하도록 한다. 상기 적어도 하나의 단어는 상기 제2 언어에 대응하는 제2 알파벳의 하나 이상의 심볼들에 의해 표시될 수 있다. 컴퓨터 판독가능 저장 매체는 명령어들을 수록할 수 있고, 상기 명령어들은 적어도 하나의 프로세서로 하여금, 상기 확률이 임계를 만족함을 결정함에 응답하여, 상기 적어도 하나의 단어를 표시하는 하나 이상의 심볼들을 디스플레이하기 위해 출력하도록 한다.
일례에서, 컴퓨팅 디바이스가 적어도 하나의 프로세서를 포함할 수 있고, 상기 적어도 하나의 프로세서는 복수의 키들을 포함하는 그래픽 키보드를 디스플레이하기 위해 출력하도록 구성된다. 상기 복수의 키들 중 적어도 하나는 제1 언어의 제1 알파벳에 포함된 하나 이상의 심볼들과 관련될 수 있다. 상기 컴퓨팅 디바이스의 적어도 하나의 프로세서는, 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 제1 격자에 복수의 후보 문자 스트링들을 모델링하도록 구성될 수 있고, 상기 복수의 후보 문자 스트링들 각각은 제1 알파벳의 심볼들을 포함한다. 상기 제1 격자는 상기 복수의 후보 문자 스트링들 각각의 공간적 확률들을 나타낼 수 있고, 상기 공간적 확률들은 적어도 하나의 제스쳐의 표시에 적어도 부분적으로 근거한다. 상기 컴퓨팅 디바이스의 적어도 하나의 프로세서는 상기 복수의 후보 문자 스트링들 중 적어도 하나에 대해, 상기 복수의 후보 문자 스트링들의 공간적 확률들에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 단어들의 확률들을 나타내는 제2 격자를 이용하여, 상기 복수의 후보 문자 스트링들 중 적어도 하나가 상기 제2 언어에 포함되는 적어도 하나의 단어에 대응할 확률을 결정하도록 구성될 수 있다. 상기 적어도 하나의 단어는 상기 제2 언어에 대응하는 제2 알파벳의 하나 이상의 심볼들에 의해 표시될 수 있다. 상기 컴퓨팅 디바이스의 적어도 하나의 프로세서는 상기 확률이 임계를 만족함을 결정함에 응답하여, 상기 적어도 하나의 단어를 표시하는 하나 이상의 심볼들을 디스플레이하기 위해 출력하도록 구성될 수 있다.
하나 이상의 예들의 세부사항이 첨부 도면들 및 하기 상세한 설명에 제시된다. 본 발명의 다른 특징들, 목적들 및 장점들이 상세한 설명, 도면들 및 특허청구범위로부터 분명해질 것이다.
도 1은 본 발명의 하나 이상의 양상들에 따른, 제1 언어의 알파벳에 포함된 문자들을 선택하기 위한 사용자 입력에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 문자들 및/또는 단어들을 결정하도록 구성된 예시적인 컴퓨팅 디바이스를 도시하는 개념도이다.
도 2는 본 발명의 하나 이상의 양상들에 따른, 도 1에 도시된 컴퓨팅 디바이스의 일례의 추가 세부사항을 도시하는 블록도이다.
도 3은 본 발명의 하나 이상의 기법들에 따른, 원격 디바이스에서 디스플레이하기 위해 그래픽 컨텐츠를 출력하는 예시적인 컴퓨팅 디바이스를 도시하는 블록도이다.
도 4는 본 발명의 기법들에 따른, 컴퓨팅 디바이스가 제1 언어의 알파벳의 문자들을 선택하기 위해 사용자 입력의 표시들에 근거하여 생성할 수 있고 그리고 제2 언어의 단어들을 결정하기 위해 사용할 수 있는 격자들을 도시하는 개념도이다.
도 5는 본 발명의 하나 이상의 기법들에 따른, 도 1에 도시된 컴퓨팅 디바이스가 제1 언어의 알파벳에 포함된 문자들을 선택하기 위해 연속적인 제스쳐에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 문자들 및/또는 단어들을 결정하는 일례의 추가 세부사항을 도시하는 개념도이다.
도 6a 내지 6b는 본 발명의 하나 이상의 기법들에 따른, 제스쳐로부터 단어 및/또는 구(phrase)를 결정하기 위한 컴퓨팅 디바이스의 예시적인 동작들을 도시하는 순서도들이다.
도 7은 본 발명의 하나 이상의 양상들에 따른, 제1 언어의 알파벳에 포함된 문자들을 선택하기 위한 사용자 입력에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 문자들 및/또는 단어들을 결정하기 위한 컴퓨팅 디바이스의 예시적인 동작들을 도시하는 순서도이다.
도 8은 본 발명의 하나 이상의 양상들에 따른, 제1 언어의 알파벳에 포함된 문자들을 선택하기 위한 사용자 입력에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 문자들 및/또는 단어들을 결정하기 위한 컴퓨팅 디바이스의 예시적인 동작들을 도시하는 순서도이다.
도 9는 본 발명의 기법들에 따른, 컴퓨팅 디바이스가 제1 언어의 알파벳의 문자들을 선택하기 위해 사용자 입력의 표시들에 근거하여 생성할 수 있고 그리고 제2 언어의 단어들을 결정하기 위해 사용할 수 있는 격자들을 도시하는 개념도이다.
도 2는 본 발명의 하나 이상의 양상들에 따른, 도 1에 도시된 컴퓨팅 디바이스의 일례의 추가 세부사항을 도시하는 블록도이다.
도 3은 본 발명의 하나 이상의 기법들에 따른, 원격 디바이스에서 디스플레이하기 위해 그래픽 컨텐츠를 출력하는 예시적인 컴퓨팅 디바이스를 도시하는 블록도이다.
도 4는 본 발명의 기법들에 따른, 컴퓨팅 디바이스가 제1 언어의 알파벳의 문자들을 선택하기 위해 사용자 입력의 표시들에 근거하여 생성할 수 있고 그리고 제2 언어의 단어들을 결정하기 위해 사용할 수 있는 격자들을 도시하는 개념도이다.
도 5는 본 발명의 하나 이상의 기법들에 따른, 도 1에 도시된 컴퓨팅 디바이스가 제1 언어의 알파벳에 포함된 문자들을 선택하기 위해 연속적인 제스쳐에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 문자들 및/또는 단어들을 결정하는 일례의 추가 세부사항을 도시하는 개념도이다.
도 6a 내지 6b는 본 발명의 하나 이상의 기법들에 따른, 제스쳐로부터 단어 및/또는 구(phrase)를 결정하기 위한 컴퓨팅 디바이스의 예시적인 동작들을 도시하는 순서도들이다.
도 7은 본 발명의 하나 이상의 양상들에 따른, 제1 언어의 알파벳에 포함된 문자들을 선택하기 위한 사용자 입력에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 문자들 및/또는 단어들을 결정하기 위한 컴퓨팅 디바이스의 예시적인 동작들을 도시하는 순서도이다.
도 8은 본 발명의 하나 이상의 양상들에 따른, 제1 언어의 알파벳에 포함된 문자들을 선택하기 위한 사용자 입력에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 문자들 및/또는 단어들을 결정하기 위한 컴퓨팅 디바이스의 예시적인 동작들을 도시하는 순서도이다.
도 9는 본 발명의 기법들에 따른, 컴퓨팅 디바이스가 제1 언어의 알파벳의 문자들을 선택하기 위해 사용자 입력의 표시들에 근거하여 생성할 수 있고 그리고 제2 언어의 단어들을 결정하기 위해 사용할 수 있는 격자들을 도시하는 개념도이다.
일반적으로, 본 발명은, 제1 언어의 알파벳의 문자들에 대응하는 키들을 포함하는 그래픽 키보드에서 사용자 입력을 수신하고, 상기 사용자 입력에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 문자들 및/또는 단어들을 결정하기 위한 기법들에 관한 것이다. 예를 들어, 세계적 맥락들에서, 그래픽 키보드의 키들은 제1 언어(예컨대, 영어)의 알파벳의 문자들에 대응할 수 있다. 제2 언어(예컨대, 중국어, 한국어, 일본어, 등)로 문자들 및/또는 단어들을 입력하기 위해, 사용자는 제1 언어의 문자들의 그룹을 선택하기 위해 사용자 입력들을 제공할 수 있는 바, 상기 문자들의 그룹은 집합적으로 제2 언어로 이루어진 하나 이상의 문자들 및/또는 단어들의 발음 표시(pronunciation representation)이다. 예를 들어, 핀인(pinyin) 스트링은 라틴 문자들의 그룹일 수 있고, 이는 집합적으로 중국어 문자 또는 단어의 발음 표시이다.
본 발명의 기법들은 그래픽 키보드를 이용하여 세계적 맥락들에서 문자들 및/또는 단어들의 자동 예측 및/또는 자동 정정을 개선할 수 있다. 예를 들어, 본 발명의 기법들에 따르면, 컴퓨팅 디바이스는 그래픽 키보드의 서로 다른 영역들에 대응하는 사용자 입력의 표시들을 결정할 수 있다. 컴퓨팅 디바이스가 각각의 표시를 증분적으로(incrementally) 결정함에 따라, 상기 컴퓨팅 디바이스는 그래픽 키보드의 서로 다른 선택된 영역들에 근부(proximal)에 있는 키들의 문자들을 포함하는 하나 이상의 후보 문자 스트링들을 구성할 수 있다. 컴퓨팅 디바이스는 그래픽 키보드의 서로 다른 선택된 영역들에 근부에 있는 키들의 문자들에 근거하여 후보 문자 스트링들의 확률을 나타내는 제1 격자를 증분적으로 구성할 수 있다. 일부 예들에서, 후보 문자 스트링들은 제2 언어로 이루어진 단어들의 발음 표시들의 정확하게 그리고/또는 부정확하게 철자표기된 접두사(prefix)들을 포함할 수 있다.
컴퓨팅 디바이스가 사용자 입력의 표시들을 수신함에 따라, 상기 컴퓨팅 디바이스는 또한, 후보 문자 스트링들에 근거한 제2 언어의 하나 이상의 단어들의 어휘적(lexical) 그리고 공간적 정보에 근거한 확률들을 나타내는 제2 격자를 구성할 수 있다. 상기 컴퓨팅 디바이스는 제2 언어의 단어들이 후보 문자 스트링들에 대응할 확률들을 결정하기 위해 상기 제2 격자를 이용할 수 있다. 일부 예들에서, 상기 컴퓨팅 디바이스는 임계를 만족하는 확률들과 관련된 하나 이상의 단어들을 디스플레이하기 위해 출력할 수 있다.
이 방식으로, 정적 키 매핑들을 이용하기보다는, 상기 컴퓨팅 디바이스는, 확률론적(probabilistic) 방식으로, 제2 언어로 이루어진 문자들 및/또는 단어들의 발음 표시들을 선택하기 위한 사용자 입력의 표시들에 근거하여 사용자가 입력하고자 의도한 가능성이 있는 제2 언어의 단어들을 결정할 수 있다. 따라서, 본 발명의 음역(transliteration) 기법들은 컴퓨팅 디바이스가 제2 언어의 단어들을 출력하는 정확도 및/또는 속도를 향상시킬 수 있다. 이 기법들은 컴퓨팅 디바이스가 제스쳐 입력으로부터 문자 스트링을 잘못 자동 정정하거나 잘못 예측하는 것을 감소 또는 방지할 수 있다. 이 방식으로, 기법들은 단어를 입력할 때 사용자가 자동 정정 또는 예측되는 단어를 정정할 필요를 감소 및/또는 제거할 수 있다. 따라서, 컴퓨팅 디바이스는 단어들을 입력하고 그리고/또는 실수들을 수동으로 정정하기 위해 사용자로부터 더 적은 입력들을 수신할 수 있고, 그럼으로써 문자 스트링들을 입력하기 위한 사용자 노력을 감소시킬 수 있다. 더 적은 입력들을 수신하는 컴퓨팅 디바이스는 일부 예들에서, 더 적은 동작들을 수행하고 따라서, 더 적은 전력을 소모할 수 있다.
도 1은 본 발명의 하나 이상의 양상들에 따른 제1 언어의 알파벳에 포함된 문자들을 선택하기 위한 사용자 입력에 적어도 부분적으로 근거하여 제2 언어로 이루어진 하나 이상의 문자들 및/또는 단어들을 결정하도록 구성된 예시적인 컴퓨팅 디바이스를 도시하는 개념도이다. 도 1의 예에서, 컴퓨팅 디바이스(2)는 모바일 폰이다. 그러나, 다른 예들에서, 컴퓨팅 디바이스(2)는 태블릿 컴퓨터, 개인용 디지털 단말기(PDA), 랩탑 컴퓨터, 포터블한 게이밍 디바이스, 포터블한 미디어 플레이어, 이-북 리더, 시계, 텔레비젼 플랫폼 또는 다른 타입의 컴퓨팅 디바이스일 수 있다.
도 1에 도시된 바와 같이, 컴퓨팅 디바이스(2)는 프레즌스-감응형 디스플레이(4)를 포함한다. 컴퓨팅 디바이스(2)의 프레즌스-감응형 디스플레이(4)는 컴퓨팅 디바이스(2)에 대한 입력 디바이스로서 그리고 출력 디바이스로서 기능할 수 있다. 일부 예들에서, 프레즌스-감응형 디스플레이(4)는 통합된 프레즌스-감응형 입력 디바이스 및 디스플레이 디바이스를 포함할 수 있다. 예를 들어, 프레즌스-감응형 디스플레이(4)는 저항성 터치스크린, 표면 음파 터치스크린, 용량성 터치스크린, 투영형 정전용량 터치스크린(projective capacitance touchscreen), 감압 스크린, 음향 펄스 인식 터치스크린 또는 다른 프레즌스-감응형 스크린 기술과 같은 프레즌스-감응형 스크린을 이용하여 프레즌스-감응형 입력 디바이스로서 기능할 수 있다. 프레즌스-감응형 디스플레이(4)는 컴퓨팅 디바이스(2)의 사용자에게 시각적 정보를 출력할 수 있는 액정 디스플레이(LCD), 도트 매트릭스 디스플레이, 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, e-잉크, 또는 유사한 단색 또는 컬러 디스플레이 중 어느 하나 이상을 이용하여 출력 디바이스로서 기능할 수 있다.
컴퓨팅 디바이스(2)의 프레즌스-감응형 디스플레이(4)는 컴퓨팅 디바이스(2)의 사용자로부터 사용자 입력을 검출할 수 있는 프레즌스-감응형 스크린을 포함할 수 있다. 프레즌스-감응형 디스플레이(4)는 컴퓨팅 디바이스(2)의 사용자로부터 하나 이상의 탭 및/또는 비-탭 제스쳐들 및/또는 연속적인 제스쳐들(예컨대, 사용자가 손가락 또는 스타일러스 펜으로 프레즌스-감응형 디스플레이(4)의 하나 이상의 위치들을 터치 하거나 포인팅하는 것)을 검출함으로써 사용자 입력의 표시들을 수신할 수 있다. 프레즌스-감응형 디스플레이(4)의 프레즌스-감응형 스크린은 사용자에게 출력을 제시할 수 있다. 프레즌스-감응형 디스플레이(4)는 컴퓨팅 디바이스(2)에서 실행되는 어플리케이션들(예컨대, 전자 메시지 어플리케이션, 인터넷 브라우져 어플리케이션, 등)의 다양한 사용자 인터페이스들을 제시할 수 있다. 컴퓨팅 디바이스(2)의 사용자는 각각의 어플리케이션의 각각의 사용자 인터페이스를 통해 컴퓨팅 디바이스(2)로 기능을 수행하기 위해 이들 어플리케이션들 중 하나 이상과 인터랙션할 수 있다.
컴퓨팅 디바이스(2)는 사용자 인터페이스("UI") 모듈(6) 및 키보드 모듈(8)을 포함할 수 있다. 모듈들(6 및 8)은 컴퓨팅 디바이스(2)에 상주하고 컴퓨팅 디바이스(2) 상에서 실행되는 소프트웨어, 하드웨어, 펌웨어, 또는 소프트웨어, 하드웨어 및 펌웨어의 혼합을 이용하여 기술되는 동작들을 수행할 수 있다. 컴퓨팅 디바이스(2)는 복수의 프로세서들로 모듈들(6 및 8)을 실행시킬 수 있다. 컴퓨팅 디바이스(2)는 모듈들(6 및 8)을 기저 하드웨어(underlying hardware) 상에서 실행되는 가상 머신으로서 실행시킬 수 있다. 모듈들(6 및 8)은 다양한 방식들로 구현될 수 있다. 예를 들어 UI 모듈(6) 및/또는 키보드 모듈(8)은 다운로드가능 또는 미리 인스톨된 어플리케이션 즉 "앱"으로서 구현될 수 있다. 다른 예에서, UI 모듈(6) 및/또는 키보드 모듈(8)은 컴퓨팅 디바이스(2)의 운영 체제의 일부로서 구현될 수 있다.
컴퓨팅 디바이스(2)의 UI 모듈(6)은 프레즌스-감응형 디스플레이(4)에서 검출된 사용자 입력의 하나 이상의 표시들을 프레즌스-감응형 디스플레이(4)로부터 수신할 수 있다. 일반적으로, 프레즌스-감응형 디스플레이(4)가 프레즌스-감응형 스크린의 일 위치에서 검출되는 사용자 입력의 표시를 수신할 때마다, UI 모듈(6)은 프레즌스-감응형 디스플레이(4)로부터 사용자 입력에 관한 정보를 수신할 수 있다. UI 모듈(6)은 프레즌스-감응형 디스플레이(4)로부터 수신되는 정보를 터치 이벤트들의 시퀀스와 같은 제스쳐를 나타내는 이벤트들의 시간순 세트 내로 어셈블(assemble)할 수 있다. 시퀀스 내의 각각의 터치 이벤트는 프레즌스-감응형 스크린에서의 입력의 존재 및/또는 이동을 특성화(characterizing)하는 파라미터들(예컨대, 언제, 어디, 기원 방향)을 나타내는 데이터 또는 컴포넌트들을 포함할 수 있다. 시퀀스 내의 각각의 터치 이벤트는 프레즌스-감응형 디스플레이(4)의 일 위치에 대응하는 위치 컴포넌트, 프레즌스-감응형 디스플레이(4)가 상기 위치에서 사용자의 입력을 검출한 때와 관계된 시간 컴포넌트, 및 터치 이벤트가 상기 위치에서의 리프트 업(lift up) 또는 푸시 다운(push down)에 대응하는 지에 관계된 액션 컴포넌트를 포함할 수 있다. 더욱이, 이벤트들 중 하나 이상은 동시적인(concurrent) 시간 컴포넌트를 가질 수 있고, 이러한 이벤트들은 단지 예를 위해, 터치 이벤트들로서 기술되고, 어떤 형태의 프레즌스-감응형 입력 디바이스에서 제스쳐를 나타낼 수 있다.
UI 모듈(6)은 터치 이벤트들의 시퀀스에 근거하여 사용자 입력의 하나 이상의 특성들을 결정하고 터치 이벤트들의 시퀀스에서 각각의 터치 이벤트 내의 이 하나 이상의 특성들에 관한 정보를 포함할 수 있다. 예를 들어, UI 모듈(6)은 사용자 입력의 시작 위치, 사용자 입력의 종료 위치, 사용자 입력의 일부의 밀도(density), 사용자 입력의 일부의 속도, 사용자 입력의 일부의 방향 및 사용자 입력의 일부의 곡률(curvature)을 결정할 수 있다. 터치 이벤트들의 시퀀스에서 하나 이상의 터치 이벤트들은 (상술된 시간, 위치 및 액션 컴포넌트에 추가적으로) 사용자 입력의 하나 이상의 특성들(예컨대, 밀도, 속도, 등)에 관한 정보를 포함하는 특성 컴포넌트를 포함할 수 있다. UI 모듈(6)은 각각의 터치 이벤트와 관련된 컴포넌트 또는 파라미터화된 데이터를 포함하는 터치 이벤트들의 시퀀스를 키보드 모듈(8)로의 출력으로서 전송할 수 있다.
도 1의 예에서, UI 모듈(6)은 프레즌스-감응형 디스플레이(4)로 하여금 예시적인 사용자 인터페이스(14)를 출력할 수 있게 한다. 이 예에서, 사용자 인터페이스(14)는 프레즌스-감응형 디스플레이(4)의 다양한 위치들에서 디스플레이되는 그래픽 요소들을 포함한다. 도 1은 사용자 인터페이스(14)의 편집 영역(16A), 사용자 인터페이스(14)의 그래픽 키보드(16B) 및 제시되는 단어 영역들(18A 내지 18C)을 도시한다. 편집 영역(16A)은 이미지들, 객체들, 하이퍼링크들, 텍스트의 문자들, 등과 같은 그래픽 요소들을 포함할 수 있다. 그래픽 키보드(16B)는 키들로서 디스플레이되는 그래픽 요소들을 포함한다. 제시되는 단어 영역들(18A 및 18B)은 편집 영역(16A)에 포함된 문자 스트링들을 교체하기 위해 선택가능한 철자 정정들 또는 단어 제시들을 표시하는 제시되는 단어들을 포함한다. 도 1의 예에서, 편집 영역(16A)은 텍스트(예컨대, 단어)의 문자들(22A 내지 22B)로서 디스플레이되는 그래픽 요소들을 포함한다. 컴퓨팅 디바이스(2)의 사용자는 그래픽 키보드(16B)의 키들을 디스플레이하는 프레즌스-감응형 디스플레이(4)의 위치들에서 사용자 입력을 제공함으로써 편집 영역(16A)에 텍스트를 입력할 수 있다.
UI 모듈(6)은 프레즌스-감응형 디스플레이(4)에 의해 검출되는 입력에 근거하여 결정들을 내리고 프레즌스-감응형 디스플레이(4)에의해 제시되는 출력을 생성하기 위해 컴퓨팅 디바이스(2)의 다양한 컴포넌트들 간의 중재자(intermediary)로서 역할을 한다. 예를 들어 UI 모듈(6)은 그래픽 키보드(16B)에 포함된 키들의 키보드 레이아웃의 표시를 포함하는 키보드 모듈(8)로부터 정보를 수신할 수 있다. UI 모듈(6)은 프레즌스-감응형 디스플레이(4)에 의해 검출되는 사용자 입력에 관한 정보에 근거하여 터치 이벤트들을 생성할 수 있다. UI 모듈(6)은 시퀀스 터치 이벤트들 내의 위치 컴포넌트들에 근거하여, 하나 이상의 위치 컴포넌트들이 하나 이상의 키들의 선택을 근사화(approximate)함을 결정할 수 있다(예컨대, UI 모듈(6)은 터치 이벤트들 중 하나 이상의 위치가 그래픽 키보드(16B)를 제시하는 프레즌스-감응형 디스플레이(4)의 영역에 대응함을 결정할 수 있다). UI 모듈(6)은 프레즌스-감응형 디스플레이(4)가 키들의 각각을 제시하는 위치들과 함께 터치 이벤트의 시퀀스를 키보드 모듈(8)의 출력으로서 전송할 수 있다. 이에 응답하여, UI 모듈(6)은 문자 스트링 및 하나 이상의 제시되는 단어들을 키보드 모듈(8)로부터의 입력으로서 수신할 수 있다. UI 모듈(6)은 편집 영역(16A) 내에 문자 스트링을 그리고 제시되는 단어 영역(16C) 내에 문자 스트링과 관련된 하나 이상의 제시되는 단어들을 포함시키기 위해 사용자 인터페이스(14)를 갱신할 수 있다. UI 모듈(6)은 프레즌스-감응형 디스플레이(4)로 하여금 갱신된 사용자 인터페이스(14)를 제시할 수 있게 한다.
컴퓨팅 디바이스(2)의 키보드 모듈(8)은 (사용자 인터페이스(14)의 그래픽 키보드(16B)로서 포함하기 위한) UI 모듈(6)로의 출력으로서, 하나 이상의 쓰여진 언어들(예컨대, 영어, 스페인어, 등등)과 관계된 복수의 키들을 포함하는 키보드 레이아웃을 전송한다. 키보드 모듈(8)은 키보드 레이아웃에서 복수의 키들의 각각의 키에 하나 이상의 문자들 또는 동작들을 할당할 수 있다. 예를 들어, 키보드 모듈(8)은 영어를 타이핑하는 데 사용되는 문자들을 표시하는 키들을 포함하는 QWERTY 키보드 레이아웃을 생성할 수 있다. QWERTY 키보드 레이아웃은 또한, 영어로 타이핑하는 데 사용되는 동작들(예컨대, 백스페이스, 삭제, 스페이스바, 입력, 등)을 표시하는 키들을 포함할 수 있다.
키보드 모듈(8)은 터치 이벤트들의 시퀀스를 표시하는 데이터를 UI 모듈(6)로부터 수신할 수 있다. 터치 이벤트들은 프레즌스-감응형 디스플레이(4)의 프레즌스-감응형 스크린의 위치들을 표시하는 데이터를 포함할 수 있고, 프레즌스-감응형 디스플레이(4)는 그래픽 키보드(16B)의 키들 각각을 제시한다. 키보드 모듈(8)은 키들의 위치들에 근거하여, 터치 이벤트들의 시퀀스가 예컨대, 공간적 모델(spatial model)(10) 및 언어 모델(12)을 이용하여 하나 이상의 키들의 선택을 표시함을 결정할 수 있다.
터치 이벤트들의 시퀀스에 대응하는 하나 이상의 키들을 결정하기 위해, 키보드 모듈(8)은 공간적 모델(10)과 같은 하나 이상의 공간적 모델들을 이용할 수 있다. 일반적으로, 키보드 모듈(8)은, 사용자 입력과 관련된 위치 데이터에 근거하여 그래픽 키보드의 하나 이상의 특별한 키들이 선택된 하나 이상의 확률을 생성하기 위해 공간적 모델(10)을 이용할 수 있다. 일부 예들에서, 공간적 모델(10)은 각각의 키에 대한 이변량 가우시안 모델(bivariate Gaussian model)을 포함한다. 키에 대한 이변량 가우시안 모델은 소정의 키를 제시하는 프레즌스-감응형 디스플레이(4)의 위치들에 대응하는 좌표들(예컨대, (x, y) 좌표 쌍들)의 분포를 포함할 수 있다. 특히, 일부 예들에서, 키에 대한 이변량 가우시안 모델은, 사용자가 소정의 키를 선택하는 경향을 가질 때 사용자에 의해 매우 빈번하게 선택되는 프레즌스-감응형 디스플레이(4)의 위치들에 대응하는 좌표들의 분포를 포함할 수 있다. 사용자 입력의 위치 데이터와 공간적 모델(10)의 고밀도 영역 사이의 거리가 짧아질수록, 공간적 모델(10)과 관련된 키가 선택된 확률이 높아진다. 사용자 입력의 위치 데이터와 공간적 모델(10)의 고밀도 영역 사이의 거리가 길어질수록, 공간적 모델(10)과 관련된 키가 선택된 확률이 낮아진다.
키보드 모듈(8)은 터치 이벤트들의 시퀀스에서의 하나 이상의 터치 이벤트들의 위치 컴포넌트들(예컨대, 좌표들)을 그래픽 키보드(16B)의 하나 이상의 키들의 각각의 위치들과 비교하고 이 비교들에 근거하여, 키의 선택이 발생된 확률을 생성하기 위해 공간적 모델(10)을 이용할 수 있다. 일부 예들에서, 키보드 모듈(8)은 공간적 모델(10)을 이용하여 공간적 모델 스코어를 생성할 수 있다. 공간적 모델 스코어는 탭 또는 연속적인 제스쳐가 횡단(traverse)하는 프레즌스-감응형 디스플레이(4)의 위치들에 적어도 부분적으로 근거하여 선택된 키의 확률을 나타낼 수 있다. 일부 예들에서, 공간적 모델 스코어는 제스쳐가 횡단하는 UI 디바이스(12)의 위치들에 적어도 부분적으로 근거하여 선택된 키들의 그룹의 결합된 확률을 나타낼 수 있다.
키보드 모듈(8)은 터치 이벤트들의 시퀀스에서의 각각의 터치 이벤트의 위치 컴포넌트를 그래픽 키보드(16B)의 특별한 키의 키 위치와 비교하기 위해 공간적 모델(10)을 이용할 수 있다. 시퀀스에서의 각각의 터치 이벤트의 위치 컴포넌트는 프레즌스-감응형 디스플레이(4)의 하나의 위치를 포함할 수 있다. 그래픽 키보드(16B)에서의 키의 키 위치(예컨대, 키의 중심(centroid))은 프레즌스-감응형 디스플레이(4)의 다른 위치를 포함할 수 있다. 키보드 모듈(8)은 두 개의 위치들 사이의 유클리드 거리(Euclidian distance)를 결정하고 이 유클리드 거리에 근거하여 키가 선택된 확률을 생성하기 위해 공간적 모델(10)을 이용할 수 있다. 공간적 모델(10)은 하나 이상의 터치 이벤트들과 더 큰 유클리드 거리를 공유하는 키보다는, 하나 이상의 터치 이벤트들과 더 작은 유클리드 거리를 공유하는 키에 대해 더 높은 확률을 나타낼 수 있다. 각각의 키와 관련된 공간적 모델 확률에 근거하여, 키보드 모듈(8)은 가장 높은 공간적 모델 확률들을 갖는 개별적인 키 선택들을 키보드 모듈(8)이 이후 문자 스트링을 표시하는 것으로 결정할 수 있는, 대응하는 문자들을 갖는 키들의 시간순 시퀀스로 어셈블할 수 있다. 문자 스트링 내의 문자와 관련된 각각의 키의 결합된 확률들은 문자 스트링에 대한 공간적 모델 스코어를 표시할 수 있다. 하기에 더 기술되는 바와 같이, 키보드 모듈(8)은 터치 이벤트에 대해, 터치 이벤트의 위치에 근접한 복수의 키들에 대응하는 확률들을 결정할 수 있다. 즉, 터치 이벤트가 그래픽 키보드(16B)의 'Z' 키에 근접한 위치를 나타낸 경우, 키보드 모듈(8)은 'Z' 키가 선택된 공간전 모델 확률을 결정할 수 있고, 또한, 'X' 키 및 'S' 키가 선택된 공간적 모델 확률들을 결정할 수 있다.
키보드 모듈(8)은 터치 이벤트들에 의해 나타내진 키들의 시퀀스들에 대응하는 후보 문자 스트링들에 근거하여 언어의 하나 이상의 문자들 및/또는 단어들을 결정하기 위해 언어 모델(12)을 이용할 수 있다. 후보 문자 스트링들은 터치 이벤트들에 의해 나타내진 키들의 다른 가능한 시퀀스들의 문자들을 표시할 수 있다. 키보드 모듈(8)이 사용자 입력의 표시들을 수신함에 따라, 키보드 모듈(8)은 후보 스트링들에 근거하여 언어의 하나 이상의 문자들 및/또는 단어들을 동시에 결정할 수 있다. 키보드 모듈(8)은 프레즌스-감응형 디스플레이(4)에서 디스플레이하기 위해 출력되는 단어들을 예측 및/또는 자동 정정하기 위해 언어 모델(12)에 액세스할 수 있다.
일반적으로, 컴퓨팅 디바이스(2)의 언어 모델(12)은 언어 어휘 내의 단어들의 그룹을 포함할 수 있다. 일부 예들에서, 언어 모델(12)은 컴퓨팅 디바이스(2) 또는 컴퓨팅 디바이스(2)에 의해 액세스가능한 원격 컴퓨팅 디바이스에 저장된 사전 내의 단어들의 세트에 근거하고 그리고/또는 단어들의 세트를 포함할 수 있다. 언어 모델(12)은 단어가 소정의 언어 컨텍스트에서 발생하는 빈도에 근거하여 각각의 단어의 확률을 나타낼 수 있다. 언어 모델(12)은 하나 이상의 n-그램(n-gram) 언어 모델들을 구현할 수 있다. n-그램 언어 모델은 시퀀스에서의 이전의 아이템들에 근거하여 아이템들의 인접한 시퀀스에서 아이템 xi(글자(letter), 단어, 구두점 문자 또는 다른 구획문자(delimiter))에 대한 확률 분포(즉, P(xi | xi-(n-l),...,xi-l))를 제공할 수 있다. 언어 모델(12)이 본 명세서에서 더 기술된다.
본 발명의 기법들은 확률론적 방식으로, 제1 언어(예컨대, 영어)의 알파벳의 관련 문자들인 그래픽 키보드의 키들에 대응하는 사용자 입력의 표시들에 근거하여 사용자가 입력하길 의도한 가능성이 있는 제2 언어(예컨대, 중국어)의 문자들 및/또는 단어들을 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(2)는 발음 표시들(예컨대, 핀인 스트링들)을 입력하기 위한 사용자 입력의 표시들에 근거하여 제2 언어의 이러한 문자들 및/또는 단어들을 결정할 수 있다. 사용자는 제1 언어의 알파벳의 문자들에 대응하는 키들을 포함하는 그래픽 키보드를 이용하여 발음 표시들을 입력할 수 있다. 본 발명의 기법들에 따라 제2 언어의 문자들 및/또는 단어들을 확률론적으로 결정함으로써, 이러한 기법들은 사용자가 하나 이상의 키들을 실수로 그리고/또는 부정확하게 태핑 또는 제스쳐할 때 이러한 문자들 및/또는 단어들을 입력하기 위한 사용자의 노력의 양을 감소시킬 수 있다.
예를 위해, 기법들은 도 1을 참조하여 더 상세히 기술된다. 도 1의 예에서, 컴퓨팅 디바이스(2)는 복수의 키들을 포함하는 그래픽 키보드(16B)를 디스플레이하기 위해 출력한다. 예를 들어, 키보드 모듈(8)은 그래픽 키보드(16B)의 표시를 포함하는 데이터를 생성할 수 있다. UI 모듈(6)은 그래픽 키보드(16B)을 표시하는 데이터에 근거하여 사용자 인터페이스(14)의 표시를 포함하고 사용자 인터페이스(14)에서 그래픽 키보드(16B)를 포함하는 데이터를 생성할 수 있다. UI 모듈(6)은 프레즌스-감응형 디스플레이(4)에서 사용자 인터페이스(14)를 디스플레이하기 위한 명령어들을 포함하는 데이터를 프레즌스-감응형 디스플레이(4)에 전송할 수 있다. 프레즌스-감응형 디스플레이(4)는 데이터를 수신하고 프레즌스-감응형 디스플레이(4)로 하여금 편집 영역(16A), 그래픽 키보드(16B), 및 제시된 단어 영역(16C)을 포함하는 사용자 인터페이스(14)를 제시할 수 있게 한다. 그래픽 키보드(16B)는 복수의 키들을 포함할 수 있다. 도 1에 도시된 바와 같이, 복수의 키들은 제1 언어의 제1 알파벳에 포함된 하나 이상의 심볼들(예컨대, 문자들, 단어들 또는 어떤 다른 적절한 표시)과 관련될 수 있다. 예를 들어, 그래픽 키보드(16B)의 키는 영어 알파벳의 'Z' 문자와 관련될 수 있다. 다른 예들에서 복수의 문자들은 그래픽 키보드(16B)의 키와 관련될 수 있다. 예를 들어, 문자 'A', 'B' 및 'C'는 모두 단일 키와 관련될 수 있고, 다른 사용자 입력들은 결과적으로, 세 개의 다른 문자들 각각이 선택되게 할 수 있다.
도 1의 예에서, 사용자는 입력 위치들(20A 내지 20I)에서 일련의 탭 입력들을 수행할 수 있다. 탭 위치들(20A 내지 20I) 각각은, 비록 프레즌스-감응형 디스플레이(4)가 일부 예들에서 파선의 원들을 출력할 수 없더라도, 예를 위해 도 1에서 원들에 의해 표시되며, 이러한 부분들은 다양한 다른 예들에서 더 크거나 그리고/또는 더 작을 수 있다. 예를 들어, 사용자는 중국어 단어 "zhongguo"를 집합적으로 형성하는 "zhong" 및 "guo"에 대한 발음 표시들을 포함하는 핀인 스트링들을 입력하길 바랄 수 있다. 단어 "zhongguo"는 중국의 지역(country)을 나타내며, "중간 지역(middle country)"을 의미한다. 도 1에 도시된 바와 같이, 사용자는 키 시퀀스 z-h-o-n-g-g-u-o를 입력하길 시도할 수 있지만, 사용자는 실수로 z-h-o-n-g-h-u-o를 태핑할 수 있다. 예를 들어, 사용자는 다음의 순서: 20A -> 20B -> 20C -> 20D -> 20E -> 20F -> 20G -> 20F -> 20G -> 20H -> 20I로 입력 위치들(20A-20I)을 선택하기 위해 입력들을 제공할 수 있다. 입력 위치(20F)에서, 사용자는 사용자가 핀인 스트링 "guo"를 시작하길 의도한 "g" 키의 중심보다는 "h"키의 중심에 가깝게 실수로 태핑할 수 있다. 본 명세서에 더 기술되는 바와 같이, 컴퓨팅 디바이스(2)는 본 발명의 기법을 구현하여, 비록, 사용자가 실수로 z-h-o-n-g-h-u-o를 태핑했더라도 의도된 중국어 단어 를 출력할 수 있다.
UI 모듈(6)은 프레즌스-감응형 디스플레이(4)로부터 탭 위치들(20A-20I)을 나타내는 정보를 증분적으로 수신하고, 터치 이벤트들(예컨대, 위치 컴포넌트, 시간 컴포넌트, 액션 컴포넌트를 포함하는 각각의 터치 이벤트)의 시간순 시퀀스로 정보를 어셈블할 수 있다. UI 모듈(6)은 키보드 모듈(8)에 터치 이벤트들을 전송할 수 있다. 키보드 모듈(8)은 UI 모듈(6)로부터 각각의 터치 이벤트와 관련된 정보(예컨대, 위치, 시간, 액션, 등)과 함께 터치 이벤트들을 수신할 수 있다.
프레즌스-감응형 디스플레이(4)에서 검출된 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 키보드 모듈(8)은 터치 이벤트들의 시퀀스에 대응하는 하나 이상의 서로 다른 후보 스트링들의 그룹을 결정할 수 있다. 예를 들어, 키보드 모듈(8)은 탭 위치(20A)가 그래픽 키보드(16B)의 'z' 키에 대응하고, 탭 위치(20B)가 'h' 키에 대응하며, 탭 위치(20C)가 'o' 키에 대응하고, 탭 위치(20D)가 'n' 키에 대응하며, 탭 위치(20E)가 'g' 키에 대응함을 결정하기 위해 공간적 모델(10)을 이용할 수 있다. 집합적으로는, 각각의 키들에 대응하는 문자들의 시퀀스는 제1 후보 스트링 "zhong"을 표시한다. 키보드 모듈(8)은 또한, 탭 위치(20A)가 그래픽 키보드(16B)의 'z' 키에 대응하고, 탭 위치(20B)는 'h' 키에 대응하며, 탭 위치(20C)가 'o' 키에 대응하고, 탭 위치(20D)가 'm' 키에 대응하며, 탭 위치(20E)가 'v' 키에 대응함을 결정하기 위해 공간적 모델(10)을 이용할 수 있다. 집합적으로는, 각각의 키들에 대응하는 문자들의 시퀀스는 제2 후보 스트링 "zhomv"을 표시한다. 그러므로, 키보드 모듈(8)은 터치 이벤트들이 키보드 모듈(8)에 의해 UI 모듈(6)로부터 수신됨에 따라, 탭 위치들(20A-20H)의 근부에 있는 키들에 대응하는 문자들의 서로 다른 조합들을 각각 표시하는 복수의 후보 스트링들을 증분적으로 생성할 수 있다.
일부 예들에서, 후보 문자 스트링 내의 각각의 문자는 탭 위치가 각각의 문자와 관련된 키에 대응할 확률을 나타내는 대응하는 공간적 모델 스코어를 가질 수 있다. 즉, 문자 'z'는 탭 입력(20A)이 그래픽 키보드(16B)의 'z' 키에 대응할 확률을 나타내기 위해 0.64의 공간적 모델 스코어와 관련될 수 있다. 키보드 모듈(8)은 일부 예들에서, 후보 문자 스트링에 포함된 문자들의 집합적인 공간적 모델 스코어들을 표시하는 각각의 후보 스트링에 대한 공간적 모델 스코어를 생성한다. 예를 들어, 키보드 모듈(8)은 제1 후보 스트링 내의 각각의 문자에 대한 개별적인 공간적 모델 스코어들의 곱(product)으로서 제1 후보 스트링 "zhong"에 대한 공간적 모델 스코어를 생성할 수 있다.
본 발명의 기법들에 따르면, 키보드 모듈(8)이 프레즌스-감응형 디스플레이(4)에서 탭 제스쳐들의 표시들을 수신함에 따라, 키보드 모듈(8)은 후보 문자 스트링 및 각각의 후보 문자 스트링들에 대응하는 공간적 모델 확률들을 증분적으로 결정할 수 있다. 이전에 기술된 바와 같이, 후보 문자 스트링들은 영어 알파벳의 문자들을 포함할 수 있다. 키보드 모듈(8)은 일부 예들에서, 제1 격자에 제1 알파벳(예컨대, 영어)의 문자들을 포함하는 복수의 후보 문자 스트링들 중 하나 이상을 모델링한다. 일부 예들에서, 각각의 발음 표시(예컨대, 핀인 스트링) 및/또는 후보 스트링은 "토큰(token)"으로 나타내질 수 있고, 제1 격자는 "토큰 격자"로서 나타내질 수 있다. 토큰 격자는, 상기에 기술되는 바와 같이 탭 제스쳐들의 표시들에 적어도 부분적으로 근거할 수 있는 복수의 후보 문자 스트링들 중 하나 이상에 대한 공간적 확률들을 표시할 수 있다.
도 4에 더 예시되는 바와 같이, 토큰 격자는 에지들에 의해 연결되는 꼭지점들을 포함하는 그래프일 수 있다. 각각의 꼭지점은 인덱스에 의해 식별될 수 있다. 일부 예들에서, n개의 문자들을 가진 후보 문자 스트링은 인덱스 0을 갖는 꼭지점으로부터 인덱스 n을 갖는 꼭지점까지 비롯되는 에지에 의해 모델링될 수 있다. 예를 들어, 키보드 모듈(8)은 꼭지점 0으로부터 꼭지점 5까지의 에지와 후보 문자 스트링 "zhong"을 관련시킬 수 있다. 도 4에 더 기술되는 바와 같이, 키보드 모듈(8)은 에지들, 꼭지점들 및 토큰 격자의 다른 대응하는 정보에 관한 상태 정보를 저장하는 어떤 수의 적절한 데이터 구조들을 이용하여 토큰 격자를 구현할 수 있다.
후보 문자 스트링을 모델링하는 것의 일부로서, 키보드 모듈(8)은 각각의 대응하는 에지와 가중(weight)을 더 관련시킬 수 있다. 일부 예들에서, 가중은 에지와 관련된 후보 문자 스트링의 공간적 모델 확률을 나타낸다. 예를 들어, 후보 문자 스트링 "zhong"과 관련된 꼭지점 0으로부터 꼭지점 5까지의 에지는 후보 스트링 "zhong"의 공간적 모델 확률을 나타내는 가중을 할당받을 수 있다. 다양한 예들에서, 키보드 모듈(8)은 탭 위치들(20A-20H)에 대응하는 탭들과 같은 사용자 입력의 표시들로서 토큰 격자를 이용하여 복수의 후보 문자 스트링의 각각을 증분적으로 모델링할 수 있거나 또는 (도 5 내지 6B에 더 예시된) 연속적인 제스쳐의 부분들이 키보드 모듈(8)에 의해 결정된다.
키보드 모듈(8)은 복수의 후보 문자 스트링들의 공간적 확률들에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 단어들의 확률들을 나타내는 제2 격자를 이용하여 토큰 격자에 모델링되는 후보 문자 스트링들에 근거하여 제2 언어(예컨대, 중국어)의 하나 이상의 후보 단어들을 결정할 수 있다. 제2 언어의 하나 이상의 후보 단어들은 제2 언어의 제2 알파벳(예컨대, 중국어)의 하나 이상의 심볼들(예컨대, 문자들, 단어들 또는 다른 적절한 그래픽 표시(indicia))에 의해 표시될 수 있다. 이러한 후보 단어들은 사용자에 의해 입력되는 후보 스트링들에 대응할 수 있는 제2 언어로부터 예측되는 단어들을 표시할 수 있다.
일부 예들에서, 제2 언어의 각각의 문자 및/또는 단어는 일반적으로, "단어"로서 나타내질 수 있고, 제2 격자는 "단어 격자"로서 나타내질 수 있다. 토큰 격자의 경우와 같이, 단어 격자는 에지들에 의해 연결되는 꼭지점들을 포함하는 그래프일 수 있다. 각각의 꼭지점은 또한, 인덱스에 의해 식별될 수 있다. 일부 예들에서, 제2 언어의 알파벳의 n 개의 문자들을 포함하는 후보 단어는 인덱스 0을 갖는 꼭지점으로부터 인덱스 n을 갖는 꼭지점까지 비롯되는 에지에 의해 모델링될 수 있다. 예를 들어, 키보드 모듈(8)은 꼭지점 0으로부터 꼭지점 2까지의 에지를 따라 두 개의 중국어 문자들 및 을 포함하는 후보 단어 " "를 모델링할 수 있다. 일부 예들에서, 빌더 모듈(50)은 단어 격자(120)의 꼭지점들이 토큰 격자(110)의 꼭지점 인덱스들과 동일한 꼭지점 인덱스들을 공유하도록 단어 격자(120)를 모델링한다. 즉, 일부 예들에서, 단어 격자(120)는 토큰 격자(110)와 동일한 꼭지점 격자들을 갖는 꼭지점들을 포함할 수 있다. 추가의 예들이 도 9에 예시된다. 도 4에서 더 기술되는 바와 같이, 키보드 모듈(8)은 에지들, 꼭지점들에 관한 상태 정보 및 토큰 격자의 다른 대응하는 정보를 저장하는 어떤 수의 적절한 데이터 구조들을 이용하여 단어 격자를 구현할 수 있다.
후보 스트링을 모델링하는 것의 일부로서, 키보드 모듈(8)은 각각의 대응하는 에지와 가중을 더 관련시킬 수 있다. 에지의 가중은 제2 언어에 포함된 하나 이상의 단어들을 고려하여 하나 이상의 후보 스트링들의 그룹의 확률을 표시할 수 있다. 키보드 모듈(8)은 공간적 그리고 언어 모델 확률들에 근거하여 가중을 결정할 수 있다. 예를 들어, 에지의 가중은 언어 모델(12)에 포함된 중국어로 이루어진 단어일 수 있는 중국어 단어 ""를 고려하여 'zhonghuo'의 언어 모델 확률에 적어도 부분적으로 근거할 수 있다. 다시 말해, 키보드 모듈(8)은 중국어 단어 ""("zuhongguo")가 입력되도록 사용자에 의해 의도된 단어임을 고려하여 볼때, 사용자가 두 개의 후보 스트링들 "zhong" 및 "huo"를 포함하는 후보 스트링 "zhonghuo"를 입력했을 확률을 결정할 수 있다. 도 4에 더 기술되는 바와 같이, ""을 고려하여 "zhonghuo"의 언어 모델 확률은 예컨대, ""이 중국어에서 발생하는 빈도, (예컨대, n-그램 언어 모델을 이용한) 사용자 입력의 표시들이 수신되는 언어의 맥락, 등에 근거할 수 있다. 이전에 상기에서 나타내진 바와 같이, 사용자는 중국어 단어 ""에 대응하는 "zhongguo"를 입력하길 의도할 때 문자 스트링 "guo"보다는 "huo"를 부주의로 타이핑했을 수 있다. 그러므로, 키보드 모듈(8)은 중국어 단어 ""를 고려하여 서로 다른 후보 문자 스트링 조합들의 확률들을 나타내는 복수의 에지들을 단어 격자에 생성할 수 있다. 이 방식으로, 사용자가 'guo'를 입력할 때 'g' 대신 'h' 키와 같이 의도하지 않은 또는 부정확한 문자를 부주의로 태핑하는 경우, 키보드 모듈(8)은 복수의 서로 다른 후보 문자 스트링들을 테스트함으로써 제2 언터의 단어들을 결정하기 위한 기법들을 제공한다. 이 방식으로, 기법들은 사용자 입력 에러들에 대해 더 복원력있는(resilient) 단어 예측 기법들을 제공하며, 그럼으로써 사용자 경험을 향상시키고 텍스트를 입력하기 위한 사용자 노력의 양을 감소시킬 수 있다.
키보드 모듈(8)은 단어 ""에 대한 단어 격자 내의 에지에 대응하는 문자 스트링 "zhonghuo"을 집합적으로 포함할 수 있는 "zhong" 및 "huo"의 결합된 공간적 모델 확률에 적어도 부분적으로 근거하여 "zhonghuo"에 대한 에지의 가중을 결정할 수 있다. 즉, 키보드 모듈(8)은 일부 예들에서 결합된 공간적 모델 확률이 후보 스트링 "zhong"에 대한 공간적 모델 확률 및 후보 스트링 "huo"에 대한 공간적 모델 확률의 곱을 포함함을 결정할 수 있다.
키보드 모듈(8)은 일부 예들에서, 언어 모델(12)에 포함된 소정의 단어(예컨대, "") 및 하나 이상의 후보 스트링들(예컨대, "zhonghuo")의 그룹에 대한 결합된 공간적 모델 확률 및 언어 모델 확률에 적어도 부분적으로 근거하여 단어 격자 내의 에지의 가중을 결정한다. 일부 예들에서, 키보드 모듈(8)은 언어 모델에 포함된 단어를 고려하여 하나 이상의 후보 스트링의 그 전체적인 확률을 나타내는 결합된 가중을 생성하기 위해 결합된 공간적 모델 확률 및 언어 모델 확률을 더하거나 또는 곱할 수 있다. 소정의 에지에 대한 더 큰 가중은 에지에 대응하는 제2 언어의 단어가 사용자에 의해 의도된 것일 더 높은 확률을 나타낼 수 있다. 소정의 에지에 대한 더 작은 가중은 에지에 대응하는 단어가 사용자에 의해 의도된 것일 더 낮은 확률을 나타낼 수 있다. 다양한 예들에서, 키보드 모듈(8)은 사용자 입력의 표시들이 키보드 모듈(8)에 의해 결정됨에 따라 후보 스트링들에 근거하여 단어 격자를 이용하여 언어 모델(12)에 포함된 하나 이상의 단어들을 증분적으로 결정할 수 있다.
키보드 모듈(8)은 사용자 인터페이스(14)의 편집 영역(16A)에 또는 사용자 인터페이스(14)의 제시되는 단어 영역들(18A 및 18B) 내의 개별적인 제시되는 단어들로서 포함시키기 위해 UI 모듈(6)에 하나 이상의 후보 단어들 또는 구들 및 관련 가중들을 출력할 수 있다. 예를 들어, 키보드 모듈(8)은 임계를 만족하는 가중들을 가지는 에지들과 관련된 하나 이상의 후보 단어들을 결정할 수 있다. 일례로, 키보드 모듈(8)은 단어 격자로부터 두 개의 가장 높은 가중들을 갖는 두 개의 후보 단어들을 결정할 수 있다. 키보드 모듈(8)은 UI 모듈(6)에 두 개의 단어 후보들을 표시하는 데이터를 전송할 수 있다. UI 모듈(6)은 가중들 또는 하나 이상의 후보 단어들 또는 구들의 가중들에 대응하는 랭크들과 함께 키보드 모듈(8)로부터 (원시 문자 스트링을 포함하여) 하나 이상의 후보 단어들 또는 구들을 표시하는 데이터를 수신할 수 있다.
UI 모듈(6)은 가장 높은 랭킹 후보 단어를 제시되는 단어 ""로서 포함시킴으로써 제시되는 단어 영역(18A)을 갱신할 수 있다. UI 모듈(6)은 제2의 가장 높은 후보 단어를 제시되는 단어 " "로서 포함시킴으로써 제시되는 단어 영역(18B)을 갱신할 수 있다. 사용자 인터페이스(14)로부터, 사용자는 프레즌스-감응형 디스플레이(4)가 제시되는 단어(18A)를 출력하는 프레즌스-감응형 디스플레이(4)의 위치에 근부에 있는 입력을 태핑 또는 제공함으로써 탭 위치(20I)에서의 사용자 입력을 제시되는 단어(18A)에 제공할 수 있다. 예를 들어, 사용자는 프레즌스-감응형 디스플레이(4)가 제시되는 단어(18A) 예컨대, ""를 제시하는 프레즌스-감응형 디스플레이(4)의 위치 위를 태핑한다. 제시되는 단어(38A) 위로의 태핑은 UI 모듈(6)로 하여금 사용자 인터페이스(14) 및 편집 영역(16A) 내의 ""를 갱신할 수 있게 한다.
이 방식으로, 본 발명의 기법들은 비록 사용자 입력의 표시들이 부주의한 그리고/또는 부정확한 사용자 입력을 포함할 수 있더라도, 컴퓨팅 디바이스로 하여금 사용자에 의해 의도된 제2 언어의 문자들 및/또는 단어들을 출력할 수 있게 한다. 예를 들어, 상기 예에서, 비록 사용자가 의도된 "guo"보다는 "huo"를 부주의로 태핑했을 수 있더라도, 키보드 모듈(8)은 단어 격자의 가중에 근거하여 의도된 단어 ""를 출력했다. 따라서, 기법들은 사용자로 하여금 제1 언어의 알파벳을 포함하는 키보드를 이용하여 컴퓨팅 디바이스에서 제2 언어로 텍스트를 더 빠르게 입력할 수 있게 한다. 사용자가 정정을 위한 더 적을 입력들을 컴퓨팅 디바이스에 제공하고 그리고/또는 텍스트를 입력하기 위한 더 적은 입력들을 제공할 수 있기 때문에, 본 발명의 기법들을 구현하는 컴퓨팅 디바이스는 더 적은 동작들을 실행할 수 있고, 그결과 더 적은 전력을 소모할 수 있다.
도 2는 본 발명의 하나 이상의 양상들에 따른 예시적인 컴퓨팅 디바이스를 도시하는 블록도이다. 도 2의 컴퓨팅 디바이스(2)는 도 1의 컨텍스트 내에서 하기에 기술된다. 도 2는 단지 컴퓨팅 디바이스(2)의 하나의 특별한 예를 도시하며, 컴퓨팅 디바이스(2)의 많은 다른 예들이 다른 예시들에서 이용될 수 있고, 예시적인 컴퓨팅 디바이스(2)에 포함된 컴포넌트들의 서브세트를 포함할 수 있거나 또는 도 2에 도시된 추가적인 컴포넌트들을 포함할 수 있다.
도 2의 예에 도시되는 바와 같이, 컴퓨팅 디바이스(2)는 프레즌스-감응형 디스플레이(4), 하나 이상의 프로세서들(40), 하나 이상의 입력 디바이스들(42), 하나 이상의 통신 유닛들(44), 하나 이상의 출력 디바이스들(46) 및 하나 이상의 저장 디바이스들(48)을 포함한다. 컴퓨팅 디바이스(2)의 저장 디바이스들(48)은 또한, UI 모듈(6), 키보드 모듈(8), 입력 룩업 모듈(48), 빌더 모듈(50), 디코딩 모듈(52), 하나 이상의 격자들(54), 공간적 모델(10) 및 언어 모듈(12)을 포함한다. 통신 채널들(50)은 (물리적으로, 통신적으로 그리고/또는 동작적으로) 컴포넌트간 통신들에 대해 컴포넌트들(4, 40, 42, 44, 46, 48, 8, 48, 50, 52, 6, 54, 10, 및 12)의 각각을 상호연결할 수 있다. 일부 예들에서, 통신 채널들(50)은 시스템 버스, 네트워크 연결, 프로세스간 통신 데이터 구조 또는 데이터를 통신하기 위한 어떤 다른 방법을 포함할 수 있다.
컴퓨팅 디바이스(2)의 하나 이상의 입력 디바이스들(42)은 입력을 수신할 수 있다. 입력의 예들은 촉각, 오디오, 및 비디오 입력이다. 컴퓨팅 디바이스(2)의 입력 디바이스들(42)은 일 예에서, 마우스, 키보드, 음성 반응적 시스템, 비디오 카메라, 마이크, 또는 사람 또는 머신으로부터 입력을 검출하기 위한 어떤 다른 타입의 디바이스를 포함한다. 일부 예들에서, 입력 디바이스(42)는 프레즌스-감응형 스크린, 터치-감응형 시크린 등을 포함할 수 있는 프레즌스-감응형 입력 디바이스일 수 있다.
컴퓨팅 디바이스(2)의 하나 이상의 출력 디바이스(46)는 출력을 생성할 수 있다. 출력의 예들은 촉각, 오디오 및 비디오 출력이다. 컴퓨팅 디바이스(2)의 출력 디바이스들(46)은 일 예에서, 프레즌스-감응형 스크린, 사운드 카드, 비디오 그래픽 어댑터 카드, 스피커, CRT 모니터, LCD 모니터, 또는 사람 또는 머신에 출력을 생성하기 위한 어떤 다른 타입의 디바이스를 포함한다. 출력 디바이스(46)는 CRT 모니터, LCD 모니터 또는 시각적 출력을 생성하기 위한 어떤 다른 타입의 디바이스와 같은 디스플레이 디바이스들을 포함할 수 있다.
컴퓨팅 디바이스(2)의 하나 이상의 통신 유닛들(44)은 하나 이상의 네트워크들 상에서 네트워크 신호들을 전송 및/또는 수신함으로써 하나 이상의 네트워크들을 통해 외부 디바이스들과 통신할 수 있다. 예를 들어, 컴퓨팅 디바이스(2)는 셀룰러 무선 네트워크와 같은 무선 네트워크 상에서 무선 신호들을 전송 및/또는 수신하기 위해 통신 유닛(44)을 이용할 수 있다. 마찬가지로, 통신 유닛(44)은 GPS 네트워크와 같은 위성 네트워크 상에서 위성 신호들을 전송 및/또는 수신할 수 있다. 통신 유닛(44)의 예들은 (예컨대, 이더넷 카드와 같은) 네트워크 인터페이스 카드, 광학 송수신기, 무선 주파수 송수신기, GPS 수신기, 또는 정보를 전송 및/또는 수신할 수 있는 어떤 다른 타입의 디바이스를 포함한다. 통신 유닛(44)의 다른 예들은 모바일 디바이스들뿐만 아니라 USB 제어기들에서 발견되는 블루투스®, GPS, 3G, 4G 및 와이-파이® 무선들을 포함할 수 있다.
일부 예들에서, 컴퓨팅 디바이스(2)의 프레즌스-감응형 디스플레이(4)는 입력 디바이스(42) 및/또는 출력 디바이스(46)의 기능을 포함할 수 있다. 도 2의 예에서, 프레즌스-감응형 디스플레이(4)는 프레즌스-감응형 스크린, 터치-감응형 스크린, 등과 같은 프레즌스-감응형 입력 디바이스일 수 있거나 또는 이를 포함할 수 있다. 일부 예들에서, 존재 감응형 스크린은 프레즌스-감응형 스크린에서 그리고/또는 프레즌스-감응형 스크린 근처에서 객체를 검출할 수 있다. 하나의 예시적인 범위로서, 프레즌스-감응형 스크린은 프레즌스-감응형 스크린의 2인치 이하 내에 있는 손가락 또는 스타일러스와 같은 객체를 검출할 수 있다. 프레즌스-감응형 스크린은 객체가 검출된 프레즌스-감응형 스크린의 위치(예컨대, (x, y) 좌표)를 결정할 수 있다. 다른 예시적인 범위에서, 프레즌스-감응형 스크린은 프레즌스-감응형 스크린으로부터 6인치 이하에서 객체를 검출할 수 있고, 다른 범위들 역시 가능하다. 프레즌스-감응형 스크린은 용량적, 유도적 및/또는 광학적 인식 기법들을 이용하여 사용자의 손가락에 의해 선택되는 스크린의 위치를 결정할 수 있다. 일부 예들에서, 프레즌스-감응형 디스플레이(4)는 출력 디바이스(46)에 관하여 기술된 바와 같이 촉각, 오디오 또는 비디오 자극(stimuli)을 이용하여 사용자에게 출력을 제공한다. 도 2의 예에서, 프레즌스-감응형 디스플레이(4)는 도 1의 사용자 인터페이스(14)와 같은 사용자 인터페이스를 제시한다.
컴퓨팅 디바이스(2)의 내부 컴포넌트로서 예시되지만, 프레즌스-감응형 디스플레이(4)는 또한, 입력 및 출력을 전송 및/또는 수신하기 위해 컴퓨팅 디바이스(2)의 다른 컴포넌트들과 데이터 경로를 공유하는 외부 컴포넌트를 나타낼 수 있다. 예를 들어, 일 예에서, 프레즌스-감응형 디스플레이(4)는 컴퓨팅 디바이스(2)의 외부 패키징 내에 위치되고 물리적으로 연결된 컴퓨팅 디바이스(2)의 빌트-인 컴포넌트(예컨대, 모바일 폰의 스크린)을 나타낸다. 다른 예에서, 프레즌스-감응형 디스플레이(4)는 컴퓨팅 디바이스(2)의 패키징 외부에 위치되고 이로부터 물리적으로 분리된 컴퓨팅 디바이스(2)의 외부 컴포넌트(예컨대, 태블릿 컴퓨터와 유선 및/또는 무선 데이터 경로를 공유하는 모니터, 프로젝터, 등)일 수 있다.
컴퓨팅 디바이스(2) 내의 하나 이상의 저장 디바이스들(48)은 컴퓨팅 디바이스(2)의 동작 동안 프로세싱하기 위한 정보를 저장할 수 있다. 일부 예들에서, 저장 디바이스(48)는 임시 메모리(temporary memory)이며, 이는 저장 디바이스(48)의 주요 목적이 장기 저장이 아님을 의미한다. 컴퓨팅 디바이스(2) 상의 저장 디바이스들(48)은 휘발성 메모리로서 정보의 단기 저장을 위해 구성될 수 있고, 따라서 파워 오프되면 저장된 컨텐츠를 유지하지 않을 수 있다. 휘발성 메모리들의 예들은 랜덤 액세스 메모리(RAM)들, 동적 랜덤 액세스 메모리(DRAM)들, 정적 랜덤 액세스 메모리(SRAM)들 및 이 기술분야에 알려진 다른 형태의 휘발성 메모리들을 포함한다.
저장 디바이스들(48)은 일부 예들에서, 또한 하나 이상의 컴퓨터-판독가능 저장 매체를 포함한다. 저장 디바이스들(48)은 휘발성 메모리보다 많은 양의 정보를 저장하도록 구성될 수 있다. 저장 디바이스들(48)은 또한, 비휘발성 메모리 공간으로서 정보의 장기 저장을 위해 구성될 수 있고 파워 온/오프 사이클들 후에 정보를 유지할 수 있다. 비휘발성 메모리들의 예들은 자기 하드 디스크들, 광학 디스크들, 플로피 디스크들, 플래시 메모리들 또는 전기적으로 프로그램가능한 메모리(EPROM)들 또는 전기적으로 소거가능하고 프로그램가능한 메모리(EEPROM)들의 형태들을 포함한다. 저장 디바이스들(48)은 UI 모듈(6), 키보드 모듈(8), 입력 룩업 모듈(48), 빌더 모듈(50), 디코딩 모듈(52), 하나 이상의 격자들(54), 공간적 모델(10) 및 언어 모듈(12)과 관련된 프로그램 명령어들 및/또는 데이터를 저장할 수 있다.
하나 이상의 프로세서들(40)은 컴퓨팅 디바이스(2) 내의 기능을 구현하고 그리고/또는 명령어들을 실행할 수 있다. 예를 들어, 컴퓨팅 디바이스(2) 상의 프로세서들(40)은 UI 모듈(6), 키보드 모듈(8), 입력 룩업 모듈(48), 빌더 모듈(50), 디코딩 모듈(52), 하나 이상의 격자들(54), 공간적 모델(10) 및 언어 모듈(12)의 기능을 실행하는 저장 디바이스들(48)에 의해 저장되는 명령어들을 수신 및 실행할 수 있다. 프로세서들(40)에 의해 실행되는 이 명령어들은 컴퓨팅 디바이스(2)가 프로그램 실행 동안 저장 디바이스들(48) 내에 정보를 저장할 수 있게 한다. 프로세서들(40)은 UI 모듈(6), 키보드 모듈(8), 입력 룩업 모듈(48), 빌더 모듈(50), 디코딩 모듈(52), 하나 이상의 격자들(54), 공간적 모델(10) 및 언어 모듈(12)의 명령어들을 실행시켜 프레즌스-감응형 디스플레이(4)로 하여금 프레즌스-감응형 디스플레이(4)에 편집 영역(16A), 그래픽 키보드(16B) 및 제시되는 단어 영역들(18A-18B)를 갖는 사용자 인터페이스(14)를 디스플레이할 수 있게 한다. 즉, 모듈들, UI 모듈(6), 키보드 모듈(8), 입력 룩업 모듈(48), 빌더 모듈(50), 디코딩 모듈(52), 하나 이상의 격자들(54), 공간적 모델(50) 및 언어 모듈(12)은, 프레즌스-감응형 디스플레이(4)의 프레즌스-감응형 스크린의 위치들에서 제스쳐의 표시를 수신하는 것 및 프레즌스-감응형 디스플레이(4)로 하여금 프레즌스-감응형 디스플레이(4)에 사용자 인터페이스(14)를 제시할 수 있게 하는 것을 포함하여 다양한 동작들을 수행하기 위해 프로세서(40)에 의해 동작가능할 수 있다.
본 발명의 양상들에 따르면, 키보드 모듈(8)은 초기에 프레즌스-감응형 디스플레이(4)로 하여금 디스플레이를 위한 그래픽 키보드를 출력할 수 있게 하는 UI 모듈(6)에 데이터를 전송할 수 있다. 그래픽 키보드는 복수의 키들을 포함할 수 있다. 복수의 키들 중 적어도 하나는 제1 언어의 제1 알파벳에 포함되는 하나 이상의 심볼들과 관련될 수 있다. 예를 들어, 일부 예들에서, 하나 이상의 키들은 영어 알파벳에 포함된 단일 문자와 관련될 수 있다. 다른 예에서, 하나 이상의 키들은 각각 영어 알파벳에 포함되는 복수의 문자들과 관련될 수 있다. 본 발명의 예들이 예를 위해 제1 언어가 영어임을 나타낼 수 있지만, 제1 언어는 어떤 언어이든 될 수 있고, 제1 언어의 제1 알파벳은 어떤 알파벳이든 될 수 있다. 심볼들은 일반적으로, 문자들, 단어들 또는 알파벳 및/또는 언어의 구성들의 다른 그래픽 표시들을 나타낼 수 있다.
일부 예들에서, 사용자는 디스플레이를 위한 그래픽 키보드를 출력하는 프레즌스-감응형 디스플레이(4)의 영역에서 탭 및/또는 연속적인 제스쳐를 수행할 수 있다. 프레즌스-감응형 입력 디바이스(4)에서 검출된 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 빌더 모듈(5)은 제1 알파벳의 심볼들을 각각 포함하는 복수의 문자 스트링들을 제1 격자에 모델링할 수 있다. 제1 격자는 복수의 문자 스트링들의 각각의 공간적 확률들을 나타낼 수 있다. 일부 예들에서, 공간적 확률들은 적어도 하나의 제스쳐의 표시에 적어도 부분적으로 근거한다.
일부 예들에서, 빌더 모듈(50)은 복수의 문자 스트링들 중 적어도 하나에 대해, 복수의 문자 스트링들의 공간적 확률들에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 단어들의 확률들을 나타내는 제2 격자를 이용하여 복수의 문자 스트링들 중 적어도 하나가 제2 언어에 포함된 적어도 하나의 단어에 대응할 확률을 결정할 수 있다. 도 4에 더 기술되는 바와 같이, 단어 격자(120)의 에지는 복수의 문자 스트링들 중 적어도 하나가 제2 언어에 포함된 적어도 하나의 단어에 대응할 확률을 나타낼 수 있다. 적어도 하나의 단어는 제2 언어에 대응하는 제2 알파벳의 하나 이상의 심볼들에 의해 표시될 수 있다.
디코딩 모듈(52)은 일부 예들에서, 적어도 하나의 확률이 임계를 만족함을 결정함에 응답하여, 프레즌스-감응형 디스플레이(4)로 하여금 디스플레이를 위해 적어도 하나의 단어를 표시하는 하나 이상의 심볼들을 출력할 수 있게 하는 데이터를 UI 모듈(6)에 전송할 수 있다. 예를 들어, 디코딩 모듈(52)은 도 4에 더 기술되는 바와 같이, 도 4에 예시된 하나 이상의 에지 단어 격자(120)의 가중들을 결정할 수 있다. 디코딩 모듈(52)은 에지들 중 하나 이상의 가중들이 임계를 만족함을 결정할 수 있다. 예를 들어, 디코딩 모듈(52)은 하나 이상의 가중들이 임계보다 큼을 결정할 수 있다. 이러한 예들에서, 디코딩 모듈(52)은 프레즌스-감응형 디스플레이(4)로 하여금 에지들과 관련된 단어들을 디스플레이하기 위해 출력할 수 있게 하는 데이터를 UI 모듈(6)에 전송할 수 있다. 본 발명의 기법들이 제2 언어의 단어들을 출력하는 것에 관하여 기술되지만, 이 기법들은 또한, 단일 문자들, 복수-단어 구들, 문장들, 등을 예측, 자동 정정 및/또는 출력하기 위해 이용될 수 있다.
도 3은 본 발명의 하나 이상의 기법들에 따른 원격 디바이스에서 디스플레이하기 위해 그래픽 컨텐츠를 출력하는 예시적인 컴퓨팅 디바이스를 도시하는 블록도이다. 그래픽 컨텐츠는 일반적으로, 텍스트, 이미지들, 동화상의 그룹, 등과 같이 디스플레이를 위해 출력될 수 있는 어떤 시각적 정보일 수 있다. 도 3에 도시된 예는 컴퓨팅 디바이스(60), 프레즌스-감응형 디스플레이(64), 통신 유닛(70), 프로젝터(80), 프로젝터 스크린(82), 모바일 디바이스(86), 및 시각적 디스플레이 디바이스(90)를 포함한다. 비록, 단독형 컴퓨팅 디바이스(10)로서 도 1 및 2에 예시를 위해 도시되지만, 컴퓨팅 디바이스(60)와 같은 컴퓨팅 디바이스는 일반적으로, 프로세서 또는 소프트웨어 명령어들을 실행하기 위한 다른 적절한 컴퓨팅 환경을 포함하는 어떤 컴포넌트 또는 시스템일 수 있고, 예컨대, 프레즌스-감응형 디스플레이를 포함할 필요는 없을 수 있다.
도 3의 예에 도시된 바와 같이, 컴퓨팅 디바이스(60)는 도 2의 프로세서(40)에 관하여 기술된 바와 같은 기능을 포함하는 프로세서일 수 있다. 이러한 예들에서, 컴퓨팅 디바이스(60)는 시스템 버스 또는 다른 적절한 연결일 수 있는 통신 채널(62A)에 의해 프레즌스-감응형 디스플레이(64)에 동작적으로 결합될 수 있다. 컴퓨팅 디바이스(60)는 또한, 시스템 버스 또는 다른 적절한 연결일 수도 있는 통신 채널(62B)에 의해 하기에 더 기술되는 통신 유닛(70)에 동작적으로 결합될 수 있다. 비록, 도 3의 예에서 별개로 도시되지만, 컴퓨팅 디바이스(60)는 어떤 수의 하나 이상의 통신 채널들에 의해 프레즌스-감응형 디스플레이(64) 및 통신 유닛(70)에 동작적으로 결합될 수 있다.
다른 예들에서, 도 1-2에서 컴퓨팅 디바이스(10)에 의해 이전에 예시된 바와 같이, 컴퓨팅 디바이스는 (스마트 폰들을 포함하는) 모바일 폰들, 랩탑 컴퓨터들, 등과 같은 포터블 또는 모바일 디바이스를 나타낼 수 있다. 일부 예들에서, 컴퓨팅 디바이스는 데스크탑 컴퓨터들, 태블릿 컴퓨터들, 스마트 텔레비전 플랫폼들, 카메라들, 개인용 디지털 단말기(PDA)들, 서버들, 메인프레임들, 등일 수 있다.
도 1에 도시된 프레즌스-감응형 디스플레이(4)와 같은 프레즌스-감응형 디스플레이(64)는 디스플레이 디바이스(66) 및 프레즌스-감응형 입력 디바이스(68)를 포함할 수 있다. 디스플레이 디바이스(66)는 예를 들어, 컴퓨팅 디바이스(60)로부터 데이터를 수신하고 그래픽 컨텐츠를 디스플레이할 수 있다. 일부 예들에서, 프레즌스-감응형 입력 디바이스(68)는 용량적, 유도적 그리고/또는 광학적 인식 기법들을 이용하여 프레즌스-감응형 디스플레이(64)에서 하나 이상의 사용자 입력들(예컨대, 연속적인 제스쳐들, 멀티-터치 제스쳐들, 단일-터치 제스쳐들, 등)을 결정하고, 통신 채널(62A)을 이용하여 컴퓨팅 디바이스(60)에 이러한 사용자 입력의 표시들을 전송할 수 있다. 일부 예들에서, 프레즌스-감응형 입력 디바이스(68)는, 사용자가 디스플레이 디바이스(66)에 의해 디스플레이되는 그래픽 요소 위로 입력 유닛을 포지셔닝할 때, 프레즌스-감응형 입력 디바이스(68)에서의 위치가 그래픽 요소가 디스플레이되는 디스플레이 디바이스(66)의 위치에 대응하도록 디스플레이 디바이스(66)의 상단에 물리적으로 포지셔닝될 수 있다.
도 3에 도시된 바와 같이, 컴퓨팅 디바이스(60)는 또한, 통신 유닛(70)을 포함 및/또는 통신 유닛과 동작적으로 결합될 수 있다. 통신 유닛(70)은 도 2에 기술된 바와 같이 통신 유닛(44)의 기능을 포함할 수 있다. 통시 유닛(70)의 예들은 네트워크 인터페이스 카드, 이더넷 카드, 광학 송수신기, 무선 주파수 송수신기 또는 정보를 전송 및 수신할 수 있는 어떤 다른 타입의 디바이스를 포함할 수 있다. 이러한 통신 유닛들의 다른 예들은 블루투스, 3G 및 와이파이 무선들, USB 인터페이스들, 등을 포함할 수 있다. 컴퓨팅 디바이스(60)는 또한, 간결성 및 예시를 위해 도 3에 도시되지 않은 하나 이상의 다른 디바이스들, 예컨대 입력 디바이스들, 출력 디바이스들, 메모리, 저장 디바이스들, 등을 포함 및/또는 이들과 동작적으로 결합될 수 있다.
도 3은 또한, 프로젝터(80) 및 프로젝터 스크린(82)을 예시한다. 프로젝션 디바이스들의 다른 이러한 예들은 전자 화이트보드들, 홀로그래픽 디스플레이 디바이스들 및 그래픽 컨텐츠를 디스플레이하기 위한 어떤 다른 적절한 디바이스들을 포함할 수 있다. 프로젝터(8) 및 프로젝터 스크린(82)은 각각의 디바이스들로 하여금 컴퓨팅 디바이스(60)와 통신할 수 있게 하는 하나 이상의 통신 유닛들을 포함할 수 있다. 일부 예들에서, 하나 이상의 통신 유닛들은 프로젝터(80)와 프로젝터 스크린(82) 간의 통신을 가능하게 할 수 있다. 프로젝터(8)는 그래픽 컨텐츠를 포함하는 컴퓨팅 디바이스(60)로부터 데이터를 수신할 수 있다. 프로젝터(80)는 데이터를 수신함에 응답하여, 그래픽 컨텐츠를 프로젝터 스크린(82) 상으로 프로젝션할 수 있다. 일부 예들에서, 프로젝터(80)는 광학적 인식 또는 다른 적절한 기법들을 이용하여 프로젝터 스크린에서 하나 이상의 사용자 입력들(예컨대, 연속적인 제스쳐들, 멀티-터치 제스쳐들, 단일-터치 제스쳐들, 등)을 결정하고, 하나 이상의 통신 유닛들을 이용하여 컴퓨팅 디바이스(60)에 이러한 사용자 입력의 표시들을 전송할 수 있다. 이러한 예들에서, 프로젝터 스크린(82)은 불필요할 수 있고, 프로젝터(80)는 어떤 적절한 매체 상에 그래픽 컨텐츠를 프로젝션하고 광학적 인식 또는 다른 이러한 적절한 기법들을 이용하여 하나 아상의 사용자 입력들을 검출할 수 있다.
프로젝터 스크린(82)은 일부 예들에서, 프레즌스-감응형 디스플레이(84)를 포함할 수 있다. 프레즌스-감응형 디스플레이(84)는 본 발명에 기술된 바와 같이 UI 디바이스(4)의 기능의 서브세트 또는 기능의 전부를 포함할 수 있다. 일부 예들에서, 프레즌스-감응형 디스플레이(84)는 추가적인 기능을 포함할 수 있다. 프로젝터 스크린(82)(예컨대, 전자 화이트보드)은 컴퓨팅 디바이스(60)로부터 데이터를 수신하고 그래픽 컨텐츠를 디스플레이할 수 있다. 일부 예들에서, 프레즌스-감응형 디스플레이(84)는 용량적, 유도적 및/또는 광학적 인식 기법들을 이용하여 프로젝터 스크린(82)에서 하나 이상의 사용자 입력들(예컨대, 연속적인 제스쳐들, 멀티-터치 제스쳐들, 단일-터치 제스쳐들, 등)을 결정하고, 하나 이상의 통신 유닛들을 이용하여 컴퓨팅 디바이스(60)에 이러한 사용자 입력의 표시들을 전송할 수 있다.
도 3은 또한, 모바일 디바이스(86) 및 시각적 디스플레이 디바이스(90)를 도시한다. 모바일 디바이스(86) 및 시각적 디스플레이 디바이스(90)는 각각 컴퓨팅 및 연결 능력들을 포함할 수 있다. 모바일 디바이스(86)의 예들은 e-리더 디바이스들, 변환가능한 노트북 디바이스들, 하이브리드 슬레이트 디바이스들, 등을 포함할 수 있다. 시각적 디스플레이 디바이스(90)의 예들은 텔레비젼들, 컴퓨터 모니터들, 등과 같은 다른 반-고정 디바이스들을 포함할 수 있다. 도 3에 도시된 바와 같이, 모바일 디바이스(86)는 프레즌스-감응형 디스플레이(88)를 포함할 수 있다. 시각적 디스플레이 디바이스(90)는 프레즌스-감응형 디스플레이(92)를 포함할 수 있다. 프레즌스-감응형 디스플레이들(88 및 92)은 본 발명에 기술된 바와 같은 프레즌스-감응형 디스플레이(4)의 기능의 서브세트 또는 기능의 전부를 포함할 수 있다. 일부 예들에서, 프레즌스-감응형 디스플레이들(88 및 92)은 추가적인 기능을 포함할 수 있다. 일부 경우에서, 프레즌스-감응형 디스플레이(92)는 예컨대, 컴퓨팅 디바이스(60)로부터 데이터를 수신하고 그래픽 컨텐츠를 디스플레이할 수 있다. 일부 예들에서, 프레즌스-감응형 디스플레이(92)는 용량적, 유도적 그리고/또는 광학적 인식 기법들을 이용하여 프로젝터 스크린에서 하나 이상의 사용자 입력들(예컨대, 연속적인 제스쳐들, 멀티-터치 제스쳐들, 단일-터치 제스쳐들, 등)을 결정하고, 하나 이상의 통신 유닛들을 이용하여 컴퓨팅 디바이스(60)에 이러한 사용자 입력의 표시들을 전송할 수 있다.
상기에 기술된 바와 같이, 일부 예들에서, 컴퓨팅 디바이스(60)는 시스템 버스 또는 다른 적절한 통신 채널에 의해 컴퓨팅 디바이스(60)에 결합되는 프레즌스-감응형 디스플레이(64)에 디스플레이를 위해 그래픽 컨텐츠를 출력할 수 있다. 컴퓨팅 디바이스(60)는 또한, 프로젝터(80), 프로젝터 스크린(82), 모바일 디바이스(86) 및 시각적 디스플레이 디바이스(90)와 같은 하나 이상의 원격 디바이스들에 디스플레이를 위해 그래픽 컨텐츠를 출력할 수 있다. 예를 들어, 컴퓨팅 디바이스(60)는 본 발명의 기법들에 따라 그래픽 컨텐츠를 생성 및/또는 수정하기 위해 하나 이상의 명령어들을 실행시킬 수 있다. 컴퓨팅 디바이스(60)는 통신 유닛(70)과 같은 컴퓨팅 디바이스(60)의 통신 유닛에 그래픽 컨텐츠를 포함하는 데이터를 출력할 수 있다. 통신 유닛(70)은 프로젝터(80), 프로젝터 스크린(82), 모바일 디바이스(86) 및/또는 시각적 디스플레이 디바이스(90)와 같은 하나 이상의 원격 디바이스들에 데이터를 전송할 수 있다. 이 방식으로, 컴퓨팅 디바이스(60)는 원격 디바이스들 중 하나 이상에서 디스플레이를 위해 그래픽 컨텐츠를 출력할 수 있다. 일부 예들에서, 원격 디바이스들 중 하나 이상은 각각의 원격 디바이스들에 포함 및/또는 동작적으로 결합되는 프레즌스-감응형 디스플레이에 그래픽 컨텐츠를 출력할 수 있다.
일부 예들에서, 컴퓨팅 디바이스(60)는 컴퓨팅 디바이스(60)에 동작적으로 결합되는 프레즌스-감응형 디스플레이(64)에 그래픽 컨텐츠를 출력하지 않을 수 있다. 다른 예들에서, 컴퓨팅 디바이스(60)는 통신 채널(62A)에 의해 컴퓨팅 디바이스(60)에 결합되는 프레즌스-감응형 디스플레이(64) 및 하나 이상의 원격 디바이스들에 디스플레이를 위해 그래픽 컨텐츠를 출력할 수 있다. 이러한 예들에서, 그래픽 컨텐츠는 각각의 디바이스에 실질적으로 동시에 디스플레이될 수 있다. 예를 들어, 원격 디바이스에 그래픽 컨텐츠를 포함하는 데이터를 전송하기 위한 통신 레이턴시에 의해 일부 지연이 도입될 수 있다. 일부 예들에서, 컴퓨팅 디바이스(60)에 의해 생성되고 프레즌스-감응형 디스플레이(64)에 디스플레이하기 위해 출력되는 그래픽 컨텐츠는 하나 이상의 원격 디바이스들에 디스플레이하기 위해 출력되는 그래픽 컨텐츠 디스플레이 출력과는 다를 수 있다.
컴퓨팅 디바이스(60)는 어떤 적절한 통신 기법들을 이용하여 데이터를 전송 및 수신할 수 있다. 예를 들어, 통신 디바이스(60)는 네트워크 링크(72A)를 이용하여 외부 네트워크(74)에 동작적으로 결합될 수 있다. 도 3에 도시된 원격 디바이스들 각각은 각각의 네트워크 링크들(72B, 72C 및 72D) 중 하나에 의해 네트워크(74) 외부의 네트워크에 동작적으로 결합될 수 있다. 외부 네트워크(74)는 동작적으로 상호 결합되고(inter-coupled) 그럼으로써 도 3에 도시된 컴퓨팅 디바이스(60)와 원격 디바이스들 사이의 정보의 교환을 제공하는 네트워크 허브들, 네트워크 스위치들, 네트워크 라우터들, 등을 포함할 수 있다. 일부 예들에서, 네트워크 링크들(72A-72D)은 이더넷, ATM 또는 다른 네트워크 연결들일 수 있다. 이러한 연결들은 무선 및/또는 유선 연결들일 수 있다.
일부 예들에서, 통신 디바이스(60)는 직접적인 디바이스 통신(78)을 이용하여 도 3에 포함된 원격 디바이스들 중 하나 이상에 동작적으로 결합될 수 있다. 직접적인 디바이스 통신(78)은 컴퓨팅 디바이스(60)가 유선 또는 무선 통신을 이용하여 원격 디바이스와 직접적으로 데이터를 전송 및 수신할 수 있는 통신들을 포함할 수 있다. 즉, 직접적인 디바이스 통신(78)의 일부 예들에서, 컴퓨팅 디바이스(60)에 의해 전송되는 데이터는 원격 디바이스에서 수신되기 전에 하나 이상의 추가적인 디바이스들 의해 포워딩되지 않으며 이의 역 또한 마찬가지이다. 직접적인 디바이스 통신(78)의 예들은 블루투스, NFC(Near-Field Communication), USB(Universal Serial Bus), 와이파이, 적외선, 등을 포함할 수 있다. 도 3에 도시된 원격 디바이스들 중 하나 이상은 통신 링크들(76A-76D)에 의해 컴퓨팅 디바이스(60)와 동작적으로 결합될 수 있다. 일부 예들에서, 통신 링크들(76A-76D)은 블루투스, NFC, USB, 적외선, 등을 이용한 연결들을 포함할 수 있다. 이러한 연결들은 무선 및/또는 유선 연결들일 수 있다.
본 발명의 기법들에 따르면, 컴퓨팅 디바이스(60)는 외부 네트워크(74)를 이용하여 시각적 디스플레이 디바이스(90)에 동작적으로 결합될 수 있다. 컴퓨팅 디바이스(60)는 프레즌스-감응형 디스플레이(92)에 디스플레이하기 위해 그래픽 키보드를 출력할 수 있다. 예를 들어, 컴퓨팅 디바이스(60)는 통신 유닛(70)에 그래픽 키보드의 표시를 포함하는 데이터를 전송할 수 있다. 통신 유닛(70)은 외부 네트워크(74)를 이용하여 시각적 디스플레이 디바이스(90)에 그래픽 키보드의 표시를 포함하는 데이터를 전송할 수 있다. 시각적 디스플레이 디바이스(90)는 외부 네트워크(74)를 이용하여 데이터를 수신함에 응답하여, 프레즌스-감응형 디스플레이(92)로 하여금 그래픽 키보드를 출력할 수 있게 한다. 사용자가 (예컨대, 그래픽 키보드를 출력하는 프레즌스-감응형 디스플레이(92)의 영역에서) 프레즌스-감응형 디스플레이(92)에서 제스쳐를 수행함에 응답하여, 시각적 디스플레이 디바이스(90)는 외부 네트워크(74)를 이용하여 컴퓨팅 디바이스(60)에 제스쳐의 표시를 전송할 수 있다. 통신 유닛(70)은 제스쳐의 표시를 수신하고 컴퓨팅 디바이스(61)에 이 표시를 전송할 수 있다.
프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 컴퓨팅 디바이스(60)는 제1 알파벳의 심볼들을 각각 포함하는 복수의 문자 스트링들을 제1 격자에 모델링할 수 있다. 제1 격자는 복수의 문자 스트링들의 각각의 공간적 확률들을 나타낼 수 있다. 일부 예들에서, 공간적 확률들은 적어도 하나의 제스쳐의 표시에 적어도 부분적으로 근거한다. 컴퓨팅 디바이스(60)는, 복수의 문자 스트링들 중 적어도 하나에 대해, 복수의 문자 스트링들의 공간적 확률들에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 단어들의 확률들을 나타내는 제2 격자를 이용하여 복수의 문자 스트링들 중 적어도 하나가 제2 언어에 포함된 적어도 하나의 단어에 대응할 확률을 결정할 수 있다. 적어도 하나의 단어는 제2 언어에 대응하는 제2 알파벳의 하나 이상의 심볼들에 의해 표시될 수 있다. 적어도 하나의 확률이 임계를 만족함을 결정함에 응답하여, 컴퓨팅 디바이스(60)는 적어도 하나의 단어를 표시하는 하나 이상의 심볼들을 디스플레이 하기 위해 출력할 수 있다. 예를 들어, 컴퓨팅 디바이스(60)는 통신 유닛(70)에 적어도 하나의 단어를 표시하는 데이터를 전송할 수 있다. 통신 유닛(70)은 외부 네트워크(74)를 통해 시각적 디스플레이 디바이스(90)에 데이터를 전송할 수 있다. 시각적 디스플레이 디바이스(90)는 프레즌스-감응형 디스플레이(92)로 하여금 데이터에 의해 표시되는 적어도 하나의 단어를 출력할 수 있게 한다.
도 4는 본 발명의 기법들에 따른, 컴퓨팅 디바이스가 제1 언어의 알파벳의 문자들을 선택하기 위한 사용자 입력의 표시들에 근거하여 생성하고 제2 언어의 단어들을 결정하기 위해 사용할 수 있는 격자들을 예시하는 개념도이다. 본 발명의 기법들은 도 1-2의 예들에 예시된 바와 같은 컴퓨팅 디바이스(2)에 관하여 예시적인 목적들을 위해 기술된다. 일부 예들에서, UI 모듈(6)이 탭 제스쳐와 같은 사용자 입력의 표시들을 결정함에 따라, UI 모듈(6)은 도 1-2에 이전에 기술된 터치 이벤트들을 생성할 수 있다. 터치 이벤트는 프레즌스-감응형 디스플레이(4)의 위치에 대응하는 위치 컴포넌트, 프레즌스-감응형 디스플레이(4)가 상기 위치에서 사용자 입력을 검출한 때와 관계된 시간 컴포넌트, 및/또는 터치 이벤트가 상기 위치에서의 리프트 업 또는 푸시 다운에 대응하는지에 관계된 액션 컴포넌트를 포함할 수 있다. UI 모듈(6)은 도 2에 예시된 바와 같은 입력 룩업 모듈(48)에 터치 이벤트들을 전송할 수 있다.
입력 룩업 모듈(48)은 터치 이벤트들에 표시된 프레즌스-감응형 스크린(4)의 하나 이상의 위치들에 근거하여 이웃 키 리스트를 결정할 수 있다. 이웃 키 리스트는 터치 이벤트들에 표시된 하나 이상의 위치들의 근부에 있는 그래픽 키들의 그룹을 포함할 수 있다. 예를 들어, 입력 룩업 모듈(48)은 터치 이벤트들에 표시된 하나 이상의 위치들의 임계 거리 내에 있는 키들의 그룹을 결정할 수 있다. 다른 예들에서, 입력 모듈(48)은 키들과 터치 이벤트들에 표시된 위치들과의 사이의 가장 짧은 거리들에 대응하는 키들의 그룹을 결정할 수 있다. 예를 들어, 입력 룩업 모듈(48)은 이웃 키 리스트에 터치 이벤트들에서 표시된 하나 이상의 위치들에 대한 가장 짧은 거리들을 갖는 두 개의 키들을 포함시킬 수 있다. 일부 예들에서, 입력 룩업 모듈(48)은 키의 중심(centroid) 및 하나 이상의 터치 위치들과의 사이의 겨리를 결정할 수 있다. 다른 예들에서, 입력 모듈(48)은 키의 어떤 적절한 위치로부터 하나 이상의 터치 위치들로의 거리를 결정할 수 있다.
입력 룩업 모듈(48)은 일부 예들에서, 이웃 키 리스트 내의 각각의 키에 대한 공간적 모델 확률을 결정한다. 예를 들어, 이웃 키 리스트는 도 1의 탭 위치(20A)에 대해 터치 이벤트를 결정함에 응답하여 'z' 키 및 'x' 키에 대응하는 키 정보를 포함할 수 있다. 키 정보 및 공간적 모델(10)을 이용하여, 입력 룩업 모듈(48)은 'z' 키에 대한 공간적 모델 확률을 결정할 수 있다. 유사하게, 입력 룩업 모듈(48)은 'x' 키에 대한 공간적 모델 확률을 결정할 수 있다. 현재의 예에서, 룩업 모듈(48)은 'z' 키에 대한 공간적 모델 확률이 0.64이고, 'x' 키에 대한 공간적 모델 확률이 0.36임을 결정할 수 있다. 일부 예들에서, 입력 룩업 모듈(48)은 이웃 키 리스트 및 상기 이웃 키 리스트에 포함된 키들의 각각에 대한 대응하는 공간적 모델 확률들을 빌더 모듈(50)에 전송할 수 있다.
빌더 모듈(50)은 이웃 키 리스트 및 상기 이웃 키 리스트 내의 각각의 키에 대한 대응하는 공간적 모델 확률들을 수신할 수 있다. 빌더 모듈(50)은 일반적으로, 본 발명의 기법들에 따라 하나 이상의 격자들을 구축할 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 빌더 모듈(50)은 문자 격자(100)를 수신할 수 있다. 문자 격자(100)는 각각의 입력 제스쳐, 예컨대 하나 이상의 탭들 및/또는 연속적인 제스쳐들에 대응하는 문자들을 모델링할 수 있다. 빌더 모듈(50)은 꼭지점들(102A-102C)과 같은 꼭지점들 및 에지들(104A-104D)와 같은 에지들을 갖는 방향성 비사이클 그래프로서 문자 격자(100)를 생성할 수 있다.
사용자가 탭 입력들을 제공함에 따라, 빌더 모듈(50)은 탭 입력들의 근부에 있는 키들을 나타내는 이웃 키 리스트들을 입력 모듈(48)로부터 증분적으로 수신할 수 있다. 각각의 꼭지점이 생성되고 탭 입력에 대응할 수 있다. 각각의 에지는 탭 입력에 대응하는 가능한 문자에 대응할 수 있다. 결정된 제1 탭 입력에 대해, 빌더 모듈(50)은 인덱스 0을 갖는 꼭지점(102A)으로부터 인덱스 1을 갖는 꼭지점(102B)까지 하나 이상의 에지들을 생성할 수 있다. 각각의 꼭지점은 서로 다른 인덱스와 관련될 수 있고, 루트 꼭지점은 0의 인덱스 값을 할당받을 수 있다. 빌더 모듈(50)은 이웃 키 리스트 내의 각각의 키에 대해 꼭지점(102A)으로부터 꼭지점(102B)까지 각각의 에지를 생성할 수 있다. 예를 들어, 빌더 모듈(50)은 키 'z'에 대한 에지(104A) 및 키 'x'에 대한 에지(104B)를 생성할 수 있다. 빌더 모듈(50)은 또한, 공간적 모델 확률이 에지(104A)에 대한 가중이되도록 'z' 키에 대한 공간적 모델 확률(예컨대, 0.64)을 'z' 키에 대응하는 에지(104A)와 관련시킬 수 있다. 유사하게, 빌더 모듈(50)은 'x' 키에 대한 공간적 모델 확률(예컨대, 0.36)을 'x' 키에 대응하는 에지(104B)와 관련시킬 수 있다. 따라서, 빌더 모듈(50)은 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들의 공간적 모델 확률들을 결정할 수 있다. 일부 예들에서, 그래픽 키보드의 키는 키의 위치와 탭 입력 사이의 거리가 임계를 만족할 때 탭 입력의 위치의 근부에 있을 수 있다. 예를 들어, 임계는 키의 위치와 탭 입력 사이의 거리가 임계보다 작은 경우 만족될 수 있다. 일례에서, 거리는 0 내지 100 밀리미터의 범위에서 결정된 거리일 수 있다. 일부 예들에서, 키의 위치는 키의 중심일 수 있다. 다른 예들에서, 키의 위치는 키에 대응하는 어떤 위치든 될 수 있다. 일부 예들에서, 그래픽 키보드의 키는 키의 위치와 탭 입력 사이의 픽셀들의 수가 임계를 만족할 때 탭 입력의 위치의 근부에 있을 수 있다. 일례에서, 픽셀들의 수는 0 내지 1000개의 범위에서 결정된 수의 픽셀들일 수 있다.
빌더 모듈(50)이 탭 입력들을 증분적으로 수신함에 따라, 빌더 모듈(50)은 추가적인 꼭지점들(102B, 102C, 등)을 생성하고, 문자 격자(100)의 각각의 꼭지점들에 대해 에지들(104A 내지 104D, 등)을 생성한다. 각각의 후속적인 탭 입력은 꼭지점의 다음 증분 인덱스 값으로 모델링될 수 있다. 즉, 빌더 모듈(50)은 제1 탭 입력에 근거하여 모델링되는 문자들에 대해 인덱스 0을 갖는 꼭지점으로부터 인덱스 1을 갖는 꼭지점까지 에지들을 생성한다. 빌더 모듈(50)은 제2 탭 입력에 근거하여 모델링되는 문자들에 대해 인덱스 1을 갖는 꼭지점으로 부터 인덱스 1을 갖는 꼭지점까지 에지들을 생성하고, 이와 유사한 방식으로 에지들의 생성이 계속된다. 이 방식으로, 사용자가 그래픽 키보드(16B)에 "zhonghuo"를 태핑함에 따라, 빌더 모듈(50)은 탭 입력들에 대응하는 가능한 키들에 대한 에지들을 생성할 수 있다. 따라서, 빌더 모듈(50)은 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들에 각각 대응하는 에지들을 제3 격자에 생성할 수 있다. 결론적으로, 문자 격자는 사용자가 탭 입력들을 제공할 때 가능하게 태핑했을 수 있는 서로 다른 키들의 각각의 확률들을 나타낼 수 있다. 키에 대한 더 높은 공간적 모델 스코어는 사용자가 키를 선택하길 의도한 더 높은 확률을 나타낼 수 있고, 키에 대한 더 낮은 공간적 모델 스코어는 사용자가 키를 선택하길 의도한 더 낮은 확률을 나타낼 수 있다.
빌더 모듈(50)은 또한, 터치 이벤트들이 사용자 입력들에 응답하여 UI 모듈(6)에 의해 생성됨에 따라 도 4에 도시된 바와 같이 토큰 격자(110)를 증분적으로 구성할 수 있다. 토큰 격자(110)는 또한, 도 4에 예시된 꼭지점들 에지들을 갖는 방향성 비사이클 그래프로서 구현될 수 있다. 일부 예들에서, 토큰 격자(110)는 문자 격자(100)과 동일한 꼭지점 인덱스들을 갖는 꼭지점들을 포함할 수 있다. 예를 들어, 꼭지점(112A)은 꼭지점(102A)과 동일한 인덱스를 포함할 수 있고, 꼭지점(112B)은 꼭지점(102B)와 동일한 인덱스를 포함할 수 있고, 꼭지점(112C)는 꼭지점(103C)와 동일한 인덱스를 가질 수 있고, 기타 등등 유사한 방식으로 꼭지점들이 인덱스를 가질 수 있다.
빌더 모듈(50)은 또한 후보 문자 스트링들에 대응하는 에지들을 생성할 수 있다. 도 1에 이전에 기술된 바와 같이, 후보 문자 스트링은 사용자에 의해 태핑되는 가능한 키들에 대응하는 문자들의 조합을 표시할 수 있다. 각각의 후보 문자 스트링은 발음 표시 예컨대, 중국어 문자를 표시하는 핀인 스트링에 대응할 수 있다. 일부 예들에서, 후보 문자 스트링은 음절, 단어, 등과 같은 시멘틱(semantic) 및/또는 표음(phonetic) 단위를 포함하는 문자들의 그룹일 수 있다. 일부 예들에서, 후보 문자 스트링들은 "zhong" 및 "guo"와 같은 발음 표시들의 정확한 철자들일 수 있다.
빌더 모듈(50)은 후보 문자 스트링들을 형성하고 상기 후보 문자 스트링들을 토큰 격자(110)의 에지와 관련시키기 위해 문자 격자(100)의 에지들에 대응하는 하나 이상의 문자들의 그룹을 선택할 수 있다. 예를 들어, 빌더 모듈(50)은 후보 문자 스트링 "zhong"을 에지(144C)와 관련시킬 수 있다. 에지(114C)의 해드 꼭지점(112A)의 인덱스는 0에 대응할 수 있고, 테일 꼭지점(112D)의 인덱스는 5에 대응할 수 있다. 즉, 빌더 모듈(50)은 테일 꼭지점의 인덱스를 n과 동일한 것으로 결정할 수 있고, n은 후보 스트링내의 문자들의 수이다. 예를 들어, 도 4에서 후보 문자 스트링"zhong"은 5개의 문자들을 포함하고, 그러므로, 빌더 모듈(50)은 에지(114C)의 테일 꼭지점이 5의 인덱스를 가지는 꼭지점(112D)임을 결정할 수 있다.
도 4에 도시된 바와 같이, 빌더 모듈(50)은 또한, 꼭지점(112D)으로부터 꼭지점(112E)까지의 에지(114A)를 생성할 수 있다. 에지(114A)는 후보 문자 스트링 "guo"에 대응할 수 있다. 빌더 모듈(50)은 또한, 꼭지점(112D)로부터 꼭지점(112E)까지 에지(114B)를 생성할 수 있다. 에지(114A)는 후보 문자 스트링 "huo"에 대응할 수 있다. 하기에 더 기술되는 바와 같이, 빌더 모듈(50)은 문자 격자(100)에 대한 어떤 수의 후보 문자 스트링들을 결정할 수 있고, 각각의 후보 문자 스트링들을 토큰 격자(110)의 에지들과 관련시킬 수 있다.
토큰 격자(110)의 에지들의 각각은 또한, 가중을 포함할 수 있다. 토큰 격자(110) 내의 에지의 가중은 에지와 관련된 후보 문자 스트링의 집합적인 공간적 모델 확률을 나타낼 수 있다. 집합적인 공간적 모델 확률은 후보 문자 스트링 내의 문자에 대응하는 문자 격자(100) 내의 각각의 에지와 관련된 결합 가중을 표시할 수 있다. 예를 들어, "zhong"에 대한 집합적인 공간적 모델 확률(즉, 에지(114C)에 대한 가중)은 문자들 'z', 'h', 'o', 'n', 'g'에 대응하는 문자 격자(100) 내의 에지들의 가중들에 근거할 수 있다. 일례에서, 빌더 모듈(50)은 에지(114C)의 가중이 다음의 곱, 즉 0.64 x 0.78 x 0.65 x 0.55 x 0.58 = 0.104과 동일함을 결정할 수 있다. 즉, 빌더 모듈(50)은 복수의 후보 문자 스트링들 중 일 후보 문자 스트링에 포함된 문자들의 그룹을 결정하고, 그 후보 문자 스트링에 포함된 문자들에 대응하는 키들의 공간적 모델 확률들을 결정할 수 있다. 이 결정들에 근거하여, 빌더 모듈(50)은 후보 문자 스트링에 포함된 문자들에 대응하는 키들의 공간적 모델 확률들에 적어도 부분적으로 근거하여 후보 문자 스트링들의 집합적인 공간적 모델 확률을 결정할 수 있다. 빌더 모듈(50)은 유사하게, 에지들(114A 및 114B)에 대한 가중들을 결정할 수 있다.
빌더 모듈(50)은 토큰 격자(110)에 포함된 에지들의 수, 토큰 격자(110)의 각각의 후보 문자 스트링 내의 문자들의 수, 및 문자 격자(100)로부터 결정된 문자 스트링의 시작 및 종료 문자들을 결정하기 위해 다양한 기법들을 이용할 수 있다. 일부 예들에서, 빌더 모듈(50)은 임계에 근거하여 토큰 격자(110)에 포함된 에지들의 수(및 그러므로 후보 스트링들의 수)를 결정할 수 있다. 예를 들어, 빌더 모듈(50)은 임계보다 작은 수의 에지들을 토큰 격자(110)에 포함시킬 수 있다. 일부 예들에서, 토큰 격자(110)에 포함된 에지들의 수는 시간 윈도 및/또는 키스트로크량 윈도우에 근거할 수 있다. 이 방식으로, 최초 입력으로부터 추가적인 문자들이 수신되고 그리고/또는 추가적인 시간이 지나감에 따라, 에지의 수명은 감쇠하고 결론적으로는 빌더 모듈(50)은 토큰 격자(110)로부터 에지를 제거할 수 있다. 다른 예들에서, 빌더 모듈(50)은 구획 문자(delimiter character) 또는 하나 이상의 문자들 및/또는 단어들이 사용자에 의해 선택됨을 결정함에 응답하여 토큰 격자(110)로부터 에지를 제거할 수 있다.
일부 예들에서, 빌더 모듈(50)은 하나 이상의 규칙들에 근거하여 토큰 격자(110)의 에지와 관련된 각각의 후보 문자 스트링 내의 문자들의 수를 결정할 수 있다. 일부 예들에서, 하나 이상의 규칙들은 서로 다른 가능한 후보 문자 스트링들을 포함하는 어휘록(lexicon)으로 구현될 수 있다. 규칙들은 하기에 더 기술되는 바와 같이 예컨대, 문자들이 다른 소정의 문자들을 뒤따르는 빈도, 문자들이 입력되는 언어 컨텍스트, 등에 근거하여 후보 문자 스트링들의 그룹들의 확률을 나타낼 수 있다.
어휘록은 어레이, 리스트 및/또는 트리(tree)와 같은 데이터 구조들의 범위에 의해 표시될 수 있다. 예를 들어, 일부 예들에서, 컴퓨팅 디바이스(2)는 트리(trie) 데이터 구조로 구현된 어휘록을 포함할 수 있다. 어휘록은 단어들의 리스트를 포함할 수 있고 리스트된 단어들에 관한 추가적인 정보를 포함할 수 있다. 어휘록 트리 데이터 구조는 복수이 노드들을 포함할 수 있고, 각각의 노드는 글자를 표시할 수 있다. 어휘록 트리에서 제1 노드는 글자에 대응하지 않을 수 있는 엔트리 노드(entry node)로서 나타내질 수 있다. 다른 예들에서, 엔트리 노드는 글자에 대응할 수 있다. 각각의 노드는 하나 이상의 차일드 노드들에 대한 하나 이상의 브랜치들을 포함할 수 있다. 예를 들어, 엔트리 노드는 26개의 차일드 노드들을 가질 수 있고, 각각의 차일드 노드는 알파벳(예컨대, 영어 알파벳)의 글자에 대응한다. 26개의 차일드 노드들 각각은 추가적인 노드들에 대응하는 하나 이상의 브랜치들을 가질 수 있다. 추가적인 노드들 각각은 문자와 관련될 수 있다. 차일드 노드는, 상기 차일드 노드의 글자가 페어런트 노드의 글자를 뒤따를 확률을 나타내는 확률을 포함할 수 있다. 확률은 하나 이상의 단어 및/또는 문자 n-그램 언어 모델들, 차일드 노드의 문자가 발생하는 빈도, 등에 근거할 수 있다. 이 방식으로, 어휘록 트리의 경로는 후보 문자 스트링에 대응하는 차일드 노드들의 체인을 포함할 수 있다. 예를 들어, 엔트리 노드로부터 비롯되는 차일드 노드들의 체인은 문자들 'z', 'h', o', 'n', 'g'을 포함할 수 있고, 각각의 차일드 노드는 문자들 중 하나를 포함한다.
어휘록 트리 내의 노드들의 서브세트는, 노드가 터미널 노드(terminal node)임을 나타내는 플래그를 각각 포함할 수 있다. 어휘록 트리의 각각의 터미널 노드는 완성된 후보 스트링을 나타낼 수 있다. 그러므로, 엔트리 노드로부터 터미널 노드로의 노드들의 경로를 따르는 노드들에 의해 나타내진 글자들은 터미널 노드에 의해 나타내진 후보 문자 스트링의 철자를 알려줄(spell out) 수 있다. 일부 예들에서, 어휘록 트리는 컴퓨팅 디바이스(2) 상에 인스톨된 사전에 근거할 수 있다. 다른 예들에서, 어휘록 트리는 컴퓨팅 디바이스(2)에 저장되거나, 또는 하나 이상의 원격 컴퓨팅 디바이스들에 저장될 수 있고 하나 이상의 통신 채널들을 통해 컴퓨팅 디바이스(2)에 액세스가능할 수 있는 복수의 소스들에 근거할 수 있다.
사전은 가능한 후보 문자 스트링들의 말뭉치(corpus)를 나타낼 수 있다. 예를 들어, 사전은 제2 언어(예컨대, 중국어)의 문자들 및/또는 단어들의 발음 표시들을 포함할 수 있다. 즉, 사전은 상기 사전이 중국어 핀인 스트링을 포함하는 예에서, "zhong", "huo", "guo", 등과 같은 핀인 스트링들을 포함할 수 있다.
어휘록 트리 내의 노드는, 상기 노드가 엔트리 노드로부터의 노드들의 경로 내의 차일드 노드인 경우 터미널 토큰을 나타내기 위한 플래그를 포함할 수 있고, 상기 경로를 따라는 조상 노드들에 포함된 문자들은 사전에 포함된 단어의 문자들의 스트링을 포함한다. 예를 들어, 각각의 값들로서 [<엔트리>, 'z', 'h', o', 'n', 'g']를 포함하는 여섯개의 노드들의 경로는 글자 'g'를 포함하는 제6 노드에 터미널 노드를 나타내는 플래그를 포함할 수 있다. 이 방식으로, 엔트리 노드로부터 터미널로 어휘록 트리를 횡단할 때, 컴퓨팅 디바이스(2)는 후보 문자 스트링의 시작 및 종료를 결정할 수 있다.
일부 예들에서, 어휘록 트리의 노드들은 n-그램 언어 모델들과 같은 언어 모델 빈도 정보에 근거하여 노드들에 포함된 문자들의 확률들을 포함할 수 있다. n-그램 언어 모델은 시퀀스 내의 이전의 아이템들에 근거하여 연속적인 아이템들의 시퀀스 내의 아이템(글자 또는 단어) xi에 대한 확률 분포(즉, )를 제공할 수 있다. 예를 들어, 바이그램 언어 모델(bigram language model)(n=2인 n-그램 모델)은 글자 "o"가 시퀀스 "zh"를 뒤따를 확률을 제공할 수 있다. 일부 예들에서, 어휘록 트리는 통합된 언어 모델 빈도 정보를 포함할 수 있다. 예를 들어, 어휘록 트리의 각각의 노드는 글자 및 확률 값의 표시를 포함할 수 있다.
빌더 모듈(50)은 일부 예들에서, 어휘록 트리의 터미널 노드에 포함된 터미널 플래그에 근거하여 후보 문자 스트링(예컨대, 문자 격자(100)에 포함된 문자들의 그룹)의 시작 및 종료 문자들을 결정할 수 있다. 예를 들어, 빌더 모듈(50)이 문자 격자(100)를 증분적으로 구축함에 따라, 빌더 모듈(50)은 후보 문자 스트링들 각각에 포함된 문자들과 같은 가능한 후보 문자 스트링들에 관한 상태 정보를 저장할 수 있다. 빌더 모듈(50)은 어휘록 트리의 노드들에 증분적으로 문자 스트링들을 비교할 수 있다. 빌더 모듈(50)이 문자가 어휘록 트리의 경로에 포함된 터미널 노드에 대응함을 결정하면, 빌더 모듈(50)은 경로 내의 노드들에 대응하는 문자들이 어휘록이 구성된 사전에 포함된 후보 문자 스트링임을 결정할 수 있다. 예를 들어, 빌더 모듈(50)은 문자 'g'에 대응하는 키의 근부에 있는 위치를 나타내는 터치 이벤트를 수신할 수 있다. 빌더 모듈(50)은 후보 스트링 "zhon"에 관한 상태 정보를 현재 포함하며 그러므로, "zhong"에 대응하는 노드들을 갖는 어휘록 트리 내의 경로를 결정할 수 있다. "g"에 대응하는 노드는 이 노드가 터미널 노드임을 나타내기 위해 플래그를 포함할 수 있다. 터미널 노드를 나타내는 플래그를 결정함에 응답하여, 빌더 모듈(50)은 "zhong"에 대응하는 에지(114C)를 토큰 격자(110)에 생성할 수 있다.
일부 예들에서, 빌더 모듈(50)은 터미널 노드를 결정함에 응답하여, 후속적인 탭 입력들이 서로 다른 후보 문자 스트링의 문자들에 대응할 수 있음을 결정할 수 있다. 예를 들어, 빌더 모듈(50)은 터미널 노드 'g'에 근거하여, "zhong"이 사전에 포함된 후보 스트링임을 결정할 수 있다. 그러므로, 다음 탭 입력은 다른 후보 문자 스트링의 시작에 대응할 수 있다. 예를 들어, 가능한 키들에 대응하는 다음 두 개의 문자는 인덱스 5를 갖는 꼭지점으로부터 인덱스 6을 갖는 꼭지점까지의 에지들에 의해 문자 격자(100)에 나타내진 바와 같은 'h' 및 'g'일 수 있다. 이 방식으로, 빌더 모듈(50)은 문자들 'h' 및 'g' 각각으로 시작하는 서로 다른 후보 문자 스트링들의 상태를 유지할 수 있다. 후속적인 탭 입력들에 대응하는 문자들이 결정됨에 따라, 빌더 모듈(50)은 예컨대, 후보 문자 스트링들 "huo" 및 "guo"을 어휘록 트리에 비교할 수 있다. 어휘록 트리 내의 "huo" 및 "guo" 각각에 대한 터미널 노드들을 결정할 시, 빌더 모듈(50)은 "guo"에 대해 토큰 격자(110)에 에지(114A)를 추가하고 및 "huo"에 대해 에지(114B)를 추가할 수 있다. 이 방식으로, 빌더 모듈(50)은 문자 격자(100) 내의 문자들의 그룹들 사이의 문자 및 단어 경계들을 결정하고, 토큰 격자(110)에 대응하는 후보 문자 스트링들을 추가할 수 있다.
빌더 모듈(50)은 일부 예들에서, 문자 스트링들의 최후 글자들에 대응하는 노드들이 터미널 노드들이 아닐 수 있더라도, 어휘록 트리에 근거하여 하나 이상의 후보 문자 스트링들을 선택할 수 있다. 예를 들어, 빌더 모듈(50)은 어휘록 트리의 경로 내의 복수의 노드들에 대응하는 문자 스트링의 집합적인 확률을 결정할 수 있다. 집합적인 확률은 소정 경로를 따르는 각각의 개별적인 노드와 관련된 확률들에 근거할 수 있다. 상기에 나타내진 바와 같이, 개별적인 노드와 관련된 확률은 하나 이상의 단어 및/또는 문자 n-그램 언어 모델들, 차일드 노드의 문자가 발생하는 빈도, 등에 근거할 수 있다. 빌더 모듈(50)은 하나 이상의 후보 문자 스트링들의 집합적인 확률들에 근거하여 하나 이상의 후보 문자 스트링들을 결정할 수 있다. 예를 들어, 후보 문자 스트링의 집합적인 확률이 임계를 만족하면(예컨대, 집합적인 확률이 임계보다 크면), 빌더 모듈(50)은 후보 문자 스트링에 대응하는 에지를 토큰 격자(110)에 추가할 수 있다.
빌더 모듈(50)은 문자 격자(100)에 포함된 문자들에 근거하여 후보 문자 스트링들의 시작 및 종료 문자들을 식별하기 위해 이전의 예에서 예시된 바와 같은 어휘록 트리를 이용할 수 있지만, 빌더 모듈(50)은 또한, 시작 및 종료 문자들을 결정하기 위해 다른 기법들을 이용할 수 있다. 예를 들어, 빌더 모듈(50)은 시작 및 종료 문자들을 결정할 때 길이 임계들을 이용할 수 있다. 길이 임계들은 후보 문자 스트링들의 가능성있는(probable) 길이들을 나타내는 확률 정보에 근거할 수 있다. 다른 예들에서, 길이 임계들은 사용자 정의 값들일 수 있다. 중국어에서, 핀인 값들은 가장 일반적으로는, 하한 임계(lower bound threshold)와 상한 임계(upper bound threshold) 사이의 문자 길이들로 이루어질 수 있다. 하나의 비 제한적인 예로서, 하한 임계는 2개의 문자들일 수 있고, 상한 임계는 4개의 문자들일 수 있다. 탭 입력들의 근부에 있는 키들에 대응할 수 있는 문자들의 시퀀스를 결정함에 응답하여, 빌더 모듈(50)은 길이들, 2, 3, 4 및 5의 후보 문자 스트링들에 대응하는 에지들을 단어 격자(110)에 추가할 수 있다. 예를 들어, 빌더 모듈(50)은 후보 문자 스트링들 중 하나 이상이 사전에 포함되지 않고 그리고/또는 어휘록 트리에 모델링되지 않을 수 있더라도, 후보 문자 스트링들 "zh", "zho", "zhon", 및 "zhong"에 대한 에지들을 추가할 수 있다.
하나의 대안적인 예에서, 빌더 모듈(110)은 사전에 포함된 후보 문자 스트링들의 철자 오류(misspelling)을 포함하는 후보 문자 스트링들을 모델링하는 중간 토큰 격자를 구축할 수 있다. 즉, 빌더 모듈(110)은 어휘 외의(out-of-vocabulary) 후보 문자 스트링을 결정할 수 있고, 토큰 격자(110) 내의 어휘 외의 후보 문자 스트링과 유사한 사전 내의 대응하는 후보 문자 스트링을 모델링할 수 있다. 예를 들어, 빌더 모듈(110)은 후보 문자 스트링 "zhomv"을 결정할 수 있고, "zhomv"는 또한, 발음 표시 "zhomg"의 철자 오류일 수 있다. 일부 예들에서, 빌더 모듈(50)은 발음 표시들의 철자 오류들 모두를 포함하는 중간 토큰 격자 내의 후보 문자 스트링들에 대한 에지들을 생성할 수 있다. 일부 예들에서, 빌더 모듈(110)은 중간 격자 내의 에지에 대응하는 후보 문자 스트링(철자 오류 또는 어휘 외의 후보 문자 스트링)과 사전 내의 하나 이상의 후보 문자 스트링들 사이의 유사성의 정도를 확률적으로 결정할 수 있다. 일부 예들에서, 빌더 모듈(110)은 어휘록 트리 또는 하나 이상의 자카드 계수(Jaccard coefficient)들을 이용하여 유사성의 정도를 결정할 수 있다. 철자 오류와 사전 내의 후보 문자 스트링 사이의 유사성의 정도가 임계를 만족하면(예컨대, 유사성의 정도가 임계보다 크면), 빌더 모듈(110)은 사전에 포함된 후보 문자 스트링에 대응하는 에지를 토큰 격자(110)에 포함할 수 있다.
컴퓨팅 디바이스(2)가 사용자 입력의 표시들을 수신함에 따라, 빌더 모듈(50)은 단어 격자(120)를 증분적으로 구축할 수 있다. 빌더 모듈(50)은 단일의 그리고/또는 복수의 후보 문자 스트링들과 관련된 에지를 생성할 수 있다. 즉, 토큰 격자(110)의 에지들 상에 모델링된 후보 문자 스트링들은 중국어 핀인 스트링들에 대응할 수 있고 단어 격자(120) 상의 에지들은 단일의 또는 조합의 중국어 핀인 스트링들에 대응할 수 있다. 일부 예들에서, 하나 이상의 후보 문자 스트링들의 조합은 제2 언어의 하나 이상의 문자들 및/또는 단어들에 대응할 수 있다. 예를 들어, 하나 이상의 중국어 핀인 스트링들의 조합은 중국어 단어 또는 복수의 단어들을 포함하는 중국어 구를 포함할 수 있다. 일례로, 핀인 스트링 "zhongguo"은 중국 어 단어 (즉, "중국")에 대한 표시일 수 있다. 상세한 설명 전반에 나타내진 바와 같이, 비록 중국어가 제2 언어의 하나의 비제한적인 예로서 예시되지만, 본 발명의 기법들은 일반적으로 어느 언어에도 적용가능할 수 있다.
일부 예들에서, 빌더 모듈(50)은 제2 언어의 하나 이상의 문자, 단어들 또는 복수-단어 구들에 대응하는 에지를 단어 격자(120)에 생성할 수 있다. 단어 격자(120)에 모델링할 제2 언어의 하나 이상의 문자, 단어들 또는 복수-단어 구들을 선택하기 위해, 빌더 모듈(50)은 트리 데이터 구조를 이용할 수 있다. 트리 데이터 구조는 복수의 노드들을 가지는 트리(tree)로서 구현될 수 있다. 각각의 노드는 후보 문자 스트링(예컨대, 중국어의 경우 핀인 스트링)에 대응할 수 있다. 예를 들어, 트리 데이터 구조는 빈 루트 노드(empty root node)를 포함할 수 있다. 루트 노드는 후보 문자 스트링 'zhong'에 대응하는 차일드 노드를 포함할 수 있다. 추가적으로, 'zhong'에 대한 노드는 후보 문자 스트링에 대응하는 제2 언어(예컨대, 중국어)의 문자, 단어 또는 복수-단어 구와 관련될 수 있다. 예를 들어, 후보 문자 스트링 'zhong'에 대응하는 차일드 노드는 중국어의 문자 과 관련될 수 있다. 'zhong'에 대응하는 차일드 노드는 'huo' 및 'guo'에 각각 대응하는 차일드 노드들을 더 포함할 수 있다. 각각의 차일드 노드들 각각은 및 과 관련될 수 있다.
단어 격자(120)에 에지들을 생성하기 위해, 빌더 모듈(50)은 단어 격자(110)의 하나 이상의 후보 문자 스트링들에 대응하는 에지들을 단어 격자(120)에 생성할 수 있다. 예를 들어, 빌더 모듈(50)은 단어 격자(110)를 횡단하여 에지(114C)에 대응하는 후보 문자 스트링 'zhong'을 선택할 수 있다. 빌더 모듈(50)은 후보 문자 스트링 'zhong'에 대응하는 에지(124A)를 단어 격자(120)에 생성할 수 있다. 빌더 모듈(50)은 또한, 문자 을 에지(124A)와 관련시킬 수 있는 바, 그 이유는 문자 이 후보 문자 스트링 'zhong'에 대응하는 트리 내의 노드와 관련되기 때문이다. 하기에 더 기술되는 바와 같이, 에지(예컨대, (124B))에 대한 가중에 포함된 언어 모델 확률은 문자 및 후보 문자 스트링 'zhong'에 근거할 수 있다. 단어 격자(120) 내의 에지(124A)에 대한 꼭지점들의 인덱스 값들은 토큰 격자(110) 내의 에지(114C)의 동일한 시작 및 종료 꼭지점들에 대응할 수 있다. 빌더 모듈(50)은 유사한 방식으로 에지들(124D 및 124E)을 생성할 수 있다.
일부 예들에서, 빌더 모듈(50)은 단어 격자(110)에 모델링된 후보 문자 스트링들에 근거하여 조합 문자들, 단어들 또는 복수-단어 구들에 대응하는 에지(124B)를 생성할 수 있다. 예를 들어, 빌더 모듈(50)은 트리를 횡단하여 단어 격자(110)에 모델링된 서로 다른 후보 문자 스트링들에 각각 대응하는 복수의 노드들을 통한 경로를 결정할 수 있다. 예를 들어, 빌더 모듈(50)은 단어 격자(110)로부터 에지(114C)에 대응하는 'zhong' 및 에지(114A)에 대응하는 'guo'를 선택할 수 있다. 빌더 모듈(110)은 트리에서 루트 노드로부터 'zhong'에 대응하는 제1 차일드 노드로 횡단할 수 있고, 'guo'에 대응하는 제2 차일드 노드로 더 횡단할 수 있다. 일부 예들에서, 'guo'에 대응하는 제2 차일드 노드는 터미널 노드일 수 있다. 터미널 노드는 'guo'가 'zhongguo'에 대응하는 후보 문자 스트링들, 예컨대 'zhong' 'guo'의 그룹 내의 최후 후보 문자 스트링임을 나타낼 수 있다. 도 4에 도시된 바와 같이, 빌더 모듈(120)은 을 에지와 관련시킴으로써 후보 문자 스트링들의 조합 'zhongguo'에 대응하는 에지(124B)를 생성한다. 빌더 모듈(120)은 유사하게 에지(124C)를 생성할 수 있다.
도 4로부터 보여질 수 있는 바와 같이, 빌더 모듈(120)은 단어 격자(110)의 에지들에 대응하는 후보 문자 스트링들에 근거하여 단어 격자(120)에 대한 어떤 수의 에지들을 결정할 수 있다. 예를 들어, 'zhongguo'가 중국어의 복수의 서로 다른 문자들, 단어들 또는 복수-단어 구들에 대응하면, 빌더 모듈(50)은 가능한 조합들 중 하나 이상에 대한 에지들을 생성할 수 있다. 예를 들어, 'zhong'은 각각 서로 다르게 발음될 수 있는 중국어의 '' 및 ''에 대응할 수 있다. 트리에는, {zhong, } 및 {zhong, }에 대응하는 별개의 노드들이 존재할 수 있다. 별개 노드들 각각은 {guo, } 및 {huo, }에 대응하는 두 개의 차일드 노드들을 가질 수 있다. 결론적으로, 빌더 모듈(50)이 트리를 횡단할 때, 빌더 모듈(50)은 예컨대, {zhongguo, }, {zhonghuo, }, {zhongguo, } 및 {zhonghuo, }에 대응하는 별개의 에지들을 단어 격자(120)에 생성할 수 있다. 이 방식으로, 빌더 모듈(50)은 단어 격자(120)의 에지들 상에서 제2 언어의 서로 다른 문자들/단어들/복수-단어 구들에 대응하는 후보 문자 스트링들의 복수의 서로 다른 조합들을 모델링할 수 있다. 더욱이, 빌더 모듈(120)은 단어 격자(120) 내의 단일 에지들에 대응하는 토큰 격자(110)로부터의 후보 문자 스트링들(예컨대, 'zhong' 및 'guo')의 어떤 수의 조합들(예컨대, 'zhongguo')을 결정할 수 있다.
일부 예들에서, 빌더 모듈(50)은 단어 격자(120)의 각각의 에지에 대한 가중을 결정할 수 있고, 단어 격자(120)의 각각의 에지는 하나 이상의 후보 문자 스트링들의 조합에 대응한다. 도 4에 도시된 바와 같이, 에지(124A)는 후보 문자 스트링 "zhong"에 대응하며, 에지(124B)는 후보 문자 스트링 "zhongguo"에 대응하며, 에지(124C)는 후보 문자 스트링 "zhonghuo"에 대응하며, 에지(124D)는 "guo"에 대응하고 그리고 에지(124E)는 "huo"에 대응한다. 일례에서, 빌더 모듈(50)은 에지(12A) 상에서 모델링된 후보 문자 스트링에 대응하는 토큰 격자(110) 내의 에지(예컨대, 114C)의 시작 및 종료 꼭지점들(예컨대, 112A 및 112D)에 근거하여 에지(124A)의 시작 및 종료 꼭지점들(122A 및 122B)을 결정할 수 있다. 복수의 후보 문자 스트링들이 단어 격자(120)에서 단일 에지 상에 모델링되면, 빌더 모듈(50)은 단어 격자(120) 내의 시작 꼭지점(122A)의 인덱스를 복수의 후보 문자 스트링들에 포함된 제1 후보 문자 스트링에 대응하는 토큰 격자(110) 내의 에지의 시작 꼭지점(112A)의 인덱스인 것으로 결정할 수 있다. 단어 격자(120) 내의 종료 꼭지점(122C)의 인덱스는 복수의 후보 문자 스트링들에서 최종 후보 문자 스트링에 대응하는 토큰 격자(110) 내의 에지의 종료 인덱스(112E)와 동일할 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 에지(124B)에 대한 시작 꼭지점의 인덱스는 에지(114C)에 대한 시작 꼭지점의 인덱스와 동일하며, 에지(124B)에 대한 종료 꼭지점의 인덱스는 에지(114A)에 대한 종료 꼭지점의 인덱스와 동일하다.
단어 격자(120) 내의 에지의 가중은 에지에 대응하는 하나 이상의 후보 문자 스트링들의 그룹의 단어 격자(110)로부터의 집합적인 총 가중에 근거할 수 있다. 단어 격자(120) 내의 에지의 가중은 언어 모델 스코어에 근거할 수 있다. 일부 예들에서, 에지의 가중은 토큰 격자(110)로부터의 집합적인 총 가중 및 언어 모델 스코어에 근거할 수 있다.
도 4에 도시된 바와 같이, 에지(124C)는 "zhonghuo"에 대한 집합적인 총 가중(예컨대, 공간적 모델 스코어) 및 언어 모델 스코어에 근거할 수 있다. 집합적인 총 가중은, "zhonghuo"의 문자들에 대응하는 키들의 전체적인 공간적 확률을 나타낼 수 있는 0.104 x 0.308와 동일할 수 있다. 빌더 모듈(50)은 또한, 에지(124C)에 대한 언어 모델 확률(또는 "언어 모델 스코어")을 결정할 수 있다. 일부 예들에서, 언어 모델 확률은 제2 언어의 단어를 고려한 제1 언어의 알파벳의 문자들을 포함하는 하나 이상의 후보 문자 스트링들의 그룹의 확률을 나타낼 수 있다. 예를 들어, 에지(124C)에 대한 언어 모델 확률은 중국어 단어 를 고려한 "zhonghuo"의 확률을 나타낼 수 있다. 다시 말해, 빌더 모듈(50)은 중국어 단어 ''("zhonghuo")가 사용자에 의해 입력되도록 의도된 단어임을 고려하여, 사용자가 두 개의 후보 문자 스트링들 "zhong" 및 "huo"을 포함하는 후보 스트링 "zhonghuo"을 입력했을 확률을 결정할 수 있다. 즉, 에지(124C)의 언어 모델 확률은 중국어 단어 ''(124C)가, ""가 'zhonghuo'로 발음될 확률에 대응할 수 있는 확률을 나타낼 수 있다. 더욱 일반적으로는, 에지(124C)의 언어 모델 확률은 제2 언어의 문자, 단어 또는 구가 하나 이상의 후보 문자 스트링의 그룹에 따라 발음될 확률을 나타낼 수 있다. 일부 예들에서, 언어 모델 확률은 다음의 수식으로 표시될 수 있다:
수식 1에서, s는 하나 이상의 후보 문자 스트링들의 그룹일 수 있고, t는 제2 언어의 단어들 및/또는 구들의 사전에 근거한 언어 모델에 포함된 하나 이상의 단어들일 수 있다. 이 방식으로, 에지(124C)에 대한 언어 모델 스코어는 다음의 수식으로 표시될 수 있다:
일부 예들에서, 빌더 모듈(50)은 언어 모델 확률을 결정하기 위해 언어 모델(12)을 이용할 수 있다. 언어 모델(12)은 언어 어휘 내의 단어들의 그룹, 예컨대 중국어 어휘 내의 중국어 단어들의 그룹들을 포함할 수 있다. 일부 예들에서, 언어 모델(12)은 컴퓨팅 디바이스(2) 또는 컴퓨팅 디바이스(2)에 의해 액세스가능한 원격 컴퓨팅 디바이스에 저장된 사전 내의 단어들을 세트에 근거하고 그리고/또는 상기 단어들의 세트를 포함할 수 있다. 언어 모델(12)은 단어가 소정 언어 컨텍스트에서 발생되는 빈도에 근거하여 각각의 단어의 확률을 나타낼 수 있다. 언어 모델(12)은 하나 이상의 n-그램 언어 모델들을 구현할 수 있다. n-그램 언어 모델은 시퀀스 내의 이전의 아이템들에 근거하여 인접한 아이템들의 시퀀스 내의 아이템 xi에 대한 확률 분포(즉,)를 제공할 수 있다.
빌더 모듈(50)은 에지들(124A-124C) 각각에 대한 가중들을 결정할 수 있다. 상기에 이전에 기술된 바와 같이, 빌더 모듈(50)은 컴퓨팅 디바이스(2)가 사용자 입력의 표시들을 수신함에 따라 격자들(100, 110 및 120)을 증분적으로 구성할 수 있다. 격자들이 구성됨에 따라, 디코딩 모듈(52)은 가장 높은 가중들과 관련된 단어 격자(120)의 에지들을 주기적으로 그리고/또는 연속적으로 결정할 수 있다. 다른 예들에서, 디코딩 모듈(52)은 사용자 입력들의 증분적 결정들에 근거하여, 가장 높은 가중들과 관련된 단어 격자(120)의 에지들을 결정할 수 있다. 즉, 디코딩 모듈(52)은 가장 높은 가중들을 가지는 임계 수의 에지들을 결정할 수 있다.
예를 들어, 디코딩 모듈(52)은 비터비 알고리즘(Viterbi algorithm), 다른 유사한 동적 프로그래밍 기법들 또는 일반적으로는 단어 격자를 검색하기 위한 어떤 적절한 검색 기법들을 이용하여 단어 격자(120)의 에지 가중들을 검색할 수 있다. 예를 들어, 디코딩 모듈(52)은 n 개의 가장 높은 집합적인 총 가중들을 갖는 에지들을 포함하는 단어 격자(120)를 통한 에지들의 경로들을 검색할 수 있다. 예를 들어, 디코딩 모듈(52)은 초기에 꼭지점(122A)으로부터 꼭지점(122B)까지 어느 에지가 가장 높은 가중을 가지는 지를 결정할 수 있다. 빌더 모듈(50)은 또한, 꼭지점(122B)으로부터 꼭지점(122C)까지 어느 에지가 가장 높은 가중을 가지는 지를 결정할 수 있다.
디코딩 모듈(52)은 단어 격자(120)의 가능한 에지들을 따라 가장 높은 가중들을 검색하는 것을 계속할 수 있다. 일부 예들에서, 디코딩 모듈(52)은 임계 수의 경로들에 대한 집합적인 총 가중들을 결정할 수 있다. 예를 들어, 빌더 모듈(50)은 임계 수의 경로들이 예컨대 3인 경우, 3 개의 경로들에 대한 집합적인 총 가중들을 결정할 수 있다. 일부 예들에서, 디코딩 모듈(52)은 임계 수의 에지들에 근거하여 경로 당 최대 수의 에지들을 결정할 수 있다. 즉, 디코딩 모듈(52)은 예컨대, 2와 동일한 최대수의 에지들을 갖는 경로들에 대한 집합적인 총 가중들을 결정할 수 있다. 이러한 예들에서, 디코딩 모듈(52)은 두 개의 에지들을 포함하는 경로들에 대한 집합적인 총 가중들을 결정할 수 있다. 에지들(124A 및 124D)에 대한 집합적인 총 가중을 결정하기 위해, 디코딩 모듈(52)은 에지들(124A 및 124D)에 대한 가중들의 곱을 결정할 수 있다.
단어 격자(120)에 표시된 제2 언어의 하나 이상의 문자들, 단어들 또는 구들의 그룹을 결정할 시, 컴퓨팅 디바이스(2)는 디스플레이를 위해 문자들, 단어들 또는 구들을 출력할 수 있다. 일례로, 사용자 인터페이스(14)는 두 개의 단어 제시 영역들(18A 및 18B)을 포함할 수 있다. 그러므로, 디코딩 모듈(52)은 임계 수의 에지들이 2와 동일할 수 있음을 결정할 수 있다. 따라서, 디코딩 모듈(52)은 두 개의 가장 높은 가중들을 갖는 에지들과 관련된 각각의 하나 이상의 단어들을 결정할 수 있다. 예를 들어, 도 4에서, 디코딩 모듈(52)은 에지들(124B 및 124C)에 대한 가중들이 가장 높은 두 개의 가중들을 가짐을 결정할 수 있다. 에지들(124B 및 124C)을 결정함에 응답하여, 디코딩 모듈(52)은 단어들 "" 및 ""을 표시하는 데이터를 UI 모듈(6)에 전송할 수 있다. UI 모듈(6)은 단어 제시 영역들(18A 및 18B)에 단어들 "" 및 "을 디스플레이할 수 있다. 다른 예들에서, UI 모듈(6)은 편집 영역(16A)에 가장 높은 가중을 가지는 에지와 관련된 단어를 디스플레이할 수 있다. 또다른 예들에서, 컴퓨팅 디바이스(2)는 사용자가 탭 위치(20I)에서 탭 제스쳐를 수행함의 표시를 수신할 수 있고, 이는 또한, 프레즌스-감응형 디스플레이(4)로 하여금 문자들(22A 및 22B)을 이용하여 사용자 인터페이스(14)에 단어 ""을 출력할 수 있게 한다. 이 방식으로, 비록 탭 위치들(20A-20H)이 "zhonghuo"의 근부에 있는 키들을 선택하는 것으로 보일 수 있지만, 격자들(100, 110, 및 120)을 이용하는 본 발명의 기법들은 프레즌스-감응형 디스플레이(4)로 하여금 ""(예컨대, "zhongguo")를 출력할 수 있게 한다. 따라서, 디스플레이의 기법들은, 제2 언어의 문자들 및/또는 단어들을 출력하기 위해 제1 언어의 알파벳의 문자들을 포함하는 발음 표시들을 입력할 때 사용자 입력들에 대한 더 큰 에러 회복력(resilience)을 제공할 수 있다.
도 5는, 본 발명의 하나 이상의 기법들에 따라 제1 언어의 알파벳에 포함된 문자들을 선택하기 위한 연속적인 제스쳐에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 문자들 및/또는 단어들을 결정하는 도 1에 도시된 컴퓨팅 디바이스의 일례의 추가 세부사항들을 예시하는 블록도이다. 도 5의 개념적 예에 도시된 바와 같이, 컴퓨팅 디바이스(2)는 프레즌스-감응형 디스플레이(4), UI 모듈(6), 키보드 모듈(8), 공간적 모델(10), 언어 모듈(12), 활성 빔(active beam)(56) 및 다음 빔(next beam)(58)을 포함할 수 있다. GUI(140)은 QWERTY 키보드를 포함할 수 있는 그래픽 키보드(142B)를 포함할 수 있다.
도 1의 예에 도시된 바와 같이, 사용자는 그래픽 키보드(142B)에서 연속적인 제스쳐를 수행함으로써 컴퓨팅 디바이스(2) 내로 하나 이상의 후보 문자 스트링들(예컨대, 중국어 핀인 스트링들과 같은 발음 표시들)을 입력하길 바랄 수 있다. 사용자가 연속적인 제스쳐를 수행하는 동안, 컴퓨팅 디바이스(2)는 연속적인 제스쳐에 대응하는 제스쳐 경로(146)를 검출할 수 있다. 일부 예들에서, 연속적인 제스쳐는 사용자가 프레즌스-감응형 디스플레이(4)에서 검출되는 사용자 유닛(예컨대, 손가락, 스타일러스, 등)으로 제스쳐를 수행함을 나타낼 수 있고, 상기 프레즌스-감응형 디스플레이에서 사용자 유닛은 서로 다른 위치들을 통해 제스쳐 경로를 횡단한다. 제스쳐는 입력 유닛이 프레즌스-감응형 디스플레이(4)에서 검출된 채로 유지되는 동안 프레즌스-감응형 디스플레이(4)에서 검출될 수 있다. 입력 유닛이 프레즌스-감응형 디스플레이(4)에서 더이상 검출되지 않으면, 컴퓨팅 디바이스(2)는 제스쳐가 종료됨을 결정할 수 있다. 이 방식으로, 사용자는 텍스트를 입력하기 위해 그래픽 키보드의 복수의 키들을 횡단하는 연속적인 제스쳐를 수행할 수 있다. 도 5의 예에서, 컴퓨팅 디바이스(2)는 제스쳐 경로(146)을 검출한 것으로서 도시된다. 비록, 도 5에 예시되지만, 제스쳐 경로(146) 및/또는 정렬 포인트들(148A-148H)은 본 명세서에 기술된 기법들의 수행 동안 가시적이지 않을 수 있다. 정렬 포인트는 그래픽 키보드에 포함된 복수의 키들의 키를 나타낼 수 있는 제스쳐 경로를 따르는 포인트일 수 있다. 정렬 포인트는 정렬 포인트의 결정된 포지션에 대응하는 하나 이상의 좌표들을 포함할 수 있다. 예를 들어, 정렬 포인트는 그래픽 사용자 인터페이스 내의 포인트에 대응하는 데카르트 좌표(cartesian coordinate)들을 포함할 수 있다. 그래픽 키보드의 키가 제스쳐 경로와 관련됨을 결정하기 위해, 컴퓨팅 디바이스(2)는 제스쳐의 세그먼트의 길이와 같은 정렬 포인트들의 그룹의 특징들을 결정할 수 있고, 세그먼트는 프레즌스-감응형 디스플레이에서 제스쳐가 횡단하는 경로, 제스쳐의 세그먼트의 방향, 제스쳐의 세그먼트의 곡률(curvature), 검출된 레이트를 나타내는 로컬 속도, 제스쳐의 세그먼트가 검출된 레이트를 나타내는 글로벌 속도, 등을 포함한다. 예를 들어, 입력 유닛이 키 가까이에서 느려지고 방향을 변경함에 따라, 제스쳐 경로의 곡률은 높아질 수 있다. 제스쳐에 대응하는 정렬 포인트들에 근거하여 결정되는 제스쳐 경로의 특징들은 사용자가 키를 선택하는 것을 의도함을 나타낼 수 있다.
키보드 모듈(8)은 도 5에 기술된 본 발명의 기법들에 따라 키들의 그룹에 적어도 부분적으로 근거하여 후보 문자 스트링들을 결정할 수 있다. 문자 격자, 예컨대, 문자 격자(100)를 생성하기 보다는, 키보드 모듈(8)은 증분적으로, 하나 이상의 연속적인 제스쳐들에 근거하여 후보 문자 스트링들을 결정하고 이러한 스트링을 토큰 격자(110) 내의 에지들과 관련시킬 수 있다. 예를 들어, 사용자는 그래픽 키보드(148A)에서 연속적인 제스쳐를 수행할 수 있고, 후보 문자 스트링 "zhong" 이 연속적인 제스쳐에 대응함을 결정함에 응답하여, 키보드 모듈(8)은 "zhong"를 토큰 격자(110)의 에지와 관련시킬 수 있다. 키보드 모듈(8)은 도 4에 이전에 기술된 바와 같이 단어 격자(120)에 근거하여 문자들 및/또는 단어들을 증분적으로 결정할 수 있다. 이제, 기법들은 도 5를 참조하여 더 기술된다.
연속적인 제스쳐 입력에 근거하여 하나 이상의 후보 스트링들을 결정하기 위해, 키보드 모듈(8)은 언어 모델(150)을 이용할 수 있다. 언어 모델(150)은 어휘록을 포함할 수 있다. 일부 예들에서, 어휘록은 단어들의 리스팅을 포함할 수 있고, 리스트된 단어들에 관한 추가적인 정보를 포함할 수 있다. 어휘록은 어레이, 리스트, 트리(tree) 또는 다른 데이터 구조들 중 하나 이상과 같은 하나 이상의 데이터 구조들에 의해 표시될 수 있다. 예를 들어, 언어 모델(150)은 트리 데이터 구조에 저장된 어휘록을 포함할 수 있다. 어휘록 트리 데이터 구조는 복수의 노드들을 포함할 수 있다. 어휘록 트리의 각각의 노드는 글자를 표시할 수 있다. 어휘록 트리 내의 제1 노드는 엔트리 노드로서 고려될 수 있고, 엔트리 노드는 글자에 대응하지 않을 수 있다. 다른 예들에서, 엔트리 노드는 글자에 대응할 수 있다. 각각의 노드는 하나 이상의 차일드 노드들을 가질 수 있다. 예를 들어, 엔트리 노드는 26개의 차일드 노드들을 가질 수 있고, 이들 각각은 영어 알파벳의 글자에 대응한다.
어휘록 트리 내의 노드들의 서브세트 각각은 노드가 터미널 노드임을 나타내는 플래그를 포함할 수 있다. 어휘록 트리의 각각의 터미널 노드는 어휘록에 포함된 후보 문자 스트링을 나타낼 수 있다. 예를 들어, 어휘록은 유효한 후보 문자 스트링들(예컨대, 중국어 핀인 스트링들)의 사전에 근거할 수 있다. 엔트리 노드로부터 터미널 노드로의 노드들의 경로를 따라 노드들에 의해 나타내진 글자들은 터미널 노드에 의해 나타내진 후보 문자 스트링의 철자를 알려줄 수 있다. 일부 예들에서, 언어 모델(150)은 컴퓨팅 디바이스(2) 상에 인스톨된 디폴트 사전일 수 있다. 특정 예들에서, 언어 모델(150)은 미리 정의된 구들의 그룹을 포함할 수 있다. 특정 예들에서, 언어 모델(150)은, 컴퓨팅 디바이스(2)에 저장되거나 또는 하나 이상의 통신 채널들을 통해 컴퓨팅 디바이스(2)에 액세스가능한 하나 이상의 원격 컴퓨팅 디바이스들에 저장될 수 있는 어휘록들의 복수의 소스들을 포함할 수 있다.
제스쳐 경로(146)의 부분을 초기에 검출함에 응답하여, 키보드 모듈(8)은 사용자에 의해 수행되는 제스쳐가 횡단하는 제스쳐 경로(146)를 따르는 정렬 포인트(148A)를 결정할 수 있다. 정렬 포인트(148A)에 대응하는 제스쳐 경로(146)의 부분을 검출함에 응답하여, 키보드 모듈(8)은 단어-레벨 토큰을 생성하고 활성 빔(56) 내로 단어-레벨 토큰을 푸시할 수 있다. 이 시간에 활성 빔(56) 상의 컨텐츠는 하기 표 1에 의해 표시될 수 있다.
인덱스 | 페어런트 인덱스 | 현재 노드의 글자 키 | 글자 체인 | 코스트 값 |
0 | - | - | - | 0 |
도 5에 도시된 바와 같이, 컴퓨팅 디바이스(2)는 활성 빔(56)을 포함할 수 있다. 활성 빔(56)은 일부 예들에서, 키보드 모듈(8)에 의해 생성되는 하나 이상의 토큰들(예컨대, 하나 이상의 단어 레벨 토큰들)을 저장하도록 구성된다. 활성 빔(56)은 저장 디바이스들(48) 내에 포함될 수 있다. 컴퓨팅 디바이스(2)는 또한, 다음 빔(58)을 포함할 수 있다. 다음 빔(58)은 일부 예들에서, 제스쳐 모듈(8)에 의해 생성되는 하나 이상의 토큰들(예컨대, 하나 이상의 단어-레벨 토큰들)을 저장하도록 구성된다. 다음 빔(56)은 또한, 저장 디바이스들(48) 내에 포함될 수 있다.
표 1에서, 각각의 행(row)은 개별적인 단어-레벨 토큰을 표시하고, 인덱스 열은 각각의 단어-레벨 토큰에 대한 고유한 식별자를 표시하며, 페어런트 인덱스 열은 단어-레벨 토큰의 인덱스 값 - 이에 대해 리스트된 단어-레벨 토큰이 차일드임 - 을 표시하고, 현재 노드의 글자 키 열은 단어-레벨 토큰의 현재 노드에 의해 표시되는 단어 키를 표시하고, 글자 체인 열은 엔트리 노드로부터 단어-레벨 토큰의 현재 노드로의 노드들에 의해 표시되는 글자 키들의 모두를 표시하고, 코스트 값 열은 단어-레벨 토큰의 코스트 값을 표시한다. 도 1에 도시된 바와 같이, 생성된 단어-레벨 토큰은 0의 인덱스(즉 단어-레벨 토큰0)를 가지고, 페어런트 인덱스를 가지지 않고, 현재 노드의 글자 키를 가지지 않으며, 글자 체인을 가지지 않고, 0의 코스트 값을 가진다.
제스쳐에 의해 나타내진 텍스트를 결정하기 위해, 키보드 모듈(8)은 차일드 노드들 상에 각각의 단어-레벨 토큰의 카피를 생성할 수 있다. 즉, 각각의 단어-레벨 토큰은 언어 모델(150)의 어휘록 트리 내의 차일드 노드들의 다음 레벨로 진전될 수 있다. 다음 예들에서, 엔트리 노드는 26개의 차일드 노드들(예컨대, 영어 알파벳의 각각의 글자에 대해 하나)을 가질 수 있다. 간략성을 위해, 도 5의 예에서, 엔트리 노드는 글자들 "Z" 및 "X" 상에 단 두 개의 차일드 노드들을 가진다. 그러므로, 키보드 모듈(8)은 차일드 노드 "Z"(즉, 단어-레벨 토큰1) 및 차일드 노드 "X"(즉, 단어-레벨 토큰2) 상에서 인덱스 0을 갖는 단어-레벨 토큰의 카피를 생성할 수 있다. 각각 생성된 단어-레벨 토큰 카피에 대해, 키보드 모듈(8)은 코스트 값을 결정할 수 있다. 즉, 컴퓨팅 디바이스(2)는 복수의 키들 중 적어도 두 개의 키들 각각에 대한 각각의 코스트 값들을 결정할 수 있다. 각각의 코스트 값들은 정렬 포인트들의 그룹 중의 정렬 포인트가 복수의 키들 중의 키를 나타낼 확률들을 각각 표시할 수 있다. 코스트 값은 현재 노드의 글자 키를 고려하여 글자 체인의 확률을 나타내는 언어 모델 확률에 근거할 수 있다. 언어 모델 확률은 하나 이상의 문자들, 단어들 및/또는 구들을 고려하여 문자, 단어 및/또는 구의 확률들을 나타내는 하나 이상의 문자, 단어 및/또는 구 레벨 n-그램들에 근거할 수 있다. 코스트 값은 제스쳐가 현재의 노드의 글자의 키에 대응할 공간적 모델 확률에 적어도 부분적으로 근거할 수 있다. 일부 예들에서, 코스트 값은 언어 모델 확률 및 공간적 모델 확률에 적어도 부분적으로 근거한다.
키보드 모듈(8)은 다음 빔(58)에 각각의 단어-레벨 토큰 카피를 푸시할 수 있고, 이의 컨텐츠는 하기 표 2에 의해 표시될 수 있다.
인덱스 | 페어런트 인덱스 | 현재 노드의 글자 키 | 글자 체인 | 코스트 값 |
1 | 0 | Z | Z | CV1 |
2 | 0 | X | X | CV2 |
표 2에 도시된 엔트리들은 표 1에 도시된 엔트리와 포맷이 유사하다. 표 2에서, 단어-레벨 토큰1은 코스트 값 CV1을 가지고, 단어-레벨 토큰2는 코스트 값 CV2를 가진다. 단어-레벨 토큰 카피들을 생성한 후, 키보드 모듈(8)은 단어-레벨 토큰0이 터미널 노드가 아님을 결정할 수 있고, 단어-레벨 토큰0을 폐기할 수 있다. 키보드 모듈(8)은 후속적으로, 활성 빔(56)이 비어 있는지(즉, 어떤 토큰들도 포함하지 않는지)의 여부를 결정할 수 있다. 활성 빔(56)이 비어 있음을 결정함에 응답하여, 컴퓨팅 디바이스(2)는 다음 빔(58)의 컨텐츠를 활성 빔(56)에 카피하고, 다음 빔(56A)의 컨텐츠를 폐기할 수 있다.
키보드 모듈(8)은 제스쳐 경로(146)를 따르는 정렬 포인트들(148B-148E)을 더 결정할 수 있다. 키보드 모듈(8)은, 키보드 모듈(8)이 그래픽 키보드(142B)의 하나 이상의 키들에 대응할 수 있는 정렬 포인트들(148B-148E) 각각을 결정함에 따라, 활성 빔(56) 내의 각각의 단어-레벨 토큰에 대해 각각의 차일드 노드 상의 카피를 증분적으로 생성할 수 있다. 도 5의 예에서, 정렬 포인트(148B)를 결정할 시, 단어-레벨 토큰1 및 단어-레벨 토큰2 각각은 글자 키들 "G" 및 "H"를 갖는 차일드 노드들을 가질 수 있다. 각각 생성된 단어-레벨 토큰 카피에 대해, 컴퓨팅 디바이스(2)는 상기에 기술된 바와 같이 코스트 값을 결정할 수 있다. 컴퓨팅 디바이스(2)는 각각의 단어-레벨 토큰 카피를 다음 빔(58) 내로 푸시하고, 이의 컨텐츠는 하기 표 3에 의해 표시될 수 있다.
인덱스 | 페어런트 인덱스 | 현재 노드의 글자 키 | 글자 체인 | 코스트 값 |
3 | 1 | G | ZHONG | CV3 |
4 | 1 | H | ZHONH | CV4 |
5 | 2 | G | XHONG | CV5 |
6 | 2 | H | XHONG | CV6 |
표 3에 도시된 엔트리들은 표 1 및 2에 도시된 엔트리들과 포맷이 유사하다. 표 3에서, 각각의 단어-레벨 토큰에 대한 코스트 값은 이전의 글자들에 대한 코스트 값 및 현재 글자에 대한 코스트 값을 포함한다. 컴퓨팅 디바이스(2)는 단어-레벨 토큰들 중 (만일 존재한다면) 어느 토큰이 터미널 노드들 상에 있는지를 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(2)는 단어-레벨 토큰3이 터미널 노드 상에 있음을 결정할 수 있는 바, 그 이유는 이의 예측되는 문자들의 스트링(즉, 이의 글자 체인) "ZHONG"이 어휘록(예컨대, 핀인 스트링 사전)에 포함된 후보 단어를 표시하기 때문이다.
단어-레벨 토큰이 터미널 노드 상에 있음을 결정함에 응답하여, 키보드 모듈(8)은 글자 체인, 예컨대 후보 문자 스트링에 대응하는 에지를 토큰 격자(110) 에 생성할 수 있다. 일부 예들에서, 키보드 모듈(8)은 문자 스트링의 공간적 모델을 결정하고 후보 문자 스트링에 대응하는 토큰 격자(110) 내의 에지의 가중으로서 공간적 모델을 관련시킬 수 있다. 이 방식으로, 키보드 모듈(8)이 후보 문자 스트링들(예컨대, 중국어 핀인 스트링들)에 대응하는 글자 변경들을 결정함에 따라, 키보드 모듈(8)은 도 4에 기술된 바와 같이, 제2 언의 문자들 및/또는 단어들을 결정하기 위해 단어 격자(120)와 함께 키보드 모듈(8)에 의해 또한 이용되는 에지들을 토큰 격자(22)에 포함시킬 수 있다.
추가적으로, 컴퓨팅 디바이스(2)는 단어-레벨 토큰이 터미널 노드 상에 있음을 결정함에 응답하여, 복수의 키들 중 다음 선택된 키가 제2 단어-레벨 토큰의 접두(prefix) 임을 나타내는 다음-단어 토큰을 생성할 수 있다. 다음-단어 토큰은 제2 단어-레벨 토큰의 엔트리 노드로서 고려될 수 있다. 컴퓨팅 디바이스(2)는 다음-단어 토큰(즉, 제2 단어-레벨 토큰의 엔트리 노드)를 활성 빔(56) 내로 푸시할 수 있고, 이의 컨텐츠는 하기 표 4에 의해 표시될 수 있다.
인덱스 | 페어런트 인덱스 | 현재 노드의 글자 키 | 글자 체인 | 코스트 값 |
3 | 1 | G | ZHONG | CV3 |
4 | 1 | H | ZHONH | CV4 |
5 | 2 | G | XHONG | CV5 |
6 | 2 | H | XHONH | CV6 |
7 | 3 | - | - | 0 |
표 4에 예시된 엔트리들은 표 1, 2 및 3에 도시된 엔트리들과 포맷이 유사하다. 표 4에 예시된 바와 같이, 다음-단어 토큰에 대응하는 생성된 워드-레벨 토큰은 7의 인덱스(즉, 워드-레벨 토큰7)를 가지고, (워드-레벨 토큰3에 대응하는) 3 페어런트 인덱스를 가지며, 현재 노드의 어떠한 글자 키도 가지지 않고, 어떠한 글자 체인도 가지지 않으며, 0의 코스트 값을 가진다. 표 4에 예시된 바와 같이, 인덱스 7을 갖는 워드-레벨 토큰은 이전의 후보 문자 스트링, 예컨대, "zhong"의 페어런트 인덱스를 상태 정보로서 저장할 수 있어서, 키보드 모듈(8)은 페어런트 인덱스의 글자 체인과 관련된 후보 문자 스트링을 결정할 수 있다. 이 방식으로, 키보드 모듈(8)은 어휘록 내의 단어들 및/또는 단어들의 그룹들에 대응할 수 있는 하나 이상의 관련 글자 체인들의 그룹들을 결정할 수 있다.
키보드 모듈(8)은 복수의 후보 문자 스트링들에 대응하는 연속적인 제스쳐를 수신할 때 단어 경계들을 식별하기 위해 터미널 노드들을 결정함과 함께 상태 정보를 유지할 수 있다. 즉, 키보드 모듈(8)은 "zhong"과 7의 인덱스에 대응하는 후속적인 후보 문자 스트링과의 사이의 전환 확률(transition probability)을 결정할 수 있다. 키보드 모듈(8)은 인덱스 7에 대응하는 다음-단어 토큰에 대한 상태 정보의 일부로서 전환 확률을 저장할 수 있다. 전환 확률은 후보 문자 스트링들 사이의 경계들의 확률을 나타내고 후보 문자 스트링들의 사전에 근거할 수 있는 하나 이상의 n-그램 문자 및/또는 단어 언어 모델들에 근거할 수 있다. 일례에서, 키보드 모듈(8)은 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여 복수의 문자들 "zhonghuo"를 결정할 수 있다. 키보드 모듈(8)은 서로 다른 후보 문자 스트링들을 표시하는 복수의 문자들 사이의 예컨대, "zhong"와 "huo" 사이의 적어도 하나의 경계를 언어 모델에 근거하여 결정할 수 있다. 적어도 하나의 경계는 제1 후보 문자 스트링 "zhong"에 대응하는 복수의 문자들 내의 문자들의 제1 그룹 및 제2 후보 문자 스트링 "huo"에 대응하는 복수의 문자들 내의 문자들의 제2 그룹을 나타낼 수 있다. 도 5의 예에서 하기에 더 기술되는 바와 같이, 키보드 모듈(8)은 제1 후보 문자 스트링 "zhong"과 관련된 제1 에지를 토큰 격자에 생성할 수 있고, 제1 에지는 제1 꼭지점(112A)으로부터 비롯되고, 제2 꼭지점(112D)에서 끝난다. 키보드 모듈(8)은 제2 후보 문자 스트링 "huo"과 관련된 제2 에지(114B)를 토큰 격자에 생성할 수 있고, 제2 에지는 제2 꼭지점(112D)으로부터 비롯되고 제3 꼭지점(112D)에서 끝난다. 일부 예들에서, 키보드 모듈(8)은 문자 스트링들 "zhong" 및 "huo"을 단어 격자(120)의 에지 상의 "zhonghuo"로서 연쇄시킬(concatenate) 지를 결정하기 위해 전환 확률을 이용할 수 있다.
도 5의 예에서, 키보드 모듈(8)은 제스쳐 경로(146)를 따라 정렬 포인트들(148F-148H)을 더 결정할 수 있다. 키보드 모듈(8)은 활성 빔(56) 내의 각각의 단어-레벨 토큰에 대해, 각각의 차일드 노드 상에 카피를 생성할 수 있다. 도 5의 예에서, 토큰3 내지 토큰6 각각은 글자 키들 "G" 및 "H" 각각을 갖는 차일드 노드들을 가진다. 추가적으로, 토큰7은 7의 인덱스를 갖는 단어-레벨 토큰에 대한 엔트리 노드로서 고려될 수 있다. 따라서, 키보드 모듈(8)은 또한, 단어-레벨 토큰7의 차일드 노드에서 카피를 생성할 수 있다. 각각의 생성된 단어-레벨 토큰 카피에 대해, 키보드 모듈(8)은 상기에 기술된 바와 같이 코스트 값을 결정할 수 있다. 키보드 모듈(8)은 다음 빔(58) 내로 각각의 단어-레벨 토큰 카피를 푸시할 수 있고, 이의 컨텐츠는 하기 표 5에 의해 표시될 수 있다.
인덱스 | 페어런트 인덱스 | 현재 노드의 글자 키 | 글자 체인 | 코스트 값 |
8 | 3 | O | ZHONGGUO | CV8 |
9 | 3 | O | ZHONHHUO | CV9 |
10 | 4 | O | XHONGGUO | CV10 |
11 | 4 | O | XHONHHUO | CV11 |
12 | 7 | O | GUO | CV12 |
13 | 7 | O | HUO | CV13 |
n | m | x | <글자 체인> | CVn |
표 5에 도시된 엔트리들은 표 1 내지 4에 도시된 엔트리들과 포맷이 유사하다. 표 5에서, 각각의 단어-레벨 토큰에 대한 코스트 값은 이전의 글자들에 대한 코스트 값 및 현재의 글자에 대한 코스트 값을 포함한다. 따라서, 컴퓨팅 디바이스(2)는 어휘록에 포함된 후보 단어를 표시하는 단어-레벨 토큰 및 문자 키의 예측되는 선택에 적어도 부분적으로 근거하여 하나 이상의 단어-레벨 토큰들을 결정할 수 있다. 이러한 방식으로, 키보드 모듈(8)은 그래픽 키보드에 포함된 키들의 그룹을 선택하기 위해 연속적인 제스쳐의 표시를 수신함에 응답하여 단어-레벨 토큰들을 결정할 수 있다. 키보드 모듈(8)은, 키보드 모듈(8)이 체스쳐의 표시들을 더 수신함에 따라 하나 이상의 단어-레벨 토큰들을 증분적으로 결정하는 것을 계속할 수 있고, 그럼으로써 사용자가 단어 또는 구의 키들의 그룹을 선택하기 위해 단일 제스쳐를 제공할 수 있다.
상기에 기술된 바와 같이, 키보드 모듈(8)은 터미널 노드를 결정할 시, 터미널 노드의 대응하는 글자 체인(예컨대, 후보 문자 스트링)을 포함하는 단어-격자(112) 상의 에지를 생성할 수 있다. 다른 예들에서, 키보드 모듈(8)은 코스트 값들에 근거하여 토큰 격자(110) 내의 후보 문자 스트링들로서 포함시킬 글자 체인들을 결정할 수 있다. 즉, 키보드 모듈(8)은 임계를 만족하는 코스트 값들을 결정할 수 있다. 예를 들어, 키보드 모듈(8)은 임계보다 큰 코스트 값들을 결정하고 코스트 값들과 각각 관련된 글자 체인에 대한 에지들을 토큰 격자(110)에 생성할 수 있다. 따라서, 일부 예들에서, 키들의 결합의 코스트 값(예컨대, 후보 문자 스트링을 표시하는 글자 체인과 관련된 코스트 값)이 임계를 만족함을 결정함에 응답하여, 컴퓨팅 디바이스는 후보 문자 스트링을 단어 격자의 에지와 관련시킬 수 있고, 문자 스트링은 키들의 결합과 관련된 문자들을 포함한다. 일부 예들에서, 시작 꼭지점의 인덱스와 종료 꼭지점의 인덱스 사이의 차이는 후보 문자 스트링 내의 문자들의 수와 동일할 수 있다. 예를 들어, 결정된 후보 문자 스트링이 "zhong"이면, 시작 꼭지점의 인덱스는 0일 수 있고, 종료 꼭지점의 인덱스는 5일 수 있다. 복수의 후보 문자 스트링들이 경계, 예컨대 "zhong", "huo"에 근거하여 단일 스트링으로부터 결정되면, 제2 후보 문자 스트링의 시작 꼭지점은 인덱스 5를 갖는 꼭지점에서 시작하고 인덱스 8을 갖는 꼭지점에서 종료할 수 있다.
도 6a-6b는 본 발명의 하나 이상의 기법들에 따른 제스쳐로부터의 단어 및/또는 구를 결정하기 위해 컴퓨팅 디바이스의 예시적인 동작들을 예시하는 순서도들이다. 단지 예시를 위해, 예시적인 동작들은 도 1, 2 및 5에서 예를 들어 도시된 바와 같이 컴퓨팅 디바이스(2)의 컨텍스트 내에서 하기에 기술된다.
도 6a-6b의 예에서, 컴퓨팅 디바이스(2)는 초기에 디스플레이를 위해 복수의 키들을 포함하는 그래픽 키보드(예컨대, 그래픽 키보드(16B))를 출력할 수 있다(단계(150)). 컴퓨팅 디바이스(2)는 프레즌스-감응형 디스플레이에서 제스쳐를 검출할 수 있다(단계(152)). 예를 들어, 프레즌스-감응형 디스플레이(4)는 제스쳐 경로(140)를 가지는 제스쳐를 검출할 수 있다. 하나 이상의 프로세서들 상에서 실행되는 UI 모듈(6)은 프레즌스-감응형 디스플레이(4)에서 검출되는 제스쳐의 표시를 수신할 수 있다. 프레즌스-감응형 디스플레이에서 검출되는 제스쳐의 표시를 수신함에 응답하여, 컴퓨팅 디바이스(2)는 어휘록 트리로서 컴퓨팅 디바이스(2) 상에서 저장되는 어휘록의 엔트리 노드에서 0의 코스트 값을 가지는 단어-레벨 토큰을 생성할 수 있다(단계(154)). 컴퓨팅 디바이스(2)는 활성 빔 내로 단어-레벨 토큰을 푸시할 수 있다(단계(156)). 예를 들어, 컴퓨팅 디바이스(2)는 활성 빔(56) 내로 단어-레벨 토큰을 푸시할 수 있다.
컴퓨팅 디바이스(2)는 활성 빔으로부터 단어-레벨 토큰을 선택할 수 있다(단계(158)). 컴퓨팅 디바이스(2)는 단어-레벨 토큰의 각각의 차일드 노드 상에서 단어-레벨 토큰의 카피를 생성할 수 있다(단계(160)). 컴퓨팅 디바이스(2)는 단어-레벨 토큰 카피를 선택할 수 있고(단계(162)), 제스쳐를 따라 정렬 포인트를 결정할 수 있다(단계(164)). 컴퓨팅 디바이스(2)는 정렬 포인트가 단어-레벨 토큰 카피가 위치되는 노드의 글자 키를 타나낼 확률을 표시하는 코스트 값을 결정하고, 단어-레벨 토큰 카피에 코스트 값을 추가할 수 있다(단계(166)). 컴퓨팅 디바이스(2)는 단어-레벨 토큰 카피를 다음 빔 내로 푸시할 수 있다(단계(168)). 컴퓨팅 디바이스(2)는 활성 빔에 남아있는 어떤 단어-레벨 토큰 카피들이 존재하는지의 여부를 결정할 수 있다(단계(170)). 남아있는 단어-레벨 토큰 카피들이 존재하면(단계(172)), 컴퓨팅 디바이스(2)는 새로운 단어-레벨 토큰 카피를 선택할 수 있다(단계(162)).
남아있는 어떤 단어-레벨 토큰 카피들이 존재하지 않으면(단계(174)), 컴퓨팅 디바이스(2)는 단어-레벨 토큰이 어휘록 트리의 터미널 노드에 존재하는지 여부를 결정할 수 있다(단계(176)). 예를 들어, 컴퓨팅 디바이스(2)는 단어-레벨 토큰이 어휘록(예컨대, 영어)에 포함된 후보 단어를 표시하는지 여부를 결정하기 위해 언어 모델(12)을 이용할 수 있다. 단어-레벨 토큰이 터미널 노드에 존재하면(단계(178)), 컴퓨팅 디바이스(2)는 도 5에 기술된 바와 같이 토큰 격자(110)에 에지를 생성할 수 있고, 에지는 터미널 노드에 의해 표시되는 단어 체인(예컨대, 후보 문자 스트링)에 대응한다(단계(182)). 컴퓨팅 디바이스(2)는 도 5에 기술된 바와 같이, 그래픽 키보드의 복수의 키들의 다음 선택된 키가 제2 단어-레벨 토큰의 접두어임을 나타내는 다음-단어 토큰을 생성한다(단계(184)). 토큰 격자(110)에 후보 문자 스트링을 카피하고 다음-단어 토큰을 생성한 후 또는 단어-레벨 토큰이 터미널 노드에 존재하지 않는 경우(단계(180)), 컴퓨팅 디바이스(2)는 단어-레벨 토큰을 폐기할 수 있다(단계(186)).
컴퓨팅 디바이스(2)는 어떤 단어-레벨 토큰들이 활성 빔에 남아있는지 여부를 결정할 수 있다(단계(188)). 활성 빔에 남아있는 단어-레벨 토큰들이 존재하면(단계190)), 컴퓨팅 디바이스(2)는 활성 빔으로부터 다음 단어-레벨 토큰을 선택할 수 있다(단계(158)). 활성 빔에 남아있는 어떤 단어-레벨 토큰들도 존재하지 않으면(단계(192)), 컴퓨팅 디바이스(2)는 어떤 단어-레벨 토큰들이 다음 빔에 남아있는 지의 여부를 결정할 수 있다(단계(194)). 다음 빔에 남아있는 단어-레벨 토큰들이 존재하면(단계(196)), 컴퓨팅 디바이스(2)는 활성 빔에 다음 빔을 카피할 수 있고(단계(198)), 활성 빔으로부터 새로운 단어-레벨 토큰을 선택할 수 있다(단계(158)). 다음 빔에 남아있는 단어-레벨 토큰들이 존재하지 않으면(단계(200)), 컴퓨팅 디바이스(2)는 일부 예들에서, 사용자 입력, 예컨대 터치 이벤트의 다음 표시를 결정한다(단계(202)).
도 7은 본 발명의 하나 이상의 양상들에 따른 제1 언어의 알파벳에 포함된 문자들을 선택하기 위한 사용자 입력에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 문자들 및/또는 단어들을 결정하기 위한 컴퓨팅 디바이스의 예시적인 동작들을 예시하는 순서도이다. 단지 예시를 위해, 예시적인 동작들은 도 1 및 2에 도시된 바와 같이 컴퓨팅 디바이스(2)의 컨텍스트 내에서 하기에 기술된다.
컴퓨팅 디바이스(2)는 초기에 복수의 키들을 포함하는 그래픽 키보드를 디스플레이하기 위해 출력할 수 있다(단계(220)). 예를 들어, 컴퓨팅 디바이스(2)는 프레즌스-감응형 디스플레이(4)에서 디스플레이하기 위해 QWERT 키보드를 출력할 수 있다. 컴퓨팅 디바이스(2)는 프레즌스-감응형 디스플레이에서 검출되는 제스쳐의 표시를 수신할 수 있다(단계(222)). 예를 들어, 컴퓨팅 디바이스(2)는 탭 입력, 연속적인 제스쳐 및/또는 이의 조합을 수신할 수 있다. 이 방식으로, 사용자는 스와이핑(swiping) 및 태핑 모두를 혼합할 수 있어서, 사용자는 후보 문자 스트링(예컨대, 핀인 스트링)의 일 부분에서 스와이프하고 후보 문자 스트링의 나머지 부분을 태핑하기 위해 연속적인 제스쳐를 수행할 수 있다.
제스쳐의 표시를 수신함에 응답하여, 컴퓨팅 디바이스(2)는 제스쳐의 표시에 근거하여 하나 이상의 후보 문자 스트링들의 그룹을 결정할 수 있다(단계(224)). 예를 들어, 컴퓨팅 디바이스(2)는 문자 격자(100)와 같은 격자 상에 하나 이상의 탭 입력들을 모델링할 수 있다. 컴퓨팅 디바이스(2)는 도 4에 기술된 바와 같이, 문자 격자로부터 하나 이상의 후보 문자 스트링들을 결정하고 토큰 격자(110)에 에지들을 생성할 수 있다. 일부 예들에서, 컴퓨팅 디바이스(2)는 도 5-6b에 기술된 바와 같이 어휘록 트리에 근거하여 하나 이상의 후보 문자 스트링들을 결정할 수 있다. 예를 들어, 도 5-6b에 기술된 바와 같이, 컴퓨팅 디바이스(2)는 하나 이상의 후보 문자 스트링들을 결정하고 토큰 격자(110)에 문자 스트링들을 모델링할 수 있다.
일부 예들에서, 컴퓨팅 디바이스(2)는 하나 이상의 후보 문자 스트링들의 그룹에 대한 확률들을 결정할 수 있다(단계(226)). 예를 들어, 컴퓨팅 디바이스(2)는 후보 문자 스트링들 중 하나 이상에 대한 공간적 모델 확률들을 결정할 수 있다. 도 4-6b에 기술된 바와 같이, 컴퓨팅 디바이스(2)는 그래픽 키보드의 하나 이상의 키들에 대응하는 후보 문자 스트링의 하나 이상의 문자들에 대한 각각의 공간적 모델 확률들에 근거하여 후보 문자 스트링에 대한 공간적 모델 확률을 결정할 수 있다.
일부 예들에서, 컴퓨팅 디바이스(2)는 토큰 격자(110)에 하나 이상의 후보 문자 스트링들을 모델링할 수 있다(단계(228)). 예를 들어, 컴퓨팅 디바이스(2)는 후보 문자 스트링 및 이의 대응하는 공간적 모델 확률을 토큰 격자(110) 내의 에지와 관련시킬 수 있다. 컴퓨팅 디바이스(2)는 또한, 단격 격자(120)에 토큰 격자(110)의 후보 문자 스트링들 중 하나 이상을 모델링할 수 있다(단계(230)). 일례로, 컴퓨팅 디바이스(2)는 가장 높은 확률들을 갖는 경로들을 결정하기 위해 토큰 격자(110)를 횡단할 수 있다. 컴퓨팅 디바이스(2)는 토큰 격자(110)로부터 복수의 후보 문자 스트링들을 연쇄시키고 후보 스트링의 연쇄를 단어 격자(120)의 에지와 관련시킬 수 있다.
컴퓨팅 디바이스(2)는, 에지 가중으로서 에지와 관련될 수 있는 연쇄(concatenation)와 관련된 확률을 결정할 수 있다. 그 다음, 컴퓨팅 디바이스(2)는 후보 문자 스트링의 이러한 연쇄가 언어의 하나 이상의 단어들에 대응하는지의 여부를 결정하기 위해 이를 이용할 수 있다. 예를 들어, 단어 격자(120) 내의 에지와 관련된 높은 확률은, 사용자가 에지와 관련된 단어를 입력하는 것을 의도할 큰 가능성을 나타낼 수 있다. 따라서, 일부 예들에서, 컴퓨팅 디바이스(2)는 단어 격자 내의 단어와 관련된 확률이 임계를 만족하는지의 여부를 결정할 수 있다(단계(232)). 예를 들어, 확률이 임계를 만족하면(단계(236))(예컨대, 확률이 임계보다 높으면), 컴퓨팅 디바이스(2)는 적어도 하나의 단어를 디스플레이하기 위해 출력할 수 있다(단계(238)). 확률이 임계를 만족하지 않으면, 컴퓨팅 디바이스(2)는 적어도 하나의 단어를 디스플레이하기 위해 출력하지 않을 수 있다(단계(234)). 일부 예들에서, 컴퓨팅 디바이스(2)는, 증분적으로 상기 컴퓨팅 디바이스(2)가 사용자 입력의 표시들을 결정하는 도 7의 기법들을 수행할 수 있다. 즉, 제스쳐 입력의 각각의 탭 입력 및/또는 각각의 부분에 대해, 컴퓨팅 디바이스(2)는 디스플레이하기 위해 출력할 단어들을 문자 격자를 이용하여 증분적으로 결정할 수 있다.
도 8은 본 발명의 하나 이상의 양상들에 따른 제1 언어의 알파벳에 포함된 문자들을 선택하기 위한 사용자 입력에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 문자들 및/또는 단어들을 결정하기 위한 컴퓨팅 디바이스의 예시적인 동작들을 도시하는 순서도이다. 단지 예시를 위해, 예시적인 동작들이 도 1 및 2에 도시된 바와 같이 컴퓨팅 디바이스(2)의 컨텍스트 내에서 하기에 기술된다.
컴퓨팅 디바이스(2)는 초기에 복수의 키들을 포함하는 그래픽 키보드를 디스플레이하기 위해 출력할 수 있다(단계(260)). 일부 예들에서, 복수의 키들 중 적어도 하나는 제1 언어의 제1 알파벳에 포함된 하나 이상의 심볼들과 관련된다. (프레즌스-감응형 입력 디바이스를 포함할 수 있는) 프레즌스-감응형 디스플레이(4)에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 컴퓨팅 디바이스(2)는 제1 알파벳의 심볼들을 각각 포함하는 복수의 문자 스트링들을 제1 격자에 모델링할 수 있다(단계(262)). 일부 예들에서, 제1 격자는 복수의 스트링들의 각각의 공간적 확률들을 나타내고, 공간적 확률들은 적어도 하나의 제스쳐의 표시에 적어도 부분적으로 근거한다.
컴퓨팅 디바이스(2)는 일부 예들에서, 복수의 문자 스트링들 중 적어도 하나에 대해, 상기 복수의 문자 스트링들의 공간적 확률들에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 단어들의 확률들을 나타내는 제2 격자를 이용하여, 복수의 문자 스트링들 중 적어도 하나가 제2 언어에 포함된 적어도 하나의 단어에 대응할 확률을 결정할 수 있다(단계(264)). 일부 예들에서, 적어도 하나의 단어는 제2 언어에 대응하는 제2 알파벳의 하나 이상의 심볼들에 의해 표시된다. 일부 예들에서, 컴퓨팅 디바이스(2)는 적어도 하나의 확률이 임계를 만족함을 결정함에 응답하여, 적어도 하나의 단어를 표시하는 하나 이상의 심볼들을 디스플레이하기 위해 출력할 수 있다(단계(266)).
일례에서, 방법은 컴퓨팅 디바이스에 의해, 복수의 후보 문자 스트링들 중의 후보 문자 스트링에 포함된 문자들의 그룹을 결정하는 단계와, 컴퓨팅 디바이스에 의해, 후보 문자 스트링에 포함된 문자들에 대응하는 키들의 공간적 모델 확률들을 결정하는 단계와, 컴퓨팅 디바이스에 의해, 후보 문자 스트링에 포함된 문자들에 대응하는 키들의 공간적 모델 확률들에 근거하여 후보 문자 스트링의 집합적인 공간적 모델 확률을 결정하는 단계와, 그리고 컴퓨팅 디바이스에 의해, 제1 격자에 에지를 생성하는 단계를 포함하고, 상기 후보 문자 스트링 및 문자 스트링의 집합적인 공간적 모델 확률은 에지와 관련된다.
일례에서, 방법은 컴퓨팅 디바이스에 의해, 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들의 공간적 모델 확률들을 결정하는 단계와, 컴퓨팅 디바이스에 의해, 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들에 각각 대응하는 에지들을 제3 격자에 생성하는 단계와, 컴퓨팅 디바이스에 의해, 탭 입력의 위치의 근부에 있는 그래픽 키보드의 문자들 및 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들의 각각의 공간적 모델 확률들을 에지들과 관련시키는 단계와, 컴퓨팅 디바이스에 의해, 제3 격자에 복수의 에지들을 결정하는 단계와, 그리고 컴퓨팅 디바이스에 의해, 후보 문자 스트링과 관련된 에지를 제1 격자에 생성하는 단계를 포함하며, 후보 문자 스트링은 제3 격자 내의 복수의 에지들에 적어도 부분적으로 근거하여 생성된다.
일례에서, 방법은 컴퓨팅 디바이스에 의해, 제1 후보 문자 스트링의 제1 공간적 모델 확률이 임계를 만족함을 결정하는 단계 - 상기 제1 후보 문자 스트링은 제1 격자의 제1 에지에 대응하고, 제1 에지는 제1 꼭지점으로부터 비롯되고 제2 꼭지점에서 종료됨 - 와, 컴퓨팅 디바이스에 의해, 제2 후보 문자 스트링의 제2 공간적 모델 확률이 임계를 만족함을 결정하는 단계 - 상기 제2 후보 문자 스트링은 제1 격자의 제2 에지에 대응하고, 제2 에지는 제2 꼭지점으로부터 시작하고 제3 꼭지점에서 종료됨 - 와, 그리고 컴퓨팅 디바이스에 의해, 제1 공간적 모델 확률 및 제2 공간적 모델 확률에 적어도 부분적으로 근거하여 제2 언어에 포함된 적어도 하나의 단어의 확률을 나타내는 제3 에지를 제2 격자에 생성하는 단계를 포함한다.
일례에서, 상기 방법은 컴퓨팅 디바이스에 의해, 제3 후보 문자 스트링을 생성하기 위해 제1 후보 문자 스트링 및 제2 후보 문자 스트링을 연쇄시키는 단계와, 상기 컴퓨팅 디바이스에 의해, 제2 격자 내의 제3 에지와 상기 제3 후보 문자 스트링을 관련시키는 단계와, 그리고 상기 컴퓨팅 디바이스에 의해, 제2 언어의 단어를 고려하여 상기 제3 후보 문자 스트링의 확률을 결정하는 단계를 포함한다.
일례에서, 상기 방법은 상기 컴퓨팅 디바이스에 의해 그리고 상기 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 키들의 그룹에 적어도 부분적으로 근거하여 후보 문자 스트링을 결정하는 단계 - 상기 결정은 상기 컴퓨팅 디바이스에 의해, 상기 제스쳐가 횡단하는 정렬 포인트들의 그룹을 결정하는 것과, 상기 컴퓨팅 디바이스에 의해, 상기 복수의 키들 중 적어도 두 개의 키들 각각에 대해 각각의 코스트 값들을 결정하는 것을 포함하고, 상기 각각의 코스트 값들 각각은 상기 정렬 포인트들의 그룹 중의 정렬 포인트가 상기 복수의 키들 중의 키를 나타낼 확률을 표시함 - 와, 그리고 키들의 조합의 코스트 값이 임계를 만족함을 결정함에 응답하여, 상기 컴퓨팅 디바이스에 의해, 후보 문자 스트링을 상기 제1 격자의 에지와 관련시키는 단계를 포함하고, 상기 문자 스트링은 상기 키들의 조합과 관련된 문자들을 포함한다.
일례에서, 상기 방법은 상기 컴퓨팅 디바이스에 의해, 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여 복수의 문자들을 결정하는 단계와, 상기 컴퓨팅 디바이스에 의해, 상기 복수의 문자들 사이의 적어도 하나의 경계를 결정하는 단계 - 상기 적어도 하나의 경계는 제1 후보 문자 스트링에 대응하는 상기 복수의 문자들 내의 문자들의 제1 그룹 및 제2 후보 문자 스트링에 대응하는 상기 복수의 문자들 내의 문자들의 제2 그룹을 나타냄 - 와, 상기 컴퓨팅 디바이스에 의해, 상기 제1 후보 문자 스트링과 관련된 제1 에지를 제1 격자에 생성하는 단계 - 상기 제1 에지는 제1 꼭지점으로부터 비롯되고 제2 꼭지점에서 종료됨 - 와, 상기 컴퓨팅 디바이스에 의해, 상기 제2 후보 문자 스트링과 관련된 제2 에지를 제1 격자에 생성하는 단계 - 상기 제2 에지는 제2 꼭지점으로부터 비롯되고 제3 꼭지점에서 종료됨 - 와, 그리고 상기 컴퓨팅 디바이스에 의해, 상기 제2 언어의 단어를 고려하여 상기 제1 후보 문자 스트링 및 제2 후보 문자 스트링의 확률을 결정하는 단계를 포함한다.
도 9는 본 발명의 기법들에 따른, 컴퓨팅 디바이스가 제1 언어의 알파벳의 문자들을 선택하기 위해 사용자 입력의 표시들에 근거하여 생성하고 제2 언어의 단어들을 결정하기 위해 사용할 수 있는 격자들을 예시하는 개념도이다. 도 9는 도 4에 이전에 기술된 바와 같은 문자 격자(100), 토큰 격자(110) 및 단어 격자(120)를 예시한다. 추가적으로, 도 9는 에 대응하는 중국어 문자들 Z1, 에 대응하는 Z2, 에 대응하는 H를 예시한다. 도 9는 또한, 에 대응하는 중국어 단어 ZG를 예시한다. 단지 예시를 위해 도 9에 도시된 바와 같이, 단어 격자(120)는 도 4에 포함된 것과 다른 에지들의 조합(대응하는 노드들(281)로부터 확장된 수직 점선들에 의해 표시된 노드 경계들(285) 사이의 양방향 화살표의 에지들에 의해 표시됨)을 포함한다. 빌더 모듈(50)은 도 4에 기술된 기법들에 따라 도 9의 에지들을 모델링할 수 있다.
도 9는 또한, 디코딩 모듈(52)에 의해 결정될 수 있는 비터비 경로들(280 및 282)을 예시한다. 예를 들어, 디코딩 모듈(52)은 가장 큰 가중들을 갖는 (하나 이상의 에지들로 집합적으로 구성된)경로들을 찾기 위해 단어 격자(120)의 에지들을 통해 검색할 수 있다. 일례로, 디코딩 모듈(52)은 단어 격자(120)를 통해 검색할 때 비터비 경로(280)를 결정할 수 있다. 비터비 경로(280)는 중국어 단어 ZG(즉, )과 관련된 단어 격자(120)의 에지(302)에 대응할 수 있다. 디코딩 모듈(52)은 중국어 단어(즉, )가 중국어에서 발생하는 빈도 또는 확률에 대응할 수 있는 확률 P(ZG)을 결정할 수 있다. 디코딩 모듈(52)은 또한, 비터비 경로(280)에서 확률 P('zhong', 'guo' | ZG)를 결정할 수 있다. P('zhong', 'guo' | ZG)는 중국어 단어 ZG를 고려하여 후보 문자 스트링들 'zhong', 'guo'의 확률을 나타낼 수 있다. 마지막으로, 비터비 경로(280)는 토큰 격자(110)에서 'zhong' 및 'guo'에 대응하는 에지들의 각각의 공간적 모델 확률들에 대응할 수 있는 PSpatial('zhong')Pspatial('guo')을 포함할 수 있다. 디코딩 모듈(52)은,
P(ZG)P('zhong', 'guo' | ZG) Pspatial('zhong')Pspatial('guo')
에 대한 확률들의 곱에 근거하여 에지(302)에 대한 총 가중을 결정할 수 있다.
디코딩 모듈(52)은 단어 격자(120) 내의 어떤 수의 에지들에 대한 비터비 경로들을 결정할 수 있다. 예를 들어, 도 9에 도시된 바와 같이, 디코딩 모듈(52)은 또한, 단어 격자(120) 내의 에지들(304 및 306)에 대한 비터비 경로(282)를 결정할 수 있다. 디코딩 모듈(52)은 중국어 문자 Z1(즉, )이 중국어에서 발생하는 빈도 또는 확률에 대응할 수 있는 확률 P(Z1)을 결정할 수 있다. 확률 P(Z1)은 유니그램 확률로서 나타내질 수 있다. 디코딩 모듈(52)은 또한, 비터비 경로(282)에서 확률 P(H | Z1)을 결정할 수 있다. 확률 P(H | Z1)은 문자 Z1의 발생을 고려한 문자 H의 확률에 대응할 수 있다. 확률 P(H | Z1)은 바이그램 확률에 대응할 수 있다. 디코딩 모듈(52)은 또한, 에지(304)에 대응하는 확률 P('zhong' | Zl)을 결정할 수 있다. 확률 P('zhong' | Zl)은 중국어 문자 Z1을 고려한 후보 문자 스트링 'zhong'의 확률을 나타낼 수 있다. 유사하게, 디코딩 모듈(52)은 에지(306)에 대응하는 확률 P('huo' | H)을 결정할 수 있다. 확률 P('huo' | H)은 중국어 문자 H를 고려한 후보 문자 스트링 'huo'의 확률을 나타낼 수 있다. 디코딩 모듈(52)은 토큰 격자(110) 내의 대응하는 에지들로부터 결정된 에지들(304 및 306)의 공간적 모델 스코어들에 대응하는 Pspatial('zhong')Pspatial('huo')을 결정할 수 있다. 디코딩 모듈(52)은,
P(Z1)P(H | Zl)P('zhong' | Zl)P('huo' | H)Pspatial('zhong')Pspatial('huo')
에 대한 확률들의 곱에 근거하여 에지들(304 및 306)을 포함하는 경로에 대한 총 가중을 결정할 수 있다. 마지막으로, 수식(283)은 일부 예들에서, 디코딩 모듈(52)이 공간적 및 언어 모델 스코어들에 근거하여 가장 높은 확률들을 갖는 단어 격자(120) 내의 에지들을 검색함을 나타낼 수 있다. 예를 들어, P(t)는 제2 언어의 문자, 단어 또는 복수-단어 구의 확률에 대응할 수 있고, P(s' | t)는 제2 언어의 문자, 단어 또는 복수단어 구를 고려한 하나 이상의 후보 문자 스트링들의 확률에 대응할 수 있고, 그리고 P(s | s')는 하나 이상의 후보 문자 스트링들의 공간적 모델 확률에 대응할 수 있다.
도 9는 또한, 사용자 인터페이스(UI) 요소(284)를 예시한다. 일부 예들에서, 디코딩 모듈(52)은 프레즌스-감응형 디스플레이(4)로 하여금 UI 요소(284)를 출력할 수 있게 하는 데이터를 UI 모듈(6)에 전송할 수 있다. UI 요소(284)는 본 발명의 기법들에 근거하여 결정되는 제2 언어의 하나 이상의 문자들, 단어들 및/또는 복수 단어 구들을 제시할 수 있다. 예를 들어, 초기에 사용자는 'zhong'을 입력하기 위해 사용자 입력의 하나 이상의 표시들을 제공할 수 있다. 본 발명의 기법들에 근거하여, 디코딩 모듈(52)은 'zhong'에 대응하는 단어 격자(120)의 에지(304)를 결정할 수 있다. 디코딩 모듈(52)은 에지(304)와 관련된 스코어가 임계를 만족하는 가장 높은 스코어들의 그룹 중 하나임을 결정할 수 있고, 따라서, 프레즌스-감응형 디스플레이(4)로 하여금 에지(304)에 대응하는 문자 ""(288)을 출력할 수 있게 하는 데이터를 UI 모듈(6)에 전송한다. 디코딩 모듈(52)은 또한, 에지(302)와 관련된 스코어가 임계를 만족하는 가장 높은 스코어들의 그룹에 포함됨을 결정할 수 있고, 따라서 도면부호(284)에 예시된 바와 같이 ""를 출력한다.
일부 예들에서, 사용자는 예컨대, 문자 ""(288)을 출력하는 프레즌스-감응형 디스플레이(4) 스크린의 위치에서 제스쳐함으로써 문자 ""(288)을 선택하기 위한 사용자 입력의 표시를 제공할 수 있다. 제스쳐의 표시를 결정함에 응답하여, UI 모듈(6)은 프레즌스-감응형 디스플레이(4)로 하여금 프레즌스-감응형 디스플레이(4)에 의해 이전에 디스플레이된 'zhong' 대신 문자 ""(209)를 출력할 수 있게 한다. 디코딩 모듈(52)은 또한, 문자 ""(288)을 선택하기 위한 제스쳐의 표시를 결정할 시, 에지들(304) 및 에지(306)를 포함하는 단어 격자(120) 내의 경로와 같은 'zhong'과 관련된 에지를 포함하는 단어 격자(120) 내의 하나 이상의 경로들을 결정할 수 있다. 디코딩 모듈(52)은 또한, 에지들(308 및 310)을 결정할 수 있다. 사용자 입력의 표시가 'zhong'을 선택했기 때문에, 디코딩 모듈(52)은 'zhong'을 포함하는 경로 내의 에지들과 관련된 후보 문자 스트링들을 결정할 수 있다. 예를 들어, 디코딩 모듈(52)은 'zhong'과 관련된 에지들(304 및 308)에 또한 대응하는 에지들(306 및 310)에 각각 대응하는 후보 문자 스트링들 'guo' 및 'huo'을 출력할 수 있다. 컴퓨팅 디바이스(294)는 후보 문자 스트링(300)을 선택하기 위한 사용자 입력의 후속적인 표시를 수신할 수 있다. 도 9에 도시된 바와 같이, 'zhongguo'와 관련된 에지들이 단어 격자(120)에서 가장 높은 가중을 가졌고 따라서 가장 가능성있는(probable) 단어로서 출력됐을 수 있기 때문에 디코딩 모듈(52)은 이전에, 프레즌스-감응형 디스플레이(4)로 하여금 'guo'를 출력하게 했을 수 있다. 그러나, 사용자가 'huo'에 대응하는 후보 문자 스트링(300)을 선택했기 때문에, UI 모듈(6)은 프레즌스-감응형 디스플레이(4)로 하여금 'huo'에 대응하는 문자 ''를 출력할 수 있게 하여서, " guo"가 디스플레이를 위해 UI 요소(284)에서 ""와 교체된다. 이 방식으로, 사용자가 사용자 입력의 표시들을 증분적으로 제공함에 따라, 사용자는, 단어 격자(120) 및 디코딩 모듈(52)에 근거하여 결정되는, UI 요소(284)에 디스플레이되는 요구되는 문자, 단어 또는 복수-단어 구를 선택할 수 있다.
하나 이상의 예들에서, 기술된 기능들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 어떤 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능들은 하나 이상의 명령어들 또는 코드로서, 컴퓨터 판독가능 매체 상에 저장될 수 있거나 또는 이를 통해 전송되며 하드웨어 기반의 프로세싱 유닛에 의해 실행될 수 있다. 컴퓨터 판독가능 매체는 데이터 저장 매체와 같은 유형 매체에 대응하는 컴퓨터 판독가능 저장 매체 또는 예컨대, 통신 프로토콜에 따라 일 장소로부터 타 장소로 컴퓨터 프로그램의 전달을 지원하는 어떤 매체를 포함하는 통신 매체를 포함할 수 있다. 이 방식으로, 컴퓨터 판독가능 매체는 일반적으로, (1) 비일시적 유형 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 발명에 기술된 기법들의 구현을 위해 명령어들, 코드 및/또는 데이터 구조들을 검색하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 어떤 이용가능한 매체일 수 있다. 컴퓨터 프로그램 물은 컴퓨터 판독가능 매체를 포함할 수 있다.
제한이 아닌 예로서, 이러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM, 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령어들 또는 데이터 구조들의 형태로 바람직한 프로그램 코드를 저장하기 위해 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 어떤 다른 매체를 포함할 수 있다. 또한, 어떤 연결은 컴퓨터 판독가능 매체로서 적절하게 명명된다. 예를 들어, 명령어들이 동축 케이블, 광섬유 케이블, 꼬임 이선식, 디지털 구독자 라인(DSL), 또는 적외선, 라디오(radio) 및 전파와 같은 무선 기술들을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 전송되는 경우, 동축 케이블, 광섬유 케이블, 꼬임 이선식, 디지털 구독자 라인, 또는 적외선, 라디오 및 전파와 같은 무선 기술들은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체가 연결들, 반송파들, 신호들 또는 다른 일시적 매체를 포함하는 것이 아니라 대신 비 일시적인 유형의 저장 매체로 의도된 것임이 이해되어야 한다. 사용된 디스크(disk) 및 디스크(disc)는 CD(compact disc), 레이져 디스크(disc), 광학 디스크(disc), DVD(digital versatile disc), 플로피 디스크(disk) 및 블루레이 디스크(disc)를 포함하며, 디스크(disk)들은 일반적으로 데이터를 자기적으로 재생하며, 디스크(disc)들은 레이져들로 데이터를 광학적으로 재생한다. 상기의 조합들이 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
명령어들은 하나 이상의 디지털 신호 프로세서(DSP)들, 범용 마이크로 프로세서들, 응용 주문형 집적 회로(ASIC)들, 현장 프로그램가능 로직 어레이(FPGA)들 또는 다른 균등한 집적 또는 이산 로직 회로망과 같은 하나 이상의 프로세서들에 의해 실행될 수 있다. 따라서, 사용된 용어 "프로세서"는 상기 구조 또는 기술된 기법들의 구현에 적절한 어떤 다른 구조 중 어느 것을 나타낼 수 있다. 추가적으로, 일부 양상들에서, 기술된 기능은 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수 있다. 또한, 기법들은 하나 이상의 회로들 또는 로직 요소들로 완전히 구현될 수 있다.
본 발명의 기법들은 무선 핸드셋, 집적 회로 또는 IC들의 세트(예컨대, 칩셋)을 포함하는 다양한 디바이스들 또는 장치들로 구현될 수 있다. 다양한 컴포넌트들, 모듈들 또는 유닛들이 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양상들을 강조하기 위해 본 발명에서 기술되지만, 다른 하드웨어 유닛들에 의한 실현을 반드시 요하는 것은 아니다. 오히려, 상기에 기술된 바와 같이, 다양한 유닛들은 하드웨어 유닛에 결합되거나 또는 적절한 소프트웨어 및/또는 펌웨어와 연계하여 상기에 기술된 바와 같이 하나 상의 프로세서들을 포함하는 상호운용적 하드웨어 유닛들의 집합체에 의해 제공될 수 있다.
실시예에 따라, 본 명세서에 기술된 방법들 중 어느 것의 특정한 동작들 또는 이벤트들은 다른 시퀀스로 수행될 수 있거나, 추가, 병합 또는 모두 함께 생략될 수 있다(예컨대, 모든 기술된 동작들 또는 이벤트들이 방법의 실시를 위해 필요한 것은 아니다). 더욱이, 특정 실시예들에서, 동작들 또는 이벤트들은 순차적이기 보다는, 예컨대, 멀티-스레드 프로세싱(multi-threaded processing), 인터럽트 프로세싱 또는 복수의 프로세서들을 통해 동시에 수행될 수 있다.
다양한 예들이 기술되었다. 이들 및 다른 예들은 다음의 특허청구범위 내에 있다.
Claims (21)
- 적어도 하나의 프로세서를 포함하는 컴퓨팅 디바이스로서, 상기 적어도 하나의 프로세서는:
복수의 키들을 포함하는 그래픽 키보드를 디스플레이하기 위해 출력 - 상기 복수의 키들 중 적어도 하나는 제1 언어의 제1 알파벳에 포함된 하나 이상의 심볼들과 관련됨 - 하고;
프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 상기 제1 알파벳의 심볼들을 각각 포함하는 복수의 후보 문자 스트링들을 제1 격자(lattice)에서 모델링 - 상기 제1 격자는 상기 복수의 후보 문자 스트링들 각각의 공간적 확률(spatial probability)들을 나타내고, 상기 공간적 확률들은 상기 적어도 하나의 제스쳐의 표시에 적어도 부분적으로 근거함 - 하고;
상기 복수의 후보 문자 스트링들 중 적어도 하나에 대해, 상기 복수의 후보 문자 스트링들의 공간적 확률들에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 단어들의 확률들을 나타내는 제2 격자를 이용하여, 상기 복수의 후보 문자 스트링들 중 적어도 하나가 상기 제2 언어에 포함된 적어도 하나의 단어에 대응할 확률을 결정 - 상기 적어도 하나의 단어는 상기 제2 언어에 대응하는 제2 알파벳의 하나 이상의 심볼들에 의해 표시됨 - 하고; 그리고
상기 확률이 임계를 만족함을 결정함에 응답하여, 상기 적어도 하나의 단어를 표시하는 하나 이상의 심볼들을 디스플레이하기 위해 출력하도록 구성되고,
상기 제1 알파벳의 심볼들을 각각 포함하는 복수의 후보 문자 스트링들을 제1 격자에서 모델링하는 것은,
상기 복수의 후보 문자 스트링들 중의 후보 문자 스트링에 포함된 문자들의 그룹을 결정하고;
상기 후보 문자 스트링에 포함된 문자들에 대응하는 키들의 공간적 모델 확률들을 결정하고;
상기 후보 문자 스트링에 포함된 문자들에 대응하는 키들의 공간적 모델 확률에 적어도 부분적으로 근거하여 상기 후보 문자 스트링의 집합적인 공간적 모델 확률들을 결정하고; 그리고
상기 제1 격자 내의 에지를 결정하는 것을 포함하며, 상기 후보 문자 스트링 및 상기 후보 문자 스트링의 집합적인 공간적 모델 확률은 상기 에지와 관련되는 것을 특징으로 하는 컴퓨팅 디바이스. - 삭제
- 제1항에 있어서,
상기 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시는 탭 입력을 더 포함하고, 상기 적어도 하나의 프로세서는:
상기 탭 입력의 위치의 근부(proximal)에 있는 그래픽 키보드의 키들의 공간적 모델 확률들을 결정하고;
상기 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들에 각각 대응하는 에지들을 제3 격자에 생성하며;
상기 탭 입력의 위치의 근부에 있는 그래픽 키보드의 문자들 및 상기 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들의 각각의 공간적 모델 확률들을 상기 에지들과 관련시키고;
상기 제3 격자 내의 복수의 에지들을 결정하며; 그리고
후보 문자 스트링과 관련된 에지를 상기 제1 격자에 생성하도록 구성되고, 상기 후보 문자 스트링은 상기 제3 격자 내의 복수의 에지들에 적어도 부분적으로 근거하여 생성되는 것을 특징으로 하는 컴퓨팅 디바이스. - 제1항에 있어서,
상기 적어도 하나의 프로세서는:
제1 후보 문자 스트링의 제1 공간적 모델 확률이 임계를 만족함을 결정 - 상기 제1 후보 문자 스트링은 제1 격자의 제1 에지에 대응하고, 상기 제1 에지는 제1 꼭지점(vertex)으로부터 비롯되고 제2 꼭지점에서 종료됨 - 하고;
제2 후보 문자 스트링의 제2 공간적 모델 확률이 임계를 만족함을 결정 - 상기 제2 후보 문자 스트링은 제1 격자의 제2 에지에 대응하고, 상기 제2 에지는 제2 꼭지점으로부터 비롯되고 제3 꼭지점에서 종료됨 - 하며; 그리고
상기 제1 공간적 모델 확률 및 상기 제2 공간적 모델 확률에 적어도 부분적으로 근거하여 상기 제2 언어에 포함된 적어도 하나의 단어의 확률을 나타내는 제3 에지를 상기 제2 격자에 생성하도록 구성된 것을 특징으로 하는 컴퓨팅 디바이스. - 제4항에 있어서,
상기 적어도 하나의 프로세서는:
제3 후보 문자 스트링을 생성하기 위해 상기 제1 후보 문자 스트링 및 상기 제2 후보 문자 스트링을 연쇄시키고(concatenate);
상기 제3 후보 문자 스트링을 상기 제2 격자 내의 제3 에지와 관련시키며; 그리고
상기 제2 언어의 단어를 고려하여 상기 제3 후보 문자 스트링의 확률을 결정하도록 구성된 것을 특징으로 하는 컴퓨팅 디바이스. - 제1항에 있어서,
상기 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시는 연속적인 제스쳐 입력을 더 포함하고, 상기 적어도 하나의 프로세서는:
상기 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 키들의 그룹에 적어도 부분적으로 근거하여 후보 문자 스트링을 결정 - 상기 결정은 상기 제스쳐가 횡단(traverse)하는 정렬 포인트들의 그룹을 결정하는 것과, 상기 복수의 키들 중 적어도 두 개의 키들 각각에 대해 각각의 코스트 값(cost value)들을 결정하는 것을 포함하고, 상기 각각의 코스트 값들 각각은 상기 정렬 포인트들의 그룹 중의 정렬 포인트가 상기 복수의 키들 중의 키를 나타낼 확률을 표시함 - 하고; 그리고
키들의 조합의 코스트 값이 임계를 만족함을 결정함에 응답하여, 상기 컴퓨팅 디바이스에 의해 후보 문자 스트링을 상기 제1 격자의 에지와 관련시키도록 구성되고, 상기 후보 문자 스트링은 상기 키들의 조합과 관련된 문자들을 포함하는 것을 특징으로 하는 컴퓨팅 디바이스. - 제1항에 있어서,
상기 적어도 하나의 프로세서는:
상기 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여 복수의 문자들을 결정하고;
상기 복수의 문자들 사이의 적어도 하나의 경계를 결정 - 상기 적어도 하나의 경계는 제1 후보 문자 스트링에 대응하는 상기 복수의 문자들 내의 문자들의 제1 그룹 및 제2 후보 문자 스트링에 대응하는 상기 복수의 문자들 내의 문자들의 제2 그룹을 나타냄 - 하고;
상기 제1 후보 문자 스트링과 관련된 제1 에지를 제1 격자에 생성 - 상기 제1 에지는 제1 꼭지점으로부터 비롯되고 제2 꼭지점에서 종료됨 - 하며;
상기 제2 후보 문자 스트링과 관련된 제2 에지를 제1 격자에 생성 - 상기 제2 에지는 제2 꼭지점으로부터 비롯되고 제3 꼭지점에서 종료됨 - 하고; 그리고
상기 제2 언어의 단어를 고려하여 상기 제1 후보 문자 스트링 및 제2 후보 문자 스트링의 확률을 결정하도록 구성된 것을 특징으로 하는 컴퓨팅 디바이스. - 명령어들이 수록된 컴퓨터 판독가능 저장 매체로서, 상기 명령어들은 실행될 때, 적어도 하나의 프로세서로 하여금:
복수의 키들을 포함하는 그래픽 키보드를 디스플레이하기 위해 출력 - 상기 복수의 키들 중 적어도 하나는 제1 언어의 제1 알파벳에 포함된 하나 이상의 심볼들과 관련됨 - 하고;
프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 상기 제1 알파벳의 심볼들을 각각 포함하는 복수의 후보 문자 스트링들을 제1 격자에서 모델링 - 상기 제1 격자는 상기 복수의 후보 문자 스트링들 각각의 공간적 확률들을 나타내고, 상기 공간적 확률들은 상기 적어도 하나의 제스쳐의 표시에 적어도 부분적으로 근거함 - 하고;
상기 복수의 후보 문자 스트링들 중 적어도 하나에 대해, 상기 복수의 후보 문자 스트링들의 공간적 확률들에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 단어들의 확률들을 나타내는 제2 격자를 이용하여, 상기 복수의 후보 문자 스트링들 중 적어도 하나가 상기 제2 언어에 포함된 적어도 하나의 단어에 대응할 확률을 결정 - 상기 적어도 하나의 단어는 상기 제2 언어에 대응하는 제2 알파벳의 하나 이상의 심볼들에 의해 표시됨 - 하고; 그리고
상기 확률이 임계를 만족함을 결정함에 응답하여, 상기 적어도 하나의 단어를 표시하는 하나 이상의 심볼들을 디스플레이하기 위해 출력하도록 하고,
상기 제1 알파벳의 심볼들을 각각 포함하는 복수의 후보 문자 스트링들을 제1 격자에서 모델링하는 것은,
상기 복수의 후보 문자 스트링들 중의 후보 문자 스트링에 포함된 문자들의 그룹을 결정하고;
상기 후보 문자 스트링에 포함된 문자들에 대응하는 키들의 공간적 모델 확률들을 결정하고;
상기 후보 문자 스트링에 포함된 문자들에 대응하는 키들의 공간적 모델 확률에 적어도 부분적으로 근거하여 상기 후보 문자 스트링의 집합적인 공간적 모델 확률들을 결정하고; 그리고
상기 제1 격자 내의 에지를 결정하는 것을 포함하며, 상기 후보 문자 스트링 및 상기 후보 문자 스트링의 집합적인 공간적 모델 확률은 상기 에지와 관련되는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체. - 삭제
- 제8항에 있어서,
상기 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시는 탭 입력을 더 포함하고, 상기 컴퓨터 판독가능 저장 매체에 수록된 명령어들은 실행될 때, 적어도 하나의 프로세서로 하여금:
상기 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들의 공간적 모델 확률들을 결정하고;
상기 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들에 각각 대응하는 에지들을 제3 격자에 생성하며;
상기 탭 입력의 위치의 근부에 있는 그래픽 키보드의 문자들 및 상기 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들의 각각의 공간적 모델 확률들을 상기 에지들과 관련시키고;
상기 제3 격자 내의 복수의 에지들을 결정하며; 그리고
후보 문자 스트링과 관련된 에지를 상기 제1 격자에 생성하도록 하고, 상기 후보 문자 스트링은 상기 제3 격자 내의 복수의 에지들에 적어도 부분적으로 근거하여 생성되는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체. - 제8항에 있어서,
상기 컴퓨터 판독가능 저장 매체에 수록된 명령어들은 실행될 때, 적어도 하나의 프로세서로 하여금:
제1 후보 문자 스트링의 제1 공간적 모델 확률이 임계를 만족함을 결정 - 상기 제1 후보 문자 스트링은 제1 격자의 제1 에지에 대응하고, 상기 제1 에지는 제1 꼭지점으로부터 비롯되고 제2 꼭지점에서 종료됨 - 하고;
제2 후보 문자 스트링의 제2 공간적 모델 확률이 임계를 만족함을 결정 - 상기 제2 후보 문자 스트링은 제1 격자의 제2 에지에 대응하고, 상기 제2 에지는 제2 꼭지점으로부터 비롯되고 제3 꼭지점에서 종료됨 - 하며; 그리고
상기 제1 공간적 모델 확률 및 상기 제2 공간적 모델 확률에 적어도 부분적으로 근거하여 상기 제2 언어에 포함된 적어도 하나의 단어의 확률을 나타내는 제3 에지를 상기 제2 격자에 생성하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체. - 제11항에 있어서,
상기 컴퓨터 판독가능 저장 매체에 수록된 명령어들은 실행될 때, 적어도 하나의 프로세서로 하여금:
제3 후보 문자 스트링을 생성하기 위해 상기 제1 후보 문자 스트링 및 상기 제2 후보 문자 스트링을 연쇄시키고;
상기 제3 후보 문자 스트링을 상기 제2 격자 내의 제3 에지와 관련시키며; 그리고
상기 제2 언어의 단어를 고려하여 상기 제3 후보 문자 스트링의 확률을 결정하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체. - 제8항에 있어서,
상기 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시는 연속적인 제스쳐 입력을 더 포함하고, 상기 컴퓨터 판독가능 저장 매체에 수록된 명령어들은 실행될 때, 적어도 하나의 프로세서로 하여금:
상기 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 키들의 그룹에 적어도 부분적으로 근거하여 후보 문자 스트링을 결정 - 상기 결정은 상기 제스쳐가 횡단하는 정렬 포인트들의 그룹을 결정하는 것과, 상기 복수의 키들 중 적어도 두 개의 키들 각각에 대해 각각의 코스트 값들을 결정하는 것을 포함하고, 상기 각각의 코스트 값들 각각은 상기 정렬 포인트들의 그룹 중의 정렬 포인트가 상기 복수의 키들 중의 키를 나타낼 확률을 표시함 - 하고; 그리고
키들의 조합의 코스트 값이 임계를 만족함을 결정함에 응답하여, 컴퓨팅 디바이스에 의해 후보 문자 스트링을 상기 제1 격자의 에지와 관련시키도록 하고, 상기 후보 문자 스트링은 상기 키들의 조합과 관련된 문자들을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체. - 제8항에 있어서,
상기 컴퓨터 판독가능 저장 매체에 수록된 명령어들은 실행될 때, 적어도 하나의 프로세서로 하여금:
프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여 복수의 문자들을 결정하고;
상기 복수의 문자들 사이의 적어도 하나의 경계를 결정 - 상기 적어도 하나의 경계는 제1 후보 문자 스트링에 대응하는 상기 복수의 문자들 내의 문자들의 제1 그룹 및 제2 후보 문자 스트링에 대응하는 상기 복수의 문자들 내의 문자들의 제2 그룹을 나타냄 - 하고;
상기 제1 후보 문자 스트링과 관련된 제1 에지를 제1 격자에 생성 - 상기 제1 에지는 제1 꼭지점으로부터 비롯되고 제2 꼭지점에서 종료됨 - 하며;
상기 제2 후보 문자 스트링과 관련된 제2 에지를 제1 격자에 생성 - 상기 제2 에지는 제2 꼭지점으로부터 비롯되고 제3 꼭지점에서 종료됨 - 하고; 그리고
상기 제2 언어의 단어를 고려하여 상기 제1 후보 문자 스트링 및 제2 후보 문자 스트링의 확률을 결정하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체. - 방법으로서,
복수의 키들을 포함하는 그래픽 키보드를 디스플레이하기 위해 컴퓨팅 디바이스에 의해 출력하는 단계와, 상기 복수의 키들 중 적어도 하나는 제1 언어의 제1 알파벳에 포함된 하나 이상의 심볼들과 관련되고;
프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 상기 제1 알파벳의 심볼들을 각각 포함하는 복수의 후보 문자 스트링들을 제1 격자(lattice)에서 모델링하는 단계와, 상기 제1 격자는 상기 복수의 후보 문자 스트링들 각각의 공간적 확률(spatial probability)들을 나타내고, 상기 공간적 확률들은 상기 적어도 하나의 제스쳐의 표시에 적어도 부분적으로 근거하고;
상기 복수의 후보 문자 스트링들 중 적어도 하나에 대해, 상기 복수의 후보 문자 스트링들의 공간적 확률들에 적어도 부분적으로 근거하여 제2 언어의 하나 이상의 단어들의 확률들을 나타내는 제2 격자를 이용하여, 상기 복수의 후보 문자 스트링들 중 적어도 하나가 상기 제2 언어에 포함된 적어도 하나의 단어에 대응할 확률을 결정하는 단계와, 상기 적어도 하나의 단어는 상기 제2 언어에 대응하는 제2 알파벳의 하나 이상의 심볼들에 의해 표시되고; 그리고
상기 확률이 임계를 만족함을 결정함에 응답하여, 상기 적어도 하나의 단어를 표시하는 하나 이상의 심볼들을 디스플레이하기 위해 상기 컴퓨팅 디바이스에 의해 출력하는 단계를 포함하고,
상기 제1 알파벳의 심볼들을 각각 포함하는 복수의 후보 문자 스트링들을 제1 격자에서 모델링하는 단계는,
상기 컴퓨팅 디바이스에 의해, 상기 복수의 후보 문자 스트링들 중의 후보 문자 스트링에 포함된 문자들의 그룹을 결정하는 단계와;
상기 컴퓨팅 디바이스에 의해, 상기 후보 문자 스트링에 포함된 문자들에 대응하는 키들의 공간적 모델 확률들을 결정하는 단계와;
상기 컴퓨팅 디바이스에 의해, 상기 후보 문자 스트링에 포함된 문자들에 대응하는 키들의 공간적 모델 확률에 적어도 부분적으로 근거하여 상기 후보 문자 스트링의 집합적인 공간적 모델 확률들을 결정하는 단계와; 그리고
상기 컴퓨팅 디바이스에 의해, 상기 제1 격자에 에지를 결정하는 단계를 포함하며, 상기 후보 문자 스트링 및 상기 후보 문자 스트링의 집합적인 공간적 모델 확률은 상기 에지와 관련되는 것을 특징으로 하는 방법. - 삭제
- 제15항에 있어서,
상기 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시는 탭 입력을 더 포함하고, 상기 방법은:
상기 컴퓨팅 디바이스에 의해, 상기 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들의 공간적 모델 확률들을 결정하는 단계와;
상기 컴퓨팅 디바이스에 의해, 상기 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들에 각각 대응하는 에지들을 제3 격자에 생성하는 단계와;
상기 컴퓨팅 디바이스에 의해, 상기 탭 입력의 위치의 근부에 있는 그래픽 키보드의 문자들 및 상기 탭 입력의 위치의 근부에 있는 그래픽 키보드의 키들의 각각의 공간적 모델 확률들을 상기 에지들과 관련시키는 단계와;
상기 컴퓨팅 디바이스에 의해, 상기 제3 격자 내의 복수의 에지들을 결정하는 단계와; 그리고
상기 컴퓨팅 디바이스에 의해, 후보 문자 스트링과 관련된 에지를 상기 제1 격자에 생성하는 단계를 더 포함하고, 상기 후보 문자 스트링은 상기 제3 격자 내의 복수의 에지들에 적어도 부분적으로 근거하여 생성되는 것을 특징으로 하는 방법. - 제15항에 있어서,
상기 컴퓨팅 디바이스에 의해, 제1 후보 문자 스트링의 제1 공간적 모델 확률이 임계를 만족함을 결정하는 단계 - 상기 제1 후보 문자 스트링은 제1 격자의 제1 에지에 대응하고, 상기 제1 에지는 제1 꼭지점으로부터 비롯되고 제2 꼭지점에서 종료됨 - 와;
상기 컴퓨팅 디바이스에 의해, 제2 후보 문자 스트링의 제2 공간적 모델 확률이 임계를 만족함을 결정하는 단계 - 상기 제2 후보 문자 스트링은 제1 격자의 제2 에지에 대응하고, 상기 제2 에지는 제2 꼭지점으로부터 비롯되고 제3 꼭지점에서 종료됨 - 와; 그리고
상기 컴퓨팅 디바이스에 의해, 상기 제1 공간적 모델 확률 및 상기 제2 공간적 모델 확률에 적어도 부분적으로 근거하여 상기 제2 언어에 포함된 적어도 하나의 단어의 확률을 나타내는 제3 에지를 상기 제2 격자에 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제18항에 있어서,
상기 컴퓨팅 디바이스에 의해, 제3 후보 문자 스트링을 생성하기 위해 상기 제1 후보 문자 스트링 및 상기 제2 후보 문자 스트링을 연쇄시키는 단계와;
상기 컴퓨팅 디바이스에 의해, 상기 제3 후보 문자 스트링을 상기 제2 격자 내의 제3 에지와 관련시키는 단계와; 그리고
상기 컴퓨팅 디바이스에 의해, 상기 제2 언어의 단어를 고려하여 상기 제3 후보 문자 스트링의 확률을 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제15항에 있어서,
상기 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시는 연속적인 제스쳐 입력을 더 포함하고, 상기 방법은:
상기 컴퓨팅 디바이스에 의해 그리고 상기 적어도 하나의 제스쳐의 표시를 수신함에 응답하여, 키들의 그룹에 적어도 부분적으로 근거하여 후보 문자 스트링을 결정하는 단계 - 상기 결정은 상기 컴퓨팅 디바이스에 의해, 상기 제스쳐가 횡단하는 정렬 포인트들의 그룹을 결정하는 것과, 상기 컴퓨팅 디바이스에 의해, 상기 복수의 키들 중 적어도 두 개의 키들 각각에 대해 각각의 코스트 값들을 결정하는 것을 포함하고, 상기 각각의 코스트 값들 각각은 상기 정렬 포인트들의 그룹 중의 정렬 포인트가 상기 복수의 키들 중의 키를 나타낼 확률을 표시함 - 와; 그리고
키들의 조합의 코스트 값이 임계를 만족함을 결정함에 응답하여, 상기 컴퓨팅 디바이스에 의해, 후보 문자 스트링을 상기 제1 격자의 에지와 관련시키는 단계를 더 포함하고, 상기 후보 문자 스트링은 상기 키들의 조합과 관련된 문자들을 포함하는 것을 특징으로 하는 방법. - 제15항에 있어서,
상기 컴퓨팅 디바이스에 의해, 프레즌스-감응형 입력 디바이스에서 검출되는 적어도 하나의 제스쳐의 표시를 수신함에 응답하여 복수의 문자들을 결정하는 단계와;
상기 컴퓨팅 디바이스에 의해, 상기 복수의 문자들 사이의 적어도 하나의 경계를 결정하는 단계 - 상기 적어도 하나의 경계는 제1 후보 문자 스트링에 대응하는 상기 복수의 문자들 내의 문자들의 제1 그룹 및 제2 후보 문자 스트링에 대응하는 상기 복수의 문자들 내의 문자들의 제2 그룹을 나타냄 - 와;
상기 컴퓨팅 디바이스에 의해, 상기 제1 후보 문자 스트링과 관련된 제1 에지를 제1 격자에 생성하는 단계 - 상기 제1 에지는 제1 꼭지점으로부터 비롯되고 제2 꼭지점에서 종료됨 - 와;
상기 컴퓨팅 디바이스에 의해, 상기 제2 후보 문자 스트링과 관련된 제2 에지를 제1 격자에 생성하는 단계 - 상기 제2 에지는 제2 꼭지점으로부터 비롯되고 제3 꼭지점에서 종료됨 - 와; 그리고
상기 컴퓨팅 디바이스에 의해, 상기 제2 언어의 단어를 고려하여 상기 제1 후보 문자 스트링 및 제2 후보 문자 스트링의 확률을 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/072755 WO2014139173A1 (en) | 2013-03-15 | 2013-03-15 | Virtual keyboard input for international languages |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150131299A KR20150131299A (ko) | 2015-11-24 |
KR102078785B1 true KR102078785B1 (ko) | 2020-02-19 |
Family
ID=51535850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157029527A KR102078785B1 (ko) | 2013-03-15 | 2013-03-15 | 세계어들을 위한 가상 키보드 입력 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10073536B2 (ko) |
JP (1) | JP6151381B2 (ko) |
KR (1) | KR102078785B1 (ko) |
CN (1) | CN105431809B (ko) |
WO (1) | WO2014139173A1 (ko) |
Families Citing this family (151)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677377B2 (en) | 2005-09-08 | 2014-03-18 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US10002189B2 (en) | 2007-12-20 | 2018-06-19 | Apple Inc. | Method and apparatus for searching using an active ontology |
US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
US8996376B2 (en) | 2008-04-05 | 2015-03-31 | Apple Inc. | Intelligent text-to-speech conversion |
US20100030549A1 (en) | 2008-07-31 | 2010-02-04 | Lee Michael M | Mobile device having human language translation capability with positional feedback |
US8676904B2 (en) | 2008-10-02 | 2014-03-18 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US10241752B2 (en) | 2011-09-30 | 2019-03-26 | Apple Inc. | Interface for a virtual digital assistant |
US20120309363A1 (en) | 2011-06-03 | 2012-12-06 | Apple Inc. | Triggering notifications associated with tasks items that represent tasks to perform |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US8682667B2 (en) | 2010-02-25 | 2014-03-25 | Apple Inc. | User profiling for selecting user specific voice input processing information |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
US10417037B2 (en) | 2012-05-15 | 2019-09-17 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
US9721563B2 (en) | 2012-06-08 | 2017-08-01 | Apple Inc. | Name recognition system |
CN103677299A (zh) * | 2012-09-12 | 2014-03-26 | 深圳市世纪光速信息技术有限公司 | 一种在输入法中实现智能联想的方法、装置及终端设备 |
US9547647B2 (en) | 2012-09-19 | 2017-01-17 | Apple Inc. | Voice-based media searching |
CN104969289B (zh) | 2013-02-07 | 2021-05-28 | 苹果公司 | 数字助理的语音触发器 |
US10652394B2 (en) | 2013-03-14 | 2020-05-12 | Apple Inc. | System and method for processing voicemail |
US10748529B1 (en) | 2013-03-15 | 2020-08-18 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
WO2014197334A2 (en) | 2013-06-07 | 2014-12-11 | Apple Inc. | System and method for user-specified pronunciation of words for speech synthesis and recognition |
WO2014197335A1 (en) | 2013-06-08 | 2014-12-11 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US9465985B2 (en) | 2013-06-09 | 2016-10-11 | Apple Inc. | Managing real-time handwriting recognition |
EP3937002A1 (en) | 2013-06-09 | 2022-01-12 | Apple Inc. | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
WO2015020942A1 (en) | 2013-08-06 | 2015-02-12 | Apple Inc. | Auto-activating smart responses based on activities from remote devices |
US10928924B2 (en) * | 2013-11-26 | 2021-02-23 | Lenovo (Singapore) Pte. Ltd. | Typing feedback derived from sensor information |
US10296160B2 (en) | 2013-12-06 | 2019-05-21 | Apple Inc. | Method for extracting salient dialog usage from live data |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US9785630B2 (en) * | 2014-05-30 | 2017-10-10 | Apple Inc. | Text prediction using combined word N-gram and unigram language models |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
WO2015184186A1 (en) | 2014-05-30 | 2015-12-03 | Apple Inc. | Multi-command single utterance input method |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
US10152299B2 (en) | 2015-03-06 | 2018-12-11 | Apple Inc. | Reducing response latency of intelligent automated assistants |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US10460227B2 (en) | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US10200824B2 (en) | 2015-05-27 | 2019-02-05 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
US10009341B1 (en) * | 2015-05-27 | 2018-06-26 | Assa Abloy Ab | External keyboard with OTP capability |
US9578173B2 (en) | 2015-06-05 | 2017-02-21 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US20160378747A1 (en) | 2015-06-29 | 2016-12-29 | Apple Inc. | Virtual assistant for media playback |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10740384B2 (en) | 2015-09-08 | 2020-08-11 | Apple Inc. | Intelligent automated assistant for media search and playback |
US10331312B2 (en) | 2015-09-08 | 2019-06-25 | Apple Inc. | Intelligent automated assistant in a media environment |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10956666B2 (en) | 2015-11-09 | 2021-03-23 | Apple Inc. | Unconventional virtual assistant interactions |
US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
EP4116801B1 (en) * | 2016-03-25 | 2024-07-24 | Huawei Technologies Co., Ltd. | Character input method and apparatus, and terminal |
US10146764B2 (en) * | 2016-04-04 | 2018-12-04 | Google Llc | Dynamic key mapping of a graphical keyboard |
US20170336969A1 (en) * | 2016-05-17 | 2017-11-23 | Google Inc. | Predicting next letters and displaying them within keys of a graphical keyboard |
US11227589B2 (en) | 2016-06-06 | 2022-01-18 | Apple Inc. | Intelligent list reading |
US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
US10067938B2 (en) | 2016-06-10 | 2018-09-04 | Apple Inc. | Multilingual word prediction |
US10509862B2 (en) * | 2016-06-10 | 2019-12-17 | Apple Inc. | Dynamic phrase expansion of language input |
US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
DK179329B1 (en) | 2016-06-12 | 2018-05-07 | Apple Inc | Handwriting keyboard for monitors |
US20180039608A1 (en) * | 2016-08-03 | 2018-02-08 | Google Inc. | Correction of previously received textual messages based on one or more later received textual messages |
US10474753B2 (en) | 2016-09-07 | 2019-11-12 | Apple Inc. | Language identification using recurrent neural networks |
CN107817942B (zh) * | 2016-09-14 | 2021-08-20 | 北京搜狗科技发展有限公司 | 一种滑行输入方法、***和一种用于滑行输入的装置 |
KR101791929B1 (ko) * | 2016-09-23 | 2017-10-31 | (주)신성이노테크 | 다개국어 문자 입력장치 |
US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
US10884610B2 (en) | 2016-11-04 | 2021-01-05 | Myscript | System and method for recognizing handwritten stroke input |
US11281993B2 (en) | 2016-12-05 | 2022-03-22 | Apple Inc. | Model and ensemble compression for metric learning |
US10546063B2 (en) * | 2016-12-13 | 2020-01-28 | International Business Machines Corporation | Processing of string inputs utilizing machine learning |
US10061435B2 (en) * | 2016-12-16 | 2018-08-28 | Nanning Fugui Precision Industrial Co., Ltd. | Handheld device with one-handed input and input method |
US10593346B2 (en) | 2016-12-22 | 2020-03-17 | Apple Inc. | Rank-reduced token representation for automatic speech recognition |
US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
US10318632B2 (en) | 2017-03-14 | 2019-06-11 | Microsoft Technology Licensing, Llc | Multi-lingual data input system |
CN107145242B (zh) * | 2017-03-24 | 2020-09-29 | 北京百度网讯科技有限公司 | 纠错词展示方法、装置、设备及存储介质 |
DK201770383A1 (en) | 2017-05-09 | 2018-12-14 | Apple Inc. | USER INTERFACE FOR CORRECTING RECOGNITION ERRORS |
US10417266B2 (en) | 2017-05-09 | 2019-09-17 | Apple Inc. | Context-aware ranking of intelligent response suggestions |
DK201770439A1 (en) | 2017-05-11 | 2018-12-13 | Apple Inc. | Offline personal assistant |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
US10395654B2 (en) | 2017-05-11 | 2019-08-27 | Apple Inc. | Text normalization based on a data-driven learning network |
DK180048B1 (en) | 2017-05-11 | 2020-02-04 | Apple Inc. | MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION |
DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
US11301477B2 (en) | 2017-05-12 | 2022-04-12 | Apple Inc. | Feedback analysis of a digital assistant |
DK201770429A1 (en) | 2017-05-12 | 2018-12-14 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
DK201770432A1 (en) | 2017-05-15 | 2018-12-21 | Apple Inc. | Hierarchical belief states for digital assistants |
DK201770431A1 (en) | 2017-05-15 | 2018-12-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
DK201770411A1 (en) | 2017-05-15 | 2018-12-20 | Apple Inc. | MULTI-MODAL INTERFACES |
US20180336275A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Intelligent automated assistant for media exploration |
US20180336892A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Detecting a trigger of a digital assistant |
DK179560B1 (en) | 2017-05-16 | 2019-02-18 | Apple Inc. | FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES |
US10311144B2 (en) | 2017-05-16 | 2019-06-04 | Apple Inc. | Emoji word sense disambiguation |
US10403278B2 (en) | 2017-05-16 | 2019-09-03 | Apple Inc. | Methods and systems for phonetic matching in digital assistant services |
US10324537B2 (en) * | 2017-05-31 | 2019-06-18 | John Park | Multi-language keyboard system |
US10657328B2 (en) | 2017-06-02 | 2020-05-19 | Apple Inc. | Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling |
US10445429B2 (en) | 2017-09-21 | 2019-10-15 | Apple Inc. | Natural language understanding using vocabularies with compressed serialized tries |
US10755051B2 (en) | 2017-09-29 | 2020-08-25 | Apple Inc. | Rule-based natural language processing |
US10636424B2 (en) | 2017-11-30 | 2020-04-28 | Apple Inc. | Multi-turn canned dialog |
US10733982B2 (en) | 2018-01-08 | 2020-08-04 | Apple Inc. | Multi-directional dialog |
US10733375B2 (en) | 2018-01-31 | 2020-08-04 | Apple Inc. | Knowledge-based framework for improving natural language understanding |
US10789959B2 (en) | 2018-03-02 | 2020-09-29 | Apple Inc. | Training speaker recognition models for digital assistants |
US10592604B2 (en) | 2018-03-12 | 2020-03-17 | Apple Inc. | Inverse text normalization for automatic speech recognition |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US10909331B2 (en) | 2018-03-30 | 2021-02-02 | Apple Inc. | Implicit identification of translation payload with neural machine translation |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
US10984780B2 (en) | 2018-05-21 | 2021-04-20 | Apple Inc. | Global semantic word embeddings using bi-directional recurrent neural networks |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
DK179822B1 (da) | 2018-06-01 | 2019-07-12 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US11386266B2 (en) | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
DK201870355A1 (en) | 2018-06-01 | 2019-12-16 | Apple Inc. | VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS |
US10944859B2 (en) | 2018-06-03 | 2021-03-09 | Apple Inc. | Accelerated task performance |
CN110888577B (zh) * | 2018-09-10 | 2021-09-28 | 百度在线网络技术(北京)有限公司 | 字符纠正方法、装置、设备以及存储介质 |
US11010561B2 (en) | 2018-09-27 | 2021-05-18 | Apple Inc. | Sentiment prediction from textual data |
US10839159B2 (en) | 2018-09-28 | 2020-11-17 | Apple Inc. | Named entity normalization in a spoken dialog system |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US11170166B2 (en) | 2018-09-28 | 2021-11-09 | Apple Inc. | Neural typographical error modeling via generative adversarial networks |
US11475898B2 (en) | 2018-10-26 | 2022-10-18 | Apple Inc. | Low-latency multi-speaker speech recognition |
WO2020087769A1 (zh) * | 2018-11-03 | 2020-05-07 | 宗刚 | 一种拼音文字输入法 |
US11638059B2 (en) | 2019-01-04 | 2023-04-25 | Apple Inc. | Content playback on multiple devices |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
US11475884B2 (en) | 2019-05-06 | 2022-10-18 | Apple Inc. | Reducing digital assistant latency when a language is incorrectly determined |
DK201970509A1 (en) | 2019-05-06 | 2021-01-15 | Apple Inc | Spoken notifications |
US11423908B2 (en) | 2019-05-06 | 2022-08-23 | Apple Inc. | Interpreting spoken requests |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
DK180129B1 (en) | 2019-05-31 | 2020-06-02 | Apple Inc. | USER ACTIVITY SHORTCUT SUGGESTIONS |
DK201970510A1 (en) | 2019-05-31 | 2021-02-11 | Apple Inc | Voice identification in digital assistant systems |
US11289073B2 (en) | 2019-05-31 | 2022-03-29 | Apple Inc. | Device text to speech |
US11496600B2 (en) | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
US11360641B2 (en) | 2019-06-01 | 2022-06-14 | Apple Inc. | Increasing the relevance of new available information |
US11227599B2 (en) | 2019-06-01 | 2022-01-18 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11194467B2 (en) | 2019-06-01 | 2021-12-07 | Apple Inc. | Keyboard management user interfaces |
US11488406B2 (en) | 2019-09-25 | 2022-11-01 | Apple Inc. | Text detection using global geometry estimators |
US11061543B1 (en) | 2020-05-11 | 2021-07-13 | Apple Inc. | Providing relevant data items based on context |
US11183193B1 (en) | 2020-05-11 | 2021-11-23 | Apple Inc. | Digital assistant hardware abstraction |
US11490204B2 (en) | 2020-07-20 | 2022-11-01 | Apple Inc. | Multi-device audio adjustment coordination |
US11438683B2 (en) | 2020-07-21 | 2022-09-06 | Apple Inc. | User identification using headphones |
CN113743409A (zh) * | 2020-08-28 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种文本识别方法和装置 |
US11347323B2 (en) * | 2021-06-10 | 2022-05-31 | Baidu International Technology (Shenzhen) Co., Ltd. | Method for determining target key in virtual keyboard |
US20230206669A1 (en) * | 2021-12-28 | 2023-06-29 | Snap Inc. | On-device two step approximate string matching |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120310626A1 (en) * | 2011-06-03 | 2012-12-06 | Yasuo Kida | Autocorrecting language input for virtual keyboards |
JP2012248153A (ja) * | 2011-05-31 | 2012-12-13 | Kddi Corp | 文字入力装置およびプログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10275046A (ja) * | 1997-03-31 | 1998-10-13 | Toshiba Corp | 単語入力装置及び方法 |
US7098896B2 (en) | 2003-01-16 | 2006-08-29 | Forword Input Inc. | System and method for continuous stroke word-based text input |
US7957955B2 (en) | 2007-01-05 | 2011-06-07 | Apple Inc. | Method and system for providing word recommendations for text input |
US20110063231A1 (en) * | 2009-09-14 | 2011-03-17 | Invotek, Inc. | Method and Device for Data Input |
CN101667099B (zh) | 2009-10-16 | 2016-04-06 | 神形互联有限公司 | 一种连笔键盘文字输入的方法和设备 |
CN101719022A (zh) * | 2010-01-05 | 2010-06-02 | 汉王科技股份有限公司 | 用于全功能键盘的字符输入方法及其处理装置 |
GB201200643D0 (en) * | 2012-01-16 | 2012-02-29 | Touchtype Ltd | System and method for inputting text |
US9262076B2 (en) * | 2011-09-12 | 2016-02-16 | Microsoft Technology Licensing, Llc | Soft keyboard interface |
-
2013
- 2013-03-15 CN CN201380076553.9A patent/CN105431809B/zh active Active
- 2013-03-15 US US14/775,978 patent/US10073536B2/en active Active
- 2013-03-15 WO PCT/CN2013/072755 patent/WO2014139173A1/en active Application Filing
- 2013-03-15 JP JP2015561894A patent/JP6151381B2/ja active Active
- 2013-03-15 KR KR1020157029527A patent/KR102078785B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012248153A (ja) * | 2011-05-31 | 2012-12-13 | Kddi Corp | 文字入力装置およびプログラム |
US20120310626A1 (en) * | 2011-06-03 | 2012-12-06 | Yasuo Kida | Autocorrecting language input for virtual keyboards |
Also Published As
Publication number | Publication date |
---|---|
US10073536B2 (en) | 2018-09-11 |
WO2014139173A1 (en) | 2014-09-18 |
JP6151381B2 (ja) | 2017-06-21 |
US20160026258A1 (en) | 2016-01-28 |
CN105431809B (zh) | 2018-12-18 |
JP2016509456A (ja) | 2016-03-24 |
CN105431809A (zh) | 2016-03-23 |
KR20150131299A (ko) | 2015-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102078785B1 (ko) | 세계어들을 위한 가상 키보드 입력 | |
US10241673B2 (en) | Alternative hypothesis error correction for gesture typing | |
US11379663B2 (en) | Multi-gesture text input prediction | |
US10489508B2 (en) | Incremental multi-word recognition | |
US9122376B1 (en) | System for improving autocompletion of text input | |
EP2909703B1 (en) | Feature-based autocorrection | |
AU2014212844B2 (en) | Character and word level language models for out-of-vocabulary text input | |
KR101484583B1 (ko) | 대체 점수를 사용하여 사전-내에-없는 문자열들의 제스처 키보드 입력 | |
EP3382525A1 (en) | Gesture keyboard input of non-dictionary character strings | |
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 |