python - PorterStemmer 似乎不起作用

标签 python nltk porter-stemmer

我是 python 的新手,正在通过书中的示例进行练习。
任何人都可以解释为什么当我试图用这段代码阻止一些例子时没有任何改变吗?

>>> from nltk.stem import PorterStemmer
>>> stemmer=PorterStemmer()
>>> stemmer.stem('numpang wifi stop gadget shopping')
'numpang wifi stop gadget shopping'

但是当我这样做的时候它起作用了

>>> stemmer.stem('shopping')
'shop'

最佳答案

试试这个:

res = ",".join([ stemmer.stem(kw) for kw in 'numpang wifi stop gadget shopping'.split(" ")])

问题在于,词干分析器可能只对单个词起作用。你的字符串没有“根”字,而“购物”这个词有根“商店”。所以你必须单独计算词干

编辑:

来自他们的源代码 ->

Stemming algorithms attempt to automatically remove suffixes (and in some
cases prefixes) in order to find the "root word" or stem of a given word. This
is useful in various natural language processing scenarios, such as search.

所以我猜你确实被迫自己拆分你的字符串

关于python - PorterStemmer 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12974045/

相关文章:

python - 使用 Python/PhantomJS/Selenium 滚动无限页面

python - 使用 python mechanize 登录具有 NTLM 身份验证的页面

python - 使用 Python 从个人地名词典中识别命名实体

python - 如何在 python 中标记输入文件中的自然英文文本?

java - Lucene 4.1.0 Porter Stemmer 无法正常工作

python nltk -- 句子/短语的词干列表

python - 如何使用将数据框显示为表格的常量 url 构建静态网站

python - CNN(卷积神经网络)需要设计卷积核吗?

python - 从 synset 获取同义词返回错误 - Python

lucene - 在 Solr 中,为什么 'built' 没有被限制为 'build' 而 'building' 是?