WO2012072854A1 - Error monitoring - Google Patents
Error monitoring Download PDFInfo
- Publication number
- WO2012072854A1 WO2012072854A1 PCT/FI2010/050985 FI2010050985W WO2012072854A1 WO 2012072854 A1 WO2012072854 A1 WO 2012072854A1 FI 2010050985 W FI2010050985 W FI 2010050985W WO 2012072854 A1 WO2012072854 A1 WO 2012072854A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- error
- text entry
- user
- processor
- weighting
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
Definitions
- an apparatus comprising:
- processors and memory including computer program code, the memory and the computer program code being configured to, with the processor, cause the apparatus to: monitor error types in text entry over a period of time;
- the error types may include two or more of:
- the memory and the computer program code may be configured to, with the processor, cause the apparatus to:
- the memory and the computer program code may be configured to, with the processor, cause the apparatus to monitor error types in text entry based on user-correction of text entry by:
- the memory and the computer program code may be configured to, with the processor, cause the apparatus to apply a particular weighting to particular error types in response to a predetermined number of occurrences of a particular error type occurring in the period of time.
- the predetermined number of occurrences may be dependent on the occurrences of other error types, amount of text entry performed by a given user, etc.
- the memory and the computer program code may be configured to, with the processor, cause the apparatus to:
- weightings of the respective error types may be collectively normalized, i.e. to add up to a total probability of ⁇ '.
- the memory and the computer program code may be configured to, with the processor, cause the apparatus to:
- the memory and the computer program code may be configured to, with the processor, cause the apparatus to:
- the memory and the computer program code may be configured to, with the processor, cause the apparatus to prioritize the provision of error correction by:
- the memory and the computer program code may be configured to, with the processor, cause the apparatus to provide one or more of the prioritized error correction suggestions.
- the apparatus may provide the top one, two, three, or more prioritized alternative error correction suggestions.
- the memory and the computer program code may be configured to, with the processor, cause the apparatus to determine respective prioritization values by:
- the error difference may be determined by one or more factors of:
- the edit distance may be determined based on the number of letter changes required to transpose one word to another word.
- the edit distance may be weighted based on the corresponding error weightings for the error types used to transpose one word to another word.
- the memory and the computer program code may be configured to, with the processor, cause the apparatus to:
- the memory and the computer program code may be configured to, with the processor, cause the apparatus to: store, for one or more separate users, the applied error type weightings as a text entry error profile for said respective user(s).
- the text entry error profile may be downloadable to one or more other apparatus or portable/non-portable electronic devices.
- the period of time over which the apparatus is configured to monitor text entry may be one or more of:
- the memory and the computer program code may be configured to, with the processor, cause the apparatus to:
- the apparatus may be one or more of:
- an electronic device a portable electronic device, a module for a portable electronic device, a server, and a network server.
- an apparatus comprising:
- processors and memory including computer program code, the memory and the computer program code being configured to, with the processor, cause the apparatus to: monitor error types in text entry over a period of time;
- the error types may include two or more of: character insertion, character substitution, character deletion, and swap of the order of characters.
- the monitoring of error types in text entry may be performed based on user-correction of text entry.
- the monitoring of error types in text entry based on user-correction of text entry may comprise:
- the application of a particular weighting to particular error types may be performed in response to a predetermined number of occurrences of a particular error type occurring in the period of time.
- the application of a particular weighting to a particular error type may be performed by increasing the weighting associated with that particular error type and decreasing the weighting associated with other error types in response to a predetermined number of occurrences of that particular error type over the period of time.
- the prioritization of the provision of error correction in text entry may be based on the applied weighting for particular error types.
- the monitoring of error types in text entry may be based on user feedback to prioritized provision of error correction.
- the prioritization of the provision of error correction may comprise:
- the method may comprise providing one or more of the prioritized error correction suggestions.
- the method may comprise identifying the frequency of occurrence of error types based on user response to prioritized provision of error correction for text entry.
- the method may comprise storing, for one or more separate users, the applied error type weightings as a text entry error profile for said respective user(s).
- the period of time over which the error types in text entry are monitored is performed may be one or more of:
- an apparatus comprising:
- means for monitoring configured to monitor error types in text entry over a period of time
- means for weighting configured to apply a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time, the applied weighting for particular error types allowing for prioritization of the provision of error correction in text entry.
- an apparatus comprising:
- monitoring circuitry configured to monitor types in text entry over a period of time; weighting circuitry configured to apply a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time, the applied weighting for particular error types allowing for prioritization of the provision of error correction in text entry.
- a computer readable medium comprising computer program code stored thereon, the computer program code being configured to, when run on a processor, perform at least:
- the present disclosure includes one or more corresponding aspects, examples or features in isolation or in various combinations whether or not specifically stated (including claimed) in that combination or in isolation.
- Corresponding means for performing one or more of the discussed functions are also within the present disclosure.
- Figure 1 shows an apparatus according to a first example.
- Figure 2 shows a portable electronic device according to another example.
- Figure 3 illustrates screenshots according to a further example.
- Figure 4 illustrates error type weighting
- Figure 5a illustrates screenshots according to another example embodiment.
- Figure 5b shows analysis of error types according to another example.
- Figure 6 illustrates method of operation according to one or more examples of the present disclosure.
- Figure 7 illustrates schematically a computer readable media providing a program according to an example of the present disclosure.
- an apparatus comprising a processor and memory including computer program code.
- the memory and the computer program code are configured to, with the processor, cause the apparatus to monitor error types in text entry over a period of time.
- the memory and computer program code are also configured to cause the apparatus to apply a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time. The applied weighting thereby allows for prioritization of the provision of error correction in text entry.
- users enter text into devices such as mobile telephones or the like
- they utilise a user interface such as a keypad or touch screen.
- a user interface such as a keypad or touch screen.
- users make errors/mistakes when entering text Users with a light touch can often skip or miss letters out of words as they do not press certain keys hard enough to cause text entry. Users with a heavy touch can often introduce additional unnecessary letters into words as they press additional keys by accident and cause unintentional additional text entry.
- Other users may be careless, or type too quickly, and cause swapping of order of letters, or the like.
- Different users also have different devices with different interface layouts that can prompt particular types of errors.
- a QWERTY keyboard can introduce swapping of many adjacent letters (for example, T for ' ⁇ ', 'J' for 'K', etc) while an alphanumeric keypad is less likely to cause these errors for those particular letters.
- a weighting that is representative of the particular types of errors being made by a particular user can be applied to the different error types so as to take account of a given user's predisposition towards certain error types (for example, for a particular user interface type). Examples of this are discussed below.
- Figure 1 schematically illustrates apparatus 100, which comprises an input 1 10, a processor 120, a memory 130, and an output 140.
- the apparatus 100 is integrated as part of a mobile electronic device 150 such as a mobile telephone.
- a mobile electronic device 150 such as a mobile telephone.
- the device is a mobile telephone, though it will be appreciated that one or more examples described herein can relate to other types of portable electronic device, in particular, so-called hand-portable electronic devices which may be hand-held in use (although they may be placed in a cradle in use).
- Such hand-portable electronic devices include so-called Personal Digital Assistants (PDAs).
- PDAs Personal Digital Assistants
- the portable electronic devices/apparatus may provide one or more audio/text/video communication functions (for example, tele-communication, video-communication, and/or text transmission (Short Message Service (SMS)/ Multimedia Message Service (MMS)/emailing) functions), interactive/non-interactive viewing functions (for example, web-browsing, navigation, TV/program viewing functions), music recording/playing functions (for example, MP3 or other format and/or (FM/AM) radio broadcast recording/playing), downloading/sending of data functions, image capture function (for example, using a (for example, in-built) digital camera), and gaming functions.
- audio/text/video communication functions for example, tele-communication, video-communication, and/or text transmission (Short Message Service (SMS)/ Multimedia Message Service (MMS)/emailing) functions
- interactive/non-interactive viewing functions for example, web-browsing, navigation, TV/program viewing functions
- music recording/playing functions for example, MP3 or other format and/
- the input 1 10 and output 140 are part of an input/output (I/O) interface for receiving signalling at the apparatus 100, and so as to be able to provide signalling to and from the processor 120.
- the input/output interface is formed as part of a physical electrical connector (not shown) to allow a module-type example of the apparatus 100 to be attachable to an electronic device.
- the processor 120 is a general purpose processor that is capable of performing the task of processing incoming signalling from the input 1 10 relating to user entry or actions such as text, data entry or user input, but is also capable of performing other tasks as well.
- the processor is an Application Specific Integrated Circuit (ASIC) that is specifically configured to perform the same tasks.
- ASIC Application Specific Integrated Circuit
- the processor 120 is formed from a plurality of separate integrated circuits that co-operatively perform said tasks. These integrated circuits may be provided locally to one another, or in other examples can be provided separately and remotely from one another.
- the memory 130 is a computer readable medium that has computer program code/instructions stored thereon.
- the memory is readable/writeable solid state memory.
- the memory may be read only memory (ROM), or may even be a physical hard drive.
- the memory 130 is to be accessible by the processor 120 to allow the processor 120 to access the computer program code and error types stored on the memory 130.
- the memory 130 is electrically connected to the processor 120.
- the memory 130 stores a weighting table that contains adjustable weightings that correspond to the different error types. These types of errors are discussed below.
- the memory can actually be distinct and separate from the apparatus 100, and may be just remotely accessed by the processor 120 of the apparatus.
- the processor 120 of the apparatus may be just remotely accessed by the processor 120 of the apparatus.
- the computer program code allows the processor 120, after receiving signalling from the input 1 10 relating to text entry by a user, to operate on that signalling in such a way so as to
- the input 1 10 is electrically connected to the processor 120, the output 140 is electrically connected to the processor 120, and the memory 130 is electrically connected to the processor 120. This is to allow the processor 120 to be in electrical communication with each of these elements.
- the apparatus is formed on a printed circuit board (PCB, but this may also be a printed wiring board - PWB).
- the processor 120 and memory 130 are actually soldered directly to the PCB, and the respective electrical connections between the processor 120 and the input 1 10, output 140, and memory 130 are also formed via soldering.
- a multi-bit bus is provided to electrically connect the processor 120 to the respective components 1 10, 130 & 140.
- the PCB provides a push-fit integrated circuit (IC) connector (not shown) for receiving the processor 120 and soldering lugs connected to this connector for allowing direct connection of the other components to the processor 120 (once push-fit into the IC connector).
- screw terminals may be used to connect the various components together.
- the processor 120 is actually formed within a module (for example, being formed within epoxy resin) and the processor 120 connected to external wire conductors that allow for connection to the other components (input 1 10, output 140 and memory 130).
- Figure 3 illustrates text entry on a portable electronic device comprising the apparatus 100 (see Figures 1 and 2).
- the portable electronic device is an appropriately modified mobile telecommunications device, whereby the provision of error correction is controlled by apparatus 100.
- a user has entered 'hrll'. This is not a complete known word in the English language. The user will then respond by deleting (in this case, sequentially) the erroneous letters T, T and 'r', and then entering the correct letters 'e', T, T, and ⁇ ' to spell 'hello'. This action is often performed by users where a correct suggestion has not been provided.
- the apparatus 100 From monitoring the text entry and, in particular, the user correction to the text entry, the apparatus 100 identifies the types of errors that the user made when entering text. In the example of figure 3, the apparatus 100 memorises the initial text entry of 'hrll'. It can then be seen that the user has identified their own errors and has corrected them. From comparing the correction to the initial/original text entry, the apparatus can identify which errors have been made by the user.
- the user can be seen to have made a substitution error by replacing the 'e' of 'hello' with an 'r', and a deletion error by omitting the ⁇ ' from 'hello'.
- This user can be seen to have been more prone to substitution and deletion errors than insertion or swap errors.
- one error is not necessarily statistically significant to categorically state that 'this user will always make more substitution and deletion errors than insertion and swap errors'
- the text entry and corrections made to erroneous text entry will reflect the types of error that the user is more likely to make.
- the weightings of the particular error types that affect the possible text correction/prediction suggestion generated by the device can be modified/new weightings applied to reflect the user's predisposition towards certain errors. An example of this is shown in Figure 4.
- Figure 3 can be understood to show how the apparatus 100 is configured to identify the frequency of occurrence of error types based on user response to prioritised provision of error correction for text entry. From this frequency of occurrence, a corresponding adjustment in weighting of particular error types can be made.
- Figure 4 illustrates how the weightings in the table stored in the memory 130 can be affected by text entry over time.
- the apparatus is brand new, and the user has not made any text entry, so there is a default equal weighting of 0.25 applied to each error type. These will be adjusted over time.
- the user After two weeks (week '2'), the user has made varying numbers of text entry errors. These are monitored in similar ways to the example shown in Figure 3 (more examples are discussed below).
- the user has made more deletion errors than any other type of error, just a few substitution errors, and very few insertion or swap errors.
- the weightings for each of the error types are therefore adjusted to reflect the frequency of occurrence for each of the error types, i.e. insertion and swap errors are reduced to 0.1 each, the deletion error weighting has risen to 0.5, and the substitution error weighting has risen slightly to 0.3.
- week '4' the user has made more insertion and swap errors than over the first 2 weeks, but they are still more prone to deletion and substitution errors.
- the error weightings are therefore adjusted again to reflect these changes, i.e. the insertion and swap error weightings are raised to 0.2 each, the deletion error weighting is reduced to 0.35 and the substitution error weighting is reduced to 0.25.
- the process is repeated continually, and example results of changes in the error weightings are shown in the table of Figure 4.
- weightings all add up to , and hence are normalized. This total weighting is maintained throughout adjustments of each the error weightings. Therefore, as the weighting for one error is increased, one or more other error type weightings will be decreased to maintain this normalized weighting.
- the weightings were adjusted quite radically, while over the second two week period the weightings were not adjusted to the same extent.
- the adjustments made to the weightings are based on the period of time from the start of operation of the apparatus, so the weightings reflect the total/cumulative history of monitored text entry of the apparatus. Therefore, initially the weightings will fluctuate quite rapidly due to the relatively small data sample of errors available, while the applied weightings will fluctuate less and less over time as the data sample of errors grows ever larger, thus stabilising the system.
- the time period may be a rolling time period, so that after the 10th week (or some other time 'window') the initial data samples are ignored and new data samples replace them, so as to maintain a static data sample size, and newer samples will have the same impact on the weightings as older samples.
- the table in Figure 4 just highlights the applied weightings at two week intervals, but in this example the applied weightings are continually adjusted (though in some examples discretely timed adjustments of the weightings can be performed).
- the period of time over which text entry is monitored is complete history of the device of a particular user, but it in other examples can be shorter, such as a rolling time period, or specific to particular applications, particular users and/or particular user interface types.
- the above example relates primarily to using text entry and manual user correction of text entry to monitor text entry and build up some idea of one or more users' predispositions towards error types and applying weightings accordingly.
- the number of changes required to change from one word to another describes the 'edit distance' of a particular suggestion from user entered text.
- this edit distance is used to help rank or prioritise error correction suggestions. For example, suggestions with a smaller edit distance are identified as having a more likely ranking, and those suggestions with a larger edit distance are identified as having a less likely ranking.
- the apparatus 100 is arranged to use the applied weightings stored in the table (see Figure 4) to obtain a 'weighted edit distance' for particular error correction suggestions.
- Figure 5a illustrates the same scenario as in Figure 3, a user has entered 'hrll' when they actually meant to enter 'hello'.
- the apparatus 100 causes the provision of error corrected suggestions to the user for them to select one to replace the erroneous word they entered.
- the suggestions are provided by a fully- fledged n-gram language model, where the entire word history up to the current word affects the possible suggestions.
- the apparatus provides three suggestions: 'hell', 'hill', and 'hello'. The user then selects their desired word 'hello'.
- the apparatus can then determine the errors made by the user based on their feedback to the provided suggestions. This is illustrated in the first table of Figure 5b.
- the apparatus 100 calculates the average probability for each suggestion based on the total for each error multiplied by their respective weighting, and then ranks these suggestions according to their average probability. From this a prioritised listing of suggestions can be provided.
- all the errors have the same weighting in the first week (week ' ⁇ ') according to the table of Figure 4.
- the average probability or 'weighted edit distance' from each of the suggestions are the same and therefore are ranked equally (joint first).
- the apparatus will perform the same operation as for the first scenario.
- the weightings are different, so the average probability for each suggestion allows for prioritization/ranking of the error suggestions.
- the weightings reflect that the user is more prone to substitution and deletion errors and the suggestion 'hello' is identified as 'first choice'.
- the respective rankings can be considered to be prioritization values.
- the weighted edit distances can be considered to be more specific prioritization values.
- the suggestions are therefore provided to the user in their ranked order according to their prioritization values.
- table (iii) shows that the same result occurs, but (as is shown in the weighting table of Figure 4) the applied weightings are more balanced and less extreme than the initial skew in week two.
- any insertion errors can be prioritized over any deletion errors if it is determined, by monitoring all text entry, that insertion error types have occurred more than deletion errors over the time period. This is the purpose behind adjusting the weightings for respective error types, so that more correction suggestions can be provided based on the more likely error types that have occurred than the less likely error types.
- this example operates by monitoring error types in text entry based on user feedback to prioritised provision of error correction.
- the user's feedback effectively reinforces the weightings for error types they are more prone to making as they will select the words they really meant to enter based on the provided suggestions.
- the apparatus of this example is configured to discard such a data sample for the purpose of applying a weighting, as it is not clear which type of error/errors the user actually made and which corresponding error weighting should be adjusted accordingly.
- weightings are adjusted upon a single occurrence of a given error type in the abovedescribed examples, in other examples it may be that a certain predetermined number or threshold number of occurrences of particular error types must occur before the weighting will be adjusted.
- This adaptation of the applied weightings to optimize the apparatus/device to a user's writing style can therefore be adjusted so as to only adjust the weightings at certain points, for example, using/based on known hill climbing schemes.
- the goal is to adjust the weightings carefully over time such that the rank of the intended word in the candidate list is promoted. Optimization can take place gradually for each input word, by moving the predetermined/threshold number of occurrences or the like in an optimal direction (without however adjusting values too fast, which might result in overlearning and oscillating behaviour).
- This procedure can be understood to be a type of supervised learning in the sense that the system logs the user's actions and slowly learns which alternative(s) the user intended, either because the user either chooses the correct candidate from the selection list (as per Figure 5a), or retypes the word from scratch (as per Figure 3). For example, in one example there must be three deletion errors that occur within a given text entry session (for example, a text message) before the applied weighting is changed. In other examples the error occurrences must be sequential, or particular to a given application, or these constraints may not be imposed at all. This helps to reduce the rate of change/fluctuation in the weightings to provide (in some situations) a more stable system.
- weightings can be stored for each respective user of a device (for example, as part of a user profile for a computer, or on a mobile telephone). This may be done in conjunction with data relating to the type of user interface in operation. In another example (not shown), these details can be saved, copied and transferred over to other devices as a text entry error profile for that particular user.
- the user may or may not be at least required to sign in (for example, to define a particular user profile), again for which the weighting can be stored.
- the layout of the keypad can have an effect on the probabilities of particular errors occurring, but also the time between key presses is indicative of where errors occur. If a long time passes between two key presses, the key presses are likely to be correct. By contrast, if the time is short, it is more likely that the order of two keys was unintentionally swapped (e.g., ehllo -> hello), or that two adjacent keys pressed one after another are an accidental slip when in fact only one of the keys was intended (e.g., hjello -> hello). The incorrect press could also be the first one (e.g., jhello -> hello). In any case, the apparatus in another example based on that of Figure 5a/5b uses the timing of text entry as an indicator that particular error types may have occurred.
- non-English language text entry for example, German, French, Spanish, or other languages
- non-Arabic or non-Latin-based language systems for example, Chinese, Korean, Russian, Hindi, Urdu character text entry
- User entered text can include a combination of one or more of, for example, a word, a letter character (for example, from the Roman, Greek, Arabic or Cyrillic alphabets), a graphic character (for example, a sinograph, Japanese kana or Korean delineation), a drawing, a phrase, a syllable, a punctuation mark and a sentence, or the like.
- Figure 7 illustrates schematically a computer/processor readable media 700 providing a program according to an example of the present invention.
- the computer/processor readable media is a disc such as a digital versatile disc (DVD) or a compact disc (CD).
- DVD digital versatile disc
- CD compact disc
- the computer readable media may be any media that has been programmed in such a way as to carry out an inventive function.
- one or more examples described herein relate to monitoring of error types in text entry by a user to provide for error correction.
- these examples can be implemented as methods, computer programs and/or corresponding apparatus.
- any mentioned apparatus/device/server and/or other features of particular mentioned apparatus/device/server may be provided by apparatus arranged such that they become configured to carry out the desired operations only when enabled, for example, switched on, or the like. In such cases, they may not necessarily have the appropriate software loaded into the active memory in the non- enabled (for example, switched off state) and only load the appropriate software in the enabled (for example, on state).
- the apparatus may comprise hardware circuitry and/or firmware.
- the apparatus may comprise software loaded onto memory. Such software/computer programs may be recorded on the same memory/processor/functional units and/or on one or more memories/processors/functional units.
- a particular mentioned apparatus/device/server may be preprogrammed with the appropriate software to carry out desired operations, and wherein the appropriate software can be enabled for use by a user downloading a "key", for example, to unlock/enable the software and its associated functionality.
- Advantages associated with such examples can include a reduced requirement to download data when further functionality is required for a device, and this can be useful in examples where a device is perceived to have sufficient capacity to store such pre-programmed software for functionality that may not be enabled by a user.
- any mentioned apparatus/circuitry/elements/processor may have other functions in addition to the mentioned functions, and that these functions may be performed by the same apparatus/circuitry/elements/processor.
- One or more disclosed aspects may encompass the electronic distribution of associated computer programs and computer programs (which may be source/transport encoded) recorded on an appropriate carrier (for example, memory, signal).
- any "computer” described herein can comprise a collection of one or more individual processors/processing elements that may or may not be located on the same circuit board, or the same region/position of a circuit board or even the same device. In some examples one or more of any mentioned processors may be distributed over a plurality of devices. The same or different processor/processing elements may perform one or more functions described herein. It will be appreciated that the term “signalling” may refer to one or more signals transmitted as a series of transmitted and/or received signals. The series of signals may comprise one, two, three, four or even more individual signal components or distinct signals to make up said signalling.
- these individual signals may be transmitted/received simultaneously, in sequence, and/or such that they temporally overlap one another.
- processor and memory for example, including ROM, CD-ROM etc
- these may comprise a computer processor, Application Specific Integrated Circuit (ASIC), field-programmable gate array (FPGA), and/or other hardware components that have been programmed in such a way to carry out the inventive function.
- ASIC Application Specific Integrated Circuit
- FPGA field-programmable gate array
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
In one or more examples described herein, there is provided an apparatus. The apparatus comprises a processor and memory including computer program code. The memory and the computer program code are configured to, with the processor, cause the apparatus to monitor error types in text entry over a period of time. The memory and computer program code are also configured to cause the apparatus to apply a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time. The applied weighting thereby allows for prioritization of the provision of error correction in text entry.
Description
Error monitoring
Technical Field The present disclosure relates to the field of monitoring of error types in order to prioritise the provision of error correction in text entry
Background Electronic devices that allow for text entry from a user also provide for text correction and/or prediction. For example, mobile phones provide predictive text on different keypads/interfaces (for example, an ITU-T keypad).
The listing or discussion of a prior-published document or any background in this specification should not necessarily be taken as an acknowledgement that the document or background is part of the state of the art or is common general knowledge. One or more aspects/examples of the present disclosure may or may not address one or more of the background issues. Summary
In a first aspect, there is provided an apparatus comprising:
a processor and memory including computer program code, the memory and the computer program code being configured to, with the processor, cause the apparatus to: monitor error types in text entry over a period of time;
apply a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time, the applied weighting allowing for prioritization of the provision of error correction in text entry. The error types may include two or more of:
character insertion, character substitution, character deletion, and swapping of the order of characters.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
monitor error types in text entry based on user-correction of text entry.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to monitor error types in text entry based on user-correction of text entry by:
memorizing initially entered text; and
comparing, in response to user-correction of the initially entered text, the user- corrected text to the memorized initially edited text to identify one or more error types to have been corrected by the user. The memory and the computer program code may be configured to, with the processor, cause the apparatus to apply a particular weighting to particular error types in response to a predetermined number of occurrences of a particular error type occurring in the period of time. The predetermined number of occurrences may be dependent on the occurrences of other error types, amount of text entry performed by a given user, etc.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
apply a particular weighting to a particular error type by increasing the weighting associated with that particular error type and decreasing the weighting associated with other error types in response to a predetermined number of occurrences of that particular error type over the period of time. The weightings of the respective error types may be collectively normalized, i.e. to add up to a total probability of Ί '.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
prioritize the provision of error correction in text entry based on the applied weighting for particular error types.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
monitor error types in text entry based on user feedback to prioritized provision of error correction.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to prioritize the provision of error correction by:
generating a plurality of alternative error correction suggestions in response to text entry; and
determining respective prioritization values for the suggestions based on the weighted error types to allow for prioritization of the error correction suggestions.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to provide one or more of the prioritized error correction suggestions.
The apparatus may provide the top one, two, three, or more prioritized alternative error correction suggestions. The memory and the computer program code may be configured to, with the processor, cause the apparatus to determine respective prioritization values by:
identifying the error difference between respective error correction suggestions and the entered text based on the error types identified to be involved for each suggestion, and the weighting for that particular error type.
The error difference may be determined by one or more factors of:
word closeness, edit distance, n-gram calculations, etc.
The edit distance may be determined based on the number of letter changes required to transpose one word to another word. The edit distance may be weighted based on the corresponding error weightings for the error types used to transpose one word to another word.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
identify the frequency of occurrence of error types based on user response to prioritized provision of error correction for text entry.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
store, for one or more separate users, the applied error type weightings as a text entry error profile for said respective user(s).
The text entry error profile may be downloadable to one or more other apparatus or portable/non-portable electronic devices.
The period of time over which the apparatus is configured to monitor text entry may be one or more of:
complete history, partial history, starts from a given date, a rolling time period.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
monitor error types in text entry over a period of time for a particular text entry user interface.
The apparatus may be one or more of:
an electronic device, a portable electronic device, a module for a portable electronic device, a server, and a network server. In another aspect, there is provided an apparatus comprising:
a processor and memory including computer program code, the memory and the computer program code being configured to, with the processor, cause the apparatus to: monitor error types in text entry over a period of time;
apply a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time; and
prioritize the provision of error correction in text entry based on the applied weighting for the particular error type.
In another aspect, there is provided a method comprising:
monitoring error types in text entry over a period of time;
applying a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time, the applied weighting for particular error types allowing for prioritization of the provision of error correction in text entry.
The error types may include two or more of:
character insertion, character substitution, character deletion, and swap of the order of characters.
The monitoring of error types in text entry may be performed based on user-correction of text entry.
The monitoring of error types in text entry based on user-correction of text entry may comprise:
memorizing initially entered text; and
comparing, in response to user-correction of the initially entered text, the user- corrected text to the memorized initially edited text to identify one or more error types to have been corrected by the user.
The application of a particular weighting to particular error types may be performed in response to a predetermined number of occurrences of a particular error type occurring in the period of time.
The application of a particular weighting to a particular error type may be performed by increasing the weighting associated with that particular error type and decreasing the weighting associated with other error types in response to a predetermined number of occurrences of that particular error type over the period of time.
The prioritization of the provision of error correction in text entry may be based on the applied weighting for particular error types.
The monitoring of error types in text entry may be based on user feedback to prioritized provision of error correction.
The prioritization of the provision of error correction may comprise:
generating a plurality of alternative error correction suggestions in response to text entry; and
determining respective prioritization values for the suggestions based on the weighted error types to allow for prioritization of the error correction suggestions.
The method may comprise providing one or more of the prioritized error correction suggestions.
The method may comprise identifying the frequency of occurrence of error types based on user response to prioritized provision of error correction for text entry. The method may comprise storing, for one or more separate users, the applied error type weightings as a text entry error profile for said respective user(s).
The period of time over which the error types in text entry are monitored is performed may be one or more of:
complete history, partial history, starts from a given date, a rolling time period.
The monitoring of error types in text entry over a period of time may be performed for a particular text entry user interface. In another aspect, there is provided an apparatus comprising:
means for monitoring configured to monitor error types in text entry over a period of time;
means for weighting configured to apply a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time, the applied weighting for particular error types allowing for prioritization of the provision of error correction in text entry.
In another aspect, there is provided an apparatus comprising:
monitoring circuitry configured to monitor types in text entry over a period of time; weighting circuitry configured to apply a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time, the applied weighting for particular error types allowing for prioritization of the provision of error correction in text entry. In yet another aspect, there is provided a computer readable medium comprising computer program code stored thereon, the computer program code being configured to, when run on a processor, perform at least:
monitoring error types in text entry over a period of time;
applying a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time, the applied weighting for
particular error types allowing for prioritization of the provision of error correction in text entry.
The present disclosure includes one or more corresponding aspects, examples or features in isolation or in various combinations whether or not specifically stated (including claimed) in that combination or in isolation. Corresponding means for performing one or more of the discussed functions are also within the present disclosure.
Corresponding computer programs for implementing one or more of the methods disclosed are also within the present disclosure and encompassed by one or more of the described examples of the present disclosure.
The above summary is intended to be merely exemplary and non-limiting. Brief Description of the Figures
A description is now given, by way of example only, with reference to the accompanying drawings, in which:-
Figure 1 shows an apparatus according to a first example.
Figure 2 shows a portable electronic device according to another example.
Figure 3 illustrates screenshots according to a further example.
Figure 4 illustrates error type weighting.
Figure 5a illustrates screenshots according to another example embodiment.
Figure 5b shows analysis of error types according to another example.
Figure 6 illustrates method of operation according to one or more examples of the present disclosure.
Figure 7 illustrates schematically a computer readable media providing a program according to an example of the present disclosure.
Specific Description
In one or more examples described herein, there is provided an apparatus. The apparatus comprises a processor and memory including computer program code. The memory and the computer program code are configured to, with the processor, cause the apparatus to monitor error types in text entry over a period of time. The memory and computer program
code are also configured to cause the apparatus to apply a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time. The applied weighting thereby allows for prioritization of the provision of error correction in text entry.
When users enter text into devices (such as mobile telephones or the like), they utilise a user interface such as a keypad or touch screen. Inevitably, users make errors/mistakes when entering text. Users with a light touch can often skip or miss letters out of words as they do not press certain keys hard enough to cause text entry. Users with a heavy touch can often introduce additional unnecessary letters into words as they press additional keys by accident and cause unintentional additional text entry. Other users may be careless, or type too quickly, and cause swapping of order of letters, or the like. Different users also have different devices with different interface layouts that can prompt particular types of errors. For example, a QWERTY keyboard can introduce swapping of many adjacent letters (for example, T for 'Ο', 'J' for 'K', etc) while an alphanumeric keypad is less likely to cause these errors for those particular letters. These examples highlight that different/same users have different likelihoods of making particular errors. As a result, different/same users are more prone to some types of errors than other errors.
By monitoring the errors that occur in text entry, a weighting that is representative of the particular types of errors being made by a particular user can be applied to the different error types so as to take account of a given user's predisposition towards certain error types (for example, for a particular user interface type). Examples of this are discussed below.
We will now describe a first example with reference to Figure 1. Figure 1 schematically illustrates apparatus 100, which comprises an input 1 10, a processor 120, a memory 130, and an output 140. In this example the apparatus 100 is integrated as part of a mobile electronic device 150 such as a mobile telephone. This is illustrated in Figure 2. In other examples it may be a module attached to a mobile device/telephone, or a mobile device telephone per se.
In this example, the device is a mobile telephone, though it will be appreciated that one or more examples described herein can relate to other types of portable electronic device, in particular, so-called hand-portable electronic devices which may be hand-held in use (although they may be placed in a cradle in use). Such hand-portable electronic devices include so-called Personal Digital Assistants (PDAs).
In addition, the portable electronic devices/apparatus according to one or more disclosed aspects/examples may provide one or more audio/text/video communication functions (for example, tele-communication, video-communication, and/or text transmission (Short Message Service (SMS)/ Multimedia Message Service (MMS)/emailing) functions), interactive/non-interactive viewing functions (for example, web-browsing, navigation, TV/program viewing functions), music recording/playing functions (for example, MP3 or other format and/or (FM/AM) radio broadcast recording/playing), downloading/sending of data functions, image capture function (for example, using a (for example, in-built) digital camera), and gaming functions.
The input 1 10 and output 140 are part of an input/output (I/O) interface for receiving signalling at the apparatus 100, and so as to be able to provide signalling to and from the processor 120. In other examples, the input/output interface is formed as part of a physical electrical connector (not shown) to allow a module-type example of the apparatus 100 to be attachable to an electronic device.
The processor 120 is a general purpose processor that is capable of performing the task of processing incoming signalling from the input 1 10 relating to user entry or actions such as text, data entry or user input, but is also capable of performing other tasks as well. In other examples, the processor is an Application Specific Integrated Circuit (ASIC) that is specifically configured to perform the same tasks. In other examples the processor 120 is formed from a plurality of separate integrated circuits that co-operatively perform said tasks. These integrated circuits may be provided locally to one another, or in other examples can be provided separately and remotely from one another.
The memory 130 is a computer readable medium that has computer program code/instructions stored thereon. In this example, the memory is readable/writeable solid state memory. In other examples, the memory may be read only memory (ROM), or may even be a physical hard drive.
The memory 130 is to be accessible by the processor 120 to allow the processor 120 to access the computer program code and error types stored on the memory 130. In this example the memory 130 is electrically connected to the processor 120. The memory 130 stores a weighting table that contains adjustable weightings that correspond to the different error types. These types of errors are discussed below.
In some examples, the memory can actually be distinct and separate from the apparatus 100, and may be just remotely accessed by the processor 120 of the apparatus. The skilled person will appreciate that other such variations are also within the scope of the disclosure.
The computer program code allows the processor 120, after receiving signalling from the input 1 10 relating to text entry by a user, to operate on that signalling in such a way so as to
We will now describe the assembly/physical structure of this example of the apparatus 100.
The input 1 10 is electrically connected to the processor 120, the output 140 is electrically connected to the processor 120, and the memory 130 is electrically connected to the processor 120. This is to allow the processor 120 to be in electrical communication with each of these elements.
In this example, the apparatus is formed on a printed circuit board (PCB, but this may also be a printed wiring board - PWB). The processor 120 and memory 130 are actually soldered directly to the PCB, and the respective electrical connections between the processor 120 and the input 1 10, output 140, and memory 130 are also formed via soldering. In a variation of this example, a multi-bit bus is provided to electrically connect the processor 120 to the respective components 1 10, 130 & 140. In other examples, the PCB provides a push-fit integrated circuit (IC) connector (not shown) for receiving the processor 120 and soldering lugs connected to this connector for allowing direct connection of the other components to the processor 120 (once push-fit into the IC connector). In other examples, screw terminals may be used to connect the various components together.
In another example, for example one where the memory 130 providing the language models is actually separate from the apparatus 100, the processor 120 is actually formed within a module (for example, being formed within epoxy resin) and the processor 120 connected to external wire conductors that allow for connection to the other components (input 1 10, output 140 and memory 130).
We will now describe the operation of this example with reference to Figure 3.
In current error type models, there are four types of error:
(1 ) Insertion - additional letters are inserted into the intended word/text;
(2) Deletion - letters are accidentally omitted from the intended word/text;
(3) Substitution - letters are accidentally replaced from the intended word/text; and
(4) Swap - the order of two letters is reversed in intended word/text. Fixed weightings for these error types do not reflect the reality that, as has been discussed above, certain users will be more prone to one type of error than other users. For example, a heavy handed user may make more insertion errors whereby additional letters are inserted into a typed word, while a light handed user may make more deletion errors whereby letters are omitted from a typed word. Users that type quickly can often end up with swap errors whereby the order of two letters in the word is swapped around, or even substitution errors where certain letters are accidentally replaced by other letters during typing.
Figure 3 illustrates text entry on a portable electronic device comprising the apparatus 100 (see Figures 1 and 2). The portable electronic device is an appropriately modified mobile telecommunications device, whereby the provision of error correction is controlled by apparatus 100.
In Figure 3, a user has entered 'hrll'. This is not a complete known word in the English language. The user will then respond by deleting (in this case, sequentially) the erroneous letters T, T and 'r', and then entering the correct letters 'e', T, T, and Ό' to spell 'hello'. This action is often performed by users where a correct suggestion has not been provided. From monitoring the text entry and, in particular, the user correction to the text entry, the apparatus 100 identifies the types of errors that the user made when entering text. In the
example of figure 3, the apparatus 100 memorises the initial text entry of 'hrll'. It can then be seen that the user has identified their own errors and has corrected them. From comparing the correction to the initial/original text entry, the apparatus can identify which errors have been made by the user.
In this example, the user can be seen to have made a substitution error by replacing the 'e' of 'hello' with an 'r', and a deletion error by omitting the Ό' from 'hello'. This user can be seen to have been more prone to substitution and deletion errors than insertion or swap errors. While one error is not necessarily statistically significant to categorically state that 'this user will always make more substitution and deletion errors than insertion and swap errors', over time, the text entry and corrections made to erroneous text entry will reflect the types of error that the user is more likely to make. As a result, the weightings of the particular error types that affect the possible text correction/prediction suggestion generated by the device can be modified/new weightings applied to reflect the user's predisposition towards certain errors. An example of this is shown in Figure 4.
In summary, Figure 3 can be understood to show how the apparatus 100 is configured to identify the frequency of occurrence of error types based on user response to prioritised provision of error correction for text entry. From this frequency of occurrence, a corresponding adjustment in weighting of particular error types can be made.
Figure 4 illustrates how the weightings in the table stored in the memory 130 can be affected by text entry over time. In week '0' the apparatus is brand new, and the user has not made any text entry, so there is a default equal weighting of 0.25 applied to each error type. These will be adjusted over time.
After two weeks (week '2'), the user has made varying numbers of text entry errors. These are monitored in similar ways to the example shown in Figure 3 (more examples are discussed below). In this example, the user has made more deletion errors than any other type of error, just a few substitution errors, and very few insertion or swap errors. The weightings for each of the error types are therefore adjusted to reflect the frequency of occurrence for each of the error types, i.e. insertion and swap errors are reduced to 0.1 each, the deletion error weighting has risen to 0.5, and the substitution error weighting has risen slightly to 0.3.
After two more weeks (week '4') the user has made more insertion and swap errors than over the first 2 weeks, but they are still more prone to deletion and substitution errors. The error weightings are therefore adjusted again to reflect these changes, i.e. the insertion and swap error weightings are raised to 0.2 each, the deletion error weighting is reduced to 0.35 and the substitution error weighting is reduced to 0.25. The process is repeated continually, and example results of changes in the error weightings are shown in the table of Figure 4.
It will be noted that the weightings all add up to , and hence are normalized. This total weighting is maintained throughout adjustments of each the error weightings. Therefore, as the weighting for one error is increased, one or more other error type weightings will be decreased to maintain this normalized weighting.
It will also be noted that during the first two weeks the weightings were adjusted quite radically, while over the second two week period the weightings were not adjusted to the same extent. In this example, the adjustments made to the weightings are based on the period of time from the start of operation of the apparatus, so the weightings reflect the total/cumulative history of monitored text entry of the apparatus. Therefore, initially the weightings will fluctuate quite rapidly due to the relatively small data sample of errors available, while the applied weightings will fluctuate less and less over time as the data sample of errors grows ever larger, thus stabilising the system. In other examples, the time period may be a rolling time period, so that after the 10th week (or some other time 'window') the initial data samples are ignored and new data samples replace them, so as to maintain a static data sample size, and newer samples will have the same impact on the weightings as older samples.
The table in Figure 4 just highlights the applied weightings at two week intervals, but in this example the applied weightings are continually adjusted (though in some examples discretely timed adjustments of the weightings can be performed). In this example, the period of time over which text entry is monitored is complete history of the device of a particular user, but it in other examples can be shorter, such as a rolling time period, or specific to particular applications, particular users and/or particular user interface types.
The above example relates primarily to using text entry and manual user correction of text entry to monitor text entry and build up some idea of one or more users' predispositions towards error types and applying weightings accordingly. We will now discuss another
example with reference to Figures 5a and 5b that involve a variation of monitoring error types and also the provision of error correction/prediction suggestions.
As has been discussed in relation to Figure 3, to move from one word to another word, a certain number of changes must be made - for example, 'cat' to 'dog' requires three letter changes. The different error types can be seen to describe simple component changes to allow for one word to be changed into another word. By analysing a user entered word and comparing it to possible suggestions, it is possible to identify the simplest and smallest combination of error types that would allow for the user entered word to be changed to different respective suggestions. For example, 'cat' to 'dog' would require three substitution type errors/letter changes, 'goo' to 'good' would require a deletion type error/letter change, 'for' to 'from' would require a swapping type error/letter change and a deletion type error change etc. The number of changes required to change from one word to another describes the 'edit distance' of a particular suggestion from user entered text. In some examples, this edit distance is used to help rank or prioritise error correction suggestions. For example, suggestions with a smaller edit distance are identified as having a more likely ranking, and those suggestions with a larger edit distance are identified as having a less likely ranking. The more errors that are hypothesized in a word, and thus the more the suggested candidate word differs from the string that was actually typed, the lower the overall probability of choosing that candidate word (as is highlighted in examples discussed below). In the example of Figure 5a and 5b (and other examples), the apparatus 100 is arranged to use the applied weightings stored in the table (see Figure 4) to obtain a 'weighted edit distance' for particular error correction suggestions.
For simplicity, Figure 5a illustrates the same scenario as in Figure 3, a user has entered 'hrll' when they actually meant to enter 'hello'. In this example, the apparatus 100 causes the provision of error corrected suggestions to the user for them to select one to replace the erroneous word they entered. In this example, the suggestions are provided by a fully- fledged n-gram language model, where the entire word history up to the current word affects the possible suggestions.
In this example, the apparatus provides three suggestions: 'hell', 'hill', and 'hello'. The user then selects their desired word 'hello'. As per the first example, the apparatus can then determine the errors made by the user based on their feedback to the provided suggestions. This is illustrated in the first table of Figure 5b.
The apparatus 100 calculates the average probability for each suggestion based on the total for each error multiplied by their respective weighting, and then ranks these suggestions according to their average probability. From this a prioritised listing of suggestions can be provided. In this example, all the errors have the same weighting in the first week (week 'Ο') according to the table of Figure 4. As shown in table (i) of Figure 5b, the average probability or 'weighted edit distance' from each of the suggestions are the same and therefore are ranked equally (joint first). However, the user will still select one of these (and if not, the example of Figure 3 will apply and the apparatus 100 will learn anyway) and cause an adjustment in the weightings in response to the selection of a particular word, the change in weightings therefore favouring those error types that the user is more prone towards.
Assuming the same scenario occurs a few weeks later, and the user enters 'hrll', the apparatus will perform the same operation as for the first scenario. In this example, the weightings are different, so the average probability for each suggestion allows for prioritization/ranking of the error suggestions. Already, the weightings reflect that the user is more prone to substitution and deletion errors and the suggestion 'hello' is identified as 'first choice'. The respective rankings can be considered to be prioritization values. Alternatively, the weighted edit distances can be considered to be more specific prioritization values. The suggestions are therefore provided to the user in their ranked order according to their prioritization values.
Again, assuming the same scenario occurs a few weeks later again (week 20), table (iii) shows that the same result occurs, but (as is shown in the weighting table of Figure 4) the applied weightings are more balanced and less extreme than the initial skew in week two.
Although the example of Figure 5 has been illustrated using the same text entry for the same intended word, it will be appreciated that the method can be applied to different text entry for the same intended words and also same/different text entry for different words. For example, by applying the method across all text entry over a period of time, the typical nature of types of errors which occur over the text entry can be used. Thus, any insertion
errors can be prioritized over any deletion errors if it is determined, by monitoring all text entry, that insertion error types have occurred more than deletion errors over the time period. This is the purpose behind adjusting the weightings for respective error types, so that more correction suggestions can be provided based on the more likely error types that have occurred than the less likely error types.
In summary, this example operates by monitoring error types in text entry based on user feedback to prioritised provision of error correction. The user's feedback effectively reinforces the weightings for error types they are more prone to making as they will select the words they really meant to enter based on the provided suggestions.
Sometimes, it may be that a certain user entered word has multiple different ways of being changed to another word where the edit distance and/or weighted edit distance are the same. In such scenarios, the apparatus of this example is configured to discard such a data sample for the purpose of applying a weighting, as it is not clear which type of error/errors the user actually made and which corresponding error weighting should be adjusted accordingly.
With this in mind, it will be appreciated that while in certain examples the weightings are adjusted upon a single occurrence of a given error type in the abovedescribed examples, in other examples it may be that a certain predetermined number or threshold number of occurrences of particular error types must occur before the weighting will be adjusted.
In particular, it is preferable to avoid an oscillation of the weighting values or to have an unstable system that 'overlearns' in response to errors. This adaptation of the applied weightings to optimize the apparatus/device to a user's writing style can therefore be adjusted so as to only adjust the weightings at certain points, for example, using/based on known hill climbing schemes. The goal is to adjust the weightings carefully over time such that the rank of the intended word in the candidate list is promoted. Optimization can take place gradually for each input word, by moving the predetermined/threshold number of occurrences or the like in an optimal direction (without however adjusting values too fast, which might result in overlearning and oscillating behaviour). This procedure can be understood to be a type of supervised learning in the sense that the system logs the user's actions and slowly learns which alternative(s) the user intended, either because the user either chooses the correct candidate from the selection list (as per Figure 5a), or retypes the word from scratch (as per Figure 3).
For example, in one example there must be three deletion errors that occur within a given text entry session (for example, a text message) before the applied weighting is changed. In other examples the error occurrences must be sequential, or particular to a given application, or these constraints may not be imposed at all. This helps to reduce the rate of change/fluctuation in the weightings to provide (in some situations) a more stable system.
As has been discussed above, certain users are prone to particular errors more so than other errors. The various examples described above help to take account of these errors in an adaptive manner and weight the error types accordingly. It may be that monitoring is performed independent of any user identification, but just based on operation of the apparatus over a period of time. However, advantageously, these weightings can be stored for each respective user of a device (for example, as part of a user profile for a computer, or on a mobile telephone). This may be done in conjunction with data relating to the type of user interface in operation. In another example (not shown), these details can be saved, copied and transferred over to other devices as a text entry error profile for that particular user. This is advantageous for many reasons - for example, if a user acquires a new device, then these settings and associated advantages would not be lost but could readily be transferred over to the user's new device (for use if the user interface is appropriate, or use even if the user interface is not appropriate, if user interface type information is available from the settings data). If multiple users operate a device, the user may or may not be at least required to sign in (for example, to define a particular user profile), again for which the weighting can be stored.
As has already been pointed out, the layout of the keypad can have an effect on the probabilities of particular errors occurring, but also the time between key presses is indicative of where errors occur. If a long time passes between two key presses, the key presses are likely to be correct. By contrast, if the time is short, it is more likely that the order of two keys was unintentionally swapped (e.g., ehllo -> hello), or that two adjacent keys pressed one after another are an accidental slip when in fact only one of the keys was intended (e.g., hjello -> hello). The incorrect press could also be the first one (e.g., jhello -> hello). In any case, the apparatus in another example based on that of Figure
5a/5b uses the timing of text entry as an indicator that particular error types may have occurred.
It will be appreciated that the method can be applied to non-English language text entry (for example, German, French, Spanish, or other languages) and can encompass other non-Arabic or non-Latin-based language systems (for example, Chinese, Korean, Russian, Hindi, Urdu character text entry). User entered text can include a combination of one or more of, for example, a word, a letter character (for example, from the Roman, Greek, Arabic or Cyrillic alphabets), a graphic character (for example, a sinograph, Japanese kana or Korean delineation), a drawing, a phrase, a syllable, a punctuation mark and a sentence, or the like.
In Figure 6, there is depicted a method according to one or more examples described above. The method comprises:
610 - monitoring error types in text entry over a period of time;
620 - applying a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time, the applied weighting for particular error types allowing for prioritization of the provision of error correction in text entry.
Figure 7 illustrates schematically a computer/processor readable media 700 providing a program according to an example of the present invention. In this example, the computer/processor readable media is a disc such as a digital versatile disc (DVD) or a compact disc (CD). In other examples, the computer readable media may be any media that has been programmed in such a way as to carry out an inventive function.
As has been described above, one or more examples described herein relate to monitoring of error types in text entry by a user to provide for error correction. There are various examples of these examples, and can be implemented as methods, computer programs and/or corresponding apparatus.
It will be appreciated to the skilled reader that any mentioned apparatus/device/server and/or other features of particular mentioned apparatus/device/server may be provided by apparatus arranged such that they become configured to carry out the desired operations only when enabled, for example, switched on, or the like. In such cases, they may not necessarily have the appropriate software loaded into the active memory in the non-
enabled (for example, switched off state) and only load the appropriate software in the enabled (for example, on state). The apparatus may comprise hardware circuitry and/or firmware. The apparatus may comprise software loaded onto memory. Such software/computer programs may be recorded on the same memory/processor/functional units and/or on one or more memories/processors/functional units.
In some examples, a particular mentioned apparatus/device/server may be preprogrammed with the appropriate software to carry out desired operations, and wherein the appropriate software can be enabled for use by a user downloading a "key", for example, to unlock/enable the software and its associated functionality. Advantages associated with such examples can include a reduced requirement to download data when further functionality is required for a device, and this can be useful in examples where a device is perceived to have sufficient capacity to store such pre-programmed software for functionality that may not be enabled by a user.
It will be appreciated that the any mentioned apparatus/circuitry/elements/processor may have other functions in addition to the mentioned functions, and that these functions may be performed by the same apparatus/circuitry/elements/processor. One or more disclosed aspects may encompass the electronic distribution of associated computer programs and computer programs (which may be source/transport encoded) recorded on an appropriate carrier (for example, memory, signal).
It will be appreciated that any "computer" described herein can comprise a collection of one or more individual processors/processing elements that may or may not be located on the same circuit board, or the same region/position of a circuit board or even the same device. In some examples one or more of any mentioned processors may be distributed over a plurality of devices. The same or different processor/processing elements may perform one or more functions described herein. It will be appreciated that the term "signalling" may refer to one or more signals transmitted as a series of transmitted and/or received signals. The series of signals may comprise one, two, three, four or even more individual signal components or distinct signals to make up said signalling. Some or all of these individual signals may be transmitted/received simultaneously, in sequence, and/or such that they temporally overlap one another.
With reference to any discussion of any mentioned computer and/or processor and memory (for example, including ROM, CD-ROM etc), these may comprise a computer processor, Application Specific Integrated Circuit (ASIC), field-programmable gate array (FPGA), and/or other hardware components that have been programmed in such a way to carry out the inventive function.
The applicant hereby discloses in isolation each individual feature described herein and any combination of two or more such features, to the extent that such features or combinations are capable of being carried out based on the present specification as a whole, in the light of the common general knowledge of a person skilled in the art, irrespective of whether such features or combinations of features solve any problems disclosed herein, and without limitation to the scope of the claims. The applicant indicates that the disclosed aspects/examples may consist of any such individual feature or combination of features. In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the disclosure.
While there have been shown and described and pointed out fundamental novel features of the invention as present in one or more examples above, it will be understood that various omissions and substitutions and changes in the form and details of the devices and methods described may be made by those skilled in the art without departing from the spirit of the invention. For example, it is expressly intended that all combinations of those elements and/or method steps which perform substantially the same function in substantially the same way to achieve the same results are within the scope of the invention. Moreover, it should be recognized that structures and/or elements and/or method steps shown and/or described in connection with any disclosed form or example of the invention may be incorporated in any other disclosed or described or suggested form or example as a general matter of design choice. Furthermore, in the claims means- plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents, but also equivalent structures. Thus although a nail and a screw may not be structural equivalents in that a nail employs a cylindrical surface to secure wooden parts together, whereas a screw employs a helical surface, in the environment of fastening wooden parts, a nail and a screw may be equivalent structures.
Claims
1 . An apparatus comprising:
a processor and memory including computer program code, the memory and the 5 computer program code being configured to, with the processor, cause the apparatus to:
monitor error types in text entry over a period of time;
apply a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time, the applied weighting allowing for prioritization of the provision of error correction in text entry.
o
2. The apparatus of claim 1 , wherein the error types include two or more of:
character insertion, character substitution, character deletion, and swap of the order of characters. 5
3. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to:
monitor error types in text entry based on user-correction of text entry.
4. The apparatus of claim 1 , wherein the memory and the computer program code0 are configured to, with the processor, cause the apparatus to monitor error types in text entry based on user-correction of text entry by:
memorizing initially entered text; and
comparing, in response to user-correction of the initially entered text, the user- corrected text to the memorized initially edited text to identify one or more error types to5 have been corrected by the user.
5. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to apply a particular weighting to particular error types in response to a predetermined number of occurrences of a0 particular error type occurring in the period of time.
6. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to:
apply a particular weighting to a particular error type by increasing the weighting5 associated with that particular error type and decreasing the weighting associated with other error types in response to a predetermined number of occurrences of that particular error type over the period of time.
7. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to:
prioritize the provision of error correction in text entry based on the applied weighting for particular error types.
8. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to:
monitor error types in text entry based on user feedback to prioritized provision of error correction.
9. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to prioritize the provision of error correction by:
generating a plurality of alternative error correction suggestions in response to text entry; and
determining respective prioritization values for the suggestions based on the weighted error types to allow for prioritization of the error correction suggestions.
10. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to provide one or more of the prioritized error correction suggestions.
1 1 . The apparatus of claim 1 , wherein the memory and the computer program code configured to, with the processor, cause the apparatus to:
identify the frequency of occurrence of error types based on user response to prioritized provision of error correction for text entry.
12. The apparatus of claim 1 , wherein the memory and the computer program code configured to, with the processor, cause the apparatus to:
store, for one or more separate users, the applied error type weightings as a text entry error profile for said respective user(s).
13. The apparatus of claim 1 , wherein the period of time over which the apparatus is configured to monitor text entry is one or more of:
complete history, partial history, starts from a given date, a rolling time period.
14. The apparatus of claim 1 , wherein the memory and the computer program code configured to, with the processor, cause the apparatus to:
monitor error types in text entry over a period of time for a particular text entry user interface.
15. The apparatus of claim 1 , wherein the apparatus is one or more of:
an electronic device, a portable electronic device, a module for a portable electronic device, a server, and a network server.
16. An apparatus comprising:
a processor and memory including computer program code, the memory and the computer program code being configured to, with the processor, cause the apparatus to: monitor error types in text entry over a period of time;
apply a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time; and
prioritize the provision of error correction in text entry based on the applied weighting for the particular error type.
17. A method comprising:
monitoring error types in text entry over a period of time;
applying a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time, the applied weighting for particular error types allowing for prioritization of the provision of error correction in text entry.
18. The method of claim 17, wherein the error types include two or more of:
character insertion, character substitution, character deletion, and swap of the order of characters.
19. The method of claim 17, wherein the monitoring of error types in text entry is performed based on user-correction of text entry.
20. The method of claim 19, wherein the monitoring of error types in text entry based on user-correction of text entry comprises:
memorizing initially entered text; and
comparing, in response to user-correction of the initially entered text, the user- corrected text to the memorized initially edited text to identify one or more error types to have been corrected by the user.
21 . The method of claim 17, wherein the application of a particular weighting to particular error types is performed in response to a predetermined number of occurrences of a particular error type occurring in the period of time.
22. The method of claim 17, wherein the application of a particular weighting to a particular error type is performed by increasing the weighting associated with that particular error type and decreasing the weighting associated with other error types in response to a predetermined number of occurrences of that particular error type over the period of time.
23. The method of claim 17, wherein the prioritization of the provision of error correction in text entry is based on the applied weighting for particular error types.
24. The method of claim 17, wherein the monitoring of error types in text entry is based on user feedback to prioritized provision of error correction.
25. The method of claim 17, wherein the prioritization of the provision of error correction comprises:
generating a plurality of alternative error correction suggestions in response to text entry; and
determining respective prioritization values for the suggestions based on the weighted error types to allow for prioritization of the error correction suggestions.
26. The method of claim 17, wherein the method comprises providing one or more of the prioritized error correction suggestions.
27. The method of claim 17, wherein the method comprises:
identifying the frequency of occurrence of error types based on user response to prioritized provision of error correction for text entry.
28. The method of claim 17, wherein the method comprises:
storing, for one or more separate users, the applied error type weightings as a text entry error profile for said respective user(s).
29. The method of claim 17, wherein the period of time over which the error types in text entry are monitored is performed is one or more of:
complete history, partial history, starts from a given date, a rolling time period.
30. The method of claim 17, wherein the monitoring of error types in text entry over a period of time is performed for a particular text entry user interface.
31 . Computer readable medium comprising computer program code stored thereon, the computer program code being configured to, when run on a processor, perform at least:
monitoring error types in text entry over a period of time;
applying a particular weighting to a particular error type according to the frequency of occurrence of the particular error type over the period of time, the applied weighting for particular error types allowing for prioritization of the provision of error correction in text entry.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/FI2010/050985 WO2012072854A1 (en) | 2010-12-01 | 2010-12-01 | Error monitoring |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/FI2010/050985 WO2012072854A1 (en) | 2010-12-01 | 2010-12-01 | Error monitoring |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012072854A1 true WO2012072854A1 (en) | 2012-06-07 |
Family
ID=46171229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FI2010/050985 WO2012072854A1 (en) | 2010-12-01 | 2010-12-01 | Error monitoring |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2012072854A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090341A (en) * | 2019-12-24 | 2020-05-01 | 科大讯飞股份有限公司 | Input method candidate result display method, related equipment and readable storage medium |
CN113435187A (en) * | 2021-06-24 | 2021-09-24 | 湖北大学 | Text error correction method and system for industrial alarm information |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4797855A (en) * | 1987-01-06 | 1989-01-10 | Smith Corona Corporation | Word processor having spelling corrector adaptive to operator error experience |
JPH0471064A (en) * | 1990-07-12 | 1992-03-05 | Toshiba Corp | Device for forming and editing document |
JPH04215174A (en) * | 1990-12-12 | 1992-08-05 | Osaka Gas Co Ltd | Key input device for japanese language |
JPH04245319A (en) * | 1991-01-30 | 1992-09-01 | Omron Corp | Input error corrector |
JPH04257965A (en) * | 1991-02-13 | 1992-09-14 | Nippon Telegr & Teleph Corp <Ntt> | Character corrector |
JPH05266007A (en) * | 1992-03-17 | 1993-10-15 | Toshiba Corp | Document producing/editing device |
EP0635795A2 (en) * | 1993-07-12 | 1995-01-25 | International Business Machines Corporation | Method and computer system for detecting error strings in a text |
JPH07105217A (en) * | 1993-10-08 | 1995-04-21 | Sharp Corp | Automatic correcting device for input character |
US6618697B1 (en) * | 1999-05-14 | 2003-09-09 | Justsystem Corporation | Method for rule-based correction of spelling and grammar errors |
EP1975808A1 (en) * | 2007-03-30 | 2008-10-01 | Research In Motion Limited | Spell check function having a character replacement spell check algorithm that applies a preference based upon proximity of the characters replacing one another, and associated handheld electronic device |
-
2010
- 2010-12-01 WO PCT/FI2010/050985 patent/WO2012072854A1/en active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4797855A (en) * | 1987-01-06 | 1989-01-10 | Smith Corona Corporation | Word processor having spelling corrector adaptive to operator error experience |
JPH0471064A (en) * | 1990-07-12 | 1992-03-05 | Toshiba Corp | Device for forming and editing document |
JPH04215174A (en) * | 1990-12-12 | 1992-08-05 | Osaka Gas Co Ltd | Key input device for japanese language |
JPH04245319A (en) * | 1991-01-30 | 1992-09-01 | Omron Corp | Input error corrector |
JPH04257965A (en) * | 1991-02-13 | 1992-09-14 | Nippon Telegr & Teleph Corp <Ntt> | Character corrector |
JPH05266007A (en) * | 1992-03-17 | 1993-10-15 | Toshiba Corp | Document producing/editing device |
EP0635795A2 (en) * | 1993-07-12 | 1995-01-25 | International Business Machines Corporation | Method and computer system for detecting error strings in a text |
JPH07105217A (en) * | 1993-10-08 | 1995-04-21 | Sharp Corp | Automatic correcting device for input character |
US6618697B1 (en) * | 1999-05-14 | 2003-09-09 | Justsystem Corporation | Method for rule-based correction of spelling and grammar errors |
EP1975808A1 (en) * | 2007-03-30 | 2008-10-01 | Research In Motion Limited | Spell check function having a character replacement spell check algorithm that applies a preference based upon proximity of the characters replacing one another, and associated handheld electronic device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090341A (en) * | 2019-12-24 | 2020-05-01 | 科大讯飞股份有限公司 | Input method candidate result display method, related equipment and readable storage medium |
CN113435187A (en) * | 2021-06-24 | 2021-09-24 | 湖北大学 | Text error correction method and system for industrial alarm information |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11640503B2 (en) | Input method, input device and apparatus for input | |
US9836448B2 (en) | Text editing | |
US20130002553A1 (en) | Character entry apparatus and associated methods | |
RU2424547C2 (en) | Word prediction | |
CN101840300B (en) | For receiving the method and system of the Text Input on touch-sensitive display device | |
US8255204B2 (en) | Character input apparatus, character input assist method, and character input assist program | |
US20080182599A1 (en) | Method and apparatus for user input | |
CN102362252A (en) | System and method for touch-based text entry | |
US8810581B2 (en) | Character input method | |
CN107918496B (en) | Input error correction method and device for input error correction | |
US20090170536A1 (en) | Automatic language selection for text input in messaging context | |
CN101221576B (en) | Input method and device capable of implementing automatic translation | |
US20100302163A1 (en) | Data entry system | |
JP2012168939A (en) | Information input device | |
CN101137954A (en) | Method of and device for predictive text editing | |
NZ564249A (en) | Data entry system | |
EP2951727A2 (en) | Character and word level language models for out-of-vocabulary text input | |
US20140164981A1 (en) | Text entry | |
CN103455165B (en) | Touchscreen keyboard with corrective word prediction | |
WO2014205232A1 (en) | Language input method editor to disambiguate ambiguous phrases via diacriticization | |
US8421651B2 (en) | Mobile phone with improved keyboard scanning and component reduction and method | |
CN109545223B (en) | Voice recognition method applied to user terminal and terminal equipment | |
EP2509292A1 (en) | Remote user input | |
WO2012072854A1 (en) | Error monitoring | |
WO2012090027A1 (en) | Language models for input text prediction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10860364 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10860364 Country of ref document: EP Kind code of ref document: A1 |