Nlp 返回不带POS标记的基字

Nlp 返回不带POS标记的基字,nlp,nltk,spacy,Nlp,Nltk,Spacy,在任何情况下,是否有必要在不使用词性标记的情况下将两个词(观察者和观察者)都塞进“观察”中 from nltk.stem import WordNetLemmatizer wordnet_lemmatizer = WordNetLemmatizer() wordnet_lemmatizer.lemmatize('watchers', pos='n') wordnet_lemmatizer.lemmatize('watching', pos='v') 下面提到的这个词干分析器和英语词干分析器都返

在任何情况下,是否有必要在不使用词性标记的情况下将两个词(观察者和观察者)都塞进“观察”中

from nltk.stem import WordNetLemmatizer
wordnet_lemmatizer = WordNetLemmatizer()
wordnet_lemmatizer.lemmatize('watchers', pos='n')
wordnet_lemmatizer.lemmatize('watching', pos='v')
下面提到的这个词干分析器和英语词干分析器都返回('watcher','watch')。我只需要使用nltk或spacy返回(“手表”)

from nltk.stem.snowball import EnglishStemmer
stemmer = EnglishStemmer()
stemmer.stem('watchers') , stemmer.stem('watching')
这可能吗?

NLTK的Lancaster词干分析器将返回所需的结果。NLTK中有很多词干分析器,它们根据使用的规则进行区分

from nltk.stem import LancasterStemmer
stemmer = LancasterStemmer()

print stemmer.stem("watching"), stemmer.stem("watchers")
>watch watch
从规则中可以看出:

"re2>",      # -er > -
与Lancaster词干分析器不同,Snowball词干分析器不使用此规则,因此在这些词干分析器中从不同的角度处理-er后缀。 例如,当-er位于元音之后时,这两种方法都是正确的。兰开斯特词干分析器在大多数以辅音+er结尾的动词中都失败了,如sever、aver等。

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