1. A computer-implemented method comprising: receiving, by at least one processor, a search query comprising one or more terms from a device of a user; in response to the received search query, accessing, by the at least one processor, data identifying contents of one or more web pages; obtaining, by the at least one processor, a probabilistic generative model that includes (i) a first node that descends from one or more parent nodes, and (ii) one or more child nodes that descend from a second node; determining, by the at least one processor, to merge the first node that descends from the one or more parent nodes of the first node with the second node from which the one or more child nodes of the second node descend; in response to determining to merge the first node that descends from the one or more parent nodes of the first node with the second node from which the one or more child nodes of the second node descend, determining that, before the first node and the second node are merged, a particular node of the probabilistic generative model is both (i) one of the one or more parent nodes of the first node, and (ii) one of the one or more child nodes of the second node, then, after the first node and the second node are merged, designating the particular node as (i) a child node that descends from a combined node that results from merging the first node with the second node, and (ii) not a parent node from which the combined node that results from merging the first node with the second node descends; generating, by the at least one processor, a first concept characterizing the search query and one or more second concepts characterizing each of the web pages using the probabilistic generative model; determining, by the at least one processor, that at least one of the second concepts matches the first concept, the at least one second concept being associated with at least one of the web pages; and transmitting, to the user device, a response to the search query that identifies the at least one of the web pages.