WO2011042710A1 - System and method for inputting text into electronic devices - Google Patents

System and method for inputting text into electronic devices Download PDF

Info

Publication number
WO2011042710A1
WO2011042710A1 PCT/GB2010/001898 GB2010001898W WO2011042710A1 WO 2011042710 A1 WO2011042710 A1 WO 2011042710A1 GB 2010001898 W GB2010001898 W GB 2010001898W WO 2011042710 A1 WO2011042710 A1 WO 2011042710A1
Authority
WO
WIPO (PCT)
Prior art keywords
text
predictions
category
vector
generating
Prior art date
Application number
PCT/GB2010/001898
Other languages
French (fr)
Inventor
Benjamin Medlock
Jonathan Reynolds
Original Assignee
Touchtype Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Touchtype Ltd filed Critical Touchtype Ltd
Priority to EP10775846.8A priority Critical patent/EP2486470B1/en
Priority to US13/501,087 priority patent/US9046932B2/en
Priority to CN201080051346.4A priority patent/CN102640089B/en
Publication of WO2011042710A1 publication Critical patent/WO2011042710A1/en
Priority to US14/307,308 priority patent/US9424246B2/en
Priority to US15/213,168 priority patent/US10402493B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Definitions

  • the present invention relates generally to a system and method for inputting text into electronic devices.
  • the invention relates to a system and method for the adaptive weighting of text predictions.
  • a dictionary (or plurality of dictionaries) of allowable terms is maintained and, given a particular input sequence, the system chooses a legitimate term (or set of terms) from the dictionary and presents it to the user as a potential completion candidate.
  • the basic dictionary can be augmented with new terms entered by the user, limited by the amount of device memory available.
  • completions are ordered on the basis of usage frequency statistics and in some cases (e.g. eZiText, AdapTxt, TouchPal) using immediate lexical context.
  • the present invention represents a significant enhancement over systems in which text predictions are ordered solely on the basis of recency or frequency. It allows the ordering of predictions to be influenced by high-level characteristics of the text being generated, e.g. topic, genre or authorship.
  • the present invention therefore provides for a more accurate ordering, by a system, of text predictions generated by the system, thereby reducing the user labour element of text input (because the user is less likely to have to scroll through a list of predicted terms, or enter additional characters, to find their intended term).
  • a system which employs a machine learning technique, classification, to make real-time category predictions for sections of text entered by a user.
  • the system uses the category predictions to reorder and/or select the text predictions generated by a text prediction engine.
  • the generated text predictions can then be displayed for user selection to input text into an electronic device.
  • Reordering the text predictions by category predictions offers the advantage of placing predictions that are more likely to be relevant to the current textual topic/genre etc. at the top of a list for display and user selection, thereby facilitating user text input.
  • the category predictions can be graded to give broad category predictions and finer category predictions within those broad categories. For example, sport as a broad category can be split into any number of sub-categories, and these sub-categories can be further divided. If a sub-category of sport is football, this sub-category could be split into further sub-categories such as football clubs, players, managers etc.
  • the system of the present invention can therefore predict accurately, from the user inputted text, a number of categories that this text relates to.
  • the system can then hone the text predictions generated by a text prediction engine (that generates, preferably, context based predictions) by decreasing the probabilities of predictions which are unlikely to occur given the category predictions for the user inputted text.
  • a system for generating text input in a computing device comprising a text prediction engine comprising at least one predictor and configured to receive text input into the device by a user and to generate text predictions using the at least one predictor, a classifier configured to receive the input text and to generate at least one text category prediction, and a weighting module configured to receive the text predictions and the at least one category prediction and to weight the text predictions by the category predictions to generate new text predictions for presentation to the user.
  • the at least one predictor is trained from a text source.
  • the system may comprise a plurality of predictors, each predictor being trained by a separate text source.
  • the plurality of predictors generate concurrently text predictions.
  • the system further comprises a Feature Vector Generator which is configured to generate a feature vector representing the text input into the device by a user by extracting features from the input text, calculating the term frequency-inverse document frequency for each feature in the text input, and normalising the resulting vector to unit length.
  • the Feature Vector Generator is preferably further configured to generate at least one feature vector for the text source or each of the separate text sources by extracting a set of features from the text source, calculating the term frequency-inverse document frequency for each feature in the text source, and normalising the resulting vectors to unit length.
  • the system further comprises a classifier training module which is configured to train the classifier from the feature vectors which have been generated from the text source(s).
  • the text source(s) comprises text data that has been pre-labelled with at least one representative category.
  • the classifier may be a timed aggregate perceptron classifier.
  • the classifier is preferably configured to generate a confidence vector relating to the at least one category.
  • the weighting module is configured to generate a weights vector from the confidence vector.
  • the weighting module generates the weights vector by setting the largest positive value in the confidence vector to 1 , and dividing all other positive values in the confidence vector by the largest positive value in the confidence vector multiplied by a constant factor, and by setting any negative confidence value to zero.
  • the weighting module may be configured to scale the text predictions generated by the text prediction engine by the weights vector to generate the new text predictions.
  • the weighting module is configured to insert the new text predictions into a multimap structure, the structure comprising text predictions mapped to probability values, and to return the p most probable new text predictions.
  • the at least one predictor may be one of a single language model, a multi- language model or an adaptive prediction system.
  • the text prediction engine may comprise at least two predictors, at least one of which is an adaptive prediction system.
  • the at least one adaptive prediction system comprises a second text prediction engine comprising at least one predictor and configured to receive the input text and to generate text predictions using the at least one predictor, a second classifier configured to receive the input text and to generate at least one text category prediction, a second weighting module configured to receive the text predictions from the second text prediction engine and the at least one category prediction from the second classifier and to weight the text predictions by the category predictions to generate new text predictions.
  • the computing device is one of a mobile phone, a PDA or a computer such as a desktop PC, a laptop, a tablet PC, a Mobile Internet Device, an Ultramobile PC, a games console, or an in-car system.
  • the present invention also provides a method of generating text predictions from user text input, the method comprising generating text predictions based upon user text input, generating, based upon the user text input, a set of text category predictions, generating, a set of category-weighted text predictions, and presenting the set of category-weighted text predictions to the user.
  • the method further comprises selecting one of the set of category-weighted text predictions for text input.
  • the predictions are generated by at least one predictor and the method preferably comprises training the at least one predictor based upon a text source.
  • each predictor is trained based upon a separate text source.
  • predictions are generated concurrently by the plurality of predictors.
  • the method further comprises generating a feature vector representing the text input into the device by a user by extracting features from the text input, calculating the term frequency-inverse document frequency for each term in the text input, and normalising the resulting vector to unit length.
  • the method also comprises generating at least one feature vector for the text source or each of the separate text sources by extracting a set of features from the text source, calculating the term frequency-inverse document frequency for each feature in the text source, and normalising the resulting vectors to unit length.
  • the text category predictions are generated by a classifier.
  • the classifier may be a timed aggregate perceptron classifier.
  • the method comprises training the classifier based upon the feature vector generated from the text source(s).
  • the text source(s) comprises text data that has been pre-labelled with at least one representative category.
  • the method comprises inserting the category-weighted text predictions into a multimap structure, the structure comprising category-weighted text predictions mapped to probability values, and returning the p most probable category- weighted text predictions.
  • the step of generating the set of text category predictions may comprise generating a confidence vector relating to the categories.
  • the step of generating the set of text category-weighted predictions may comprise generating a weights vector from the confidence vector.
  • the weights vector may be generated by setting the largest positive value in the confidence vector to 1, and dividing all other positive values in the confidence vector by the largest positive value in the confidence vector multiplied by a constant factor, and by setting any negative confidence value to zero.
  • the step of generating the set of category-weighted predictions may comprise scaling the text predictions generated by the text prediction engine by the weights vector.
  • the step of generating text predictions comprises generating text predictions using at least two predictors.
  • generating text predictions using at least one of the at least two predictors comprises generating text predictions based upon the user text input, generating a second set of text category predictions and generating a set of new text predictions by weighting the text predictions from the second predictor by the second set of category predictions.
  • Fig. 1 is a schematic of an adaptive prediction architecture according to the invention
  • Fig. 2 is a schematic of an example instantiation of the adaptive predictive architecture according to the invention.
  • Fig. 3 is a schematic of a method for generating category-weighted text predictions according to the invention.
  • the present invention provides a modular language model based text prediction system for the adaptive weighting of text prediction components.
  • the system (named an adaptive predictor) utilises a machine learning technique, classification, which is trained on text data that has been pre-labelled with representative categories, and makes realtime category predictions for sections of text entered by a user.
  • the real-time category predictions for sections of user-entered text are used by the system to reorder text predictions that have been generated by the system from the user inputted text.
  • the system is therefore capable of placing the most probable predictions (based on local context, category predictions and information about the current word, if there is one) at the top of a list of text predictions generated for display and user selection, thereby facilitating user selection and text input.
  • the present system can be employed in a broad range of electronic devices.
  • the present system can be used for mobile phone text entry, for text input into a PDA device, or for computer text entry (for example, where a key stroke and means of scrolling can be used to select the relevant prediction or where the device employs touch screen technology).
  • the classifier can be predominately focussed in a specialised
  • a classifier focussed on the topic of sport can comprise many subcategories within sport.
  • a system comprising such a classifier can be used by a sports journalist to facilitate text input (i.e. in the form of an email or word processing document).
  • the system of the present invention could be used in companies or organisations where there is a specialist type of language used (e.g. for legal, financial, or business documents), the classifier being trained on many text sources in that field.
  • the system comprises a plurality of text sources 1, 2, 3, each text source comprising at least one, and preferably a plurality of, documents.
  • Each text source 1 , 2, 3 is a body of electronic text for which there exists a category label referring to some aspect of the nature of the text.
  • the category label could refer to a particular language, to a particular topic (e.g. sport, finance etc.), to a particular genre (e.g. legal, informal, etc.), to a particular author, to a particular recipient or set of recipients, to a particular semantic orientation, or to any other attribute of the text that can be identified.
  • the text sources are used to train one or more predictors 6, 7, 8 and a classifier 9.
  • the system comprises a text prediction engine 100 which includes at least one predictor 6, 7, 8.
  • a predictor can be any prediction component that generates one or more text predictions. Any prior art predictor can therefore be incorporated into the present system.
  • the predictor generates text predictions based on the context of the user inputted text, i.e. the predictor generates text predictions for the nth term, based on n-1 terms of context.
  • Each predictor can be one of a single language model, a multi-language model (where a multi-language model combines predictions sourced from multiple language models to generate a set of predictions), an adaptive prediction model of the type schematically described in figure 1 , or any other type of language model.
  • Each predictor 6, 7, 8 is trained by a text source 1, 2, 3, where each text source is used to train a separate predictor.
  • the system can utilise an arbitrary number of text sources.
  • a predictor returns text predictions 1 1 as a set of terms/phrases mapped to probability values.
  • a thorough description of the use of a predictor (single and multi- language model) to generate text predictions is presented in international patent application PCT/GB2010/000622, claiming priority from UK patent application number 0905457.8, "System and method for inputting text into electronic devices", which is incorporated herein by reference in its entirety.
  • a further thorough description of the use of a predictor (multi model) to generate text predictions is presented in UK patent application number 1016385.5, “System and method for inputting text into electronic devices", which is incorporated herein by reference in its entirety.
  • User inputted text 14 is input into the system.
  • the user inputted text comprises the sequence of text entered by the user from the beginning of the current document up to the current position of the cursor.
  • the raw text 14 is input directly into the prediction engine 100 which utilises information about the current, partially-completed term, as well as preferably the context.
  • the raw text is also input into a Feature Vector Generator 4.
  • the system comprises a Feature Vector Generator 4 which is configured to convert the context terms of the user inputted text 14 (excluding the partially-complete current word) into a feature vector ready for classification.
  • the Feature Vector Generator is also used to generate the feature vectors used to train the classifier (from the text sources).
  • Feature vectors are D-dimensional real-valued vectors R D . Each dimension represents a particular feature used to represent the text.
  • Features are typically individual terms or short phrases (n-grams). Individual term features are extracted from a text sequence by tokenising the sequence into terms (where a term denotes both words and additional orthographic items such as punctuation) and discarding unwanted terms (e.g. terms that have no semantic value such as 'stopwords'). In some cases, features may also be case-normalised, i.e. converted to lower-case. N-gram features are generated by concatenating adjacent terms into atomic entities. For example, given the text sequence "Dear special friends", the individual term features would be: “Dear”, “special” and “friends”, while the Digram (2-gram) features would be “Dear special” and "special friends”.
  • the value D of the vector space is governed by the total number of features used in the model, typically upwards of 10,000 for a real-world classification problem.
  • the Feature Vector Generator 4 is configured to convert a discrete section of text (e.g. an individual document / email etc.) into a vector by weighting each cell according to a value related to the frequency of occurrence of that term in the given text section, normalised by the inverse of its frequency of occurrence across the entire body of text.
  • the formula for carrying out this weighting is known as TF-IDF, and stands for term frequency-inverse document frequency. It is defined as:
  • tf(t) is the number of times term t occurs in the current document (or email, etc.)
  • df(t) is the number of documents in which t occurs across the whole collection, i.e. all text sources.
  • Each vector is then normalised to unit length by the Feature Vector Generator 4.
  • the Feature Vector Generator 4 is configured to split user inputted text into features (typically individual words or short phrases) and to generate a feature vector from the features.
  • the feature vector is passed to a classifier (which uses the feature vector to generate category predictions).
  • the system comprises a classifier 9.
  • the classifier 9 is trained by a training module 5 using the text sources 1, 2, 3, passed through the Feature Vector Generator 4.
  • the classifier is therefore trained by a body of electronic text which has been pre- labelled with representative categories and converted into a plurality of feature vectors.
  • a trained classifier 9 takes as input a feature vector that has been generated by a Feature Vector Generator from sections of text received from a user 14, and yields category predictions 10, comprising a set of categories mapped to probability values, as an output.
  • the category predictions 10 are drawn from the space of categories defined by the labels on the text sources 1 , 2, 3.
  • the present classifier is based on the batch perceptron principle where, during training, a weights vector is updated in the direction of all misclassified instances simultaneously, although any suitable classifier may be utilised.
  • the classifier is preferably a timed aggregate perceptron (TAP) classifier 9.
  • TAP timed aggregate perceptron
  • the TAP classifier 9 is natively a binary (2-class) classification model. To handle multi-class problems a one-versus-all scheme is utilised, in which a classifier is trained for each category against all other categories. For example, given the three categories of Sport, Finance and Politics, three individual TAP classifiers would be trained:
  • a classifier training module 5 carries out the training process as already mentioned.
  • the training module 5 yields a weights vector for each classifier, which can be denoted by:
  • the TAP training procedure Given a set of N sample vectors of dimensionality D, paired with target labels j,) the TAP training procedure returns an optimized weights vector .
  • the prediction for a new sample x e R D is given by:
  • the class-normalised empirical loss at training iteration t falls within the range ) and is defined by:
  • a margin of perpendicular to the decision boundary is required for correct classification of training samples.
  • an aggregate vector a is constructed by summing all misclassified samples and normalising:
  • norm ( , T) normalises v to magnitude T and Q is the set of misclassified samples at iteration t, with
  • the timing variable T is set to 1 at the start of the procedure and gradually diminishes, governed by the following expression: r is the timing rapidity hyperparameter and can be manually adjusted to tune the performance of the classifier. Its default value is 1. b is a measure of the balance of the training distribution sizes, calculated by:
  • Termination occurs when either the timing variable or the empirical loss reaches zero. How well the TAP solution fits the training data is governed by the rapidity of the timing schedule; earlier stopping leads to a more approximate fit.
  • a modified form of the classification expression (I) is used without the sign function to yield a confidence value for each classifier, resulting in an -dimensional vector of confidence values, where is the number of categories. So, for instance, given a new, unseen text section represented by vector* e K D the following confidence vector would be generated:
  • the system further comprises a weighting module 12.
  • the weighting module 12 uses the category predictions 10 generated by the classifier 9 to weight text predictions
  • the weight assigned to predictions 1 1 from each predictor 6, 7, 8 is governed by the distribution of confidence values assigned by the classifier 9.
  • the weighting module 12 uses the vector of confidence values generated by the classifier 9 to weight predictions 1 1 from the respective prediction components 6, 7, 8 to generate category- weighted predictions 13.
  • a particular weighting module 12 may reside within an adaptive predictor that exists at an upper level in a hierarchical prediction structure (as discussed later), and the probabilities that are output may be involved in an arbitrary number of subsequent comparisons. Consequently, it is important that the weighting module 12 respects the absolute probabilities assigned to a set of predictions, so as not to spuriously skew future comparisons. Thus, the weighting module 12 always leaves predictions 1 1 from the most likely prediction component unchanged, and down-scales less likely components proportionally.
  • the weighting module Using the confidence vector obtained from the classifier 9, the weighting module
  • the 12 constructs a corresponding M-dimensional weights vector which is used to scale the predictions 1 1 from the M prediction components.
  • the decision boundary for class membership is 0.
  • the corresponding cells in the weights vector are set to 0.
  • the element of the weights vector that corresponds to the highest positive valued confidence element is assigned a weight of 1 , and the remaining weights are scaled relative to the differences between the positive confidence values.
  • the algorithm for constructing a weights vector from a confidence vector is as follows:
  • Weights are then calculated using: This applies to all positive confidence values except for the highest.
  • the weighting module 12 scales the predictions 11 from each of the constituent prediction components according to the values in the corresponding cells of the weights vector, to generate a set of category-weighted text predictions.
  • the weighting module 12 is configured to insert the category-weighted text predictions into a 'multimap' structure to return the p most probable terms as the final text predictions 13.
  • a multimap is a map or associative array in which more than one value may be associated with and returned from a given key.
  • the multimap is an STL multimap in which an associative key- value pair is held in a binary tree structure, in which duplicate keys are allowed.
  • the multimap can be used to store a sequence of elements as an ordered tree of nodes, each storing one element.
  • An element consists of a key, for ordering the sequence, and a mapped value.
  • a prediction is a string value mapped to a probability value, and the map is ordered on the basis of the probabilities, i.e. the probability values are used as keys in the multimap and the strings as values.
  • the weighting module inserts these weighted predictions into a multimap ((0.1 ⁇ “an”), (0.2 ⁇ “a”), (0.2 ⁇ “these”), (0.3— “the”)), which is then read in reverse to obtain a set of final predictions.
  • the final predictions 13 generated by the weighting module 12 can be outputted to a display of the system for user selection, to input text into an electronic device.
  • the selected prediction is then part of the user inputted text 14 used to generate a new set of predictions 13 for display and user selection.
  • Figure 1 is a block diagram of an adaptive prediction architecture according to the invention.
  • a user inputs text 14 into the system.
  • This text input 14 is passed to the text prediction engine 100 and to the Feature Vector Generator 4.
  • the Feature Vector Generator 4 converts the user inputted text 14 into a feature vector and passes this feature vector to the classifier 9.
  • the text prediction engine 100 generates, using at least one predictor, at least two text predictions 11 based on the input text 14.
  • a predictor being a multi- language model
  • the predictions from each of the language models (within the multi- language model) are combined by inserting the predictions into an STL multimap structure and returning the p most probable values.
  • the resulting set of text predictions 1 1 is passed to the weighting module 12.
  • the TAP classifier 9 uses the feature vector to generate M category predictions 10 (which comprises an M-dimensional confidence vector, where there are M categories represented in the pre-labelled text sources).
  • the category predictions are passed to the weighting module 12.
  • the weighting module 12 generates an M-dimensional weights vector from the M-dimensional confidence vector of the category predictions 10 and uses the weights vector to scale the text predictions 1 1 from the M predictors of the text prediction engine, thereby generating category-weighted text predictions.
  • the category-weighted text predictions are inserted, by the weighting module, into a multimap and the p most probable predictions 13 are returned to the user of the system for selection and text input.
  • the predictions can be displayed in a list format, with the most probable term at the top or end of the list.
  • a prediction that is selected by the user for input into the system becomes the next section of user inputted text 14.
  • the system uses this inputted text 14, preferably along with one or more previously inputted text sections, to generate new text predictions 13 for user display and selection.
  • a predictor 6, 7, 8 can be an adaptive predictive system, such as that described in figure 1.
  • the present system therefore defines a recursive framework that allows an arbitrary number of adaptive predictors to be structured in hierarchy.
  • Figure 2 schematically shows the adaptive prediction architecture of claim 1, where one of the predictors 26, 27, 28 of the text prediction engine 200 is an adaptive predictor 26.
  • Each of the predictors 46, 47, 48 within this adaptive predictor 26 can be a single language model, a multi-language model or an adaptive prediction model.
  • the adaptive prediction architecture defines a recursive framework that allows an arbitrary number of adaptive predictors to be structured in hierarchy.
  • Figure 2 which schematically describes an example of a two-level adaptive prediction hierarchy, is for illustrative purposes only. It is one of an infinite number of potential structures within the adaptive prediction framework according to the invention.
  • three text sources 21 , 22, 23 are used, representing three topics: sport, finance and politics. These sources and their respective categories are passed through the Feature Vector Generator 24 to the TAP training module 25 to yield a 3- class TAP classifier 29.
  • the text sources 22, 23 representing the finance and politics categories are used to train single language models 27, 28 while the text source representing sport 21 is used to train an adaptive predictor 26.
  • the sport text source is split into three subcategories: football 41, golf 42 and racing 43. These are passed through a second-level Feature Vector Generator 44 to the second-level TAP classifier training module 45 to produce a second 3 -class TAP classifier 49. Additionally, each sub-category text source 41, 42, 43 is used to train a respective single language model 46, 47, 48.
  • the user text input 34 is passed to both first-level 29 and second-level 49 TAP classifiers to generate first-level 30 and second-level 50 category predictions.
  • the first-level category predictions 30 are used by the first-level weighting module 32 to weight the predictions 33 generated by the first-level prediction engine 200, whilst the second-level category predictions 50 are used by the second-level weighting module 52 to weight predictions 51 from the second-level prediction engine 400.
  • the second-level category-weighted predictions 53 are treated as a set of text predictions from a first-level prediction component 26 of a first-level prediction engine 200.
  • the second-level category-weighted predictions 53 are therefore scaled (by the first-level weighting module 32) using a first-level weights vector (based on first-level category predictions 30).
  • the first step comprises receipt of user text input 14 and the generation of text predictions 1 1 from the user inputted text 13.
  • the method further comprises the formatting of the user inputted text by a Feature Vector Generator 4 which converts the text into a feature vector.
  • the method comprises generating, using a classifier 9, a confidence vector relating to the categories present in pre-labelled source text(s) 1, 2 ,3.
  • the method further comprises generating, using a weighting module 12, a weights vector from the confidence vector and scaling (using the weighting module) the text predictions 1 1 by the weights vector to generate a final set of text predictions 13. If the predictors 6, 7, 8 and classifier 9 have not been trained, the method further comprises training at least one predictor and a classifier from at least one source text.
  • This input text 34 is passed to the first-level text prediction text engine 200 and the second-level text prediction engine 400 to generate first-level text predictions 31 and second-level text predictions 51.
  • the input text 34 is also passed to both the first-level TAP classifier 29 and the second-level TAP classifier 49 after being preprocessed into the TAP input format described above. Each classifier 29, 49 yields a three-element confidence vector.
  • the input text 34 is also passed to the first-level text prediction text engine 200 and the second-level text prediction engine 400 to generate first-level text predictions 31 and second-level text predictions 51.
  • the first-level classifier 29 distinguishes between the categories sport, finance and politics, and would yield a first-level confidence vector, such as the following:
  • first element corresponds to sport, the second to finance, and the third to politics. This would be converted into the following first-level weights vector by the first-level weighting module (in according to the procedure described above):
  • the second-level classifier 49 distinguishes between the sub-categories football, golf and racing, and would yield a second-level confidence vector such as the following:
  • the finance and politics first level predictors would yield predictions 31 such as the following (bearing in mind the local context - "The first ”): while the sport constituent (adaptive predictor) would yield three sets of internal predictions 51 , one for each sub-category:
  • the first level weights vector w is applied to the predictions from the three first- level prediction components to yield the following:
  • the final predictions 13 are outputted to a display of the system for user selection, to input text 14 into an electronic device.
  • the predicted term selected by the user is input into the electronic device and is used by the system to predict a further set of text predictions 13 for display and user selection.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The present invention relates generally to a system and method for text prediction and, in particular, a system and method for the adaptive weighting of text predictions. The present invention provides a modular language model-based text prediction system for the adaptive weighting of text prediction components and a method for doing so. The system uses category predictions, generated by a timed aggregated perceptron classifier, to weight, using a weighting module, text predictions generated by a text prediction engine comprising at least one predictor.

Description

System and method for inputting text into electronic devices
The present invention relates generally to a system and method for inputting text into electronic devices. In particular, the invention relates to a system and method for the adaptive weighting of text predictions.
There currently exists a wide range of text input techniques for use with electronic devices, for example, QWERTY-style keyboards for text input into a computer or laptop, handwriting recognition in the PDA market, alphabetic character entry using a 9-digit keypad for mobile phone devices, speech recognition text input systems for both standard and mobile computational devices, and touch-screen devices.
In the case of mobile phone technology there are a number of existing text input technologies. Notable examples include Tegic Communications' T9', Motorola's 'iTap', Nuance's 'XT9', 'eZiType' and 'eZiText', Blackberry's 'SureType', eyPoint Technology's 'AdapTxt' and CooTek's 'TouchPaF. These techniques comprise predominantly character-based text input and utilise some form of text prediction (or disambiguation) technology. In each of the identified models, a dictionary (or plurality of dictionaries) of allowable terms is maintained and, given a particular input sequence, the system chooses a legitimate term (or set of terms) from the dictionary and presents it to the user as a potential completion candidate. The basic dictionary can be augmented with new terms entered by the user, limited by the amount of device memory available.
In these systems, completions are ordered on the basis of usage frequency statistics and in some cases (e.g. eZiText, AdapTxt, TouchPal) using immediate lexical context.
The present invention represents a significant enhancement over systems in which text predictions are ordered solely on the basis of recency or frequency. It allows the ordering of predictions to be influenced by high-level characteristics of the text being generated, e.g. topic, genre or authorship. The present invention therefore provides for a more accurate ordering, by a system, of text predictions generated by the system, thereby reducing the user labour element of text input (because the user is less likely to have to scroll through a list of predicted terms, or enter additional characters, to find their intended term).
In accordance with the present invention there is provided a system which employs a machine learning technique, classification, to make real-time category predictions for sections of text entered by a user. The system uses the category predictions to reorder and/or select the text predictions generated by a text prediction engine. The generated text predictions can then be displayed for user selection to input text into an electronic device.
Reordering the text predictions by category predictions offers the advantage of placing predictions that are more likely to be relevant to the current textual topic/genre etc. at the top of a list for display and user selection, thereby facilitating user text input. The category predictions can be graded to give broad category predictions and finer category predictions within those broad categories. For example, sport as a broad category can be split into any number of sub-categories, and these sub-categories can be further divided. If a sub-category of sport is football, this sub-category could be split into further sub-categories such as football clubs, players, managers etc. The system of the present invention can therefore predict accurately, from the user inputted text, a number of categories that this text relates to. The system can then hone the text predictions generated by a text prediction engine (that generates, preferably, context based predictions) by decreasing the probabilities of predictions which are unlikely to occur given the category predictions for the user inputted text.
In accordance with the present invention there is provided a system for generating text input in a computing device, the system comprising a text prediction engine comprising at least one predictor and configured to receive text input into the device by a user and to generate text predictions using the at least one predictor, a classifier configured to receive the input text and to generate at least one text category prediction, and a weighting module configured to receive the text predictions and the at least one category prediction and to weight the text predictions by the category predictions to generate new text predictions for presentation to the user.
Preferably, the at least one predictor is trained from a text source. The system may comprise a plurality of predictors, each predictor being trained by a separate text source. Preferably, the plurality of predictors generate concurrently text predictions.
In an embodiment of the invention, the system further comprises a Feature Vector Generator which is configured to generate a feature vector representing the text input into the device by a user by extracting features from the input text, calculating the term frequency-inverse document frequency for each feature in the text input, and normalising the resulting vector to unit length. The Feature Vector Generator is preferably further configured to generate at least one feature vector for the text source or each of the separate text sources by extracting a set of features from the text source, calculating the term frequency-inverse document frequency for each feature in the text source, and normalising the resulting vectors to unit length.
In a preferred embodiment the system further comprises a classifier training module which is configured to train the classifier from the feature vectors which have been generated from the text source(s). Preferably, the text source(s) comprises text data that has been pre-labelled with at least one representative category. The classifier may be a timed aggregate perceptron classifier. The classifier is preferably configured to generate a confidence vector relating to the at least one category. In a preferred embodiment, the weighting module is configured to generate a weights vector from the confidence vector. Preferably, the weighting module generates the weights vector by setting the largest positive value in the confidence vector to 1 , and dividing all other positive values in the confidence vector by the largest positive value in the confidence vector multiplied by a constant factor, and by setting any negative confidence value to zero. The weighting module may be configured to scale the text predictions generated by the text prediction engine by the weights vector to generate the new text predictions. Preferably, the weighting module is configured to insert the new text predictions into a multimap structure, the structure comprising text predictions mapped to probability values, and to return the p most probable new text predictions. The at least one predictor may be one of a single language model, a multi- language model or an adaptive prediction system. The text prediction engine may comprise at least two predictors, at least one of which is an adaptive prediction system. In this embodiment, the at least one adaptive prediction system comprises a second text prediction engine comprising at least one predictor and configured to receive the input text and to generate text predictions using the at least one predictor, a second classifier configured to receive the input text and to generate at least one text category prediction, a second weighting module configured to receive the text predictions from the second text prediction engine and the at least one category prediction from the second classifier and to weight the text predictions by the category predictions to generate new text predictions.
Preferably, the computing device is one of a mobile phone, a PDA or a computer such as a desktop PC, a laptop, a tablet PC, a Mobile Internet Device, an Ultramobile PC, a games console, or an in-car system.
The present invention also provides a method of generating text predictions from user text input, the method comprising generating text predictions based upon user text input, generating, based upon the user text input, a set of text category predictions, generating, a set of category-weighted text predictions, and presenting the set of category-weighted text predictions to the user. Preferably, the method further comprises selecting one of the set of category-weighted text predictions for text input.
The predictions are generated by at least one predictor and the method preferably comprises training the at least one predictor based upon a text source. In an embodiment comprising a plurality of predictors, each predictor is trained based upon a separate text source. Preferably, predictions are generated concurrently by the plurality of predictors. In an embodiment, the method further comprises generating a feature vector representing the text input into the device by a user by extracting features from the text input, calculating the term frequency-inverse document frequency for each term in the text input, and normalising the resulting vector to unit length. Preferably, the method also comprises generating at least one feature vector for the text source or each of the separate text sources by extracting a set of features from the text source, calculating the term frequency-inverse document frequency for each feature in the text source, and normalising the resulting vectors to unit length. Preferably, the text category predictions are generated by a classifier. The classifier may be a timed aggregate perceptron classifier. Preferably, the method comprises training the classifier based upon the feature vector generated from the text source(s). Preferably, the text source(s) comprises text data that has been pre-labelled with at least one representative category.
In an embodiment, the method comprises inserting the category-weighted text predictions into a multimap structure, the structure comprising category-weighted text predictions mapped to probability values, and returning the p most probable category- weighted text predictions.
The step of generating the set of text category predictions may comprise generating a confidence vector relating to the categories. The step of generating the set of text category-weighted predictions may comprise generating a weights vector from the confidence vector. The weights vector may be generated by setting the largest positive value in the confidence vector to 1, and dividing all other positive values in the confidence vector by the largest positive value in the confidence vector multiplied by a constant factor, and by setting any negative confidence value to zero. The step of generating the set of category-weighted predictions may comprise scaling the text predictions generated by the text prediction engine by the weights vector.
In an embodiment, the step of generating text predictions comprises generating text predictions using at least two predictors. Preferably, generating text predictions using at least one of the at least two predictors comprises generating text predictions based upon the user text input, generating a second set of text category predictions and generating a set of new text predictions by weighting the text predictions from the second predictor by the second set of category predictions. The present invention will now be described in detail with reference to the accompanying drawings, in which:
Fig. 1 is a schematic of an adaptive prediction architecture according to the invention;
Fig. 2 is a schematic of an example instantiation of the adaptive predictive architecture according to the invention;
Fig. 3 is a schematic of a method for generating category-weighted text predictions according to the invention.
The present invention provides a modular language model based text prediction system for the adaptive weighting of text prediction components. The system (named an adaptive predictor) utilises a machine learning technique, classification, which is trained on text data that has been pre-labelled with representative categories, and makes realtime category predictions for sections of text entered by a user.
As stated above, the real-time category predictions for sections of user-entered text are used by the system to reorder text predictions that have been generated by the system from the user inputted text. The system is therefore capable of placing the most probable predictions (based on local context, category predictions and information about the current word, if there is one) at the top of a list of text predictions generated for display and user selection, thereby facilitating user selection and text input. The present system can be employed in a broad range of electronic devices. By way of non-limiting example, the present system can be used for mobile phone text entry, for text input into a PDA device, or for computer text entry (for example, where a key stroke and means of scrolling can be used to select the relevant prediction or where the device employs touch screen technology).
The classifier can be predominately focussed in a specialised
topic/genre/authorship , etc., to facilitate text input for that given topic/genre/authorship , etc. For example, a classifier focussed on the topic of sport can comprise many subcategories within sport. A system comprising such a classifier can be used by a sports journalist to facilitate text input (i.e. in the form of an email or word processing document). Similarly, the system of the present invention could be used in companies or organisations where there is a specialist type of language used (e.g. for legal, financial, or business documents), the classifier being trained on many text sources in that field.
The system of the present invention is schematically shown in figure 1. The elements of the system will now be described with reference to this figure.
The system comprises a plurality of text sources 1, 2, 3, each text source comprising at least one, and preferably a plurality of, documents. Each text source 1 , 2, 3 is a body of electronic text for which there exists a category label referring to some aspect of the nature of the text. The category label could refer to a particular language, to a particular topic (e.g. sport, finance etc.), to a particular genre (e.g. legal, informal, etc.), to a particular author, to a particular recipient or set of recipients, to a particular semantic orientation, or to any other attribute of the text that can be identified. The text sources are used to train one or more predictors 6, 7, 8 and a classifier 9. The system comprises a text prediction engine 100 which includes at least one predictor 6, 7, 8. A predictor can be any prediction component that generates one or more text predictions. Any prior art predictor can therefore be incorporated into the present system. Preferably, the predictor generates text predictions based on the context of the user inputted text, i.e. the predictor generates text predictions for the nth term, based on n-1 terms of context. Each predictor can be one of a single language model, a multi-language model (where a multi-language model combines predictions sourced from multiple language models to generate a set of predictions), an adaptive prediction model of the type schematically described in figure 1 , or any other type of language model. Each predictor 6, 7, 8 is trained by a text source 1, 2, 3, where each text source is used to train a separate predictor. The system can utilise an arbitrary number of text sources. A predictor returns text predictions 1 1 as a set of terms/phrases mapped to probability values. A thorough description of the use of a predictor (single and multi- language model) to generate text predictions is presented in international patent application PCT/GB2010/000622, claiming priority from UK patent application number 0905457.8, "System and method for inputting text into electronic devices", which is incorporated herein by reference in its entirety. A further thorough description of the use of a predictor (multi model) to generate text predictions is presented in UK patent application number 1016385.5, "System and method for inputting text into electronic devices", which is incorporated herein by reference in its entirety.
User inputted text 14 is input into the system. The user inputted text comprises the sequence of text entered by the user from the beginning of the current document up to the current position of the cursor. The raw text 14 is input directly into the prediction engine 100 which utilises information about the current, partially-completed term, as well as preferably the context. The raw text is also input into a Feature Vector Generator 4. The system comprises a Feature Vector Generator 4 which is configured to convert the context terms of the user inputted text 14 (excluding the partially-complete current word) into a feature vector ready for classification. The Feature Vector Generator is also used to generate the feature vectors used to train the classifier (from the text sources). Feature vectors are D-dimensional real-valued vectors RD . Each dimension represents a particular feature used to represent the text. Features are typically individual terms or short phrases (n-grams). Individual term features are extracted from a text sequence by tokenising the sequence into terms (where a term denotes both words and additional orthographic items such as punctuation) and discarding unwanted terms (e.g. terms that have no semantic value such as 'stopwords'). In some cases, features may also be case-normalised, i.e. converted to lower-case. N-gram features are generated by concatenating adjacent terms into atomic entities. For example, given the text sequence "Dear special friends", the individual term features would be: "Dear", "special" and "friends", while the Digram (2-gram) features would be "Dear special" and "special friends".
The value D of the vector space is governed by the total number of features used in the model, typically upwards of 10,000 for a real-world classification problem. The Feature Vector Generator 4 is configured to convert a discrete section of text (e.g. an individual document / email etc.) into a vector by weighting each cell according to a value related to the frequency of occurrence of that term in the given text section, normalised by the inverse of its frequency of occurrence across the entire body of text. The formula for carrying out this weighting is known as TF-IDF, and stands for term frequency-inverse document frequency. It is defined as:
Figure imgf000011_0001
where tf(t) is the number of times term t occurs in the current document (or email, etc.), and df(t) is the number of documents in which t occurs across the whole collection, i.e. all text sources. Each vector is then normalised to unit length by the Feature Vector Generator 4.
The Feature Vector Generator 4 is configured to split user inputted text into features (typically individual words or short phrases) and to generate a feature vector from the features. The feature vector is passed to a classifier (which uses the feature vector to generate category predictions).
The system comprises a classifier 9. The classifier 9 is trained by a training module 5 using the text sources 1, 2, 3, passed through the Feature Vector Generator 4. The classifier is therefore trained by a body of electronic text which has been pre- labelled with representative categories and converted into a plurality of feature vectors. A trained classifier 9 takes as input a feature vector that has been generated by a Feature Vector Generator from sections of text received from a user 14, and yields category predictions 10, comprising a set of categories mapped to probability values, as an output. The category predictions 10 are drawn from the space of categories defined by the labels on the text sources 1 , 2, 3. The present classifier is based on the batch perceptron principle where, during training, a weights vector is updated in the direction of all misclassified instances simultaneously, although any suitable classifier may be utilised. The classifier is preferably a timed aggregate perceptron (TAP) classifier 9. The TAP classifier 9 is natively a binary (2-class) classification model. To handle multi-class problems a one-versus-all scheme is utilised, in which a classifier is trained for each category against all other categories. For example, given the three categories of Sport, Finance and Politics, three individual TAP classifiers would be trained:
1 ) Sport vs. Finance and Politics
2) Finance vs. Sport and Politics
3) Politics vs. Sport and Finance
A classifier training module 5 carries out the training process as already mentioned. The training module 5 yields a weights vector for each classifier, which can be denoted by:
1) Sport: ws
2) Finance:
3) Politics: wp
Given a set of N sample vectors of dimensionality D, paired with target labels j,) the TAP training procedure returns an optimized weights vector
Figure imgf000012_0003
. The prediction for a new sample x e RD is given by:
Figure imgf000012_0002
where the sign function converts an arbitrary real number to +/-1 based on its sign. The default decision boundary lies along the unbiased hyperplane w x = 0 , though a threshold can easily be introduced to adjust the bias.
The class-normalised empirical loss at training iteration t falls within the range ) and is defined by:
Figure imgf000012_0001
where Q, denotes the set of misclassified samples at the r* training iteration, N denotes the total number of training samples in a given class, and +/- denotes class specificity. The misclassification condition is given by:
Figure imgf000013_0004
A margin of perpendicular to the decision boundary is required for correct classification of training samples.
At each iteration, an aggregate vector a, is constructed by summing all misclassified samples and normalising:
Figure imgf000013_0001
where norm ( , T) normalises v to magnitude T and Q, is the set of misclassified samples at iteration t, with
The timing variable T is set to 1 at the start of the procedure and gradually diminishes, governed by the following expression:
Figure imgf000013_0002
r is the timing rapidity hyperparameter and can be manually adjusted to tune the performance of the classifier. Its default value is 1. b is a measure of the balance of the training distribution sizes, calculated by:
Figure imgf000013_0003
with an upper bound of 0.5 representing perfect balance. Termination occurs when either the timing variable or the empirical loss reaches zero. How well the TAP solution fits the training data is governed by the rapidity of the timing schedule; earlier stopping leads to a more approximate fit.
In the present invention, preferably, a modified form of the classification expression (I) is used without the sign function to yield a confidence value for each classifier, resulting in an -dimensional vector of confidence values, where is the number of categories. So, for instance, given a new, unseen text section represented by vector* e KD the following confidence vector
Figure imgf000014_0002
would be generated:
Figure imgf000014_0001
To optimise the performance of the TAP classifier 9 on a particular dataset, the timing rapidity hyperparameter r is experimentally tuned. The system further comprises a weighting module 12. The weighting module 12 uses the category predictions 10 generated by the classifier 9 to weight text predictions
1 1 generated by the text prediction engine 100. The weight assigned to predictions 1 1 from each predictor 6, 7, 8 is governed by the distribution of confidence values assigned by the classifier 9. The weighting module 12 uses the vector of confidence values generated by the classifier 9 to weight predictions 1 1 from the respective prediction components 6, 7, 8 to generate category- weighted predictions 13.
A particular weighting module 12 may reside within an adaptive predictor that exists at an upper level in a hierarchical prediction structure (as discussed later), and the probabilities that are output may be involved in an arbitrary number of subsequent comparisons. Consequently, it is important that the weighting module 12 respects the absolute probabilities assigned to a set of predictions, so as not to spuriously skew future comparisons. Thus, the weighting module 12 always leaves predictions 1 1 from the most likely prediction component unchanged, and down-scales less likely components proportionally.
Using the confidence vector obtained from the classifier 9, the weighting module
12 constructs a corresponding M-dimensional weights vector which is used to scale the predictions 1 1 from the M prediction components. In the TAP model, the decision boundary for class membership is 0. Thus, if a particular cell in the confidence vector is negative, it is an indication that the classifier has assigned low likelihood to the hypothesis that the text is of that category. In this case, the corresponding cells in the weights vector are set to 0. In practice, predictions from components with zero-valued weights will be effectively filtered out.
The element of the weights vector that corresponds to the highest positive valued confidence element is assigned a weight of 1 , and the remaining weights are scaled relative to the differences between the positive confidence values.
The algorithm for constructing a weights vector from a confidence vector is as follows:
For each positive confidence value c; and corresponding weights value wt :
if c < 0then w = 0
Figure imgf000015_0001
For instance, using the above 3-class example, the following confidence vector:
Figure imgf000015_0002
would be converted into the following weights vector:
Figure imgf000015_0003
If required, a constant can be introduced to increase the prevalence of the most likely component in relation to the others. Weights are then calculated using:
Figure imgf000015_0004
This applies to all positive confidence values except for the highest. The value of v is chosen manually. Continuing the above example, using v = 3 would result in the following weights vector:
Figure imgf000016_0001
The weighting module 12 scales the predictions 11 from each of the constituent prediction components according to the values in the corresponding cells of the weights vector, to generate a set of category-weighted text predictions. The weighting module 12 is configured to insert the category-weighted text predictions into a 'multimap' structure to return the p most probable terms as the final text predictions 13. A multimap is a map or associative array in which more than one value may be associated with and returned from a given key.
In the present invention, preferably, the multimap is an STL multimap in which an associative key- value pair is held in a binary tree structure, in which duplicate keys are allowed. The multimap can be used to store a sequence of elements as an ordered tree of nodes, each storing one element. An element consists of a key, for ordering the sequence, and a mapped value. In the STL multimap of the present system, a prediction is a string value mapped to a probability value, and the map is ordered on the basis of the probabilities, i.e. the probability values are used as keys in the multimap and the strings as values.
By way of example, given the category-weighted predictions "a"→ 0.2 and "the"→ 0.3 from weighting the text predictions generated by the first predictor, and the category-weighted predictions "an"→ 0.1 and "these"→ 0.2 from weighting text predictions generated by a second predictor, the weighting module inserts these weighted predictions into a multimap ((0.1→ "an"), (0.2→ "a"), (0.2→ "these"), (0.3— "the")), which is then read in reverse to obtain a set of final predictions.
The final predictions 13 generated by the weighting module 12 can be outputted to a display of the system for user selection, to input text into an electronic device. The selected prediction is then part of the user inputted text 14 used to generate a new set of predictions 13 for display and user selection.
In general, but not exclusive terms, the system of the invention can be implemented as shown in Figure 1. Figure 1 is a block diagram of an adaptive prediction architecture according to the invention. A user inputs text 14 into the system. This text input 14 is passed to the text prediction engine 100 and to the Feature Vector Generator 4. The Feature Vector Generator 4 converts the user inputted text 14 into a feature vector and passes this feature vector to the classifier 9.
The text prediction engine 100 generates, using at least one predictor, at least two text predictions 11 based on the input text 14. In the case of a predictor being a multi- language model, the predictions from each of the language models (within the multi- language model) are combined by inserting the predictions into an STL multimap structure and returning the p most probable values. The resulting set of text predictions 1 1 is passed to the weighting module 12.
The TAP classifier 9 uses the feature vector to generate M category predictions 10 (which comprises an M-dimensional confidence vector, where there are M categories represented in the pre-labelled text sources). The category predictions are passed to the weighting module 12.
The weighting module 12 generates an M-dimensional weights vector from the M-dimensional confidence vector of the category predictions 10 and uses the weights vector to scale the text predictions 1 1 from the M predictors of the text prediction engine, thereby generating category-weighted text predictions. The category-weighted text predictions are inserted, by the weighting module, into a multimap and the p most probable predictions 13 are returned to the user of the system for selection and text input. The predictions can be displayed in a list format, with the most probable term at the top or end of the list. A prediction that is selected by the user for input into the system becomes the next section of user inputted text 14. The system uses this inputted text 14, preferably along with one or more previously inputted text sections, to generate new text predictions 13 for user display and selection.
As explained above, a predictor 6, 7, 8 can be an adaptive predictive system, such as that described in figure 1. The present system therefore defines a recursive framework that allows an arbitrary number of adaptive predictors to be structured in hierarchy. Such an example is now described with reference to figure 2. Figure 2 schematically shows the adaptive prediction architecture of claim 1, where one of the predictors 26, 27, 28 of the text prediction engine 200 is an adaptive predictor 26. Each of the predictors 46, 47, 48 within this adaptive predictor 26 can be a single language model, a multi-language model or an adaptive prediction model. Thus, the adaptive prediction architecture defines a recursive framework that allows an arbitrary number of adaptive predictors to be structured in hierarchy. Figure 2, which schematically describes an example of a two-level adaptive prediction hierarchy, is for illustrative purposes only. It is one of an infinite number of potential structures within the adaptive prediction framework according to the invention.
At the first level, three text sources 21 , 22, 23 are used, representing three topics: sport, finance and politics. These sources and their respective categories are passed through the Feature Vector Generator 24 to the TAP training module 25 to yield a 3- class TAP classifier 29. The text sources 22, 23 representing the finance and politics categories are used to train single language models 27, 28 while the text source representing sport 21 is used to train an adaptive predictor 26.
Within the adaptive predictor 26, the sport text source is split into three subcategories: football 41, golf 42 and racing 43. These are passed through a second-level Feature Vector Generator 44 to the second-level TAP classifier training module 45 to produce a second 3 -class TAP classifier 49. Additionally, each sub-category text source 41, 42, 43 is used to train a respective single language model 46, 47, 48.
The user text input 34 is passed to both first-level 29 and second-level 49 TAP classifiers to generate first-level 30 and second-level 50 category predictions. The first- level category predictions 30 are used by the first-level weighting module 32 to weight the predictions 33 generated by the first-level prediction engine 200, whilst the second- level category predictions 50 are used by the second-level weighting module 52 to weight predictions 51 from the second-level prediction engine 400.
The second-level category-weighted predictions 53 are treated as a set of text predictions from a first-level prediction component 26 of a first-level prediction engine 200. The second-level category-weighted predictions 53 are therefore scaled (by the first-level weighting module 32) using a first-level weights vector (based on first-level category predictions 30).
A method according to the present invention is now described with reference to figure 3 which is a flow chart of a method for processing user text input and generating category weighted text predictions. In the particular method described, the first step comprises receipt of user text input 14 and the generation of text predictions 1 1 from the user inputted text 13. The method further comprises the formatting of the user inputted text by a Feature Vector Generator 4 which converts the text into a feature vector. The method comprises generating, using a classifier 9, a confidence vector relating to the categories present in pre-labelled source text(s) 1, 2 ,3. The method further comprises generating, using a weighting module 12, a weights vector from the confidence vector and scaling (using the weighting module) the text predictions 1 1 by the weights vector to generate a final set of text predictions 13. If the predictors 6, 7, 8 and classifier 9 have not been trained, the method further comprises training at least one predictor and a classifier from at least one source text.
The method for producing a set of weighted output text predictions is now described in greater detail with reference to figure 2 and a specific scenario. It is assumed that both TAP classifiers 29, 49 have been trained using the relevant text sources 21, 22, 23, 41 , 42, 43 and likewise that the language models 26, 27, 28, 46, 47, 48 have also been trained.
By way of an example, say a user has entered the following sequence "Today's match was a classic local derby. The visitors were clearly motivated following the recent takeover of the club by the AEG group. The first "
This input text 34 is passed to the first-level text prediction text engine 200 and the second-level text prediction engine 400 to generate first-level text predictions 31 and second-level text predictions 51. The input text 34 is also passed to both the first-level TAP classifier 29 and the second-level TAP classifier 49 after being preprocessed into the TAP input format described above. Each classifier 29, 49 yields a three-element confidence vector. The input text 34 is also passed to the first-level text prediction text engine 200 and the second-level text prediction engine 400 to generate first-level text predictions 31 and second-level text predictions 51.
In the present example, the first-level classifier 29 distinguishes between the categories sport, finance and politics, and would yield a first-level confidence vector, such as the following:
Figure imgf000020_0001
where the first element corresponds to sport, the second to finance, and the third to politics. This would be converted into the following first-level weights vector by the first-level weighting module (in according to the procedure described above):
Figure imgf000020_0002
The second-level classifier 49 distinguishes between the sub-categories football, golf and racing, and would yield a second-level confidence vector such as the following:
Figure imgf000020_0003
where the first element corresponds to football, the second to golf, and the third to racing. This would be converted into the following second-level weights vector (using the second-level weighting module):
Figure imgf000021_0001
Given a target prediction set size of three terms, the finance and politics first level predictors would yield predictions 31 such as the following (bearing in mind the local context - "The first "):
Figure imgf000021_0002
while the sport constituent (adaptive predictor) would yield three sets of internal predictions 51 , one for each sub-category:
Figure imgf000021_0003
These sub-category predictions 51 are then weighted according to the second- level weights vector w2 above to yield:
Figure imgf000021_0004
The first level weights vector w, is applied to the predictions from the three first- level prediction components to yield the following:
Figure imgf000022_0001
The weighting module inserts the weighted text predictions into an STL 'multimap' structure to return the three most probable terms (where p=3) as the final weighted text predictions 33:
Figure imgf000022_0002
The final predictions 13 are outputted to a display of the system for user selection, to input text 14 into an electronic device. The predicted term selected by the user is input into the electronic device and is used by the system to predict a further set of text predictions 13 for display and user selection.
It will be appreciated that this description is by way of example only; alterations and modifications may be made to the described embodiment without departing from the scope of the invention as defined in the claims.

Claims

1. A system for generating text input in a computing device, comprising;
a text prediction engine comprising at least one predictor and configured to receive text input into the device by a user and to generate text predictions using the at least one predictor;
a classifier configured to receive the input text and to generate at least one text category prediction;
a weighting module configured to receive the text predictions and the at least one category prediction and to weight the text predictions by the category predictions to generate new text predictions for presentation to the user.
2. The system according to claim 1 , wherein the at least one predictor is trained from a text source.
3. The system of according to claim 2, further comprising a plurality of predictors, each trained by a separate text source.
4. The system according to any preceding claim, further comprising a Feature Vector Generator which is configured to generate a feature vector representing the text input into the device by a user by extracting features from the input text calculating the term frequency-inverse document frequency for each feature in the input text, and normalising the resulting vector to unit length.
5. The system according to claim 4 when dependent on either claim 2 or claim 3, wherein the Feature Vector Generator is further configured to generate at least one feature vector for the text source or each of the separate text sources by extracting a set of features from the text source, calculating the term frequency-inverse document frequency for each feature in the text source, and normalising the resulting vectors to unit length.
6. The system according to claim 5, further comprising a classifier training module, the module configured to train the classifier from the feature vectors which have been generated from the text source(s).
7. The system according to one of claims 2-3 or 5-6 wherein the text source(s) comprises text data that has been pre-labelled with at least one representative category.
8. The system according to any preceding claim, further comprising a plurality of predictors, the plurality of predictors generating concurrently text predictions.
9. The system according to any preceding claim, wherein the classifier is a timed aggregate perceptron classifier.
10. The system according to any preceding claim, wherein the classifier is configured to generate a confidence vector relating to the at least one category.
1 1. The system according to claim 10, wherein the weighting module is configured to generate a weights vector from the confidence vector.
12. The system of claim 1 1 , wherein the weighting module generates the weights vector by setting the largest positive value in the confidence vector to 1 , and dividing all other positive values in the confidence vector by the largest positive value in the confidence vector multiplied by a constant factor, and by setting any negative confidence value to zero.
13. The system according to claim 12, wherein the weighting module is configured to scale the text predictions generated by the text prediction engine by the weights vector to generate the new text predictions.
14. The system according to any preceding claim, wherein the weighting module is configured to insert the new text predictions into a multimap structure, the structure comprising text predictions mapped to probability values, and to return the p most probable new text predictions.
15. The system according to any preceding claim, wherein the at least one predictor is one of a single language model, a multi-language model or an adaptive prediction system.
5
16. The system according to any preceding claim, wherein the text prediction engine comprises at least two predictors, at least one of which is an adaptive prediction system.
17. The system according to claim 16, wherein the at least one adaptive prediction 10 system comprises :
a second text prediction engine comprising at least one predictor and configured to receive the input text and to generate text predictions using the at least one predictor; a second classifier configured to receive the input text and to generate at least one text category prediction;
15 a second weighting module configured to receive the text predictions from the second text prediction engine and the at least one category prediction from the second classifier and to weight the text predictions by the category predictions to generate new text predictions.
20 18. The system according to any preceding claim, wherein the computing device is one of a mobile phone, a PDA or a computer such as a PC, laptop, tablet PC, a Mobile Internet Device, an Ultramobile PC, a games console, or an in-car system.
19. A method of generating text predictions from user text input, comprising;
25 generating text predictions based upon user text input;
generating, based upon the user text input, a set of text category predictions; generating, a set of category-weighted text predictions; and
presenting the set of category-weighted text predictions to the user.
30 20. The method of claim 19, wherein the method further comprises selecting one of the set of category-weighted text predictions for text input.
21. The method according to claim 19 or 20, wherein the predictions are generated by at least one predictor and the method further comprises training the at least one predictor based upon a text source.
22. The method according to claim 21 , wherein the predictions are generated by a plurality of predictors and the plurality of predictors is trained, each predictor being trained based upon a separate text source.
23. The method according to one of claims 19-22, further comprising generating a feature vector representing the text input into the device by a user by extracting features from the input text, calculating the term frequency-inverse document frequency for each feature in the text input, and normalising the resulting vector to unit length.
24. The method according to claim 23 when dependent on either claim 21 or claim 22, further comprising generating at least one feature vector for the text source or each of the separate text sources, by extracting a set of features from the text source, calculating the term frequency-inverse document frequency for each feature in the text source, and normalising the resulting vectors to unit length.
25. The method according to one of claims 19-24, wherein the text predictions are generated concurrently by a plurality of predictors.
26. The method according to one of claims 19-25, wherein the text category predictions are generated by a classifier.
27. The method according to claim 26, wherein the classifier is a timed aggregate perceptron classifier.
28. The method according to claim 24, wherein the method further comprises training the classifier based upon the feature vectors generated from the text source(s).
29. The method according to one of claims 21-22, 24 or 28, wherein the text source(s) comprises text data that has been pre-labelled with at least one representative category.
30. The method according to one of claims 19-29, further comprising inserting the category-weighted text predictions into a multimap structure, the structure comprising category-weighted text predictions mapped to probability values, and returning the p most probable category-weighted text predictions.
31. The method according to one of claims 19-30, wherein the step of generating the set of text category predictions comprises generating a confidence vector relating to the categories.
32. The method according to claim 31, wherein the step of generating the set of text category-weighted predictions comprises generating a weights vector from the confidence vector.
33. The method according to claim 32, wherein the weights vector is generated by setting the largest positive value in the confidence vector to I, and dividing all other positive values in the confidence vector by the largest positive value in the confidence vector multiplied by a constant factor, and by setting any negative confidence value to zero.
34. The method according to claim 33, wherein the step of generating the set of category-weighted predictions comprises scaling the text predictions generated by the text prediction engine by the weights vector.
35. The method according to one of claims 19-34, wherein the step of generating text predictions comprises generating text predictions using at least two predictors.
36. The method according to claim 35, wherein generating text predictions using at least one of the at least two predictors comprises:
generating text predictions based upon the user text input; generating a second set of text category predictions; and
generating a set of new text predictions by weighting the text predictions from the second predictor by the second set of category predictions.
37. A system substantially as hereinbefore described with reference to and as shown in the accompanying drawings.
38. A method substantially as hereinbefore described with reference to and as shown in the accompanying drawings.
PCT/GB2010/001898 2009-03-30 2010-10-11 System and method for inputting text into electronic devices WO2011042710A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP10775846.8A EP2486470B1 (en) 2009-10-09 2010-10-11 System and method for inputting text into electronic devices
US13/501,087 US9046932B2 (en) 2009-10-09 2010-10-11 System and method for inputting text into electronic devices based on text and text category predictions
CN201080051346.4A CN102640089B (en) 2009-10-09 2010-10-11 The text input system of electronic equipment and text entry method
US14/307,308 US9424246B2 (en) 2009-03-30 2014-06-17 System and method for inputting text into electronic devices
US15/213,168 US10402493B2 (en) 2009-03-30 2016-07-18 System and method for inputting text into electronic devices

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0917753.6A GB0917753D0 (en) 2009-10-09 2009-10-09 System and method for inputting text into electronic devices
GB0917753.6 2009-10-09

Related Child Applications (4)

Application Number Title Priority Date Filing Date
PCT/GB2010/000622 Continuation-In-Part WO2010112841A1 (en) 2009-03-30 2010-03-30 System and method for inputting text into electronic devices
US13/262,190 Continuation-In-Part US9659002B2 (en) 2009-03-30 2010-03-30 System and method for inputting text into electronic devices
US13/501,087 A-371-Of-International US9046932B2 (en) 2009-10-09 2010-10-11 System and method for inputting text into electronic devices based on text and text category predictions
US14/307,308 Continuation-In-Part US9424246B2 (en) 2009-03-30 2014-06-17 System and method for inputting text into electronic devices

Publications (1)

Publication Number Publication Date
WO2011042710A1 true WO2011042710A1 (en) 2011-04-14

Family

ID=41402822

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2010/001898 WO2011042710A1 (en) 2009-03-30 2010-10-11 System and method for inputting text into electronic devices

Country Status (5)

Country Link
US (1) US9046932B2 (en)
EP (1) EP2486470B1 (en)
CN (1) CN102640089B (en)
GB (1) GB0917753D0 (en)
WO (1) WO2011042710A1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2439684A3 (en) * 2010-10-06 2012-07-25 The Chancellor, Masters and Scholars of the University of Cambridge Automated assessment of examination scripts
WO2014102548A2 (en) 2012-12-27 2014-07-03 Touchtype Limited Search system and corresponding method
CN104081320A (en) * 2012-01-27 2014-10-01 触摸式有限公司 User data input prediction
US9052748B2 (en) 2010-03-04 2015-06-09 Touchtype Limited System and method for inputting text into electronic devices
WO2015087084A1 (en) * 2013-12-12 2015-06-18 Touchtype Limited System and method for inputting images or labels into electronic devices
US10037319B2 (en) 2010-09-29 2018-07-31 Touchtype Limited User input prediction
US10254953B2 (en) 2013-01-21 2019-04-09 Keypoint Technologies India Pvt. Ltd. Text input method using continuous trace across two or more clusters of candidate words to select two or more words to form a sequence, wherein the candidate words are arranged based on selection probabilities
US10474355B2 (en) 2013-01-21 2019-11-12 Keypoint Technologies India Pvt. Ltd. Input pattern detection over virtual keyboard for candidate word identification
US10613746B2 (en) 2012-01-16 2020-04-07 Touchtype Ltd. System and method for inputting text
US10664657B2 (en) 2012-12-27 2020-05-26 Touchtype Limited System and method for inputting images or labels into electronic devices

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US9424246B2 (en) 2009-03-30 2016-08-23 Touchtype Ltd. System and method for inputting text into electronic devices
GB201016385D0 (en) 2010-09-29 2010-11-10 Touchtype Ltd System and method for inputting text into electronic devices
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US8924391B2 (en) * 2010-09-28 2014-12-30 Microsoft Corporation Text classification using concept kernel
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9268822B2 (en) * 2012-07-18 2016-02-23 Salesforce.Com, Inc. System and method for determining organizational hierarchy from business card data
US9298274B2 (en) * 2012-07-20 2016-03-29 Microsoft Technology Licensing, Llc String predictions from buffer
US9536016B2 (en) * 2013-01-16 2017-01-03 Google Inc. On-disk multimap
KR102516577B1 (en) 2013-02-07 2023-04-03 애플 인크. Voice trigger for a digital assistant
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US20140278349A1 (en) * 2013-03-14 2014-09-18 Microsoft Corporation Language Model Dictionaries for Text Predictions
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US10088914B2 (en) 2013-06-13 2018-10-02 Microsoft Technology Licensing, Llc Modifying input delivery to applications
WO2015020942A1 (en) 2013-08-06 2015-02-12 Apple Inc. Auto-activating smart responses based on activities from remote devices
US20150113072A1 (en) * 2013-10-17 2015-04-23 International Business Machines Corporation Messaging auto-correction using recipient feedback
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
WO2015184186A1 (en) 2014-05-30 2015-12-03 Apple Inc. Multi-command single utterance input method
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
CN104102720B (en) * 2014-07-18 2018-04-13 上海触乐信息科技有限公司 The Forecasting Methodology and device efficiently input
US9690776B2 (en) * 2014-12-01 2017-06-27 Microsoft Technology Licensing, Llc Contextual language understanding for multi-turn language tasks
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10786182B2 (en) 2015-09-09 2020-09-29 The Joan and Irwin Jacobs Technion-Cornell Institute System and method for passive remote monitoring of patients' fine motor behavior
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US20170177739A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Prediction using a data structure
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US9792534B2 (en) * 2016-01-13 2017-10-17 Adobe Systems Incorporated Semantic natural language vector space
US9811765B2 (en) * 2016-01-13 2017-11-07 Adobe Systems Incorporated Image captioning with weak supervision
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
GB201620235D0 (en) * 2016-11-29 2017-01-11 Microsoft Technology Licensing Llc Neural network data entry system
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. Low-latency intelligent automated assistant
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. Multi-modal interfaces
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
KR102197247B1 (en) * 2017-06-01 2020-12-31 한국전자통신연구원 Parameter server and method for sharing distributed deep learning parameter using the same
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK179822B1 (en) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK201970510A1 (en) 2019-05-31 2021-02-11 Apple Inc Voice identification in digital assistant systems
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. User activity shortcut suggestions
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11462038B2 (en) * 2020-01-10 2022-10-04 International Business Machines Corporation Interpreting text classification predictions through deterministic extraction of prominent n-grams
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
CN112698736A (en) * 2020-12-31 2021-04-23 上海臣星软件技术有限公司 Information output method, information output device, electronic equipment and computer storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040201607A1 (en) * 2002-01-15 2004-10-14 Airtx, Incorporated Alphanumeric information input method

