U.S. patent application number 14/283815 was filed with the patent office on 2014-09-11 for methods and systems for a locally and temporally adaptive text prediction.
This patent application is currently assigned to BlackBerry Limited. The applicant listed for this patent is BlackBerry Limited. Invention is credited to Jerome PASQUERO, David Ryan WALKER.
Application Number | 20140257797 14/283815 |
Document ID | / |
Family ID | 49478064 |
Filed Date | 2014-09-11 |
United States Patent
Application |
20140257797 |
Kind Code |
A1 |
WALKER; David Ryan ; et
al. |
September 11, 2014 |
METHODS AND SYSTEMS FOR A LOCALLY AND TEMPORALLY ADAPTIVE TEXT
PREDICTION
Abstract
An electronic device is provided, having a locally and
temporally adaptive prediction database.
Inventors: |
WALKER; David Ryan;
(Waterloo, CA) ; PASQUERO; Jerome; (Waterloo,
CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
BlackBerry Limited |
Waterloo |
|
CA |
|
|
Assignee: |
BlackBerry Limited
Waterloo
CA
|
Family ID: |
49478064 |
Appl. No.: |
14/283815 |
Filed: |
May 21, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13460799 |
Apr 30, 2012 |
8756052 |
|
|
14283815 |
|
|
|
|
Current U.S.
Class: |
704/9 |
Current CPC
Class: |
G06F 40/274
20200101 |
Class at
Publication: |
704/9 |
International
Class: |
G06F 17/27 20060101
G06F017/27 |
Claims
1-13. (canceled)
14. A method of predicting an input object in a first electronic
device coupled to a prediction database comprising a plurality of
prediction objects, the method comprising: receiving, by a second
electronic device, a second text object; determining whether the
first electronic device is associated with the second electronic
device based at least on a determination of a distance separating a
location associated with the second electronic device from a
location associated with the first electronic device; if the first
electronic device is associated with the second electronic device,
updating the prediction database based on the second text object;
receiving, by the first electronic device, a first text object;
selecting, by the first electronic device, an output text object
from the plurality of prediction objects; and outputting, by the
first electronic device, the output text object selected from the
plurality of the prediction objects.
15. The method of claim 14, further comprising presenting, by the
first electronic device, the output text object selected from the
plurality of the prediction objects.
16. The method of claim 14, wherein each of the plurality of
prediction objects is associated with a weight and selecting the
output text object is based at least in part on the weights.
17. The method of claim 16, wherein updating the prediction
database comprises finding within the plurality of prediction
objects a prediction object associated with the second text object
and increasing the weight associated with the prediction
object.
18. The method of claim 17, further comprising periodically
decreasing weights associated with each of the plurality of
prediction objects.
19. The method of claim 14, wherein determining whether the first
electronic device is associated with the second electronic device
is performed by a server coupled to the first electronic device and
the second electronic device, the server configured to receive the
second text object from the second electronic device and transmit
the second text object to the first electronic device.
20. A system comprising: a first electronic device associated with
a prediction database comprising a plurality of prediction objects,
the first electronic device comprising a processor configured to:
receive a first text object, receive a second text object from a
server, wherein the second text object is received by the server
from a second electronic device coupled to the server and
retransmitted by the server to the first electronic device based at
least on a determination of a distance separating a location
associated with the second electronic device from a location
associated with the first electronic device, update the prediction
database based on the second object, and output an output text
object selected from the plurality of prediction objects.
21. The system of claim 20, wherein each of the plurality of
prediction objects is associated with a weight and the processor is
configured to select the output text object based at least in part
on the weights.
22. The system of claim 21, wherein the processor is further
configured to find within the plurality of prediction objects a
prediction object associated with the second text object and
increase the weight associated with the found prediction
object.
23. The system of claim 22, wherein the processor is further
configured to periodically decrease weights associated with each of
the plurality of prediction objects.
24. The system of claim 20, wherein the processor is further
configured to display the output text object selected from the
plurality of prediction objects.
25. A server communicatively coupled to a first electronic device
and a second electronic device, the server comprising a processor
configured to: receive a second text object from the second
electronic device; determine a distance separating a location
associated with the second electronic device from a location
associated with the first electronic device; and based at least on
the determination, transmit the second text object to the first
electronic device, wherein the first electronic device is
associated with a prediction database comprising a plurality of
prediction objects, wherein the prediction database is updated
based on the second text object.
26. The server of claim 25, wherein the first electronic device is
configured to: receive a first text object; select an output text
object from the plurality of prediction objects; and output the
output text object selected from the plurality of prediction
objects.
27. The server of claim 26, wherein each of the plurality of
prediction objects is associated with a weight and the first
electronic device is configured to select the output text object
based at least in part on the weights.
28. The server of claim 27, wherein the first electronic device is
further configured to find within the plurality of prediction
objects a prediction object associated with the second text object
and increase the weight associated with the found prediction
object.
29. The server of claim 28, wherein the first electronic device is
further configured to periodically decrease weights associated with
each of the plurality of prediction objects.
30. A non-transitory computer-readable medium comprising
instructions that, when executed by at least one processor, cause
the at least one processor to perform operations of predicting an
input object in a first electronic device coupled to a prediction
database comprising a plurality of prediction objects, the
operations comprising: receiving a second text object; determining
whether the first electronic device is associated with a second
electronic device based at least on a determination of a distance
separating a location associated with the second electronic device
from a location associated with the first electronic device; if the
first electronic device is associated with the second electronic
device, updating the prediction database based on the second text
object; receiving a first text object; selecting an output text
object from the plurality of prediction objects; and outputting the
output text object selected from the plurality of the prediction
objects.
31. The computer-readable medium of claim 30, wherein each of the
plurality of prediction objects is associated with a weight and the
operations further include selecting the output text object based
at least in part on the weights.
32. The computer-readable medium of claim 31, wherein updating the
prediction database comprises finding within the plurality of
prediction objects a prediction object associated with the second
text object and increasing the weight associated with the
prediction object;
33. The computer-readable medium of claim 32, wherein the
operations further include periodically decreasing the weights
associated with each of the plurality of prediction objects.
Description
FIELD OF TECHNOLOGY
[0001] The present disclosure relates to electronic devices
including, but not limited to, electronic devices and their
control.
BACKGROUND
[0002] Electronic devices have gained widespread use and provide a
variety of functions including, for example, telephony, text
messaging, web browsing, or other personal information manager
(PIM) functions such as a calendar application. Electronic devices
include several types of devices such as cellular telephones
(mobile phones), smart telephones (smart phones), Personal Digital
Assistants (PDAs), tablet computers, laptop or desktop computers,
with wireless network communications or near-field communications
connectivity such as Bluetooth.RTM. capabilities.
[0003] Electronic devices such as smart phones, tablet computers,
or PDAs are generally intended for handheld use due to their small
size and ease of portability. A touch-sensitive input device, such
as a touchscreen display, is desirable on handheld devices, which
are small and may have limited space for user input or output
devices. Improvements in electronic devices with displays are
desirable.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Embodiments of the present disclosure will now be described,
by way of example only, with reference to the attached Figures,
wherein:
[0005] FIG. 1 is a block diagram of an example of an electronic
device in accordance with the present disclosure;
[0006] FIG. 2 is a front views of an example of an electronic
device having a display and a text message rendered on the display
in accordance with the present disclosure;
[0007] FIG. 3 is a flowchart illustrating a method of text
prediction in accordance with the present disclosure;
[0008] FIG. 4 is a block diagram of an example of a prediction
database in accordance with the present disclosure;
[0009] FIG. 5 is a block diagram of an example of a network having
a plurality of electronic devices in accordance with the present
disclosure;
[0010] FIG. 6 is a flowchart illustrating a method of text object
distribution in accordance with the present disclosure;
[0011] FIG. 7 is a flowchart illustrating a method of updating a
prediction database in accordance with the present disclosure;
and
[0012] FIG. 8 is a flowchart illustrating a method of an
amortization process in accordance with the present disclosure.
DETAILED DESCRIPTION
[0013] The present disclosure describes a method of predicting an
input object in a first electronic device that is coupled to a
prediction database comprising a plurality of prediction objects.
The method includes receiving, by a second electronic device, a
second text object, determining whether the first electronic device
is associated with the second electronic device based on location,
if the first electronic device is associated with the second
electronic device, updating the prediction database based on the
second text object. The method also includes receiving, by the
first electronic device, a first text object, selecting, by the
first electronic device, an output text object from the plurality
of prediction objects, and outputting, by the first electronic
device, the output text object selected from the plurality of the
prediction objects.
[0014] For simplicity and clarity of illustration, reference
numerals may be repeated among the figures to indicate
corresponding or analogous elements. Numerous details are set forth
to provide an understanding of the example embodiments described
herein. The example embodiments may be practiced without these
details. In other instances, well-known methods, procedures, and
components have not been described in detail to avoid obscuring the
example embodiments described herein. The description is not to be
considered as limited to the scope of the example embodiments
described herein.
[0015] The present disclosure generally relates to an electronic
device, such as a portable electronic device. Examples of portable
electronic devices include wireless communication devices such as
cellular telephones (mobile phones), smart telephones (smart
phones), pagers, PDAs, tablet computers, laptop computers, notebook
computers, netbook computers, and so forth, with wireless or wired
communications capabilities.
[0016] Increasingly, electronic devices are capable to assist a
user in the task of inputting text into applications by predicting
what the user will type and automatically completing and/or
correcting the input text based on that prediction. Basic text
prediction solutions have been introduced, but they can be limited
to comparisons with static, global dictionaries, and are unable to
quickly adapt to a fast-changing environment In which users find
themselves today. Accordingly, example embodiments described herein
disclose text prediction systems and methods that are quickly
adaptable to reflect current and local events.
[0017] A block diagram of an example of an electronic device 100 is
shown in FIG. 1. The electronic device 100 includes multiple
components, such as a processor 102 that controls the overall
operation of the electronic device 100. The electronic device 100
optionally includes a communications subsystem 104 and a
short-range communications 132 module to perform various
communication functions, including data and voice communications.
Data received by the electronic device 100 is decompressed and
decrypted by a decoder 106. The communications subsystem 104
receives messages from and sends messages to a wireless network
150. The wireless network 150 is any type of wireless network,
including, but not limited to, data wireless networks, voice
wireless networks, and networks that support both voice and data
communications. A power source 142, such as one or more
rechargeable batteries or a port to an external power supply,
powers the electronic device 100.
[0018] The processor 102 is coupled to and interacts with other
components, such as Random Access Memory (RAM) 108, memory 110, a
display 112. In the example embodiment of FIG. 1, the display 112
is coupled to a touch-sensitive overlay 114 and an electronic
controller 116 that together comprise a touch-sensitive display
118. The processor is also coupled to one or more actuators 120,
one or more force sensors 122, an auxiliary input/output (I/O)
subsystem 124, a data port 126, a speaker 128, a microphone 130,
short-range communications 132, and other device subsystems 134.
User-interaction with a graphical user interface (GUI) is performed
through the touch-sensitive overlay 114. The processor 102
interacts with the touch-sensitive overlay 114 via the electronic
controller 116. Information, such as text, characters, symbols,
images, icons, and other items that may be displayed or rendered on
an electronic device, is displayed on the touch-sensitive display
118 via the processor 102. The processor 102 optionally interacts
with an orientation sensor such as an accelerometer 136 to detect
direction of gravitational forces or gravity-induced reaction
forces so as to determine, for example, the orientation of the
electronic device 100. The processor 102 is optionally coupled to a
GPS module 152, which allows the processor 102 to determine the
geographical location of the electronic device 100.
[0019] To identify a subscriber for network access, the electronic
device 100 uses a Subscriber Identity Module or a Removable User
Identity Module (SIM/RUIM) card 138 for communication with a
network, such as the wireless network 150. Alternatively, user
identification information is programmed into memory 110.
[0020] The electronic device 100 includes an operating system 146
and software programs or components 148 that are executed by the
processor 102 and are typically stored in a persistent, updatable
store such as the memory 110. In some example embodiments,
additional applications or programs are loaded onto the electronic
device 100 through the wireless network 150, the auxiliary I/O
subsystem 124, the data port 126, the short-range communications
subsystem 132, or any other suitable subsystem 134.
[0021] A received signal, such as a text message, an e-mail
message, or web page download, is processed by the communications
subsystem 104 and input to the processor 102. The processor 102
processes the received signal for output to the display 112 and/or
to the auxiliary I/O subsystem 124. A subscriber generates data
items, for example e-mail messages, which are transmitted over the
wireless network 150 through the communications subsystem 104, for
example.
[0022] A front view of an example of the electronic device 100 is
shown in FIG. 2. The electronic device 100 includes a housing 202
in which the touch-sensitive display 118 is disposed. The housing
202 is an enclosure that contains components of the electronic
device 100, such as the components shown in FIG. 1.
[0023] A keyboard 204 may be a physical keyboard within the housing
202, or a virtual keyboard rendered as a GUI displayed on the
touch-sensitive display 118 as illustrated by the example
embodiment of FIG. 2. The keyboard 204 may be rendered in any
program or application suitable to accept input texts from a user,
such as a web browser, text messaging, instant messenger, email,
social network applications, contacts, calendar, music player,
spreadsheet, word processing, operating system interface, and so
forth. Other information such as text, characters, symbols, images,
and other items may also be displayed, for example, as the keyboard
204 is utilized for data entry.
[0024] FIG. 3 shows a flowchart of an example embodiment of a text
prediction process 300, performed by the processor 102. The
processor 102 receives at 302 a new input text, for example, the
last partial word "ear" from the text message 208 illustrated in
FIG. 2. The processor 102 accesses a prediction database 400,
described in detail below, and selects among all the text objects
included in the prediction database 400 the best prediction, i.e.,
the text object that would best predict which word the user intends
to type. For example, the processor 102 may decide that the best
prediction for the partial word "ear" is "earthquake." Other
candidates include "ear", "early", "Earl", "earth", "bear", "car"
and so forth. The text objects included in the prediction database
400 are not limited to single words, and may include phrases,
expressions (e.g., "early bird"), full sentences, etc.
[0025] Once the best prediction is obtained at 304, the processor
102 may apply it at 306 in a variety of ways. For example, the
processor 102 may automatically replace the input text (e.g.,
"ear") with the best prediction (e.g., "earthquake"), thereby
increasing the effective speed of text entry and/or correcting
grammar or spelling mistakes. As another example, the processor 102
may display the best prediction at a predefined location on the
touch-sensitive display 118, allowing the user to decide whether to
replace the original input with the displayed prediction. In
another example embodiment, the processor 102 obtains at 304
several top predictions, and displays at 306 all top predictions,
allowing the user to choose which prediction to use for the
replacement.
[0026] An example embodiment of a prediction database 400 is
illustrated in FIG. 4. The prediction database 400 includes entries
402, each entry comprising the following fields: text object 404,
weight 406 (optional) and flags 408 (optional). The text objects
404 may include single words (e.g., "Pi"), numbers (e.g.,
"3.14159265"), symbols (e.g., ".pi."), phrases or expressions
(e.g., "Pi number"), and so forth. In one example embodiment, the
weight 406 of each entry 402 is initialized to default values.
Default values may be fixed or they may differ depending, for
example, on the type of the text object. For example, as
illustrated in FIG. 4, nouns (e.g., "car") may have a default value
of 10, multi-word expressions (e.g., "early bird") may have a
default value of 5, and words beginning with a capital letter
(e.g., "Earl") may have a default value of 15.
[0027] Prediction database 400 may be stored in memory 110 of the
electronic device 100. For faster access, the processor 102 may
load the prediction database 400 or parts thereof into RAM 108. In
some example embodiments, the prediction database 400 is stored on
the network 150 and is partially or fully downloaded into the
memory 110 on demand. In other example embodiments, some parts of
the prediction database 400 are stored on the network 150 and may
be shared by other electronic devices, while the rest of the
prediction database 400 is not shared and is stored locally within
the memory 110 of the electronic device 100.
[0028] In an example embodiment, the processor 102 selects the best
prediction among all the text objects 404 by scoring each text
object 404 based on its similarity to the input text and based on
the weight associated with the text object 404. Similarity of two
text objects can be assessed using any suitable algorithm, such as
the Levenshtein distance algorithm. Once similarity for a given
text object 404 is established, the processor 102 calculates a
score that is based on both the level of similarity and the weight
of the text object 404. The calculation formula can be any formula
that considers at least the above two factors.
[0029] In the following example, the input text is "ear"; the three
text objects 404 being scored are "ear", "earth" and "earthquake";
their respective similarities are 12, 5 and 4 ("ear" being the most
similar and "earthquake" being the least similar among the three);
their respective weights are 10, 10 and 148; and the scoring
formula is: score=2*(similarity) 2+0.5*(weight).
[0030] The score results in the above example are, then:
Score("ear", "ear")=0.3*12 2+0.5*10=48.5
Score("ear", "earth")=0.3*5 2+0.5*10=12.5
Score("ear", "earthquake")=0.3*4 2+0.5*148=78.5
[0031] Since the entry "earthquake" received the highest score, it
is selected as the best prediction for the input text "ear".
[0032] In some example embodiments, the processor 102 considers
other factors in addition to or in place of the similarity factor.
For example, the processor 102 scores an entry within the
prediction database 400 based on how well the entry fits into the
text overall text message, for example, grammatically or
contextually.
[0033] FIG. 5 illustrates an example embodiment of a device network
500 that includes a set of electronic devices 100, where each
device is coupled to a server 550 through any suitable
communication means. The electronic devices 100 are not limited to
the same type of device and may include laptops, cellular phones,
tablet computers, and so forth.
[0034] The server 550 is a device or a number of devices, capable
of performing the text object distribution process 600 described
below. For example, the server can be a personal computer, a
proprietary server such as the BlackBerry Messenger (BBM), etc. In
some examples, the functionality of the server 550 is distributed
among the set of electronic devices 100 within the device network
550.
[0035] In an example embodiment, an electronic device 100 within
the device network 500 receives an input text from a user and
reports the input text to the server 550. The server 550 then
identifies all the electronic devices 100 located in the vicinity
of the reporting electronic device 100, and retransmits the
reported input text to such electronic devices 100. Electronic
devices 100, upon receiving the retransmitted input text update
their respective prediction dictionaries based on it.
[0036] Referring to the example embodiment illustrated in FIG. 5,
electronic devices 100a, 100b and 100c are located in San
Francisco, Calif., within one mile of each other, and an electronic
device 100d is located in San Jose, Calif., about fifty miles away
from San Francisco, Calif. When the user of the electronic device
100b enters an input text into any application suitable to receive
input texts, the electronic device 100b optionally replaces the
input text with a predicted text and reports a corresponding text
object to the server 550. Server 550 then determines, for example,
that electronic devices 100a and 100c are located within the
vicinity of the electronic device 100b, while the electronic device
100d is not. The server 550 then retransmits the reported text
object to electronic devices 100a and 100c, but not to 100d.
[0037] In some example embodiments, an electronic device 100 within
the device network 500 may be configured to a) report its input
texts to the server; b) to receive from the server retransmitted
text objects originating from electronic devices 100 in its
vicinity; c) do both; or d) do neither. Accordingly, some devices
may fully participate in the embodiments described herein, some may
participate partially, and some may not participate at all.
[0038] In an example embodiment, electronic devices 100 are
configured whether to report all or only selected text objects, and
when to report them. For example, a particular electronic device
100 may be configured (by the user or by the server 550, for
example) to report all text messages and social network posts as
soon as they are submitted, to report all web-search queries once
every minute, and to never report any email messages. In some
example embodiments, the information reported to the server
includes all text objects within the text message, post, and so
forth. In other example embodiments, an electronic device 100
reports only specific kinds of text objects, for example, only
nouns, only words beginning with a capital letter, only words that
are absent from its prediction database 400, or any combination of
the above.
[0039] In an example embodiment, the server 550 receives from some
or all electronic devices 100 within the device network 500 their
geographical locations. An electronic device may determine its
geographical location using the GPS module 152, or using techniques
such as triangulation, trilateration or multilateration. The server
550 polls the electronic devices 100 requesting their locations
periodically and/or when required.
[0040] FIG. 6 illustrates an example embodiment of text object
distribution process 600 performed by the server 550. The server
550 monitors communications from the devices 100 within the device
network 500. When one of the devices 100 receives an input text
from its user, the device optionally performs the text prediction
process 300 described above and obtains the best prediction. The
device then reports a text object corresponding to either the
original input text or the obtained best prediction to the server
550. The server 550 receives at 602 a new text object from the
reporting device at 602.
[0041] The server 550 then finds at 604 electronic devices 100
within the device network 500 that are located in the vicinity of
the reporting electronic device 100. First, the server 550
determines the geographical locations of the devices 100. Next, the
server 550 determines which electronic devices 100 are located
within a predefined distance from the reporting electronic device
100. Predefined distances may be very short (e.g., 100 feet) or
very long (e.g., 1000 miles), depending on the application and the
desired effect.
[0042] Upon determining all electronic devices 100 that are located
within a predetermined distance from the reporting electronic
device 100, the server 550 retransmits at 606 the text object to
the determined devices and returns to 602 to wait for new reported
text objects.
[0043] In some example embodiments, in an attempt to save
bandwidth, the server 550 does not immediately retransmit every
reported text object. Instead, it transmits a reported text object
only if the text object has been reported several times within a
short period of time, and originated from the same geographic area.
For example, the server 505 retransmits every tenth occurrence of
the same text object, and only if all ten occurred within the last
hour and originated from devices 100 located within one mile of
each other.
[0044] In some example embodiments, instead of a fixed
predetermined distance, the processor 102 uses a floating distance
to determine which electronic devices 100 will receive the
retransmitted text object. The floating distance changes, for
example, based on the popularity of the specific text object. For
example, for text objects that reoccur with very high frequency,
the processor 102 increases the distance and retransmit that text
object to a larger number of electronic devices 100.
[0045] A flowchart in FIG. 7 illustrates an example embodiment of a
database update method 700 performed by a processor 102 of an
electronic device 100. The processor 102 receives at 702 a
retransmitted text object from the server 550. At 704 the processor
102 determines whether the prediction database 400 of the
electronic device 100 already contains a text object that
corresponds to the retransmitted text object. If the answer is
`yes`, the processor 102 proceeds to 706 where it increases the
weight of that text object in the prediction database 400 by
updating its weight field 406. Weights may be increased by a
certain number, certain percentage, or using any other formula,
such as a limit, beyond which the weight will not be increased.
[0046] After increasing the weight of the text object at 706, the
processor 102 returns to 702 and waits for new retransmitted text
objects from the server 550. If the processor 102 determines at 704
that the prediction database 400 does not contain the retransmitted
text object, the processor 102 proceeds to 708 and adds the
retransmitted text object to the prediction database 400. In an
example embodiment, the processor 102 sets the weight of the new
entry at a default value, and sets a flag "temp" in the entry's
flags field 408, indicating that the new entry is a temporary one.
The processor 102 then returns to 702 and waits for new
retransmitted text objects from the server 550.
[0047] Increasing a text object's weight results in increasing the
probability that the text object, if considered by the processor
102 during the prediction process 300, will emerge as the best
prediction. Therefore, the more frequently devices in the vicinity
of a given device report a specific text object, the more times the
weight of that text object is increased in the given device's
prediction database 400, and the higher the probability that the
processor 102 will use that text object for prediction. For
example, a user named Sam is working in his office in downtown San
Francisco, Calif., when he experiences a possible earthquake. He
wants to share and confirm that information with a friend who works
nearby, and writes him a text message 208, illustrated in FIG. 2.
As Sam completes the first three letters of the word "earthquake",
the processor 102 runs the prediction process 300, described
above.
[0048] If one scenario, several other users located near Sam have
also experienced this earthquake and have already submitted text
messages, emails, or social network posts, where they included the
text object "earthquake." In this scenario, the prediction database
400 of Sam's electronic device 100 already reflects the unusually
frequent occurrence of the text object "earthquake" and its weight
has been increased from 10 (default) to 148, for example.
Consequently, prediction process 300, upon scoring the different
text objects within the prediction database 400, determines that
the best prediction for the input text "ear" is "earthquake".
[0049] In another scenario, Sam is the first user in his vicinity
to report the text object "earthquake". In this scenario, the
prediction process 300 determines that the best prediction is
"ear", because "earthquake" has still a default weight of 10, and
"ear" is closer than "earthquake" in terms of similarity". However,
once Sam overrides the incorrect prediction offered by the
prediction process 300 and sends a text message with the word
"earthquake" in it, all electronic devices 100 in his vicinity
increase the weight of "earthquake" in their prediction
dictionaries 400. In an embodiment, the prediction database 400 of
Sam's own electronic device 100 is also updated to increase the
weight of "earthquake".
[0050] Notably, devices in a remote location A are not affected by
input texts reported from location B, even if the contents of those
input texts are directly associated with the remote location A. For
example, if Los Angeles Lakers are playing in Sacramento, Calif.,
there will be many input texts with the text objects "Los Angeles"
or "LA" originating from Sacramento, Calif. Such input texts will
still only affect the prediction dictionaries of electronic devices
located in the vicinity of Sacramento and will not affect the
prediction dictionaries of electronic devices located in any other
region, including Los Angeles, Calif.
[0051] FIG. 8 illustrates an amortization process 800, in
accordance to an example embodiment. The processor 102 runs the
amortization process 800 periodically, at fixed time intervals
(e.g., once every 10 minutes). At 802, the processor 102 accesses
an entry 402 of the prediction database 400. It checks at 804
whether the weight field 406 of the entry 402 is higher than the
default weight value for that field. If so, the processor 102
decreases the value of the weight field 406 at 806, and proceeds to
816. The value may be decreased by a constant amount, a constant
percentage, or using any other suitable formula. In an example
embodiment, the value is not decreased below the default value,
unless the entry 402 is a temporary one.
[0052] If the processor 102 determines at 804 that the weight is
already equal or rower than the default value, it determines at 808
whether this entry Is a temporary one, that is, whether its flags
field 408 includes the flag "temp". If the entry is not a temporary
one, the processor 102 continues to 816. Otherwise, the processor
102 decreases the value of the weight field 406 by a constant
amount, a constant percentage, or using any other suitable formula.
Next, the processor 102 checks at 812 whether the new weight value
is zero or lower, and if so it removes the entry 402 from the
prediction database 400 at 814. Otherwise, it continues to 816. At
816 the processor 102 determines whether this was the last entry in
the prediction database 400. If not, the processor 102 returns to
process the next entry at 802; otherwise, the amortization process
800 ends.
[0053] The result of periodically running the amortization process
800, is gradually returning to default weight values text objects
that were heavily reported but then stopped being reported.
Furthermore, text objects that were not originally in the
prediction database 400 and were therefore marked as temporary,
will be removed from the prediction database 400 as a result of
this process, shortly after their reporting stops. The following
examples illustrate these phenomena.
[0054] Referring back to FIG. 4, the text object "earthquake" was
initiated to a weight of 10, the default weight for nouns,
according to an example. After the earthquake has occurred, the
text object was reported, for example, fifteen times by electronic
devices 100 within the vicinity of the electronic device 100, with
each time increasing its weight by 10 points, resulting in the
total weight of 160. Then there were no additional reports of the
text object. Every ten minutes the processor 102 runs the
amortization process 800, decreasing the text object's weight each
time, for example, by 12. Thus, after one run of the process 800,
the weight of the text object "earthquake" is at 148,as illustrated
in FIG. 4. The weight will keep decreasing every ten minutes until
it reaches its default value of 10 points.
[0055] In another example, users in the vicinity of an event
dedicated to the Earth Day of 2012 are reporting the text object
"Earth Day 2012" to the server 550 through using it in their input
texts. Samantha is approaching the location of the event and her
electronic device 100 starts receiving the retranslated text object
"Earth Day 2012". The first time the text object is received by her
electronic device 100, it will be added to the prediction database
400 with a weight of 5 (a default weight for multi-word phrases,
according to an example) and with a "temp" flag, because the text
object did not originally exist in the prediction database 400.
Samantha's device then quickly receives the same text object ten
more times, each time increasing its weight by 10 and resulting in
the total weigh of 105. Samantha keeps walking and at some, point
she effectively "walk out" of the vicinity zone of the event, so
her electronic device 100 stops getting the text object "Earth Day
2012" (even if it is still reported by electronic devices 100 close
to the event). Within the next hour Samantha's electronic device
100 runs the weight amortization process 800 six times, each time
decreasing the text object's weight by 12, resulting in a weight of
105-6*12=33, as illustrated in FIG. 4. After thirty more minutes,
the weight will be decreased three more times, bringing the weight
to -3, which results in a removal of the temporary text object
"Earth Day 2012" from the database 400.
[0056] The present disclosure may be embodied in other specific
forms without departing from its spirit or essential
characteristics. The described embodiments are to be considered in
all respects only as illustrative and not restrictive. The scope of
the present disclosure is, therefore, indicated by the appended
claims rather than by the foregoing description. All changes that
come within the meaning and range of equivalency of the claims are
to be embraced within their scope.
* * * * *