In a mobile device, the text entered by users is analyzed to determine a set of responses commonly entered by users into text applications such as SMS applications in response to received messages. This set of responses is used to provide suggested responses to a user for a currently received message in a soft input panel based on the text of the currently received message. The suggested responses are provided before any characters are provided by the user. After the user provides one or more characters, the suggested responses in the soft input panel are updated. The number of suggested responses displayed to the user in the soft input panel is limited to a total confidence value to reduce user distraction and to allow for easier selection. An undo feature for inadvertent selections of suggested responses is also provided.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method comprising: receiving a first character by a computing device; determining a first plurality of string predictions based on the first character by the computing device, wherein each of the string predictions comprises a string and an associated confidence value; displaying the strings of the first plurality of string predictions by the computing device on a display of the computing device, wherein each of the strings is displayed at a location on the display according to the confidence value associated with each of the strings; receiving a second character by the computing device; determining a second plurality of string predictions based on the first character and the second character by the computing device; and displaying the strings of the second plurality of string predictions by the computing device on the display, wherein each string of the second plurality of string predictions that is also in the strings of the first plurality of string predictions is displayed at the same location as the string of the first plurality of string predictions. 2. The method of claim 1, further comprising: storing the displayed strings of the second plurality of string predictions; receiving an indication of a selection of one of the displayed strings of the second plurality of string predictions; receiving an indication to undo the selected string; in response to the indication to undo, retrieving the stored displayed strings; and redisplaying the stored displayed strings. 3. The method of claim 2, wherein the indication to undo comprises the selection of a user interface element. 4. The method of claim 2, further comprising: storing the first character and the second character; and in response to the indication to undo, retrieving the stored first and second character; and displaying the stored first and second character. 5. The method of claim 4, wherein the first character and the second character are stored in a buffer. 6. The method of claim 1, wherein the second plurality of string predictions has fewer strings than the first plurality of string predictions. 7. The method of claim 1, wherein determining the first plurality of string predictions based on the first character comprises: retrieving a threshold confidence value; determining a set of string predictions based on the first character; and selecting the smallest subset of string predictions from the determined set with a sum of the associated confidence values that is greater than or equal to the threshold confidence value. 8. The method of claim 1, wherein determining the first plurality of string predictions based on the first character comprises determining the first plurality of string predictions based on the first character and at least one prediction model. 9. The method of claim 8, wherein the at least one prediction model is one or more of a local prediction model or a global prediction model. 10. The method of claim 1, wherein one or more strings of the first plurality of string predictions comprise sentences. 11. A method comprising: determining a first plurality of string predictions based on a first character by the computing device, wherein each of the string predictions comprises a string and an associated confidence value; displaying the strings of the first plurality of string predictions by the computing device on a display of the computing device, wherein each of the strings is displayed at a location on the display according to the confidence value associated with each of the strings; determining a second plurality of string predictions based on the first character and a second character by the computing device; and displaying the strings of the second plurality of string predictions by the computing device on the display, wherein each string of the second plurality of string predictions that is also in the strings of the first plurality of string predictions is displayed at the same location as the string of the first plurality of string predictions. 12. The method of claim 11, further comprising: storing the displayed strings of the second plurality of string predictions; receiving an indication of a selection of one of the displayed strings of the second plurality of string predictions; receiving an indication to undo the selected string; in response to the indication to undo, retrieving the stored displayed strings; and redisplaying the stored displayed strings. 13. The method of claim 12, further comprising: storing the first character and the second character; and in response to the indication to undo, retrieving the stored first and second character; and displaying the stored first and second character. 14. The method of claim 11, wherein the second plurality of string predictions has fewer strings than the first plurality of string predictions. 15. The method of claim 11, wherein determining the first plurality of string predictions based on the first character comprises: retrieving a threshold confidence value; determining a set of string predictions based on the first character; and selecting the smallest subset of string predictions from the determined set with a sum of the associated confidence values that is greater than or equal to the threshold confidence value. 16. The method of claim 11, wherein determining the first plurality of string predictions based on the first character comprises determining the first plurality of string predictions based on the first character and at least one prediction model. 17. The method of claim 16, wherein the at least one prediction model is one or more of a local prediction model or a global prediction model. 18. A system comprising: a computing device; and a candidate prediction selector adapted to: receive a first character; display the first character in a text field; display a first plurality of strings based on the first character in a soft input panel, wherein each of the strings is displayed at a location in the soft input panel according to a confidence value associated with each of the strings in the first plurality of strings; receive a second character; display the second character with the first character in the text field; and display a second plurality of strings based on the first character and the second character in the soft input panel, wherein each string of the second plurality of strings that is also in first plurality of strings is displayed at the same location as the string of the first plurality of strings. 19. The system of claim 18, wherein the candidate prediction selector is further adapted to: store the displayed second plurality of strings; receive an indication of a selection of one of the strings of the second plurality of strings; in response to the indication of selection, clear the soft input panel; receive an indication to undo the selected string; in response to the indication to undo, retrieve the stored second plurality of strings; and redisplay the second plurality of strings in the soft input panel. 20. The system of claim 19, wherein the candidate prediction selector is further adapted to: store the first and second characters; in response to the indication of selection, clear the text field; in response to the indication to undo, retrieve the stored first and second characters; and redisplay the stored first and second characters in the text field.