我想找出动词的词干。我把要删除的后缀放在一个变量中。问题是它只删除列表中的第一个项目,而不删除其余项目的内容,而是返回不带词干的动词。我该如何更改它,使它可以读取列表中的所有项目?在
def stemming (verb):
suffix=["ing", "ed", "es", "s"]
for i in suffix:
stem=verb.replace(i, "")
return stem
i+=1
>>> stemming ("wanting")
'want'
>>> stemming ("wanted")
'wanted'
Tags:
函数一返回,就完成了。它不会继续循环替换更多的东西。我想你真正想要的是这样:
所以它实际上会检查动词是否以每个后缀结尾,除非找到一个后缀,否则不会返回。在
因为你太早了。Python在一个关闭函数中遇到
return
;它将立即返回被调用方(调用stemming
的函数)。在将函数
stemming
更改为:您也不需要在这里增加
i
;它甚至不是一个整数;您正在遍历一个字符串列表。在suffixes
(I重命名了一些变量以使其更具可读性)上的每次迭代都将是列表中指定的字符串。在如果您真的想使用计数器变量来索引
^{pr2}$suffixes
:但是;这实际上是不必要的,因为您可以在列表上使用普通的、更具python风格的迭代:
for suffix in suffixes:
我也相信你的职能是:
代码:
输出:
想想看!:)
另外,作为旁白,你真的应该使用nltk来进行词干分析,除非你只是为了教育目的而这样做。在
请参见:^{}
示例:
将return移出循环并删除
i += 1
。在这里没用:相关问题 更多 >
编程相关推荐