8. A system for suggesting a completion to text entered by a user on a computing device, the system comprising: at least one server computer comprising at least one processor and at least one memory, the at least one server computer configured to: receive, at the server, text of a message from a first computing device of a first user; compute a topic vector using the text of the message from the first computing device, wherein each element of the topic vector comprises a score corresponding to a topic of a plurality of topics; cause the message to be presented by a second computing device to a second user; receive text from the second computing device entered by the second user; compute a first feature vector using the topic vector and the text entered by the second user; identify a first plurality of characters to follow the text entered by the second user by processing, by the server, the first feature vector, wherein the first plurality of characters comprises a first character; compute a second feature vector using the topic vector and the first character; identify a second plurality of characters to follow the first character by processing, by the server, the second feature vector, wherein the second plurality of characters comprises a second character; generate a suggested completion to the text entered by the second user, the suggested completion comprising the first character and the second character, and transmit the suggested completion to the second computing device for presenting to the second user.
8. A system for suggesting a completion to text entered by a user on a computing device, the system comprising: at least one server computer comprising at least one processor and at least one memory, the at least one server computer configured to: receive, at the server, text of a message from a first computing device of a first user; compute a topic vector using the text of the message from the first computing device, wherein each element of the topic vector comprises a score corresponding to a topic of a plurality of topics; cause the message to be presented by a second computing device to a second user; receive text from the second computing device entered by the second user; compute a first feature vector using the topic vector and the text entered by the second user; identify a first plurality of characters to follow the text entered by the second user by processing, by the server, the first feature vector, wherein the first plurality of characters comprises a first character; compute a second feature vector using the topic vector and the first character; identify a second plurality of characters to follow the first character by processing, by the server, the second feature vector, wherein the second plurality of characters comprises a second character; generate a suggested completion to the text entered by the second user, the suggested completion comprising the first character and the second character, and transmit the suggested completion to the second computing device for presenting to the second user. 10. The system of claim 8 , wherein the at least one server computer is configured to compute the first feature vector by: computing a sequence of 1-hot vectors using the text entered by the second user; computing a sequence of input vectors by combining each of the 1-hot vectors with the topic vector; and processing the sequence of input vectors with a neural network.