1. A method for associating words and word strings in a language comprising: providing a collection of documents, wherein said collection includes at least one document; receiving from a user a word or word string query to be analyzed; searching said collection of documents for the query to be analyzed and returning documents containing the query to be analyzed; determining a user-defined amount of words or word strings or both to the left of said query to be analyzed in said returned documents based on their frequency and creating a Left Signature List comprising said word or word strings to the left of said query to be analyzed in said returned documents; determining a user-defined amount of words or word strings or both to the right of said words or word strings comprising said Left Signature List and creating Left Anchor Lists comprising said word or word strings to the right of said Left Signature Lists based on their frequency in a collection of documents; determining a user-defined number of words or word strings or both to the right of said query to be analyzed in said returned documents and creating a Right Signature List comprising said word or word strings to the right of said query to be analyzed in said returned documents based on their frequency; determining a user-defined number of words or word strings or both to the left of said word or word strings comprising said Right Signature List and creating Right Anchor Lists comprising said word or word strings to the left of said Right Signature List based on their frequency; and ranking results based on the frequency of each word or word string occurring in said Left Anchor Lists and the frequency of said word or word string occurring in said Right Anchor Lists.