10. A system comprising: one or more computers programmed to perform operations comprising: receiving first text submitted by a first user; for each of a plurality of different previously submitted texts, calculating a text similarity score based on a textual similarity of the first text to the previously submitted text, and calculating a sentiment similarity score based on a similarity between sentiment of the first text and sentiment of the previously submitted text; based on the scores, selecting one or more of the previously submitted texts having closest similarity to the first text; for each of the selected texts, identifying an emoticon previously selected by a user for insertion into the selected text; and providing the identified emoticons for selection by the first user.
10. A system comprising: one or more computers programmed to perform operations comprising: receiving first text submitted by a first user; for each of a plurality of different previously submitted texts, calculating a text similarity score based on a textual similarity of the first text to the previously submitted text, and calculating a sentiment similarity score based on a similarity between sentiment of the first text and sentiment of the previously submitted text; based on the scores, selecting one or more of the previously submitted texts having closest similarity to the first text; for each of the selected texts, identifying an emoticon previously selected by a user for insertion into the selected text; and providing the identified emoticons for selection by the first user. 13. The system of claim 10 wherein selecting one or more of the previously submitted texts having closest similarity to the first text comprises: generating a combined score for each of the previously submitted texts based on a combination of similarity scores calculated for the previously submitted text; and selecting one or more of the previously submitted texts based on the combined scores.