1

傻,但我不知何故无法访问 NLTK 中的词干函数。

我打电话

import nltk
nltk.stem.porter.step1ab()

但我被告知该对象没有 step1ab 属性。我想我以某种方式没有正确调用它,但我不确定如何实际使用它。

4

1 回答 1

8

step1ab()是nltk.stem.porter模块中的类的方法PorterStemmer。所以你可以这样称呼它:

myPorterStemmer = nltk.stem.porter.PorterStemmer()
...
myPorterStemmer.step1ab()

但是,它并不是真正设计为直接调用的。人们通常会打电话给myPorterStemmer.stem(word),然后它会委派step1ab()去做部分工作。

如果你真的想单独使用step1ab,你必须设置一堆变量,你会得到这样的东西:

>>> word = "countries"
>>> myStemmer = nltk.stem.porter.PorterStemmer()
>>> myStemmer.b = word
>>> myStemmer.k = len(word) - 1
>>> myStemmer.k0 = 0
>>> myStemmer.step1ab()
>>> myStemmer.b[myStemmer.k0:myStemmer.k+1]
'countri'
于 2013-03-05T09:33:29.847 回答