34. The computer program as recited in claim 32 , wherein the electronic document is part of a test data set, and further comprising: a code segment for providing the training data set from at least one training document having a manually-constructed collection of keywords; a code segment for identifying a training set of candidate entries in the training data set; a code segment for constructing 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; a code segment for running a machine learning algorithm on the training data set using the training feature vectors and the training set of candidate entries; a code segment for assigning 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; a code segment for classifying 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 a code segment for selecting a specified number of entries to be retained as the keywords for the electronic document.
34. The computer program as recited in claim 32 , wherein the electronic document is part of a test data set, and further comprising: a code segment for providing the training data set from at least one training document having a manually-constructed collection of keywords; a code segment for identifying a training set of candidate entries in the training data set; a code segment for constructing 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; a code segment for running a machine learning algorithm on the training data set using the training feature vectors and the training set of candidate entries; a code segment for assigning 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; a code segment for classifying 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 a code segment for selecting a specified number of entries to be retained as the keywords for the electronic document. 35. The computer program as recited in claim 34 , wherein the machine learning algorithm is selected from the group consisting of Naïve Bayes, Support Vector Machine, Relevance Vector Machine, decision tree, genetic algorithm, rule induction, k-Nearest Neighbors, Gaussian, Gaussian Mixture Model, artificial neural network, multilayer perceptron, and radial basis function network.