GB2470585A - Using a predictive text module to identify an application or service on a device holding data to be input into a message as text. - Google Patents

Using a predictive text module to identify an application or service on a device holding data to be input into a message as text. Download PDF

Info

Publication number
GB2470585A
GB2470585A GB0909143A GB0909143A GB2470585A GB 2470585 A GB2470585 A GB 2470585A GB 0909143 A GB0909143 A GB 0909143A GB 0909143 A GB0909143 A GB 0909143A GB 2470585 A GB2470585 A GB 2470585A
Authority
GB
United Kingdom
Prior art keywords
text
input
message
user
module
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
GB0909143A
Other versions
GB0909143D0 (en
Inventor
Dean Ezra
Dileep Chalana Kaluaratchie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to GB0909143A priority Critical patent/GB2470585A/en
Publication of GB0909143D0 publication Critical patent/GB0909143D0/en
Publication of GB2470585A publication Critical patent/GB2470585A/en
Withdrawn legal-status Critical Current

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
    • G06F17/276
    • 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

Abstract

Disclosed is a method for inputting data into text messages. The messaging module has an input analyser that analyses the text input by a user and identifies a service or application on the device eg smart phone or PDA, that can provide relevant dynamic user data to be input into the text message. The messaging module then uses its predictive text module to generate input text for insertion into the message using the data from the identified service. The services may include an address book, calendar, position locating system, media player and/or internet browser. The predictive text module may store data identifying any prediction in a message and change the data in the message if the data changes before the message is sent. Also disclosed are devices with messaging systems that use their predictive text module to generate static and dynamic text inputs., wherein the dynamic text is marked so that changes to the data can be identified before the message is sent.

Description

Messaging System The present invention relates to a messaging system and in particular to a text messaging system that provides text prediction to perform automatic completion of text messages.
The invention can be used in text messaging systems used on portable computer devices, such as on mobile telephones, PDAs, laptop computers, and also on general computers such as PCs and the like.
Predictive text messaging systems are well known and are predominately used in mobile telephones for creating messages using the Short Message Service (SMS), Multimedia Message Service (MMS) and email. These predictive text systems include the well known "T9" system that predicts the word that the user is typing from the first few characters of the word that the user types using their keypad. These systems use a static dictionary of words and the corresponding sequence of key presses required to enter each word.
Some systems allow users to add new words to the static dictionary, so that names and other missing words can be predicted in subsequent text predictions.
The present invention aims to provide an alternative text prediction system. Embodiments of the invention improve the existing text prediction systems by providing sentence completion that can add real time dynamic information into the sentence. In the event that the dynamic information changes, then the predicted text can be updated automatically at the time the message is sent. Embodiments of the invention can also perform the prediction on the basis of related text in addition to or instead of text input by the user.
The related text may include, for example, the text of the message to which the user is replying, the text of an article on which the user is commenting or the text of a meeting invitation.
The present invention provides an electronic device (such as a computer or cellular telephone) comprising: a messaging module for generating and sending messages to other devices; a plurality of user services for providing different services to the user and each service providing dynamic user data; a text input for receiving input text for generating a message using said messaging module; an input analyser operable to analyse the input text and to identify from the input text one or more user services that can provide dynamic user data relevant to the input text; and a predictive text module operable to generate predictions for the input text for insertion into the message using dynamic user data from said one or more user services.
In one embodiment, the input analyser splits the input text into sentences and identifies one or more sources of dynamic user data that may be relevant for each sentence. The input analyser may perform a pattern matching operation between the input text and stored data relating probable text to sources of dynamic user data. The pattern matching may be performed by a word or phrase spotting comparison between the input text and the text of the stored data or by performing a natural language analysis of the input text and using results of the natural language analysis and the stored data to identify the one or more sources of dynamic user data that may be relevant to the input text.
The user services may include one or more of: an address book, a calendar, a position locating system, a media player and a browser service for accessing on-line services.
Other service can, of course be included as well. Indeed new services can be added when they become available.
The text input may be received from user input (such as via a keypad, touch screen, hand writing recognition, speech recognition etc) or from related text. The related text can include the text of a message to which the user is replying and/or the text of an article on which the user is commenting.
The predictions generated by the predictive text module can include one or more of: text data, image/video data and audio data.
Typically, the messaging module will generate a message using static text such as text input by the user and one or more predictions made by the predictive text module. In this case, the predictive text module preferably maintains data identifying the one or more predictions that have been included in the message. The marking of the predictions in this way can help the predictive text module update the predictions should they change between the time that the predictions are inserted into the message and the time that the message is sent. The predictive text module may update predictions in this way automatically or in response to user confirmation.
The predictive text module can make use of services that are provided both on the electronic device and in a remote device, such as in a remote server. A communications module (such as a browser) is provided to facilitate the connection to such remote devices.
According to this aspect, the invention also provides a method of generating a message on an electronic device that has a plurality of user services stored thereon, the method comprising: receiving input text for use in generating the message; analysing the input text to identify one or more sources of dynamic user data associated with said user services that may be relevant to the input text; and generating predictions for the input text for insertion into the message using information from said identified one or more sources of dynamic user data.
The invention also provides an electronic device comprising: a messaging module for generating and sending messages to other devices; a text input for receiving input text for generating a message using said messaging module; and a predictive text module operable to generate predictions for the input text for insertion into the message; wherein the input text comprises related text that is not entered by the user. The input text may include both related text and text input by the user. The related text may comprises text extracted from a message to which the user is replying or text of an article on which the user is commenting.
The invention also provides an electronic device comprising: a messaging module for generating and sending messages to other devices; a text input for receiving input text for generating a message using said messaging module; and a predictive text module operable to generate predictions for the input text for insertion into the message; wherein said predictive text module is operable to generate predictions comprising static text and dynamic text that can change and is operable to mark dynamic text so that changes to the dynamic text that are made before the message is sent can be identified.
These and other various aspects and features of the invention will become clear from the following detailed description of exemplary embodiments that are described with reference to the accompanying drawings in which: Figure 1 is a schematic overview of the messaging system embodying the present invention; Figure 2a and Figure 2b illustrate the dynamic nature of the prediction used in the embodiment; Figures 3a to 3e illustrate various lists and data structures used by the predictive system embodying the invention; and Figure 4 is a block diagram illustrating the main components of a mobile telephone used in the system shown in Figure 1.
Overview Figure 1 schematically illustrates the operation of a messaging system embodying the present invention. In the illustrated embodiment, the messaging system is implemented on a mobile telephone 3, although it may of course be implemented on any computer system such as a PC or the like.
Initially, at step Si, the user will start the messaging service (for example an SMS/MMS/email application that is on the mobile telephone 3) and will start to input text, for example via a keypad or touch screen (not shown). The input text may also come from the message to which the user is replying (if appropriate). For example, the text in an incoming message asking Where are you?" could be used as input when predicting the text in the reply message. An input analysis module 4 then analyses the input text in step S2, by splitting the text into sentences and then by performing a pattern matching operation that compares the input text with a list 6 of probable words and phrases to identify if the mobile telephone 3 has or has access to any sources of information (ie other services on the telephone 3 or connected to the phone network that can be accessed) that could be used to form a relevant reply. Figure 1 illustrates some sources that may be used. As shown, the predictive text module 5 may obtain information from the address book 7 that can receive updates from on-line social networking sites, such as a "Twitter" update 9 or a "Facebook" update ii. The predictive text module 5 may also obtain information from the entries of the calendar that are stored in the calendar database 13.
The predictive text module 5 may also obtain information relating to the current location of the user. This location information 15 may be obtained from, for example, a GPS module 17 (and may be converted from a longitudellatitude position into a street address using an on-line address service 19), from the calendar 21 (that might identify that the user is currently in a meeting at a specified location etc), from the phone profile 23 (which may identify when the user is in a meeting or outdoors etc), or from a "twitter" update 25 that identifies, for example, that the user is on holiday is the USA. The predictive text module 5 may also obtain information from the media player 27, for example identifying the current music track 29 being played to the user.
In step S3, the predictive text module 5 uses the results of the input analysis step S2 to generate a list 31 of context based information for the input text that can then be passed to the identified source to generate a prediction. For example, the input text may include the sentence what restaurants are in reading', which the analysis module 4 determines is best dealt with by the address book 7. Instead of passing the whole input text string to the address book 7, the predictive text module 5 derives context information from the input text -in this example the predictive text module 5 would derive context information of Restaurant' and Reading', which can be passed to the address book 7 for making its prediction in step S4. As those skilled in the art will appreciate, a number of predictions may be available and not all of them may be relevant or desired by the user. Therefore, in this embodiment, before passing the context information to the selected source, the predictive text module 5 generates a predictions list 48 that lists all the predictions that have been or can be made and inserted into the message. For the above example, therefore, the predictive text module would generate an entry in the predictions list 48 that said "Insert names of restaurants from address book in Reading?". If the user selects this item in the predictions list 48, then the predictive text module 5 passes the relevant context information 31 to the address book 7 so that it can retrieve the names (and perhaps also addresses/telephone numbers) of all restaurants in Reading. If the mobile telephone 3 is aware of an on-line service that can provide this service such as Yellow Pages, then the predictive text module 5 may add the entry "Insert names of restaurants in Reading from Yellow Pages?" into the predictions list 48. In this case, if the user selects this option, then the predictive text module would pass the context information 31 to the remote Yellow Pages service and add the results to the message.
The predictive text module 5 may also use, in step S5, a conventional "T9" predictive text algorithm 35 for text input at step Si. As illustrated in Figure 1, the T9 algorithm can generate predictions by comparing the input text with a static database 37 that includes words from a dictionary 39, a custom words list 41 and a list of common words 43. The different predictions generated by the predictive text module 5 are then output, in step S6, for display to the user on the display of the mobile telephone 3.
Some of the dynamic information obtained from the services on the telephone 3 (or remote services to which the telephone 3 has access) is highly dynamic in nature -in other words it is changing frequently; and may change between the time that the user enters the text into the message and the time that the message is sent to the intended recipient. In some cases, it may be desirable to update this information at the time that the message is sent. To help achieve this, the predictive text module 5 keeps a record 47 of text that has been inserted into a message that comes from a dynamic source.
Then, at the time that the message is to be transmitted, the predictive text module 5 updates the information in the records 47 and compares the text in the current message with the text in the updated record 47. If the updated text is different, then in some cases, the predictive text module 5 will automatically update the text in the message; in others the predictive text module 5 will keep the original text and in others the predictive text module 5 will prompt the user to confirm if a change is required.
Examples of scenarios of how this updating may or may not be performed will now be given: Completing a message with my location (Figure 2a): 1. The user starts typing: Hi James, I am currently at 2. The predictive text module 5 recognises that the user is about to give a location, and so gives the end user an inline pull down list of the following dynamic data: * GPS location (E.g. Street name, postcode) * Location based on categories (Location is NEC, NEC is my contact 3. User selects one of the options and the text is added to the message being typed.
4. If the user's location changes whilst the user is writing the message, then the location will be automatically updated.
Completing a message with my current music track (Figure 2b): 1. The user starts typing: Hi James, I am listening to...
2. The predictive text module 5 recognises that the user is about to give the name of the music track being played on the phone 3, and so gives the user an inline pull down list of the following dynamic data: a. Current track: "Englishman in New York" by Sting.
3. User selects the option; and the text about the track is added to the message.
4. In contrast to the first example, this information should not be changed automatically if the current music track ends and another starts to play, because the user's message may be specifically related to the first track and not the second. Therefore this data will not change automatically. Instead, the predictive text module 5 may disregard the change given the current context or it may prompt the user to determine whether or not the track should be changed.
Thus, in this embodiment, the predictive text module 5 tracks the dynamic text that has been inserted into the message and decides whether or not to update the message or to prompt the user to make the decision, depending on the context of the dynamic information. The predictive text module 5 may be programmed to operate so that text from some sources are always or sometimes updated automatically; so that text from other sources are never updated; and so that the user is prompted to decide whether or not to update the text from other sources.
Detailed description
As those skilled in the art will appreciate, there are various ways in which the system described above may be implemented. The following description provides an example of how the system can be implemented. In this example implementation, it will be assumed that the user is replying to the following message: "Hi Dean, Do you know how to get to Baker Street from Paddington? James." Initially, the user selects the previous message and chooses reply to'. In response, the input analysis module 4 reads the previous message and parses the message to split it into sentences using end of sentence punctuation (full stop, question, comma and exclamation marks). Each sentence is then stored in an element of an array or list 51 that has a unique ID associated therewith, as illustrated in Figure 3a. The input analysis module 4 then processes each sentence in the array 51 in turn, to look for any matches of text in the input sentence with any of the words or phrases contained in the list 6 of probable words or phrases. Figure 3b illustrates part of the list 6 of probable words and phrases together with associated data. As shown, each entry of the list 6 includes: an entry ID (column 0); the probable word or phrase (column 1); the ID of one or more of the dynamic sources of information that will provide the prediction (column 2); a human readable description of the match that will be output to the user (column 3); a string that will be passed to the messaging application for inserting into the message (column 4); and a definition of the parameters that will be passed to the one or more sources identified in column 2 (column 5). The list 6 shown in Figure 3b only shows four probable phrases. In practice, the list 6 will contain a large number of probable words and phrases together with their associated data and will be pre-programmed into the mobile telephone 3 and can be updated whenever a new source of dynamic information becomes available.
The matching between the input text from list 51 is performed against the text in column 1 of the list 6 of probable words and phrases. This comparison can be done using regular expression pattern matching. When creating the regular expression, the input analysis unit 4 will replace any fields (i.e. words surrounded by < and > symbols) with regular expression wild cards (a wild card in the regular expression language is ** symbol). For example, the <destination> and <source> fields in the following original Column 1 string would be replaced: Original string: "Do you know how to get to <destination> from <source>?" String converted to regular expression: "Do you know how to get to * from The comparison between the input text and the converted string can then be performed to see if there is a match and if so to identify the destination and source included in the input text.
If a match is found, then the input analysis module 4 adds an entry (row) to a temporary list 53 of matches that is illustrated in Figure 3c. As shown, each entry in the list 53 of matches includes: in column 0 an entry ID for the match; in column 1 a pointer to the entry ID in the list 6 of probable words corresponding to the match; in column 2 a pointer to the entry ID in the list 51 of input text sentences corresponding to the match; and in column 3 the parameter values that will be passed to the corresponding dynamic source. The parameter values (column 3) are determined from column 5 in the list 6 of probable words and for any variadic parameters using the results of the match to identify the values to be used. For example, for the sentence "Do you know how to get to Baker Street from Paddington?", the input analysis unit 4 will find a match with entry 10003 in the list 6 of probable words and from the regular expression wild cards, will identify "Baker street" as the destination and "Paddington" as the source. Thus, when generating the entry in the list 53, the input analysis unit 4 will add the parameters "GetDirections", "Baker Street", "Paddington" to column 3 (as shown in Figure 3c).
Each input sentence may match with more than one entry in the list 6 of probable words and an entry is added to list 53 for each match that is found. The same processing is performed for each sentence in the input text. Once all the sentences in the input text have been processed in this way, the predictive text module 5 processes each entry in the generated list 53 by following the reference in column 1 back to the list 6 of probable words and then adding the value in column 3 (Human readable description of match) from list 6 as a new row in the predictions list 48 (shown in Figure 1). A pointer is also added to the predictions list 48, that points back to the corresponding entry in the list 53 of possible matches. This pointer of course is not displayed and is used to find the corresponding entry in the list 53 if the user selects that prediction. The predictive text module 5 then updates the user interface displayed to the user on the display of the mobile telephone 3 to show the updated entries in the predictions list'.
Once the initial processing of the related text has been performed, the predictive text module 5 monitors the user's key presses when he/she enters text into a displayed message' text box. For each character entered by the user, the predictive text module 5 checks if the key press represents the end of a new word (i.e. any of the following symbols: space, question mark, exclamation or comma). If the entered character does represent an end of word, then the predictive text module 5 will copy the text starting from the current character and the preceding characters until the beginning of the sentence (i.e. a full stop, comma, question mark, exclamation or first character of text entered is found) into a list 55 of sentences derived from user typing, which in this example is illustrated in Figure 3d.
The predictive text module 5 then repeats the matching process described above, to find any matches between the text input by the user (entered in the list 55 shown in Figure 3d) and the words and phrases in column 1 of the list 6 of probable words and phrases shown in Figure 3b. For any matches that are found, the predictive text module 5 extracts the information associated with the match from the list 51 and builds another temporary list 57 for the matches, which is shown in Figure 3e. As can be seen from Figure 3e, the type of information determined for each match from the list 6 of probable words and phrases is the same as the information determined when generating the list 53 of matches found in the related text. Once the new input sentence has been processed in this way, the predictive text module 5 processes each entry in the generated list 57 in the same way as for the entries in list 53 sO that the corresponding Human readable description of the match is added to the predictions list 48 and displayed to the user. Again, a pointer to the corresponding entry in the list 57 is added to the predictions list 48 sO that if that entry in the predictions list 48 is selected by the user, the system can trace back and find the corresponding entry in the list 57.
The above processing is repeated until the user stops entering text and/or selects an item from the predictions list 48 that is displayed to the user on the display of the mobile telephone 3. If the user clicks on an item in the predictions list 48, then the predictive text module 5 identifies the pointer for the selected item and uses it to find the corresponding entry in list 53 or 57. The predictive text module 5 then uses the pointer in column 1 of the entry in list 53/57 to identify the entry in the list 6 of probable words, from which the predictive text module 5 identifies the dynamic source to which the parameters in column 3 of list 53/57 will be passed to perform the prediction. For example, if the user selects the "Insert directions" entry in the displayed predictions list 48, then the predictive text module 5 will identify that this corresponds to entry 20001 in the list 53 shown in Figure 3c. The predictive text module then uses the pointer in column 1 of list 53 to identify that this entry corresponds to entry 10003 in the list 6 of probable words and phrases, which itself is associated with the GPS module 17 (identified from column 2 of list 6). The predictive text module 5 then passes the parameters listed in column 3 of entry 20001 in list 53 to the GPS module 17 and awaits the results. The GPS module 17 will receive the query and will generate the require directions in accordance with its conventional programming and return the results to the predictive text module 5. In response, the predictive text module 5 generates text to be inserted into the message using the results received from the GPS module to complete the fields of the text string stored in column 4 of entry 10003 in the list 6. The predictive text module 5 then inserts the resulting predicted text into the current cursor position of the message' box displayed to the user on the display of the mobile telephone 3.
Matching Process When performing the matching process discussed above, the input analysis module 4 may perform an exact or Boolean match that requires an exact match between a word or phrase in the input text and the word or phrase in the list 6 of probable words or phrases.
However, more sophisticated pattern matching techniques may be used that look for similar words or phrases or that allows for typing errors etc. In a more advanced implementation, Natural Language processing (often referred to as Linguistic Statistical Analysis') may be used to find possible predictions. Such an approach would score an input sentence/phrase or word based on the number of occurrences of a word associated with a given meaning. For example, the input analysis module 4 would understand all the possible different ways that a notional meaning could be written in a given language and then score the given sentence against how closely it matches the prediction. This approach would match a higher number of different ways of writing the same meaning.
However this approach will be more computationally intensive for mobile devices such as the mobile telephone 3 compared to simple string comparisons.
Updating predicted text As mentioned above, in this embodiment, the part of the predicted text that has been determined from a dynamic source may be updated when the message is to be sent and in order to allow this to happen in an efficient manner, the text added to the message is marked so that the system knows which parts may need to be updated. This is achieved by using dynamic field markers (<NAME>) that surround the text that may change. The messaging module understands that text surrounded by < and > symbols are not to be displayed to the end user. For example, If the string added to the message was derived from entry 1002 in list 6 and the text obtained from the dynamic source (in this case from the calendar 21) is "Career Review Meeting" then the text passed to the messaging module would be: "Yes, I am currently in <meeting> Career Review Meeting <\meeting>" The messaging module would ignore the text within the < and > symbols and would therefore display: "Yes, I am currently in Career Review Meeting" Just before the message is sent, the predictive text module 5 will walk through the text that was sent to the messaging module and will update values in the dynamic fields (for example, in the above scenario the text Career Review Meeting' might be changed).
Updating the Sources of Predictions One of the advantages of the embodiment described above is that the predictive text module 5 can call a number of different dynamic sources of information (using generic API queries) to provide information that can be added to a message as a prediction based on text that the user has input or based on related text (eg the text of a message to which the user is replying). As more sources of information become available to the mobile telephone 3, the system can be updated to allow the predictive text module 5 to obtain relevant information from the new source. In order to update the system so that it can work with a new service, all the system has to do is to update the list 6 of probable words to include appropriate sentences and parameter definitions that can be used with the new source. Such an update can be provided by a mobile telephone network operator, for example, and requires no user programming.
Benefits of the Embodiment The system described above has the following advantages: The system will use any available applications on the device that can provide information relating to the text being entered into the message or that has been previously entered. Current predictive text only uses a dictionary of words. This allows predictions to be more accurate due to a wider range of data that can be analysed.
The system can add real time dynamic information in a message that has previously been entered into other areas of the device (e.g. appointments in the Calendar application) without the user having to manually duplicate the information. What's more, the invention can suggest a human readable form to show the information, allowing the end user simply to select the prediction and add it without having to rewrite it. Prior art predictive text systems do not provide this functionality. For example, a plumber may enter all their house bookings into the Calendar application 21, but they would still have to manually look at the calendar 21 to find a free time if a new customer asked to book them in an email message. The described system would be able to predict a response to that email along the lines of "I am next available at 10:30am until 12:00am on 12/10/2009" by looking at the calendar database 13.
The system can use as input for analysis: information received by the device in addition to or instead of text entered directly by the end user. Prior predictive text systems only perform analysis on text that is directly entered by the end user in the current message.
Again, this allows predictions to be more accurate due to a wider range of data to analyse as input.
If the end user has selected to use a piece of information predicted by the system, and the information changes before the user sends the message, the system can elect to update the information. For example, if the system adds the user's current location and then the user moves, the system could update the location before the message is sent.
Prior predictive text systems do not change information once it has been inserted into the message.
Mobile Telephone Figure 3 schematically illustrates the main components of the mobile telephone 3 shown in Figure 1. As shown, the mobile telephone 3 includes transceiver circuitry 63 which is operable to transmit signals to and to receive signals from a mobile telecommunications network via one or more antennae 65. As shown, the mobile telephone 3 also includes a controller 67 which controls the operation of the mobile telephone 3 and which is connected to the transceiver circuit 63 and to a loudspeaker 69, a microphone 71, a display 73, and a keypad 75. The controller 67 operates in accordance with software instructions stored within memory 77. As shown, these software instructions include, among other things, an operating system 79, a messaging module 81, an API module 83, a browser module 85 and the above described input analysis module 4, predictive text module 5, address book 7, calendar 21, GPS module 17 and media player 27. The operating system 79 controls the general operation of the mobile telephone 3 and controls communications with the telephone network using the transceiver circuitry. The messaging module 81 provides the above described messaging functionality to the user (such as SMS/MMS/email). The messaging module 81 is operable to provide the user interface via which the user can enter text or other inputs and to use the predictive text and input analysis modules to generate the predictions in the manner discussed above.
The API module 83 is operable to provide the predictive text module with access (using a generic API) to the other services on the mobile telephone 3, such as the address book 7, the calendar 21, the GPS module 17 and the media player 27. The browser module 85 provides the predictive text module 5 with access to on-line sources of information that can be used for the prediction.
Modifications and Alternatives A detailed embodiment has been described above. As those skilled in the art will appreciate, a number of modifications and alternatives can be made to the above embodiment whilst still benefiting from the inventions embodied therein.
In the above embodiment, a mobile telephone based messaging system was described.
As those skilled in the art will appreciate, the message prediction techniques described in the present application can be employed in other computing systems such as, for example, personal digital assistants, laptop computers, web browsers, etc. Various sources of dynamic information were described above. As those skilled in the art will appreciate, various other sources may be used. The dynamic information that could be inserted could be extendable to any information available to the device (text, image data, video data, audio data, links or a mixture of these); whether it is information derived from the user's information inside other applications or information remotely accessible via services (e.g. Web services). Examples of different sources of dynamic information that may be provided by the prediction system are given below. It should be noted that this list is not an exhaustive or complete list of data sources.
Locations derived from GPS/AGPS module: Currently at: "14 high street, Reading" "The Beeches restaurant, London, SW1 4GF" "15 metres to the left of you" (information about the other user's position and orientation may be provided in the message to which the user is responding or may be provided by an on-line service that track subscribing users locations and orientations.) "Walk 10 metres along high street, turn Right at Bond Street." Location derived from the handset's active profile: E.g. work', home'.
Calendar derived information: "Currently in meeting with John Smith, Jane Doe" "Will be free at: 14:3Opm" (in reply to can we have a meeting at 14:3Opm on 12/12/08?" : "Meeting confirmed" (calendar entry can be automatically added).
Contact derived information: User starts typing John All John's contacts are offered to the end user.
Data from Online sources: In reply to "what was that movie with James Dean?", would look up James Dean in online database.
"I have an Amazon wish list with the following item: "Links could be added" -Amazon wish list of items you want for Christmas.
Predictions based on intelligence gained from data providers/services: Time to destination: I will arrive at 10:30am based on received traffic information.
Automatic calculator: End user starts typing a sum (5+1), text auto completes with answer.
Current music track being played, auto insert their most popular genre, artist etc. Insertion of end user's Mood, presence etc. Insertion of media (pictures, music, url links etc): End user mentions key words relating to a photo they took on their mobile telephone, system identifies the keyword and offers to add the photo (which it found by searching photo filenames and/or meta data associated with the photos).
Derived data via the vicinity of other handsets: If a person is writing the minutes of a meeting, the system can identify other users that are present (for example by performing a Bluetooth scan for other devices that are within range of the mobile telephone 3) and then obtain their names from the corresponding contact details given in the address book 7.
Checking of files being attached If an end user writes Enc.' or attached at the end or in the middle of an email message, the system can check to ensure that the file is attached and prompt user to add one if it is not.
In the above embodiment, the predictive text module 5 received input text either from the user or from the message to which the user is replying. Other sources related text for the input can be used. For example, the user may be responding to an on-line article. In this case, the predictive text system may use the text of the article as input text for determining predictions. As a further alternative, the input text may be obtained from a meeting request issued by the calendar and to which the user is responding.
In the above embodiments, a number of software modules were described. As those skilled in the art will appreciate, the software modules may be provided in compiled or un-compiled form and may be supplied as a signal over a computer network, or on a recording medium. Further, the functionality performed by part or all of this software may be performed using one or more dedicated hardware circuits. However, the use of software modules is preferred as it facilitates the updating of the computer system.
Additionally, the functionality of one or more of the software modules described above may be combined into a single module or split into a number of different modules if desired. For example, the novel predictive text functionality described above may be provided as a standalone software module or it may be incorporated with an existing predictive text application.
Various other modifications will be apparent to those skilled in the art and will not be described in further detail here.

Claims (23)

  1. Claims: 1. An electronic device comprising: a messaging module for receiving messages from other devices and for generating and sending messages to other devices; a plurality of user services for providing different services to the user and each service for providing dynamic user data; a text input for receiving input text for generating a message using said messaging module; an input analyser operable to analyse the input text and to identify from the input text one or more user services that can provide dynamic user data relevant to the input text; and a predictive text module operable to generate predictions for the input text for insertion into the message using dynamic user data from said one or more user services.
  2. 2. A device according to claim 1, wherein said input analyser is operable to split the input text into sentences and to identify one or more sources of dynamic user data for each sentence.
  3. 3. A device according to claim 1 or 2, wherein said input analyser is operable to perform a pattern matching operation between the input text and stored data relating probable text to sources of dynamic user data.
  4. 4. A device according to claim 3, wherein said pattern matching operation performs a word or phrase spotting comparison between the input text and the text of the stored data.
  5. 5. A device according to claim 3, wherein said pattern matching operation is operable to perform a natural language analysis of the input text and to use results of the natural language analysis and said stored data to identify the one or more sources of dynamic user data.
  6. 6. A device according to any of claims 1 to 5, wherein said user services includes one or more of: an address book, a calendar, a position locating system, a media player and a browser service for accessing on-line services.
  7. 7. A device according to any of claims 1 to 6, wherein the text input is operable to receive input text from user input or related text.
  8. 8. A device according to claim 7, wherein the related text includes one or more of: the text of a message to which the user is replying and text of an article to which the user is commenting.
  9. 9. A device according to any of claims 1 to 8, wherein the predictive text module is operable to generate predictions comprising one or more of: text data, image data and audio data.
  10. 10. A device according to any of claims 1 to 9, wherein the messaging module is operable to generate a message using text input by the user and one or more predictions made by the predictive text module and wherein the predictive text module is operable to store data identifying the one or more predictions that have been included in the message.
  11. 11. A device according to claim 10, wherein the predictive text module is operable to identify changes in the predictions so that the predictive text module can change the one or more predictions.
  12. 12. A device according to claim 11, wherein the predictive text module is operable to change the one or more predictions when the message is to be sent.
  13. 13. A device according to claim 11, wherein said predictive text module is operable to select whether or not to update the one or more predictions in dependence upon the source of the dynamic user data.
  14. 14. A device according to any of claims 1 to 13 that is a cellular telephone, a personal digital assistant, a computer or the like.
  15. 15. A device according to any of claims 1 to 14, wherein one of said user services provides access to one or more remote services that maintain dynamic user data that can be used for making said predictions.
  16. 16. A method of generating a message on an electronic device that has a plurality of user services stored thereon, the method comprising: receiving input text for use in generating the message; analysing the input text to identify one or more sources of dynamic user data associated with said user services that may be relevant to the input text; and generating predictions for the input text for insertion into the message using information from said identified one or more sources of dynamic user data.
  17. 17. An electronic device comprising: a messaging module for receiving messages from other devices and for generating and sending messages to other devices; a text input for receiving input text for generating a message using said messaging module; and a predictive text module operable to generate predictions for the input text for insertion into the message; wherein input text comprises related text that is not entered by the user.
  18. 18. A device according to claim 17, wherein said input text comprises said related text and text input by the user.
  19. 19. A device according to claim 17 or 18, wherein said related text comprises text extracted from a message to which the user is replying or text of an article on which the user is commenting.
  20. 20. An electronic device comprising: a messaging module for receiving messages from other devices and for generating and sending messages to other devices; a text input for receiving input text for generating a message using said messaging module; and a predictive text module operable to generate predictions for the input text for insertion into the message; wherein said predictive text module is operable to generate predictions comprising static text and dynamic text that can change and is operable to mark dynamic text so that changes to the dynamic text that are made before the message is sent can be identified.
  21. 21. A device according to claim 20, wherein said predictive text module is operable to update automatically dynamic text that changes before the message is transmitted.
  22. 22. A device according to claim 20, wherein if said predictive text module identifies that the dynamic text has changed, then the predictive text module is operable to query the user if the dynamic text should be updated and is operable to update the dynamic text if the user selects that the text is to be updated.
  23. 23. A computer implementable instructions product comprising computer implementable instructions for causing a programmable electronic device to become configured as the device of any of claims 1 to 15 or 16 to 22.
GB0909143A 2009-05-28 2009-05-28 Using a predictive text module to identify an application or service on a device holding data to be input into a message as text. Withdrawn GB2470585A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0909143A GB2470585A (en) 2009-05-28 2009-05-28 Using a predictive text module to identify an application or service on a device holding data to be input into a message as text.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0909143A GB2470585A (en) 2009-05-28 2009-05-28 Using a predictive text module to identify an application or service on a device holding data to be input into a message as text.

Publications (2)

Publication Number Publication Date
GB0909143D0 GB0909143D0 (en) 2009-07-01
GB2470585A true GB2470585A (en) 2010-12-01

Family

ID=40863074

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0909143A Withdrawn GB2470585A (en) 2009-05-28 2009-05-28 Using a predictive text module to identify an application or service on a device holding data to be input into a message as text.

Country Status (1)

Country Link
GB (1) GB2470585A (en)

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8756052B2 (en) 2012-04-30 2014-06-17 Blackberry Limited Methods and systems for a locally and temporally adaptive text prediction
WO2014100451A2 (en) * 2012-12-19 2014-06-26 Microsoft Corporation Seamlessly incorporating online content into documents
EP2661705A4 (en) * 2011-01-05 2016-06-01 Google Inc Method and system for facilitating text input
NL2017002A (en) * 2014-05-30 2016-09-29 Apple Inc Canned answers in messages
CN106371625A (en) * 2016-09-29 2017-02-01 北京小米移动软件有限公司 Associated word display method and device
CN106855748A (en) * 2015-12-08 2017-06-16 阿里巴巴集团控股有限公司 A kind of data inputting method, device and intelligent terminal
EP3300008A1 (en) * 2012-07-17 2018-03-28 Samsung Electronics Co., Ltd. Method and apparatus for recommending texts
WO2019125615A1 (en) * 2017-12-22 2019-06-27 Google Llc Selective text prediction for electronic messaging
US10430045B2 (en) 2009-03-31 2019-10-01 Samsung Electronics Co., Ltd. Method for creating short message and portable terminal using the same
US10503818B2 (en) 2016-01-14 2019-12-10 Microsoft Technology Licensing, Llc. Content authoring inline commands
US10978090B2 (en) 2013-02-07 2021-04-13 Apple Inc. Voice trigger for a digital assistant
US10984798B2 (en) 2018-06-01 2021-04-20 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11025565B2 (en) * 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US11037565B2 (en) 2016-06-10 2021-06-15 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US11048873B2 (en) 2015-09-15 2021-06-29 Apple Inc. Emoji and canned responses
US11074408B2 (en) 2019-06-01 2021-07-27 Apple Inc. Mail application features
US11087759B2 (en) 2015-03-08 2021-08-10 Apple Inc. Virtual assistant activation
US11120372B2 (en) 2011-06-03 2021-09-14 Apple Inc. Performing actions associated with task items that represent tasks to perform
US11126400B2 (en) 2015-09-08 2021-09-21 Apple Inc. Zero latency digital assistant
US11133008B2 (en) 2014-05-30 2021-09-28 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US11152002B2 (en) 2016-06-11 2021-10-19 Apple Inc. Application integration with a digital assistant
US11169616B2 (en) 2018-05-07 2021-11-09 Apple Inc. Raise to speak
US11194467B2 (en) 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
US11257504B2 (en) 2014-05-30 2022-02-22 Apple Inc. Intelligent assistant for home automation
US11348582B2 (en) 2008-10-02 2022-05-31 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US11380310B2 (en) 2017-05-12 2022-07-05 Apple Inc. Low-latency intelligent automated assistant
US11388291B2 (en) 2013-03-14 2022-07-12 Apple Inc. System and method for processing voicemail
US11405466B2 (en) 2017-05-12 2022-08-02 Apple Inc. Synchronization and task delegation of a digital assistant
US11418929B2 (en) 2015-08-14 2022-08-16 Apple Inc. Easy location sharing
US11423886B2 (en) 2010-01-18 2022-08-23 Apple Inc. Task flow identification based on user intent
US11431642B2 (en) 2018-06-01 2022-08-30 Apple Inc. Variable latency device coordination
US11500672B2 (en) 2015-09-08 2022-11-15 Apple Inc. Distributed personal assistant
US11526368B2 (en) 2015-11-06 2022-12-13 Apple Inc. Intelligent automated assistant in a messaging environment
US11599331B2 (en) 2017-05-11 2023-03-07 Apple Inc. Maintaining privacy of personal information
US11657813B2 (en) 2019-05-31 2023-05-23 Apple Inc. Voice identification in digital assistant systems
US11710482B2 (en) 2018-03-26 2023-07-25 Apple Inc. Natural assistant interaction
US11727219B2 (en) 2013-06-09 2023-08-15 Apple Inc. System and method for inferring user intent from speech inputs
US11782575B2 (en) 2018-05-07 2023-10-10 Apple Inc. User interfaces for sharing contextually relevant media content
US11798547B2 (en) 2013-03-15 2023-10-24 Apple Inc. Voice activated device for use with a voice-based digital assistant

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623406A (en) * 1995-03-06 1997-04-22 Jean D. Ichbiah Method and system for entering text in computer equipment
US5873107A (en) * 1996-03-29 1999-02-16 Apple Computer, Inc. System for automatically retrieving information relevant to text being authored
US6826551B1 (en) * 2000-05-10 2004-11-30 Advanced Digital Systems, Inc. System, computer software program product, and method for producing a contextual electronic message from an input to a pen-enabled computing system
EP1868064A1 (en) * 2006-06-14 2007-12-19 Research In Motion Limited Handheld electronic device with assisted text entry using existing message thread, and associated method
WO2008153605A1 (en) * 2007-06-15 2008-12-18 Sony Ericsson Mobile Communications Ab Methods, devices, and computer program products for predictive text entry in mobile terminals using multiple databases
US20080320411A1 (en) * 2007-06-21 2008-12-25 Yen-Fu Chen Method of text type-ahead

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623406A (en) * 1995-03-06 1997-04-22 Jean D. Ichbiah Method and system for entering text in computer equipment
US5873107A (en) * 1996-03-29 1999-02-16 Apple Computer, Inc. System for automatically retrieving information relevant to text being authored
US6826551B1 (en) * 2000-05-10 2004-11-30 Advanced Digital Systems, Inc. System, computer software program product, and method for producing a contextual electronic message from an input to a pen-enabled computing system
EP1868064A1 (en) * 2006-06-14 2007-12-19 Research In Motion Limited Handheld electronic device with assisted text entry using existing message thread, and associated method
WO2008153605A1 (en) * 2007-06-15 2008-12-18 Sony Ericsson Mobile Communications Ab Methods, devices, and computer program products for predictive text entry in mobile terminals using multiple databases
US20080320411A1 (en) * 2007-06-21 2008-12-25 Yen-Fu Chen Method of text type-ahead

Cited By (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11348582B2 (en) 2008-10-02 2022-05-31 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10430045B2 (en) 2009-03-31 2019-10-01 Samsung Electronics Co., Ltd. Method for creating short message and portable terminal using the same
US11423886B2 (en) 2010-01-18 2022-08-23 Apple Inc. Task flow identification based on user intent
EP2661705A4 (en) * 2011-01-05 2016-06-01 Google Inc Method and system for facilitating text input
US11120372B2 (en) 2011-06-03 2021-09-14 Apple Inc. Performing actions associated with task items that represent tasks to perform
US8756052B2 (en) 2012-04-30 2014-06-17 Blackberry Limited Methods and systems for a locally and temporally adaptive text prediction
EP3300008A1 (en) * 2012-07-17 2018-03-28 Samsung Electronics Co., Ltd. Method and apparatus for recommending texts
WO2014100451A2 (en) * 2012-12-19 2014-06-26 Microsoft Corporation Seamlessly incorporating online content into documents
WO2014100451A3 (en) * 2012-12-19 2014-09-18 Microsoft Corporation Seamlessly incorporating online content into documents
US10978090B2 (en) 2013-02-07 2021-04-13 Apple Inc. Voice trigger for a digital assistant
US11388291B2 (en) 2013-03-14 2022-07-12 Apple Inc. System and method for processing voicemail
US11798547B2 (en) 2013-03-15 2023-10-24 Apple Inc. Voice activated device for use with a voice-based digital assistant
US11727219B2 (en) 2013-06-09 2023-08-15 Apple Inc. System and method for inferring user intent from speech inputs
NL2017002A (en) * 2014-05-30 2016-09-29 Apple Inc Canned answers in messages
US11257504B2 (en) 2014-05-30 2022-02-22 Apple Inc. Intelligent assistant for home automation
US11575622B2 (en) 2014-05-30 2023-02-07 Apple Inc. Canned answers in messages
NL2017003A (en) * 2014-05-30 2016-09-29 Apple Inc Canned answers in messages
US11133008B2 (en) 2014-05-30 2021-09-28 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US11895064B2 (en) 2014-05-30 2024-02-06 Apple Inc. Canned answers in messages
US11087759B2 (en) 2015-03-08 2021-08-10 Apple Inc. Virtual assistant activation
US11025565B2 (en) * 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US11418929B2 (en) 2015-08-14 2022-08-16 Apple Inc. Easy location sharing
US11126400B2 (en) 2015-09-08 2021-09-21 Apple Inc. Zero latency digital assistant
US11500672B2 (en) 2015-09-08 2022-11-15 Apple Inc. Distributed personal assistant
US11048873B2 (en) 2015-09-15 2021-06-29 Apple Inc. Emoji and canned responses
US11526368B2 (en) 2015-11-06 2022-12-13 Apple Inc. Intelligent automated assistant in a messaging environment
US10789078B2 (en) 2015-12-08 2020-09-29 Alibaba Group Holding Limited Method and system for inputting information
CN106855748A (en) * 2015-12-08 2017-06-16 阿里巴巴集团控股有限公司 A kind of data inputting method, device and intelligent terminal
WO2017098332A3 (en) * 2015-12-08 2017-07-20 Alibaba Group Holding Limited Method and system for inputting information
US10503818B2 (en) 2016-01-14 2019-12-10 Microsoft Technology Licensing, Llc. Content authoring inline commands
US11037565B2 (en) 2016-06-10 2021-06-15 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US11152002B2 (en) 2016-06-11 2021-10-19 Apple Inc. Application integration with a digital assistant
CN106371625A (en) * 2016-09-29 2017-02-01 北京小米移动软件有限公司 Associated word display method and device
US11599331B2 (en) 2017-05-11 2023-03-07 Apple Inc. Maintaining privacy of personal information
US11405466B2 (en) 2017-05-12 2022-08-02 Apple Inc. Synchronization and task delegation of a digital assistant
US11380310B2 (en) 2017-05-12 2022-07-05 Apple Inc. Low-latency intelligent automated assistant
WO2019125615A1 (en) * 2017-12-22 2019-06-27 Google Llc Selective text prediction for electronic messaging
US11755834B2 (en) 2017-12-22 2023-09-12 Google Llc Selective text prediction for electronic messaging
US11710482B2 (en) 2018-03-26 2023-07-25 Apple Inc. Natural assistant interaction
US11169616B2 (en) 2018-05-07 2021-11-09 Apple Inc. Raise to speak
US11782575B2 (en) 2018-05-07 2023-10-10 Apple Inc. User interfaces for sharing contextually relevant media content
US11431642B2 (en) 2018-06-01 2022-08-30 Apple Inc. Variable latency device coordination
US10984798B2 (en) 2018-06-01 2021-04-20 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US11657813B2 (en) 2019-05-31 2023-05-23 Apple Inc. Voice identification in digital assistant systems
US11074408B2 (en) 2019-06-01 2021-07-27 Apple Inc. Mail application features
US11620046B2 (en) 2019-06-01 2023-04-04 Apple Inc. Keyboard management user interfaces
US11194467B2 (en) 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
US11842044B2 (en) 2019-06-01 2023-12-12 Apple Inc. Keyboard management user interfaces
US11347943B2 (en) 2019-06-01 2022-05-31 Apple Inc. Mail application features

Also Published As

Publication number Publication date
GB0909143D0 (en) 2009-07-01

Similar Documents

Publication Publication Date Title
GB2470585A (en) Using a predictive text module to identify an application or service on a device holding data to be input into a message as text.
US10546067B2 (en) Platform for creating customizable dialog system engines
CN109478196B (en) System and method for responding to online user queries
US10809813B2 (en) Method, apparatus, server, system and computer program product for use with predictive text input
US10521189B1 (en) Voice assistant with user data context
EP2089790B1 (en) Input prediction
US20090249198A1 (en) Techniques for input recogniton and completion
US9940371B2 (en) Method, system, and apparatus for arranging content search results
US7774334B2 (en) Adaptive databases
US20100100371A1 (en) Method, System, and Apparatus for Message Generation
US20120253789A1 (en) Conversational Dialog Learning and Correction
US20110289015A1 (en) Mobile device recommendations
CN101682667B (en) Method and portable apparatus for searching items of different types
EP2691877A2 (en) Conversational dialog learning and correction
CN111386686B (en) Machine reading understanding system for answering queries related to documents
WO2010045549A2 (en) Textual disambiguation using social connections
US20210117834A1 (en) Method and device for providing notes by using artificial intelligence-based correlation calculation
KR101891498B1 (en) Method, computer device and computer readable recording medium for multi domain service resolving the mixture of multi-domain intents in interactive ai agent system
US9009031B2 (en) Analyzing a category of a candidate phrase to update from a server if a phrase category is not in a phrase database
CN109640142A (en) A kind of content recommendation method and device, equipment, storage medium
JP6251637B2 (en) Information retrieval method, apparatus and program
CN114168785B (en) Music recommendation method, system, device and storage medium based on social contact and distance
KR102652719B1 (en) Method and user terminal for displaying emoticons using custom keyword
KR20160100195A (en) A method for linking online site
CN110931014A (en) Speech recognition method and device based on regular matching rule

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)