1. A method comprising: obtaining, by a computer system, data files from a knowledge corpus of an enterprise; identifying, by the computer system, key terms within the data files; determining, by the computer system, for each identified key term, a frequency of occurrence and location within the data files; generating, by the computer system, knowledge units from the data files based on the determined frequencies of occurrence and the determined locations of the key terms in the data files; selecting, by computing system, a knowledge unit from the generated knowledge units for extraction of n-grams; deriving, by the computing system, a term vector for the knowledge unit based at least on the determined frequencies of occurrence and the determined locations of the key terms in the knowledge unit; identifying, by the computing system, the key terms in the term vector based at least on the frequency of occurrence of each key term in the knowledge unit; extracting, by the computing system, n-grams using the key terms in the term vector; scoring, by the computing system, each of the extracted n-grams as a function of at least a frequency of occurrence of each of the n-grams across the knowledge corpus of the enterprise; and adding, by the computing system, one or more of the extracted n-grams to an index based on the scoring.
7. The method of claim 1 , wherein the adding the one or more of the extracted n-grams to the index includes: determining a total number of n-grams extracted for the knowledge unit; determining a top percentage of the n-grams; and adding the top percentage of the n-grams to the index.