WO2000038041A1 - Keyboard system for a computing device with correction of key based input errors - Google Patents

Keyboard system for a computing device with correction of key based input errors Download PDF

Info

Publication number
WO2000038041A1
WO2000038041A1 PCT/GB1999/004321 GB9904321W WO0038041A1 WO 2000038041 A1 WO2000038041 A1 WO 2000038041A1 GB 9904321 W GB9904321 W GB 9904321W WO 0038041 A1 WO0038041 A1 WO 0038041A1
Authority
WO
WIPO (PCT)
Prior art keywords
keys
key
dictionary
word
letters
Prior art date
Application number
PCT/GB1999/004321
Other languages
French (fr)
Inventor
Nicholas Healey
Original Assignee
Symbian Limited
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 Symbian Limited filed Critical Symbian Limited
Publication of WO2000038041A1 publication Critical patent/WO2000038041A1/en

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation

Definitions

  • This invention relates to keyboard systems, and in particular to keyboard systems for computing devices which can detect and correct key-based input errors.
  • the term 'key' used in this patent specification should be expansively construed to cover any form of input system which a user touches, presses or otherwise selects in order to identify a letter, number or function. It covers, without limitation, the numeric and alphameric keys of a mechanical keyboard, a soft key array and a touch panel.
  • a 'keyboard' as used in this specification is a collection of such 'keys'.
  • the term 'computing device' used in this patent specification should be expansively construed to cover any form of electrical device and includes computers of any form factor, including handheld and personal computers, and communication devices of any form factor, including mobile telephones, smart phones, communicators which combine communications and computing functionality into a single device and other kinds of wireless and wired information devices.
  • Sophisticated word processing programs such as Microsoft Word include advanced spell check programs which can compare words input to a computer using a conventional
  • Spell check programs are also found in hand held, self contained units, such as those from Franklin Computer Corporation. Spell-check programs have been the subject of intense scrutiny for several decades and many different approaches have been devised for effective spell-checking. Reference, for example, may be made to US 5248536 in the name of Franklin Electronic Publishers, Inc. which discloses a spell-check program which includes comparing an input word to a dictionary using phonetic comparison, typographic comparison, vowel and consonant typographic comparison and consonant phonetic comparison. The exact form of comparison which is undertaken in contemporary spell check programs involves sophisticated pattern matching algorithms which are disclosed in the literature.
  • Touch screen keyboards such as are used in personal organisers and some communicators, are particularly prone to mis-hits because of the small size of the keyboard and the absence of discrete keys.
  • Reduced keyboards for example incorporating nine keys, each being labelled with three letters, are one solution to the problems posed by text entry to small hand held devices. Reference may for example be made to US 5818437 to Tegic Communications, Inc. Reduced keyboard systems, however, do not compensate for accidentally hitting a key adjacent to the correct key.
  • a method of correcting a key based input to a computing device using keys of a keyboard includes the step of determining the keys adjacent to the keys actually struck or selected.
  • the key based input may relate to letters.
  • the method of the present invention would include the step of determining that the letter 'x' lay adjacent to the letters 'c' and 'z', assuming that a conventional QWERTY keyboard had been used. That determination can be used in a variety of ways. For example, it could be used to weight the results obtained through conventional pattern matching spell check techniques, so that the word 'car' was presented as the first, or in some embodiments, the only 'correct' substitution. Prior art systems do not compensate for key mis-hits in this manner, or at all.
  • the key input may also not relate to letters at all. Keyboards on small computing or communications devices are very crowded and mis-selection of menu items is easy: for example, the on-screen menu on a primarily numeric keypad might dictate hitting any of the numbers T, '2' or '3' to select one of three different options. If the key for number '4' is accidentally mis-hit instead of T, then in one embodiment, the step of determining the keys adjacent to the key actually struck occurs. This enables the embodiment to determine that in all likelihood the user intended to strike key ' 1 '.
  • the present invention envisages a method in which, if there is more than one word located in the dictionary process (whether or not that process uses any of the sophisticated pattern matching techniques found in conventional spell-check programs), then there is a further step of determining which word located in the dictionary look-up process includes the highest number of letters actually hit. It is that word that may be made the highest priority suggested or automatic substitution.
  • both 'foal' and 'soak' and 'dial' are possible words.
  • the ambiguity relating to which of these 3 words was intended can be resolved by determining which of these words includes the highest number of letters actually hit.
  • the word 'soak' would be correctly identified, since it has 3 letters actually hit compared to 'foal' and 'dial', which each have 2 letters.
  • one of the inventive steps is that there is a determination of the keys on the same row which are adjacent to the keys actually struck or selected.
  • this principle is extended to cover a determination of keys which are merely nearby to the keys actually struck, such as keys which are next door but one on the same row, and keys which are on different rows but are nevertheless adjacent. Weighting of the significance of hitting such keys may also be used, with keys adjacent and on the same row being given the highest weighting.
  • the keyboard may be extended by the inclusion of extra blank keys at each end of each row.
  • the embodiment determines that the correct key should be the key 'Q'.
  • monitoring of the exact touch position may also occur. This enables weighting of the proximate letters closest to the actual contact position.
  • contact positions for any one key may be resolved using an 8x8 grid touch sensitive grid overlying the display, with all keys being defined by their own 8x8 grid.
  • the touched gird defines the letter 'H' on a QWERTY keyboard, but the actual contact position is clearly closer to 'G' than T on the 8x8 grid, then the letter 'G' can be weighted more heavily in the word selection process.
  • the system might select the 'c' in 'cvat' and perform the look-up against 'cat'.
  • the system could select the V in 'cvat' and perform the look-up against 'vat'.
  • the system of the present invention may be adapted so that dictionary words which are very rarely used are subject to the letter substitution techniques described above.
  • the word 'See' may be incorrectly input as the word 'Dee' because of a mishit of the letter 'D' instead of 'S'.
  • a conventional spell-check program might pass this if it contained the unusual word 'Dee' in its dictionary (it is the name of a British river).
  • the word 'Dee' is classified as an unusual word, so that the embodiment automatically applies letter substitution to generate the more common word 'See'.
  • the more common word 'See' is then offered as a potential substitution, or may be automatically input.
  • mis-hitting may vary from one part of the keyboard to another.
  • N-grams would require less memory, and be an intrinsically faster algorithm than a dictionary based approach.
  • Feedback to the user can also be provided, indicating the proposed word correction. This enables the user to correct the proposed correction in an efficient manner, and also to modify the data structures used in the word validation process. In this way, the process can be an adaptive one.
  • a computing device operable to perform the above inventive methods
  • pre-recorded media programmed with software to perform the above inventive methods
  • a computer program operable to perform the above inventive methods.
  • Appendix 1 This section describes a number of algorithms for implementing the present invention. Each is documented in 'pseudo-code', which should be translatable into most programming languages by a competent programmer.
  • This algorithm uses the nearest match routine that is to be found with many dictionary systems.
  • word$ Obtain word from keyboard input Look up word$ in dictionary
  • DisposeDictionary (less) ; ⁇ Dispose of the grea ter sub-tree ⁇ DisposeDictionary (more) ;
  • Procedure LoadDictionary (Const FileName: String) ; ⁇ Loads the dictionary from, a file of words . Each word must be one per line, with no spaces .
  • This embodiment is a very restricted one, designed to show the principles .
  • i t only handles tne letters on a standard keybaord.
  • the al gori thm is tha t of subsi tu ting each neighbouring key for each letter, to find al l rela ted varien ts in the dictionary . ⁇
  • Var testWord possibles: String; letter : Char; i, j : Integer; Begin
  • testWord[i] Neighbours [letter] [j ] ; ⁇ If i t is in our di ctionary. . . ⁇
  • This routine also illustrates the option of determining the most likely word as being the one with the minimum transformations .
  • This routine could also handle the one-key error case. ⁇
  • TryWordTransf orm returns all words it can genera te which are in the dictionary. This algorithm is recursive because we do not know in advance how long the word is going to be.
  • TryWordTransform possibles; End; End; Begin
  • MultipleKeyErrorCheck TryWordTransform (1, 0, inputWord); WriteLn; End;
  • TestWord String; begin ⁇ Keypad ⁇

