10. A computer-implemented method comprising: receiving, at a computing device having one or more processors, a user input identifying a user; identifying, at the computing device, a user profile corresponding to the user; using, at the computing device, the identified user profile to generate a user specific language model, including: receiving a collection of documents associated with the user, clustering the documents into one or more clusters, generating a cluster vector for each cluster of the one or more clusters, generating a target vector associated with the identified user profile, comparing the target vector with each of the cluster vectors, selecting one or more of the one or more clusters based on the comparison between the target vector and each of the cluster vectors, and generating the user specific language model for the user using documents from the one or more selected clusters; and sending, by the computing device, the user specific language model to a first client associated with the user.
10. A computer-implemented method comprising: receiving, at a computing device having one or more processors, a user input identifying a user; identifying, at the computing device, a user profile corresponding to the user; using, at the computing device, the identified user profile to generate a user specific language model, including: receiving a collection of documents associated with the user, clustering the documents into one or more clusters, generating a cluster vector for each cluster of the one or more clusters, generating a target vector associated with the identified user profile, comparing the target vector with each of the cluster vectors, selecting one or more of the one or more clusters based on the comparison between the target vector and each of the cluster vectors, and generating the user specific language model for the user using documents from the one or more selected clusters; and sending, by the computing device, the user specific language model to a first client associated with the user. 11. The method of claim 10 , further comprising: sending, by the computing device, the user specific language model to a second client.