U.S. patent application number 14/800378 was filed with the patent office on 2015-11-05 for method, device, and graphical user interface providing word recommendations for text input.
The applicant listed for this patent is Apple Inc.. Invention is credited to Jerome Rene BELLEGARDA, Greg CHRISTIE, Scott FORSTALL, Kenneth KOCIENDA, Bas ORDING, Richard WILLIAMSON.
Application Number | 20150317078 14/800378 |
Document ID | / |
Family ID | 40844195 |
Filed Date | 2015-11-05 |
United States Patent
Application |
20150317078 |
Kind Code |
A1 |
KOCIENDA; Kenneth ; et
al. |
November 5, 2015 |
METHOD, DEVICE, AND GRAPHICAL USER INTERFACE PROVIDING WORD
RECOMMENDATIONS FOR TEXT INPUT
Abstract
A portable electronic device having a touch screen display
displays a soft keyboard with a plurality key icons representing a
plurality of letters The device detects a finger contact on a
respective key icon representing a respective letter, and in
response to detecting the finger contact on the respective key icon
representing the respective letter, displays an enlarged view of
the respective letter. The device then detects a liftoff of the
finger contact from the respective key icon, and in response to
detecting the liftoff, inputs the respective letter in a text input
area, the text input area being displayed adjacent the soft
keyboard and ceases to display the enlarged view of the respective
letter.
Inventors: |
KOCIENDA; Kenneth; (San
Jose, CA) ; CHRISTIE; Greg; (San Jose, CA) ;
ORDING; Bas; (San Francisco, CA) ; FORSTALL;
Scott; (Los Altos, CA) ; WILLIAMSON; Richard;
(Los Gatos, CA) ; BELLEGARDA; Jerome Rene;
(Saratoga, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Apple Inc. |
Cupertino |
CA |
US |
|
|
Family ID: |
40844195 |
Appl. No.: |
14/800378 |
Filed: |
July 15, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13559495 |
Jul 26, 2012 |
9086802 |
|
|
14800378 |
|
|
|
|
12165554 |
Jun 30, 2008 |
8232973 |
|
|
13559495 |
|
|
|
|
61010619 |
Jan 9, 2008 |
|
|
|
Current U.S.
Class: |
715/773 |
Current CPC
Class: |
G06F 3/04842 20130101;
G06F 3/04886 20130101; G06F 3/04895 20130101; G06F 3/0237 20130101;
G06F 3/04817 20130101; G06F 3/0482 20130101 |
International
Class: |
G06F 3/0488 20060101
G06F003/0488; G06F 3/0481 20060101 G06F003/0481; G06F 3/0484
20060101 G06F003/0484; G06F 3/0482 20060101 G06F003/0482 |
Claims
1. (canceled)
2. A method, comprising: at an electronic device with a touch
sensitive display: displaying a soft keyboard with a plurality of
key icons representing a plurality of letters; while displaying the
soft keyboard with the plurality of key icons, detecting a finger
contact on a respective key icon representing a respective letter;
in response to detecting the finger contact on the respective key
icon representing the respective letter, displaying an enlarged
view of the respective letter; detecting a liftoff of the finger
contact from the respective key icon; in response to detecting the
liftoff of the finger contact from the respective key icon:
inputting the respective letter in a text input area, the text
input area being displayed adjacent the soft keyboard; and ceasing
to display the enlarged view of the respective letter.
3. The method of claim 2, wherein displaying the enlarged view of
the respective letter comprises displaying an enlarged view of the
respective key icon.
4. The method of claim 2, further comprising: in response to
detecting the finger contact on the respective key icon
representing the respective letter: displaying the enlarged view of
the respective letter; and displaying a word recommendation
containing the respective letter, in an area adjacent the text
input area.
5. The method of claim 4, wherein the word recommendation is
displayed with a rejection icon, the soft keyboard contains a
spacebar icon, and the method further comprises: after the
respective letter is inputted in the text input area in response to
detecting the liftoff of the finger contact from the respective key
icon: ceasing to display the word recommendation in the area
adjacent the text input area with the recommended word
automatically inputted in the text input area, in response to
detecting a finger contact on the spacebar icon on the soft
keyboard; and ceasing to display the word recommendation in the
area adjacent the text input area without the recommended word
inputted in the text input area, in response to detecting a finger
contact on the rejection icon.
6. The method of claim 2, wherein the respective key icon has an
associated hit area, and the method further comprises: in response
to detecting the finger contact on the respective key icon
representing the respective letter: displaying the enlarged view of
the respective letter; and increasing the size of the hit area
associated with the respective key icon.
7. The method of claim 2, further comprising: detecting a finger
contact that is partially on a first key icon and partially on a
second key icon adjacent the first key icon, wherein the first key
icon represents a first letter, and the second key icon represents
a second letter; in response to detecting the finger contact that
is partially on the first key icon and partially on the second key
icon adjacent the first key icon: in accordance with a
determination that size of a contact area of the first key icon is
greater than size of a contact area of the second key icon,
displaying an enlarged view of the first letter; and in accordance
with a determination that the size of the contact area of the
second key icon is greater than the size of the contact area of the
first key icon, displaying an enlarged view of the second
letter.
8. A non-transitory computer readable medium comprising computer
programs including instructions, which when executed by an
electronic device with a processor and a touch-sensitive display,
cause the device to: display a soft keyboard with a plurality of
key icons representing a plurality of letters; while displaying the
soft keyboard with a plurality of key icons, detect a finger
contact on a respective key icon representing a respective letter;
in response to detecting the finger contact on the respective key
icon representing the respective letter, display an enlarged view
of the respective letter; detect a liftoff of the finger contact
from the respective key icon; in response to detecting the liftoff
of the finger contact from the respective key icon: input the
respective letter in a text input area, the text input area being
displayed adjacent the soft keyboard; and cease to display the
enlarged view of the respective letter.
9. The medium of claim 8, wherein displaying the enlarged view of
the respective letter comprises displaying an enlarged view of the
respective key icon.
10. The medium of claim 8, wherein the computer programs with
instructions, when executed by the electronic device, further cause
the device to: in response to detecting the finger contact on the
respective key icon representing the respective letter: display the
enlarged view of the respective letter; and display a word
recommendation containing the respective letter, in an area
adjacent the text input area.
11. The medium of claim 10, wherein: the word recommendation is
displayed with a rejection icon, the soft keyboard contains a
spacebar icon, and the computer programs with instructions, when
executed by the electronic device, further cause the device to:
after the respective letter is inputted in the text input area in
response to detecting the liftoff of the finger contact from the
respective key icon: cease to display the word recommendation in
the area adjacent the text input area with the recommended word
automatically inputted in the text input area, in response to
detecting a finger contact on the spacebar icon on the soft
keyboard; and cease to display the word recommendation in the area
adjacent the text input area without the recommended word inputted
in the text input area, in response to detecting a finger contact
on the rejection icon.
12. The medium of claim 8, wherein the respective key icon has an
associated hit area, and the computer programs with instructions,
when executed by the electronic device, further cause the device
to: in response to detecting the finger contact on the respective
key icon representing the respective letter: display the enlarged
view of the respective letter; and increase the size of the hit
area associated with the respective key icon.
13. The medium of claim 8, wherein the computer programs with
instructions, when executed by the electronic device, further cause
the device to: detect a finger contact that is partially on a first
key icon and partially on a second key icon adjacent the first key
icon, wherein the first key icon represents a first letter, and the
second key icon represents a second letter; in response to
detecting the finger contact that is partially on the first key
icon and partially on the second key icon adjacent the first key
icon: in accordance with a determination that size of a contact
area of the first key icon is greater than size of a contact area
of the second key icon, display an enlarged view of the first
letter; and in accordance with a determination that the size of the
contact area of the second key icon is greater than the size of the
contact area of the first key icon, display an enlarged view of the
second letter.
14. An electronic device, comprising: a touch-sensitive display;
one or more processors; a memory comprising computer programs
including instructions, which when executed by the one or more
processors, cause the device to: display a soft keyboard with a
plurality of key icons representing a plurality of letters; while
displaying the soft keyboard with a plurality of key icons, detect
a finger contact on a respective key icon representing a respective
letter; in response to detecting the finger contact on the
respective key icon representing the respective letter, display an
enlarged view of the respective letter; detect a liftoff of the
finger contact from the respective key icon; in response to
detecting the liftoff of the finger contact from the respective key
icon: input the respective letter in a text input area, the text
input area being displayed adjacent the soft keyboard; and cease to
display the enlarged view of the respective letter.
15. The device of claim 14, wherein displaying the enlarged view of
the respective letter comprises displaying an enlarged view of the
respective key icon.
16. The device of claim 14, wherein the computer programs with
instructions, when executed by the one or more processors, further
cause the device to: in response to detecting the finger contact on
the respective key icon representing the respective letter: display
the enlarged view of the respective letter; and display a word
recommendation containing the respective letter, in an area
adjacent the text input area.
17. The device of claim 16, wherein: the word recommendation is
displayed with a rejection icon, the soft keyboard contains a
spacebar icon, and the computer programs with instructions, when
executed by the one or more processors, further cause the device
to: after the respective letter is inputted in the text input area
in response to detecting the liftoff of the finger contact from the
respective key icon: cease to display the word recommendation in
the area adjacent the text input area with the recommended word
automatically inputted in the text input area, in response to
detecting a finger contact on the spacebar icon on the soft
keyboard; and cease to display the word recommendation in the area
adjacent the text input area without the recommended word inputted
in the text input area, in response to detecting a finger contact
on the rejection icon.
18. The device of claim 14, wherein the respective key icon has an
associated hit area, and the computer programs with instructions,
when executed by the one or more processors, further cause the
device to: in response to detecting the finger contact on the
respective key icon representing the respective letter: display the
enlarged view of the respective letter; and increase the size of
the hit area associated with the respective key icon.
19. The device of claim 14, wherein the computer programs with
instructions, when executed by the one or more processors, further
cause the device to: detect a finger contact that is partially on a
first key icon and partially on a second key icon adjacent the
first key icon, wherein the first key icon represents a first
letter, and the second key icon represents a second letter; in
response to detecting the finger contact that is partially on the
first key icon and partially on the second key icon adjacent the
first key icon: in accordance with a determination that size of a
contact area of the first key icon is greater than size of a
contact area of the second key icon, display an enlarged view of
the first letter; and in accordance with a determination that the
size of the contact area of the second key icon is greater than the
size of the contact area of the first key icon, display an enlarged
view of the second letter.
20. The method of claim 2, further comprising: displaying a current
character string being input by a user with the soft keyboard
displayed in a first area of the display; displaying a suggested
character string in an area proximate to the current character
string; while displaying the suggested character string in an area
proximate to the current character string, detecting a finger
contact on a first key icon of the soft keyboard, the first key
icon representing a first character; in response to detecting the
finger contact on the first key icon of the soft keyboard,
replacing the display of the suggested character string with
display of an updated suggested character string containing the
current character string and the first character.
21. The method of claim 20, further comprising: while displaying
the updated suggested character string containing the current
character string and the first character: detecting a second finger
contact corresponding to a request to delete the first character;
in response to detecting the second finger contact corresponding to
a request to delete the first character, replacing the display of
the updated suggested character string with display of a further
updated suggested character string containing the current character
string without the first character.
22. The method of claim 20, further comprising: while displaying
the updated suggested character string containing the current
character string and the first character: displaying a rejection
icon adjacent the updated suggested character string; detecting a
third finger contact on the rejection icon displayed adjacent the
updated suggested character string; in response to detecting the
third finger contact on the rejection icon displayed adjacent the
updated suggested character string, ceasing to display the updated
suggested character string.
23. The medium of claim 11, wherein the instructions, when executed
by the device, further cause the device to: display a current
character string being input by a user with the soft keyboard
displayed in a first area of the display; display a suggested
character string in an area proximate to the current character
string; while displaying the suggested character string in an area
proximate to the current character string, detecting a finger
contact on a first key icon of the soft keyboard, the first key
icon representing a first character; in response to detecting the
finger contact on the first key icon of the soft keyboard, replace
the display of the suggested character string with display of an
updated suggested character string containing the current character
string and the first character.
24. The medium of claim 23, wherein the instructions, when executed
by the device, further cause the device to: while displaying the
updated suggested character string containing the current character
string and the first character: detect a second finger contact
corresponding to a request to delete the first character; in
response to detecting the second finger contact corresponding to a
request to delete the first character, replace the display of the
updated suggested character string with display of a further
updated suggested character string containing the current character
string without the first character.
25. The medium of claim 23, wherein the instructions, when executed
by the device, further cause the device to: while displaying the
updated suggested character string containing the current character
string and the first character: display a rejection icon adjacent
the updated suggested character string; detect a third finger
contact on the rejection icon displayed adjacent the updated
suggested character string; in response to detecting the third
finger contact on the rejection icon displayed adjacent the updated
suggested character string, cease to display the updated suggested
character string.
26. The device of claim 21, wherein the instructions, when executed
by the one or more processors, further cause the device to: display
a current character string being input by a user with the soft
keyboard displayed in a first area of the display; display a
suggested character string in an area proximate to the current
character string; while displaying the suggested character string
in an area proximate to the current character string, detecting a
finger contact on a first key icon of the soft keyboard, the first
key icon representing a first character; in response to detecting
the finger contact on the first key icon of the soft keyboard,
replace the display of the suggested character string with display
of an updated suggested character string containing the current
character string and the first character.
27. The device of claim 26, wherein the instructions, when executed
by the one or more processors, further cause the device to: while
displaying the updated suggested character string containing the
current character string and the first character: detect a second
finger contact corresponding to a request to delete the first
character; in response to detecting the second finger contact
corresponding to a request to delete the first character, replace
the display of the updated suggested character string with display
of a further updated suggested character string containing the
current character string without the first character.
28. The device of claim 26, wherein the instructions, when executed
by the one or more processors, further cause the device to: while
displaying the updated suggested character string containing the
current character string and the first character: display a
rejection icon adjacent the updated suggested character string;
detect a third finger contact on the rejection icon displayed
adjacent the updated suggested character string; in response to
detecting the third finger contact on the rejection icon displayed
adjacent the updated suggested character string, cease to display
the updated suggested character string.
Description
RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 13/559,495, filed Jul. 26, 2012, which is a
divisional application of U.S. patent application Ser. No.
12/165,554, filed Jun. 30, 2008, now U.S. Pat. No. 8,232,973, which
claims priority to U.S. Provisional Patent Application No.
61/010,619, "Method, Device, and Graphical User Interface Providing
Word Recommendations for Text Input," filed Jan. 9, 2008, the
entire contents of which are incorporated by reference herein in
their entirety.
[0002] This application is related to: U.S. patent application Ser.
No. 11/620,641, "Method and System for Providing Word
Recommendations for Text Input," filed Jan. 5, 2007; U.S. patent
application Ser. No. 11/620,642, "Method, System, and Graphical
User Interface for Providing Word Recommendations," filed Jan. 5,
2007; U.S. patent application Ser. No. 11/850,015, "Methods for
Determining a Cursor Position from a Finger Contact with a Touch
Screen Display," filed Sep. 4, 2007; and U.S. patent application
Ser. No. 12/101,832, "Touch Screen Device, Method, and Graphical
User Interface for Determining Commands by Applying Heuristics,"
filed Apr. 11, 2008. All of these applications are incorporated by
reference herein in their entirety
TECHNICAL FIELD
[0003] The disclosed embodiments relate generally to text input on
portable communication devices, and more particularly, to methods
and systems for providing word recommendations in response to text
input.
BACKGROUND
[0004] In recent years, the functional capabilities of portable
communications devices have increased dramatically. Current devices
enable communication by voice, text, and still or moving images.
Communication by text, such as by email, instant message (IM) or
short messaging service (SMS), has proven to be quite popular.
[0005] However, the size of these portable communication devices
also restricts the size of the text input device, such as a
physical or virtual keyboard, in the portable device. With a
size-restricted keyboard, designers are often forced to make the
keys smaller or overload the keys. Both may lead to typing mistakes
and thus more backtracking to correct the mistakes. This makes the
process of communication by text on the devices inefficient and
reduces user satisfaction with such portable communication
devices.
[0006] Accordingly, there is a need for more efficient ways of
entering text into portable devices.
SUMMARY
[0007] In accordance with some embodiments, a computer-implemented
method, performed at a portable electronic device having a touch
screen display, includes displaying a plurality of key icons, each
key icon having an adjustable hit region of dynamically adjustable
size, and receiving a sequence of individual touch points input by
a user on the touch screen display. Each touch point is determined
at lift off of a contact from the touch screen display. An image
with an enlarged version of a character that will be selected as
the character corresponding to an individual touch point is
displayed prior to lift off of a respective contact, wherein the
character image that is displayed prior to lift off is selected in
accordance with the adjustable hit regions of the displayed key
icons. After receiving each of the individual touch points, the
method performs a set of operations, including: forming a
user-input directed graph for the sequence of individual touch
points received so far; determining a character corresponding to a
last received individual touch point in accordance with the
adjustable hit regions of the displayed key icons; displaying a
sequence of characters corresponding to the sequence of individual
touch points, including the determined character; and updating
sizes of the adjustable hit regions for a plurality of the key.
[0008] In accordance with some embodiments, a computer readable
storage medium, for use in conjunction with a portable electronic
device having a touch screen display, stores one or more programs
for execution by one or more processors of the portable electronic
device. The one or more programs include instructions for
displaying on the touch screen display a plurality of key icons,
each key icon having an adjustable hit region of dynamically
adjustable size. The one or more programs further include
instructions for receiving a sequence of individual touch points
input by a user on the touch screen display. Each touch point is
determined at lift off of a contact from the touch screen display.
An image with an enlarged version of a character that will be
selected as the character corresponding to an individual touch
point is displayed prior to lift off of a respective contact,
wherein the character image that is displayed prior to lift off is
selected in accordance with the adjustable hit regions of the
displayed key icons. The one or more programs further include
instructions for processing the received individual touch points by
performing operations after receiving each of the individual touch
points, the operations including: forming a user-input directed
graph for the sequence of individual touch points received so far;
determining a character corresponding to a last received individual
touch point in accordance with the adjustable hit regions of the
displayed key icons; displaying on the touch screen display a
sequence of characters corresponding to the sequence of individual
touch points, including the determined character; and updating
sizes of the adjustable hit regions for a plurality of the key
icons.
[0009] In accordance with some embodiments, a portable electronic
device having a touch screen display includes one or more
processors, memory, and one or more programs stored in the memory,
the one or more programs configured to be executed by the one or
more processors. The one or more programs include instructions for
displaying on the touch screen display a plurality of key icons,
each key icon having an adjustable hit region of dynamically
adjustable size. The one or more programs further include
instructions for receiving a sequence of individual touch points
input by a user on the touch screen display. Each touch point is
determined at lift off of a contact from the touch screen display.
An image with an enlarged version of a character that will be
selected as the character corresponding to an individual touch
point is displayed prior to lift off of a respective contact,
wherein the character image that is displayed prior to lift off is
selected in accordance with the adjustable hit regions of the
displayed key icons. The one or more programs further include
instructions for processing the received individual touch points by
performing operations after receiving each of the individual touch
points, the operations including: forming a user-input directed
graph for the sequence of individual touch points received so far;
determining a character corresponding to a last received individual
touch point in accordance with the adjustable hit regions of the
displayed key icons; displaying on the touch screen display a
sequence of characters corresponding to the sequence of individual
touch points, including the determined character; and updating
sizes of the adjustable hit regions for a plurality of the key
icons.
[0010] In accordance with some embodiments, a portable electronic
device having a touch screen display includes one or more
processors and memory. The portable electronic device further
includes means for displaying on the touch screen display a
plurality of key icons, each key icon having an adjustable hit
region of dynamically adjustable size, and means for receiving a
sequence of individual touch points input by a user on the touch
screen display. Each touch point is determined at lift off of a
contact from the touch screen display. An image with an enlarged
version of a character that will be selected as the character
corresponding to an individual touch point is displayed prior to
lift off of a respective contact, wherein the character image that
is displayed prior to lift off is selected in accordance with the
adjustable hit regions of the displayed key icons. The portable
electronic device further includes means for processing the
received individual touch points by performing operations after
receiving each of the individual touch points, the operations
including: forming a user-input directed graph for the sequence of
individual touch points received so far; determining a character
corresponding to a last received individual touch point in
accordance with the adjustable hit regions of the displayed key
icons; displaying on the touch screen display a sequence of
characters corresponding to the sequence of individual touch
points, including the determined character; and updating sizes of
the adjustable hit regions for a plurality of the key icons.
[0011] In accordance with some embodiments, a computer-implemented
method, performed at a portable electronic device having a touch
screen display, includes displaying a plurality of key icons,
receiving a sequence of individual touch points input by a user on
the touch screen display, and displaying a sequence of characters
corresponding to the sequence of individual touch points. The
method also includes receiving a touch point corresponding to a
deletion key icon, and deleting one or more of the displayed
characters to produce a shortened sequence of characters. Then the
method includes receiving additional individual touch points. After
receiving each of the additional individual touch points, the
method performs a set of operations, including displaying a current
sequence of characters including characters associated with the
additional individual touch points, and determining and displaying
a suggested character string only when the suggested character
string starts with the shortened sequence of characters and the
suggested character string meets predefined character string
suggestion criteria.
[0012] In accordance with some embodiments, a computer readable
storage medium, for use in conjunction with a portable electronic
device having a touch screen display, stores one or more programs
for execution by one or more processors of the portable electronic
device. The one or more programs include instructions for
displaying on the touch screen display a plurality of key icons,
for receiving a sequence of individual touch points input by a user
on the touch screen display, and for displaying on the touch screen
display a sequence of characters corresponding to the sequence of
individual touch points. The one or more programs also include
instructions for receiving a touch point corresponding to a
deletion key icon, and for deleting one or more of the displayed
characters to produce a shortened sequence of characters. The one
or more programs further include instructions for receiving
additional individual touch points, and instructions for processing
the received individual touch points by performing operations after
receiving each of the additional individual touch points, including
displaying a current sequence of characters including characters
associated with the additional individual touch points, and
determining and displaying a suggested character string only when
the suggested character string starts with the shortened sequence
of characters and the suggested character string meets predefined
character string suggestion criteria.
[0013] In accordance with some embodiments, a portable electronic
device having a touch screen display includes one or more
processors, memory, and one or more programs stored in the memory,
the one or more programs configured to be executed by the one or
more processors. The one or more programs include instructions for
displaying on the touch screen display a plurality of key icons,
for receiving a sequence of individual touch points input by a user
on the touch screen display, and for displaying on the touch screen
display a sequence of characters corresponding to the sequence of
individual touch points. The one or more programs also include
instructions for receiving a touch point corresponding to a
deletion key icon, and for deleting one or more of the displayed
characters to produce a shortened sequence of characters. The one
or more programs further include instructions for receiving
additional individual touch points, and instructions for processing
the received individual touch points by performing operations after
receiving each of the additional individual touch points, including
displaying a current sequence of characters including characters
associated with the additional individual touch points, and
determining and displaying a suggested character string only when
the suggested character string starts with the shortened sequence
of characters and the suggested character string meets predefined
character string suggestion criteria.
[0014] In accordance with some embodiments, a portable electronic
device having a touch screen display includes one or more
processors and memory. The portable electronic device further
includes means for displaying on the touch screen display a
plurality of key icons, and means for receiving a sequence of
individual touch points input by a user on the touch screen
display, and means for displaying on the touch screen display a
sequence of characters corresponding to the sequence of individual
touch points. The portable electronic device also includes means
for receiving a touch point corresponding to a deletion key icon,
and means for deleting one or more of the displayed characters to
produce a shortened sequence of characters. The portable electronic
device further includes means for receiving additional individual
touch points, and means for processing the received individual
touch points by performing operations after receiving each of the
additional individual touch points, including displaying a current
sequence of characters including characters associated with the
additional individual touch points, and determining and displaying
a suggested character string only when the suggested character
string starts with the shortened sequence of characters and the
suggested character string meets predefined character string
suggestion criteria.
[0015] In accordance with some embodiments, a computer-implemented
method, performed at a portable electronic device having a touch
screen display, includes: displaying a current character string
being input by a user with a soft keyboard in a first area of the
touch screen display; displaying a suggested replacement character
string for the current character string in a second area of the
touch screen display, wherein the second area includes a suggestion
rejection icon adjacent to the suggested replacement character
string; replacing the current character string in the first area
with the suggested replacement character string in response to
detecting user activation of a key on the soft keyboard associated
with a delimiter; and keeping the current character string in the
first area and ceasing to display the suggested replacement
character string and the suggestion rejection icon in response to
detecting a finger gesture on the suggested replacement character
string displayed in the second area.
[0016] In accordance with some embodiments, a computer readable
storage medium has stored therein instructions, which when executed
by a portable electronic device with a touch screen display, cause
the portable electronic device to: display a current character
string being input by a user with a soft keyboard in a first area
of the touch screen display; display a suggested replacement
character string for the current character string in a second area
of the touch screen display, wherein the second area includes a
suggestion rejection icon adjacent to the suggested replacement
character string; replace the current character string in the first
area with the suggested replacement character string in response to
detecting user activation of a key on the soft keyboard associated
with a delimiter; and keep the current character string in the
first area and cease to display the suggested replacement character
string and the suggestion rejection icon in response to detecting a
finger gesture on the suggested replacement character string
displayed in the second area.
[0017] In accordance with some embodiments, a portable electronic
device includes: a touch screen display; one or more processors;
memory; and one or more programs. 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 include instructions for:
displaying a current character string being input by a user with a
soft keyboard in a first area of the touch screen display;
displaying a suggested replacement character string for the current
character string in a second area of the touch screen display,
wherein the second area includes a suggestion rejection icon
adjacent to the suggested replacement character string; replacing
the current character string in the first area with the suggested
replacement character string in response to detecting user
activation of a key on the soft keyboard associated with a
delimiter; and keeping the current character string in the first
area and ceasing to display the suggested replacement character
string and the suggestion rejection icon in response to detecting a
finger gesture on the suggested replacement character string
displayed in the second area.
[0018] In accordance with some embodiments, a graphical user
interface on a portable electronic device with a touch screen
display includes a first area of the touch screen display; a
current character string being input by a user with a soft keyboard
in the first area of the touch screen display; and a second area of
the touch screen display that includes a suggested replacement
character string and a suggestion rejection icon adjacent to the
suggested replacement character string. In response to detecting
user activation of a key on the soft keyboard associated with a
delimiter, the current character string in the first area is
replaced with the suggested replacement character string. In
response to detecting a finger gesture on the suggested replacement
character string displayed in the second area, the current
character string is kept in the first area and display of the
suggested replacement character string and the suggestion rejection
icon are ceased.
[0019] Thus, the embodiments provide more efficient ways to enter
text in a portable device.
BRIEF DESCRIPTION OF THE DRAWINGS
[0020] For a better understanding of the aforementioned embodiments
of the invention as well as additional embodiments thereof,
reference should be made to the Description of Embodiments below,
in conjunction with the following drawings in which like reference
numerals refer to corresponding parts throughout the figures.
[0021] FIG. 1 is a block diagram illustrating a portable
communications device in accordance with some embodiments.
[0022] FIG. 2 is a flow diagram illustrating a process of providing
word recommendations in accordance with some embodiments.
[0023] FIG. 3 is a flow diagram illustrating a process of scoring
candidate words in accordance with some embodiments.
[0024] FIG. 4 is a flow diagram illustrating a process of selecting
and presenting candidate words in accordance with some
embodiments.
[0025] FIGS. 5A and 5B illustrate exemplary layouts of letter keys
on a keyboard in accordance with some embodiments.
[0026] FIG. 6 illustrates an exemplary derivation of candidate
words based on text input in accordance with some embodiments.
[0027] FIGS. 7A-7C illustrate examples of scoring of candidate
words in accordance with some embodiments.
[0028] FIGS. 8A-8C illustrate an exemplary method for dynamically
adjusting hidden hit regions associated with soft keyboard keys as
a word is typed with the soft keyboard keys in accordance with some
embodiments.
[0029] FIG. 9 illustrates an exemplary derivation of candidate
words based on text input in accordance with some embodiments.
[0030] FIGS. 10A and 10B are flow diagrams illustrating text input
processes in accordance with some embodiments.
[0031] FIGS. 11A and 11B illustrate an exemplary user interface for
inputting text in accordance with some embodiments.
[0032] FIG. 12 is a flow diagram illustrating a process for
inputting text on a portable electronic device with a soft keyboard
and a touch screen display in accordance with some embodiments.
DESCRIPTION OF EMBODIMENTS
[0033] Reference will now be made in detail to embodiments,
examples of which are illustrated in the accompanying drawings. In
the following detailed description, numerous specific details are
set forth in order to provide a thorough understanding of the
present invention. However, it will be apparent to one of ordinary
skill in the art that the present invention may be practiced
without these specific details. In other instances, well-known
methods, procedures, components, circuits, and networks have not
been described in detail so as not to unnecessarily obscure aspects
of the embodiments.
[0034] A portable communication device includes a user interface
and a text input device. Via the interface and the text input
device, a user may enter text into the device. The text includes
words, which are sequences of characters separated by whitespaces
or particular punctuation. For a word as it is being entered or an
entered word, the device identifies and offers word recommendations
that may be selected by the user to replace the word as inputted by
the user.
[0035] Attention is now directed to an embodiment of a portable
communications device. FIG. 1 is a block diagram illustrating an
embodiment of a device 100, such as a portable electronic device
having a touch-sensitive display 112. The device 100 may include a
memory controller 120, one or more data processors, image
processors and/or central processing units 118 and a peripherals
interface 116. The memory controller 120, the one or more
processors 118 and/or the peripherals interface 116 may be separate
components or may be integrated, such as in one or more integrated
circuits 104. The various components in the device 100 may be
coupled by one or more communication buses or signal lines 103.
[0036] The peripherals interface 116 may be coupled to an optical
sensor (not shown), such as a CMOS or CCD image sensor; RF
circuitry 108; audio circuitry 110; and/or an input/output (I/O)
subsystem 106. The audio circuitry 110 may be coupled to a speaker
142 and a micro-phone 144. The device 100 may support voice
recognition and/or voice replication. The RF circuitry 108 may be
coupled to one or more antennas 146 and may allow communication
with one or more additional devices, computers and/or servers using
a wireless network. The device 100 may support a variety of
communications protocols, including code division multiple access
(CDMA), Global System for Mobile Communications (GSM), Enhanced
Data GSM Environment (EDGE), Wi-Fi (such as IEEE 802.11a, IEEE
802.11b, IEEE 802.11g and/or IEEE 802.11n), Bluetooth, Wi-MAX, a
protocol for email, instant messaging, and/or a short message
service (SMS), or any other suitable communication protocol,
including communication protocols not yet developed as of the
filing date of this document. In an exemplary embodiment, the
device 100 may be, at least in part, a cellular telephone.
[0037] The I/O subsystem 106 may include a touch screen controller
152 and/or other input controller(s) 154. The touch-screen
controller 152 may be coupled to a touch-sensitive screen or touch
sensitive display system 112.
[0038] The touch-sensitive display system 112 provides an input
interface and an output interface between the device and a user.
The display controller 152 receives and/or sends electrical signals
from/to the display system 112. The display system 112 displays
visual output to the user. The visual output may include graphics,
text, icons, video, and any combination thereof (collectively
termed "graphics"). In some embodiments, some or all of the visual
output may correspond to user-interface objects, further details of
which are described below.
[0039] A touch screen in display system 112 is a touch-sensitive
surface that accepts input from the user based on haptic and/or
tactile contact. The display system 112 and the display controller
152 (along with any associated modules and/or sets of instructions
in memory 102) detect contact (and any movement or breaking of the
contact) on the display system 112 and converts the detected
contact into interaction with user-interface objects (e.g., one or
more soft keys, icons, web pages or images) that are displayed on
the touch screen. The touch screen 112 may be used to implement
virtual or soft buttons and/or a keyboard. In an exemplary
embodiment, a point of contact between a touch screen in the
display system 112 and the user corresponds to a finger of the
user.
[0040] The touch screen in the display system 112 may use LCD
(liquid crystal display) technology, or LPD (light emitting polymer
display) technology, although other display technologies may be
used in other embodiments. The touch screen in the display system
112 and the display controller 152 may detect contact and any
movement or breaking (lift off) thereof using any of a plurality of
touch sensing technologies now known or later developed, including
but not limited to capacitive, resistive, infrared, and surface
acoustic wave technologies, as well as other proximity sensor
arrays or other elements for determining one or more points of
contact with a touch screen in the display system 112. A
touch-sensitive display in some embodiments of the display system
112 may be analogous to the multi-touch sensitive tablets described
in the following U.S. Pat. No. 6,323,846 (Westerman et al.), U.S.
Pat. No. 6,570,557 (Westerman et al.), and/or U.S. Pat. No.
6,677,932 (Westerman), and/or U.S. Patent Publication
2002/0015024A1, each of which is hereby incorporated by reference
in its entirety. However, a touch screen in the display system 112
displays visual output from the portable device 100, whereas touch
sensitive tablets do not provide visual output. The touch screen in
the display system 112 may have a resolution in excess of 100 dpi.
In an exemplary embodiment, the touch screen in the display system
has a resolution of approximately 168 dpi. The user may make
contact with the touch screen in the display system 112 using any
suitable object or appendage, such as a stylus, a finger, and so
forth. In some embodiments, the user interface is designed to work
primarily with finger-based contacts and gestures, which are much
less precise than stylus-based input due to the larger area of
contact of a finger on the touch screen. In some embodiments, the
device translates the rough finger-based input into a precise
pointer/cursor position (e.g., a touch point position) or command
for performing the actions desired by the user.
[0041] A touch-sensitive display in some embodiments of the display
system 112 may be as described in the following applications: (1)
U.S. patent application Ser. No. 11/381,313, "Multipoint Touch
Surface Controller," filed on May 2, 2006; (2) U.S. patent
application Ser. No. 10/840,862, "Multipoint Touchscreen," filed on
May 6, 2004; (3) U.S. patent application Ser. No. 10/903,964,
"Gestures For Touch Sensitive Input Devices," filed on Jul. 30,
2004; (4) U.S. patent application Ser. No. 11/048,264, "Gestures
For Touch Sensitive Input Devices," filed on Jan. 31, 2005; (5)
U.S. patent application Ser. No. 11/038,590, "Mode-Based Graphical
User Interfaces For Touch Sensitive Input Devices," filed on Jan.
18, 2005; (6) U.S. patent application Ser. No. 11/228,758, "Virtual
Input Device Placement On A Touch Screen User Interface," filed on
Sep. 16, 2005; (7) U.S. patent application Ser. No. 11/228,700,
"Operation Of A Computer With A Touch Screen Interface," filed on
Sep. 16, 2005; (8) U.S. patent application Ser. No. 11/228,737,
"Activating Virtual Keys Of A Touch-Screen Virtual Keyboard," filed
on Sep. 16, 2005; and (9) U.S. patent application Ser. No.
11/367,749, "Multi-Functional Hand-Held Device," filed on Mar. 3,
2006. All of these applications are incorporated by reference
herein in their entirety.
[0042] The other input controller(s) 154 may be coupled to other
input/control devices 114, such as one or more buttons, a keyboard,
infrared port, USB port, and/or a pointer device such as a mouse.
The one or more buttons (not shown) may include an up/down button
for volume control of the speaker 142 and/or the micro-phone 144.
The one or more buttons (not shown) may include a push button. A
quick press of the push button (not shown) may engage or disengage
a lock of the touch screen 112. A longer press of the push button
(not shown) may turn power to the device 100 on or off. The user
may be able to customize a functionality of one or more of the
buttons.
[0043] In some embodiments, the device 100 may include circuitry
for supporting a location determining capability, such as that
provided by the global positioning system (GPS). In some
embodiments, the device 100 may be used to play back recorded music
stored in one or more files, such as MP3 files or AAC files. In
some embodiments, the device 100 may include the functionality of
an MP3 player, such as an iPod (trademark of Apple Computer, Inc.).
In some embodiments, the external port is a multi-pin (e.g.,
30-pin) connector that is the same as, or similar to and/or
compatible with the 30-pin connector used on iPod devices.
[0044] The device 100 also includes a power system 137 for powering
the various components. The power system 137 may include a power
management system, one or more power sources (e.g., battery,
alternating current (AC)), a recharging system, a power failure
detection circuit, a power converter or inverter, a power status
indicator (e.g., a light-emitting diode (LED)) and any other
components associated with the generation, management and
distribution of power in portable devices. The device 100 may also
include one or more external ports 135 for connecting the device
100 to other devices.
[0045] The memory controller 120 may be coupled to memory 102 with
one or more types of computer readable storage media. Memory 102
may include high-speed random access memory and/or non-volatile
memory, such as one or more magnetic disk storage devices, one or
more optical storage devices, and/or flash memory. Memory 102 may
store an operating system 122, such as Darwin, RTXC, LINUX, UNIX,
OS X, WINDOWS, or an embedded operating system such as VxWorks. The
operating system 122 may include procedures (or sets of
instructions) for handling basic system services and for performing
hardware dependent tasks. Memory 102 may also store communication
procedures (or sets of instructions) in a communication module 124.
The communication procedures may be used for communicating with one
or more additional devices, one or more computers and/or one or
more servers. Memory 102 may include a display module (or a set of
instructions) 125, a contact/motion module (or a set of
instructions) 126 to determine one or more points of contact and/or
their movement, and a graphics module (or a set of instructions)
128. The graphics module 128 may support widgets, that is, modules
or applications with embedded graphics. The widgets may be
implemented using JavaScript, HTML, or other suitable
languages.
[0046] Memory 102 may also include one or more applications 130.
Examples of applications include email applications, text messaging
or instant messaging applications, web browsers, memo pad
applications, address books or contact lists, and calendars.
[0047] Also in memory 102 are one or more dictionaries 132 and a
word recommendation module (or set of instructions) 134. In some
embodiments, a dictionary contains a list of words and
corresponding usage frequency rankings. The usage frequency ranking
of a word is the statistical usage frequency for that word in a
language, or by a predefined group or people, or by the user of the
device 100, or a combination thereof. As described below, a
dictionary may include multiple usage frequency rankings for
regional variations of the same language and/or be tailored to a
user's own usage frequency, e.g., derived from the user's prior
emails, text messages, address book, and other previous input from
the user. The word recommendation module identifies word
recommendations for presentation to the user in response to text
input by the user.
[0048] Each of the above identified modules and applications
corresponds to a set of instructions for performing one or more
functions described above. These modules (i.e., sets of
instructions) need not be implemented as separate software
programs, procedures or modules. The various modules and
sub-modules may be rearranged and/or combined. Memory 102 may
include additional modules and/or sub-modules, or fewer modules
and/or sub-modules. Memory 102, therefore, may include a subset or
a superset of the above identified modules and/or sub-modules.
Various functions of the device 100 may be implemented in hardware
and/or in software, including in one or more signal processing
and/or application specific integrated circuits.
[0049] Attention is now directed to FIG. 2, a flow diagram
illustrating a process of providing word recommendations in
accordance with some embodiments. Process flow 200 describes a
process of providing word recommendations in response to input of a
character string by a user.
[0050] A sequence of input characters is received from an input
device (202). A user inputs a sequence of characters into the
portable communications device via an input device, such as a
keyboard, and the device receives the input. As used herein, the
input character sequence is a sequence of non-whitespace
characters, delimited by whitespaces or punctuation, input by the
user via the input device. The sequence of characters may
constitute a word.
[0051] In some embodiments, the input device is a virtual keyboard
(also called a soft keyboard) displayed on a touch-sensitive
display of the portable device, where the user hits the keys of the
keyboard ("types on the keyboard") by touching the touch-sensitive
display on locations corresponding to keys of the virtual keyboard.
In some other embodiments, the input device is a physical keyboard
on the device (also called a hard keyboard).
[0052] The keyboard, whether virtual or physical, has a plurality
of keys, each key corresponding to one or more characters, such as
letters, numbers, punctuation, or symbols. The keys are arranged in
accordance with a predefined layout that defines the positions of
the keys on the keyboard. On the layout, each key has at least one
neighbor key. In some embodiments, the keyboard layout follows the
well-known QWERTY layout or a variant thereof. In some other
embodiments, the keyboard layout may follow other layouts.
Furthermore, in some embodiments, the layout may change depending
on the language used on the device. For example, if English is
selected as the user interface language, then the active keyboard
layout may be the QWERTY layout, and other layouts may be active
when another language, such as Swedish or French, is selected as
the user interface language. Further details regarding keyboard
layouts are described below in relation to FIG. 5.
[0053] Permutations of input characters and neighbor characters are
determined and a set of strings are generated from the permutations
(204). As used herein, a "permutation" is a sequence of characters,
wherein each character in the sequence is either the input
character in the corresponding position in the input character
sequence or a neighbor character of that input character on the
keyboard layout. The first character in the permutation is the
first character of the input character sequence or a neighbor of
that first character on the keyboard layout, the second character
in the permutation is the second character of the input character
sequence or a neighbor of that second character on the keyboard
layout, and so forth, up to and perhaps including the last
character in the input character sequence. Thus, the length of a
permutation and of a generated string is at most the length of the
input character sequence.
[0054] For example, if the input sequence is "rheater," then the
first character in any of the permutations generated for this input
sequence is "r" (the first character in the input sequence) or any
characters that are neighbors to "r" on the keyboard layout. The
second character in a permutation is "h" or any neighbor thereof.
The third character in a permutation is "e" (the third character in
the input sequence) or neighbors thereof, and so forth.
[0055] In some embodiments, permutations may be determined for a
predefined-length subset of the input sequence and strings of the
same predefined length may be generated from the permutations. In
some embodiments, the predefined length is 3 characters. That is,
the permutations are determined and prefix strings are generated
from the first three characters in the input sequence and neighbors
thereof. If the length of the input sequence is less than the
predefined length, a process other than process flow 200 may be
used to provide word recommendations. For example, if the input
sequence is one or two characters long, the input sequence in its
entirety may be compared against words in a dictionary and best
matches are identified.
[0056] The set of strings are compared against a dictionary. Words
in the dictionary that have any of the set of strings as a prefix
are identified (206). As used herein, "prefix" means that the
string is a prefix of a word in the dictionary or is itself a word
in the dictionary. A dictionary, as used herein, refers to a list
of words. The dictionary may be pre-made and stored in the memory.
The dictionary may also include usage frequency rankings for each
word in the dictionary. A usage frequency ranking for a word
indicates (or more generally, corresponds to) the statistical usage
frequency for that word in a language. In some embodiments, the
dictionary may include different usage frequency rankings for
different variants of a language. For example, a dictionary of
words in the English language may have different usage frequency
rankings with respect to American English and British English.
[0057] In some embodiments, the dictionary may be customizable.
That is, additional words may be added to the dictionary by the
user. Furthermore, in some embodiments, different applications may
have different dictionaries with different words and usage
frequency rankings. For example, an email application and an SMS
application may have different dictionaries, with different words
and perhaps different usage frequency rankings within the same
language.
[0058] The identified words are the candidate words that may be
presented to the user as recommended replacements for the input
sequence. The candidate words are scored (208). Each candidate word
is scored based on a character-to-character comparison with the
input sequence and optionally other factors. Further details
regarding the scoring of candidate words are described below, in
relation to FIGS. 3 and 7A-7C. A subset of the candidate words are
selected based on predefined criteria (210) and the selected subset
is presented to the user (212). In some embodiments, the selected
candidate words are presented to the user as a horizontal listing
of words.
[0059] Attention is now directed to FIG. 3, a flow diagram
illustrating a process of scoring candidate words in accordance
with some embodiments. Process flow 300 describes a process of
scoring a candidate word. The scoring helps determine which word(s)
in the dictionary is/are the best potential replacement(s) for the
input sequence of characters.
[0060] Each character in a candidate word is compared to the
character in the corresponding position in the input sequence
(302). Thus, the first character in the candidate word is compared
to the first character in the input sequence, the second character
in the candidate word is compared to the second character in the
input sequence, and so forth. If either the candidate word or the
input sequence is longer than the other, then the additional
characters beyond the shorter length of the two are ignored in the
comparison. In some embodiments, further comparison of the
candidate word with the input sequence may be made. For example,
the further comparison may include determining the number of
character differences between the candidate words and the input
sequence, and determining if any character differences are a result
of transposed characters. A score is calculated for the candidate
word based on the comparison described above (304). Each character
comparison yields a value, and the values are added to yield the
score for the candidate word.
[0061] In some embodiments, the score value given for a character
comparison is based on the actual characters as opposed to merely
whether the characters match. More particularly, the value may be
based on whether the character in the candidate word matches the
corresponding character in the input sequence exactly and/or
whether the character in the candidate word is a keyboard layout
neighbor of the corresponding character in the input sequence.
[0062] Optionally, a first "bonus" may be added to the score of the
candidate word if the candidate word and the input sequence are
different in only one character (306). Similarly, an optional
second "bonus" may be added to the score of the candidate word if
the candidate word and the input sequence are different in only a
pair of transposed adjacent characters (308). Further details
regarding candidate word scoring is described below, in relation to
FIGS. 7A-7C.
[0063] Attention is now directed to FIG. 4, a flow diagram
illustrating a process of selecting and presenting candidate words
in accordance with some embodiments. Process flow 400 describes in
further details blocks 210 and 212 (FIG. 2), which involves
selection and presentation of candidate words.
[0064] In some embodiments, the candidate words are split into two
groups based on their usage frequency rankings within the
dictionary (402). A first group includes the candidate words whose
usage frequency rankings exceed a predefined threshold. The second
group includes the candidate words whose usage frequency rankings
does not exceed the threshold. With each of the two groups, the
candidate words are sorted by their candidate word scores.
[0065] There may be candidate words in the second group whose
scores are very high because, for example, they match the input
sequence exactly or almost exactly. In some embodiments, these
high-scoring words may be removed from the second group and added
to the first group if their scores exceed the score of the highest
scoring candidate word in the first group by a predefined margin
(404). In some embodiments, the predefined margin is that the score
of the candidate word in the second group must be at least two
times the highest candidate word score in the first group.
[0066] One or more of the highest scoring candidate words in the
first group are presented to the user (406). It should be
appreciated that if candidate words from the second group were
moved to the first group as described above, then the candidate
words that are presented will include at least one candidate word
that was originally in the second group since that candidate word
has a higher score than any of the original candidate words in the
first group.
[0067] In some embodiments, if block 404 is not performed, either
because no candidate word in the second group satisfies the score
margin threshold or because the moving of candidate words is not
performed at all, the highest scoring candidate word in the second
group may nevertheless be presented along with the candidate words
from the first group (408). Furthermore, in some embodiments, the
input sequence as entered by the user may be presented as a matter
of course (410). The user may choose any one of the presented
candidate words to replace the input sequence, including choosing
the input sequence as entered if the user is satisfied with it.
[0068] Attention is now directed to FIGS. 5A and 5B, which are
exemplary layouts of letter keys on a keyboard in accordance with
some embodiments. As described above, the prefix strings, based on
which candidate words are identified, are generated based on
characters in the input sequence and their corresponding neighbor
characters on a keyboard layout. Keyboard layouts 502 and 504 are
exemplary keyboard layouts. A keyboard layout defines the positions
of each key on the keyboard and the alignment of the keys relative
to each other. For ease of description, only the letter keys of the
layouts 502 and 504 are shown. It should be appreciated, however,
that a keyboard layout may also include keys for numbers,
punctuation, symbols, and functional keys. In some embodiments,
some keys may be overloaded, that is, a key may correspond to
multiple characters and/or functions.
[0069] Layouts 502 and 504 are layouts that follow the well-known
QWERTY layout. However, the key alignment in layout 502 is
different from the key alignment in layout 504. In layout 502, the
keys are aligned in rows but not in columns; a key in one row may
straddle two keys in an adjacent row. For example, key "T"
straddles keys "F" and "G" in layout 502. In layout 504, the keys
are aligned in columns as well as in rows. The definition of which
keys are the neighbors of a key may be different depending on how
the keys are aligned. In layout 502, the neighbors of a particular
key may be defined as the keys that are directly adjacent to the
particular key or whose peripheries "touch" a periphery of the
particular key. For example, the neighbors of key "G" in layout 502
are keys "T," "Y," "F," "H," "V," and "B;" and the neighbors of key
"W" are keys "Q," "E," "A," and "S." In layout 504, the neighbors
of a particular key may be defined as the keys that are immediately
above, below, to the side of, and diagonal of the particular key.
For example, the neighbors of key "G" in layout 504 are keys "R,"
"T," "Y," "F," "H," "C," "V," and "B;" and the neighbors of key "W"
are keys "Q," "E," "A," "S," and "D."
[0070] It should be appreciated, however, that layouts 502 and 504
are merely exemplary, and that other layouts and key alignments are
possible and the same key may have different neighbors in different
layouts.
[0071] Attention is now directed to FIG. 6, an exemplary derivation
of candidate words based on a text input in accordance with some
embodiments. FIG. 6 illustrates an example of the identification of
candidate words from an input sequence.
[0072] In FIG. 6, the input sequence 602 is "rheatre." For prefix
strings of three characters in length, the first three characters
and their corresponding neighbors 604 are identified. Here, the
first character is "r" and its neighbors, in accordance with the
layout 502, are "e," "d," "f," and "t." The second character is
"h," and its neighbors are "y," "u," "g," "j," "b," and "n." The
third character is "e," and its neighbors are "w," "s," "d," and
"r."
[0073] From the input characters and corresponding neighbors, the
character permutations 606 are determined. Each permutation is a
character combination where the first character is the first input
character or a neighbor thereof, the second character is the second
input character or a neighbor thereof, and the third character is
the third input character or a neighbor thereof. From these
permutations, prefix strings are generated and compared to words in
the dictionary. Examples of three-character permutations based on
the input sequence 602 include "the," "rus," "rye," and "due."
Words in the dictionary that have one of these strings as a prefix
are identified as candidate words 608. Examples of candidate words
include "theater," "rye," "rusty," "due," "the," and "there." In
other embodiments, the character permutations may include four,
five, or more characters, rather than three characters.
[0074] Attention is now directed to FIGS. 7A-7C, which are examples
of scoring of candidate words in accordance with some embodiments.
FIG. 7A shows an input sequence and three possible candidate words
that may be identified from permutations of the first three
characters of the input sequence. The candidate words are compared
to the input sequence character-by-character and scores for the
candidate words are tallied.
[0075] In some embodiments, a score tally of a candidate word
involves assigning a value for each character comparison and adding
the values together. The value that is assigned for a character
comparison is based on the result of the comparison. Particularly,
the value is based on whether the character in the candidate word,
compared to the character in the corresponding position in the
input sequence, is an exact match, a neighbor on the keyboard
layout, or neither. In some embodiments, the value assigned for an
exact match is a predefined value N. If the characters are not an
exact match but are neighbors, then the value assigned is a value
.alpha.N, where .alpha. is a constant and .alpha.<1. In some
embodiments, .alpha. is 0.5. In other words, the value assigned for
a neighbor match is a reduction of the value for an exact
match.
[0076] In some embodiments, if the character in the candidate word
is neither an exact match or a neighbor of the corresponding
character in the input sequence, then the assigned value is
.beta.N, where .beta. is a constant and .beta.<.alpha.<1. For
example, .beta. may be 0.25. In some other embodiments, .beta. may
be a function of the "distance" between the characters on the
keyboard layout. That is, .beta. may be a smaller number if the
candidate word character is farther away on the keyboard layout
from the input sequence character than if the candidate word
character is closer on the keyboard layout from the input sequence
character without being a neighbor.
[0077] More generally, the value assigned for a character
comparison is .gamma.N, where N is a predefined value, .gamma.=1
for an exact match, and .gamma. may vary based on some function of
the "distance" on the layout between the character in the candidate
word and the corresponding character in the input sequence. For
example, .gamma. may be 1 for an exact match, 0.5 for a neighbor,
and 0 otherwise. As another example, .gamma. may be 0.5 for a
neighbor (a 1-key radius), 0.25 for keys that are two keys away (a
2-key radius), and 0 for keys that are three or more keys away. In
some embodiments, N is equal to 1.
[0078] If the candidate word has a length that is longer than the
input sequence, or vice versa, then the character positions that
are beyond the lesser of the two lengths are ignored or assigned a
value of 0.
[0079] The first candidate word shown in FIG. 7A is "theater. "
Compared to the input sequence of "rheatre," there are exact
matches in the second thru fifth positions. The characters in the
first, sixth, and seventh positions of the candidate word are
keyboard layout neighbors of input sequence characters in the
corresponding positions. Thus, the score for "theater" in this case
is 0.5N+N+N+N+N+0.5N+0.5N=5.5N.
[0080] The second candidate word is "threats." Compared to the
input sequence of "rheatre," there is an exact match in the second
position. The characters in the first, third, sixth, and seventh
positions of the candidate word are keyboard layout neighbors of
the input sequence characters in the corresponding positions, and
the characters in the fourth and fifth positions of the candidate
word are neither exact matches nor neighbors of the input sequence
characters in the corresponding positions. Thus, the score for
"threats" in this case is
0.5N+N+0.5N+0.25N+0.25N+0.5N+0.5N=3.5N.
[0081] The third candidate word is "there." Compared to the input
sequence of "rheatre," there is an exact match in the second and
third positions. The character in the first position of the
candidate word is a keyboard layout neighbor of the input sequence
character in the corresponding position, and the characters in the
fourth and fifth positions of the candidate word are neither exact
matches nor neighbors of the input sequence characters in the
corresponding positions. Furthermore, because the input sequence is
two characters longer than the candidate word, the last two
characters in the input sequence are ignored in the comparison and
are assigned score values of 0. Thus, the score for "there" in this
case is 0.5N+N+N+0.25N+0.25N=3N.
[0082] Some candidate words, when compared to the input sequence,
may merit a score bonus, examples of which are shown in FIGS. 7B
and 7C. In FIG. 7B, the input sequence is "thaeter" and the
candidate word is "theater." The score based on the character
comparisons alone is 5.5N. However, the only difference between
"thaeter" and "theater" is a pair of transposed or swapped
characters, namely "ae" in "thaeter" vs. "ea" in "theater." In some
embodiments, a first bonus P is added to the score for this fact.
In FIG. 7C, the input sequence is "thester" and the candidate word
is "theater." The score based on the character comparisons alone is
6.5N. However, the only difference between "thester" and "theater"
is a single character, namely "s" in "thester" vs. "a" in
"theater." In some embodiments, a second bonus Q is added to the
score for this fact. In some embodiments, both P and Q are equal to
0.75.
[0083] It should be appreciated that, in some other embodiments,
alternative candidate word scoring and selection schemes other than
the ones described above may be used.
[0084] For example, one alternative scheme may include, instead of
dividing the candidate words into the first and second groups based
on usage frequency rankings, the usage frequency rankings may
instead be used as a weighting to be applied to candidate word
scores. That is, the score of a candidate word is multiplied by the
usage frequency ranking of the candidate word, and candidate words
for presentation are selected based on their weighted scores.
[0085] As another example, another scheme replaces candidate word
scoring based on character-by-character comparisons, as described
above, with scoring based on the edit distance (also known as the
Levenshtein distance) between the input sequence and the candidate
word. That is, the score of a candidate word is the edit distance
between the candidate word and the input sequence, or a function
thereof, and candidate words are selected for presentation based on
the edit distance scores. Alternately, the score for each candidate
is based on the edit distance multiplied by (or otherwise combined
with) the usage frequency ranking of the candidate, and candidate
words are selected for presentation based on these scores.
[0086] As another example, another scheme uses a graph-matching
technique. In this technique, the sequence of individual touch
points that a user inputs into the device for a word (e.g., by
contacts with a virtual keyboard on the touch screen) form a
directed graph. This user-input directed graph is compared against
a collection of directed graphs for respective words in a
dictionary to generate a list of dictionary words that most closely
match the user typing. In some embodiments, the probability that a
user-input directed graph matches the directed graph for a
dictionary word is calculated as follows:
[0087] Let U.sub.1 . . . .sub.n be each point in the user-input
directed graph.
[0088] Let D.sub.1 . . . .sub.n be each point in the directed graph
of a dictionary word. Points in this directed graph are assigned
based on the centroid of the key that inputs the corresponding
letter, as represented in the keyboard user interface.
[0089] Let P.sub.1 . . . .sub.n be, for each point in the
user-input directed graph, the probability that the letter
corresponding to U.sub.x equals the letter corresponding to
D.sub.x. In some embodiments, a respective P.sub.x is computed by
calculating the Euclidean distance between the points U.sub.x and
D.sub.x, and applying a factor based on the size of the user
interface elements that indicate the keys on the keyboard. A
minimum probability may be entered for P.sub.x if the graphs for
the user word and the dictionary word are different lengths. In one
embodiment, the factor (based on the size of the user interface
elements that indicate the keys on the keyboard) is a divisor that
is equal to, or proportional to, the distance between center points
of two horizontally adjacent keys on the keyboard.
[0090] Multiplying the probabilities in P.sub.1 . . . .sub.n
together yields G, the probability that a graph for a dictionary
word matches the user-input graph. In some embodiments, G is
multiplied by F, the frequency that the word occurs in the source
language/domain. Furthermore, in some embodiments G is also
multiplied by N, a factor calculated by considering one or more
words previously typed by the user. For example, in a
sentence/passage being typed by a user, "to" is more likely to
follow "going," but "ti" is more likely to follow "do re mi fa so
la." In some embodiments, G is multiplied by both F and N to yield
.OMEGA., the probability that a user-input directed graph matches a
dictionary word.
[0091] The collection of dictionary words with the highest
probabilities may be presented in a display for user consideration,
for example as described in "Method, System, and Graphical User
Interface for Providing Word Recommendations" (U.S. patent
application Ser. No. 11/620,642, filed Jan. 5, 2007), the content
of which is hereby incorporated by reference in its entirety. In
some embodiments, the top-ranked word is presented for selection by
the user as described below with respect to FIGS. 11A, 11B, and 12.
In some embodiments, the top-ranked word is selected for the user
by the device without user intervention.
[0092] In some embodiments, as word recommendations are offered by
the portable device and selected by the user, statistics regarding
the corrections made are collected. For example, the characters in
an input sequence that was replaced by a candidate word selected by
the user and the corresponding characters may be logged. Over time,
the corrections log may be analyzed for patterns that may indicate
a pattern of repeated typing errors by the user. If the keyboard is
a virtual keyboard on a touch screen of the portable device, the
portable device may automatically adjust or recalibrate the contact
regions of the keys of the virtual keyboard to compensate for the
user pattern of typing errors. As another example, for a given
input sequence, the word selected by the user may be recommended
first or given a higher score when the same input sequence is
subsequently entered by the user.
[0093] In some embodiments, a user interface object is activated if
the determined touch point position falls within a user interface
object's "hit region" (or equivalently, "hit area") and there are
no overlapping objects with larger hit regions. The hit region of a
user interface object may be the same size as, or larger, or
smaller, than the visible size of the user interface object as it
is displayed on the touch screen. As explained below, an object
(e.g., a high-probability next character in a keyboard during text
input) may have a hit region that is larger than the visible size
of the user interface object as it is displayed on the touch screen
(e.g., key icon "O" has an enlarged hit region denoted by the
dotted line around the "O" key icon in FIG. 8B). For such objects,
the portion of the hit region that is larger than the corresponding
user interface object is called a hidden hit region.
[0094] For example, the total hit area associated with a key icon
on a keyboard may be dynamically adjusted (e.g., updated after each
character in a character string is entered) with the following
formula:
A.sub.Total(i)=A.sub.Visible(i)+A.sub.Hidden(i)=A.sub.Visible(i)
{1+[P(i)K]}
where, [0095] A.sub.Total(i)=total hit area for the adjustable hit
region for character i, [0096] A.sub.Visible(i)=visible key area on
the touch screen for character i, [0097] A.sub.Hidden(i)=hidden hit
area for character i, [0098] P(i)=probability that the next
character entered will be i (where the probability is based on the
previous characters entered in the character string and one or more
types of word usage frequency), and [0099] K=an empirically
determined, positive constant that depends on the size of the keys
on the touch screen display.
[0100] For this example, the total hit area, A.sub.Total(i) is
never less than the visible key area, A.sub.Visible(i). The
adjustable hit region for a key icon includes a visible key area
displayed on the touch screen display and a hidden hit region not
displayed on the touch screen display. In some embodiments, the
visible key area A.sub.Visible(i) for a given key is constant,
while the hidden hit area A.sub.Hidden(i) is dynamic, thereby
making the total hit area A.sub.Total(i) dynamic as well. K can be
determined by trial and error by observing users interacting with a
particular keyboard. K approaches zero as the size of the visible
keys increases on the touch screen. In other words, if the key
icons become comparable to or larger than the finger contact areas
on the touch screen, hidden hit regions are no longer needed to
help identify the key icon that the user probably intended to
hit.
[0101] FIGS. 8A-8C illustrate an exemplary method for dynamically
adjusting hidden hit regions associated with soft keyboard keys as
a word is typed with the soft keyboard keys in accordance with some
embodiments. The user interface includes an input field 5620 and a
soft keyboard 5640. A user selection of any key icon of the soft
keyboard 5640 enters a corresponding user-selected character in the
input field 5620. For illustrative purposes, as shown in FIG. 8A,
all the key icons initially have the same size hit regions, which
correspond to the visible boundaries of the keys.
[0102] FIG. 8B depicts changes in the sizes of hidden hit regions
associated with different key icons after two characters "G-O" are
entered into the input field 5620. The sizes of the hidden regions
for the keys have been adjusted in accordance with the previously
entered characters. For example, the size of the hidden hit region
for the key icon "D" increases because "God" is a common English
word. Thus, the key icon "D" may be activated even if the next
finger contact (as illustrated by the "+" sign in FIG. 8B) is on
the visible area of the key icon "F." In some embodiments, if the
hidden hit regions of two (or more) keys overlap with the finger
contact (or with a touch point position derived from a finger
contact), then the key with the largest hit region A.sub.Total(i)
(including its hidden hit region A.sub.Hidden(i)) is selected.
Similarly, the hidden hit regions associated with key icons "A" and
"O" are also increased because each of the strings "Goa" and "Goo"
leads to one or more legitimate English words such as "Goal",
"Good", or "Goad." In some embodiments, the hit regions of unlikely
next characters (e.g., key icon "K" is unlikely because the string
"Gok" is not found at the beginning of any common English words)
shrink so that the hit area is less than the visible area of the
key. In some embodiments, the hit regions of unlikely next
characters do not shrink. Such keys will not be selected in the
areas where they overlap with keys with enlarged hit regions.
[0103] FIG. 8C depicts the updated hidden hit regions associated
with different key icons after another character "a" is entered
into the input field 5620. Given the string "Goa" that has been
entered, the user may be typing the word "Goal." Accordingly, the
size of the hidden hit region associated with the key icon "L"
increases, whereas the hidden hit region associated with the key
icon "O" drops (e.g., to it default initial value) because the
string "Goao" is not found at the beginning of any common English
words.
[0104] FIG. 9 illustrates an exemplary derivation of candidate
words based on text input in accordance with some embodiments. A
set of key icons (e.g., soft keyboard 5640, FIG. 8A) are displayed
on a touch screen display, as discussed above. A first touch point
input is received from the user, and is construed by the portable
electronic device as the character "R," because the probability of
the character "R" is determined to be greater than the probability
of other characters, such as "T," based on the location of the
first touch point input. For example, the first touch point may be
on a key icon for the letter "R." Alternately, the first touch
point may be at a location that is between the key icons for the
letters "R" and "T," but closer to the letter "R." With only a
single touch point input so far, the probabilities are determined
based solely or primarily on touch probabilities.
[0105] Next, a second touch point input is received from the user,
this time within the hit region for the key icon for the letter
"h". The device now evaluates both touch-based probabilities
(P.sub.touch(r), P.sub.touch(h)), for candidate characters
corresponding to the first and second touch point inputs and
usage-based probabilities (P.sub.usage(r), P.sub.usage(h)) for the
first and second touch point inputs. A combined probability for
each of a plurality of candidate character sequences (e.g., Rh, Th)
is determined. If there is a candidate character sequence having a
probability that is greater than the probability for the displayed
character sequence, and that meets any other applicable selection
criteria, then a suggested character string corresponding to the
candidate character sequence having the highest probability is
displayed. If the displayed suggested character string (e.g., a
word) is selected by the user, for example by touching the space
bar or other delimiter icon (e.g., as shown in FIGS. 11A, 11 B, and
12), the displayed suggested character string replaces the
previously displayed sequence of characters. If the user does not
select (e.g., does not touch an icon for a delimiter) the displayed
suggested character string, the user can instead continue to input
additional touch points. In the example shown in FIG. 9, the third
touch point input is on or near the key icon for the letter "e." At
this point, the device may determine that the probability for the
candidate character sequence "T-h-e" [e.g.,
P.sub.touch(t)P.sub.usage(t)P.sub.touch(h)P.sub.usage(h)
P.sub.touch(e)P.sub.usage(e), FIG. 9] is greater than the
probability for the currently displayed character sequence, "R-h-e"
[e.g., P.sub.touch(r)P.sub.usage(r) P.sub.touch(h)P.sub.usage(h)
P.sub.touch(e)P.sub.usage(e), FIG. 9], and is also greater than the
probability for any other candidate character sequence that is
compatible with the sequence of touch point inputs received so far.
In that case, the suggested character string "The" is displayed and
made available for selection by the user. If the user is actually
trying to type the word "rhesus," then in response to detecting a
user touch point on or near the "s" icon key, the device will cease
to display the suggested word "The." On the other hand, in response
to detecting a user touch point on or near the space bar or other
delimiter icon key, the device will replace "Rhe" with the
suggested word "The."
[0106] FIGS. 10A and 10B are flow diagrams illustrating text input
processes 1000 and 1050 in accordance with some embodiments. The
processes increase the accuracy of text entered on touch screen
keyboards by touch input and the accuracy of suggested words,
respectively. Process 1000 is performed at a portable electronic
device having a touch screen display (e.g., device 100).
[0107] The device displays (1002) a plurality of key icons (e.g.,
in keyboard 5640, FIG. 8A), each key icon having an adjustable hit
region of dynamically adjustable size (e.g., FIGS. 8B-8C). In some
embodiments, the hit region of each key icon has a default size
equal to a visible display size of the key icon (e.g., FIG.
8A).
[0108] The devices receives (1004) a sequence of individual touch
points input by a user on the touch screen display. Each touch
point is determined at lift off of a contact (e.g., a finger
contact or a stylus contact) from the touch screen display. An
image with an enlarged version of a character that will be selected
as the character corresponding to an individual touch point is
displayed prior to lift off of a respective contact (e.g., the
letter "N" in FIG. 11A). The character image that is displayed
prior to lift off is selected in accordance with the adjustable hit
regions of the displayed key icons. For example, if the hidden hit
regions of two (or more) keys overlap with the finger contact (or
with a touch point position derived from a finger contact), then a
character image that corresponds to the key with the largest hit
region A.sub.Total(i) (including its hidden hit region
A.sub.Hidden(i)) is selected for display.
[0109] After receiving each of the individual touch points, the
device: [0110] forms a user-input directed graph for the sequence
of individual touch points received so far; [0111] determines a
character corresponding to a last received individual touch point
in accordance with the adjustable hit regions of the displayed key
icons; [0112] displays a sequence of characters corresponding to
the sequence of individual touch points, including the determined
character; and [0113] updates sizes of the adjustable hit regions
for a plurality of the key icons (1006).
[0114] As noted above, in some embodiments, if the hidden hit
regions of two (or more) keys overlap with a finger contact (or
with a touch point position derived from the finger contact), then
the character corresponding to the key with the largest hit region
(including its hidden hit region) is selected as the determined
character.
[0115] In some embodiments, the device determines (1008) one of
more alternate sequences of characters corresponding to the
sequence of individual touch points, and determines a respective
probability for each of the alternate sequences of characters and
for the displayed sequence of characters. In some embodiments, the
device displays a suggested replacement character string comprising
a selected one of the alternate sequence of characters when the
probability of the selected alternate sequence meets one or more
predefined criteria with respect to the probability of the
displayed sequence of characters [e.g., in FIG. 9,
P.sub.touch(t)P.sub.usage(t) P.sub.touch(h)P.sub.usage(h)
P.sub.touch(e)P.sub.usage(e)>P.sub.touch(r)P.sub.usage(r)
P.sub.touch(h)P.sub.usage (h) P.sub.touch(e)P.sub.usage(e)].
[0116] In some embodiments, the device receives (1010) a touch
point corresponding to a deletion key icon; deletes one or more of
the displayed characters to produce a shortened sequence of
characters; receives additional individual touch points; and after
receiving each of the additional individual touch points:
determines and displays a suggested character string only when the
suggested character string starts with the shortened sequence of
characters and the suggested character string meets predefined
character string suggestion criteria (1010).
[0117] In some embodiments, the size of the adjustable hit region
for a respective key icon is updated in accordance with the
sequence of individual touch points input by the user. In some
embodiments, updating the size of the adjustable hit region for a
respective key icon includes determining a probability associated
with the respective key icon and determining a size of the
adjustable hit region in accordance with the determined
probability. In some embodiments, the probability associated with
the respective key icon is determined in accordance with the
displayed sequence of characters (e.g., "Go" in FIG. 8B). In some
embodiments, the probability associated with the respective key
icon is determined in accordance with a plurality of character
sequences including the displayed sequence of characters and at
least one other sequence of characters consistent with the sequence
of individual touch points input by the user. For example, the
probability associated with the respective key icon may be based on
the displayed sequence of characters (e.g., "Go" in FIG. 8B) and
the top N (where N=1, 2, 5, etc.) candidate words (e.g., God, Goal,
and Good for N=3) consistent with the sequence of individual touch
points input by the user.
[0118] In some embodiments, the device determines a respective
probability for each of a plurality of character sequences
consistent with the sequence of individual touch points input by
the user. The probability associated with the respective key icon
is determined in accordance with determined probabilities of the
plurality of character sequences, each of which comprises a
potential prefix for a next character corresponding to a next touch
point input by the user.
[0119] Process 1050 is performed at a portable electronic device
having a touch screen display (e.g., device 100). The process
increases the accuracy of suggested words by using information
derived from character deletion by a user on the character string
currently being entered. In the process, in addition to meeting
other predefined word suggestion criteria, a word is not suggested
unless the word starts with the shortened sequence of characters
that remain after a user has deleted characters from the current
character string being input by the user.
[0120] The device displays (1030) a plurality of key icons (e.g.,
soft keyboard 5640, FIG. 8A).
[0121] The device receives (1032) a sequence of individual touch
points input by a user on the touch screen display.
[0122] The device displays (1034) a sequence of characters
corresponding to the sequence of individual touch points.
[0123] The device receives (1036) a touch point corresponding to a
deletion key icon.
[0124] The device deletes (1038) one or more of the displayed
characters to produce a shortened sequence of characters.
[0125] The device receives (1040) additional individual touch
points.
[0126] After receiving each of the additional individual touch
points, the device: [0127] displays a current sequence of
characters including characters associated with the additional
individual touch points; and [0128] determines and displays a
suggested character string only when the suggested character string
starts with the shortened sequence of characters and the suggested
character string meets predefined character string suggestion
criteria (1042).
[0129] In some embodiments, the device determines a respective
probability for the suggested character string and for the current
sequence of characters. The predefined character string suggestion
criteria include a requirement that the determined probability for
the suggested character string be greater than the determined
probability for the current sequence of characters.
[0130] In some embodiments, the predefined character string
suggestion criteria include a requirement that the determined
probability for the suggested character string be greater than the
determined probability for the current sequence of characters by at
least a predefined margin. For example, the margin may be a 10%
margin, requiring that the probability for the suggested character
string is at least 10% greater than the probability for the current
sequence of characters.
[0131] In some embodiments, the determined probabilities are
determined in accordance with the additional individual touch
points input by the user.
[0132] In some embodiments, the determined probabilities are
determined in accordance with the shortened sequence of characters
and the additional individual touch points input by the user.
[0133] In some embodiments, the suggested character string
comprises a complete word.
[0134] In some embodiments, the suggested character string
comprises a complete word that includes at least one character not
currently included in the plurality of displayed key icons. For
example, if the user enters the letters "bete," the suggested word
may be "b te." The suggested word includes " ", which may not be
displayed on a key icon on the keyboard.
[0135] FIGS. 11A and 11B illustrate an exemplary user interface for
inputting text in accordance with some embodiments.
[0136] In some embodiments, user interfaces 1100A and 1100B include
the following elements, or a subset or superset thereof: [0137]
Signal strength indicator(s) 650 for wireless communication(s),
such as cellular and Wi-Fi signals; [0138] Time 652; [0139] Battery
status indicator 654; [0140] Text entry area 612; [0141] Send icon
614 that when activated (e.g., by a finger tap on the icon)
initiates sending of the message in text box 612 to another party
(e.g., Mike Van Os); [0142] Soft keyboard 616 for entering text in
area 612; [0143] Alternate keyboard selector icon 618 that when
activated (e.g., by a finger tap on the icon) initiates the display
of a different keyboard (e.g., a soft keyboard with numbers);
[0144] Return icon 620 that when activated (e.g., by a finger tap
on the icon) initiates a new line in the message in text box 612;
[0145] Shift key 628 that when activated (e.g., by a finger tap on
the icon) capitalizes the next letter chosen on soft keyboard 616
[0146] Recipient input field 632 that when activated (e.g., by a
finger tap on the field) receives and displays the phone number of
the recipient of the instant message (or the recipient's name if
the recipient is already in the user's contact list); [0147] Add
recipient icon 634 that when activated (e.g., by a finger tap on
the icon) initiates the display of a scrollable list of contacts;
[0148] Cancel icon 636 that when activated (e.g., by a finger tap
on the icon) cancels the new instant message; [0149] Second area
with suggested word 644 (e.g., adjacent to the word being input in
text entry area 612); [0150] Rejection icon 645; [0151] Space bar
646; and/or [0152] Insertion marker 656 (e.g., a cursor, insertion
bar, insertion point, or pointer).
[0153] In some embodiments, a user can set whether the second area
644 with a suggested word is shown (e.g., by setting a user
preference). In some embodiments, a letter is enlarged briefly
before or after it is selected (e.g., an enlarged "N" 660 is
displayed briefly while typing the "n" in "din" in FIG. 11A) to
provide feedback to the user.
[0154] FIG. 12 is a flow diagram illustrating a process 1200 for
inputting text on a portable electronic device with a soft keyboard
and a touch screen display (e.g., device 100) in accordance with
some embodiments. The process makes it very simple and intuitive
for a user to accept or reject suggested words.
[0155] In a first area (e.g., text entry area 612) of the touch
screen display, the device displays (1202) a current character
string being input by a user with the soft keyboard (e.g., "din",
FIG. 11A).
[0156] In a second area 644 of the touch screen display, the device
displays (1204) a suggested replacement character string for the
current character string (e.g., "dinner" in area 644, FIG. 11A). In
some embodiments, the second area 644 includes a suggestion
rejection icon 645 adjacent to the suggested replacement character
string (e.g., the circled "X" in area 644 adjacent to
"dinner").
[0157] The device replaces (1206) the current character string in
the first area with the suggested replacement character string in
response to detecting user activation of a key on the soft keyboard
associated with a delimiter. For example, if the user activates the
space bar key 646 on keyboard 615, the character string "din" in
area 612 is replaced with the suggested replacement character
string "dinner," as shown in FIG. 11B.
[0158] The device keeps (1208) the current character string in the
first area in response to detecting a finger gesture on the
suggested replacement character string displayed in the second area
(e.g., a tap gesture on the suggested replacement character string
"dinner" ends display of the suggested replacement character string
"dinner" and the suggestion rejection icon 645, while the current
character string "din" is kept in area 612, not shown).
[0159] The foregoing description, for purpose of explanation, has
been described with reference to specific embodiments. However, the
illustrative discussions above are not intended to be exhaustive or
to limit the invention to the precise forms disclosed. Many
modifications and variations are possible in view of the above
teachings. The embodiments were chosen and described in order to
best explain the principles of the invention and its practical
applications, to thereby enable others skilled in the art to best
utilize the invention and various embodiments with various
modifications as are suited to the particular use contemplated.
* * * * *