Abstract

A method of correcting a key based input to a computing device using keys of a keyboard, including the step of determining the keys adjacent to the keys actually struck or selected. Hence, if the word 'car' is accidentally input as 'xar', the present invention includes the step of determining that the letter 'x' lay adjacent to the letters 'c' and 'z', assuming that a conventional QWERTY keyboard had been used. This information can be used to automatically correct the mis-hit.

Description

Keyboard system for a computing device with correction of key based input errors
Field of the Invention
This invention relates to keyboard systems, and in particular to keyboard systems for computing devices which can detect and correct key-based input errors. The term 'key' used in this patent specification should be expansively construed to cover any form of input system which a user touches, presses or otherwise selects in order to identify a letter, number or function. It covers, without limitation, the numeric and alphameric keys of a mechanical keyboard, a soft key array and a touch panel. A 'keyboard' as used in this specification is a collection of such 'keys'. The term 'computing device' used in this patent specification should be expansively construed to cover any form of electrical device and includes computers of any form factor, including handheld and personal computers, and communication devices of any form factor, including mobile telephones, smart phones, communicators which combine communications and computing functionality into a single device and other kinds of wireless and wired information devices.
Description of the Prior Art
Sophisticated word processing programs such as Microsoft Word include advanced spell check programs which can compare words input to a computer using a conventional
QWERTY keyboard against words in a dictionary stored in the computer. Spell check programs are also found in hand held, self contained units, such as those from Franklin Computer Corporation. Spell-check programs have been the subject of intense scrutiny for several decades and many different approaches have been devised for effective spell-checking. Reference, for example, may be made to US 5248536 in the name of Franklin Electronic Publishers, Inc. which discloses a spell-check program which includes comparing an input word to a dictionary using phonetic comparison, typographic comparison, vowel and consonant typographic comparison and consonant phonetic comparison. The exact form of comparison which is undertaken in contemporary spell check programs involves sophisticated pattern matching algorithms which are disclosed in the literature.
One of the limitations of current spell-check programs can be best illustrated by an example. Suppose the word 'car' is to be input using an ordinary QWERTY keyboard. If the letter 'c' is accidentally missed, and instead the adjacent letter 'x' is hit, many conventional spell check program will in essence present the user with a list of all three letter dictionary words ending in 'ar'. Hence, the following list might be presented to the user in a list of possible 'correct' words: ear oar bar car far gar jar mar par tar war
This requires the user to reject the first three candidate 'correct' words before selecting the genuinely correct substitute, 'car'. This is time consuming and can be tedious for the user.
For some three letter combinations, an even more restrictive list will be generated. For example, if the word 'cat' is erroneously input as 'xat', then many conventional word-processing spell- check programs will suggest only 'at' as the correct substitution.
Hence, prior art spell-check programs do not consider whether or not a key that has been hit or selected is actually adjacent to the key that should have been struck.
The problem of accidentally hitting a key adjacent to the correct key affects users of full sized QWERTY keyboards, but may be particularly acute where miniature keyboards are used.
Touch screen keyboards, such as are used in personal organisers and some communicators, are particularly prone to mis-hits because of the small size of the keyboard and the absence of discrete keys. Reduced keyboards, for example incorporating nine keys, each being labelled with three letters, are one solution to the problems posed by text entry to small hand held devices. Reference may for example be made to US 5818437 to Tegic Communications, Inc. Reduced keyboard systems, however, do not compensate for accidentally hitting a key adjacent to the correct key.
Statement of the Invention
In accordance with a first aspect of the present invention, a method of correcting a key based input to a computing device using keys of a keyboard includes the step of determining the keys adjacent to the keys actually struck or selected. The key based input may relate to letters.
Hence, returning to the example given above of the word 'car' accidentally being input as 'xar', the method of the present invention would include the step of determining that the letter 'x' lay adjacent to the letters 'c' and 'z', assuming that a conventional QWERTY keyboard had been used. That determination can be used in a variety of ways. For example, it could be used to weight the results obtained through conventional pattern matching spell check techniques, so that the word 'car' was presented as the first, or in some embodiments, the only 'correct' substitution. Prior art systems do not compensate for key mis-hits in this manner, or at all.
The key input may also not relate to letters at all. Keyboards on small computing or communications devices are very crowded and mis-selection of menu items is easy: for example, the on-screen menu on a primarily numeric keypad might dictate hitting any of the numbers T, '2' or '3' to select one of three different options. If the key for number '4' is accidentally mis-hit instead of T, then in one embodiment, the step of determining the keys adjacent to the key actually struck occurs. This enables the embodiment to determine that in all likelihood the user intended to strike key ' 1 '.
In another embodiment, sophisticated pattern matching is dispensed with entirely; instead, there is a simple dictionary or N-gram look up based solely on words or letter strings generated using the various letter combinations associated with the keys either side and on the same row of the hit/selected keys, as well as the actually hit/selected keys themselves. Hence, for example, if the user was attempting to type the word 'soak', the letters 'doak' might be hit. Then, the in the present method, the following letter combinations are considered in the dictionary look-up (again, assuming a QWERTY keyboard):
s d f i o P a s i k 1
One word in the dictionary that can be extracted from these possible combinations is 'soak' . This approach is quite different to the prior art approach, in so far as it models the errors in input words that can arise through mis-hits.
Optionally, the present invention envisages a method in which, if there is more than one word located in the dictionary process (whether or not that process uses any of the sophisticated pattern matching techniques found in conventional spell-check programs), then there is a further step of determining which word located in the dictionary look-up process includes the highest number of letters actually hit. It is that word that may be made the highest priority suggested or automatic substitution. Hence, in the previous example, both 'foal' and 'soak' and 'dial' are possible words. The ambiguity relating to which of these 3 words was intended can be resolved by determining which of these words includes the highest number of letters actually hit. In this example, the word 'soak' would be correctly identified, since it has 3 letters actually hit compared to 'foal' and 'dial', which each have 2 letters.
In the above embodiments, one of the inventive steps is that there is a determination of the keys on the same row which are adjacent to the keys actually struck or selected. In another embodiment, this principle is extended to cover a determination of keys which are merely nearby to the keys actually struck, such as keys which are next door but one on the same row, and keys which are on different rows but are nevertheless adjacent. Weighting of the significance of hitting such keys may also be used, with keys adjacent and on the same row being given the highest weighting.
For touchscreen keyboard embodiments of the invention, the keyboard may be extended by the inclusion of extra blank keys at each end of each row. Hence, for example, if the blank key adjacent to the key 'Q' on a QWERTY keyboard is hit, then the embodiment determines that the correct key should be the key 'Q'.
In addition, monitoring of the exact touch position may also occur. This enables weighting of the proximate letters closest to the actual contact position. Hence, on a typical touchscreen, contact positions for any one key may be resolved using an 8x8 grid touch sensitive grid overlying the display, with all keys being defined by their own 8x8 grid. Hence, if the touched gird defines the letter 'H' on a QWERTY keyboard, but the actual contact position is clearly closer to 'G' than T on the 8x8 grid, then the letter 'G' can be weighted more heavily in the word selection process.
For ordinary mechanical keyboards (i.e. those relying on a degree of travel of a key to activate selection of that key), ambiguity can arise when a finger accidentally presses 2 keys at the same time. That risk is increased as keyboard size decreases. This kind of mis-hit normally results in both letters being selected: hence if on a QWERTY keyboard, an attempt is made to spell 'cat' but both 'c' and V keys are simultaneously hit, then the word 'cvat' or perhaps 'vcat' would ordinarily be input. In one embodiment, pairs of letters which are adjacent to one another are recognised and, if the input word is not recognised as a dictionary word, then the system selects one of the adjacent letters forming a pair and performs a dictionary look up. Hence, the system might select the 'c' in 'cvat' and perform the look-up against 'cat'. Likewise, the system could select the V in 'cvat' and perform the look-up against 'vat'. In another embodiment, the system of the present invention may be adapted so that dictionary words which are very rarely used are subject to the letter substitution techniques described above. Hence, the word 'See' may be incorrectly input as the word 'Dee' because of a mishit of the letter 'D' instead of 'S'. A conventional spell-check program might pass this if it contained the unusual word 'Dee' in its dictionary (it is the name of a British river). In this embodiment, the word 'Dee' is classified as an unusual word, so that the embodiment automatically applies letter substitution to generate the more common word 'See'. The more common word 'See' is then offered as a potential substitution, or may be automatically input.
It may also be desirable to dynamically modify the 'probable mis-hit' table in the light of experience. For example, some users may be more prone to hitting keys on the same row, others on the same column. Further, the mis-hitting may vary from one part of the keyboard to another.
In addition, as well as or instead of using a dictionary, other data structures such as an n-gram approach could be used to validate words. N-grams would require less memory, and be an intrinsically faster algorithm than a dictionary based approach.
Feedback to the user can also be provided, indicating the proposed word correction. This enables the user to correct the proposed correction in an efficient manner, and also to modify the data structures used in the word validation process. In this way, the process can be an adaptive one.
In other aspects, there are provided: a computing device operable to perform the above inventive methods; pre-recorded media programmed with software to perform the above inventive methods; and a computer program operable to perform the above inventive methods.
Detailed Description
The following Appendix 1 is presented as the Detailed Description.
Appendix 1 This section describes a number of algorithms for implementing the present invention. Each is documented in 'pseudo-code', which should be translatable into most programming languages by a competent programmer.
Algorithm One: High Level
This algorithm uses the nearest match routine that is to be found with many dictionary systems.
word$ = Obtain word from keyboard input Look up word$ in dictionary
If not found in dictionary then Propose nearest match
Algorithm Two: NearestMatch
This is a complete embodiment in that it can be compiled and run and was tested using Borland Delphi v 5 (Pascal) on a PC running Microsoft Windows '95. However, not all techniques included in the patent body are necessarily illustrated in the source code. All techniques (other than those specifically identified within the source code) are part of the patent. The Pascal language was used since it was designed for illustrating algorithms. This patent may be embodied in any computer language or indeed in hardware. First we present the source code which teaches an embodiment of the present invention. Any line numbers are part of this patent documentation, rather than part of the code. Formatting is for guidance only. Comments are enclosed within curly brackets, {like this}.
Program Keypad;
{5APPTYPE CONSOLE} uses
SysUtils;
{ ===== Dictionary ===== }
{ The dictionary implementation cresented here is not part of the invention , but is used to snoi now the invention might interact with a dictionary or any other structure capable of verifying the correctness of a word, j
{ This demonstration dictionary, whose implementation is not relevant , is implemented as a simple b rary tree, a well recognised technique m computer science. } Type
DictionaryPomter = ΛD ctιc^aryNode; DictionaryNode = Record less, Pointer to lesser sub-nodes } more: DictionaryPomter; Pointer to greater sub-nodes } text: String; ' The word being stored }
{ info: data; } Extra information here }
End;
Var Dictionary: DictionaryPomter; { The acutal dictionary }
Function Lookup ( Const d: DictionaryPomter;
Const s: String/ : Boolean; { Returns true if s is found _n tΛe dictionary d. The actual implementation is not part of the patent. }
Begin
If d = Nil then
Lookup := False Else with d do begin If text = s then
Lookup := True Else if s < text then
LookUp:= LookUp (less, s) Else LookUp := LookUp (more, s)
End; End;
Procedure Insert ( Var d: DictionaryPomter; Const s: String);
{ Inserts s into the dictionary } Begin
{ Is this an empty node? } If d = Nil then begin { Yes, so put m the word } New(d) ; With dΛ do begin less:= Nil; more : = Nil; text:= s; End; End
Else with d do begin
{ No, i ts not an empty node . }
If text = s then { A dupl ica te - but this implemen ta tion does not mind Exit
Else If s < text then
{ It is less then the word stored here, so insert i t in the lesser sub- tree . }
Insert (less, s) Else
{ It is grea ter than t e word s tored here, so insert in in the grea ter sub- tree . }
Insert (more, s) End; End;
Procedure DisposeDictionary (Var c: DictionaryPomter);
{ Disposes of the dictionary wi th a pos t -order traversal Begin If d <> nil then begin With dA do begin { Dispose of the lesser sub-tree }
DisposeDictionary (less) ; { Dispose of the grea ter sub-tree } DisposeDictionary (more) ;
{ Clear ou t our da ta } text:= ' ' ; End; { Dispose of this node } Dispose (d) ; d:= Nil; End; End; { The following rou tines form the 'API ' to our dictionary
Function InDictionary (Const s: String): Boolean;
{ Returns true if the word s is in the dictionary }
Begin InDictionary := LookUp (Dictionary, Uppercase (s) ) End;
Procedure LoadDictionary (Const FileName: String) ; { Loads the dictionary from, a file of words . Each word must be one per line, with no spaces .
The words should not be in alphabetical order. Only call this once ! } Var f: TextFile; DictionaryWord: String; Begin
Write ( 'Loading ', FileName, ' ...'); Dιctιonary:= Nil;
Ass gnFile (f, FileName); ReSet (f ) ;
While not EoF(f) do begin
ReadLn(f, DictionaryWord);
Insert (Dictionary, Uppercase (DictionaryWord) ) ; End{while} ;
CloseFιle(f ) ;
WriteLn ( ' done ' ) ; End;
Procedure ClearDictionary;
{ Clears out the current dictionary }
Begin
If Dictionary <> Nil then
DisposeDictionary (Dictionary) End;
===== Core Algori thm ===== }
The code m this section is part of the pa ten t .
This embodiment is a very restricted one, designed to show the principles .
For example, i t only handles tne letters on a standard keybaord.
{ Tables )
{ This table of neighbouring keys, wi thin the scope of the pa ten t , could be made :
1) To hold further informa tion , such as probabili ties and scores
2) Adaptive, to learn which keys the particular user tends to press m error, as well as adapting to differen t parts of the keyboard. } Var
Neighbours : Array ['A' 'Z' ] of String = ( {a} 'SQZW' , {b} ' VNGH ' , {c} 'XVDF' , {d} 'SFEXC , {e} ' WRD ' , {f} ' DGRCV ' ,
{g} 1 FHTVB ' , {h} 'GJYBN' ,
{1} 'UOK' , i ) ' HKUNM ' ,
{k} ' JLIM' , {1} 'KO', {m} 'NJK' , {n} 'BMHJ' , {o} 'IPL', {p} '0',
{q} 'WA' , ) 'ETF' ,
{s} ' ADWZX ' , {t} ' RYG ' , { } 'YIJ', {v} 'CBFG' , {w} 'QES', {x} 'ZCSD' ,
{y} 'TUH' , ' XAS ' ) ;
Function OneKeyErrorCheck (Const Input ord: String) String; { Using the Symbian technology, corrects a string for incorrect input.
{ It takes the en tered word, and returns a l is t of possibl e ' correct ' words }
I The al gori thm is tha t of subsi tu ting each neighbouring key for each letter, to find al l rela ted varien ts in the dictionary . }
Var testWord , possibles: String; letter : Char; i, j : Integer; Begin
WriteLn ( ' OneKeyErrorCheck : ' ) ;
{ Now see if we can crea te a val id word by transposing a single chara cter to any of i ts keyboard neighbours . } possibles : = ' ' ;
{ Check each character posi tion in turn . . . } For i:= 1 to Length ( InputWord) do begin testWord := Uppercase ( InputWord) ; letter:= InputWord [i] ; { ... agains t each of i ts keyboard neighbours }
For j:= 1 to Length (Neighbours [letter] ) do begin testWord[i] := Neighbours [letter] [j ] ; { If i t is in our di ctionary. . . }
If InDictionary (TestWord) then begin { ... then this word is possible, so add i t to the list } possibles:= possibles + ' ' + testWord; Write (testWord, '-ok '); End{then} Else { ... otherwise it is not }
Write (testWord, '-no '); End{for j } ; WriteLn; End{for i}; OneKeyErrorCheck := possibles;
End{ OneKeyErrorCheck} ;
Function MultipleKeyErrorChec (Const input ord: String): String;
{ This function assumes that more than one key may have been mistyped. It tries to find words with multiple key substitutions that are in the dictionary.
This routine also illustrates the option of determining the most likely word as being the one with the minimum transformations .
This routine could also handle the one-key error case. }
Function Try ordTransfoπn ( Const position : Integer; changes : Integer ; s : String) : String;
{ By transforming let ters a t posi tion , and calling i tself,
TryWordTransf orm returns all words it can genera te which are in the dictionary. This algorithm is recursive because we do not know in advance how long the word is going to be.
Non-recursive embodiments are also possible and part of the patent.
As a variation, we are also calculating the number of changes (via the changes variable) required to get from the input wcrd to the word in the dictionary, and using this as a score. Note that other scoring systems, or indeed no scoring system, are also within the scope of this patent. } Var letter : Char; i : Integer; possibles: String; Begin
If position > Length (s) -hen { We've got to the end of the word } TryWordTransform: = ''
Else begin
{ Generate, test, and add to the list any valid varients which don't involve cr.anging the current character. } possibles:= TryWordTransform (position+1, changes, s);
{ We now change the current character to all possibilities based on our table of neighbours. } letter:= s [position] ;
For i:= 1 to Length (Neighbours [letter] ) do begin s [position] := Neighbours [letter] [i] ;
{ See if this swap has generated a valid word... }
If InDictionary (s) then begin { ... it has, so add it to the list } Write (s, ' -ok ' ; ; possibles:= Possibles + ' ' + s + ' (' +
IntToStr (changes+1) + ')'; End Else
{ ... it has not, so ignore it } Write (s, '-no ');
{ Generate, test, and add to the list any valid varients which derive from zhis changed version. } possibles:= possibles + TryWordTransform (position+1, changes+1, s) ; End;
TryWordTransform: = possibles; End; End; Begin
WriteLn ( 'MultipleKeyErrorCheck: ' ) ;
MultipleKeyErrorCheck:= TryWordTransform (1, 0, inputWord); WriteLn; End;
Function KeyTransformErrorChec (Const s: String): String; { Checks for key swaps. } { This is not part of the Syoian inven tion , bu t is a wel l -known tecn wni ch migh t be used a l ongside i t . Var testWord , possibles: String; l : Integer; c : Char; Begin
WriteLn ( ' KeyTransformErrorCneck : ' ) ; possibles ::
For ι:= 1 to Length (s)-l αo begin { Build a new test word. . . } testWord:= s;
{ ... by swapping l et ters . > c:= testWord [l] ; testWord[ι] := testWord [l+l] ; testWord[ι+l] := c; { If i ts m the dictionary. . . }
If InDictionary (testWorα) then begin { ... then i t is a possibili ty } Write (testWord, '-ok '); possibles := Possibles + ' ' + testWord; End
Else
{ ... otherwise it is not } Write (testWord, '-no ' ) ; End;
WriteLn;
KeyTransformErrorCheck:= possibles; End; Function Chec ord (s : String): String;
{ This wrapper function calls a variety of techniques, all covered by the Symbian invention, to determine what the correct word might be . Note that the patent envisages other related techniques in addition to those documented in this simple embodiment . }
Var possibleWords: String; Begin s:= Uppercase (s) ;
If InDictionary (s) then begin CheckWord := s; Exit; End; possibleWords := OneKeyErrorCheck (s) ; If possibleWords <> ' ' then begin CheckWord := possibleWords; Exit;
End; possibleWords := MultιpleKeyErrorCheck(s) ; I f possibleWords <> ' ' then oegin
CheckWord : = possibleWords ;
Exit ; End; possibleWords := KeyTransforrr.nrrorCheck (s) ; If possibleWords <> ' ' then begin
CheckWord := possibleWords;
Exit; End;
CheckWord := s + '?' ; End; { ==== Dri ver demons tra tion program ==== }
Var
TestWord: String; begin{Keypad}
WriteLn (' Symbian Keyboard Patent Demonstration'); WriteLn ( 'Algorithum subject to Symbian patent'); WriteLn; LoadDictionary ( 'words . txt ') ;
Repeat
Write ('Enter test word, including ''mistakes'',); WriteLn ('or just press <enter> to finish.'); Write ('>') ;
ReadLn (TestWord) ;
If Length (TestWord) > 1 then
WriteLn ('-> ', CheckWord (TestWord) ) ; Until TestWord = ' ' ; WriteLn;
ClearDictionary,
WriteLn ( ' Finished' ) ; end.
We now present an extremely simple test dictionary, refered to as 'words.txt' in the source code: cat rat mat sat hat bat vat fat

Claims

Claims
1. A method of correcting a key based input to a computing device using keys of a keyboard, including the step of determining the keys adjacent to the keys actually struck or selected.
2. The method of Claim 1 wherein a key based input represents a letter of the alphabet.
3. The method of Claim 1 wherein a key based input represents the selection of an option.
4. The method claimed in Claim 2 wherein the result of the determination is used to weight spell checking results obtained through conventional pattern matching techniques.
5. The method of Claim 2 including the further step of a dictionary or N-gram validation process based solely on words or letter strings generated by considering the various letter combinations associated with the keys either side and on the same row of the hit/selected keys, as well as the actually hit/selected keys themselves.
6. The method of Claim 5 wherein if there is more than one word located in the dictionary or N-gram validation process, then there is a further step of determining which word or string located in the dictionary or N-gram validation process includes the highest number of letters actually hit.
7. The method of Claim 2 and any preceding Claim dependent on Claim 2 wherein there is provided a blank key at the end of at least one row.
8. The method of Claim 2 and any preceding Claim dependent on Claim 2 further including the step of recognising pairs of letters which are adjacent on the keyboard and determining any words located in a word validation process which include one or the other of the letters forming the pair.
9. The method of any preceding Claim including the further step of the automatic correction of mis-hits.
10. The method of any preceding Claims 1-8 including the further step of the user being presented with one or more options, each corresponding to a possible key input or series of key inputs which the system considers to be a valid key input or series of key inputs.
11. The method of any preceding claim further including the step of determining the keys adjacent to the keys actually struck or selected but which are not immediately proximate.
12. The method of Claim 11 wherein the determination of keys which are adjacent but not immediately proximate to the keys actually struck is used to weight a spell checking or dictionary look-up set of results.
13. The method of any preceding claim including the step of monitoring the exact contact point for a key within the boundaries of the key itself.
14. The method of Claim 13 wherein the result of monitoring the exact contact point for a key within the boundaries of the key itself is used to weight a spell checking or dictionary look-up set of results.
15. The method of any preceding claim including the step of monitoring the time a key is selected and if two letters keys are selected at substantially the same time, the further step of determining if the two keys are adjacent or proximate to one another and, if so, choosing only one of those letters to use in a verification step.
16. A computing device operable to perform the method defined in Claims 1 - 15.
17. Pre-recorded media programmed with software to perform the method defined in Claims 1 -15.
18. A computer program operable to perform the method defined in Claims 1 - 15.
PCT/GB1999/004321 1998-12-19 1999-12-20 Keyboard system for a computing device with correction of key based input errors WO2000038041A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9827930.0 1998-12-19
GBGB9827930.0A GB9827930D0 (en) 1998-12-19 1998-12-19 Keyboard system for a computing device with correction of key based input errors

Publications (1)

Publication Number Publication Date
WO2000038041A1 true WO2000038041A1 (en) 2000-06-29

Family

ID=10844503

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB1999/004321 WO2000038041A1 (en) 1998-12-19 1999-12-20 Keyboard system for a computing device with correction of key based input errors

Country Status (2)

Country Link
GB (1) GB9827930D0 (en)
WO (1) WO2000038041A1 (en)

Cited By (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2360740A (en) * 2000-03-28 2001-10-03 Gilbert Stokoe Keypad with keys having contact points wherein a microprocessor identifies which key a user intended to select by the greatest number of points activated
WO2008007218A2 (en) * 2006-07-10 2008-01-17 Qrg Limited Touch sensitive user interface
EP1986080A1 (en) * 2007-04-25 2008-10-29 Research In Motion Limited Keystroke error correction method
EP2100210A1 (en) * 2007-01-05 2009-09-16 Apple Inc. Method and system for providing word recommendations for text input
US7705828B2 (en) 1998-06-26 2010-04-27 Research In Motion Limited Dual-mode mobile communication device
US7952571B2 (en) 2001-10-19 2011-05-31 Research In Motion Limited Hand-held electronic device with multiple input mode thumbwheel
US7991929B2 (en) 2005-11-23 2011-08-02 Research In Motion Limited System and method for recognizing a keystroke in an electronic device
US8074172B2 (en) 2007-01-05 2011-12-06 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US8232973B2 (en) 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
EP2410404A3 (en) * 2010-07-19 2013-02-20 EchoStar Technologies L.L.C. System and method for data item filtering based on character sequence entry
US8416195B2 (en) 1998-06-26 2013-04-09 Research In Motion Limited Hand-held electronic device with a keyboard optimized for use with the thumbs
US8451242B2 (en) 2003-04-30 2013-05-28 Microsoft Corporation Keyboard with input-sensitive display device
US8583421B2 (en) 2009-03-06 2013-11-12 Motorola Mobility Llc Method and apparatus for psychomotor and psycholinguistic prediction on touch based device
US8892446B2 (en) 2010-01-18 2014-11-18 Apple Inc. Service orchestration for intelligent automated assistant
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US9300784B2 (en) 2013-06-13 2016-03-29 Apple Inc. System and method for emergency calls initiated by voice command
US9310922B2 (en) 2012-04-30 2016-04-12 Blackberry Limited Method and apparatus for determining a selection option
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9535906B2 (en) 2008-07-31 2017-01-03 Apple Inc. Mobile device having human language translation capability with positional feedback
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
US9620104B2 (en) 2013-06-07 2017-04-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US9626955B2 (en) 2008-04-05 2017-04-18 Apple Inc. Intelligent text-to-speech conversion
US9633660B2 (en) 2010-02-25 2017-04-25 Apple Inc. User profiling for voice input processing
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9633674B2 (en) 2013-06-07 2017-04-25 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9646614B2 (en) 2000-03-16 2017-05-09 Apple Inc. Fast, language-independent method for user authentication by voice
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9697822B1 (en) 2013-03-15 2017-07-04 Apple Inc. System and method for updating an adaptive speech recognition model
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US9703390B2 (en) 1998-06-26 2017-07-11 Blackberry Limited Hand-held electronic device
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
EP2671136A4 (en) * 2011-02-04 2017-12-13 Nuance Communications, Inc. Correcting typing mistake based on probabilities of intended contact for non-contacted keys
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9922642B2 (en) 2013-03-15 2018-03-20 Apple Inc. Training an at least partial voice command system
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9953088B2 (en) 2012-05-14 2018-04-24 Apple Inc. Crowd sourcing information to fulfill user requests
US9959870B2 (en) 2008-12-11 2018-05-01 Apple Inc. Speech recognition involving a mobile device
US9966068B2 (en) 2013-06-08 2018-05-08 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9971774B2 (en) 2012-09-19 2018-05-15 Apple Inc. Voice-based media searching
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10079014B2 (en) 2012-06-08 2018-09-18 Apple Inc. Name recognition system
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10089072B2 (en) 2016-06-11 2018-10-02 Apple Inc. Intelligent device arbitration and control
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10185542B2 (en) 2013-06-09 2019-01-22 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10199051B2 (en) 2013-02-07 2019-02-05 Apple Inc. Voice trigger for a digital assistant
US10204096B2 (en) 2014-05-30 2019-02-12 Apple Inc. Device, method, and graphical user interface for a predictive keyboard
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10235023B2 (en) 2010-07-19 2019-03-19 Telefonaktiebolaget Lm Ericsson (Publ) Method for text input, apparatus, and computer program
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10269345B2 (en) 2016-06-11 2019-04-23 Apple Inc. Intelligent task discovery
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10283110B2 (en) 2009-07-02 2019-05-07 Apple Inc. Methods and apparatuses for automatic speech recognition
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US10297253B2 (en) 2016-06-11 2019-05-21 Apple Inc. Application integration with a digital assistant
US10318871B2 (en) 2005-09-08 2019-06-11 Apple Inc. Method and apparatus for building an intelligent automated assistant
US10356243B2 (en) 2015-06-05 2019-07-16 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10354011B2 (en) 2016-06-09 2019-07-16 Apple Inc. Intelligent automated assistant in a home environment
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US10410637B2 (en) 2017-05-12 2019-09-10 Apple Inc. User-specific acoustic models
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US10482874B2 (en) 2017-05-15 2019-11-19 Apple Inc. Hierarchical belief states for digital assistants
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10521466B2 (en) 2016-06-11 2019-12-31 Apple Inc. Data driven natural language event detection and classification
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US10568032B2 (en) 2007-04-03 2020-02-18 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US10607141B2 (en) 2010-01-25 2020-03-31 Newvaluexchange Ltd. Apparatuses, methods and systems for a digital conversation management platform
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10733993B2 (en) 2016-06-10 2020-08-04 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10755703B2 (en) 2017-05-11 2020-08-25 Apple Inc. Offline personal assistant
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US10791216B2 (en) 2013-08-06 2020-09-29 Apple Inc. Auto-activating smart responses based on activities from remote devices
US10791176B2 (en) 2017-05-12 2020-09-29 Apple Inc. Synchronization and task delegation of a digital assistant
US10810274B2 (en) 2017-05-15 2020-10-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US11194467B2 (en) 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
US11217255B2 (en) 2017-05-16 2022-01-04 Apple Inc. Far-field extension for digital assistant services
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6474612A (en) * 1987-09-17 1989-03-20 Mitsubishi Electric Corp Keyboard input control system
JPH0485660A (en) * 1990-07-30 1992-03-18 Matsushita Electric Ind Co Ltd Automatic input error correcting device
JPH0546594A (en) * 1991-08-08 1993-02-26 Nec Corp Input device
JPH05274076A (en) * 1992-03-26 1993-10-22 Nec Corp Keyboard with input correction function
JPH0713666A (en) * 1993-06-24 1995-01-17 Matsushita Electric Ind Co Ltd Data processor
US5748512A (en) * 1995-02-28 1998-05-05 Microsoft Corporation Adjusting keyboard

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6474612A (en) * 1987-09-17 1989-03-20 Mitsubishi Electric Corp Keyboard input control system
JPH0485660A (en) * 1990-07-30 1992-03-18 Matsushita Electric Ind Co Ltd Automatic input error correcting device
JPH0546594A (en) * 1991-08-08 1993-02-26 Nec Corp Input device
JPH05274076A (en) * 1992-03-26 1993-10-22 Nec Corp Keyboard with input correction function
JPH0713666A (en) * 1993-06-24 1995-01-17 Matsushita Electric Ind Co Ltd Data processor
US5748512A (en) * 1995-02-28 1998-05-05 Microsoft Corporation Adjusting keyboard

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
PATENT ABSTRACTS OF JAPAN vol. 13, no. 294 (P - 894) 7 July 1989 (1989-07-07) *
PATENT ABSTRACTS OF JAPAN vol. 16, no. 308 (P - 1381) 7 July 1992 (1992-07-07) *
PATENT ABSTRACTS OF JAPAN vol. 17, no. 348 (P - 1566) 30 June 1993 (1993-06-30) *
PATENT ABSTRACTS OF JAPAN vol. 18, no. 50 (P - 1683) 26 January 1994 (1994-01-26) *
PATENT ABSTRACTS OF JAPAN vol. 1995, no. 4 31 May 1995 (1995-05-31) *

Cited By (200)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10067572B2 (en) 1998-06-26 2018-09-04 Blackberry Limited Hand-held electronic device
US8416195B2 (en) 1998-06-26 2013-04-09 Research In Motion Limited Hand-held electronic device with a keyboard optimized for use with the thumbs
US9703390B2 (en) 1998-06-26 2017-07-11 Blackberry Limited Hand-held electronic device
US9134759B2 (en) 1998-06-26 2015-09-15 Blackberry Limited Dual-mode mobile communication device
US7705828B2 (en) 1998-06-26 2010-04-27 Research In Motion Limited Dual-mode mobile communication device
US9367141B2 (en) 1998-06-26 2016-06-14 Blackberry Limited Hand-held electronic device with a keyboard optimized for use with the thumbs
US9646614B2 (en) 2000-03-16 2017-05-09 Apple Inc. Fast, language-independent method for user authentication by voice
GB2360740A (en) * 2000-03-28 2001-10-03 Gilbert Stokoe Keypad with keys having contact points wherein a microprocessor identifies which key a user intended to select by the greatest number of points activated
US7952571B2 (en) 2001-10-19 2011-05-31 Research In Motion Limited Hand-held electronic device with multiple input mode thumbwheel
US8451242B2 (en) 2003-04-30 2013-05-28 Microsoft Corporation Keyboard with input-sensitive display device
US9430051B2 (en) 2003-04-30 2016-08-30 Microsoft Technology Licensing, Llc Keyboard with input-sensitive display device
US10318871B2 (en) 2005-09-08 2019-06-11 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7991929B2 (en) 2005-11-23 2011-08-02 Research In Motion Limited System and method for recognizing a keystroke in an electronic device
US8296485B2 (en) 2005-11-23 2012-10-23 Research In Motion Limited System and method for recognizing a keystroke in an electronic device
US8775702B2 (en) 2005-11-23 2014-07-08 Blackberry Limited System and method for recognizing a keystroke in an electronic device
WO2008007218A3 (en) * 2006-07-10 2008-07-17 Philipp Harald Touch sensitive user interface
US8786554B2 (en) 2006-07-10 2014-07-22 Atmel Corporation Priority and combination suppression techniques (PST/CST) for a capacitive keyboard
WO2008007218A2 (en) * 2006-07-10 2008-01-17 Qrg Limited Touch sensitive user interface
US9117447B2 (en) 2006-09-08 2015-08-25 Apple Inc. Using event alert text as input to an automated assistant
US8930191B2 (en) 2006-09-08 2015-01-06 Apple Inc. Paraphrasing of user requests and results by automated digital assistant
US8942986B2 (en) 2006-09-08 2015-01-27 Apple Inc. Determining user intent based on ontologies of domains
US7957955B2 (en) 2007-01-05 2011-06-07 Apple Inc. Method and system for providing word recommendations for text input
US11416141B2 (en) 2007-01-05 2022-08-16 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US8074172B2 (en) 2007-01-05 2011-12-06 Apple Inc. Method, system, and graphical user interface for providing word recommendations
EP2100210A1 (en) * 2007-01-05 2009-09-16 Apple Inc. Method and system for providing word recommendations for text input
US9189079B2 (en) 2007-01-05 2015-11-17 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US9244536B2 (en) 2007-01-05 2016-01-26 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US10592100B2 (en) 2007-01-05 2020-03-17 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US11112968B2 (en) 2007-01-05 2021-09-07 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US10568032B2 (en) 2007-04-03 2020-02-18 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
WO2008131527A1 (en) * 2007-04-25 2008-11-06 Research In Motion Limited Keystroke error correction method and apparatus
EP1986080A1 (en) * 2007-04-25 2008-10-29 Research In Motion Limited Keystroke error correction method
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US10381016B2 (en) 2008-01-03 2019-08-13 Apple Inc. Methods and apparatus for altering audio output signals
US11474695B2 (en) 2008-01-09 2022-10-18 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US9086802B2 (en) 2008-01-09 2015-07-21 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US8232973B2 (en) 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US11079933B2 (en) 2008-01-09 2021-08-03 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US9865248B2 (en) 2008-04-05 2018-01-09 Apple Inc. Intelligent text-to-speech conversion
US9626955B2 (en) 2008-04-05 2017-04-18 Apple Inc. Intelligent text-to-speech conversion
US10108612B2 (en) 2008-07-31 2018-10-23 Apple Inc. Mobile device having human language translation capability with positional feedback
US9535906B2 (en) 2008-07-31 2017-01-03 Apple Inc. Mobile device having human language translation capability with positional feedback
US9959870B2 (en) 2008-12-11 2018-05-01 Apple Inc. Speech recognition involving a mobile device
US8583421B2 (en) 2009-03-06 2013-11-12 Motorola Mobility Llc Method and apparatus for psychomotor and psycholinguistic prediction on touch based device
US11080012B2 (en) 2009-06-05 2021-08-03 Apple Inc. Interface for a virtual digital assistant
US10795541B2 (en) 2009-06-05 2020-10-06 Apple Inc. Intelligent organization of tasks items
US10475446B2 (en) 2009-06-05 2019-11-12 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10283110B2 (en) 2009-07-02 2019-05-07 Apple Inc. Methods and apparatuses for automatic speech recognition
US8903716B2 (en) 2010-01-18 2014-12-02 Apple Inc. Personalized vocabulary for digital assistant
US11423886B2 (en) 2010-01-18 2022-08-23 Apple Inc. Task flow identification based on user intent
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8892446B2 (en) 2010-01-18 2014-11-18 Apple Inc. Service orchestration for intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US9548050B2 (en) 2010-01-18 2017-01-17 Apple Inc. Intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US10706841B2 (en) 2010-01-18 2020-07-07 Apple Inc. Task flow identification based on user intent
US10607141B2 (en) 2010-01-25 2020-03-31 Newvaluexchange Ltd. Apparatuses, methods and systems for a digital conversation management platform
US11410053B2 (en) 2010-01-25 2022-08-09 Newvaluexchange Ltd. Apparatuses, methods and systems for a digital conversation management platform
US10984327B2 (en) 2010-01-25 2021-04-20 New Valuexchange Ltd. Apparatuses, methods and systems for a digital conversation management platform
US10607140B2 (en) 2010-01-25 2020-03-31 Newvaluexchange Ltd. Apparatuses, methods and systems for a digital conversation management platform
US10984326B2 (en) 2010-01-25 2021-04-20 Newvaluexchange Ltd. Apparatuses, methods and systems for a digital conversation management platform
US9633660B2 (en) 2010-02-25 2017-04-25 Apple Inc. User profiling for voice input processing
US10049675B2 (en) 2010-02-25 2018-08-14 Apple Inc. User profiling for voice input processing
US10606371B2 (en) 2010-07-19 2020-03-31 DISH Technologies L.L.C. System and method for data item filtering based on character sequence entry
US10235023B2 (en) 2010-07-19 2019-03-19 Telefonaktiebolaget Lm Ericsson (Publ) Method for text input, apparatus, and computer program
EP2410404A3 (en) * 2010-07-19 2013-02-20 EchoStar Technologies L.L.C. System and method for data item filtering based on character sequence entry
US10013077B2 (en) 2010-07-19 2018-07-03 DISH Technologies L.L.C. System and method for data item filtering based on character sequence entry
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
EP2671136A4 (en) * 2011-02-04 2017-12-13 Nuance Communications, Inc. Correcting typing mistake based on probabilities of intended contact for non-contacted keys
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10102359B2 (en) 2011-03-21 2018-10-16 Apple Inc. Device access using voice authentication
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US11120372B2 (en) 2011-06-03 2021-09-14 Apple Inc. Performing actions associated with task items that represent tasks to perform
US9798393B2 (en) 2011-08-29 2017-10-24 Apple Inc. Text correction processing
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9310922B2 (en) 2012-04-30 2016-04-12 Blackberry Limited Method and apparatus for determining a selection option
US9953088B2 (en) 2012-05-14 2018-04-24 Apple Inc. Crowd sourcing information to fulfill user requests
US10079014B2 (en) 2012-06-08 2018-09-18 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9971774B2 (en) 2012-09-19 2018-05-15 Apple Inc. Voice-based media searching
US10199051B2 (en) 2013-02-07 2019-02-05 Apple Inc. Voice trigger for a digital assistant
US10978090B2 (en) 2013-02-07 2021-04-13 Apple Inc. Voice trigger for a digital assistant
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
US9697822B1 (en) 2013-03-15 2017-07-04 Apple Inc. System and method for updating an adaptive speech recognition model
US9922642B2 (en) 2013-03-15 2018-03-20 Apple Inc. Training an at least partial voice command system
US9633674B2 (en) 2013-06-07 2017-04-25 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9966060B2 (en) 2013-06-07 2018-05-08 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9620104B2 (en) 2013-06-07 2017-04-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
US10657961B2 (en) 2013-06-08 2020-05-19 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US9966068B2 (en) 2013-06-08 2018-05-08 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
US10185542B2 (en) 2013-06-09 2019-01-22 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US9300784B2 (en) 2013-06-13 2016-03-29 Apple Inc. System and method for emergency calls initiated by voice command
US10791216B2 (en) 2013-08-06 2020-09-29 Apple Inc. Auto-activating smart responses based on activities from remote devices
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US10169329B2 (en) 2014-05-30 2019-01-01 Apple Inc. Exemplar-based natural language processing
US11120220B2 (en) 2014-05-30 2021-09-14 Apple Inc. Device, method, and graphical user interface for a predictive keyboard
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US10204096B2 (en) 2014-05-30 2019-02-12 Apple Inc. Device, method, and graphical user interface for a predictive keyboard
US11257504B2 (en) 2014-05-30 2022-02-22 Apple Inc. Intelligent assistant for home automation
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US10497365B2 (en) 2014-05-30 2019-12-03 Apple Inc. Multi-command single utterance input method
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US10083690B2 (en) 2014-05-30 2018-09-25 Apple Inc. Better resolution when referencing to concepts
US10255267B2 (en) 2014-05-30 2019-04-09 Apple Inc. Device, method, and graphical user interface for a predictive keyboard
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US11133008B2 (en) 2014-05-30 2021-09-28 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US10904611B2 (en) 2014-06-30 2021-01-26 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US9668024B2 (en) 2014-06-30 2017-05-30 Apple Inc. Intelligent automated assistant for TV user interactions
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10431204B2 (en) 2014-09-11 2019-10-01 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9986419B2 (en) 2014-09-30 2018-05-29 Apple Inc. Social reminders
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US11556230B2 (en) 2014-12-02 2023-01-17 Apple Inc. Data detection
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US11087759B2 (en) 2015-03-08 2021-08-10 Apple Inc. Virtual assistant activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10311871B2 (en) 2015-03-08 2019-06-04 Apple Inc. Competing devices responding to voice triggers
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10356243B2 (en) 2015-06-05 2019-07-16 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
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US11500672B2 (en) 2015-09-08 2022-11-15 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US11526368B2 (en) 2015-11-06 2022-12-13 Apple Inc. Intelligent automated assistant in a messaging environment
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
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
US11069347B2 (en) 2016-06-08 2021-07-20 Apple Inc. Intelligent automated assistant for media exploration
US10354011B2 (en) 2016-06-09 2019-07-16 Apple Inc. Intelligent automated assistant in a home environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US11037565B2 (en) 2016-06-10 2021-06-15 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10733993B2 (en) 2016-06-10 2020-08-04 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US11152002B2 (en) 2016-06-11 2021-10-19 Apple Inc. Application integration with a digital assistant
US10297253B2 (en) 2016-06-11 2019-05-21 Apple Inc. Application integration with a digital assistant
US10521466B2 (en) 2016-06-11 2019-12-31 Apple Inc. Data driven natural language event detection and classification
US10269345B2 (en) 2016-06-11 2019-04-23 Apple Inc. Intelligent task discovery
US10089072B2 (en) 2016-06-11 2018-10-02 Apple Inc. Intelligent device arbitration and control
US10553215B2 (en) 2016-09-23 2020-02-04 Apple Inc. Intelligent automated assistant
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US10755703B2 (en) 2017-05-11 2020-08-25 Apple Inc. Offline personal assistant
US10791176B2 (en) 2017-05-12 2020-09-29 Apple Inc. Synchronization and task delegation of a digital assistant
US11405466B2 (en) 2017-05-12 2022-08-02 Apple Inc. Synchronization and task delegation of a digital assistant
US10410637B2 (en) 2017-05-12 2019-09-10 Apple Inc. User-specific acoustic models
US10810274B2 (en) 2017-05-15 2020-10-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US10482874B2 (en) 2017-05-15 2019-11-19 Apple Inc. Hierarchical belief states for digital assistants
US11217255B2 (en) 2017-05-16 2022-01-04 Apple Inc. Far-field extension for digital assistant services
US11194467B2 (en) 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
US11620046B2 (en) 2019-06-01 2023-04-04 Apple Inc. Keyboard management user interfaces
US11842044B2 (en) 2019-06-01 2023-12-12 Apple Inc. Keyboard management user interfaces

Also Published As

Publication number Publication date
GB9827930D0 (en) 1999-02-10

Similar Documents

Publication Publication Date Title
WO2000038041A1 (en) Keyboard system for a computing device with correction of key based input errors
KR100723738B1 (en) Keyboard system with automatic correction
US9268764B2 (en) Probability-based approach to recognition of user-entered data
JP4463795B2 (en) Reduced keyboard disambiguation system
US9495016B2 (en) Typing input systems, methods, and devices
US20040095327A1 (en) Alphanumeric data input system and method
US7646317B2 (en) Decoding method utilizing temporally ambiguous code and apparatus using the same
JP2007133884A5 (en)
EP2254027B1 (en) Text input system for a mobile electronic device and methods thereof
US20040189607A1 (en) Input device for electronic data storage and/or transmission apparatus
KR20070094036A (en) Typability optimized ambiguous keyboards with reduced distortion
KR20090007343A (en) Alphanumeric data entry apparatus and method using multicharacter kets of a keypad
WO2008041784A1 (en) Method and apparatus for alphanumeric data entry using a keypad
WO2000068771A1 (en) Erroneous keyboard entry correction method
EP2204725B1 (en) Method, system, and computer program product for automatic learning of software keyboard input characteristics
Sandnes et al. Non-intrusive error-correction of text input chords: a language model approach
Taniceriu et al. Error correction mechanism for five-key chording keyboards
AU695587B2 (en) Single-handed keyboard having keys with multiple characters and character ambiguity resolution logic
ogly Hajiyev et al. On theoretical and probabilistic and statistical approaches for finding the optimal keyboard layout
JP2002091671A (en) Method for recognizing depressed key
MXPA99006904A (en) Reduced keyboard disambiguating system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN GB JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase