WO2012090027A1 - Language models for input text prediction - Google Patents

Language models for input text prediction Download PDF

Info

Publication number
WO2012090027A1
WO2012090027A1 PCT/IB2010/056138 IB2010056138W WO2012090027A1 WO 2012090027 A1 WO2012090027 A1 WO 2012090027A1 IB 2010056138 W IB2010056138 W IB 2010056138W WO 2012090027 A1 WO2012090027 A1 WO 2012090027A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
text
language model
language
appropriateness
Prior art date
Application number
PCT/IB2010/056138
Other languages
French (fr)
Inventor
Mathias Johan Philip Creutz
Juha Antero ISO-SIPILÄ
Original Assignee
Nokia Corporation
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 Nokia Corporation filed Critical Nokia Corporation
Priority to PCT/IB2010/056138 priority Critical patent/WO2012090027A1/en
Publication of WO2012090027A1 publication Critical patent/WO2012090027A1/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/232Orthographic correction, e.g. spell checking or vowelisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Definitions

  • the present disclosure relates to the field of language models, associated methods, computer programs and apparatus.
  • Background Electronic devices that allow for text entry from a user also provide for text correction and/or prediction.
  • mobile phones can often provide type alphanumeric language prediction for alphanumeric keypads.
  • language models are often integrated into the system. These are utilised by text prediction/correction processes to enable word completion, disambiguation of ambiguous input, and automatic correction of spelling errors.
  • the smaller the keypad of such devices the more important smart text entry solutions are, because users perform increasingly complex operations on their mobile devices that require one or more of correction, prediction, and disambiguation, etc (for example, using web browsers, writing e-mails, and participating in social networks).
  • an apparatus comprising a processor and memory including computer program code, the memory and the computer program code being configured to, with the processor, cause the apparatus to:
  • each language model comprises a set of entries that govern text prediction and/or correction of user text; providing for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models. Provision for selection may comprise one or more of:
  • selecting a particular language model allowing an electronic device to select a particular language model, selecting a particular language model for an electronic device, providing an indication of a particular language model.
  • the memory and the computer program code may be configured to, with the processor, cause the apparatus to:
  • the determined likelihood of appropriateness may indicate the correlation between: a plurality of text prediction/correction suggestions provided by respective language models in response to user input; and
  • the language models may be considered to be lexicons containing sets and/or subsets of entries. These entries may be words that reflect encoded data such as n-grams, distinct languages, categorized information etc.
  • a language model could contain all US states but nothing else as it is a 'US state' language model.
  • a language model could contain all words in the English dictionary, or a distinct language model could contain all email addresses within a company's internal directory.
  • the memory and the computer program code may be configured to, with the processor, cause the apparatus to:
  • the memory and the computer program code may be configured to, with the processor, cause the apparatus to:
  • the memory and the computer program code may be configured to, with the processor, cause the apparatus to:
  • the predetermined interval criterion may comprise one or more of the following:
  • new line in user text entry new paragraph in user text entry, new sentence in user text entry, a change in keyboard language and/or layout, a pause between periods of user text entry, user edit of already entered text, user exiting/closing of an application in which text has been entered, user entering/opening an application, and user returning to an application in which text has been entered.
  • the memory and the computer program code may be configured to, with the processor, cause the apparatus to:
  • the memory and the computer program code may be configured to, with the processor, cause the apparatus to:
  • the apparatus may comprise one or more language models that make up the plurality, and/or may have access to one or more language models stored remotely from the apparatus.
  • Respective language models may comprise one or more of the following: different languages (English, French, German, Spanish, and the like), locations (such as street names, countries, counties, states, districts, and the like) n-grams (bigrams, trigrams, and the like), and other sets of data.
  • an apparatus comprising:
  • a determinator configured to determine, in response to input by a user, likelihood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text;
  • a selector configured to provide for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models.
  • an apparatus comprising:
  • a means for determining configured to determine, in response to input by a user, likelihood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text;
  • a means for selecting configured to provide for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models.
  • a non-transitory computer readable medium comprising computer program code stored thereon, the computer program code being configured to, when run on a processor, perform at least:
  • each language model comprises a set of entries that govern text prediction and/or correction of user text
  • a method comprising: determining, in response to input by a user, likelihood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text;
  • the method may provide for selection of a language model by performing one or more of:
  • selecting a particular language model allowing an electronic device to select a particular language model, selecting a particular language model for an electronic device, providing an indication of a particular language model.
  • the determination of the likelihood of appropriateness of respective language models may be based on a comparison of the likelihood of appropriateness of a plurality of text prediction and/or correction suggestions made by the respective language models in response to user [text] entry.
  • the determined likelihood of appropriateness may indicate the correlation between: a plurality of text prediction/correction suggestions provided by respective language models in response to user [text] entry; and
  • the determination of the likelihood of appropriateness of respective language models may comprise calculating the cumulative probability of a plurality of text prediction/correction suggestions for respective models.
  • the method may comprise providing for selection of the language model with the greatest likelihood of appropriateness compared to the other language models.
  • the method may comprise providing for selection of a language model in response to predetermined interval criterion.
  • the method may comprise providing one or more suggestions from the selected language model in response to user [text] entry.
  • the method may comprise providing for selection of a different language model to the currently selected language model in response to a predetermined frequency of occurrence of a particular language model having the greatest likelihood of appropriateness compared to the other language models.
  • the predetermined interval criterion may comprise one or more of the following:
  • new line in user text entry new paragraph in user text entry, new sentence in user text entry, a change in keyboard language and/or layout, a pause between periods of user text entry, user edit of already entered text, user exiting/closing of an application in which text has been entered, user entering/opening an application, and user returning to an application in which text has been entered.
  • the present disclosure includes one or more corresponding aspects, examples or features in isolation or in various combinations whether or not specifically stated (including claimed) in that combination or in isolation.
  • Corresponding means for performing one or more of the discussed functions are also within the present disclosure.
  • Figure 2 shows an electronic device comprising the apparatus of the first example.
  • Figure 3a shows a language model hierarchy
  • Figure 3b shows an illustration of the nature of language models.
  • Figure 4 shows an example where an apparatus has access to three language models.
  • Figure 5a shows example screenshots of possible types of text entry.
  • Figure 5b illustrates determination of likelihood of appropriateness according to one example.
  • Figure 6 illustrates different comparisons of likelihood of appropriateness for different language models.
  • Figu re 7 i l l ustrates selection of a lang uage model accord i n g to l i kel i hood of appropriateness for different language models.
  • Figure 8 illustrates a method of operation according to one or more examples.
  • Figure 9 illustrates schematically a computer readable media providing a program according to an example of the present disclosure.
  • an apparatus comprising a processor and memory including computer program code.
  • the memory and the computer program code are configured to, with the processor, cause the apparatus to determine, in response to [text] entry by a user, likelihood of appropriateness for two or more respective language models.
  • Each language model comprises a set of entries that govern text prediction and/or correction of user text.
  • the memory and computer program code are also configured to, with the processor, cause the apparatus to provide for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models.
  • Vocabulary and phrase structure can differ across applications or even within a single application.
  • a personal text message may utilise more casual or colloquial language (and thus corresponding language model), while searching for products on the internet may use less structured noun-based language (and thus corresponding language model).
  • a user may need to select which language model they may wish to use, and the same language model would then be used in all contexts whether sending a text message, writing an email, writing a text document, etc unless the user changes to a different language model again by manual selection.
  • a given user may be multi-lingual and may need to be able to switch between different languages (and thus different corresponding language models) to send messages to friends of different nationalities.
  • language models are not necessarily static in their contents. For example, Barack Obama was elected the president of the United States, but his name is significantly atypical in current Western language and would be unknown to language models devised a year prior to his election.
  • the beginning of an e-mail may consist of language that is defined as 80% "personal communication” and 20% “business”, as this would begin with an initial greeting, whereas the content may then progress throughout the email to be 20% "personal communication” and 80% "business” as the real issue is brought up in the content of the email.
  • Figure 1 schematically illustrates apparatus 100, which comprises an input 1 10, a processor 120, a memory 130, and an output 140.
  • the apparatus 100 is integrated as part of a mobile electronic device such as a mobile telephone. This is illustrated in Figure 2. In other examples it may be a module attached to a mobile device/telephone, or a mobile telephone device per se.
  • While this example relates to a mobile telephone device, one or more other examples can relate to portable electronic devices, in particular, so-called hand-portable electronic devices which may be hand-held in use (although they may be placed in a cradle in use).
  • hand-portable electronic devices include so-called Personal Digital Assistants (PDAs).
  • PDAs Personal Digital Assistants
  • the portable electronic devices/apparatus may provide one or more audio/text/video communication functions (for example, tele-communication, video-communication, and/or text transmission (Short Message Service (SMS)/ Multimedia Message Service (MMS)/emailing) functions), interactive/non-interactive viewing functions (for example, web-browsing, navigation, TV/program viewing functions), music recording/playing functions (for example, MP3 or other format and/or (FM/AM) radio broadcast recording/playing), downloading/sending of data functions, image capture function (for example, using a (for example, in-built) digital camera), and gaming functions.
  • audio/text/video communication functions for example, tele-communication, video-communication, and/or text transmission (Short Message Service (SMS)/ Multimedia Message Service (MMS)/emailing) functions
  • interactive/non-interactive viewing functions for example, web-browsing, navigation, TV/program viewing functions
  • music recording/playing functions for example, MP3 or other format and/
  • the input 1 10 and output 140 of this example are part of an input/output (I/O) interface for receiving signalling at the apparatus 100, and so as to be able to provide signalling to and from the processor 120.
  • the input/output interface is formed as part of a physical electrical connector (not shown) to allow a module-type example of the apparatus 100 to be attachable to an electronic device.
  • the processor 120 is a general purpose processor that is capable of performing the task of processing incoming signalling from the input 1 10 relating to text entry, but is also capable of performing other tasks as well.
  • the processor is an Application Specific Integrated Circuit (ASIC) that is specifically configured to perform the same tasks.
  • ASIC Application Specific Integrated Circuit
  • the processor 120 is formed from a plurality of separate integrated circuits that co-operatively perform said tasks. These integrated circuits may be provided locally to one another, or in other examples can be provided separately and remotely from one another.
  • the memory 130 is a computer readable medium that has computer program code/instructions stored thereon, and, in this example, several different language models that govern text prediction/correction.
  • the memory is readable/writeable solid state memory.
  • the memory may be read only memory (ROM), or may even be a physical hard drive.
  • the memory 130 is to be electrically connected to the processor 120 to allow the processor 120 to access the computer program code and language models stored on the memory 130.
  • the memory 130 may comprise multiple different memories that contain different language models, for example, remotely stored language models accessed via the internet or via a network server, or the like.
  • the memory can actually be distinct and separate from the apparatus 100, and may be just remotely accessed by the processor 120 of the apparatus.
  • the skilled person will appreciate that other such variations are also within the scope of the disclosure.
  • the computer program code allows the processor 120, after receiving signalling from the input 1 10 relating to text entry by a user, to operate on that signalling in such a way so as to determine the likelihood of appropriateness for the respective language models stored on the memory.
  • each language model is distinct from the others, and will therefore contain different entries (although there may be, or may not be, a degree of overlap in the entries).
  • Language models are not merely limited to distinct languages, but relate to groupings of different 'words' linked by a given category. For example, a language model may contain all UK post codes and nothing more, another may contain a list of US states and nothing more. Each language model will therefore be particularly appropriate for particular types of text entry because the text prediction/correction suggestions that a given model will make will be particularly suited/relevant to the context of related text entry.
  • the language model consists of a list of words with weights (corresponding to the frequencies of the words in a large text body).
  • a language model will suggest words from its vocabulary/set of entries to the user. There is some adaptation, such that the weight of a word is increased when the user uses the word, and the user can add new words to the vocabulary.
  • the language models may be considered to be lexicons containing sets and/or subsets of entries. These entries may be words that reflect encoded data such as n-grams, distinct languages, categorized information etc. For example, a language model could contain all US states but nothing else as it is a 'US state' language model. A language model could contain all words in the English dictionary, or a distinct language model could contain all email addresses within a company's internal directory.
  • t h e text prediction/correction suggestions will only be from the selected language model. This illustrates why it can be advantageous to provide a robust automated selection mechanism for changing language model used. By determining the likelihood of appropriateness for respective language models for given text entry, it is possible to identify which is the most appropriate language model to be selected for a given point in time. This is explained in more detail below.
  • the memory 130 actually has different language models stored thereon (discussed in more detail below in some example scenarios).
  • other language models may also be stored separately and remotely accessed by the apparatus 100, so as to take account of a wider number of language models, thereby locating the most appropriate language model for given text entry.
  • the input 1 10 is electrically connected to the processor 120, the output 140 is electrically connected to the processor 120, and the memory 130 is electrically connected to the processor 120. This is to allow the processor 120 to be in electrical communication with each of these elements.
  • the apparatus is formed on a printed circuit board (PCB, but this may also be a printed wiring board - PWB).
  • the processor 120 and memory 130 are actually soldered directly to the PCB, and the respective electrical connections between the processor 120 and the input 1 10, output 140, and memory 130 are also formed via soldering.
  • a multi-bit bus is provided to electrically connect the processor 120 to the respective components 1 10, 130 & 140.
  • the PCB provides a push-fit integrated circuit (IC) connector (not shown) for receiving the processor 120 and soldering lugs connected to this connector for allowing direct connection of the other components to the processor 120 (once push-fit into the IC connector).
  • screw terminals may be used to connect the various components together.
  • the processor 120 is actually formed within a module (for example, being formed within epoxy resin) and the processor 120 connected to external wire conductors that allow for connection to the other components (input 1 10, output 140 and memory 130).
  • a module for example, being formed within epoxy resin
  • the processor 120 connected to external wire conductors that allow for connection to the other components (input 1 10, output 140 and memory 130).
  • FIG. 4 illustrates an apparatus 400 in accordance with the apparatus 100 of the first example.
  • This apparatus 400 has access to three different language models, A, B and C stored on the memory (represented figuratively by the dashed lines connected to blocks A, B and C).
  • Model A relates to casual language such as 'hello, hi, hey, how are you, what are you up to' etc.
  • Model B relates to nouns such as 'dog, cat, me, you, box, hill', etc.
  • Model C relates to acronyms or abbreviations such as ' U RL, DLL, USB' etc.
  • the apparatus 400 will consider each of these to determine their likelihood of appropriateness in response to user text entry.
  • each of the language models are n-gram language models that take the entire word history up to the currently active word into account. This all affects the probability of a particular word suggestion being correct.
  • no manual or user-explicit switching between the different models is required - the switching between models or even using a combination of multiple models can take place automatically.
  • word bigrams two-word sequences, for example “that's fine”, “I'm ok”, “thank you”, etc. This is helpful in situations where if a user repeatedly enters certain phrases, for example, “Let's run to school. Better yet, let's drive to" By remembering the repetition of such phrases the system can predict that the user is going to enter the word "school”, because the last time "to” was entered, "school” followed “to”.
  • Figure 5a a user has started to enter text and has entered 'hrll'.
  • the apparatus 400 receives signalling via the input to the apparatus 400 that represents the text entry and, by virtue of the code on the memory 130 and the processor 120, operates on the text entry.
  • the apparatus 100 calls on the three different language models and requests for text prediction/correction suggestions from each in response to the user text entry.
  • the apparatus is asking each of the accessible language models 'what do you think 'hrll' should be?'
  • more than one suggestion is often returned, and they are ordered based on the language model's own ranking.
  • the model can be seen to rank suggestions higher based on their respective probabilities of a given suggestion being correct within that specific model.
  • Model A returns just one suggestion of 'hello'
  • model B returns three suggestions of 'hill, hell, hull'
  • model C returns two suggestions of 'URL, DLL'.
  • Each language model associates its own probability of correctness for that suggestion according to the information contained within the model itself. For model A, it is 50% certain that 'hello' is the word the user meant to input, for model B, it is 10% sure of each suggestion, and for model C it is 20% of each suggestion. Other models may be more or less sure of different entries and they need not all have the same probability of being correct.
  • the likelihood of appropriateness is measured by a cumulative probability value which is a total of 'log(x)' tallying up each entry, where x is the probability for each entry. For model A this is log(50) to give a likelihood of appropriateness of '3.91 ', for model B this is log(10)+log(10)+log(10) to give '3', and for model C this is log(20)+log(20) to give 2.6.
  • cumulative probability is used to measure the level of appropriateness of a language model.
  • a suitable alternative measure may be used instead.
  • Model A can therefore be seen to be the most appropriate language model for the text entry 'hrll'. In this example, language model A would then be selected for use in text correction/prediction.
  • the apparatus is provided as part of a network server and is intended to respond to language model queries from electronic devices.
  • the server apparatus operates substantially as per the example described immediately above, except that it does not actually select a language model, but merely provides for selection by providing an indication of the most appropriate language model after having performed said determination. Other examples are discussed below.
  • the language model was changed after a single word.
  • language model A was selected and its suggestions used for text prediction/correction, while the other language models and their suggestions were ignored for the purposes of providing text prediction/correction suggestions to a user.
  • suggestions from the other language models can still be included in suggestions provided to a user for text prediction/correction, but
  • the apparatus 400 can also utilise rules that mean that language model selection is only performed at certain intervals, based on language model interval selection criterion/criteria.
  • the provision of selection of a particular language model can provide for switching of models to take place automatically, if the system knows that, for instance, the current text entry field must contain an address. This can be considered to be a type of interval or context criterion that denotes that a particular type of text entry is about to be received.
  • Figure 6 illustrates how the apparatus 400 can operate under different intervals and scenario.
  • a language model is identified as 'most appropriate'. While this may not result in a new language model selection for text prediction/correction, each time a model is determined to be most appropriate it can be recorded as such. For example, in the first row of Figure 6, model A has been identified as most appropriate (via the process discussed in the example above) 10 times, while model B has only been identified as most appropriate 8 times, and model C only 2 times. In this example, the occurrences of being most appropriate are stored. When a certain model exceeds a predetermined threshold (for example, 10 instances of being most appropriate within a given application, or text document/message) the apparatus then performs language selection and switches to that model.
  • a predetermined threshold for example, 10 instances of being most appropriate within a given application, or text document/message
  • the language model would be switched to model A as it has reached the predetermined threshold of 10.
  • the scoring of the occurrences can be reset, or at least a new count begun as a new interval has begun. A running total of all occurrences could be kept, for later use.
  • the interval may be defined by some other measure, such as the end of a line, end of a paragraph, new sentence, or the like. A tally could therefore be kept for each sentence and the language model switched whenever a particular language model outranks the others as having the most occurrences within that interval.
  • the apparatus is configured to select a different language model when a predetermined threshold is exceeded (in this case, 10), and a new language whenever a new paragraph is started based on the model with the highest recorded occurrence up to that point.
  • a predetermined threshold in this case, 10
  • the different language models are identified as most appropriate per line rather than every word.
  • model A ranks as most appropriate for the first three lines based on the number of occurrences. Once the user starts a new paragraph, the occurrences are compared and model A is identified as having the highest number of occurrences. Language A is therefore selected, and the occurrence score reset to 0.
  • model A and model B have equal occurrence scores. As a result, the language model is not changed but the status quo is maintained given there is no reason to change the language model. Nevertheless, the scores are then reset.
  • model A then racks up more occurrences than any other model and quickly reaches the predetermined threshold of 10. Model A is then switched to. This occurs just before the end of the paragraph and the end of the message. At this point the scores are reset ready for the next message.
  • the scores are kept, or constantly tallied up with each interval being monitored.
  • applications start up with the last used model selected, or the most used model selected (either in last message or over a period of time), or with no model selected.
  • model A is then identified and selected for text prediction/correction when the interval criterion of a new paragraph occurs based on the highest number of occurrences of model A being most appropriate.
  • model B is selected at this point.
  • model A then reaches the predetermined threshold before any other model and so model A is then selected.
  • Figures 3a and 3b illustrates four different categories of language model according to the present example: (a) Online language model, shared over the network - such models are used when the data connection is fast enough. Each user can gain access to many different language models that are updated continuously based on data from thousands or millions of users. Such models are not stored locally on the user's device;
  • (d) User-specific language model, stored on the device - these models do not contain n-grams of words, but rather n-grams of characters or other sub-word units, such as morphemes. If the text entry does not match any words in the default models (a) and (b) combined with (c), the system switches to the backup model (d).
  • the backup model mimics typical strings of the target language, although the exact string proposed may not be available in the default word-based models (a) or (b). That is, the backup model makes an "educated guess" of what words there are in the language and how well this new word fits in the current text context based on, for example, word history, application history, context, the user entering text, or the like.
  • the automatic switching to the backup model (d) in response to certain scenarios may be notified to the user using a sound signal, a change of the visual appearance (font or color) or something of the kind, thereby signalling that the suggested word is not necessarily a true word.
  • a sound signal e.g., a sound signal
  • a change of the visual appearance e.g., a change of the visual appearance
  • something of the kind e.g., a sound signal, a change of the visual appearance (font or color) or something of the kind, thereby signalling that the suggested word is not necessarily a true word.
  • ITU-T keypad if the user is not happy with the new word proposed by the character n-gram model, s/he can switch to multi-tap mode as a last resort.
  • each language model comprises a set of entries that govern text prediction and/or correction of user text
  • Figure 9 illustrates schematically a computer/processor readable media 900 providing a program according to an example of the present invention.
  • the computer/processor readable media is a disc such as a digital versatile disc (DVD) or a compact disc (CD).
  • DVD digital versatile disc
  • CD compact disc
  • the computer readable media may be any media that has been programmed in such a way as to carry out an inventive function.
  • Another advantage of the above examples is that it they are not dependent on the different types of language model. Based on the probabilities provided by the different language models, the likelihood of appropriateness is determined and a language model selection can be performed accordingly.
  • any mentioned apparatus/device/server and/or other features of particular mentioned apparatus/device/server may be provided by apparatus arranged such that they become configured to carry out the desired operations only when enabled, for example, switched on, or the like. In such cases, they may not necessarily have the appropriate software loaded into the active memory in the non-enabled (for example, switched off state) and only load the appropriate software in the enabled (for example, on state).
  • the apparatus may comprise hardware circuitry and/or firmware.
  • the apparatus may comprise software loaded onto memory. Such software/computer programs may be recorded on the same memory/processor/functional units and/or on one or more memories/processors/functional units.
  • a particular mentioned apparatus/device/server may be preprogrammed with the appropriate software to carry out desired operations, and wherein the appropriate software can be enabled for use by a user downloading a "key", for example, to unlock/enable the software and its associated functionality.
  • Advantages associated with such examples can include a reduced requirement to download data when further functionality is required for a device, and this can be useful in examples where a device is perceived to have sufficient capacity to store such pre-programmed software for functionality that may not be enabled by a user.
  • any mentioned apparatus/circuitry/elements/processor may have other functions in addition to the mentioned functions, and that these functions may be performed by the same apparatus/circuitry/elements/processor.
  • One or more disclosed aspects may encompass the electronic distribution of associated computer programs and computer programs (which may be source/transport encoded) recorded on an appropriate carrier (for example, memory, signal).
  • any "computer” described herein can comprise a collection of one or more individual processors/processing elements that may or may not be located on the same circuit board, or the same region/position of a circuit board or even the same device. In some examples one or more of any mentioned processors may be distributed over a plurality of devices. The same or different processor/processing elements may perform one or more functions described herein.
  • signal may refer to one or more signals transmitted as a series of transmitted and/or received signals.
  • the series of signals may comprise one, two, three, four or even more individual signal components or distinct signals to make up said signalling. Some or all of these individual signals may be transmitted/received simultaneously, in sequence, and/or such that they temporally overlap one another.
  • processors and memory may comprise a computer processor, Application Specific Integrated Circuit (ASIC), field-programmable gate array (FPGA), and/or other hardware components that have been programmed in such a way to carry out the inventive function.
  • ASIC Application Specific Integrated Circuit
  • FPGA field-programmable gate array

Abstract

In one or more examples described herein, there is provided an apparatus. The apparatus comprises a processor and memory including computer program code. The memory and the computer program code are configured to, with the processor, cause the apparatus to determine, in response to [text]entry by a user, likelihood of appropriateness for two or more respective language models. Each language model comprises a set of entries that govern text prediction and/or correction of user text. The memory and computer program code are also configured to, with the processor, cause the apparatus to provide for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models.

Description

LANGUAGE MODELS FOR INPUT TEXT PREDICTION
Technical Field The present disclosure relates to the field of language models, associated methods, computer programs and apparatus.
Background Electronic devices that allow for text entry from a user also provide for text correction and/or prediction. For example, mobile phones can often provide type alphanumeric language prediction for alphanumeric keypads. In order to provide text correction, language models are often integrated into the system. These are utilised by text prediction/correction processes to enable word completion, disambiguation of ambiguous input, and automatic correction of spelling errors. The smaller the keypad of such devices, the more important smart text entry solutions are, because users perform increasingly complex operations on their mobile devices that require one or more of correction, prediction, and disambiguation, etc (for example, using web browsers, writing e-mails, and participating in social networks).
The listing or discussion of a prior-published document or any background in this specification should not necessarily be taken as an acknowledgement that the document or background is part of the state of the art or is common general knowledge. One or more aspects/examples of the present disclosure may or may not address one or more of the background issues.
Summary
In a first aspect, there is provided an apparatus, comprising a processor and memory including computer program code, the memory and the computer program code being configured to, with the processor, cause the apparatus to:
determine, in response to input by a user, likelihood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text; providing for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models. Provision for selection may comprise one or more of:
selecting a particular language model, allowing an electronic device to select a particular language model, selecting a particular language model for an electronic device, providing an indication of a particular language model.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
determine the likelihood of appropriateness of respective language models based on a plurality of text prediction and/or correction suggestions made by the respective language models in response to user input.
The determined likelihood of appropriateness may indicate the correlation between: a plurality of text prediction/correction suggestions provided by respective language models in response to user input; and
the user input.
The language models may be considered to be lexicons containing sets and/or subsets of entries. These entries may be words that reflect encoded data such as n-grams, distinct languages, categorized information etc. For example, a language model could contain all US states but nothing else as it is a 'US state' language model. A language model could contain all words in the English dictionary, or a distinct language model could contain all email addresses within a company's internal directory. The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
determine the likelihood of appropriateness of respective language models by calculating the cumulative probability of a plurality of text prediction/correction suggestions for respective models. The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
provide for selection of the language model with the greatest likelihood of appropriateness compared to the other language models.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
provide for selection of a language model in response to predetermined interval criterion.
The predetermined interval criterion may comprise one or more of the following:
new line in user text entry, new paragraph in user text entry, new sentence in user text entry, a change in keyboard language and/or layout, a pause between periods of user text entry, user edit of already entered text, user exiting/closing of an application in which text has been entered, user entering/opening an application, and user returning to an application in which text has been entered.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
provide one or more suggestions from the selected language model in response to user input.
The memory and the computer program code may be configured to, with the processor, cause the apparatus to:
provide for selection of a different language model to the currently selected language model in response to a predetermined frequency of occurrence of a particular language model having the greatest likelihood of appropriateness compared to the other language models.
The apparatus may comprise one or more language models that make up the plurality, and/or may have access to one or more language models stored remotely from the apparatus. Respective language models may comprise one or more of the following: different languages (English, French, German, Spanish, and the like), locations (such as street names, countries, counties, states, districts, and the like) n-grams (bigrams, trigrams, and the like), and other sets of data. In another aspect there is provided an apparatus, comprising:
a determinator configured to determine, in response to input by a user, likelihood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text;
a selector configured to provide for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models.
In another aspect there is provided an apparatus, comprising:
a means for determining configured to determine, in response to input by a user, likelihood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text;
a means for selecting configured to provide for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models.
In another aspect there is provided a non-transitory computer readable medium, comprising computer program code stored thereon, the computer program code being configured to, when run on a processor, perform at least:
determining, in response to input by a user, likelihood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text;
providing for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models.
In another aspect there is provided a method, comprising: determining, in response to input by a user, likelihood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text;
providing for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models.
The method may provide for selection of a language model by performing one or more of:
selecting a particular language model, allowing an electronic device to select a particular language model, selecting a particular language model for an electronic device, providing an indication of a particular language model.
The determination of the likelihood of appropriateness of respective language models may be based on a comparison of the likelihood of appropriateness of a plurality of text prediction and/or correction suggestions made by the respective language models in response to user [text] entry.
The determined likelihood of appropriateness may indicate the correlation between: a plurality of text prediction/correction suggestions provided by respective language models in response to user [text] entry; and
the user [text] entry.
The determination of the likelihood of appropriateness of respective language models may comprise calculating the cumulative probability of a plurality of text prediction/correction suggestions for respective models.
The method may comprise providing for selection of the language model with the greatest likelihood of appropriateness compared to the other language models.
The method may comprise providing for selection of a language model in response to predetermined interval criterion.
The method may comprise providing one or more suggestions from the selected language model in response to user [text] entry. The method may comprise providing for selection of a different language model to the currently selected language model in response to a predetermined frequency of occurrence of a particular language model having the greatest likelihood of appropriateness compared to the other language models.
The predetermined interval criterion may comprise one or more of the following:
new line in user text entry, new paragraph in user text entry, new sentence in user text entry, a change in keyboard language and/or layout, a pause between periods of user text entry, user edit of already entered text, user exiting/closing of an application in which text has been entered, user entering/opening an application, and user returning to an application in which text has been entered.
The present disclosure includes one or more corresponding aspects, examples or features in isolation or in various combinations whether or not specifically stated (including claimed) in that combination or in isolation. Corresponding means for performing one or more of the discussed functions are also within the present disclosure.
Corresponding computer programs for implementing one or more of the methods disclosed are also within the present disclosure and encompassed by one or more of the described examples.
The above summary is intended to be merely exemplary and non-limiting. Brief Description of the Figures
A description is now given, by way of example only, with reference to the accompanying drawings, in which:- Figure 1 shows an apparatus according to a first example.
Figure 2 shows an electronic device comprising the apparatus of the first example.
Figure 3a shows a language model hierarchy.
Figure 3b shows an illustration of the nature of language models.
Figure 4 shows an example where an apparatus has access to three language models. Figure 5a shows example screenshots of possible types of text entry. Figure 5b illustrates determination of likelihood of appropriateness according to one example.
Figure 6 illustrates different comparisons of likelihood of appropriateness for different language models.
Figu re 7 i l l ustrates selection of a lang uage model accord i n g to l i kel i hood of appropriateness for different language models.
Figure 8 illustrates a method of operation according to one or more examples.
Figure 9 illustrates schematically a computer readable media providing a program according to an example of the present disclosure.
ExampleSpecific Description
In one or more examples described herein, there is provided an apparatus. The apparatus comprises a processor and memory including computer program code. The memory and the computer program code are configured to, with the processor, cause the apparatus to determine, in response to [text] entry by a user, likelihood of appropriateness for two or more respective language models. Each language model comprises a set of entries that govern text prediction and/or correction of user text. The memory and computer program code are also configured to, with the processor, cause the apparatus to provide for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models.
Vocabulary and phrase structure can differ across applications or even within a single application. A personal text message may utilise more casual or colloquial language (and thus corresponding language model), while searching for products on the internet may use less structured noun-based language (and thus corresponding language model). A user may need to select which language model they may wish to use, and the same language model would then be used in all contexts whether sending a text message, writing an email, writing a text document, etc unless the user changes to a different language model again by manual selection.
In another example, a given user may be multi-lingual and may need to be able to switch between different languages (and thus different corresponding language models) to send messages to friends of different nationalities. Also, it should be pointed out that the world is not in a static state, and this is reflected in the current vocabulary and the topics being discussed at a certain time. Thus, language models are not necessarily static in their contents. For example, Barack Obama was elected the president of the United States, but his name is significantly atypical in current Western language and would be unknown to language models devised a year prior to his election.
In another example, the beginning of an e-mail may consist of language that is defined as 80% "personal communication" and 20% "business", as this would begin with an initial greeting, whereas the content may then progress throughout the email to be 20% "personal communication" and 80% "business" as the real issue is brought up in the content of the email. By determining the likelihood of appropriateness for a plurality of language models, and then comparing the determined likelihood of appropriateness for each as per the apparatus of one or more examples described herein, it is possible to provide for selection of the most appropriate language model for a given moment or interval. In particular, a user would not be forced into using the same language model throughout text entry, nor would they would need to manually change the language model to one they felt was more suitable.
We will now describe a first example with reference to Figure 1 .
Figure 1 schematically illustrates apparatus 100, which comprises an input 1 10, a processor 120, a memory 130, and an output 140. In this example the apparatus 100 is integrated as part of a mobile electronic device such as a mobile telephone. This is illustrated in Figure 2. In other examples it may be a module attached to a mobile device/telephone, or a mobile telephone device per se.
While this example relates to a mobile telephone device, one or more other examples can relate to portable electronic devices, in particular, so-called hand-portable electronic devices which may be hand-held in use (although they may be placed in a cradle in use). Such hand-portable electronic devices include so-called Personal Digital Assistants (PDAs).
The portable electronic devices/apparatus according to one or more disclosed aspects/examples may provide one or more audio/text/video communication functions (for example, tele-communication, video-communication, and/or text transmission (Short Message Service (SMS)/ Multimedia Message Service (MMS)/emailing) functions), interactive/non-interactive viewing functions (for example, web-browsing, navigation, TV/program viewing functions), music recording/playing functions (for example, MP3 or other format and/or (FM/AM) radio broadcast recording/playing), downloading/sending of data functions, image capture function (for example, using a (for example, in-built) digital camera), and gaming functions.
The input 1 10 and output 140 of this example are part of an input/output (I/O) interface for receiving signalling at the apparatus 100, and so as to be able to provide signalling to and from the processor 120. In other examples, the input/output interface is formed as part of a physical electrical connector (not shown) to allow a module-type example of the apparatus 100 to be attachable to an electronic device.
The processor 120 is a general purpose processor that is capable of performing the task of processing incoming signalling from the input 1 10 relating to text entry, but is also capable of performing other tasks as well. In other examples, the processor is an Application Specific Integrated Circuit (ASIC) that is specifically configured to perform the same tasks. In other examples the processor 120 is formed from a plurality of separate integrated circuits that co-operatively perform said tasks. These integrated circuits may be provided locally to one another, or in other examples can be provided separately and remotely from one another.
The memory 130 is a computer readable medium that has computer program code/instructions stored thereon, and, in this example, several different language models that govern text prediction/correction. In this example, the memory is readable/writeable solid state memory. In other examples, the memory may be read only memory (ROM), or may even be a physical hard drive.
The memory 130 is to be electrically connected to the processor 120 to allow the processor 120 to access the computer program code and language models stored on the memory 130. The skilled person will appreciate that, in some examples, the memory 130 may comprise multiple different memories that contain different language models, for example, remotely stored language models accessed via the internet or via a network server, or the like. In some examples, the memory can actually be distinct and separate from the apparatus 100, and may be just remotely accessed by the processor 120 of the apparatus. The skilled person will appreciate that other such variations are also within the scope of the disclosure.
The computer program code allows the processor 120, after receiving signalling from the input 1 10 relating to text entry by a user, to operate on that signalling in such a way so as to determine the likelihood of appropriateness for the respective language models stored on the memory.
In principle, each language model is distinct from the others, and will therefore contain different entries (although there may be, or may not be, a degree of overlap in the entries). Language models are not merely limited to distinct languages, but relate to groupings of different 'words' linked by a given category. For example, a language model may contain all UK post codes and nothing more, another may contain a list of US states and nothing more. Each language model will therefore be particularly appropriate for particular types of text entry because the text prediction/correction suggestions that a given model will make will be particularly suited/relevant to the context of related text entry.
The language model consists of a list of words with weights (corresponding to the frequencies of the words in a large text body). A language model will suggest words from its vocabulary/set of entries to the user. There is some adaptation, such that the weight of a word is increased when the user uses the word, and the user can add new words to the vocabulary. The language models may be considered to be lexicons containing sets and/or subsets of entries. These entries may be words that reflect encoded data such as n-grams, distinct languages, categorized information etc. For example, a language model could contain all US states but nothing else as it is a 'US state' language model. A language model could contain all words in the English dictionary, or a distinct language model could contain all email addresses within a company's internal directory. When a user sta rts to ty pe a n d o n e of t h e s e l a n g u a g e m o d e l s i s s e l ecte d , t h e text prediction/correction suggestions provided will only be from the selected language model. This illustrates why it can be advantageous to provide a robust automated selection mechanism for changing language model used. By determining the likelihood of appropriateness for respective language models for given text entry, it is possible to identify which is the most appropriate language model to be selected for a given point in time. This is explained in more detail below. In this example, the memory 130 actually has different language models stored thereon (discussed in more detail below in some example scenarios). However, as has been discussed above, other language models may also be stored separately and remotely accessed by the apparatus 100, so as to take account of a wider number of language models, thereby locating the most appropriate language model for given text entry.
We will now describe the assembly/physical structure of this apparatus 100.
The input 1 10 is electrically connected to the processor 120, the output 140 is electrically connected to the processor 120, and the memory 130 is electrically connected to the processor 120. This is to allow the processor 120 to be in electrical communication with each of these elements.
In this example, the apparatus is formed on a printed circuit board (PCB, but this may also be a printed wiring board - PWB). The processor 120 and memory 130 are actually soldered directly to the PCB, and the respective electrical connections between the processor 120 and the input 1 10, output 140, and memory 130 are also formed via soldering. In a variation of this example, a multi-bit bus is provided to electrically connect the processor 120 to the respective components 1 10, 130 & 140. In other examples, the PCB provides a push-fit integrated circuit (IC) connector (not shown) for receiving the processor 120 and soldering lugs connected to this connector for allowing direct connection of the other components to the processor 120 (once push-fit into the IC connector). In other examples, screw terminals may be used to connect the various components together. In another example, for example one where the memory 130 providing the language models is actually separate from the apparatus 100, the processor 120 is actually formed within a module (for example, being formed within epoxy resin) and the processor 120 connected to external wire conductors that allow for connection to the other components (input 1 10, output 140 and memory 130). We will now describe the operation of this example with reference to Figure 4 and Figures 5a and 5b.
Figure 4 illustrates an apparatus 400 in accordance with the apparatus 100 of the first example. This apparatus 400 has access to three different language models, A, B and C stored on the memory (represented figuratively by the dashed lines connected to blocks A, B and C). This is a greatly simplified illustration to show how simple examples can operate. Model A relates to casual language such as 'hello, hi, hey, how are you, what are you up to' etc. Model B relates to nouns such as 'dog, cat, me, you, box, hill', etc. Model C relates to acronyms or abbreviations such as ' U RL, DLL, USB' etc. The apparatus 400 will consider each of these to determine their likelihood of appropriateness in response to user text entry.
In this example, each of the language models are n-gram language models that take the entire word history up to the currently active word into account. This all affects the probability of a particular word suggestion being correct. As has been discussed above, there can be multiple language models, such as language-specific and domain/application-specific. As has also been discussed, no manual or user-explicit switching between the different models is required - the switching between models or even using a combination of multiple models can take place automatically.
In addition, for some language models the previous word may affect the probability of the next one, and such models (or systems using such models) can remember word bigrams (two-word sequences, for example "that's fine", "I'm ok", "thank you", etc). This is helpful in situations where if a user repeatedly enters certain phrases, for example, "Let's run to school. Better yet, let's drive to..." By remembering the repetition of such phrases the system can predict that the user is going to enter the word "school", because the last time "to" was entered, "school" followed "to". In Figure 5a, a user has started to enter text and has entered 'hrll'. The apparatus 400 receives signalling via the input to the apparatus 400 that represents the text entry and, by virtue of the code on the memory 130 and the processor 120, operates on the text entry. In this example, the apparatus 100 calls on the three different language models and requests for text prediction/correction suggestions from each in response to the user text entry. In essence, the apparatus is asking each of the accessible language models 'what do you think 'hrll' should be?' As with most language models, more than one suggestion is often returned, and they are ordered based on the language model's own ranking. In essence, the model can be seen to rank suggestions higher based on their respective probabilities of a given suggestion being correct within that specific model.
Figure 5b shows the results of such a query with the language models. Model A returns just one suggestion of 'hello', model B returns three suggestions of 'hill, hell, hull', and model C returns two suggestions of 'URL, DLL'. Each language model associates its own probability of correctness for that suggestion according to the information contained within the model itself. For model A, it is 50% certain that 'hello' is the word the user meant to input, for model B, it is 10% sure of each suggestion, and for model C it is 20% of each suggestion. Other models may be more or less sure of different entries and they need not all have the same probability of being correct.
The suggestions from each language model are returned to the apparatus which then determines the likelihood of appropriateness for each model. In this example, the likelihood of appropriateness is measured by a cumulative probability value which is a total of 'log(x)' tallying up each entry, where x is the probability for each entry. For model A this is log(50) to give a likelihood of appropriateness of '3.91 ', for model B this is log(10)+log(10)+log(10) to give '3', and for model C this is log(20)+log(20) to give 2.6. In this example, cumulative probability is used to measure the level of appropriateness of a language model. However, a suitable alternative measure may be used instead.
From this, it can be seen that the model with the highest likelihood of appropriateness is model A. Model A can therefore be seen to be the most appropriate language model for the text entry 'hrll'. In this example, language model A would then be selected for use in text correction/prediction.
This is a simple example, and robustness can be improved in other examples. For example, there is also an example where the apparatus is provided as part of a network server and is intended to respond to language model queries from electronic devices. The server apparatus operates substantially as per the example described immediately above, except that it does not actually select a language model, but merely provides for selection by providing an indication of the most appropriate language model after having performed said determination. Other examples are discussed below.
In the example above, the language model was changed after a single word. In particular, language model A was selected and its suggestions used for text prediction/correction, while the other language models and their suggestions were ignored for the purposes of providing text prediction/correction suggestions to a user. In variations of this example, suggestions from the other language models can still be included in suggestions provided to a user for text prediction/correction, but
If the language model were switched or changed in response to every word entered, this could result in a rapid fluctuation of language model selection. Instead, it may be more beneficial to introduce criteria that restrict the rate at which the language model is changed or a new language model is selected. For example, the apparatus 400 can also utilise rules that mean that language model selection is only performed at certain intervals, based on language model interval selection criterion/criteria. In addition, the provision of selection of a particular language model can provide for switching of models to take place automatically, if the system knows that, for instance, the current text entry field must contain an address. This can be considered to be a type of interval or context criterion that denotes that a particular type of text entry is about to be received. This provides a clear indication that a particular language model is to be used based on the context. Then the system can suggest n umbers and letters interchangeably depending on where in the field the cursor is located : <number>, <name> (Street | Road, Alley | ...) ("24, Main Street").
Figure 6 illustrates how the apparatus 400 can operate under different intervals and scenario.
As per the example 400, after text is entered, a language model is identified as 'most appropriate'. While this may not result in a new language model selection for text prediction/correction, each time a model is determined to be most appropriate it can be recorded as such. For example, in the first row of Figure 6, model A has been identified as most appropriate (via the process discussed in the example above) 10 times, while model B has only been identified as most appropriate 8 times, and model C only 2 times. In this example, the occurrences of being most appropriate are stored. When a certain model exceeds a predetermined threshold (for example, 10 instances of being most appropriate within a given application, or text document/message) the apparatus then performs language selection and switches to that model. In this example, the language model would be switched to model A as it has reached the predetermined threshold of 10. Once a new selection has been performed, the scoring of the occurrences can be reset, or at least a new count begun as a new interval has begun. A running total of all occurrences could be kept, for later use.
Alternatively, the interval may be defined by some other measure, such as the end of a line, end of a paragraph, new sentence, or the like. A tally could therefore be kept for each sentence and the language model switched whenever a particular language model outranks the others as having the most occurrences within that interval.
In other examples, several of these ideas can be taken into account by a single apparatus. This is illustrated in Figure 7. In this example, the apparatus is configured to select a different language model when a predetermined threshold is exceeded (in this case, 10), and a new language whenever a new paragraph is started based on the model with the highest recorded occurrence up to that point. A user is writing a text message in this example, and the different language models are identified as most appropriate per line rather than every word. As can be seen, model A ranks as most appropriate for the first three lines based on the number of occurrences. Once the user starts a new paragraph, the occurrences are compared and model A is identified as having the highest number of occurrences. Language A is therefore selected, and the occurrence score reset to 0.
Once in the new paragraph, the occurrences start to tip in favour of model B. While this paragraph is still being completed, the predetermined threshold of occurrences is reached by model B. This model is therefore selected and the count reset. At the end of the paragraph, model A and model B have equal occurrence scores. As a result, the language model is not changed but the status quo is maintained given there is no reason to change the language model. Nevertheless, the scores are then reset.
In the next paragraph, model A then racks up more occurrences than any other model and quickly reaches the predetermined threshold of 10. Model A is then switched to. This occurs just before the end of the paragraph and the end of the message. At this point the scores are reset ready for the next message.
In one example, the scores are kept, or constantly tallied up with each interval being monitored. In another example, applications start up with the last used model selected, or the most used model selected (either in last message or over a period of time), or with no model selected.
In summary, in the example of Figure 7, the following selections were performed:
(1 ) The user starts to enter text and model A is then identified and selected for text prediction/correction when the interval criterion of a new paragraph occurs based on the highest number of occurrences of model A being most appropriate.
(2) In the next paragraph, the number of occurrences of model B being determined as most appropriate exceeds the predetermined occurrence threshold of '10' before any other model, and so model B is selected at this point.
(3) A new paragraph is started shortly thereafter but there is an equal ranking between model A and B, so no new model is selected.
(4) In the next (and final paragraph), model A then reaches the predetermined threshold before any other model and so model A is then selected. The text entry ends shortly after and so no further selections are performed.
In the above examples, all the models discussed were stored on the memory of the apparatus. However, as has already been discussed, language models can be stored and accessed remotely from the apparatus. We will now discuss such an example.
Different models generally fall into different categories and as such are treated differently by this example. Figures 3a and 3b illustrates four different categories of language model according to the present example: (a) Online language model, shared over the network - such models are used when the data connection is fast enough. Each user can gain access to many different language models that are updated continuously based on data from thousands or millions of users. Such models are not stored locally on the user's device;
(b) Local language model, stored on the device - these models are similar to the on-line models, but much smaller, and thus with a smaller vocabulary and n- gram coverage;
(c) Character or word fragment based language model, stored on the device - these models are stored on the device and/or copied to a server on-line and they are used in combination with models of category (a) and (b); and
(d) User-specific language model, stored on the device - these models do not contain n-grams of words, but rather n-grams of characters or other sub-word units, such as morphemes. If the text entry does not match any words in the default models (a) and (b) combined with (c), the system switches to the backup model (d). The backup model mimics typical strings of the target language, although the exact string proposed may not be available in the default word-based models (a) or (b). That is, the backup model makes an "educated guess" of what words there are in the language and how well this new word fits in the current text context based on, for example, word history, application history, context, the user entering text, or the like.
To the user, the automatic switching to the backup model (d) in response to certain scenarios may be notified to the user using a sound signal, a change of the visual appearance (font or color) or something of the kind, thereby signalling that the suggested word is not necessarily a true word. If an ITU-T keypad is in use, if the user is not happy with the new word proposed by the character n-gram model, s/he can switch to multi-tap mode as a last resort. There may be other categories or sub-categories, but these broadly set out different types of language model. There can also be a number of different language models within each category. Some may differ only slightly, or be variations on one another. This allows a wider pool of language models to be accessed at various points by the apparatus to perform appropriate language model selection. In Figure 8, there is depicted a method according to one or more examples described above. The method comprises:
810 - determ i n i ng , i n response to text entry by a u ser, l i kel i h ood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text; and
820 - providing for selection of a language model for use in text prediction and/or correction of u se r entered text by com pa ri n g th e d eterm i n ed l i kel i h ood of appropriateness for said language models.
Figure 9 illustrates schematically a computer/processor readable media 900 providing a program according to an example of the present invention. In this example, the computer/processor readable media is a disc such as a digital versatile disc (DVD) or a compact disc (CD). In other examples, the computer readable media may be any media that has been programmed in such a way as to carry out an inventive function.
Another advantage of the above examples is that it they are not dependent on the different types of language model. Based on the probabilities provided by the different language models, the likelihood of appropriateness is determined and a language model selection can be performed accordingly.
It will be appreciated to the skilled reader that any mentioned apparatus/device/server and/or other features of particular mentioned apparatus/device/server may be provided by apparatus arranged such that they become configured to carry out the desired operations only when enabled, for example, switched on, or the like. In such cases, they may not necessarily have the appropriate software loaded into the active memory in the non-enabled (for example, switched off state) and only load the appropriate software in the enabled (for example, on state). The apparatus may comprise hardware circuitry and/or firmware. The apparatus may comprise software loaded onto memory. Such software/computer programs may be recorded on the same memory/processor/functional units and/or on one or more memories/processors/functional units.
In some examples, a particular mentioned apparatus/device/server may be preprogrammed with the appropriate software to carry out desired operations, and wherein the appropriate software can be enabled for use by a user downloading a "key", for example, to unlock/enable the software and its associated functionality. Advantages associated with such examples can include a reduced requirement to download data when further functionality is required for a device, and this can be useful in examples where a device is perceived to have sufficient capacity to store such pre-programmed software for functionality that may not be enabled by a user.
It will be appreciated that the any mentioned apparatus/circuitry/elements/processor may have other functions in addition to the mentioned functions, and that these functions may be performed by the same apparatus/circuitry/elements/processor. One or more disclosed aspects may encompass the electronic distribution of associated computer programs and computer programs (which may be source/transport encoded) recorded on an appropriate carrier (for example, memory, signal).
It will be appreciated that any "computer" described herein can comprise a collection of one or more individual processors/processing elements that may or may not be located on the same circuit board, or the same region/position of a circuit board or even the same device. In some examples one or more of any mentioned processors may be distributed over a plurality of devices. The same or different processor/processing elements may perform one or more functions described herein.
It will be appreciated that the term "signalling" may refer to one or more signals transmitted as a series of transmitted and/or received signals. The series of signals may comprise one, two, three, four or even more individual signal components or distinct signals to make up said signalling. Some or all of these individual signals may be transmitted/received simultaneously, in sequence, and/or such that they temporally overlap one another.
With reference to any discussion of any mentioned computer and/or processor and memory (for example, including ROM, CD-ROM etc), these may comprise a computer processor, Application Specific Integrated Circuit (ASIC), field-programmable gate array (FPGA), and/or other hardware components that have been programmed in such a way to carry out the inventive function.
The applicant hereby discloses in isolation each individual feature described herein and any combination of two or more such features, to the extent that such features or combinations are capable of being carried out based on the present specification as a whole, in the light of the common general knowledge of a person skilled in the art, irrespective of whether such features or combinations of features solve any problems disclosed herein, and without limitation to the scope of the claims. The applicant indicates that the disclosed aspects/examples may consist of any such individual feature or combination of features. In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the disclosure. While there have been shown and described and pointed out fundamental novel features of one or more examples of the invention as described above, it will be understood that various omissions and substitutions and changes in the form and details of the devices and methods described may be made by those skilled in the art without departing from the spirit of the invention. For example, it is expressly intended that all combinations of those elements and/or method steps which perform substantially the same function in substantially the same way to achieve the same results are within the scope of the invention. Moreover, it should be recognized that structures and/or elements and/or method steps shown and/or described in connection with any disclosed form or example of the invention may be incorporated in any other disclosed or described or suggested form or example as a general matter of design choice. Furthermore, in the claims means- plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents, but also equivalent structures. Thus although a nail and a screw may not be structural equivalents in that a nail employs a cylindrical surface to secure wooden parts together, whereas a screw employs a helical surface, in the environment of fastening wooden parts, a nail and a screw may be equivalent structures.

Claims

Claims
1 . An apparatus, comprising a processor and memory including computer program code, the memory and the computer program code being configured to, with the processor, cause the apparatus to:
determine, in response to input by a user, likelihood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text;
provide for selection of a language model for use in text prediction and/or correcti on of u ser entered text by co m pa ri n g th e d eterm i n ed l i kel i h ood of appropriateness for said language models.
2. The apparatus of claim 1 , wherein the user input comprises text entry.
3. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to provide for selection of a language model by performing one or more of:
selecting a particular language model, allowing an electronic device to select a particular language model, selecting a particular language model for an electronic device, providing an indication of a particular language model.
4. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to:
determine the likelihood of appropriateness of respective language models based on a comparison of the likelihood of appropriateness of a plurality of text prediction and/or correction suggestions made by the respective language models in response to user input.
5. The apparatus of claim 4, wherein the determined likelihood of appropriateness indicates the correlation between:
a plurality of text prediction/correction suggestions provided by respective language models in response to user input; and
the user input.
6. The apparatus of claim 4, wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to:
determine the likelihood of appropriateness of respective language models by calculating the cumulative probability of a plurality of text prediction/correction suggestions for respective models.
7. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to:
provide for selection of the language model with the greatest likelihood of appropriateness compared to the other language models.
8. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to:
provide for selection of a language model in response to predetermined interval criterion.
9. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to:
provide one or more suggestions from the selected language model in response to user input.
10. The apparatus of claim 1 , wherein the memory and the computer program code are configured to, with the processor, cause the apparatus to:
provide for selection of a different language model to the currently selected language model in response to a predetermined frequency of occurrence of a particular language model having the greatest likelihood of appropriateness compared to the other language models.
1 1 . The apparatus of claim 8, wherein the predetermined interval criterion comprises one or more of the following:
new line in user text entry, new paragraph in user text entry, new sentence in user text entry, a change in keyboard language and/or layout, a pause between periods of user text entry, user edit of already entered text, user exiting/closing of an application in which text has been entered, user entering/opening an application, and user returning to an application in which text has been entered.
12. The apparatus of claim 1 , wherein the apparatus is one or more of the following: an electronic device, a portable electronic device, a module for a portable electronic device, a server, and a network server.
13. An apparatus, comprising:
a means for determining configured to determine, in response to input by a user, likelihood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text;
a means for selecting configured to provide for selection a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models.
14. A non-transitory computer readable medium, comprising computer program code stored thereon, the computer program code being configured to, when run on a processor, perform at least:
determining, in response to input by a user, likelihood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text;
providing for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models.
15. A method, comprising:
determining, in response to input by a user, likelihood of appropriateness for two or more respective language models, wherein each language model comprises a set of entries that govern text prediction and/or correction of user text;
providing for selection of a language model for use in text prediction and/or correction of user entered text by comparing the determined likelihood of appropriateness for said language models.
16. The method of claim 15, wherein the user input comprises text entry.
17. The method of claim 15, wherein the method provides for selection of a language model by performing one or more of:
selecting a particular language model, allowing an electronic device to select a particular language model, selecting a particular language model for an electronic device, providing an indication of a particular language model.
18. The method of claim 15, wherein the determination of the likelihood of appropriateness of respective language models is based on a comparison of the likelihood of appropriateness of a plurality of text prediction and/or correction suggestions made by the respective language models in response to user input.
19. The method of claim 18, wherein the determined likelihood of appropriateness indicates the correlation between:
a plurality of text prediction/correction suggestions provided by respective language models in response to user input; and
the user input.
20. The method of claim 18, wherein the determination of the likelihood of appropriateness of respective language models comprises calculating the cumulative probability of a plurality of text prediction/correction suggestions for respective models.
21 . The method of claim 15, wherein the method comprises providing for selection of the language model with the greatest likelihood of appropriateness compared to the other language models.
22. The method of claim 15, wherein the method comprises providing for selection of a language model in response to predetermined interval criterion.
23. The method of claim 15, wherein the method comprises providing one or more suggestions from the selected language model in response to user input.
24. The method of claim 15, wherein the method comprises providing for selection of a different language model to the currently selected language model in response to a predetermined frequency of occurrence of a particular language model having the greatest likelihood of appropriateness compared to the other language models.
25. The method of claim 22, wherein the predetermined interval criterion comprises one or more of the following:
new line in user text entry, new paragraph in user text entry, new sentence in user text entry, a change in keyboard language and/or layout, a pause between periods of user text entry, user edit of already entered text, user exiting/closing of an application in which text has been entered, user entering/opening an application, and user returning to an application in which text has been entered.
PCT/IB2010/056138 2010-12-30 2010-12-30 Language models for input text prediction WO2012090027A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/IB2010/056138 WO2012090027A1 (en) 2010-12-30 2010-12-30 Language models for input text prediction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2010/056138 WO2012090027A1 (en) 2010-12-30 2010-12-30 Language models for input text prediction