Family Cites Families (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5477451A (en) 1991-07-25 1995-12-19 International Business Machines Corp. Method and system for natural language translation
US5963671A (en) 1991-11-27 1999-10-05 International Business Machines Corporation Enhancement of soft keyboard operations using trigram prediction
US5467425A (en) 1993-02-26 1995-11-14 International Business Machines Corporation Building scalable N-gram language models using maximum likelihood maximum entropy N-gram models
US5612690A (en) 1993-06-03 1997-03-18 Levy; David Compact keypad system and method
US5671426A (en) 1993-06-22 1997-09-23 Kurzweil Applied Intelligence, Inc. Method for organizing incremental search dictionary
US5805911A (en) 1995-02-01 1998-09-08 Microsoft Corporation Word prediction system
US5680511A (en) 1995-06-07 1997-10-21 Dragon Systems, Inc. Systems and methods for word recognition
BR9609807A (en) 1995-07-26 1999-12-21 Martin T King Ambiguity cancellation system with reduced keyboard
US5806021A (en) 1995-10-30 1998-09-08 International Business Machines Corporation Automatic segmentation of continuous text using statistical approaches
US5952942A (en) 1996-11-21 1999-09-14 Motorola, Inc. Method and device for input of text messages from a keypad
US5953541A (en) 1997-01-24 1999-09-14 Tegic Communications, Inc. Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use
US6009444A (en) 1997-02-24 1999-12-28 Motorola, Inc. Text input device and method
US6054941A (en) 1997-05-27 2000-04-25 Motorola, Inc. Apparatus and method for inputting ideographic characters
DE69837979T2 (en) 1997-06-27 2008-03-06 International Business Machines Corp. System for extracting multilingual terminology
US6052657A (en) 1997-09-09 2000-04-18 Dragon Systems, Inc. Text segmentation and identification of topic using language models
CN100334530C (en) 1997-09-25 2007-08-29 蒂吉通信系统公司 Reduced keyboard disambiguating systems
US6377965B1 (en) 1997-11-07 2002-04-23 Microsoft Corporation Automatic word completion system for partially entered data
US5896321A (en) 1997-11-14 1999-04-20 Microsoft Corporation Text completion system for a miniature computer
US6125342A (en) 1997-11-18 2000-09-26 L & H Applications Usa, Inc. Pronoun semantic analysis system and method
US6219632B1 (en) 1997-11-20 2001-04-17 International Business Machines Corporation System for the facilitation of supporting multiple concurrent languages through the use of semantic knowledge representation
JP3272288B2 (en) 1997-12-24 2002-04-08 日本アイ・ビー・エム株式会社 Machine translation device and machine translation method
US6253169B1 (en) 1998-05-28 2001-06-26 International Business Machines Corporation Method for improvement accuracy of decision tree based text categorization
US6104989A (en) 1998-07-29 2000-08-15 International Business Machines Corporation Real time detection of topical changes and topic identification via likelihood based methods
US6393399B1 (en) 1998-09-30 2002-05-21 Scansoft, Inc. Compound word recognition
US6321192B1 (en) 1998-10-22 2001-11-20 International Business Machines Corporation Adaptive learning method and system that matches keywords using a parsed keyword data structure having a hash index based on an unicode value
DE19849855C1 (en) 1998-10-29 2000-04-27 Ibm Method for using a computer system to generate a text expression automatically while retaining meaning determines a statistical model on a number of preset pairs of word meanings and associated expressions.
US7712053B2 (en) 1998-12-04 2010-05-04 Tegic Communications, Inc. Explicit character filtering of ambiguous text entry
US8938688B2 (en) 1998-12-04 2015-01-20 Nuance Communications, Inc. Contextual prediction of user words and user actions
US7720682B2 (en) 1998-12-04 2010-05-18 Tegic Communications, Inc. Method and apparatus utilizing voice input to resolve ambiguous manually entered text input
US6460015B1 (en) 1998-12-15 2002-10-01 International Business Machines Corporation Method, system and computer program product for automatic character transliteration in a text string object
US6362752B1 (en) 1998-12-23 2002-03-26 Motorola, Inc. Keypad with strokes assigned to key for ideographic text input
US6801659B1 (en) * 1999-01-04 2004-10-05 Zi Technology Corporation Ltd. Text input system for ideographic and nonideographic languages
GB2347239B (en) 1999-02-22 2003-09-24 Nokia Mobile Phones Ltd A communication terminal having a predictive editor application
US6204848B1 (en) 1999-04-14 2001-03-20 Motorola, Inc. Data entry apparatus having a limited number of character keys and method
US6275792B1 (en) 1999-05-05 2001-08-14 International Business Machines Corp. Method and system for generating a minimal set of test phrases for testing a natural commands grammar
US7750891B2 (en) 2003-04-09 2010-07-06 Tegic Communications, Inc. Selective input system based on tracking of motion parameters of an input device
US7030863B2 (en) 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US7610194B2 (en) 2002-07-18 2009-10-27 Tegic Communications, Inc. Dynamic database reordering system
US6327561B1 (en) 1999-07-07 2001-12-04 International Business Machines Corp. Customized tokenization of domain specific text via rules corresponding to a speech recognition vocabulary
US6993476B1 (en) 1999-08-26 2006-01-31 International Business Machines Corporation System and method for incorporating semantic characteristics into the format-driven syntactic document transcoding framework
US6484136B1 (en) 1999-10-21 2002-11-19 International Business Machines Corporation Language model adaptation via network of similar users
US6848080B1 (en) 1999-11-05 2005-01-25 Microsoft Corporation Language input architecture for converting one text form to another text form with tolerance to spelling, typographical, and conversion errors
US7403888B1 (en) 1999-11-05 2008-07-22 Microsoft Corporation Language input user interface
US6573844B1 (en) 2000-01-18 2003-06-03 Microsoft Corporation Predictive keyboard
US6490549B1 (en) 2000-03-30 2002-12-03 Scansoft, Inc. Automatic orthographic transformation of a text stream
US6519557B1 (en) 2000-06-06 2003-02-11 International Business Machines Corporation Software and method for recognizing similarity of documents written in different languages based on a quantitative measure of similarity
US6724936B1 (en) 2000-08-23 2004-04-20 Art-Advanced Recognition Technologies, Ltd. Handwriting input device and method using a single character set
US7092870B1 (en) 2000-09-15 2006-08-15 International Business Machines Corporation System and method for managing a textual archive using semantic units
US7277732B2 (en) 2000-10-13 2007-10-02 Microsoft Corporation Language input system for mobile devices
US6963831B1 (en) 2000-10-25 2005-11-08 International Business Machines Corporation Including statistical NLU models within a statistical parser
EP1209659B1 (en) 2000-11-22 2005-10-05 Matsushita Electric Industrial Co., Ltd. Method and apparatus for text input utilizing speech recognition
EP1213643A1 (en) 2000-12-05 2002-06-12 Inventec Appliances Corp. Intelligent dictionary input method
US7426505B2 (en) 2001-03-07 2008-09-16 International Business Machines Corporation Method for identifying word patterns in text
US20020126097A1 (en) 2001-03-07 2002-09-12 Savolainen Sampo Jussi Pellervo Alphanumeric data entry method and apparatus using reduced keyboard and context related dictionaries
US6813616B2 (en) 2001-03-07 2004-11-02 International Business Machines Corporation System and method for building a semantic network capable of identifying word patterns in text
US7117144B2 (en) 2001-03-31 2006-10-03 Microsoft Corporation Spell checking for text input via reduced keypad keys
US7385591B2 (en) 2001-03-31 2008-06-10 Microsoft Corporation Out-of-vocabulary word determination and user interface for text input via reduced keypad keys
US7103534B2 (en) 2001-03-31 2006-09-05 Microsoft Corporation Machine learning contextual approach to word determination for text input via reduced keypad keys
US6625600B2 (en) 2001-04-12 2003-09-23 Telelogue, Inc. Method and apparatus for automatically processing a user's communication
GB0111012D0 (en) 2001-05-04 2001-06-27 Nokia Corp A communication terminal having a predictive text editor application
US7269546B2 (en) 2001-05-09 2007-09-11 International Business Machines Corporation System and method of finding documents related to other documents and of finding related words in response to a query to refine a search
US6925433B2 (en) 2001-05-09 2005-08-02 International Business Machines Corporation System and method for context-dependent probabilistic modeling of words and documents
US6671670B2 (en) 2001-06-27 2003-12-30 Telelogue, Inc. System and method for pre-processing information used by an automated attendant
JP4215418B2 (en) 2001-08-24 2009-01-28 インターナショナル・ビジネス・マシーンズ・コーポレーション Word prediction method, speech recognition method, speech recognition apparatus and program using the method
US7610189B2 (en) 2001-10-18 2009-10-27 Nuance Communications, Inc. Method and apparatus for efficient segmentation of compound words using probabilistic breakpoint traversal
US7124080B2 (en) 2001-11-13 2006-10-17 Microsoft Corporation Method and apparatus for adapting a class entity dictionary used with language models
US7075520B2 (en) 2001-12-12 2006-07-11 Zi Technology Corporation Ltd Key press disambiguation using a keypad of multidirectional keys
GB0200352D0 (en) 2002-01-09 2002-02-20 Ibm Finite state dictionary and method of production thereof
US7175438B2 (en) 2002-03-01 2007-02-13 Digit Wireless Fast typing system and method
US20030182279A1 (en) 2002-03-19 2003-09-25 Willows Kevin John Progressive prefix input method for data entry
DE10235548B4 (en) 2002-03-25 2012-06-28 Agere Systems Guardian Corp. Method and device for the prediction of a text message input
PT1509938E (en) 2002-05-23 2006-07-31 Digit Wireless Llc KEY BLOCK AND KEY SWITCHES
US7493253B1 (en) 2002-07-12 2009-02-17 Language And Computing, Inc. Conceptual world representation natural language understanding system and method
CA2493443C (en) 2002-07-23 2011-07-19 Research In Motion Limited Systems and methods of building and using custom word lists
US7151530B2 (en) 2002-08-20 2006-12-19 Canesta, Inc. System and method for determining an input selected by a user through a virtual interface
CN1714351A (en) * 2002-11-28 2005-12-28 松下电器产业株式会社 Device, program and method for assisting in preparing email
EP2544101A1 (en) 2002-11-28 2013-01-09 Nuance Communications Austria GmbH Method to assign word class information
US7251367B2 (en) 2002-12-20 2007-07-31 International Business Machines Corporation System and method for recognizing word patterns based on a virtual keyboard layout
AU2002361224A1 (en) 2002-12-27 2004-07-22 Nokia Corporation Predictive text entry and data compression method for a mobile communication terminal
US7453439B1 (en) 2003-01-16 2008-11-18 Forward Input Inc. System and method for continuous stroke word-based text input
US7098896B2 (en) 2003-01-16 2006-08-29 Forword Input Inc. System and method for continuous stroke word-based text input
US20040153975A1 (en) 2003-02-05 2004-08-05 Williams Roland E. Text entry mechanism for small keypads
US7129932B1 (en) 2003-03-26 2006-10-31 At&T Corp. Keyboard for interacting on small devices
US7200559B2 (en) 2003-05-29 2007-04-03 Microsoft Corporation Semantic object synchronous understanding implemented with speech application language tags
US7475010B2 (en) 2003-09-03 2009-01-06 Lingospot, Inc. Adaptive and scalable method for resolving natural language ambiguities
US7366666B2 (en) 2003-10-01 2008-04-29 International Business Machines Corporation Relative delta computations for determining the meaning of language inputs
US8136050B2 (en) 2003-11-21 2012-03-13 Nuance Communications, Inc. Electronic device and user interface and input method therefor
US8200487B2 (en) 2003-11-21 2012-06-12 Nuance Communications Austria Gmbh Text segmentation and label assignment with user interaction by means of topic specific language models and topic-specific label statistics
US7706616B2 (en) 2004-02-27 2010-04-27 International Business Machines Corporation System and method for recognizing word patterns in a very large vocabulary based on a virtual keyboard layout
US20050190970A1 (en) 2004-02-27 2005-09-01 Research In Motion Limited Text input system for a mobile electronic device and methods thereof
US7187365B2 (en) 2004-03-31 2007-03-06 Motorola, Inc. Indic intermediate code and electronic device therefor
US20050283724A1 (en) 2004-06-18 2005-12-22 Research In Motion Limited Predictive text dictionary population
US7454344B2 (en) 2004-08-13 2008-11-18 Microsoft Corporation Language model architecture
US7711542B2 (en) 2004-08-31 2010-05-04 Research In Motion Limited System and method for multilanguage text input in a handheld electronic device
US7610191B2 (en) 2004-10-06 2009-10-27 Nuance Communications, Inc. Method for fast semi-automatic semantic annotation
US20060106769A1 (en) * 2004-11-12 2006-05-18 Gibbs Kevin A Method and system for autocompletion for languages having ideographs and phonetic characters
US8275618B2 (en) 2004-12-22 2012-09-25 Nuance Communications, Inc. Mobile dictation correction user interface
CN100530171C (en) 2005-01-31 2009-08-19 日电(中国)有限公司 Dictionary learning method and devcie
US7487461B2 (en) 2005-05-04 2009-02-03 International Business Machines Corporation System and method for issuing commands based on pen motions on a graphical keyboard
US8036878B2 (en) 2005-05-18 2011-10-11 Never Wall Treuhand GmbH Device incorporating improved text input mechanism
US9606634B2 (en) 2005-05-18 2017-03-28 Nokia Technologies Oy Device incorporating improved text input mechanism
US20090193334A1 (en) 2005-05-18 2009-07-30 Exb Asset Management Gmbh Predictive text input system and method involving two concurrent ranking means
US7886233B2 (en) 2005-05-23 2011-02-08 Nokia Corporation Electronic text input involving word completion functionality for predicting word candidates for partial word inputs
US7277029B2 (en) 2005-06-23 2007-10-02 Microsoft Corporation Using language models to expand wildcards
US7487147B2 (en) 2005-07-13 2009-02-03 Sony Computer Entertainment Inc. Predictive user interface
US7664629B2 (en) 2005-07-19 2010-02-16 Xerox Corporation Second language writing advisor
US7443316B2 (en) 2005-09-01 2008-10-28 Motorola, Inc. Entering a character into an electronic device
US20070076862A1 (en) 2005-09-30 2007-04-05 Chatterjee Manjirnath A System and method for abbreviated text messaging
US20070094024A1 (en) 2005-10-22 2007-04-26 International Business Machines Corporation System and method for improving text input in a shorthand-on-keyboard interface
US8010343B2 (en) 2005-12-15 2011-08-30 Nuance Communications, Inc. Disambiguation systems and methods for use in generating grammars
CN101034390A (en) 2006-03-10 2007-09-12 日电(中国)有限公司 Apparatus and method for verbal model switching and self-adapting
US8462118B2 (en) 2006-06-19 2013-06-11 Nuance Communications, Inc. Data entry system and method of entering data
US7724957B2 (en) * 2006-07-31 2010-05-25 Microsoft Corporation Two tiered text recognition
US7843427B2 (en) 2006-09-06 2010-11-30 Apple Inc. Methods for determining a cursor position from a finger contact with a touch screen display
US20080282154A1 (en) 2006-09-11 2008-11-13 Nurmi Mikko A Method and apparatus for improved text input
US20080076472A1 (en) 2006-09-22 2008-03-27 Sony Ericsson Mobile Communications Ab Intelligent Predictive Text Entry
US7904298B2 (en) * 2006-11-17 2011-03-08 Rao Ashwin P Predictive speech-to-text input
US20080126075A1 (en) 2006-11-27 2008-05-29 Sony Ericsson Mobile Communications Ab Input prediction
US8195448B2 (en) 2006-12-28 2012-06-05 John Paisley Dargan Method and apparatus for predicting text
US8074172B2 (en) 2007-01-05 2011-12-06 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US8201087B2 (en) 2007-02-01 2012-06-12 Tegic Communications, Inc. Spell-check for a keyboard system with automatic correction
US8225203B2 (en) 2007-02-01 2012-07-17 Nuance Communications, Inc. Spell-check for a keyboard system with automatic correction
US7809719B2 (en) 2007-02-08 2010-10-05 Microsoft Corporation Predicting textual candidates
US7912700B2 (en) 2007-02-08 2011-03-22 Microsoft Corporation Context based word prediction
US8078978B2 (en) 2007-10-19 2011-12-13 Google Inc. Method and system for predicting text
US8768689B2 (en) 2007-02-14 2014-07-01 Nuance Communications, Inc. Method and system for translation management of source language text phrases
US7809575B2 (en) 2007-02-27 2010-10-05 Nuance Communications, Inc. Enabling global grammars for a particular multimodal application
DE102007014405B4 (en) 2007-03-26 2010-05-27 Frank Deinzer Method for word recognition in character sequences
WO2008120033A1 (en) 2007-03-29 2008-10-09 Nokia Corporation Prioritizing words based on content of input
CA2686601C (en) 2007-05-07 2016-10-04 Fourthwall Media Providing personalized resources on-demand over a broadband network to consumer device applications
WO2008151465A1 (en) 2007-06-14 2008-12-18 Google Inc. Dictionary word and phrase determination
US8504349B2 (en) 2007-06-18 2013-08-06 Microsoft Corporation Text prediction with partial selection in a variety of domains
US8521927B2 (en) 2007-07-07 2013-08-27 David Hirshberg System and method for text entry
US8027964B2 (en) 2007-07-13 2011-09-27 Medio Systems, Inc. Personalized query completion suggestion
US8289193B2 (en) 2007-08-31 2012-10-16 Research In Motion Limited Mobile wireless communications device providing enhanced predictive word entry and related methods
US8232973B2 (en) 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
EP2088536B1 (en) 2008-02-08 2021-08-11 Nokia Technologies Oy Text input system and method involving finger-based handwriting recognition and word prediction
US8473276B2 (en) 2008-02-19 2013-06-25 Google Inc. Universal language input
US8289283B2 (en) 2008-03-04 2012-10-16 Apple Inc. Language input interface on a device
US20090249198A1 (en) 2008-04-01 2009-10-01 Yahoo! Inc. Techniques for input recogniton and completion
US8484582B2 (en) 2008-05-12 2013-07-09 Nuance Communications, Inc. Entry selection from long entry lists
DE602008005428D1 (en) 2008-06-11 2011-04-21 Exb Asset Man Gmbh Apparatus and method with improved text input mechanism
US20100121870A1 (en) 2008-07-03 2010-05-13 Erland Unruh Methods and systems for processing complex language text, such as japanese text, on a mobile device
US8117144B2 (en) 2008-12-12 2012-02-14 Nuance Communications, Inc. Generating predilection cohorts
US8669941B2 (en) 2009-01-05 2014-03-11 Nuance Communications, Inc. Method and apparatus for text entry
US20110029862A1 (en) 2009-07-30 2011-02-03 Research In Motion Limited System and method for context based predictive text entry assistance
US9110515B2 (en) 2009-08-19 2015-08-18 Nuance Communications, Inc. Method and apparatus for text input
US8516367B2 (en) 2009-09-29 2013-08-20 Verizon Patent And Licensing Inc. Proximity weighted predictive key entry
US8812972B2 (en) 2009-09-30 2014-08-19 At&T Intellectual Property I, L.P. Dynamic generation of soft keyboards for mobile devices
US9128610B2 (en) 2009-09-30 2015-09-08 At&T Mobility Ii Llc Virtual predictive keypad
US8782556B2 (en) 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
US20120167009A1 (en) 2010-12-22 2012-06-28 Apple Inc. Combining timing and geometry information for typing correction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040201607A1 (en) * 2002-01-15 2004-10-14 Airtx, Incorporated Alphanumeric information input method

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9052748B2 (en) 2010-03-04 2015-06-09 Touchtype Limited System and method for inputting text into electronic devices
US10037319B2 (en) 2010-09-29 2018-07-31 Touchtype Limited User input prediction
US9679256B2 (en) 2010-10-06 2017-06-13 The Chancellor, Masters And Scholars Of The University Of Cambridge Automated assessment of examination scripts
EP2439684A3 (en) * 2010-10-06 2012-07-25 The Chancellor, Masters and Scholars of the University of Cambridge Automated assessment of examination scripts
US10613746B2 (en) 2012-01-16 2020-04-07 Touchtype Ltd. System and method for inputting text
CN104081320A (en) * 2012-01-27 2014-10-01 触摸式有限公司 User data input prediction
WO2014102548A2 (en) 2012-12-27 2014-07-03 Touchtype Limited Search system and corresponding method
US10664657B2 (en) 2012-12-27 2020-05-26 Touchtype Limited System and method for inputting images or labels into electronic devices
US11200503B2 (en) 2012-12-27 2021-12-14 Microsoft Technology Licensing, Llc Search system and corresponding method
US10254953B2 (en) 2013-01-21 2019-04-09 Keypoint Technologies India Pvt. Ltd. Text input method using continuous trace across two or more clusters of candidate words to select two or more words to form a sequence, wherein the candidate words are arranged based on selection probabilities
US10474355B2 (en) 2013-01-21 2019-11-12 Keypoint Technologies India Pvt. Ltd. Input pattern detection over virtual keyboard for candidate word identification
WO2015087084A1 (en) * 2013-12-12 2015-06-18 Touchtype Limited System and method for inputting images or labels into electronic devices
KR20160097352A (en) * 2013-12-12 2016-08-17 터치타입 리미티드 System and method for inputting images or labels into electronic devices
KR102345453B1 (en) * 2013-12-12 2021-12-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 System and method for inputting images or labels into electronic devices

Also Published As

Publication number Publication date
US9046932B2 (en) 2015-06-02
GB0917753D0 (en) 2009-11-25
EP2486470B1 (en) 2019-12-11
EP2486470A1 (en) 2012-08-15
CN102640089A (en) 2012-08-15
US20120197825A1 (en) 2012-08-02
CN102640089B (en) 2016-01-20

Similar Documents

Publication Publication Date Title
EP2486470B1 (en) System and method for inputting text into electronic devices
US10402493B2 (en) System and method for inputting text into electronic devices
US11797822B2 (en) Neural network having input and hidden layers of equal units
Mandal et al. Supervised learning methods for bangla web document categorization
Wang et al. Handwritten Chinese text recognition by integrating multiple contexts
US9052748B2 (en) System and method for inputting text into electronic devices
CN113268995B (en) Chinese academy keyword extraction method, device and storage medium
CN109543017B (en) Legal question keyword generation method and system
US20140350920A1 (en) System and method for inputting text into electronic devices
CN113591483A (en) Document-level event argument extraction method based on sequence labeling
JP2010531492A (en) Word probability determination
Suleiman et al. Deep learning based extractive text summarization: approaches, datasets and evaluation measures
Habib et al. An exploratory approach to find a novel metric based optimum language model for automatic bangla word prediction
Islam et al. An in-depth exploration of Bangla blog post classification
Nahar et al. Filtering Bengali political and sports news of social media from textual information
CN107729509B (en) Discourse similarity determination method based on recessive high-dimensional distributed feature representation
US20230153522A1 (en) Image captioning
CN110766073B (en) Mobile application classification method for strengthening topic attention mechanism
Agun et al. Document embedding approach for efficient authorship attribution
Cui et al. Learning effective word embedding using morphological word similarity
Yan et al. Tibetan text classification based on RNN
Meng et al. Tibetan text classification algorithm based on syllables
CN113535886A (en) Information processing method, device and equipment
Mady et al. Enhancing performance of biomedical named entity recognition
Putra et al. Influence of Sentiment on Mandiri Bank Stocks (BMRI) Using Feature Expansion with FastText and Logistic Regression Classification

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080051346.4

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10775846

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13501087

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2010775846

Country of ref document: EP