20. The system of claim 19 , wherein the dependency structure builder is configured to build the dependency structure by: dividing the snippet into word groups; creating a leaf node corresponding to each word group; and until the root node is added corresponding to a word group comprising all words of the selected snippet: selecting two or more nodes from the dependency structure as combine nodes wherein the combine nodes are nodes that have not been combined with any higher level node and that have a determined relationship; and creating a new node at a level one level higher the selected combine node with a highest level, wherein the new node corresponds to a combination of the word groups corresponding to the selected combine nodes, and wherein the new node is connected by edges to the selected combine nodes.
19. The system of claim 18 , wherein the multiple nodes of the dependency structure comprise: one or more leaf nodes each corresponding to one or more words of the snippet; one or more intermediate nodes based on one or more of: the one or more leaf nodes of the dependency structure for the selected snippet or one or more other intermediate nodes of the dependency structure for the selected snippet; and a root node based on at least one of the one or more intermediate nodes of the dependency structure for the selected snippet.