KR101345320B1 - 예측 가상 키보드 - Google Patents
예측 가상 키보드 Download PDFInfo
- Publication number
- KR101345320B1 KR101345320B1 KR1020130058488A KR20130058488A KR101345320B1 KR 101345320 B1 KR101345320 B1 KR 101345320B1 KR 1020130058488 A KR1020130058488 A KR 1020130058488A KR 20130058488 A KR20130058488 A KR 20130058488A KR 101345320 B1 KR101345320 B1 KR 101345320B1
- Authority
- KR
- South Korea
- Prior art keywords
- contacts
- virtual
- sensitive display
- representation
- contact
- 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/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/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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
일반적으로, 본 개시내용의 실시형태들은 터치 감지 디스플레이 상의 가상 키보드를 사용하는 텍스트 입력에 대해서 예측 텍스트 정정 및 완성을 위한 기법에 관한 것이다. 사용자는 가상 키보드에 포함된 가상 키들의 표현들에 콘택함으로써 터치 감지 디스플레이 상에 디스플레이되는 가상 키보드의 표현 상에서 타이핑을 할 수 있고, 그리고 사용자가 가상 키보드 상에서 타이핑하려는 단어가, 사용자에 의해 실제로 콘택된 가상 키들과 관련된 문자들을 대신하여, 예측 및 디스플레이될 수 있다. 본 개시내용의 일부 예들에서, 가상 키보드에 포함된 가상 스페이스바 키는, 터치 감지 디스플레이에 의해 수신된 콘택이 자동정정 혹은 자동완성 기능을 수행하도록 가상 스페이스바 키를 선택하려는 것인지 여부를 결정하기 위해 확률적으로 다루어질 수 있다.
Description
사용자들은 스크린 표면 상에 키(key)들의 표현(representation)을 투사(project)하는 가상 키보드(virtual keyboard)를 사용하여 스크린 상에 정보를 입력할 수 있다. 컴퓨팅 디바이스(computing device)의 터치 감지 디스플레이(touch-sensitive display)에 디스플레이되는 가상 키보드 상에서의 타이핑(typing)은, 예를 들어, 가상 키보드에 포함된 가상 키(virtual key)들의 협소한 크기 및 간격으로 인해, 뿐만 아니라 가상 키보드에 의해 제공되는 촉각적 느낌 혹은 피드백의 부족으로 인해, 많은 사용자들에 대해서 느리고 오류가 발생하기 쉬운 경험을 겪게 할 수 있다. 사용자와 가상 키보드와의 상호작용을 더 잘 해석하는 방법은, 사용자와 키보드없는 디바이스(keyboard-less devices)와의 상호작용을 가능하게 한다.
일 실시형태에서, 본 개시내용은 방법에 관한 것이다. 이 방법은, 컴퓨팅 디바이스의 터치 감지 디스플레이에서, 복수의 가상 키들을 포함하는 가상 키보드의 표현을 디스플레이하는 단계를 포함할 수 있다. 이 방법은 또한, 터치 감지 디스플레이에서, 가상 키보드의 표현과 관련된 터치 감지 디스플레이의 일부분 내에서 복수의 콘택(contact)들을 검출하는 단계를 포함할 수 있다. 이 방법은 또한, 복수의 콘택들을 검출한 이후, 터치 감지 디스플레이에 의해, 가상 키보드의 표현과 관련된 터치 감지 디스플레이의 일부분 내에서 후속 콘택(subsequent contact)을 검출하는 단계를 포함할 수 있다. 이 방법은 또한, 복수의 콘택들에 근거하여 하나 이상의 후보 단어(candidate word)들을 결정하는 단계를 포함할 수 있고, 여기서 하나 이상의 후보 단어들 각각은, 적어도 복수의 콘택들에 포함된 콘택들의 양(quantity)만큼의 문자(character)들을 포함한다. 이 방법은 또한, 후속 콘택이 특정 가상 키와 관련된 터치 감지 디스플레이의 영역 내의 터치 감지 디스플레이 상의 위치에서 검출되었는지에 적어도 부분적으로 근거하여 후속 콘택이 특정 가상 키를 선택하려는 것인지를 결정하는 단계를 포함할 수 있는바, 여기서, 상기 영역은 상기 특정 가상 키의 표현의 적어도 일부분과 중첩(overlapping)되며, 상기 영역은 또한, 상기 특정 가상 키의 표현 바깥쪽에 있는 가상 키보드의 표현의 적어도 일부분을 포함하고, 만약 하나 이상의 후보 단어들에서의 최상위 후보 단어가 복수의 콘택들에 포함된 콘택들의 양보다 더 많은 수의 문자들을 갖는다면 상기 영역은 제 1 영역이 되고, 그리고 만약 최상위 후보 단어가 복수의 콘택들에서의 콘택들의 양과 동일한 수의 문자들을 갖는다면 상기 영역은 제 1 영역과는 다른 제 2 영역이 된다. 이 방법은 또한, 후속 콘택이 상기 특정 가상 키를 선택하려는 것이라는 결정에 응답하여, 최상위 후보 단어를 터치 감지 디스플레이에서 디스플레이되는 텍스트 영역(text area)에 입력하는 단계를 포함할 수 있다.
또 다른 실시형태에서, 본 개시내용은 컴퓨팅 디바이스에 관한 것이다. 컴퓨팅 디바이스는 하나 이상의 프로세서들을 포함할 수 있다. 컴퓨팅 디바이스는 또한, 터치 감지 디스플레이를 포함할 수 있는바, 터치 감지 디스플레이는, 복수의 가상 키들을 포함하는 가상 키보드의 표현을 디스플레이하는 것과, 가상 키보드의 표현과 관련된 터치 감지 디스플레이의 일부분 내에서 복수의 콘택들을 검출하는 것과, 그리고 복수의 콘택들을 검출한 이후, 가상 키보드의 표현과 관련된 터치 감지 디스플레이의 일부분 내에서 후속 콘택을 검출하는 것을 수행하도록 구성된다. 컴퓨팅 디바이스는 또한, 하나 이상의 프로세서들 상에서 동작가능한 입력 모듈(input module)을 포함할 수 있는바, 입력 모듈은, 후속 콘택이 가상 스페이스바 키와 관련된 터치 감지 디스플레이의 영역 내의 터치 감지 디스플레이 상의 위치에서 검출되었는지에 적어도 부분적으로 근거하여 후속 콘택이 가상 스페이스바 키를 선택하려는 것인지를 결정하는 것을 수행하도록 구성되고, 여기서, 상기 영역은 가상 스페이스바 키의 표현의 적어도 일부분과 중첩되며, 상기 영역은 또한, 가상 스페이스바 키의 표현 바깥쪽에 있는 가상 키보드의 표현의 적어도 일부분을 포함하고, 만약 하나 이상의 후보 단어들에서의 최상위 후보 단어가 복수의 콘택들에 포함된 콘택들의 양보다 더 많은 수의 문자들을 갖는다면 상기 영역은 제 1 영역이 되고, 그리고 만약 최상위 후보 단어가 복수의 콘택들에서의 콘택들의 양과 동일한 수의 문자들을 갖는다면 상기 영역은 제 1 영역보다 큰 제 2 영역이 되며, 그리고 상기 입력 모듈은, 후속 콘택이 특정 가상 키를 선택하려는 것이라는 결정에 응답하여, 최상위 후보 단어를 터치 감지 디스플레이에서 디스플레이되는 텍스트 영역에 입력하는 것을 수행하도록 구성된다.
또 다른 실시형태에서, 본 개시내용은 명령들을 포함하는 컴퓨터 판독가능 매체에 관한 것이다. 명령들은 적어도 하나의 프로그래밍가능 프로세서에 의해 실행될 때 적어도 하나의 프로그래밍가능 프로세서로 하여금 동작들을 수행하도록 한다. 이러한 동작들은, 컴퓨팅 디바이스의 터치 감지 디스플레이에서, 복수의 가상 키들을 포함하는 가상 키보드의 표현을 디스플레이하는 동작을 포함할 수 있다. 이러한 동작들은 또한, 터치 감지 디스플레이에서, 가상 키보드의 표현과 관련된 터치 감지 디스플레이의 일부분 내에서 복수의 콘택들을 검출하는 동작을 포함할 수 있다. 이러한 동작들은 또한, 복수의 콘택들을 검출한 이후, 터치 감지 디스플레이에 의해, 가상 키보드의 표현과 관련된 터치 감지 디스플레이의 일부분 내에서 후속 콘택을 검출하는 동작을 포함할 수 있다. 이러한 동작들은 또한, 복수의 콘택들에 근거하여 하나 이상의 후보 단어들을 결정하는 동작을 포함할 수 있고, 여기서 하나 이상의 후보 단어들 각각은, 적어도 복수의 콘택들에 포함된 콘택들의 양만큼의 문자들을 포함한다. 이러한 동작들은 또한, 후속 콘택이 가상 스페이스바 키와 관련된 터치 감지 디스플레이의 영역 내의 터치 감지 디스플레이 상의 위치에서 검출되었는지에 적어도 부분적으로 근거하여 후속 콘택이 가상 스페이스바 키를 선택하려는 것인지를 결정하는 동작을 포함할 수 있고, 여기서, 상기 영역은 가상 스페이스바 키의 표현의 적어도 일부분과 중첩되며, 상기 영역은 또한, 가상 스페이스바 키의 표현 바깥쪽에 있는 가상 키보드의 표현의 적어도 일부분을 포함한다. 이러한 동작들은 또한, 후속 콘택이 특정 가상 키를 선택하려는 것이라는 결정에 응답하여, 최상위 후보 단어를 터치 감지 디스플레이에서 디스플레이되는 텍스트 영역에 입력하는 동작을 포함할 수 있다.
또 다른 실시형태에서, 본 개시내용은 방법에 관한 것이다. 이 방법은 가상 키보드 상에서의 사용자에 의한 콘택들의 시퀀스(sequence)에 대한 정보를 수신하는 단계를 포함할 수 있고, 여기서 시퀀스는 예측 단어(predicted word) 및 예측 단어에 대한 확률과 관련되어 있고, 콘택들의 시퀀스는 단어의 입력을 위해 상기 사용자에 의해 행해진 콘택들에 대응한다. 이 방법은 또한, 콘택들의 시퀀스에서의 추가 콘택에 대한 정보를 수신하는 단계를 포함할 수 있다. 이 방법은 또한, 추가 콘택을, (i) 콘택들의 시퀀스에서의 콘택들의 수와 동일한 수의 문자들을 갖는 예측 단어의 사용자 선택, 혹은 (ii) 콘택들의 시퀀스에서의 콘택들의 수보다 많은 수의 문자들을 갖는 예측 단어의 사용자 선택, 혹은 (iii) 비공백 문자(non-space character)의 사용자 입력으로서 해석하기 위해 추가 콘택의 공간 위치(spatial location)에 대한 정보 및 예측 단어에 대한 정보를 설명하는 확률 모델(probabilistic model)을 적용하는 단계를 포함할 수 있다. 이 방법은 또한, 확률 모델에 의한 추가 콘택의 해석에 근거하여 입력 버퍼를 업데이트하는 단계를 포함할 수 있다.
본 개시내용의 하나 이상의 실시형태들에 관한 세부사항들은 첨부되는 도면 및 하기의 설명에서 제시된다. 본 개시내용의 다른 특징, 목적, 및 장점은 이러한 설명 및 도면, 그리고 특허청구범위로부터 명백하게 될 것이다.
도 1은 본 개시내용의 하나 이상의 실시형태에 따른, 하나 이상의 애플리케이션들을 실행하도록 구성된 컴퓨팅 디바이스의 예를 나타낸 블록도이다.
도 2는 본 개시내용의 하나 이상의 실시형태에 따른, 하나 이상의 애플리케이션들을 실행하도록 구성된 컴퓨팅 디바이스의 예를 나타낸 블록도이다.
도 3은 본 개시내용의 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스의 일 예의 다른 세부사항들을 나타낸 블록도이다.
도 4는 본 개시내용의 하나 이상의 실시형태에 따른, 터치 감지 디스플레이 상의 가상 키보드를 사용하는 텍스트 입력에 대해서 예측 텍스트 정정 및 완성을 위한 프로세스의 예시적 동작을 나타낸 흐름도이다.
도 5는 본 개시내용의 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스의 일 예의 다른 세부사항들을 나타낸 블록도이다.
도 6은 본 개시내용의 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스의 일 예의 다른 세부사항들을 나타낸 블록도이다.
도 7은 본 개시내용의 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스의 일 예의 다른 세부사항들을 나타낸 블록도이다.
도 8은 본 개시내용의 하나 이상의 실시형태에 따른, 터치 감지 디스플레이 상의 가상 키보드들을 사용하는 텍스트 입력에 대해서 예측 텍스트 정정 및 완성을 위한 프로세스의 예시적 동작을 나타낸 흐름도이다.
도 2는 본 개시내용의 하나 이상의 실시형태에 따른, 하나 이상의 애플리케이션들을 실행하도록 구성된 컴퓨팅 디바이스의 예를 나타낸 블록도이다.
도 3은 본 개시내용의 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스의 일 예의 다른 세부사항들을 나타낸 블록도이다.
도 4는 본 개시내용의 하나 이상의 실시형태에 따른, 터치 감지 디스플레이 상의 가상 키보드를 사용하는 텍스트 입력에 대해서 예측 텍스트 정정 및 완성을 위한 프로세스의 예시적 동작을 나타낸 흐름도이다.
도 5는 본 개시내용의 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스의 일 예의 다른 세부사항들을 나타낸 블록도이다.
도 6은 본 개시내용의 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스의 일 예의 다른 세부사항들을 나타낸 블록도이다.
도 7은 본 개시내용의 하나 이상의 실시형태에 따른, 컴퓨팅 디바이스의 일 예의 다른 세부사항들을 나타낸 블록도이다.
도 8은 본 개시내용의 하나 이상의 실시형태에 따른, 터치 감지 디스플레이 상의 가상 키보드들을 사용하는 텍스트 입력에 대해서 예측 텍스트 정정 및 완성을 위한 프로세스의 예시적 동작을 나타낸 흐름도이다.
일반적으로, 본 개시내용의 실시형태들은 터치 감지 디스플레이 상의 가상 키보드를 사용하는 텍스트 입력에 대해서 예측 텍스트 정정 및 완성을 위한 기법들에 관한 것이다. 예를 들어, 사용자는 가상 키보드 상의 가상 키들에 콘택함으로써 텍스트 입력을 생성할 수 있다. 본 명세서에서 설명되는 방법들은 사용자가 타이핑하려고 하는 단어를 예측할 수 있다. 예측 단어가 텍스트 입력으로서 사용될 수 있고, 아울러 사용자에 의해 실제로 콘택된 가상 키들과 관련된 문자들 대신에 디스플레이될 수 있다.
전형적으로, 특정 레벨의 오류 허용한계(error tolerance)가 본 명세서에서 설명되는 방법들과 관련된 가상 키보드에 확립될 수 있다. 이러한 오류 허용한계는, 결정적 방식 대신 확률적 방식으로 가상 키보드를 통한 문자의 입력을 다루는 것을 포함할 수 있다. 예를 들어, 사용자에 의해 정확히 콘택된 가상 키의 표현과 관련된 문자를 단순히 출력하는 대신, 컴퓨팅 디바이스는 사용자가 실제로 선택하려고한 문자 혹은 단어를 예측할 수 있고, 이러한 예측을 출력할 수 있다. 이러한 결정은 콘택의 위치, 그리고 콘택과 하나 이상의 가상 키들 간의 거리와 같은 인자들에 근거할 수 있다.
일부 실시예들에서, 본 명세서에서의 방법은 가상 스페이스바 키와 같은 비문자 키(non-character key)의 입력과 관련된 콘택을 평가한다. 일부 실시예들에서, 가상 스페이스바 키는 다음과 같은 기능들 중 하나 이상(예를 들어, 다음과 같은 기능들 모두)을 수행할 수 있다. 가상 스페이스바 키는 예를 들어, 단어의 끝을 시그널링(signaling)하기 위해 콘택될 수 있다. 가상 스페이스바 키는 또한, 예를 들어, 단지 단어의 부분적 일부분만이 타이핑된 이후 단어를 자동완성시키기 위해 콘택될 수 있다. 가상 스페이스바 키는 또한, 예를 들어, 공백 앞의 단어를 자동정정하기 위해 콘택될 수 있다. 단어를 자동완성시키는 것은, 단어의 부분적 일부분을 단어의 부분적 일부분보다 긴 최상위 후보 단어로 교체하는 것을 포함할 수 있다. 단어를 자동정정하는 것은, 해당 단어를 동일 길이를 갖는 최상위 후보 단어로 교체하는 것을 포함할 수 있다. 더욱이, 가상 스페이스바 키에 대한 콘택과 관련된 어떤 콘택들은, 쿼티 키보드(qwerty keyboard) 상에서의 문자들("x" "c" "v" "b" "n" 및 "m")과 같은, 인접 키들과의 콘택들로서 사실상 의도될 수 있다.
문자들의 입력은 전형적으로 확률적 방식으로 다루어져 사용자가 하나 이상의 가상 키들을 잘못 치더라도(예를 들어, 의도했던 가상 키와는 다른 가상 키에 콘택하더라도) 사용자가 입력하려고 했던 문자들이 컴퓨팅 디바이스에 의해 "추측(guess)"될 수 있지만, 역으로, 가상 스페이스바 키의 표현을 선택함으로써 공백 문자를 입력하는 것은 결정적 방식으로 전형적으로 다루어지고, 이에 따라 컴퓨팅 디바이스는, 가상 스페이스바 키의 표현이 사용자에 의해 정확히 콘택된 경우에만, 사용자가 가상 스페이스바 키에 콘택하려고 했는지를 "추측"하지 않고 대신 공백을 출력하게 된다.
본 개시내용의 일부 예들에서, 가상 스페이스바 키는, 터치 감지 디스플레이에 의해 수신된 콘택이 자동정정 혹은 자동완성 기능을 수행하도록 가상 스페이스바 키를 선택하려고 했는지 여부를 결정하기 위해 확률적 방식으로 다루어질 수 있다.
터치 감지 디스플레이에 의해 디스플레이되는 가상 키보드를 통해 콘택들의 시퀀스가 수신됨에 따라, 컴퓨팅 디바이스는 이러한 콘택들에 근거하여 하나 이상의 후보 단어들을 결정할 수 있는바, 이러한 후보 단어들에는 최상위 후보 단어가 포함되고, 최상위 후보 단어는 콘택들 및/또는 다른 콘텍스트 정보(context information)에 근거하여 사용자가 입력하려고 한 단어일 확률이 가장 높은 단어이다.
만약 최상위 후보 단어가 복수의 콘택들에서의 콘택들의 수보다 더 많은 문자들을 갖는다면, 가상 스페이스바 키의 선택은 현재-타이핑된 단어를 자동완성시킬 수 있다. 대신, 만약 최상위 후보 단어가 복수의 콘택들에서의 콘택들의 수와 동일한 수의 문자들을 갖는다면, 가상 스페이스바 키의 선택은 현재-타이핑된 단어를 자동정정할 수 있다. 일반적으로, 사용자가 단어를 완전히 타이핑했다고 생각한 이후 사용자가 가상 스페이스바 키를 의도적으로 선택할 확률이 더 높을 수 있고, 단어를 완전히 타이핑함이 없이 사용자가 가상 스페이스바 키를 선택할 확률은 더 낮을 수 있기 때문에, 최상위 후보 단어가 복수의 콘택들에서의 콘택들의 수보다 더 많은 수의 문자들을 갖는 경우보다, 최상위 후보 단어가 복수의 콘택들에서의 콘택들과 동일한 수의 문자들을 갖는 경우에, 사용자가 가상 스페이스바 키를 선택하려고 했는지 여부를 결정하는 것에 대한 허용한계(tolerance)가 더 클 수 있다.
따라서, 만약 최상위 후보 단어가 복수의 콘택들에서의 콘택들과 동일한 수의 문자들을 갖는다면, 가상 키보드가 복수의 콘택들을 수신한 이후 가상 키보드에 의해 수신된 콘택은, 그 콘택이 가상 스페이스바 키의 표현 내의 위치로부터 제 1 거리 내에서 일어나는 경우 가상 스페이스 키를 선택한 것으로서 고려될 수 있다. 그러나, 만약 최상위 후보 단어가 복수의 콘택들에서의 콘택들의 수보다 많은 수의 문자들을 갖는다면, 복수의 콘택들 이후 수신된 콘택은, 그 콘택이 가상 스페이스바 키의 표현 내의 위치로부터 (제 1 거리보다 더 작은) 제 2 거리 내에서 일어나는 경우 가상 스페이스 키를 선택한 것으로서 고려될 수 있다. 이러한 방식에서는, 가상 스페이스바 키를 선택하는 것이 컴퓨팅 디바이스로 하여금 최상위 후보 단어로 단어를 자동완성시키게 할 경우, 가상 스페이스바 키를 선택하는 것에 대한 허용한계가 더 작다. 가상 스페이스 키 외에도, 단어의 완성을 시그널링하는 것과 관련된 임의의 다른 가상 키들(예를 들어, 마침표 키, 콤마 키, 세미콜론 키, 혹은 콜론 키와 같은 것)이 앞서 설명된 가상 스페이스 키와 유사하게 동작하도록 구성될 수 있다.
도 1은 본 개시내용의 하나 이상의 실시형태에 따른, 하나 이상의 애플리케이션들을 실행하도록 구성된 컴퓨팅 디바이스의 예를 나타낸 블록도이다. 도 1에 제시된 바와 같이, 컴퓨팅 디바이스(100)는 터치 감지 디스플레이(102) 및 애플리케이션(104)을 포함할 수 있다. 사용자(120)는, 텍스트 영역(112)에 텍스트가 입력되도록, 터치 감지 디스플레이(102)에서 디스플레이되는 가상 키보드(116) 상에서 타이핑을 행하기 위해 터치 감지 디스플레이(102)에 콘택할 수 있다. 애플리케이션(104)은 사용자(120)에 의해 행해진 콘택에 근거하여 단어들을 예측할 수 있고, 입력 텍스트(112)를 입력될 확률이 가장 높은 예측 단어로 교체할 수 있다. 애플리케이션(104)은, (언어 모델로서 알려지기도 한) 사용자(120)에 의해 입력된 텍스트에 적어도 부분적으로 근거하여 그리고/또는 (공간 모델로서 알려지기도 한) 사용자(120)에 의한 콘택의 터치 포인트 위치들(touch point locations)에 적어도 부분적으로 근거하여 단어들을 예측할 수 있다.
컴퓨팅 디바이스(100)는, 일부 예들에서, 모바일 컴퓨팅 디바이스(예를 들어, 모바일 폰, 스마트 폰, 넷북, 랩탑, 태블릿 등), 데스크탑 컴퓨터, 서버 시스템 등을 포함할 수 있거나 혹은 그 일부일 수 있다. 컴퓨팅 디바이스(100)는 또한 네트워크 인터페이스(미도시)를 사용하여 유선 혹은 무선 네트워크에 연결될 수 있다. 컴퓨팅 디바이스(100)의 예는 도 3을 참조하여 더 상세히 설명된다.
컴퓨팅 디바이스(100)는 컴퓨팅 디바이스(100)에 의해 수행될 동작들을 특정하는 사용자 입력을 수신하는 하나 이상의 입력 디바이스들을 포함할 수 있다. 터치 감지 디스플레이(102)는, 터치 감지 디스플레이(102) 상의 위치 혹은 터치 감지 디스플레이(102)에 가까운 위치에 대응하는 하나 이상의 신호들을 발생시키는, 컴퓨팅 디바이스(100) 내의 입력 디바이스일 수 있다. 일부 예들에서, 터치 감지 디스플레이(102)는, 입력 유닛의 존재(presence)(예를 들어, 터치 감지 디스플레이(102)에 근접해 있지만 물리적으로는 접촉하고 있지 않은 손가락, 펜(pen), 혹은 스타일러스(stylus)의 존재)를 검출할 수 있다. 따라서, 본 명세서에서 사용되는 바와 같이, 사용자 "콘택(contact)"은 터치 감지 디스플레이(102)에 의해 검출되는 근접(close proximity)을 말할 수 있다. 다른 예들에서, 사용자 "콘택"은, 예를 들어, 터치 감지 스크린의 경우에 있어서, 대응하는 위치를 선택하기 위한 터치 감지 디스플레이(102)와의 물리적 콘택을 포함할 수 있다. 터치 감지 디스플레이(102)는, 일부 예들에서, 입력 유닛의 위치에 대응하는 신호를 발생시킬 수 있다. 대응하는 위치(들)의 선택에 의해 발생된 신호들은 이후 애플리케이션들(예를 들어, 애플리케이션(104)), 그리고 컴퓨팅 디바이스(100)의 다른 컴포넌트들에 데이터로서 제공될 수 있다.
컴퓨팅 디바이스(100)는 또한 사용자(120)에게 콘텐츠를 디스플레이하는 하나 이상의 출력 디바이스들을 포함할 수 있다. 터치 감지 디스플레이(102)는, 컴퓨팅 디바이스(100)로부터의 전자적 시그널링(electronic signaling) 혹은 다른 지시들(directives)에 응답하여 그래픽 콘텐츠를 디스플레이하는, 컴퓨팅 디바이스(100) 내의 출력 디바이스일 수 있다. 그래픽 콘텐츠는, 일반적으로, 터치 감지 디스플레이(102)에서 디스플레이되는 임의의 시각적 묘사(visual depiction)를 포함할 수 있다. 그래픽 콘텐츠의 예들은, 이미지(images), 텍스트(text), 비디오(videos), 시각적 오브젝트(visual objects) 및/또는 시각적 프로그램 컴포넌트(visual program components)(예컨대 스크롤 바(scroll bars), 텍스트 박스(text boxes), 버튼(buttons) 등과 같은 것)를 포함할 수 있다. 애플리케이션(104)은, 예를 들어, 터치 감지 디스플레이(102)로 하여금 그래픽 사용자 인터페이스(GUI)(110)를 디스플레이하도록 지시할 수 있다.
컴퓨팅 디바이스(100) 상에서 실행되는 애플리케이션(104)은, 컴퓨팅 디바이스(100)에 의해 실행가능한 프로그램 명령들 및/또는 데이터를 포함할 수 있다. 애플리케이션(104)의 예들은, 웹 브라우저(web browser), 이메일 애플리케이션(email application), 텍스트 메시징 애플리케이션(text messaging application) 혹은 (사용자 입력을 수신하고 그리고/또는 그래픽 콘텐츠를 디스플레이하는) 임의의 다른 애플리케이션을 포함할 수 있다. 애플리케이션(104)은 GUI(110)로 하여금 터치 감지 디스플레이(102)에서 디스플레이되도록 할 수 있다.
그래픽 사용자 인터페이스(GUI)(110)는, 인간이 판독할 수 있는 형태로 컴퓨팅 디바이스(100)의 정보를 제공하는 상호작용형 및/또는 비상호작용형 그래픽 콘텐츠를 포함할 수 있다. GUI(110)는 사용자(120)로 하여금 터치 감지 디스플레이(102)를 통해 애플리케이션(104)과 상호작용할 수 있게 한다. 이러한 방식에서, GUI(110)는 사용자(120)로 하여금 컴퓨팅 디바이스(100)의 데이터를 생성, 수정 및/또는 삭제할 수 있게 한다. GUI(110)는 터치 감지 디스플레이(102)에서 디스플레이되는 가상 키보드(116)의 표현을 포함할 수 있다. 가상 키보드(116)는 가상 키들을 포함할 수 있고, 사용자(120)는 GUI(110)의 텍스트 영역(112)에 입력이 제공되도록 가상 키보드(116) 상에서의 타이핑을 행하기 위해 터치 감지 디스플레이(102)에 콘택할 수 있다. 텍스트 영역(112)은, 가상 키보드(116)와 관련된 터치 감지 디스플레이(102)의 일부분들 상에서 사용자(120)에 의해 행해진 콘택에 응답하여 애플리케이션(104)에 의해 최근 프로세싱된 텍스트를 디스플레이하도록 구성된 임의의 GUI(110) 요소일 수 있다. 애플리케이션(104)의 입력 모듈(106)은, 디스플레이 모듈(108)로 하여금 텍스트 영역(112) 내에 입력 텍스트를 디스플레이하도록 지시하는 검출된 복수의 콘택들을 프로세싱할 수 있다. 대안적으로, 입력 모듈(106)은 또한, 디스플레이 모듈(108)로 하여금 임의의 다른 텍스트 영역 내에 입력 텍스트를 디스플레이하도록 지시할 수 있다. 일부 예들에서, 텍스트 영역(112)은 입력 버퍼(input buffer)인 것으로 고려될 수 있다.
가상 키보드(116)에서의 가상 키들은, 복수의 문자들과 관련된 복수의 가상 키들을 포함할 수 있고, 뿐만 아니라, 가상 키보드(116)에 의해 디스플레이되는 특정 언어에 따라 해당하는 언어의 단어가 완성되었음 혹은 "종결"되었음을 표시하는 복수의 종결 심볼(대안적으로는 "종결부호")과 관련된 복수의 가상 키들을 포함할 수 있다. 가상 키보드(116)에서의 가상 키들과 관련된 종결부호들은, 마침표(period), 콤마(comma), 공백(space), 콜론(colon), 세미콜론(semi-colon), 괄호(parentheses), 및 따옴표(quotation marks)를 포함할 수 있지만, 이러한 것에만 한정되는 것은 아니다. 종결부호와 관련된 터치 감지 디스플레이(102)에서 디스플레이되는 가상 키에 콘택함으로써, 사용자(120)는 텍스트 영역(112)에서의 디스플레이를 위해 애플리케이션(104)에 종결부호를 입력할 수 있다. 일 예에서, 공백은 가상 키보드(116)의 가상 스페이스바 키(117)와 관련될 수 있고, 가상 키보드(116)에 입력되는 단어들을 종결시키기 위해 사용자(120)에 의해 사용될 수 있다. 가상 키보드(116)는, 다른 예들에서, 임의 언어의 문자, 단어, 및/또는 종결부호와 관련된 가상 키들을 포함할 수 있다.
애플리케이션(104)의 입력 모듈(106)은, 터치 감지 디스플레이(102)에서 검출된 하나 이상의 콘택들을 설명하는, 터치 감지 디스플레이(102)로부터의 데이터를 수신할 수 있는 입력기(Input Method Editor)일 수 있다. 예를 들어, 터치 감지 디스플레이(102)는, 콘택이 검출된 터치 감지 디스플레이(102)의 위치를 나타내는 신호를 발생시킬 수 있고, 그리고 이 신호는 입력 모듈(106)에 전송될 수 있다. 일부 예들에서, 신호는 콘택이 검출된 터치 감지 디스플레이(102)의 위치를 식별하기 위해 터치 감지 디스플레이(102)에 의해 사용된 좌표계에 대응하는 좌표들의 세트를 포함할 수 있다. 일부 예들에서, 터치 감지 디스플레이(102)는 사용자(120)가 콘택을 행하는 과정에서 가해진 압력의 양을 검출하는 압력 감지 스크린을 포함할 수 있다. 이러한 예에서, 신호는 가해진 압력의 양을 설명하는 압력 데이터를 포함할 수 있다. 입력 모듈(106)은 터치 감지 디스플레이(102)에서 검출된 콘택들이 선택한 가상 키보드(116)에서의 하나 이상의 가상 키들을 식별하기 위해 터치 감지 디스플레이(102)로부터 수신된 신호를 프로세싱할 수 있다. 일부 실시형태에서, 입력 모듈(106)은 애플리케이션(104)에 링크되는(혹은 그렇지 않으면 애플리케이션(104)에 의해 실행되는) 가상 키보드 라이브러리(library) 혹은 모듈(module)일 수 있다.
입력 모듈(106)은, 일부 예들에서, 디스플레이 모듈(108)로 하여금 GUI(110)를 업데이트하게 할 수 있는 동작들을 실행할 수 있다. 예를 들어, 입력 모듈(106)이 가상 키보드(116)에서의 가상 키와 관련된 터치 감지 디스플레이(102)의 일부분에서 사용자(120)에 의해 행해진 콘택을 식별하는 경우, 입력 모듈(106)은 디스플레이 모듈(108)로 하여금 가상 키와 관련된 문자를 텍스트 영역(112)에 입력하도록 지시하는 동작을 실행시킬 수 있다.
다음의 표기법은 본 개시내용의 실시형태들을 보다 더 잘 설명하기 위해 본 개시내용 전체에 걸쳐서 사용된다.
[c1 c2 ... cN] - N개의 문자들을 갖는 단어;
[c1 c2 ... cM] - N개의 문자들을 갖는 단어([c1 c2 ... cN])에 대해 입력된 처음 M개의 문자들(여기서 M은 N보다 작음);
[a b c d] - 문자들(a, b, c, 및 d)과 관련된 가상 키들이 차례로 콘택됨;
[a' b' c' d'] - 문자들(a, b, c, 및 d)과 관련된 가상 키들, 즉, 이러한 가상 키들의 부근이 차례로 콘택됨;
sp - 스페이스 키(space key); 그리고
[c1|c2] - 콘택이 문자들(c1과 c2)과 관련된 가상 키들 내, 즉 이들 사이 어딘가에서 검출됨.
도 1에 제시된 바와 같이, 복수의 콘택들(118A-118E)("복수의 콘택들(118)")이, 가상 키보드(116)의 표현과 관련된 터치 감지 디스플레이(110)의 일부분 내에서 검출될 수 있다. 일부 예들에서, 복수의 콘택들(118)을 검출하는 것은, 단어의 입력을 위해 사용자(120)에 의해 행해진 콘택들에 대응하는 가상 키보드(116)의 표현 상에서의 사용자(120)에 의한 콘택들의 시퀀스에 대한 정보를 컴퓨팅 디바이스(100)에 의해 수신하는 것을 포함할 수 있다. 복수의 콘택들(118)은 동시에 일어날 수 없기 때문에, 복수의 콘택들(118)은 콘택들의 시퀀스일 수 있다. 대신에, 복수의 콘택들(118)은 일 콘택 이후 다른 콘택이 일어나는 시퀀스로 일어날 수 있다(예를 들어, 콘택(118A) 이후에 콘택(118B)이, 그 다음에 콘택(118C)이, 그 다음에 콘택(118D)이, 그 다음에 콘택(118E)이 일어날 수 있음). 복수의 콘택들(118)이 사용자(120)에 의해 행해질 수 있는데, 왜냐하면 사용자(120)는, 가상 키보드(116)에서의 가상 키들을 선택하기 위해 가상 키보드(116)의 표현과 관련된 터치 감지 디스플레이(110)의 일부분에 콘택함으로써 텍스트를 텍스트 영역(112)에 입력하려고 하기 때문인바, 이에 따라 복수의 콘택들(118)은 단어의 입력을 위해 사용자에 의해 행해진 콘택들에 대응할 수 있게 된다. 일부 예들에서, 복수의 콘택들(118)은, 이전 단어의 완성 이후 터치 감지 디스플레이(102)에 의해 수신된 콘택들을 포함할 수 있거나, 혹은 입력을 요구받은 사용자(120)로부터 터치 감지 디스플레이(102)에 의해 초기에 수신된 콘택들을 포함할 수 있다. 입력 모듈(106)은, 사용자(120)가 복수의 콘택들(118)을 통해 입력하려고 한 단어일 임계 확률(threshold probability)을 충족시키는, 하나 이상의 후보 단어들을 결정하기 위해 복수의 콘택들(118)을 분석할 수 있다. 입력 모듈(106)은, 하나 이상의 후보 단어들을 결정하기 위해 복수의 콘택들(118)에 언어 모델 혹은 공간 모델을 적용함으로써, 하나 이상의 후보 단어들을 결정할 수 있다. 언어 모델에 근거하여 하나 이상의 후보 단어들을 결정하는 것은, 사용자(120)에 의해 행해진 복수의 콘택들(118)에 의해 지금까지 입력된 텍스트 문자들에 근거하여 하나 이상의 후보 단어들을 결정하는 것을 포함할 수 있거나, 혹은 이것은 또한, 사용자(120)에 의해 행해진 복수의 콘택들(118)에서 이전 콘택들에 근거할 수 있다. 공간 모델에 근거하여 하나 이상의 후보 단어들을 결정하는 것은, 복수의 콘택들(118)의 터치 포인트들의 공간 위치, 그리고 사용자(120)에 의해 행해진 복수의 콘택들(118)의 공간 분포에 근거하여, 하나 이상의 후보 단어들을 결정하는 것을 포함할 수 있다. 일부 예들에서는, 언어 모델과 공간 모델의 조합이 하나 이상의 후보 단어들을 결정하기 위해 사용될 수 있다. 입력 모듈(106)은 콘택들의 시퀀스(예를 들어, 복수의 콘택들(118))를 예측 단어와 관련시킬 수 있고, 그리고 또한, 확률 모델에 근거하여 콘택들의 시퀀스를 예측 단어에 대한 확률과 관련시킬 수 있다.
도 1에 제시된 바와 같이, 콘택(118A)은 임의의 하나의 단일 가상 키 내에 완전히 위치하지 않는다. 오히려, 콘택(118A)은 "j"와 관련된 가상 키와 "k"와 관련된 가상 키 내에 부분적으로 위치하는 것처럼 보인다. 따라서, 콘택(118A)은 앞서 설명된 표기법에 따르면, j' 혹은 k'로서 고려될 수 있는데, 왜냐하면 콘택(118A)은 "j"와 관련된 가상 키의 부근 상에 즉, 부근 내에 있고 아울러 "k"와 관련된 가상 키의 부근 상에 즉, 부근 내에 있지만 "j"와 관련된 가상 키 내에 완전히 위치하지 않으며 또는 "k"와 관련된 가상 키 내에 완전히 위치하지 않기 때문이다.
콘택(118A)이 "j"에 대응하는 가상 키의 부근 상에 즉, 부근 내에 있고, 콘택(118B)이 "a"에 대응하는 가상 키의 부근 상에 즉, 부근 내에 있고, 콘택(118C)이 "c"에 대응하는 가상 키의 부근 상에 즉, 부근 내에 있고, 콘택(118D)이 "o"에 대응하는 가상 키의 부근 상에 즉, 부근 내에 있고, 그리고 콘택(118E)이 "b"에 대응하는 가상 키의 부근 상에 즉, 부근 내에 있기 때문에, 복수의 콘택들(118)에 의해 생성된 입력을 표기하는 한 가지 가능한 방법은 [j' a' c' o' b']일 수 있다.
디스플레이 모듈(108)은, 최근 입력 텍스트에 대해 입력 모듈(106)에 의해 식별된 후보 단어들(124A-124C)("후보 단어들(124)")을 나열하는 제안 메뉴(122)를 제시하기 위해 GUI(110)를 업데이트할 수 있다. 일부 예들에서, 디스플레이 모듈(108)은 후보 단어들(124) 중 가장 확률이 높은 단어만을 제안 메뉴(122)에 제시할 수 있거나, 혹은 그렇지 않다면 더 많은/더 적은 예측들을 제시할 수 있다. 디스플레이 모듈(108)은 각각의 확률 혹은 또 다른 우선순위 배열에 따라 제안 메뉴(122)의 후보 단어들(124)을 배열할 수 있는바, 여기서 후보 단어들(124)은 가장 높은 우선순위로부터 가장 낮은 우선순위로 배열될 수 있다. 일부 예들에서, 사용자(120)는 후보 단어들(124) 중 하나의 단어를 선택하기 위해 제안 메뉴(122)와 관련된 터치 감지 디스플레이(102)의 영역 내에서 탭(tap) 혹은 다른 제스처(gesture)를 수행할 수 있다.
도 1에 제시된 하나의 특정 예에서, 복수의 콘택들(118)에 근거하여, 입력 모듈(106)에 의해 식별된 후보 단어들(124)은, 후보 단어 "Jacob"(124A), 후보 단어 "Jacobs"(124B), 및 후보 단어 "Jacoby"(124C)를 포함할 수 있다. 제안 메뉴(122)는, 후보 단어들(124) 각각이 사용자(120)가 의도한 단어일 확률에 따라, 내림 차순으로 좌측에서 우측으로 후보 단어들(124)을 배열할 수 있다. 따라서, 후보 "Jacob"(124A)이 제안 메뉴(122)의 가장 좌측 부분에 있기 때문에, 후보 단어 "Jacob"(124A)은 복수의 콘택들(118)에 대해 그 의도된 단어일 확률이 가장 높은, 후보 단어들(124)에서의 최상위 후보 단어일 수 있다.
입력 모듈(106)에 의해 결정된 후보 단어들(124) 각각은, 적어도 복수의 콘택들(118)에 포함된 콘택들의 양만큼의 문자들을 포함할 수 있다. 예를 들어, 복수의 콘택들(118)은 5개의 콘택들을 포함하기 때문에, 입력 모듈(106)에 의해 결정된 후보 단어들(124) 각각은 적어도 5개의 문자들을 포함할 수 있다.
복수의 콘택들(118)에 포함된 콘택들의 양(5개)과 동일한 양(5개)의 문자들을 포함하는 후보 단어 "Jacob"(124A)과 같은 그러한 후보 단어에 있어서, 후보 단어 내의 임의 위치에서의 하나 이상의 문자들은 복수의 콘택들(118)에서의 대응하는 위치에서의 콘택에 근거하여 결정될 수 있다. 예를 들어, 후보 단어의 첫 번째 문자는 복수의 콘택들(118)에서의 첫 번째 콘택(예를 들어, 콘택(118A))과 부합할 수 있고, 후보의 두 번째 문자는 복수의 콘택들(118)에서의 두 번째 콘택(예를 들어, 콘택(118B))과 부합할 수 있는, 등등이다. 일부 예들에서 후보 단어의 문자들 각각은 복수의 콘택들(118)에서의 대응하는 위치에서의 콘택에 근거하여 결정될 수 있다.
복수의 후보 단어들(124) 각각에서의 문자들 중 하나 이상의 문자는, 복수의 콘택들(118)에서의 대응하는 콘택의 위치에 적어도 부분적으로 근거하여(여기서, 대응하는 콘택의 위치는 문자에 대응하는 가상 키의 부근 상에, 즉 부근 내에 있게 됨) 입력 모듈(106)에 의해 결정될 수 있다. 복수의 후보 단어들(124) 각각에서의 문자들 중 하나 이상의 문자는 또한, 언어 모델링에 적어도 부분적으로 근거하여, 혹은 복수의 콘택들(118) 중 하나 이상의 콘택의 위치와 언어 모델링의 조합에 적어도 부분적으로 근거하여, 입력 모듈(106)에 의해 결정될 수 있다. 예를 들어, 복수의 후보 단어들(124) 각각에서의 하나 이상의 문자들은 또한, 복수의 콘택들(118)에서의 이전 콘택들 및 이러한 이전 콘택들에 의해 콘택된 가상 키들에 적어도 부분적으로 근거하여, 입력 모듈(106)에 의해 결정될 수 있다.
복수의 콘택들(118)이 검출된 이후, 가상 키보드(116)의 표현과 관련된 터치 감지 디스플레이(110)의 일부분 내에서 후속 콘택(126)이 검출될 수 있다. 일부 예들에서, 후속 콘택(126)을 검출하는 것은 콘택들의 시퀀스에서 추가 콘택에 대한 정보를 수신하는 것을 포함할 수 있다. 입력 모듈(106)은 후속 콘택(126)이 특정 가상 키를 선택하려고 한 것인지를 결정할 수 있다. 일부 예들에서는, 특정 가상 키는, 공백과 관련된 가상 스페이스바 키(117)와 같은, 종결부호와 관련된 가상 키일 수 있다. 다른 예들에서, 특정 가상 키는 전용 가상 키 혹은 다른 GUI 제어일 수 있다. 예시적 목적으로, 특정 가상 키에 관한 이러한 개시내용의 기법들은 특정 가상 키로서 가상 스페이스바 키(117)를 고려하여 본 명세서에서 설명된다. 그러나, 이러한 기법들은 임의의 종결부호와 관련된 가상 키에 적용될 수 있으며, 혹은 임의의 다른 적절한 가상 키에 적용될 수 있다.
후속 콘택(126)이 가상 스페이스바 키(117)의 표현 내에 위치하는지를 결정하는 대신, 후속 콘택(126)이 가상 스페이스바 키(117)를 선택하려는 것인지를 결정함으로써, 가상 스페이스바 키(117)는 결정적 방식이 아닌 확률적 방식으로 다루어질 수 있고, 이에 따라 후속 콘택(126)이 가상 스페이스바 키(117)의 표현 내에 위치하지 않는 경우에도 후속 콘택(126)은 가상 스페이스바 키(117)를 선택하려는 것으로서 결정될 수 있게 된다. 후속 콘택(126)이 가상 스페이스바 키(117)를 선택하려는 것인지를 결정하는 것은, 후속 콘택(126)이 가상 스페이스바 키(117)를 선택하려는 것일 임계 확률을 충족시키거나 초과하는 지를 결정하는 것을 포함할 수 있다.
후속 콘택(126)이 가상 스페이스바 키(117)를 선택하려는 것일 임계 확률을 충족시키거나 초과하는지를 결정하는 것은, 후속 콘택(126)이 검출된 터치 감지 디스플레이(110) 상의 위치에 적어도 부분적으로 근거할 수 있다. 현재 예에서, 가상 스페이스바 키(117)는 특정 가상 키일 수 있다. 터치 감지 디스플레이(110)의 영역은 경계(128)에 의해 구획될 수 있다. 경계(128)에 의해 구획된 영역은 가상 스페이스바 키(117)의 표현의 적어도 일부분과 중첩될 수 있고, 또한, 가상 스페이스바 키(117)의 표현 바깥쪽에 있는 가상 키보드(116)의 표현의 적어도 일부분을 포함할 수 있다. 더욱이, 경계(128)에 의해 구획된 영역은 가상 키보드(116)의 영역보다 더 작을 수 있고, 그리고 경계(128)에 의해 구획된 영역은 GUI(110)에서 가상 키보드(116)의 경계를 넘어 연장하지 않을 수 있다. 만약 후속 콘택(126)이 경계(128)에 의해 구획된 영역 내에 위치한다면, 후속 콘택(126)은 가상 스페이스바 키(117)를 선택하려는 것일 임계 확률을 초과하는 것으로서 결정될 수 있다. 도 1에 제시된 바와 같이, 후속 콘택(126)이 가상 스페이스바 키(117) 내에 위치하지 않을지라도, 후속 콘택(126)은 가상 스페이스바 키(117)를 선택하려는 것으로서 입력 모듈(106)에 의해 또한 결정될 수 있는데, 왜냐하면 후속 콘택(126)이 경계(128)에 의해 구획된 영역 내에 위치하기 때문이다.
후속 콘택(126)이 가상 스페이스바 키(117)와 같은 특정 가상 키를 선택하려는 것일 임계 확률을 충족시키거나 초과하는 지를 결정하는 것은 또한, 후속 콘택(126) 이전에 복수의 콘택들(118)에 의해 입력된 복수의 문자들과 같은 언어 모델에 적어도 부분적으로 근거할 수 있다. 후속 콘택(126)이 가상 스페이스바 키(117)와 같은 특정 가상 키를 선택하려는 것일 임계 확률을 충족시키거나 초과하는 지를 결정하는 것은 또한, 후속 콘택(126)의 위치와 언어 모델의 조합에 근거할 수 있다.
만약 입력 모듈(106)이, 후속 콘택(126)이 특정 가상 키(117)를 선택하려는 것임을 결정한다면, 입력 모듈(106)은 텍스트 영역(112)에 현재 입력된 텍스트가 교체되도록, 하나 이상의 후보 단어들에서 최상위 후보 단어(124A)와 특정 가상 키와 관련된 문자(예를 들어, 공백 문자)가 결합된 것을 텍스트 영역(112)에 입력할 수 있다. 텍스트 영역(112)에 현재 입력된 텍스트는, 일부 예들에서, 복수의 콘택들(118)을 통해 입력된 하나 이상의 문자들일 수 있다. 도 1에 제시된 바와 같이, 단어 "Jacob"과 그 다음의 오는 공백 문자가 텍스트 영역(112)에 입력되게 된다.
일부 예들에서, 입력 모듈(106)은, 추가 콘택을 (i) 예측 단어의 사용자 선택, 혹은 (ii) 공백의 사용자 입력, 혹은 (iii) 비공백 문자(non-space character)의 사용자 입력으로서 해석하기 위해, 추가 콘택(예컨대, 후속 콘택(126))의 공간 위치에 대한 정보 및 예측 단어에 대한 정보를 설명하는 확률 모델(예를 들어, 언어 모델 및/또는 공간 모델)을 적용할 수 있다. 추가 콘택을 해석하는 것은, 추가 콘택의 공간 위치에 적어도 부분적으로 근거할 수 있다. 추가 콘택을 해석하는 것은 또한, 예측 단어에서의 문자들의 수를 평가하는 것에 근거할 수 있다. 입력 모듈(106)은, 확률 모델에 의한 추가 콘택의 해석에 근거하여 입력 버퍼(예컨대, 텍스트 영역(112))를 업데이트할 수 있고, 그리고 업데이트된 입력 버퍼의 적어도 일부분은 터치 감지 디스플레이(102) 상에 디스플레이될 수 있다.
도 2는 본 개시내용의 하나 이상의 실시형태에 따른, 하나 이상의 애플리케이션들을 실행하도록 구성된 (도 1에 제시된 컴퓨팅 디바이스(100)와 같은) 컴퓨팅 디바이스의 예를 나타낸 블록도이다. 도 2에 제시된 바와 같이, 컴퓨팅 디바이스(200)는 터치 감지 디스플레이(202) 및 애플리케이션(204)을 포함할 수 있다.
도 1에 제시된 컴퓨팅 디바이스(100)와 유사하게, 컴퓨팅 디바이스(200)의 터치 감지 디스플레이(202)는 그래픽 사용자 인터페이스(GUI)(210)를 디스플레이할 수 있다. GUI(210)는 터치 감지 디스플레이(202)에서 디스플레이되는 가상 키보드(216)의 표현을 포함할 수 있다. 가상 키보드(216)는 가상 키들을 포함할 수 있고, 사용자(220)는 GUI(210)의 텍스트 영역(212)에 입력이 제공되도록 가상 키보드(216) 상에서의 타이핑을 행하기 위해 터치 감지 디스플레이(202)에 콘택할 수 있다. 텍스트 영역(212)은, 가상 키보드(216)와 관련된 터치 감지 디스플레이(210)의 일부분들 상에서 사용자(220)에 의해 행해진 콘택에 응답하여 애플리케이션(204)에 의해 최근 프로세싱된 텍스트를 디스플레이할 수 있다. 애플리케이션(204)의 입력 모듈(206)은, 디스플레이 모듈(208)로 하여금 텍스트 영역(212) 내에 입력 텍스트를 디스플레이하도록 지시하는 검출된 복수의 콘택들을 프로세싱할 수 있다.
도 2에 제시된 바와 같이, 복수의 콘택들(218A-218G)("복수의 콘택들(218)")이, 가상 키보드(216)의 표현과 관련된 터치 감지 디스플레이(210)의 일부분 내에서 검출될 수 있다. 복수의 콘택들(218)이 사용자(220)에 의해 행해질 수 있는데, 왜냐하면 사용자(220)는, 가상 키보드(216)에서의 가상 키들을 선택하기 위해 가상 키보드(216)의 표현과 관련된 터치 감지 디스플레이(210)의 일부분에 콘택함으로써 텍스트를 텍스트 영역(212)에 입력하려고 하기 때문이다. 입력 모듈(206)은, 사용자(220)가 복수의 콘택들(218)을 통해 입력하려고 한 단어일 임계 확률을 충족시키는, 하나 이상의 후보 단어들을 결정하기 위해 복수의 콘택들(218)을 분석할 수 있다. 도 2에 제시된 바와 같이, 복수의 콘택들(218)은, 일 예에서, [j' a' c' o' b' s' o']로서 표기될 수 있다.
디스플레이 모듈(208)은, 최근 입력 텍스트에 대해 입력 모듈(206)에 의해 식별된 후보 단어들(224A-224C)("후보 단어들(224)")을 나열하는 제안 메뉴(222)를 제시하기 위해 GUI(210)를 업데이트할 수 있다. 일부 예들에서, 디스플레이 모듈(208)은 후보 단어들(224) 중 가장 확률이 높은 단어만을 제안 메뉴(222)에 제시할 수 있거나, 혹은 그렇지 않다면 더 많은/더 적은 예측들을 제시할 수 있다. 디스플레이 모듈(208)은 각각의 확률 혹은 또 다른 우선순위 배열에 따라 제안 메뉴(222)의 후보 단어들(224)을 배열할 수 있는바, 여기서 후보 단어들(224)은 가장 높은 우선순위로부터 가장 낮은 우선순위로 배열될 수 있다. 일부 예들에서, 사용자(120)는 후보 단어들(224) 중 하나의 단어를 선택하기 위해 제안 메뉴(222)와 관련 터치 감지 디스플레이(202)의 영역을 탭(tap)할 수 있다.
도 2에 제시된 일 특정 예에 따르면, 복수의 콘택들(218)에 근거하여, 입력 모듈(206)에 의해 식별된 후보 단어들(224)은, 후보 단어 "Jacobson"(224A), 후보 단어 "Jacobea"(224B), 및 후보 단어 "Jacobin"(224C)를 포함할 수 있다. 제안 메뉴(222)는, 후보 단어들(224) 각각이 사용자(220)가 의도한 단어일 확률에 따라, 내림 차순으로 좌측에서 우측으로 후보 단어들(224)을 배열할 수 있다. 입력 [j' a' c' o' b' s' o']에 대해 그 의도된 단어일 확률이 후보 단어 "Jacobea"(224B) 혹은 후보 단어 "Jacobin"(224C)보다 후보 단어 "Jacobson"(224A)이 더 높기 때문에, 후보 단어 "Jacobson"(224A)은 복수의 콘택들(218)에 대한 후보 단어들(224)에서 최상위 후보 단어일 수 있다.
입력 모듈(206)에 의해 결정된 후보 단어들(224) 각각은, 적어도 복수의 콘택들(218)에 포함된 콘택들의 양만큼의 문자들을 포함할 수 있다. 예를 들어, 복수의 콘택들(218)은 7개의 콘택들을 포함하기 때문에, 입력 모듈(206)에 의해 결정된 후보 단어들(224) 각각은 적어도 7개의 문자들을 포함할 수 있다. 도 2에 제시된 바와 같이, 후보 단어 "Jacobson"(224A)은 8개의 문자들을 포함하고, 반면 후보 단어 "Jacobea"(224B)와 후보 단어 "Jacobin"(224C) 각각은 7개의 문자들을 포함한다.
복수의 콘택들(218)에 포함된 콘택들의 양보다 더 많은 양의 문자들을 포함하는 후보 단어 "Jacobson"(224A)과 같은 그러한 후보 단어에 있어서, 후보 단어에서의 처음 M개의 위치에서의 하나 이상의 문자들(여기서, M은 복수의 콘택들(218)에서의 콘택들의 양을 나타냄)은 복수의 콘택들(218)에서의 대응하는 위치에서의 콘택에 근거하여 결정될 수 있다. 예를 들어, 후보 단어의 첫 번째 문자는 복수의 콘택들(218)에서의 첫 번째 콘택(예를 들어, 콘택(218A))과 부합할 수 있고, 후보의 두 번째 문자는 복수의 콘택들(218)에서의 두 번째 콘택(예를 들어, 콘택(218B))과 부합할 수 있는, 등등이다.
문자가 복수의 콘택들(218)에서의 콘택과 대응하도록 하기 위해, 가상 키보드(216)에서의 해당 콘택의 위치가 해당 문자와 관련된 가상 키의 표현 내의 위치 부근 안에 있을 필요가 있다. 가상 키의 표현 내의 위치 부근 안에 있는 것은, 가상 키의 표현 내의 그 위치로부터 특정 거리 내에 있는 것을 포함할 수 있다. 일부 예들에서, 가상 키의 표현 내의 위치는 가상 키의 표현의 중앙일 수 있다. 일부 예들에서, 가상 키의 표현 내의 위치는 가상 키의 표현 내의 임의의 포인트일 수 있다. 일부 예들에서, 가상 키의 표현 내의 위치는 가상 키의 표현의 바깥쪽 가장자리일 수 있다. 일부 다른 예들에서, 가상 키의 표현 내의 위치는 가상 키의 표현에 대한 콘택들의 평균 위치가 되는 위치일 수 있다. 가상 키의 표현에 대한 콘택의 평균 위치는, 일부 예들에서, 가상 키를 선택하기 위한 이전 사용자 테스팅 동안 터치 감지 디스플레이(202)에 의해 검출된 콘택들의 통계적 평균 위치(statistical mean location)일 수 있다.
복수의 콘택들(218)이 검출된 이후, 가상 키보드(216)의 표현과 관련된 터치 감지 디스플레이(210)의 일부분 내에서 후속 콘택(221)이 검출될 수 있다. 입력 모듈(206)은 후속 콘택(221)이 특정 가상 키를 선택하려고 하는 것인지를 결정할 수 있다. 일부 예들에서는, 특정 가상 키는, 공백과 관련된 가상 스페이스바 키(217)와 같은, 종결부호와 관련된 가상 키일 수 있다. 다른 예들에서, 특정 가상 키는 전용 가상 키 혹은 다른 GUI 제어일 수 있다. 예시적 목적으로, 특정 가상 키에 관한 이러한 개시내용의 기법들은 특정 가상 키로서 가상 스페이스바 키(227)를 고려하여 본 명세서에서 설명된다. 그러나, 이러한 기법들은 임의의 종결부호와 관련된 가상 키에 적용될 수 있으며, 혹은 임의의 다른 적절한 가상 키에 적용될 수 있다.
후속 콘택(221)이 단지 가상 스페이스바 키(217)의 표현 내에 위치하는지만을 결정하는 대신, 후속 콘택(126)이 가상 스페이스바 키(217)를 선택하려는 것인지를 결정함으로써, 가상 스페이스바 키(217)는 결정적 방식이 아닌 확률적 방식으로 다루어질 수 있고, 이에 따라 후속 콘택(221)이 가상 스페이스바 키(217)의 표현 내에 위치하지 않는 경우에도 후속 콘택(221)은 가상 스페이스바 키(217)를 선택하려는 것으로서 결정될 수 있게 된다. 후속 콘택(221)이 가상 스페이스바 키(217)를 선택하려는 것인지를 결정하는 것은, 후속 콘택(221)이 가상 스페이스바 키(217)를 선택하려는 것일 임계 확률을 충족시키거나 초과하는지를 결정하는 것을 포함할 수 있다.
후속 콘택(221)이 가상 스페이스바 키(217)를 선택하려는 것일 임계 확률을 충족시키거나 초과하는지를 결정하는 것은, 후속 콘택(221)이 검출된 터치 감지 디스플레이(210) 상의 위치에 적어도 부분적으로 근거할 수 있다. 현재 예에서, 가상 스페이스바 키(217)는 특정 가상 키일 수 있다. 터치 감지 디스플레이(210)의 영역은 경계(228)에 의해 구획될 수 있다. 경계(228)에 의해 구획된 영역은 가상 스페이스바 키(217)의 표현의 적어도 일부분과 중첩될 수 있고, 또한, 가상 스페이스바 키(217)의 표현 바깥쪽에 있는 가상 키보드(216)의 표현의 적어도 일부분을 포함할 수 있다. 더욱이, 경계(228)에 의해 구획된 영역은 가상 키보드(216)의 영역보다 더 작을 수 있고, 그리고 경계(228)에 의해 구획된 영역은 GUI(210)에서의 가상 키보드(216)의 경계를 넘어 연장하지 않을 수 있다. 만약 후속 콘택(221)이 경계(228)에 의해 구획된 영역 내에 위치한다면, 후속 콘택(221)은 가상 스페이스바 키(217)를 선택하려는 것일 임계 확률을 초과하는 것으로서 결정될 수 있다. 도 2에 제시된 바와 같이, 후속 콘택(221)이 가상 스페이스바 키(217) 내에 완전히 위치하지 않을지라도, 후속 콘택(221)은 가상 스페이스바 키(217)를 선택하려는 것으로서 입력 모듈(206)에 의해 또한 결정될 수 있는데, 왜냐하면 후속 콘택(221)이 경계(228)에 의해 구획된 영역 내에 위치하기 때문이다.
후속 콘택(221)이 가상 스페이스바 키(217)와 같은 특정 가상 키를 선택하려는 것일 임계 확률을 충족시키거나 초과하는지를 결정하는 것은 또한, 후속 콘택(221) 이전에 복수의 콘택들(218)에 의해 입력된 복수의 문자들과 같은 언어 모델에 적어도 부분적으로 근거할 수 있다. 후속 콘택(221)이 가상 스페이스바 키(217)와 같은 특정 가상 키를 선택하려는 것일 임계 확률을 충족시키거나 초과하는 지를 결정하는 것은 또한, 후속 콘택(221)의 위치와 언어 모델의 조합에 근거할 수 있다.
전형적으로는, 도 2에 제시된 바와 같은 예(여기서, 최상위 후보 단어는 복수의 콘택들에 포함된 콘택들의 양보다 더 많은 양의 문자들을 포함함)에 있어서의 경계에 의해 구획된 영역은, 도 1에 제시된 바와 같은 예(여기서, 최상위 후보 단어는 복수의 콘택들에 포함된 콘택들의 양과 동일한 양의 문자들을 포함함)에 있어서의 경계에 의해 구획된 영역과는 서로 다를 수 있다. 예를 들어, 도 2에 제시된 경계(228)에 의해 구획된 영역은 도 1에 제시된 경계(128)에 의해 구획된 영역보다 전형적으로 더 작을 수 있는데, 왜냐하면 사용자가 단어의 일부만 타이핑한 경우보다 단어를 완전히 입력한 이후 사용자가 스페이스바 키를 선택할 확률이 전형적으로 더 높기 때문인바, 따라서 입력 모듈은 콘택이 가상 스페이스바 키를 선택하려는 것임을 결정할 때 더욱 자유로울 수 있다. 경계(128)에 의해 구획된 영역은 경계(228)에 의해 구획된 영역과 중첩될 수 있다. 일부 예들에서, 최상위 후보 단어의 문자들의 양과 복수의 콘택들에 포함된 콘택들의 양 간의 차이에 상관없이 경계 영역들의 크기 간의 차이는 없을 수 있다.
만약 입력 모듈(206)이, 후속 콘택(221)이 특정 가상 키를 선택하려는 것임을 결정한다면, 입력 모듈(206)은 텍스트 영역(212)에 현재 입력된 텍스트가 교체되도록, 하나 이상의 후보 단어들(224)에서 최상위 후보 단어(224A)와 특정 가상 키와 관련된 문자(예를 들어, 공백 문자)가 결합된 것을 텍스트 영역(212)에 입력할 수 있다. 도 2에 제시된 바와 같이, 단어 "Jacobson"과 그 다음의 오는 공백 문자가 텍스트 영역(212)에 입력되게 된다.
도 3은 본 개시내용의 일부 실시형태에 따른, (도 1에 제시된 컴퓨팅 디바이스(100) 및 도 2에 제시된 컴퓨팅 디바이스(200)와 같은) 컴퓨팅 디바이스(300)의 일 예의 다른 세부사항들을 나타낸 블록도이다. 도 3은 단지 컴퓨팅 디바이스(300)의 하나의 특정 예만을 나타낸다. 다른 경우에 있어서 컴퓨팅 디바이스(300)의 다른 많은 예시적 실시예들이 사용될 수 있다.
도 3의 특정 예에서 제시된 바와 같이, 컴퓨팅 디바이스(300)는, 하나 이상의 프로세서들(302), 메모리(304), 네트워크 인터페이스(306), 하나 이상의 저장 디바이스들(308), 입력 디바이스(310), 하나 이상의 출력 디바이스들(312), 및 배터리(314)를 포함할 수 있다. 컴퓨팅 디바이스(300)는 또한 오퍼레이팅 시스템(operating system)(316)을 포함할 수 있다. 컴퓨팅 디바이스(300)는 또한, 일 예에서, 하나 이상의 애플리케이션들(318)을 포함할 수 있다. 하나 이상의 애플리케이션들(318)은 또한, 컴퓨팅 디바이스(300)에 의해 실행가능할 수 있다. 컴퓨팅 디바이스(300)의 컴포넌트들은 컴포넌트간 통신을 위해 (물리적으로, 통신가능하게 그리고/또는 동작가능하게) 상호연결될 수 있다.
하나 이상의 프로세서들(302)은, 일 예에서, 컴퓨팅 디바이스(300) 내에서의 실행을 위한, 기능을 구현할 수 있고 그리고/또는 명령들을 프로세싱할 수 있다. 예를 들어, 하나 이상의 프로세서들(302)은 메모리(304)에 저장된 명령들 및/또는 하나 이상의 저장 디바이스들(308) 상에 저장된 명령들을 프로세싱할 수 있다.
메모리(304)는, 일 예에서, 동작 동안 컴퓨팅 디바이스(300) 내의 정보를 저장할 수 있다. 메모리(304)는, 일부 예들에서, 컴퓨터 판독가능 저장 매체를 나타낼 수 있다. 일부 예들에서, 메모리(304)는 일시적 메모리일 수 있는바, 이것이 의미하는 바는 메모리(304)의 주목적이 장기간의 저장이 아니라는 것이다. 메모리(304)는, 일부 예들에서, 휘발성 메모리로서 설명될 수 있는바, 이것이 의미하는 바는 컴퓨팅 디바이스(300)의 전원이 차단되면 메모리(304)는 저장된 콘텐츠를 유지할 수 없음을 의미한다. 휘발성 메모리들의 예들은, 랜덤 액세스 메모리들(Random Access Memories, RAM), 동적 랜덤 액세스 메모리들(Dynamic Random Access Memories, DRAM), 정적 랜덤 액세스 메모리들(Static Random Access Memories, SRAM), 및 종래 기술분야에서 알려진 다른 형태의 휘발성 메모리들을 포함할 수 있다. 일부 예들에서, 메모리(304)는 하나 이상의 프로세서들(302)에 의해 실행될 수 있는 프로그램 명령들을 저장하는데 사용될 수 있다. 메모리(304)는, 일 예에서, 프로그램 실행 동안 데이터 및/또는 명령들을 일시적으로 저장하기 위해 컴퓨팅 디바이스(300) 상에서 실행되는 소프트웨어 혹은 애플리케이션들(예를 들어, 하나 이상의 애플리케이션들(318))에 의해 사용될 수 있다.
하나 이상의 저장 디바이스들(308)은 또한, 일부 예들에서, 하나 이상의 컴퓨터 판독가능 저장 매체들을 포함할 수 있다. 하나 이상의 저장 디바이스들(308)은 메모리(304)보다 더 많은 양의 정보를 저장하도록 구성될 수 있다. 하나 이상의 저장 디바이스들(308)은 또한, 정보를 장기간 저장하도록 구성될 수 있다. 일부 예들에서, 하나 이상의 저장 디바이스들(308)은 비휘발성 저장 소자들을 포함할 수 있다. 이러한 비휘발성 저장 소자들의 예들은, 자기 하드 디스크들(magnetic hard discs), 광학 디스크들, 플로피 디스크들, 플래시 메모리들, 또는 여러 형태의 전기적으로 프로그래밍가능한 메모리들(electrically programmable memories, EPROM) 혹은 전기적으로 소거가능하고 프로그래밍가능한 메모리들(electrically erasable and programmable, EEPROM)을 포함할 수 있다.
컴퓨팅 디바이스(300)는 또한, 일부 예들에서, 네트워크 인터페이스(306)를 포함할 수 있다. 컴퓨팅 디바이스(300)는, 이러한 예들에서, 하나 이상의 유선 혹은 무선 네트워크와 같은 하나 이상의 네트워크를 통해 외부 디바이스와 통신하기 위해 네트워크 인터페이스(306)를 사용할 수 있다. 네트워크 인터페이스(306)는, 이더넷 카드와 같은 네트워크 인터페이스 카드, 광 트랜시버(optical transceiver), 무선 주파수 트랜시버(radio frequency transceiver), 혹은 정보를 송신 및 수신할 수 있는 임의의 다른 타입의 디바이스일 수 있다. 이러한 네트워크 인터페이스들의 다른 예들은, USB 뿐만 아니라 모바일 컴퓨팅 디바이스에서의 블루투스(Bluetooth®), 3G 및 WiFi® 무선통신을 포함할 수 있다. 일부 예들에서, 컴퓨팅 디바이스(300)는, 서버, 모바일 폰, 혹은 다른 네트워크화된 컴퓨팅 디바이스와 같은 외부 디바이스(미도시)와 무선으로 통신하기 위해 네트워크 인터페이스(306)를 사용할 수 있다.
컴퓨팅 디바이스(300)는 또한, 하나 이상의 입력 디바이스들(310)을 포함할 수 있다. 입력 디바이스(310)는, 일부 예들에서, 촉각적(tactile), 전자기적(electromagnetic), 오디오(audio) 및/또는 비디오(video) 피드백(feedback)을 통해 사용자로부터 입력을 수신하도록 구성될 수 있다. 입력 디바이스(310)의 예들은, 터치 감지 디스플레이(예를 들어, 도 1에 제시된 터치 감지 디스플레이(102) 혹은 도 2에 제시된 터치 감지 디스플레이(202)), 마우스, 물리적 키보드, 음성 인식 시스템, 비디오 카메라, 마이크로폰, 혹은 사용자에 의한 제스처들을 검출하기 위한 임의의 다른 타입의 디바이스를 포함할 수 있다. 일부 예들에서, 터치 감지 디스플레이는 존재-감지 스크린(presence-sensitive screen)을 포함할 수 있다.
하나 이상의 출력 디바이스들(312)이 또한 컴퓨팅 디바이스(300) 내에 포함될 수 있다. 하나 이상의 출력 디바이스들(312)은, 일부 예들에서, 촉각적, 오디오 혹은 비디오 자극을 사용하여 사용자에게 출력을 제공하도록 구성될 수 있다. 하나 이상의 출력 디바이스들(312)은, 일 예에서, 디스플레이(예를 들어, 도 1에 제시된 터치 감지 디스플레이(102) 혹은 도 2에 제시된 터치 감지 디스플레이(202)), 사운드 카드, 비디오 그래픽 어댑터 카드, 혹은 인간 혹은 기계가 이해할 수 있는 적절한 형태로 신호를 변환하기 위한 임의의 다른 타입의 디바이스를 포함할 수 있다. 하나 이상의 출력 디바이스들(312)의 추가적인 예들은, 스피커, 음극선관(Cathode Ray Tube, CRT) 모니터, 액정 디스플레이(Liquid Crystal Display, LCD), 혹은 사용자에게 이해가능한 출력을 발생시킬 수 있는 임의의 다른 타입의 디바이스를 포함할 수 있다.
컴퓨팅 디바이스(300)는, 일부 예들에서, 충전가능하고 컴퓨팅 디바이스(300)에게 파워를 제공할 수 있는 배터리(314)를 포함할 수 있다. 배터리(314)는, 일부 예들에서, 니켈-카드뮴(nickel-cadmium), 리튬-이온(lithium-ion) 혹은 다른 적절한 물질로부터 만들어질 수 있다.
컴퓨팅 디바이스(300)의 예들은 오퍼레이팅 시스템(316)을 포함할 수 있다. 오퍼레이팅 시스템(316)은 컴퓨팅 디바이스(300)의 컴포넌트들의 동작을 제어할 수 있다. 예를 들어, 오퍼레이팅 시스템(316)은 하나 이상의 애플리케이션들(318)(예컨대, 도 1에 제시된 애플리케이션(104) 및 도 2에 제시된 애플리케이션(204))이 컴퓨팅 디바이스(300)의 하드웨어 컴포넌트들과 상호작용하는 것을 용이하게 할 수 있다.
도 3에 제시된 바와 같이, 하나 이상의 애플리케이션들(318)은 예시적인 입력 모듈(320)(예컨대, 도 1에 제시된 입력 모듈(106) 및 도 2에 제시된 입력 모듈(206)), 그리고 디스플레이 모듈(322)(예컨대, 도 1에 제시된 디스플레이 모듈(108) 및 도 2에 제시된 디스플레이 모듈(208))을 포함할 수 있다. 입력 모듈(320)과 디스플레이 모듈(322)은 각각, 컴퓨팅 디바이스(300)의 하나 이상의 프로세서들(302)에 의해 실행가능한 프로그램 명령들 및/또는 데이터를 포함할 수 있다. 예를 들어, 입력 모듈(106)은, 컴퓨팅 디바이스(300) 상에서 실행되는 하나 이상의 애플리케이션들(318)로 하여금 도 1 내지 도 2 및 도 4 내지 도 7에서 설명되는 동작들 및 행위들 중 하나 이상을 수행하도록 하는 명령들을 포함할 수 있다. 유사하게, 디스플레이 모듈(322)은, 컴퓨팅 디바이스(300) 상에서 실행되는 하나 이상의 애플리케이션들(318)로 하여금 도 1 내지 도 2 및 도 4 내지 도 7에서 설명된 동작들 및 행위들 중 하나 이상을 수행하도록 하는 명령들을 포함할 수 있다.
일부 예들에서, 입력 모듈(320) 및 디스플레이 모듈(322)은 컴퓨팅 디바이스(300) 상에서 실행되는 오퍼레이팅 시스템(316)의 일부일 수 있다. 일부 예들에서, 입력 모듈(320)은 컴퓨팅 디바이스(300)의 입력 디바이스(310)로부터 입력을 수신할 수 있다.
컴퓨팅 디바이스(300) 내에서 구현되거나 혹은 컴퓨팅 디바이스(300)에 의해 실행되는 임의의 애플리케이션들(예를 들어, 하나 이상의 애플리케이션들(318))은, 컴퓨팅 디바이스(300)의 컴포넌트들(예를 들어, 하나 이상의 프로세서들(302), 메모리(304), 네트워크 인터페이스(306), 하나 이상의 저장 디바이스들(308), 입력 디바이스(310), 및 하나 이상의 출력 디바이스들(312)) 내에서 구현될 수 있거나 포함될 수 있으며, 이들에 의해 동작가능할 수 있으며, 이들에 의해 실행될 수 있으며, 그리고/또는 이들에 동작가능하게/통신가능하게 결합될 수 있다.
도 4는 터치 감지 디스플레이 상의 가상 키보드들을 사용하는 텍스트 입력에 대해서 예측 텍스트 정정 및 완성을 위한 프로세스의 예시적 동작을 나타낸 흐름도이다. 이러한 프로세스는 컴퓨팅 디바이스(예컨대, 도 1에 제시된 컴퓨팅 디바이스(100) 혹은 도 2에 제시된 컴퓨팅 디바이스(200))의 터치 감지 디스플레이(예컨대, 도 1에 제시된 터치 감지 디스플레이(102) 혹은 도 2에 제시된 터치 감지 디스플레이(202))에서 복수의 가상 키들을 포함하는 가상 키보드의 표현을 디스플레이하는 것을 포함할 수 있다(402). 프로세스는 또한, 가상 키보드의 표현과 관련된 터치 감지 디스플레이의 일부분 내에서의 복수의 콘택들을 터치 감지 디스플레이에서 검출하는 것을 포함할 수 있다(404). 프로세스는 또한, 복수의 콘택들을 검출한 이후, 가상 키보드의 표현과 관련된 터치 감지 디스플레이의 일부분 내에서의 후속 콘택을 터치 감지 디스플레이에 의해 검출하는 것을 포함할 수 있다(406). 프로세스는 또한, 복수의 콘택들에 근거하여 하나 이상의 후보 단어들을 결정하는 것을 포함할 수 있는바(408), 여기서, 하나 이상의 후보 단어들 각각은 적어도 복수의 콘택들에 포함된 콘택들의 양만큼의 문자들을 포함한다. 프로세스는 또한, 후속 콘택이 특정 가상 키와 관련된 터치 감지 디스플레이의 영역 내의 터치 감지 디스플레이 상의 제 1 위치에서 검출되었는지에 적어도 부분적으로 근거하여 후속 콘택이 특정 가상 키를 선택하려는 것인지를 결정하는 것을 포함할 수 있는바(410), 여기서, 상기 영역은 상기 특정 가상 키의 표현의 적어도 일부분과 중첩되며, 상기 영역은 또한, 상기 특정 가상 키의 표현 바깥쪽에 있는 가상 키보드의 표현의 적어도 일부분을 포함하고, 만약 하나 이상의 후보 단어들에서의 최상위 후보 단어가 복수의 콘택들에 포함된 콘택들의 양보다 더 많은 수의 문자들을 갖는다면 상기 영역은 제 1 영역이 되고, 그리고 만약 최상위 후보 단어가 복수의 콘택들에서의 콘택들의 양과 동일한 수의 문자들을 갖는다면 상기 영역은 제 1 영역과는 다른 제 2 영역이 된다. 프로세스는 또한, 후속 콘택이 상기 특정 가상 키를 선택하려는 것이라는 결정에 응답하여, 최상위 후보 단어를 터치 감지 디스플레이에서 디스플레이되는 텍스트 영역에 입력하는 것을 포함할 수 있다(412).
일부 예들에서, 제 2 영역은 제 1 영역보다 더 클 수 있다. 일부 예들에서, 제 2 영역은 제 1 영역과 중첩될 수 있다. 일부 예들에서, 제 1 영역의 크기와 제 2 영역의 크기는 동일할 수 있다.
일부 예들에서, 후속 콘택이 특정 가상 키를 선택하려는 것인지를 결정하는 것은 복수의 콘택들에 적어도 부분적으로 근거할 수 있다.
일부 예들에서, 텍스트 영역에 최상위 후보 단어를 입력하는 것은 또한, 복수의 콘택들을 통해 입력된 하나 이상의 문자들을 최상위 후보 단어로 교체하는 것을 포함한다.
일부 예들에서, 프로세스는 또한, 후속 콘택이 특정 가상 키와 관련된 터치 감지 디스플레이의 영역 내의 터치 감지 디스플레이 상의 위치 내에서 검출된 경우에도 후속 콘택이 특정 가상 키를 선택하려는 것이 아니라고 결정하는 것을 포함한다.
일부 예들에서, 특정 가상 키는 종결부호에 대응하는 가상 키를 포함할 수 있다. 일부 예들에서, 특정 가상 키는 공백에 대응하는 가상 스페이스바 키일 수 있다.
일부 예들에서, 프로세스는 또한, 하나 이상의 후보 단어들을 나열하는 제안 메뉴를 터치 감지 디스플레이에서 디스플레이하는 것을 포함할 수 있다.
일부 예들에서, 복수의 콘택들은 최상위 후보 단어에서의 대응하는 위치에서의 문자와 부합하지 않는 가상 키의 표현 내에서 검출된 적어도 하나의 콘택을 포함할 수 있다.
일부 예들에서, 적어도 하나의 콘택은 가상 스페이스바 키의 표현 내에서 검출될 수 있다.
도 5는 본 개시내용의 일부 실시형태에 따른, 하나 이상의 애플리케이션들을 실행하도록 구성된 (도 1에 제시된 컴퓨팅 디바이스(100) 또는 도 2에 제시된 컴퓨팅 디바이스(200)와 같은) 컴퓨팅 디바이스의 일 예를 나타낸 블록도이다. 도 5에 제시된 바와 같이, 컴퓨팅 디바이스(500)는 터치 감지 디스플레이(502) 및 애플리케이션(504)을 포함할 수 있다. 애플리케이션(504)은 입력 모듈(506) 및 디스플레이 모듈(508)을 포함할 수 있다. 그래픽 사용자 인터페이스(GUI)(510)는 터치 감지 디스플레이(502)에서 디스플레이될 수 있다.
터치 감지 디스플레이(502)는, 복수의 콘택들(518A-518E)("복수의 콘택들(518)")과, 그리고 가상 키보드(516)의 표현을 디스플레이하는 터치 감지 디스플레이(502)의 일부분 내에서의 복수의 콘택들(518) 이후의 후속 콘택(526)을 검출할 수 있다. 도 5에 제시된 바와 같이, 복수의 콘택들(518)과 후속 콘택(526)이 결합된 것은 다음과 같은 입력, 즉 [j' a' c' o' b' d|x]를 발생시킬 수 있다. 최상위 후보 단어 "Jacobs"(524A)는 입력된 텍스트 "Jacobx"를 대체할 수 없는데, 왜냐하면 콘택(526)에 의해 발생된 입력 "d|x"는 경계(528)에 의해 구획된 영역 내에 있지 않고 따라서 콘택(526)은 가상 스페이스바 키(517)를 선택하려는 것으로서 결정되기에는 가상 스페이스바 키(517)의 표현으로부터 너무 멀리 있기 때문이다. 달리 말하면, 사용자(520)는 타이핑 오류를 범했다. 사용자(520)는 또한, 텍스트 영역(512)에 디스플레이된 그 입력된 텍스트 "Jacobx"를 최상위 후보 단어 "Jacobs"(524A)로 교체하기 위해 최상위 후보 단어 "Jacobs"(524A)에 콘택할 수 있거나 혹은 그렇지 않다면 최상위 후보 단어 "Jacobs"(524A)를 선택할 수 있다. 알 수 있는 바와 같이, 후속 콘택(526)이 가상 스페이스바 키(517)의 사용자 선택으로서 해석되는지 여부는, 가상 스페이스바 키(517) 내의 위치로부터 후속 콘택(526)의 거리에 따라 달라질 수 있다. 일부 예들에서, 가상 스페이스바 키(517) 내의 위치는 가상 스페이스바 키(517) 내의 중앙 포인트일 수 있거나, 가상 스페이스바 키(517) 내에서 수신된 콘택들의 평균 위치일 수 있다.
도 6은 본 개시내용의 일부 실시형태에 따른, 하나 이상의 애플리케이션들을 실행하도록 구성된 (도 1에 제시된 컴퓨팅 디바이스(100), 도 2에 제시된 컴퓨팅 디바이스(200), 또는 도 5에 제시된 컴퓨팅 디바이스(500)와 같은) 컴퓨팅 디바이스의 일 예를 나타낸 블록도이다. 도 6에 제시된 바와 같이, 컴퓨팅 디바이스(600)는 터치 감지 디스플레이(602) 및 애플리케이션(604)을 포함할 수 있다. 애플리케이션(604)은 입력 모듈(606) 및 디스플레이 모듈(608)을 포함할 수 있다. 그래픽 사용자 인터페이스(GUI)(610)는 터치 감지 디스플레이(602)에서 디스플레이될 수 있다.
터치 감지 디스플레이(602)는, 복수의 콘택들(618A-618B)("복수의 콘택들(618)")과, 그리고 가상 키보드(616)의 표현을 디스플레이하는 터치 감지 디스플레이(602)의 일부분 내에서의 복수의 콘택들(618) 이후의 후속 콘택(626)을 검출할 수 있다. 도 6에 제시된 바와 같이, 복수의 콘택들(618)과 후속 콘택(626)이 결합된 것은 다음과 같은 입력, 즉 [j' a' sp]를 발생시킬 수 있다. 이러한 예에서, 가상 스페이스바(617) 내에 위치한 후속 콘택(626)은 텍스트 영역(612)에 현재 입력된 텍스트가 최상위 후보 단어 "Jacobs"(624A)로 교체되게 하지 않는데, 왜냐하면 컴퓨팅 디바이스(600)는, 후속 콘택(626)이 경계(628)에 의해 구획된 영역 내에 위치할지라도, 사용자(620)가 [j' a' sp]를 타이핑하려는 것보다 대신 ("Jacob"을 타이핑하기 위해) [j a c]를 타이핑하려하거나 혹은 ("have"를 타이핑하기 위해) [h a v]를 타이핑하려는 것일 확률이 더 높다고 결정할 수 있기 때문이다. 달리 말하면, 후속 콘택(626)이 경계(628)에 의해 구획된 영역 내에 위치할지라도, 입력 모듈(606)은, 후속 콘택(626)이 가상 스페이스바 키(617)를 선택하려는 것보다는 문자 "c"와 관련된 가상 키 혹은 문자 "v"와 관련된 가상 키를 선택하려는 것일 확률이 더 높다라고 결정할 수 있다. 사용자(620)는 또한, 텍스트 영역(612)에 디스플레이된 현재 입력된 텍스트 "Ja "를 최상위 후보 단어 "Jacob"(624A)로 교체하기 위해 최상위 후보 단어 "Jacob"(624A)에 콘택할 수 있거나 혹은 그렇지 않다면 최상위 후보 단어 "Jacob"(624A)을 선택할 수 있다.
본 명세서에서 설명되는 기법들은 하드웨어, 소프트웨어, 펌웨어 혹은 이들의 임의의 조합으로 구현될 수 있다. 모듈, 유닛 혹은 컴포넌트로서 설명되는 다양한 특징들은 통합 로직 디바이스에 함께 구현될 수 있거나, 혹은 개별적인 하지만 상호 정보 교환이 가능한 로직 디바이스들 또는 다른 하드웨어 디바이스들로서 따로 분리되어 구현될 수 있다. 일부 경우들에 있어서, 전자 회로의 다양한 특징들이, 집적 회로 칩 혹은 칩셋과 같은, 하나 이상의 집적 회로 디바이스들로서 구현될 수 있다.
도 7은 본 개시내용의 일부 실시형태에 따른, 하나 이상의 애플리케이션들을 실행하도록 구성된 (도 1에 제시된 컴퓨팅 디바이스(100) 또는 도 2에 제시된 컴퓨팅 디바이스(200)와 같은) 컴퓨팅 디바이스의 일 예를 나타낸 블록도이다. 도 7에 제시된 바와 같이, 컴퓨팅 디바이스(700)는 터치 감지 디스플레이(702) 및 애플리케이션(704)을 포함할 수 있다. 애플리케이션(704)은 입력 모듈(706) 및 디스플레이 모듈(708)을 포함할 수 있다. 그래픽 사용자 인터페이스(GUI)(710)는 터치 감지 디스플레이(702)에서 디스플레이될 수 있다.
터치 감지 디스플레이(702)는, 복수의 콘택들(718A-718B)("복수의 콘택들(718)")과, 그리고 가상 키보드(716)의 표현을 디스플레이하는 터치 감지 디스플레이(702)의 일부분 내에서의 복수의 콘택들(718) 이후의 후속 콘택(726)을 검출할 수 있다. 도 7에 제시된 바와 같이, 복수의 콘택들(718)과 후속 콘택(726)이 결합된 것은 다음과 같은 입력, 즉 [c' a' r' t' sp']를 발생시킬 수 있다. 이러한 예에서, 제안 메뉴(722)는, 최상위 후보 단어 "cart wheel", 두 번째로 확률이 가장 높은 후보 단어 "cart"(724B), 그리고 세 번째로 확률이 가장 높은 후보 단어 "cartman"(724C)을 포함할 수 있다.
도 7에 예시된 예에서, 후속 콘택(726)을 통해 "cartwheel "이 텍스트 영역(712)에 입력될 수 있을 것으로 예측될 수 있지만, 후속 콘택(726)은 가상 스페이스바 키(717)를 선택하려는 것으로 고려되지 않는데, 왜냐하면 후속 콘택(726)이 경계(728A)에 구획된 영역 바깥쪽에 위치하기 때문이다. 앞서 설명된 바와 같이, 최상위 후보 단어 "cartwheel"(724A)이 복수의 콘택들(718)에 포함된 콘택들의 양보다 더 많은 양의 문자들을 포함하고 있기 때문에, 후속 콘택(726)이 가상 스페이스바 키(717)를 선택하려는 것인지를 결정하기 위해서는 더 엄격한 허용한계가 존재할 수 있다. 따라서, 후속 콘택(726)이, 경계(728B)에 의해 구획된 더 넓은 영역 대신, 경계(728A)에 의해 구획된 영역 내에 위치할 필요가 있다. 텍스트 영역(712)에서의 현재 입력된 텍스트를 최상위 후보 단어 "cartwheel"(724A)로 교체시키기 위해서 후속 콘택(726)이 가상 스페이스바 키(717)를 선택하려는 것이 아님을 입력 모듈(706)이 결정했기 때문에, 그리고 후속 콘택(726)의 위치가 문자 "w"와 관련된 가상 키로부터 떨어져 충분히 멀리 있기 때문에, 후속 콘택(726)의 수신은 가능한 후보 단어로서 "cartwheel"이 제거되게 할 수 있고, 두 번째로 확률이 가장 높은 단어 "cart"(724B)는, 텍스트 영역(712)에서의 현재 입력된 텍스트를 교체하기 위해 텍스트 영역(712)에 입력될 수 있는 후보 단어가 될 수 있다.
"cart"가 복수의 콘택들(718)에서의 콘택들의 양과 동일한 양의 문자들을 포함하고 있기 때문에, (만약 두 번째로 확률이 가장 높은 후보 단어 "cart"(724B)가 대신, 텍스트 영역(712)에서의 현재 입력된 텍스트를 교체하기 위해 텍스트 영역(712)에 입력될 수 있는 후보 단어라면) 후속 콘택(726)이 가상 스페이스바 키(717)를 선택하려는 것인지를 결정하기 위해서는 더 느슨한 허용한계가 존재할 수 있다. 따라서, 후속 콘택(726)이 경계(128B)에 의해 구획된 영역 내에 있기 때문에, 입력 모듈(706)은 텍스트 영역(712)에서의 현재 입력된 텍스트를 교체하기 위해 두 번째로 확률이 가장 높은 후보 단어 "cart"(724B)와 후속 공백 문자가 결합된 것을 텍스트 영역(712)에 입력할 수 있다. 알 수 있는 바와 같이, 컴퓨팅 디바이스(700)는, 복수의 콘택들(718)에서의 콘택들의 수와 동일한 수의 문자들을 갖는 최상위 후보 단어의 사용자 선택의 확률을 추정하는 것과는 별개로, 복수의 콘택들(718)에서의 콘택들의 수보다 많은 수의 문자들을 갖는 최상위 후보 단어의 사용자 선택의 확률을 추정할 수 있고, 이에 따라, 가상 스페이스바 키(717)가 최상위 후보 단어를 선택하기 위해서 사용자(720)에 의해서 선택되었는지 여부를 결정하기 위한 확률 임계치는, 최상위 후보 단어가 복수의 콘택들(718)에서의 콘택들의 수보다 많은 수의 문자들을 포함하는 경우보다는, 최상위 후보 단어가 복수의 콘택들(718)에서의 콘택들의 수와 동일한 수의 문자들을 포함하는 경우에, 촉발(trigger)될 확률이 더 높을 수 있다.
도 8은 터치 감지 디스플레이 상의 가상 키보드들을 사용하는 텍스트 입력에 대해서 예측 텍스트 정정 및 완성을 위한 프로세스의 예시적 동작을 나타낸 흐름도이다. 프로세스는, 가상 키보드(예를 들어, 도 1에 제시된 가상 키보드(116)) 상에서의 사용자(예를 들어, 도 1에 제시된 사용자(120))에 의한 콘택들의 시퀀스에 대한 정보를 입력 모듈(예를 들어, 도 1에 제시된 입력 모듈(106))에 의해 수신하는 것을 포함할 수 있고, 여기서 시퀀스는 예측 단어 및 이러한 예측 단어에 대한 확률과 관련되어 있으며, 콘택들의 시퀀스는 단어의 입력을 위해 사용자에 의해 행해진 콘택들에 대응한다. 프로세스는 또한, 콘택들의 시퀀스에서의 추가 콘택에 대한 정보를 입력 모듈에 의해 수신하는 것을 포함할 수 있다. 이 프로세스는, 추가 콘택을, (i) 콘택들의 시퀀스에서의 콘택들의 수와 동일한 수의 문자들을 갖는 예측 단어의 사용자 선택, 혹은 (ii) 콘택들의 시퀀스에서의 콘택들의 수보다 많은 수의 문자들을 갖는 예측 단어의 사용자 선택으로서 해석하기 위해, 또는 추가 콘택을, (i) 콘택들의 시퀀스에서의 콘택들의 수와 동일한 수의 문자들을 갖는 예측 단어의 사용자 선택, 혹은 (ii) 콘택들의 시퀀스에서의 콘택들의 수보다 많은 수의 문자들을 갖는 예측 단어의 사용자 선택, 혹은 (iii) 비공백 문자의 사용자 입력으로서 해석하기 위해, 추가 콘택의 공간 위치에 대한 정보 및 예측 단어에 대한 정보를 설명하는 확률 모델을 컴퓨팅 디바이스(예를 들어, 도 1에 제시된 컴퓨팅 디바이스(100))에 의해 적용하는 것을 포함할 수 있다. 프로세스는 또한, 확률 모델에 의한 추가 콘택의 해석에 근거하여 입력 버퍼를 컴퓨팅 디바이스에 의해 업데이트하는 것을 포함할 수 있다.
프로세스는 또한, 도 1에 제시된 터치 감지 디스플레이(102)와 같은 스크린 상에 그 업데이트된 입력 버퍼의 적어도 일부분을 사용자에게 디스플레이하는 것을 포함할 수 있다. 일부 예들에서, 공간 위치에 대한 정보는 가상 스페이스바 키 내의 위치로부터 추가 콘택의 거리에 근거한다.
일부 예들에서, 확률 모델은, 적어도 콘택들의 시퀀스에 근거하여 단어들을 예측하는 언어 모델(language model)과, 그리고 추가 콘택의 공간 위치에 대한 정보에 근거하여 추가 콘택에 대한 문자를 예측하는 공간 모델(spatial model)을 포함한다. 일부 예들에서, 확률 모델은, 콘택들의 시퀀스에서의 콘택들의 수보다 많은 수의 문자들을 갖는 예측 단어의 사용자 선택의 확률을 추정하는 것과는 별개로, 콘택들의 시퀀스에서의 콘택들의 수와 동일한 수의 문자들을 갖는 예측 단어의 사용자 선택의 확률을 추정한다. 일부 예들에서, 확률 모델은, 콘택들의 시퀀스에서의 콘택들의 수와 동일한 수의 문자들을 갖는 예측 단어의 사용자 선택을 결정하기 위한 제 1 확률 임계치와, 그리고 콘택들의 시퀀스에서의 콘택들의 수보다 많은 수의 문자들을 갖는 예측 단어의 사용자 선택을 결정하기 위한 제 2 확률 임계치를 포함한다. 일부 예들에서, 제 1 확률 임계치를 촉발시킬 확률은 제 2 확률 임계치를 촉발시킬 확률보다 더 높다.
일부 예들에서, 확률 모델은, 입력 키가 콘택의 공간 위치에 근거하여 선택될 확률을 결정하는 공간 모델과 인터페이스한다. 일부 예들에서, 확률 모델은, 입력 키가 콘택들의 시퀀스에서의 이전 콘택들에 근거하여 선택될 확률을 결정하는 언어 모델과 인터페이스한다. 일부 예들에서, 콘택들의 시퀀스는, 이전 단어의 완성 이후에 수신된 콘택들, 혹은 입력을 요구받은 사용자로부터 초기에 수신된 콘택들을 포함한다.
만약 하드웨어로 구현된다면, 본 개시내용은, 프로세서 혹은 집적 회로 디바이스(예를 들어, 집적 회로 칩 혹은 칩셋)와 같은 장치에 관한 것일 수 있다. 대안적으로 혹은 추가적으로, 만약 소프트웨어 또는 펌웨어로 구현된다면, 본 기법들은 명령들을 포함하는 컴퓨터 판독가능 데이터 저장 매체에 의해 적어도 부분적으로 실현될 수 있는바, 이러한 명령들은 실행시 프로세서로 하여금 앞서 설명된 방법들 중 하나 이상을 수행하도록 한다. 예를 들어, 컴퓨터 판독가능 데이터 저장 매체는 프로세서에 의한 실행을 위해 이러한 명령들을 저장할 수 있다.
컴퓨터 판독가능 매체는, 패키징 물질들(packaging materials)을 포함할 수 있는 컴퓨터 프로그램물의 일부를 형성할 수 있다. 컴퓨터 판독가능 매체는, 랜덤 액세스 메모리(Random Access Memory, RAM), 판독 전용 메모리(Read-Only Memory, ROM), 비휘발성 랜덤 액세스 메모리(Non-Volatile Random Access Memory, NVRAM), 전기적으로 소거가능하고 프로그래밍가능한 판독 전용 메모리(Electrically Erasable Programmable Read-Only Memory, EEPROM), 플래시 메모리, 자기 혹은 광학 데이터 저장 매체들, 등과 같은 컴퓨터 데이터 저장 매체를 포함할 수 있다. 일부 예들에서, 제조 물품은 하나 이상의 컴퓨터 판독가능 저장 매체들을 포함할 수 있다.
일부 예들에서, 컴퓨터 판독가능 저장 매체들은 비일시적 매체들을 포함할 수 있다. 용어 "비일시적(non-transitory)"은 저장 매체가 반송파(carrier wave) 혹은 전파 신호(propagated signal)로 구현되지 않음을 나타낼 수 있다. 특정 예들에서, 비일시적 저장 매체는 시간 경과에 따라 변할 수 있는 데이터를 (예를 들어, RAM 또는 캐시에) 저장할 수 있다.
코드 또는 명령들은 하나 이상의 프로세서들(예를 들어, 하나 이상의 디지털 신호 프로세서(Digital Signal Processor, DSP)들, 범용 마이크로프로세서, 애플리케이션 특정 집적 회로(Application-Specific Integrated Circuit, ASIC)들, 현장-프로그래밍가능 게이트 어레이(Field-Programmable Gate Array, FPGA)들, 또는 다른 등가의 통합된 혹은 개별적 로직 회로와 같은 것)을 포함하는 프로세싱 회로에 의해 실행되는 소프트웨어 및/또는 펌웨어일 수 있다. 따라서, 본 명세서에서 사용되는 바와 같은, 용어 "프로세서"는 앞서의 구조 중 어느 하나를 지칭할 수 있거나 본 명세서에서 설명된 기법들의 구현에 적합한 임의의 다른 구조를 지칭할 수 있다. 추가적으로, 일부 실시형태의 경우, 본 명세서에서 설명된 기능은 소프트웨어 모듈 혹은 하드웨어 모듈 내에 제공될 수 있다.
본 개시내용의 다양한 실시형태들이 설명되었다. 이러한 실시형태 및 다른 실시형태는 다음의 특허청구범위 내에 있다.
Claims (30)
- 복수의 가상 키(virtual key)들을 갖는 가상 키보드(virtual keyboard)의 표현(representation)을, 컴퓨팅 디바이스(computing device)에 동작가능하게 결합된 터치 감지 디스플레이(touch-sensitive display)에서의 디스플레이를 위해, 출력하는 단계와;
상기 가상 키보드의 표현과 관련된 상기 터치 감지 디스플레이의 일부분에서 복수의 콘택(contact)들의 각각의 콘택의 각각의 표시를 수신하는 단계와;
상기 복수의 콘택들의 각각의 콘택의 각각의 표시를 수신한 이후, 상기 가상 키보드의 표현과 관련된 상기 터치 감지 디스플레이의 일부분에서 후속 콘택(subsequent contact)을 수신하는 단계와;
상기 복수의 콘택들에 적어도 부분적으로 근거하여 상기 컴퓨팅 디바이스에 의해 하나 이상의 후보 단어(candidate word)들을 결정하는 단계와, 여기서 상기 하나 이상의 후보 단어들 각각은, 적어도 상기 복수의 콘택들에 포함된 콘택들의 양(quantity)만큼의 문자(character)들을 포함하고;
가상 스페이스바 키(virtual spacebar key)의 표현의 적어도 일부분과 중첩(overlap)되는 상기 터치 감지 디스플레이의 영역에서 상기 후속 콘택이 행해졌는지 여부에 적어도 부분적으로 근거하여 상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것인지 여부를 결정하는 단계와, 여기서 상기 영역은 또한, 상기 가상 스페이스바 키의 표현 바깥쪽에 있는 상기 가상 키보드의 표현의 적어도 일부분과 관련된 허용한계 영역(tolerance area)을 포함하고, 만약 상기 하나 이상의 후보 단어들에서의 최상위 후보 단어가 상기 복수의 콘택들에 포함된 콘택들의 양보다 더 많은 수의 문자들을 갖는다면 상기 허용한계 영역은 제 1 크기를 포함하고, 그리고 만약 상기 최상위 후보 단어가 상기 복수의 콘택들에 포함된 콘택들의 양과 동일한 수의 문자들을 갖는다면 상기 허용한계 영역은 상기 제 1 크기와는 다른 제 2 크기를 포함하며; 그리고
상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것이라는 결정에 응답하여, 상기 최상위 후보 단어를, 상기 터치 감지 디스플레이에서 디스플레이되는 텍스트 영역(text area)에서의 디스플레이를 위해, 출력하는 단계를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 제 2 크기는 상기 제 1 크기보다 더 큰 것을 특징으로 하는 방법. - 삭제
- 제1항에 있어서,
상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것인지 여부를 결정하는 단계는, 상기 복수의 콘택들에 적어도 부분적으로 근거하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 최상위 후보 단어를, 상기 텍스트 영역에서의 디스플레이를 위해, 출력하는 단계는, 상기 복수의 콘택들을 통해 입력되는 하나 이상의 문자들을 상기 최상위 후보 단어로 교체하는 것을 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 터치 감지 디스플레이의 영역에서 상기 후속 콘택이 행해진 경우에도 상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것이 아니라고 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 삭제
- 삭제
- 제1항에 있어서,
상기 하나 이상의 후보 단어들을 나열하는 제안 메뉴(suggestions menu)를, 상기 터치 감지 디스플레이에서의 디스플레이를 위해, 출력하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 복수의 콘택들은, 상기 최상위 후보 단어 내의 대응하는 위치에서의 문자와 부합하지 않는 가상 키의 표현 내에서 행해진 적어도 하나의 콘택을 포함하는 것을 특징으로 하는 방법. - 제10항에 있어서,
상기 적어도 하나의 콘택은 상기 가상 스페이스바 키의 표현 내에서 행해지는 것을 특징으로 하는 방법. - 명령들을 포함하는 컴퓨터 판독가능 매체로서,
상기 명령들은 적어도 하나의 프로그래밍가능 프로세서에 의해 실행될 때 상기 적어도 하나의 프로그래밍가능 프로세서로 하여금,
복수의 가상 키들을 갖는 가상 키보드의 표현을, 컴퓨팅 디바이스에 동작가능하게 결합된 터치 감지 디스플레이에서의 디스플레이를 위해, 출력하는 동작과;
상기 가상 키보드의 표현과 관련된 상기 터치 감지 디스플레이의 일부분에서 복수의 콘택들의 각각의 콘택의 각각의 표시를 수신하는 동작과;
상기 복수의 콘택들의 각각의 콘택의 각각의 표시를 수신한 이후, 상기 가상 키보드의 표현과 관련된 상기 터치 감지 디스플레이의 일부분에서 후속 콘택의 표시를 수신하는 동작과;
상기 복수의 콘택들에 적어도 부분적으로 근거하여 상기 컴퓨팅 디바이스에 의해 하나 이상의 후보 단어들을 결정하는 동작과, 여기서 상기 하나 이상의 후보 단어들 각각은, 적어도 상기 복수의 콘택들에 포함된 콘택들의 양만큼의 문자들을 포함하고;
가상 스페이스바 키의 표현의 적어도 일부분과 중첩되는 상기 터치 감지 디스플레이의 영역에서 상기 후속 콘택이 행해졌는지 여부에 적어도 부분적으로 근거하여 상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것인지 여부를 결정하는 동작과, 여기서 상기 영역은 또한, 상기 가상 스페이스바 키의 표현 바깥쪽에 있는 상기 가상 키보드의 표현의 적어도 일부분과 관련된 허용한계 영역을 포함하고, 만약 상기 하나 이상의 후보 단어들에서의 최상위 후보 단어가 상기 복수의 콘택들에 포함된 콘택들의 양보다 더 많은 수의 문자들을 갖는다면 상기 허용한계 영역은 제 1 크기를 포함하고, 그리고 만약 상기 최상위 후보 단어가 상기 복수의 콘택들에 포함된 콘택들의 양과 동일한 수의 문자들을 갖는다면 상기 허용한계 영역은 상기 제 1 크기와는 다른 제 2 크기를 포함하며; 그리고
상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것이라는 결정에 응답하여, 상기 최상위 후보 단어를, 상기 터치 감지 디스플레이에서 디스플레이되는 텍스트 영역에서의 디스플레이를 위해, 출력하는 동작을 포함하는 동작들을 수행하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 매체. - 삭제
- 삭제
- 제12항에 있어서,
상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것인지 여부를 결정하는 동작은, 복수의 콘택들에 적어도 부분적으로 근거하는 것을 특징으로 하는 컴퓨터 판독가능 매체. - 제12항에 있어서,
상기 터치 감지 디스플레이의 영역에서 상기 후속 콘택이 행해진 경우에도 상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것이 아니라고 결정하는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체. - 제12항에 있어서,
상기 복수의 콘택들은, 상기 가상 스페이스바 키의 표현 내에서 행해진 적어도 하나의 콘택을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체. - 제12항에 있어서,
상기 하나 이상의 후보 단어들을 나열하는 제안 메뉴를, 상기 터치 감지 디스플레이에서의 디스플레이를 위해, 출력하는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체. - 컴퓨팅 디바이스로서,
하나 이상의 프로세서들과;
터치 감지 디스플레이와; 그리고
상기 하나 이상의 프로세서들 상에서 동작가능한 입력 모듈(input module)을 포함하여 구성되며,
상기 터치 감지 디스플레이는,
복수의 가상 키들을 갖는 가상 키보드의 표현을 디스플레이하는 것과;
상기 가상 키보드의 표현과 관련된 상기 터치 감지 디스플레이의 일부분에서 복수의 콘택들의 각각의 콘택의 각각의 표시를 수신하는 것과; 그리고
상기 복수의 콘택들의 각각의 콘택의 각각의 표시를 수신한 이후, 상기 가상 키보드의 표현과 관련된 상기 터치 감지 디스플레이의 일부분에서 후속 콘택을 검출하는 것을 수행하도록 되어 있고,
상기 입력 모듈은,
상기 복수의 콘택들에 적어도 부분적으로 근거하여 상기 컴퓨팅 디바이스에 의해 하나 이상의 후보 단어들을 결정하는 것과, 여기서 상기 하나 이상의 후보 단어들 각각은, 적어도 상기 복수의 콘택들에 포함된 콘택들의 양만큼의 문자들을 포함하고;
가상 스페이스바 키의 표현의 적어도 일부분과 중첩되는 상기 터치 감지 디스플레이의 영역에서 상기 후속 콘택이 행해졌는지 여부에 적어도 부분적으로 근거하여 상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것인지 여부를 결정하는 것과, 여기서 상기 영역은 또한, 상기 가상 스페이스바 키의 표현 바깥쪽에 있는 상기 가상 키보드의 표현의 적어도 일부분과 관련된 허용한계 영역을 포함하고, 만약 상기 하나 이상의 후보 단어들에서의 최상위 후보 단어가 상기 복수의 콘택들에 포함된 콘택들의 양보다 더 많은 수의 문자들을 갖는다면 상기 허용한계 영역은 제 1 크기를 포함하고, 그리고 만약 상기 최상위 후보 단어가 상기 복수의 콘택들에 포함된 콘택들의 양과 동일한 수의 문자들을 갖는다면 상기 허용한계 영역은 상기 제 1 크기와는 다른 제 2 크기를 포함하며; 그리고
상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것이라는 결정에 응답하여, 상기 최상위 후보 단어를 상기 터치 감지 디스플레이에서 디스플레이되는 텍스트 영역에 출력하는 것을 수행하도록 되어 있는 것을 특징으로 하는 컴퓨팅 디바이스. - 제19항에 있어서,
상기 입력 모듈은 또한,
상기 후속 콘택이 상기 터치 감지 디스플레이의 영역에서 행해진 경우에도 상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것이 아니라고 결정하는 것을 수행하도록 되어 있는 것을 특징으로 하는 컴퓨팅 디바이스. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/479,074 US8484573B1 (en) | 2012-05-23 | 2012-05-23 | Predictive virtual keyboard |
US13/479,074 | 2012-05-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130131252A KR20130131252A (ko) | 2013-12-03 |
KR101345320B1 true KR101345320B1 (ko) | 2013-12-27 |
Family
ID=48701558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130058488A KR101345320B1 (ko) | 2012-05-23 | 2013-05-23 | 예측 가상 키보드 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8484573B1 (ko) |
KR (1) | KR101345320B1 (ko) |
AU (1) | AU2013205915B1 (ko) |
DE (1) | DE102013105212A1 (ko) |
GB (2) | GB2502447B (ko) |
Families Citing this family (164)
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 |
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 |
US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task 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 |
US8510348B2 (en) * | 2010-03-03 | 2013-08-13 | Wgrs Licensing Company, Llc | Systems and methods for creating and using imbedded shortcodes and shortened physical and internet addresses |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US9430145B2 (en) * | 2011-04-06 | 2016-08-30 | Samsung Electronics Co., Ltd. | Dynamic text input using on and above surface sensing of hands and fingers |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US9223774B2 (en) | 2012-01-17 | 2015-12-29 | Groupon, Inc. | Email suggestor system |
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 |
US8484573B1 (en) * | 2012-05-23 | 2013-07-09 | Google Inc. | Predictive virtual keyboard |
US10296581B2 (en) * | 2012-06-06 | 2019-05-21 | Apple Inc. | Multi-word autocorrection |
US9721563B2 (en) | 2012-06-08 | 2017-08-01 | Apple Inc. | Name recognition system |
US9152319B2 (en) * | 2012-07-16 | 2015-10-06 | Avaya Inc. | Method for simplifying a Swype based touch-screen keypad for fast text entry |
US9547375B2 (en) | 2012-10-10 | 2017-01-17 | Microsoft Technology Licensing, Llc | Split virtual keyboard on a mobile computing device |
US9996213B2 (en) * | 2012-12-24 | 2018-06-12 | Nokia Technology Oy | Apparatus for a user interface and associated methods |
CN113470640B (zh) | 2013-02-07 | 2022-04-26 | 苹果公司 | 数字助理的语音触发器 |
KR20140106287A (ko) * | 2013-02-26 | 2014-09-03 | 삼성전자주식회사 | 단말에서 문자 입력을 위한 방법 및 장치 |
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 |
WO2014197335A1 (en) | 2013-06-08 | 2014-12-11 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
CN110442699A (zh) | 2013-06-09 | 2019-11-12 | 苹果公司 | 操作数字助理的方法、计算机可读介质、电子设备和系统 |
CN105453026A (zh) | 2013-08-06 | 2016-03-30 | 苹果公司 | 基于来自远程设备的活动自动激活智能响应 |
JP2016534481A (ja) * | 2013-09-18 | 2016-11-04 | タクチュアル ラブズ シーオー. | 状態変化および将来のユーザ入力の予想に関する情報を使用するユーザ入力に対する応答を提供するためのシステムおよび方法 |
US10296160B2 (en) | 2013-12-06 | 2019-05-21 | Apple Inc. | Method for extracting salient dialog usage from live data |
US20150169537A1 (en) * | 2013-12-13 | 2015-06-18 | Nuance Communications, Inc. | Using statistical language models to improve text input |
JP2015125616A (ja) * | 2013-12-26 | 2015-07-06 | ソニー株式会社 | 表示制御装置、表示制御方法およびプログラム |
US20150286402A1 (en) * | 2014-04-08 | 2015-10-08 | Qualcomm Incorporated | Live non-visual feedback during predictive text keyboard operation |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
US9966065B2 (en) | 2014-05-30 | 2018-05-08 | Apple Inc. | Multi-command single utterance input method |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
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 |
US9671956B2 (en) | 2014-06-18 | 2017-06-06 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Presenting search term suggestions on graphical user interfaces |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
CN104268166B (zh) * | 2014-09-09 | 2017-04-19 | 北京搜狗科技发展有限公司 | 一种输入方法、装置和电子设备 |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
CN104281275B (zh) * | 2014-09-17 | 2016-07-06 | 北京搜狗科技发展有限公司 | 一种英文的输入方法和装置 |
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 |
US10025764B2 (en) | 2014-10-30 | 2018-07-17 | Snap-On Incorporated | Methods and systems for taxonomy assist at data entry points |
WO2016068455A1 (ko) * | 2014-10-30 | 2016-05-06 | 주식회사 플런티코리아 | 적응적인 키보드 인터페이스를 제공하기 위한 방법 및 시스템, 대화 내용과 연동되는 적응적 키보드를 이용한 답변 입력 방법 |
CN104506951B (zh) * | 2014-12-08 | 2018-09-04 | 青岛海信电器股份有限公司 | 一种文字输入方法、装置及智能终端 |
CN105988704B (zh) * | 2015-03-03 | 2020-10-02 | 上海触乐信息科技有限公司 | 高效的触摸屏文本输入系统及方法 |
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 |
US9678664B2 (en) | 2015-04-10 | 2017-06-13 | Google Inc. | Neural network for keyboard input decoding |
US10460227B2 (en) | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
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 |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US9578173B2 (en) | 2015-06-05 | 2017-02-21 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US10101822B2 (en) | 2015-06-05 | 2018-10-16 | Apple Inc. | Language input correction |
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 |
US10740384B2 (en) | 2015-09-08 | 2020-08-11 | Apple Inc. | Intelligent automated assistant for media search and playback |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10331312B2 (en) | 2015-09-08 | 2019-06-25 | Apple Inc. | Intelligent automated assistant in a media environment |
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 |
US20170185286A1 (en) * | 2015-12-29 | 2017-06-29 | Google Inc. | Continuous keyboard recognition |
WO2020219476A1 (en) * | 2019-04-21 | 2020-10-29 | Hyperkey Inc. | Advanced keyboard based search |
KR102462365B1 (ko) * | 2016-02-29 | 2022-11-04 | 삼성전자주식회사 | 사용자 데모그래픽 정보 및 콘텍스트 정보에 기초한 텍스트 입력 예측 방법 및 장치 |
US10140017B2 (en) | 2016-04-20 | 2018-11-27 | Google Llc | Graphical keyboard application with integrated search |
US9965530B2 (en) | 2016-04-20 | 2018-05-08 | Google Llc | Graphical keyboard with integrated search features |
US10078673B2 (en) | 2016-04-20 | 2018-09-18 | Google Llc | Determining graphical elements associated with text |
US10222957B2 (en) | 2016-04-20 | 2019-03-05 | Google Llc | Keyboard with a suggested search query region |
US10305828B2 (en) | 2016-04-20 | 2019-05-28 | Google Llc | Search query predictions by a 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 |
US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
US10664157B2 (en) | 2016-08-03 | 2020-05-26 | Google Llc | Image search query predictions by a keyboard |
US10474753B2 (en) | 2016-09-07 | 2019-11-12 | Apple Inc. | Language identification using recurrent neural networks |
CN106468960A (zh) * | 2016-09-07 | 2017-03-01 | 北京新美互通科技有限公司 | 一种输入法候选项排序的方法和系统 |
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 |
GB201620235D0 (en) * | 2016-11-29 | 2017-01-11 | Microsoft Technology Licensing Llc | Neural network data entry system |
US11281993B2 (en) | 2016-12-05 | 2022-03-22 | Apple Inc. | Model and ensemble compression for metric learning |
US10417332B2 (en) | 2016-12-15 | 2019-09-17 | Microsoft Technology Licensing, Llc | Predicting text by combining attempts |
US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
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 |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
DK180048B1 (en) | 2017-05-11 | 2020-02-04 | Apple Inc. | MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION |
DK201770439A1 (en) | 2017-05-11 | 2018-12-13 | Apple Inc. | Offline personal assistant |
US10395654B2 (en) | 2017-05-11 | 2019-08-27 | Apple Inc. | Text normalization based on a data-driven learning network |
DK201770427A1 (en) | 2017-05-12 | 2018-12-20 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
US11301477B2 (en) | 2017-05-12 | 2022-04-12 | Apple Inc. | Feedback analysis of a digital assistant |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL 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 |
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 |
US20180336892A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Detecting a trigger of a digital assistant |
US20180336275A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Intelligent automated assistant for media exploration |
DK179549B1 (en) | 2017-05-16 | 2019-02-12 | Apple Inc. | FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES |
US10657328B2 (en) | 2017-06-02 | 2020-05-19 | Apple Inc. | Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling |
US11455094B2 (en) | 2017-07-11 | 2022-09-27 | Thumba Inc. | Interactive virtual keyboard configured for gesture based word selection and having a plurality of keys arranged approximately radially about at least one center point |
US11073904B2 (en) * | 2017-07-26 | 2021-07-27 | Microsoft Technology Licensing, Llc | Intelligent user interface element selection using eye-gaze |
KR20190024071A (ko) * | 2017-08-31 | 2019-03-08 | 필아이티 주식회사 | 가상 키보드에서 추천어를 제공하는 모바일 장치 및 방법 |
KR20190024072A (ko) * | 2017-08-31 | 2019-03-08 | 필아이티 주식회사 | 가상 키보드를 통하여 입력받은 문자열을 교정하는 모바일 장치 및 방법 |
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 |
KR20190114410A (ko) * | 2018-03-30 | 2019-10-10 | 필아이티 주식회사 | 가상 키보드에서 추천단어를 연속으로 입력받는 모바일 장치 및 방법 |
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 |
DK201870355A1 (en) | 2018-06-01 | 2019-12-16 | Apple Inc. | VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS |
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 |
US10504518B1 (en) | 2018-06-03 | 2019-12-10 | Apple Inc. | Accelerated task performance |
KR102544250B1 (ko) | 2018-07-03 | 2023-06-16 | 삼성전자주식회사 | 소리를 출력하는 디바이스 및 그 방법 |
US11010561B2 (en) | 2018-09-27 | 2021-05-18 | Apple Inc. | Sentiment prediction from textual data |
US11170166B2 (en) | 2018-09-28 | 2021-11-09 | Apple Inc. | Neural typographical error modeling via generative adversarial networks |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
US10839159B2 (en) | 2018-09-28 | 2020-11-17 | Apple Inc. | Named entity normalization in a spoken dialog system |
US11475898B2 (en) | 2018-10-26 | 2022-10-18 | Apple Inc. | Low-latency multi-speaker speech recognition |
KR102527892B1 (ko) * | 2018-11-26 | 2023-05-02 | 삼성전자주식회사 | 예측 단어를 제공하기 위한 전자 장치 및 그의 동작 방법 |
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 |
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 |
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 |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
DK201970511A1 (en) | 2019-05-31 | 2021-02-15 | Apple Inc | Voice identification in digital assistant systems |
DK180129B1 (en) | 2019-05-31 | 2020-06-02 | Apple Inc. | USER ACTIVITY SHORTCUT SUGGESTIONS |
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 |
US11468890B2 (en) | 2019-06-01 | 2022-10-11 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11360641B2 (en) | 2019-06-01 | 2022-06-14 | Apple Inc. | Increasing the relevance of new available information |
US11488406B2 (en) | 2019-09-25 | 2022-11-01 | Apple Inc. | Text detection using global geometry estimators |
US11038934B1 (en) | 2020-05-11 | 2021-06-15 | Apple Inc. | Digital assistant hardware abstraction |
US11061543B1 (en) | 2020-05-11 | 2021-07-13 | Apple Inc. | Providing relevant data items based on context |
US11755276B2 (en) | 2020-05-12 | 2023-09-12 | Apple Inc. | Reducing description length based on confidence |
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 |
USD959552S1 (en) | 2021-07-21 | 2022-08-02 | Speedfind, Inc | Display sign |
EP4242805A4 (en) * | 2022-01-27 | 2024-02-14 | Samsung Electronics Co Ltd | ELECTRONIC DEVICE AND METHOD FOR RECOGNIZING USER INTENT FROM TOUCH INPUT ON A VIRTUAL KEYBOARD, AND NON-TRANSIENT COMPUTER-READABLE STORAGE MEDIUM |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060256139A1 (en) | 2005-05-11 | 2006-11-16 | Gikandi David C | Predictive text computer simplified keyboard with word and phrase auto-completion (plus text-to-speech and a foreign language translation option) |
US20060265648A1 (en) | 2005-05-23 | 2006-11-23 | Roope Rainisto | Electronic text input involving word completion functionality for predicting word candidates for partial word inputs |
US20120036468A1 (en) | 2010-08-03 | 2012-02-09 | Nokia Corporation | User input remapping |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5953541A (en) | 1997-01-24 | 1999-09-14 | Tegic Communications, Inc. | Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use |
US7844914B2 (en) | 2004-07-30 | 2010-11-30 | Apple Inc. | Activating virtual keys of a touch-screen virtual keyboard |
KR100327209B1 (ko) | 1998-05-12 | 2002-04-17 | 윤종용 | 첨펜의자취를이용한소프트웨어키보드시스템및그에따른키코드인식방법 |
US7293231B1 (en) | 1999-03-18 | 2007-11-06 | British Columbia Ltd. | Data entry for personal computing devices |
US7750891B2 (en) | 2003-04-09 | 2010-07-06 | Tegic Communications, Inc. | Selective input system based on tracking of motion parameters of an input device |
DE60043008D1 (de) | 1999-05-27 | 2009-11-05 | Tegic Comm Inc | Tastatursystem mit automatischer korrektur |
US7030863B2 (en) | 2000-05-26 | 2006-04-18 | America Online, Incorporated | Virtual keyboard system with automatic correction |
ATE457486T1 (de) | 2000-07-21 | 2010-02-15 | Speedscript Ag | Verfahren für ein schnellschreibsystem und schnellschreibgerät |
US7042443B2 (en) | 2001-10-11 | 2006-05-09 | Woodard Scott E | Speed Writer program and device with Speed Writer program installed |
US7075520B2 (en) | 2001-12-12 | 2006-07-11 | Zi Technology Corporation Ltd | Key press disambiguation using a keypad of multidirectional keys |
US7151530B2 (en) | 2002-08-20 | 2006-12-19 | Canesta, Inc. | System and method for determining an input selected by a user through a virtual interface |
US7199786B2 (en) | 2002-11-29 | 2007-04-03 | Daniel Suraqui | Reduced keyboards system using unistroke input and having automatic disambiguating and a recognition method using said system |
US7251367B2 (en) | 2002-12-20 | 2007-07-31 | International Business Machines Corporation | System and method for recognizing word patterns based on a virtual keyboard layout |
US7453439B1 (en) | 2003-01-16 | 2008-11-18 | Forward Input Inc. | System and method for continuous stroke word-based text input |
US7098896B2 (en) | 2003-01-16 | 2006-08-29 | Forword Input Inc. | System and method for continuous stroke word-based text input |
SG135918A1 (en) | 2003-03-03 | 2007-10-29 | Xrgomics Pte Ltd | Unambiguous text input method for touch screens and reduced keyboard systems |
US7250938B2 (en) | 2004-01-06 | 2007-07-31 | Lenovo (Singapore) Pte. Ltd. | System and method for improved user input on personal computing devices |
US7706616B2 (en) | 2004-02-27 | 2010-04-27 | International Business Machines Corporation | System and method for recognizing word patterns in a very large vocabulary based on a virtual keyboard layout |
US20060176283A1 (en) | 2004-08-06 | 2006-08-10 | Daniel Suraqui | Finger activated reduced keyboard and a method for performing text input |
US7508324B2 (en) | 2004-08-06 | 2009-03-24 | Daniel Suraqui | Finger activated reduced keyboard and a method for performing text input |
US8552984B2 (en) * | 2005-01-13 | 2013-10-08 | 602531 British Columbia Ltd. | Method, system, apparatus and computer-readable media for directing input associated with keyboard-type device |
US8036878B2 (en) | 2005-05-18 | 2011-10-11 | Never Wall Treuhand GmbH | Device incorporating improved text input mechanism |
US8185841B2 (en) * | 2005-05-23 | 2012-05-22 | Nokia Corporation | Electronic text input involving a virtual keyboard and word completion functionality on a touch-sensitive display screen |
WO2007019610A1 (en) * | 2005-08-12 | 2007-02-22 | Kannuu Pty Ltd | Improved process and apparatus for selecting an item from a database |
US20080076472A1 (en) * | 2006-09-22 | 2008-03-27 | Sony Ericsson Mobile Communications Ab | Intelligent Predictive Text Entry |
US20080243808A1 (en) * | 2007-03-29 | 2008-10-02 | Nokia Corporation | Bad word list |
US8059101B2 (en) | 2007-06-22 | 2011-11-15 | Apple Inc. | Swipe gestures for touch screen keyboards |
US9189472B2 (en) * | 2009-03-30 | 2015-11-17 | Touchtype Limited | System and method for inputting text into small screen devices |
GB201108200D0 (en) * | 2011-05-16 | 2011-06-29 | Touchtype Ltd | User input prediction |
US20100315266A1 (en) * | 2009-06-15 | 2010-12-16 | Microsoft Corporation | Predictive interfaces with usability constraints |
US20110041056A1 (en) * | 2009-08-14 | 2011-02-17 | Research In Motion Limited | Electronic device with touch-sensitive display and method of facilitating input at the electronic device |
US8516367B2 (en) | 2009-09-29 | 2013-08-20 | Verizon Patent And Licensing Inc. | Proximity weighted predictive key entry |
US8135582B2 (en) | 2009-10-04 | 2012-03-13 | Daniel Suraqui | Keyboard system and method for global disambiguation from classes with dictionary database from first and last letters |
US8884872B2 (en) * | 2009-11-20 | 2014-11-11 | Nuance Communications, Inc. | Gesture-based repetition of key activations on a virtual keyboard |
US8619035B2 (en) * | 2010-02-10 | 2013-12-31 | Tactus Technology, Inc. | Method for assisting user input to a device |
US8782556B2 (en) * | 2010-02-12 | 2014-07-15 | Microsoft Corporation | User-centric soft keyboard predictive technologies |
KR20120009200A (ko) * | 2010-07-23 | 2012-02-01 | 삼성전자주식회사 | 휴대용 단말기에서 문자 입력 방법 및 장치 |
US8918734B2 (en) | 2010-07-28 | 2014-12-23 | Nuance Communications, Inc. | Reduced keyboard with prediction solutions when input is a partial sliding trajectory |
US8904309B1 (en) * | 2011-11-23 | 2014-12-02 | Google Inc. | Prediction completion gesture |
US9201510B2 (en) * | 2012-04-16 | 2015-12-01 | Blackberry Limited | Method and device having touchscreen keyboard with visual cues |
US20130285916A1 (en) * | 2012-04-30 | 2013-10-31 | Research In Motion Limited | Touchscreen keyboard providing word predictions at locations in association with candidate letters |
US8484573B1 (en) * | 2012-05-23 | 2013-07-09 | Google Inc. | Predictive virtual keyboard |
-
2012
- 2012-05-23 US US13/479,074 patent/US8484573B1/en active Active
-
2013
- 2013-05-17 AU AU2013205915A patent/AU2013205915B1/en not_active Ceased
- 2013-05-22 DE DE102013105212A patent/DE102013105212A1/de not_active Withdrawn
- 2013-05-23 KR KR1020130058488A patent/KR101345320B1/ko active IP Right Grant
- 2013-05-23 GB GB1309339.8A patent/GB2502447B/en active Active
- 2013-05-23 GB GBGB1309311.7A patent/GB201309311D0/en not_active Ceased
- 2013-07-08 US US13/936,913 patent/US9317201B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060256139A1 (en) | 2005-05-11 | 2006-11-16 | Gikandi David C | Predictive text computer simplified keyboard with word and phrase auto-completion (plus text-to-speech and a foreign language translation option) |
US20060265648A1 (en) | 2005-05-23 | 2006-11-23 | Roope Rainisto | Electronic text input involving word completion functionality for predicting word candidates for partial word inputs |
US20120036468A1 (en) | 2010-08-03 | 2012-02-09 | Nokia Corporation | User input remapping |
Also Published As
Publication number | Publication date |
---|---|
GB201309311D0 (en) | 2013-07-10 |
KR20130131252A (ko) | 2013-12-03 |
GB2502447A (en) | 2013-11-27 |
AU2013205915B1 (en) | 2013-08-15 |
US8484573B1 (en) | 2013-07-09 |
US20130314352A1 (en) | 2013-11-28 |
US9317201B2 (en) | 2016-04-19 |
GB201309339D0 (en) | 2013-07-10 |
DE102013105212A1 (de) | 2013-11-28 |
GB2502447B (en) | 2014-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101345320B1 (ko) | 예측 가상 키보드 | |
US9594505B1 (en) | Prediction completion gesture | |
KR101376286B1 (ko) | 터치스크린 텍스트 입력 | |
US8850350B2 (en) | Partial gesture text entry | |
US20190278476A1 (en) | Dynamic soft keyboard | |
US9262076B2 (en) | Soft keyboard interface | |
US9471220B2 (en) | Posture-adaptive selection | |
US9753906B2 (en) | Character string replacement | |
US9891818B2 (en) | Adaptive touch-sensitive displays and methods | |
EP3005066B1 (en) | Multiple graphical keyboards for continuous gesture input | |
KR101602840B1 (ko) | 스마트 사용자 커스터마이징된 가상 키보드 | |
US9569107B2 (en) | Gesture keyboard with gesture cancellation | |
US8701050B1 (en) | Gesture completion path display for gesture-based keyboards | |
US8760428B2 (en) | Multi-directional calibration of touch screens | |
US10037139B2 (en) | Method and apparatus for word completion | |
KR102335883B1 (ko) | 멀티 입력 타겟과 연관된 하나 이상의 입력을 입력하는 시스템 및 방법 | |
WO2014062955A1 (en) | Gesture-keyboard decoding using gesture path deviation | |
US20130346904A1 (en) | Targeted key press zones on an interactive display | |
WO2014158742A1 (en) | Morpheme-level predictive graphical keyboard | |
US8994681B2 (en) | Decoding imprecise gestures for gesture-keyboards | |
JP2020013577A (ja) | 仮想キーボードの誤タイピングを補正するための方法、システム、およびコンピュータプログラム | |
US9804777B1 (en) | Gesture-based text selection | |
EP3008554B1 (en) | Modifying input delivery to applications | |
EP2770407B1 (en) | Method and apparatus for word completion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20161207 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20171208 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20181207 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20191212 Year of fee payment: 7 |