KR101345320B1 - 예측 가상 키보드 - Google Patents

예측 가상 키보드 Download PDF

Info

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
Application number
KR1020130058488A
Other languages
English (en)
Other versions
KR20130131252A (ko
Inventor
슈민 즈하이
로렌스 디아오
Original Assignee
구글 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 인코포레이티드 filed Critical 구글 인코포레이티드
Publication of KR20130131252A publication Critical patent/KR20130131252A/ko
Application granted granted Critical
Publication of KR101345320B1 publication Critical patent/KR101345320B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus

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

예측 가상 키보드{PREDICTIVE VIRTUAL KEYBOARD}
사용자들은 스크린 표면 상에 키(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은 본 개시내용의 하나 이상의 실시형태에 따른, 터치 감지 디스플레이 상의 가상 키보드들을 사용하는 텍스트 입력에 대해서 예측 텍스트 정정 및 완성을 위한 프로세스의 예시적 동작을 나타낸 흐름도이다.
일반적으로, 본 개시내용의 실시형태들은 터치 감지 디스플레이 상의 가상 키보드를 사용하는 텍스트 입력에 대해서 예측 텍스트 정정 및 완성을 위한 기법들에 관한 것이다. 예를 들어, 사용자는 가상 키보드 상의 가상 키들에 콘택함으로써 텍스트 입력을 생성할 수 있다. 본 명세서에서 설명되는 방법들은 사용자가 타이핑하려고 하는 단어를 예측할 수 있다. 예측 단어가 텍스트 입력으로서 사용될 수 있고, 아울러 사용자에 의해 실제로 콘택된 가상 키들과 관련된 문자들 대신에 디스플레이될 수 있다.
전형적으로, 특정 레벨의 오류 허용한계(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)

  1. 복수의 가상 키(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)에서의 디스플레이를 위해, 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 제 2 크기는 상기 제 1 크기보다 더 큰 것을 특징으로 하는 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것인지 여부를 결정하는 단계는, 상기 복수의 콘택들에 적어도 부분적으로 근거하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 최상위 후보 단어를, 상기 텍스트 영역에서의 디스플레이를 위해, 출력하는 단계는, 상기 복수의 콘택들을 통해 입력되는 하나 이상의 문자들을 상기 최상위 후보 단어로 교체하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 터치 감지 디스플레이의 영역에서 상기 후속 콘택이 행해진 경우에도 상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것이 아니라고 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 삭제
  8. 삭제
  9. 제1항에 있어서,
    상기 하나 이상의 후보 단어들을 나열하는 제안 메뉴(suggestions menu)를, 상기 터치 감지 디스플레이에서의 디스플레이를 위해, 출력하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서,
    상기 복수의 콘택들은, 상기 최상위 후보 단어 내의 대응하는 위치에서의 문자와 부합하지 않는 가상 키의 표현 내에서 행해진 적어도 하나의 콘택을 포함하는 것을 특징으로 하는 방법.
  11. 제10항에 있어서,
    상기 적어도 하나의 콘택은 상기 가상 스페이스바 키의 표현 내에서 행해지는 것을 특징으로 하는 방법.
  12. 명령들을 포함하는 컴퓨터 판독가능 매체로서,
    상기 명령들은 적어도 하나의 프로그래밍가능 프로세서에 의해 실행될 때 상기 적어도 하나의 프로그래밍가능 프로세서로 하여금,
    복수의 가상 키들을 갖는 가상 키보드의 표현을, 컴퓨팅 디바이스에 동작가능하게 결합된 터치 감지 디스플레이에서의 디스플레이를 위해, 출력하는 동작과;
    상기 가상 키보드의 표현과 관련된 상기 터치 감지 디스플레이의 일부분에서 복수의 콘택들의 각각의 콘택의 각각의 표시를 수신하는 동작과;
    상기 복수의 콘택들의 각각의 콘택의 각각의 표시를 수신한 이후, 상기 가상 키보드의 표현과 관련된 상기 터치 감지 디스플레이의 일부분에서 후속 콘택의 표시를 수신하는 동작과;
    상기 복수의 콘택들에 적어도 부분적으로 근거하여 상기 컴퓨팅 디바이스에 의해 하나 이상의 후보 단어들을 결정하는 동작과, 여기서 상기 하나 이상의 후보 단어들 각각은, 적어도 상기 복수의 콘택들에 포함된 콘택들의 양만큼의 문자들을 포함하고;
    가상 스페이스바 키의 표현의 적어도 일부분과 중첩되는 상기 터치 감지 디스플레이의 영역에서 상기 후속 콘택이 행해졌는지 여부에 적어도 부분적으로 근거하여 상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것인지 여부를 결정하는 동작과, 여기서 상기 영역은 또한, 상기 가상 스페이스바 키의 표현 바깥쪽에 있는 상기 가상 키보드의 표현의 적어도 일부분과 관련된 허용한계 영역을 포함하고, 만약 상기 하나 이상의 후보 단어들에서의 최상위 후보 단어가 상기 복수의 콘택들에 포함된 콘택들의 양보다 더 많은 수의 문자들을 갖는다면 상기 허용한계 영역은 제 1 크기를 포함하고, 그리고 만약 상기 최상위 후보 단어가 상기 복수의 콘택들에 포함된 콘택들의 양과 동일한 수의 문자들을 갖는다면 상기 허용한계 영역은 상기 제 1 크기와는 다른 제 2 크기를 포함하며; 그리고
    상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것이라는 결정에 응답하여, 상기 최상위 후보 단어를, 상기 터치 감지 디스플레이에서 디스플레이되는 텍스트 영역에서의 디스플레이를 위해, 출력하는 동작을 포함하는 동작들을 수행하도록 하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  13. 삭제
  14. 삭제
  15. 제12항에 있어서,
    상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것인지 여부를 결정하는 동작은, 복수의 콘택들에 적어도 부분적으로 근거하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  16. 제12항에 있어서,
    상기 터치 감지 디스플레이의 영역에서 상기 후속 콘택이 행해진 경우에도 상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것이 아니라고 결정하는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  17. 제12항에 있어서,
    상기 복수의 콘택들은, 상기 가상 스페이스바 키의 표현 내에서 행해진 적어도 하나의 콘택을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  18. 제12항에 있어서,
    상기 하나 이상의 후보 단어들을 나열하는 제안 메뉴를, 상기 터치 감지 디스플레이에서의 디스플레이를 위해, 출력하는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
  19. 컴퓨팅 디바이스로서,
    하나 이상의 프로세서들과;
    터치 감지 디스플레이와; 그리고
    상기 하나 이상의 프로세서들 상에서 동작가능한 입력 모듈(input module)을 포함하여 구성되며,
    상기 터치 감지 디스플레이는,
    복수의 가상 키들을 갖는 가상 키보드의 표현을 디스플레이하는 것과;
    상기 가상 키보드의 표현과 관련된 상기 터치 감지 디스플레이의 일부분에서 복수의 콘택들의 각각의 콘택의 각각의 표시를 수신하는 것과; 그리고
    상기 복수의 콘택들의 각각의 콘택의 각각의 표시를 수신한 이후, 상기 가상 키보드의 표현과 관련된 상기 터치 감지 디스플레이의 일부분에서 후속 콘택을 검출하는 것을 수행하도록 되어 있고,
    상기 입력 모듈은,
    상기 복수의 콘택들에 적어도 부분적으로 근거하여 상기 컴퓨팅 디바이스에 의해 하나 이상의 후보 단어들을 결정하는 것과, 여기서 상기 하나 이상의 후보 단어들 각각은, 적어도 상기 복수의 콘택들에 포함된 콘택들의 양만큼의 문자들을 포함하고;
    가상 스페이스바 키의 표현의 적어도 일부분과 중첩되는 상기 터치 감지 디스플레이의 영역에서 상기 후속 콘택이 행해졌는지 여부에 적어도 부분적으로 근거하여 상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것인지 여부를 결정하는 것과, 여기서 상기 영역은 또한, 상기 가상 스페이스바 키의 표현 바깥쪽에 있는 상기 가상 키보드의 표현의 적어도 일부분과 관련된 허용한계 영역을 포함하고, 만약 상기 하나 이상의 후보 단어들에서의 최상위 후보 단어가 상기 복수의 콘택들에 포함된 콘택들의 양보다 더 많은 수의 문자들을 갖는다면 상기 허용한계 영역은 제 1 크기를 포함하고, 그리고 만약 상기 최상위 후보 단어가 상기 복수의 콘택들에 포함된 콘택들의 양과 동일한 수의 문자들을 갖는다면 상기 허용한계 영역은 상기 제 1 크기와는 다른 제 2 크기를 포함하며; 그리고
    상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것이라는 결정에 응답하여, 상기 최상위 후보 단어를 상기 터치 감지 디스플레이에서 디스플레이되는 텍스트 영역에 출력하는 것을 수행하도록 되어 있는 것을 특징으로 하는 컴퓨팅 디바이스.
  20. 제19항에 있어서,
    상기 입력 모듈은 또한,
    상기 후속 콘택이 상기 터치 감지 디스플레이의 영역에서 행해진 경우에도 상기 후속 콘택이 상기 가상 스페이스바 키를 선택하려는 것이 아니라고 결정하는 것을 수행하도록 되어 있는 것을 특징으로 하는 컴퓨팅 디바이스.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020130058488A 2012-05-23 2013-05-23 예측 가상 키보드 KR101345320B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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