96. The system as recited in claim 94 , wherein the electronic document is part of a test data set, and the processor further: provides the training data set from at least one training document having a manually-constructed collection of keywords; identifies a training set of candidate entries in the training data set; constructs a training feature vector for each candidate entry in the training data set, wherein the training feature vector comprises at least one feature selected from the group consisting of a discourse comprehension feature, a part-of-speech pattern feature, and an encyclopedic annotation feature, and wherein the training feature vector further comprises a label indicating presence or absence of the candidate entry in the manually-constructed collection of keywords for that training document; runs a machine learning algorithm on the training data set using the training feature vectors and the training set of candidate entries; assigns a numeric score to each candidate entry in the test data set by applying the trained machine learning algorithm to the feature vectors for the candidate entries in the test data set; classifies the candidate entries in the test data set using the numeric score and the trained machine learning algorithm as belonging to the keywords or not; and selects a specified number of entries to be retained as the keywords for the electronic document.
96. The system as recited in claim 94 , wherein the electronic document is part of a test data set, and the processor further: provides the training data set from at least one training document having a manually-constructed collection of keywords; identifies a training set of candidate entries in the training data set; constructs a training feature vector for each candidate entry in the training data set, wherein the training feature vector comprises at least one feature selected from the group consisting of a discourse comprehension feature, a part-of-speech pattern feature, and an encyclopedic annotation feature, and wherein the training feature vector further comprises a label indicating presence or absence of the candidate entry in the manually-constructed collection of keywords for that training document; runs a machine learning algorithm on the training data set using the training feature vectors and the training set of candidate entries; assigns a numeric score to each candidate entry in the test data set by applying the trained machine learning algorithm to the feature vectors for the candidate entries in the test data set; classifies the candidate entries in the test data set using the numeric score and the trained machine learning algorithm as belonging to the keywords or not; and selects a specified number of entries to be retained as the keywords for the electronic document. 98. The system as recited in claim 96 , wherein the processor further creates a back-of-the-book index based on the keywords.