Publications (1)

Publication Number Publication Date
WO2012090027A1 true WO2012090027A1 (en) 2012-07-05

Family

ID=43806893

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2010/056138 WO2012090027A1 (en) 2010-12-30 2010-12-30 Language models for input text prediction

Country Status (1)

Country Link
WO (1) WO2012090027A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014159298A1 (en) * 2013-03-14 2014-10-02 Microsoft Corporation Language model dictionaries for text predictions
WO2015087075A1 (en) * 2013-12-11 2015-06-18 Touchtype Limited System and method for inputting text into electronic devices
WO2015142967A1 (en) * 2014-03-20 2015-09-24 Microsoft Technology Licensing, Llc Context-aware re-formatting of an input
EP2972690B1 (en) * 2013-03-14 2017-04-19 Microsoft Technology Licensing, LLC Text prediction based on multiple language models

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6876963B1 (en) * 1999-09-24 2005-04-05 International Business Machines Corporation Machine translation method and apparatus capable of automatically switching dictionaries
WO2005036413A1 (en) * 2003-09-19 2005-04-21 America Online, Inc. Contextual prediction of user words and user actions
EP1569071A1 (en) * 2004-02-24 2005-08-31 Research In Motion Limited Method for facilitating data entry with a reduced keyboard by using context information
WO2008120033A1 (en) * 2007-03-29 2008-10-09 Nokia Corporation Prioritizing words based on content of input
US20100268725A1 (en) * 2009-04-20 2010-10-21 Microsoft Corporation Acquisition of semantic class lexicons for query tagging

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6876963B1 (en) * 1999-09-24 2005-04-05 International Business Machines Corporation Machine translation method and apparatus capable of automatically switching dictionaries
WO2005036413A1 (en) * 2003-09-19 2005-04-21 America Online, Inc. Contextual prediction of user words and user actions
EP1569071A1 (en) * 2004-02-24 2005-08-31 Research In Motion Limited Method for facilitating data entry with a reduced keyboard by using context information
WO2008120033A1 (en) * 2007-03-29 2008-10-09 Nokia Corporation Prioritizing words based on content of input
US20100268725A1 (en) * 2009-04-20 2010-10-21 Microsoft Corporation Acquisition of semantic class lexicons for query tagging

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014159298A1 (en) * 2013-03-14 2014-10-02 Microsoft Corporation Language model dictionaries for text predictions
CN105190489A (en) * 2013-03-14 2015-12-23 微软技术许可有限责任公司 Language model dictionaries for text predictions
EP2972690B1 (en) * 2013-03-14 2017-04-19 Microsoft Technology Licensing, LLC Text prediction based on multiple language models
WO2015087075A1 (en) * 2013-12-11 2015-06-18 Touchtype Limited System and method for inputting text into electronic devices
CN105917327A (en) * 2013-12-11 2016-08-31 触摸式有限公司 System and method for inputting text into electronic devices
US10706230B2 (en) 2013-12-11 2020-07-07 Touchtype Limited System and method for inputting text into electronic devices
CN105917327B (en) * 2013-12-11 2020-11-27 微软技术许可有限责任公司 System and method for entering text into an electronic device
WO2015142967A1 (en) * 2014-03-20 2015-09-24 Microsoft Technology Licensing, Llc Context-aware re-formatting of an input
US9672202B2 (en) 2014-03-20 2017-06-06 Microsoft Technology Licensing, Llc Context-aware re-formating of an input

