Python 如何调用函数来删除后缀?
我希望将结果中的每个单词传递给stem方法以删除后缀。然而,在打印我的“最终”列表时,我发现这个方法对单词不起作用。我调用函数时是否出错Python 如何调用函数来删除后缀?,python,methods,Python,Methods,我希望将结果中的每个单词传递给stem方法以删除后缀。然而,在打印我的“最终”列表时,我发现这个方法对单词不起作用。我调用函数时是否出错 results=[] with open('/Users/mnk/Documents/Stemtry.txt') as filer: for line in filer: results.append(line.strip().spli
results=[]
with open('/Users/mnk/Documents/Stemtry.txt') as filer:
for line in filer:
results.append(line.strip().split())
result=[]
final=[]
def stemm(n):
for suffix in ['ing', 'ly', 'ed', 'ious', 'ies', 'ive', 'es', 's', 'ment']:
if n.endswith(suffix):
return n[:-len(suffix)]
return n
for eachitem in results[:10]:
for n in eachitem:
r=stemm(n)
final.append(r)
print(final)
result.append(final)
将第12行(“返回n”)缩进一次。然后,它将等待所有后缀都被检查后再返回结果。您还可以使用else
子句
def stemm(n):
for suffix in ['ing', 'ly', 'ed', 'ious', 'ies', 'ive', 'es', 's', 'ment']:
if n.endswith(suffix):
return n[:-len(suffix)]
else:
return n
词干(n)
的主体为空。缩进是。缩进是Python语法的一部分。请确保您的代码是正确的,并且代码片段具有与本地代码相同的缩进。请将print(n)
放入stem
以检查它得到的单词。你确定你在检查单词而不是字母吗?@furas在stemm中插入print语句时,我没有收到任何输出。但当我插入内联打印(r)时,它会打印出单词。所以它被确认是在检查单词而不是字母。但是,该函数不起作用。您的stem
函数在for循环中有一个return语句。