IP Library › Granted Patent US 7,957,955
Granted Patent B2
US 7,957,955 · App. 11/620,641 · Granted Jun 7, 2011

Method and system for providing word recommendations for text input

Assignee: Apple Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,957,955
App. No.
11/620,641
Granted
Jun 7, 2011
Kind
B2
Abstract

Word recommendations are provided in response to text input. For a particular text input, possible word recommendations are identified based on the characters of the input and corresponding neighbor characters on a keyboard layout. The possible word recommendations are scored based on how closely they match the input word on a character-by-character basis, and a subset of the possible word recommendations are selected for presentation to the user.

Claims (61)

1. A computer-implemented method, comprising:

at a portable electronic device with a keyboard:

receiving a sequence of input characters from the keyboard, wherein the keyboard has a predefined layout with a plurality of keys, each respective key in the plurality of keys corresponding to a single respective character, each respective key in the predefined layout having one or more neighbor keys;

generating a set of strings from at least a subset of the sequence of input characters, the set of strings comprising permutations of respective input characters in the subset of the sequence and characters corresponding to neighbor keys of the keys corresponding to the respective input characters on the layout of the keyboard, wherein for each permutation:

a respective character at a respective position in the permutation is either a corresponding input character at a corresponding position in the sequence of input characters or a character corresponding to an adjacent, neighbor key of the key corresponding to the corresponding input character in the predefined layout; and,

after generating the set of strings:

identifying in a dictionary one or more candidate words, each candidate word having a string in the set of strings as a prefix;

scoring the candidate words;

selecting a subset of the candidate words based on predefined criteria; and

presenting the subset of the candidate words.

2. The method of claim 1 , wherein scoring a respective candidate word comprises:

comparing a respective character in each character position of the candidate word with a respective character in a corresponding position in the sequence of input characters; and

determining a score for the respective candidate word based on the comparing.

3. The method of claim 2 , wherein scoring the respective candidate word further comprises increasing the score of the respective candidate word if the respective candidate word, compared to the sequence of input characters, has only one character that is different.

4. The method of claim 2 , wherein scoring the respective candidate word further comprises increasing the score of the respective candidate word if the respective candidate word, compared to the sequence of input characters, has only a set of transposed characters that are different.

5. The method of claim 1 , wherein the keyboard comprises a virtual keyboard.

6. The method of claim 1 , wherein the dictionary comprises a list of words and associated usage frequency rankings.

7. The method of claim 6 , wherein the associated usage frequency rankings are tailored to the user based on previous input from the user.

8. The method of claim 6 , wherein selecting a subset of the candidate words comprises organizing the candidate words into a first group and a second group, the first group comprising the candidate words having respective usage frequency rankings that exceed a threshold, the second group comprising the candidate words having respective usage frequency rankings that do not exceed the threshold; and

wherein presenting the subset of the candidate words comprises presenting one or more of the candidate words of the first group in an order based on their scores.

9. The method of claim 8 , wherein selecting a subset of the candidate words further comprises adding a candidate word of the second group into the first group if the candidate word of the second group has a score that exceeds a score of the highest scoring candidate word of the first group by a predefined margin.

10. The method of claim 8 , wherein presenting the subset of the candidate words further comprises presenting a highest scoring candidate word of the second group.

11. The method of claim 1 , further comprising presenting the sequence of input characters as a candidate word.

12. The method of claim 1 , wherein the keyboard comprises a physical keyboard.

13. A computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a portable electronic device with a keyboard, causes the portable electronic device to perform a method comprising:

receiving a sequence of input characters from the keyboard, wherein the keyboard has a predefined layout with a plurality of keys, each respective key in the plurality of keys corresponding to a single respective character, each respective key in the predefined layout having one or more neighbor keys;

generating a set of strings from at least a subset of the sequence of input characters, the set of strings comprising permutations of respective input characters in the subset of the sequence and characters corresponding to neighbor keys of the keys corresponding to the respective input characters on the layout of the keyboard, wherein for each permutation:

a respective character at a respective position in the permutation is either a corresponding input character at a corresponding position in the sequence of input characters or a character corresponding to an adjacent, neighbor key of the key corresponding to the corresponding input character in the predefined layout; and,

after generating the set of strings:

identifying in a dictionary one or more candidate words, each candidate word having a string in the set of strings as a prefix;

scoring the candidate words;

selecting a subset of the candidate words based on predefined criteria; and

presenting the subset of the candidate words.

14. A portable electronic device, comprising:

a display;

a keyboard, the keyboard having a predefined layout with a plurality of keys, each respective key in the plurality of keys corresponding to a single respective character, each respective key in the predefined layout having one or more neighbor keys;

one or more processors;

memory; and

one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including:

instructions for receiving a sequence of input characters from the keyboard;

instructions for generating a set of strings from at least a subset of the sequence of input characters, the set of strings comprising permutations of respective input characters in the subset of the sequence and characters corresponding to neighbor keys of the keys corresponding to the respective input characters on the layout of the keyboard, wherein for each permutation:

a respective character at a respective position in the permutation is either a corresponding input character at a corresponding position in the sequence of input characters or a character corresponding to an adjacent, neighbor key of the key corresponding to the corresponding input character in the predefined layout; and,

after generating the set of strings:

instructions for identifying in a dictionary one or more candidate words, each candidate word having a string in the set of strings as a prefix;

instructions for scoring the candidate words;

instructions for selecting a subset of the candidate words based on predefined criteria; and

instructions for presenting the subset of the candidate words.

15. A portable electronic device, comprising:

display means;

input means, the input means having a predefined layout with a plurality of keys, each respective key in the plurality of keys corresponding to a single respective character, each respective key in the predefined layout having one or more neighbor characters;

one or more processor means;

memory means; and

a program mechanism, wherein the program mechanism is stored in the memory means and configured to be executed by the one or more processors means, the program mechanism including:

instructions for receiving a sequence of input characters from the input means;

instructions for generating a set of strings from at least a subset of the sequence of input characters, the set of strings comprising permutations of respective input characters in the subset of the sequence and characters corresponding to neighbor keys of the keys corresponding to the respective input characters on the layout of the input means, wherein for each permutation:

a respective character at a respective position in the permutation is either a corresponding input character at a corresponding position in the sequence of input characters or a character corresponding to an adjacent, neighbor key of the key corresponding to the corresponding input character in the predefined layout; and,

after generating the set of strings:

instructions for identifying in a dictionary one or more candidate words, each candidate word having a string in the set of strings as a prefix;

instructions for scoring the candidate words;

instructions for selecting a subset of the candidate words based on predefined criteria; and

instructions for presenting the subset of the candidate words.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2008
From: CHRISTIE, GREG; ORDING, BAS; FORSTALL, SCOTT; KOCIENDA, KENNETH; WILLIAMSON, RICHARD; BELLEGARDA, JEROME RENE
To: APPLE INC.
Reel/Frame 021396/0004 →
Continuity (1)
Related Publication 20080167858A1 · Jul 10, 2008