1. A method for automatically generating one or more keywords from an electronic document, the method comprising the steps of: identifying candidate entries for the keywords by extracting all n-grams up to a specified length that do not cross sentence boundaries, reducing a size of a data set consisting of the extracted n-grams by applying one or more filters and balancing a distribution of positive and negative examples whenever the data set is derived from a training data set; constructing a feature vector for each candidate entry, wherein the feature vector comprises at least one feature selected from the group consisting of one or more discourse comprehension features, one or more part-of-speech pattern features, and one or more encyclopedic annotation features using a computer; assigning a numeric score to each candidate entry based on the feature vector for that candidate entry using a computer; and selecting a specified number of candidate entries to be retained as the keywords.
1. A method for automatically generating one or more keywords from an electronic document, the method comprising the steps of: identifying candidate entries for the keywords by extracting all n-grams up to a specified length that do not cross sentence boundaries, reducing a size of a data set consisting of the extracted n-grams by applying one or more filters and balancing a distribution of positive and negative examples whenever the data set is derived from a training data set; constructing a feature vector for each candidate entry, wherein the feature vector comprises at least one feature selected from the group consisting of one or more discourse comprehension features, one or more part-of-speech pattern features, and one or more encyclopedic annotation features using a computer; assigning a numeric score to each candidate entry based on the feature vector for that candidate entry using a computer; and selecting a specified number of candidate entries to be retained as the keywords. 19. The method as recited in claim 1 , wherein one of the one or more part-of-speech pattern features is derived by the steps of: providing a candidate phrase from a list of candidate entries; labeling each word in the candidate phrase with a tag indicating part-of-speech to form a tag pattern; using the training data set to calculate a number of distinct phrases C(pattern) having this tag pattern; using the training data set to calculate a number of phrases C(pattern, positive) having this tag pattern and also having a positive label indicating presence in a manually-constructed collection of keywords associated with the training data set; and calculating a probability of the tag pattern being positive as P(pattern)=C(pattern, positive)/C(pattern), whereby the probability may be used as the part-of-speech pattern feature.