Similar Documents

Publication Publication Date Title
CN108491433B (en) Chat response method, electronic device and storage medium
US9015036B2 (en) Automatic context sensitive language correction using an internet corpus particularly for small keyboard devices
US9715489B2 (en) Displaying a prediction candidate after a typing mistake
EP2972691B1 (en) Language model dictionaries for text predictions
AU2014212844B2 (en) Character and word level language models for out-of-vocabulary text input
CN101199122B (en) Using language models to expand wildcards
US20140267045A1 (en) Adaptive Language Models for Text Predictions
JP2019504413A (en) System and method for proposing emoji
JP5372148B2 (en) Method and system for processing Japanese text on a mobile device
CN101782833B (en) Intelligent operating system and method
CN101815996A (en) Detect name entities and neologisms
WO2008151465A1 (en) Dictionary word and phrase determination
CN108073292B (en) Intelligent word forming method and device for intelligent word forming
CN101673186A (en) Intelligent operating system and method based on keyword input
WO2012090027A1 (en) Language models for input text prediction
EP1494129A1 (en) Conversation control system and conversation control method
CN109545223B (en) Voice recognition method applied to user terminal and terminal equipment
CN110262674A (en) Chinese character input method and device based on pinyin input and electronic equipment
ZA200408277B (en) Conversation control system and conversation control method
WO2012072854A1 (en) Error monitoring
CN112000233A (en) Method and device for processing association candidate
CN115409031A (en) Word segmentation method and device, electronic equipment and storage medium
KR20210020980A (en) Method and Apparatus for Searching Keyword Using Keypad
CN115602159A (en) Resource name weight determining method, voice information processing method and device
KR20170007932A (en) Method and Apparatus for Searching Keyword Using Keypad

Legal Events

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

Ref document number: 10816451

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10816451

Country of ref document: EP

Kind code of ref document: A1