1. A method comprising: reading a text, the text comprising a plurality of tokens; reading a first plurality of patterns; searching the first plurality of tokens using the first plurality of patterns to generate a plurality of candidate terms, each of the plurality of candidate term comprising one or more of the plurality of tokens; reading a plurality of seed terms; scoring each of the first plurality of patterns based on the plurality of candidate terms and the plurality of seed terms, scoring each of the first plurality of patterns comprising determining a cardinality of the plurality of candidate terms and determining a fraction of the plurality of candidate terms contained within the plurality of seed terms; scoring each of the plurality of candidate terms; and supplementing the plurality of seed terms with a predetermined number of the plurality of candidate terms having the highest score.