1. A computer-implemented method performed by one or more processors comprising: receiving a first user query from a user device; processing the first user query including identifying one or more segments in the first user query, a segment representing a word or a phrase; and determining a stand-alone score for each segment of the first user query, wherein the stand-alone score is an indication of a likelihood that the segment represents a stand-alone query and that the segment represents a main topic of the first user query, and wherein determining includes: processing a historical log of queries to determine query-independent scores for segments that are included in queries represented by the historical log including: identifying an initial query-independent score for a given segment; processing a first query in the historical log and determining a query-dependent score for each segment in the first query in the historical log including normalizing the query-dependent scores for the first query; processing a plurality of other queries in the historical log and determining a query dependent score for each segment for a given query; adjusting the initial query-independent scores for segments associated with the first query based on the determined and normalized query-dependent scores for the first query and the plurality of other queries to create updated query-independent scores for a given segment, including applying a first function to the query-dependent scores for the segments determined by the processing of the first query and the plurality of other queries; saving the updated query-independent scores for the segments; and repeating the processing of the first query and the plurality of other queries, adjusting and saving using the updated query-independent scores; and using the updated query-independent scores to determine the stand-alone score for each segment of the first user query.