返回不带POS标签的基本单词

时间:2018-08-08 09:06:40

标签: nlp nltk spacy

无论如何,是否可以不使用POS标记将两个词(观看者和观看者)词干“观看”?

from nltk.stem import WordNetLemmatizer
wordnet_lemmatizer = WordNetLemmatizer()
wordnet_lemmatizer.lemmatize('watchers', pos='n')
wordnet_lemmatizer.lemmatize('watching', pos='v')

下面提到的这个和英语Stemmer都返回(“观察者”,“观察”)。我只需要使用nltk或spacy返回(“观看”)。

from nltk.stem.snowball import EnglishStemmer
stemmer = EnglishStemmer()
stemmer.stem('watchers') , stemmer.stem('watching')

这可能吗?

1 个答案:

答案 0 :(得分:2)

NLTK 中的

Lancaster Stemmer 将返回所需的结果。 NLTK 中有很多词干提取器,它们通过它们使用的规则来区分。

from nltk.stem import LancasterStemmer
stemmer = LancasterStemmer()

print stemmer.stem("watching"), stemmer.stem("watchers")
>watch watch

NLTK-Lancaster_Stemmer可以看出,规则是:

"re2>",      # -er > -

Lancaster Stemmer 不同, Snowball Stemmer 不使用此规则,因此在这些词干分析器中从不同的角度解决了 -er后缀的问题。 。 例如,当 -er 在元音之后出现时,两者都可以正常工作。对于大多数以辅音+ -er 结尾的动词,例如 sever aver 等, Lancaster Stemmer 均失败。 br /> verbs that end in -er

from nltk.stem.snowball import SnowballStemmer
from nltk.stem import LancasterStemmer

snowball_stemmer = SnowballStemmer("english")
lancaster_stemmer = LancasterStemmer()

print snowball_stemmer.stem("beer"), lancaster_stemmer.stem("beer")
>beer beer

print snowball_stemmer.stem("aver"), lancaster_stemmer.stem("aver")
>aver av
相关问题