1. A computer-implemented method for generating a bigram database, the method comprising: receiving a plurality of domain names; tokenizing, by a processor, the plurality of domain names; generating, by the processor, a plurality of token bigrams from the tokenized domain names; filtering, by the processor, the plurality of token bigrams by token type, wherein the token type includes at least one of: (1) a forward bigram which replaces a token at the end of a tokenized domain name or (2) a backward bigram which replaces a token at the beginning of a tokenized domain name; ranking, by the processor, the plurality of token bigrams, wherein forward bigrams are ranked higher than other token bigrams of the plurality of token bigrams; and storing, in a memory, the filtered and ranked token bigrams in a bigram database.