Skip to main content
 首页 » 编程设计

python之如何使用 NLTK 词干

2025年05月04日16bjzhanghao

愚蠢的,但我无法访问 NLTK 中的主干函数。

我打电话

import nltk 
nltk.stem.porter.step1ab() 

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

请您参考如下方法:

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

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

但是,它并不是真正设计为直接调用的。通常会调用 myPorterStemmer.stem(word),然后它会委托(delegate)给 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'