U.S. patent application number 14/599401 was filed with the patent office on 2015-06-11 for explicit character filtering of ambiguous text entry.
The applicant listed for this patent is NUANCE COMMUNICATIONS, INC.. Invention is credited to Ethan Robert BRADFORD, Keith Charles HULLFISH, David KAY, Michael R. LONGE, Pim VAN MEURS.
Application Number | 20150161245 14/599401 |
Document ID | / |
Family ID | 29999073 |
Filed Date | 2015-06-11 |
United States Patent
Application |
20150161245 |
Kind Code |
A1 |
BRADFORD; Ethan Robert ; et
al. |
June 11, 2015 |
EXPLICIT CHARACTER FILTERING OF AMBIGUOUS TEXT ENTRY
Abstract
The present invention relates to a method and apparatus for
explicit filtering in ambiguous text entry. The invention provides
embodiments including various explicit text entry methodologies,
such as 2-key and long pressing. The invention also provides means
for matching words in a database using build around methodology,
stem locking methodology, word completion methodology, and n-gram
searches.
Inventors: |
BRADFORD; Ethan Robert;
(Seattle, WA) ; HULLFISH; Keith Charles;
(Snohomish, WA) ; KAY; David; (Seattle, WA)
; VAN MEURS; Pim; (Seattle, WA) ; LONGE; Michael
R.; (Seattle, WA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
NUANCE COMMUNICATIONS, INC. |
BURLINGTON |
MA |
US |
|
|
Family ID: |
29999073 |
Appl. No.: |
14/599401 |
Filed: |
January 16, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14304842 |
Jun 13, 2014 |
8972905 |
|
|
14599401 |
|
|
|
|
13748501 |
Jan 23, 2013 |
8782568 |
|
|
14304842 |
|
|
|
|
12725334 |
Mar 16, 2010 |
8381137 |
|
|
13748501 |
|
|
|
|
10176933 |
Jun 20, 2002 |
7712053 |
|
|
12725334 |
|
|
|
|
09454406 |
Dec 3, 1999 |
6646573 |
|
|
10176933 |
|
|
|
|
Current U.S.
Class: |
707/722 |
Current CPC
Class: |
G06F 3/0235 20130101;
G06F 3/0237 20130101; G06F 3/0233 20130101; G06F 3/04842 20130101;
G06F 16/3344 20190101; G06F 3/02 20130101; G06F 3/0236 20130101;
G06F 16/338 20190101; G06F 16/35 20190101; G10L 13/08 20130101 |
International
Class: |
G06F 17/30 20060101
G06F017/30; G06F 3/0484 20060101 G06F003/0484 |
Claims
1. A computer-implemented method comprising: receiving a series of
key entries from a user input device; determining at least one
entry in the series of key entries is ambiguous, wherein each
ambiguous entry corresponds to two or more potential characters in
a human language; determining one or more entry groups in the
series of key entries and one or more potential character sequences
associated with the entry groups, wherein, when a first entry group
of the entry groups includes an ambiguous entry, the first entry
group corresponds to at least two potential character sequences;
matching a potential character sequence of the potential character
sequences against a language database; and presenting the potential
character sequence on a character input interface when the
potential character sequence matches at least a portion of a known
word or object in the language database.
2. The computer-implemented method of claim 1, further comprising:
locking the potential character sequence such that the first entry
group is considered unambiguous and explicitly corresponding to the
potential character sequence.
3. The computer-implemented method of claim 2, wherein locking the
potential character sequence is in response to receiving a user
input via the user input device.
4. The computer-implemented method of claim 3, wherein the user
input corresponds to a character indicating a word boundary.
5. The computer-implemented method of claim 3, wherein the user
input corresponds to a command to move a cursor of the character
input interface toward a next character.
6. The computer-implemented method of claim 1, further comprising:
receiving user input to move a cursor over one or more characters
in the potential character sequence; and locking the one or more
characters that the cursor moved over such that entries
corresponding to the one or more characters are considered
unambiguous and explicitly entered.
7. The computer-implemented method of claim 1, further comprising
locking a subsequence of the potential character sequence thereby
causing one or more entries to correspond explicitly to respective
characters in the subsequence.
8. The computer-implemented method of claim 7, further comprising:
determining one or more new entry groups in the series of key
entries and one or more new potential character sequences
associated with the new entry groups; and selecting at least one of
the new potential character sequences corresponding to a second
entry group to present on a character input interface based on
whether the selected new potential character sequence matches at
least a portion of a known word or object in the language
database.
9. The computer-implemented method of claim 1, wherein said
matching includes performing an N-Gram search.
10. The computer-implemented method of claim 1, wherein the user
input device is a keyboard component of a mobile device and wherein
the character input interface is displayed on a display component
of the mobile device.
11. A computer-implemented method comprising: receiving a series of
key entries via a user input device; determining, based on a user
interaction with a text entry interface, at least a first key entry
being explicitly associated with a character in a human language;
determining, based on a known attribute of the user input device,
two or more potential characters for at least a second key entry;
identifying character combinations based on characters, explicit or
ambiguous, of the series of key entries; and performing a search to
identify a likely character combination from among the character
combinations that at least partially matches a word or object in a
language database.
12. The computer-implemented method of claim 11, further
comprising: responsive to the search not identifying any character
combination that at least partially matches a word or object in the
language database, performing a modified search to identify the
likely character combination as a character combination including
most number of explicit or locked-in characters.
13. The computer-implemented method of claim 11, wherein performing
the search includes determining whether there is a match in the
language database to a character combination sequence of an entire
length of the series of key entries.
14. The computer-implemented method of claim 13, further comprising
displaying the character combination sequence when there is a match
in the language database for the character combination sequence of
the entire length of the series of key entries.
15. The computer-implemented method of claim 13, wherein performing
the search further comprises: dividing the series of key entries
into subsets of entries when there is no match in the language
database for the character combination sequence of the entire
length.
16. The computer-implemented method of claim 15, wherein performing
the search further comprises: determining whether there is a match
for a character subsequence corresponding to a first subset of
entries, wherein the character subsequence includes an explicit
character, a potential character, or any combination thereof.
17. The computer-implemented method of claim 16, further comprising
displaying the character subsequence for user verification via the
text entry interface when there is a match for the character
subsequence in the language database.
18. An apparatus for typing in a human language comprising: a user
input device to receive a series of key entries; a display device
for displaying a text entry interface; a processor; a memory
storing a language object database and executable instructions to
implement an engine when executed by the processor; wherein the
engine is operable to configure the processor to: determine, based
on a user interaction with the text entry interface, at least a
first key entry being explicitly associated with a character in a
human language; determine, based on a known attribute of the user
input device, two or more potential characters for at least a
second key entry; identify character combinations based on
characters, explicit or ambiguous, corresponding to the series of
key entries; and perform a search to identify a likely character
combination from among the character combinations that at least
partially matches a word or object in a language database.
19. The apparatus of claim 18, wherein the user input device
includes a button that, when pressed, generates an ambiguous key
entry that corresponds to at least two potential characters in the
human language.
20. The apparatus of claim 19, wherein the known attribute of the
user input device specifies the potential characters corresponding
to the button.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 14/304,842, filed Jun. 13, 2014, which is a
continuation of U.S. patent application Ser. No. 13/748,501, filed
Jan. 23, 2013, now U.S. Pat. No. 8,782,568, issued Jul. 15, 2014,
which is a continuation of U.S. patent application Ser. No.
12/725,334, filed Mar. 16, 2010, now U.S. Pat. No. 8,381,137,
issued Feb. 19, 2013, which is a continuation of U.S. patent
application Ser. No. 10/176,933, filed 20 Jun. 2002, now U.S. Pat.
No. 7,712,053, issued May 4, 2010, which is a continuation-in-part
of U.S. patent application Ser. No. 09/454,406, filed Dec. 3, 1999,
now U.S. Pat. No. 6,646,573, issued Nov. 11, 2003, each of which is
incorporated herein in its entirety by this reference thereto.
BACKGROUND OF THE INVENTION
[0002] 1. Technical Field
[0003] The invention relates to text input technology. More
specifically, the invention relates to text entry solutions to
wireless communication devices with limited keypads.
[0004] 2. Description of the Prior Art
[0005] For many years, portable computers have been getting smaller
and smaller. The principal size-limiting component in the effort to
produce a smaller portable computer has been the keyboard. If
standard typewriter-size keys are used, the portable computer must
be at least as large as the keyboard. Miniature keyboards have been
used on portable computers, but the miniature keyboard keys have
been found to be too small to be easily or quickly manipulated by a
user. Incorporating a full-size keyboard in a portable computer
also hinders true portable use of the computer. Most portable
computers cannot be operated without placing the computer on a flat
work surface to allow the user to type with both hands. A user
cannot easily use a portable computer while standing or moving.
[0006] In the latest generation of small portable computers, called
Personal Digital Assistants (PDAs), companies have attempted to
address this problem by incorporating handwriting recognition
software in the PDA. A user may directly enter text by writing on a
touch-sensitive panel or screen. This handwritten text is then
converted by the recognition software into digital data.
Unfortunately, in addition to the fact that printing or writing
with a pen is in general slower than typing, the accuracy and speed
of the handwriting recognition software has to date been less than
satisfactory.
[0007] Presently, a tremendous growth in the wireless industry has
spawned reliable, convenient, and very popular mobile
communications devices available to the average consumer, such as
cell phones, two-way pagers, PDAs, etc. These handheld wireless
communications and computing devices requiring text input are
becoming smaller still. Recent advances in two-way paging, cellular
telephones, and other portable wireless technologies have led to a
demand for small and portable two-way messaging systems, and
especially for systems which can both send and receive electronic
mail ("e-mail"). Some wireless communications device manufacturers
also desire to provide to consumers devices with which the consumer
can operate with the same hand that is holding the device.
[0008] Disambiguation Background. Prior development work has
considered use of a keyboard that has a reduced number of keys. As
suggested by the keypad layout of a touch-tone telephone, many of
the reduced keyboards have used a 3-by-4 array of keys. Each key in
the array of keys contains multiple characters. There is therefore
ambiguity as a user enters a sequence of keys, since each keystroke
may indicate one of several letters. Several approaches have been
suggested for resolving the ambiguity of the keystroke sequence,
referred to as disambiguation.
[0009] One suggested approach for unambiguously specifying
characters entered on a reduced keyboard requires the user to
enter, on average, two or more keystrokes to specify each letter.
The keystrokes may be entered either simultaneously (chording) or
in sequence (multiple-stroke specification). Neither chording nor
multiple-stroke specification has produced a keyboard having
adequate simplicity and efficiency of use. Multiple-stroke
specification is inefficient, and chording is complicated to learn
and use.
[0010] Other suggested approaches for determining the correct
character sequence that corresponds to an ambiguous keystroke
sequence are summarized in the article "Probabilistic Character
Disambiguation for Reduced Keyboards Using Small Text Samples,"
published in the Journal of the International Society for
Augmentative and Alternative Communication by John L. Arnott and
Muhammad Y. Javad (hereinafter the "Arnott article"). The Arnott
article notes that the majority of disambiguation approaches employ
known statistics of character sequences in the relevant language to
resolve character ambiguity in a given context.
[0011] Another suggested approach based on word-level
disambiguation is disclosed in a textbook entitled Principles of
Computer Speech, authored by I. H. Witten, and published by
Academic Press in 1982 (hereinafter the "Witten approach"). Witten
discusses a system for reducing ambiguity from text entered using a
telephone touch pad. Witten recognizes that for approximately 92%
of the words in a 24,500 word dictionary, no ambiguity will arise
when comparing the keystroke sequence with the dictionary. When
ambiguities do arise, however, Witten notes that they must be
resolved interactively by the system presenting the ambiguity to
the user and asking the user to make a selection between the number
of ambiguous entries. A user must therefore respond to the system's
prediction at the end of each word. Such a response slows the
efficiency of the system and increases the number of keystrokes
required to enter a given segment of text.
[0012] H. A. Gutowitz, Touch-Typable Devices Based on Ambiguous
Codes and Methods to Design Such Devices, WO 00/35091 (Jun. 15,
2000) discloses that the design of typable devices, and, in
particular, touch-type devices embodying ambiguous codes presents
numerous ergonomical problems and proposes some solutions for such
problems. Gutowitz teaches methods for the selection of ambiguous
codes from the classes of strongly-touch-typable ambiguous codes
and substantially optimal ambiguous codes for touch-typable devices
such as computers, PDA's, and the like, and other information
appliances, given design constraints, such as the size, shape and
computational capacity of the device, the typical uses of the
device, and conventional constraints such as alphabetic ordering or
Qwerty ordering.
[0013] Eatoni Ergonomics Inc. provides a system called WordWise,
(Copyright 2001 Eatoni Ergonomics Inc.), adapted from a regular
keyboard, and where a capital letter is typed on a regular
keyboard, and an auxiliary key, such as the shift key, is held down
while the key with the intended letter is pressed. The key idea
behind WordWise is to choose one letter from each of the groups of
letters on each of the keys on the telephone keypad. Such chosen
letters are typed by holding down an auxiliary key while pressing
the key with the intended letter. WordWise does not use a
vocabulary database/dictionary to search for words to resolve
ambiguous, unambiguous, or a combination thereof entries.
[0014] Zi Corporation teaches a predictive text method,
eZiText.sup.(R) (2002 Zi Corporation), but does not teach nor
anywhere suggest explicit text filtering in ambiguous mode, nor in
combination with 2-key explicit entry, stem-locking, or n-gram
searches.
[0015] A Need for Improvements to Current Disambiguation
Methodologies.
[0016] Disambiguating an ambiguous keystroke sequence continues to
be a challenging problem. A specific challenge facing
disambiguation is providing sufficient feedback to the user about
the keystrokes being input. With an ordinary typewriter or word
processor, each keystroke represents a unique character which can
be displayed to the user as soon as it is entered. But with
word-level disambiguation, for example, this is often not possible,
because each entry represents multiple characters, and any sequence
of entries may match multiple objects, such as, words or word
stems, for example. Such ambiguity is especially a problem when,
for example, the user makes a spelling or entry error and the user
is not certain of such error until the complete sequence is entered
and the desired result is not presented. In another example,
previous systems utilizing word-level disambiguation fail to
provide any feedback until a predetermined selection, such as a
specific key selection, is made that is recognizable by the system
as a termination selection, e.g. the space key.
[0017] Moreover, some alphabets, such as Thai and Arabic, contain
more letters than the alphabet for English, which leads to even
greater ambiguity on a reduced number of keys. Efficient input of
these languages demands a mechanism for reducing that ambiguity
when needed.
[0018] Therefore, it would be advantageous to provide a
disambiguating system which reduces the apparent ambiguity on the
display during entry and improves the user's ability to detect and
correct spelling and/or entry errors.
[0019] It would also be advantageous to provide a disambiguating
system which reduces ambiguity and increases efficiency by
providing explicit filtering capabilities such that a list of
candidate words, word stems, sequence of symbols, and the like, is
narrowed, and the user can subsequently be offered a word
completion or sequence completion quicker. More specifically, it
would be advantageous to allow locking in a current state of
interpretation of a part of or all of previously entered characters
including, but not limited to an object and/or word stems, and
explicitly entered characters, thereby preventing reinterpretation
of previous entries.
[0020] It would also be advantageous to build around explicitly
entered characters as anchors, for the end of or beginning of new
objects, words, or word stems.
[0021] It would also be advantageous to offer reasonable guesses
for extending objects or words by n-gram analysis of preceding
explicitly entered characters.
[0022] It would also be advantageous to reduce ambiguity and
increase efficiency during the process of disambiguating a
linguistic object, such as a word or word stem, for example, by
preventing reinterpretation of previous entries.
[0023] It would also be advantageous to recognize common delimiters
entered ambiguously or explicitly as suggesting a point connecting
two separate sets of characters to suggest where the interpretation
of keystrokes could be restarted.
SUMMARY OF THE INVENTION
[0024] The present invention relates to a method and apparatus for
explicit filtering in ambiguous text entry. The invention provides
embodiments including various explicit text entry methodologies,
such as 2-key and long pressing. The invention also provides means
for matching words in a database using build around methodology,
stem locking methodology, word completion methodology, and n-gram
searches.
BRIEF DESCRIPTION OF THE DRAWINGS
[0025] FIG. 1 is a hardware block diagram of the explicit character
filtering system according of the invention;
[0026] FIG. 2 is a picture of a wireless handheld device showing
each letter of the English alphabet associated with a key according
to the invention;
[0027] FIG. 3 is an example chart of European letters and some
special symbols shown on the 0-9 keys and their respective Shift
keys according to the invention;
[0028] FIG. 4 is a sample screenshot of one 2-key matrix input
method according to the invention;
[0029] FIG. 5 is a flow chart of 2-key explicit entry for the
explicit character filtering in ambiguous text entry system of FIG.
1;
[0030] FIG. 6 is a flow chart for explicitly filtering in ambiguous
mode according to a preferred embodiment of the invention;
[0031] FIG. 7 is a flow chart of a method for generating words not
stored in the database according to the invention;
[0032] FIG. 8 shows an example of explicit entry by long-pressing
on a key according to the invention; and
[0033] FIG. 9 is a flow chart depicting a build around example
according to the invention.
DETAILED DESCRIPTION OF THE INVENTION
[0034] The present invention relates to a method and apparatus for
explicit filtering in ambiguous text entry. The invention provides
embodiments including various explicit text entry methodologies,
such as 2-key and long pressing. The invention also provides means
for matching words in a database using build around methodology,
stem locking methodology, word completion methodology, and n-gram
searches.
[0035] More specifically, the present invention relates to a method
and apparatus for explicit filtering in an ambiguous text entry
mode, for extending and interpreting objects, words, word stems,
and the like, and for stem-locking. One specific embodiment of
explicit filtering for reducing ambiguity uses a variety of
explicit entry means, including a 2-key explicit entry feature,
wherein a key depression in combination with a matrix display are
used. An extending and interpreting methodology is provided wherein
complex phrases are allowed to be typed in. Predetermined sets of
characters are "built around" as anchors for the end or beginning
of new words or word stems. Reasonable guesses are offered for
extending words by "n-gram" analysis of preceding explicit letters.
Specifically, three specific embodiments using stem-locking are
provided, wherein the first embodiment uses a combination of the n
letters of a desired object, such as a word, and a next key. The
second embodiment locks in the stem portion of the object and
resolves the unlocked portion of the object. The third embodiment
uses n-gram searches.
[0036] A block diagram of a preferred embodiment of the reduced
keyboard disambiguating system hardware is provided in FIG. 1. The
keyboard 54 and the display 53 are coupled to a processor 100
through appropriate interfacing circuitry. Optionally, a speaker
102 is also coupled to the processor. The processor 100 receives
input from the keyboard, and manages all output to the display and
speaker. Processor 100 is coupled to a memory 104. The memory
includes a combination of temporary storage media, such as random
access memory (RAM), and permanent storage media, such as read-only
memory (ROM), floppy disks, hard disks, or CD-ROMs. Memory 104
contains all software routines to govern system operation.
Preferably, the memory contains an operating system 106,
disambiguating software 108, and associated explicit character
filtering in ambiguous text entry software and/or extending and
interpreting software 110 that is discussed in additional detail
below. The memory also includes a vocabulary database 30.
Optionally, the memory may contain one or more application programs
112, 114. Examples of application programs include word processors,
software dictionaries, and foreign language translators. Speech
synthesis software may also be provided as an application program,
allowing the reduced keyboard disambiguating system to function as
a communication aid. Therefore, the output, in this case, might be
vocally output from the speaker.
[0037] It should be appreciated and understood by one of ordinary
skill in the art that the discussion applies to symbols and
sequences of symbols, which, when combined make an object or part
of an object. A typical example of a symbol is a character in any
language, such as a letter, digit, punctuation mark, or any other
symbol from a language. A typical example of an object or part of
an object is a word or part of a word. However, the discussion
herein equally applies to Japanese kana and Korean jamos. Also, it
should be noted that the objects don't have to be linguistic, as
the claimed disambiguating system herein can be used to look up
icons, phone numbers, or inventory records, as long as a type of
symbolic string representation is present. Therefore, it should be
appreciated that use of the terms such as letter, word, word stem,
and the like are not limited to only those applications, and are
used to facilitate ease of reading and understanding the discussion
herein.
[0038] Explicit Entry
[0039] One preferred embodiment of generating an explicit character
for the purpose of filtering word choices according to the
invention provides a 2-key explicit entry feature. In many
languages, such as English, all the letters associated with a key
are printed on the key, such as depicted in FIG. 2, where FIG. 2 is
a picture of an example wireless handheld device showing each
letter of the English alphabet associated with a key according to
the invention.
[0040] However, other languages, such as French, include many more
letters than can visually fit on a key, such as the cell phone key.
FIG. 3 is an example chart of European letters and some special
symbols shown on the 0-9 keys and their respective Shift keys. For
example, if a user presses the 5 key, then a matrix display with
the alphanumeric characters j, k, I, and 5 appear. FIG. 4 is a
sample screenshot of one 2-key matrix input method according to the
invention. After the first key has been pressed, the matrix of
choices is displayed on the device panel. It should be appreciated
that other labels printed on keys are possible, such as, for
example, each key including a subset of predetermined sets of
associated letters, such as displaying the first and last character
of predetermined sets of associated letters.
[0041] FIG. 5 is a flow chart of 2-key explicit entry for the
explicit character filtering in ambiguous text entry system of FIG.
1. According to a preferred embodiment of the invention, for a user
to explicitly select one of many letters assigned to a key, as in
the case of the French language, the user selects, such as by
depression, the associated key (5000). The selection, e.g.
depression, of the desired key causes the system to presents a
second set of letters, such as in matrix form, that corresponds to
the selected key (5100). Each block in the matrix includes a letter
from the set of letters associated with the just selected/depressed
key. FIG. 4 shows an example of what is displayed as a result of
depressing the 1 key. All that is required at this point is for the
user to select the key number of the matrix block that includes the
desired character (5200). This explicit selection process only
requires at maximum 2 key selections/depressions for the selection
of a letter.
[0042] It should be readily apparent to one of ordinary skill in
the art that the 2-key explicit entry method for the purpose of
filtering can be extended to any other language. It should also be
apparent to one of ordinary skill in the art that alternate
configurations are possible, such as, for example, a scrolling
list.
[0043] According to an alternate configuration, the user selects a
key by way of a long-press to display and cycle through the
character sequence on that key. As shown in FIG. 8, some or all of
the characters may scroll past in a preview window as long as the
key is being pressed. When the key is released, the last
highlighted character is accepted.
[0044] In yet another configuration, after the character sequence
is presented by way of the long-press on the key, the character
appears or is highlighted each additional time the key is pressed.
The presentation of each explicit character may end when a
sufficient time elapses between one key press and the next or when
a different key is pressed.
[0045] In yet another configuration, after the character sequence
is presented by way of the long-press on the key, the character
appears or is highlighted each additional time a navigation key is
pressed, where a navigation key is, for example, an arrow key or a
scrolling wheel.
[0046] Following is a list of other explicit entry means for
filtering. It should be appreciated that the list is meant by
example only, and is not exhaustive: long pressing on a key to
enter a number/digit explicitly;
[0047] changing to a numbers mode and pressing a key to enter a
number/digit explicitly (and then returning to ambiguous entry mode
for filtering);
[0048] changing to a multi-tap mode and pressing a key repeatedly
to enter a character explicitly (and then returning to ambiguous
entry mode for filtering); interpreting ambiguous mode key presses
as an explicit character, either by grouping each pair of key
presses as a 2-key explicit entry, or by grouping repeated presses
of the same key as a multi-tap entry;
[0049] using multi-switch keys, such as a 5-way rocker, which
permits ambiguous entry on a simple press and an explicit character
entry on a different kind of press; and
[0050] by "chording," which means by pressing more than one key
simultaneously, with a primary key indicating an ambiguous set of
characters and a secondary key indicating which character in the
set to select (e.g., on a video game controller).
[0051] Another means of explicit entry for filtering is when any
character assigned to a key is offered to the user through a
secondary means, e.g., displayed on the label of a programmable
key, or "softkey", which if chosen would be entered explicitly. The
softkey mechanism allows correction of the last keystroke entered,
e.g., if the user is extending a word with additional characters or
wishes to correct the displayed interpretation before the entire
word is entered. The additional character offered would be based on
an analysis of the most likely character associated with the
preceding keystroke, or based on the words in the current word
candidate list. Assuming the most likely character was already
displayed in the ambiguous word choice, then the second most likely
character would be offered. For instance, if the user wants to type
"ram" and enters the key sequence 726, the word "ran" appears. The
most likely letter for that position in the word candidate list
associated with 726 is "m", then "m" could be offered on the
softkey. When the user presses the softkey, the "m" replaces the
"n" in the word "ran".
[0052] Explicit Character Filtering in Ambiguous Mode
[0053] Explicit character filtering in ambiguous mode is when a
character is explicitly entered during entry of a sequence of
ambiguous entries. One embodiment of explicit entry already
discussed is the 2-key explicit entry method using a matrix as
described above. According to another preferred embodiment of the
invention, explicit entry of a character is accomplished by a long
depression of the associated key. When one or more characters in a
sequence of characters is explicitly entered, only stored words
with that explicitly selected character(s) in the corresponding
position(s) are retrieved.
[0054] One way of retrieving the desired word according to one
embodiment of the invention is when an explicit character is
entered in ambiguous entry mode, then the disambiguating filtering
system continues to match database words against the ambiguous and
explicit letters as long as possible, rather than accepting the
default word upon the first explicit letter. If there is no match,
the last ambiguous word selected is accepted and a new letter is
appended to it.
[0055] As an example, suppose a user wants to enter the word "home"
in English T9. The user long presses the 6 key in the 3.sup.rd
position to explicitly select "m," resulting in only "home," and,
in addition, word stems "imme" and "gome" after 4 keystrokes.
[0056] Another example is using a mixed alphanumeric word like
"cu2night", which could be stored in a database. If the user long
presses on the 2 key, then explicitly enters a "2," words such as
"cub" are thus filtered out from the word candidate list.
[0057] Explicit filtering is another way to quickly offer word
completions. If "cu2night" was in a database, and "cu" was entered
ambiguously followed by "2" explicitly, all ambiguous
interpretations of the keystroke sequence "282" will be filtered
out, leaving "cu2night" as a more likely choice to be offered
through word completion.
[0058] FIG. 6 is a flow chart for explicitly filtering in ambiguous
mode according to a preferred embodiment of the invention. A
character is desired and its associated key is entered either
ambiguously or explicitly (6000). The desired word is then
interpreted based on the sequence of ambiguously selected keys
(i.e. their associated characters) and the explicitly selected
characters. The database is searched for words with the characters
associated with ambiguously selected entries, e.g. keys, and with
the explicitly entered characters, in their respective
corresponding positions (6100). The searched words are then
presented or displayed in a predetermined prioritized order (6200),
such as a most frequently used order. If the desired word is among
the set of presented searched words (6300), then the desired word
is chosen (6400) and the process ends. Otherwise, the process is
not over and steps are repeated from selecting a desired key
(6000).
[0059] Build Around
[0060] In another aspect of the disambiguating filtering system,
words from the database can be "built around" explicitly or
ambiguously entered characters, or, additionally characters from a
predetermined set of characters. According to one interpretation,
the matching words, if any, include the explicit character for a
particular sequence. However, additional interpretations of the
sequence may include: one or more words that match the ambiguous
keys that precede and/or end with the explicit character; one or
more matching words that begin with the explicit character if any;
and one or more words that match the ambiguous keys that follow the
explicit character. For example, if the key sequence for
"gifts4less" is entered, with the digit "4" entered explicitly, the
words "gifts" matches the ambiguous key sequence preceding the
explicit character and "less" matches the key sequence following
it, even if "gifts4less", "gifts4", and "4less" are not found in
the database. Similarly, "mobile.com" may be typed as one word
automatically constructed from the database entries "mobile" and
".com", or from the entries "mobile" and "." and "com" if there is
a key for ambiguous punctuation; in either of those cases the
period may not need be explicitly entered.
[0061] One embodiment of the build around concept can be described
with reference to FIG. 9, a flow chart depicting a build around
example. The build around method starts (9000) with a key sequence
being entered, e.g., [k1 k2 k3 kd k5 k6 k7 k8]. The k#'s refer to
ambiguously entered keys and kd refers to a delimiting key that can
be either an explicitly entered character an ambiguously entered
punctuation character. The method then determines if the database
found a match (9100). If yes, a word is displayed (9200). If the
user desires to proceed to the next choice in the list of words
found by the database, the user presses a next key to request
further lookups by the database (9300). Specifically, the database
is multiply searched for matches to key sequences. A key sequence
is divided into two sets on either side of a delimiter. An example
of various groupings of two sets of sequences divided by a
delimiter follows:
[k1 k2 k3 kd] [k5 k6 k7 k8];
[k1 k2 k3] [kd k5 k6 k7 k8]; and
[k1 k2 k3] kd [k5 k6 k7 k8].
[0062] If a match is found among any of the groups (9400), then the
desired word is chosen and displayed (9500). If the user desires to
build around this sequence, the user can press a next key to obtain
the next set of results from multiple searches to the database
(9600).
[0063] If the database did not find an initial match (9100), then
the database is multiply searched for matches to key sequences
(9700), wherein a key sequence is divided into two sets on either
side of a delimiter, description of which and examples of which are
presented above.
[0064] It should be appreciated that means to search for and
display/present the set of possible desired words can vary and
still remain within the scope and spirit of the invention.
[0065] Stem-locking
[0066] In the preferred embodiment of the invention, stem-locking
is locking one or more subsequences or substrings of characters
within a sequence. For example, the first n-numbers of sequence of
characters of a word can be locked in. The way stem-locking works
is that only words with those locked in characters are searched.
For instance, suppose a user selects the 4 and then the 6 key of a
wireless cell phone using T9 technology. The word "go" is presented
in the display. If "go" is locked in, then upon subsequent key
selections, only words with "go" in the first two positions are
selected.
[0067] The locking of letters can be performed in a number of
different ways. For example, two such ways are by a "full next
locking" mechanism and an "unbounded" methodology by moving a
cursor over characters to select. As an example of implementing
"full next locking," a "next" key is used. That is, according to
one embodiment of the invention, selecting a "next" key locks in a
previously presented series of characters, thereby eliminating the
possibility of the system re-interpreting the object by
re-interpreting the locked in series of characters. The selected
series of characters are now marked as explicitly entered. An
example of moving the cursor over characters (unbounded) according
to one embodiment of the invention, the cursor is moved to the
beginning of a series and by the user selecting a right-arrow key
(or a left-arrow key, for example, in the Hebrew language), all the
characters that the cursor moved over are locked in.
[0068] Another aspect of full next locking is locking a previously
presented series of characters when likely word boundaries are
identified. Such boundaries can be identified based on certain
sequences of interactions, such as, for example, when the user
"nexts" and then selects a symbol or punctuation character; or,
when the user "nexts" and then enters an explicit number.
[0069] It should be appreciated that other methods to "lock"
include, but are by no means limited to:
[0070] pressing a key assigned to the "lock" function, such as an
OK or Select key; and pressing an appropriate arrow key to "lock"
in a word completion being offered.
[0071] Stem locking approaches, such as those discussed above, can
be related to "build around" as described herein above. That is,
once a sequence has been locked in, it can be "built around."
[0072] Japanese Kana Example
[0073] Another example of the disambiguating filtering methodology
is in the Japanese language. Sub-phrases in kana (phonetic)
character form can be converted to kanji (Yomikata), and those
converted sub-phrases may in turn filter interpretations of the
remaining ambiguous kana preceding or following the converted
sub-phrases, excluding interpretations that can't be used to
construct valid phrases.
[0074] In another embodiment of the invention, a hierarchy of locks
mechanism is used. For example, a right arrow key can lock in all
characters to the left of the cursor. Therefore, in this
implementation, a right-arrow key locks in a first-choice stem,
while a "next" key locks in a not-first-choice stem.
[0075] Another implementation is using a "select" key instead of a
right-arrow key in combination with a "next" key. For example, the
"select" key can be used at the end of each ambiguous key sequence
for either selecting and accepting the default choice (the select
key is pressed once) or for selecting an alternative choice (the
select key is pressed more than once until the desired choice
appears or is highlighted). In this case, the "select" key is used
to stem lock either the first or alternate choices, rather than
using the right-arrow key for the first choice and the "next" key
for other choices (or vice-versa, as the choice of keys is
arbitrary, yet predetermined).
[0076] Word Extension and Completion
[0077] Another aspect of the invention is the system automatically
starting a new word at a lock position. For example, the user
enters "car" and locks it, and then enters the keys for "pet".
"Carpet" is shown because it is a complete word in the database.
The word "carset" is also shown because it is "car"+"set", which is
another example of the "build around" concept, where an ambiguous
sequence may follow an explicit character entry, causing one
interpretation to be the beginning of a new ambiguous word.
[0078] Alternatively, when one or more previously-accepted
characters precedes (is adjacent to, without spaces) the current
and active ambiguous key sequence. The system uses the preceding
characters to match words and phrases (e.g., in the user database)
that begin with those characters and that match an ambiguous key
sequence following those characters. Optionally, one or more word
completions is offered. An example follows. A user enters and locks
in (accepts) the characters, "con." Then, the user types ambiguous
keys for "stan" and is offered "constantinople" as a word
completion. In this example, the user could have used a
left-/right-arrow key to accept "con" to be used to filter and to
suggest word completions that begin with the accepted chars and are
immediately adjacent to an ambiguous key sequence. Hebrew and other
languages go the other direction, hence right-side-only is not
assumed.
[0079] FIG. 7 is a flow chart of a method for generating words not
stored in the database according to the invention. That is, in an
equally preferred alternate embodiment, if a series of entries is
locked in (7000) and subsequent ambiguous characters entered (7100)
and a corresponding stored word is not found in the database
(7200), then searches are performed for likely combinations based
on the previous n locked in characters (7300). In one preferred
embodiment of the invention, an n-gram is used to find stored
words. This is contrary to using the entire set of locked in
letters. For example, suppose a user has entered and explicitly
selected the word "flight", but the user, however, wants to enter
the word "flightplan" which is not in the database. In this
embodiment of the invention, the user then explicitly locks in the
letter "p" and "I" after "flight". The system then searches for
words using the last explicitly entered bigram (p and I). Thus,
words that are not stored in the database are generated.
[0080] Although the invention is described herein with reference to
the preferred embodiment, one skilled in the art will readily
appreciate that other applications may be substituted for those set
forth herein without departing from the spirit and scope of the
present invention.
[0081] Accordingly, the invention should only be limited by the
Claims included below.
* * * * *