1. In a computing environment, a method comprising: selecting candidate core words from a document; determining a feature value for each of a plurality of features of each of the selected candidate core words; calculating a score for each selected candidate core word, wherein each score is based on a linear sum S of each of the plurality of feature values of the each selected candidate core word, and wherein the each of the plurality of feature values is weighted according to a corresponding coefficient, and wherein the each score=exp(S)/exp(S)+1; selecting, based on the calculated scores, M of the selected candidate word set as a core word set from the document where M is an integer that is greater than zero; selecting candidate key phrases from the document; determining a phrase feature value for each of a plurality of phrase features of each selected candidate key phrase; and associating with each candidate key phrase at least one of the plurality of feature values of at least one of the core words of the selected core word set; calculating a phrase score for each selected candidate key phrase, wherein each phrase score is based on a phrase linear sum P of each of the plurality of phrase feature values of the each key phrase, and wherein the each of the plurality of phrase feature values is weighted according to a corresponding phrase coefficient, and wherein the each phrase score=exp(P)/exp(P)+1; ranking the selected candidate key phrases relative to one another based on the calculated phrase scores; and wherein the method is performed by a computing device.