python中的词干提取

python中的词干提取,python,nlp,stemming,Python,Nlp,Stemming,我用这段代码来处理单词,下面是它的工作原理,首先有一个后缀列表,程序会检查单词的结尾是否与列表中的相同,如果是正数,它会删除后缀,但是,当我运行代码时,我会得到以下结果: suffixes = ['ing'] def stem(word): for suff in suffixes: return word[:-len(suff)] stem ('having') print (stem) 对于给定列表中的每个后缀,您可以检查给定单词是否以任何给定后缀结尾,如果是,则删除后缀,否则返

我用这段代码来处理单词,下面是它的工作原理,首先有一个后缀列表,程序会检查单词的结尾是否与列表中的相同,如果是正数,它会删除后缀,但是,当我运行代码时,我会得到以下结果:

suffixes = ['ing']
def stem(word):
for suff in suffixes:
    return word[:-len(suff)]

stem ('having')
print (stem)

对于给定列表中的每个后缀,您可以检查给定单词是否以任何给定后缀结尾,如果是,则删除后缀,否则返回单词

suffixes = ['ing']
def stem(word):
    for suff in suffixes:
        if word.endswith(suff):
            return word[:-len(suff)]

    return word

print(stem ('having'))
>>> hav

试着看看Porter Stemmer(),Python也有一个。

“程序检查单词的结尾是否与列表中的相同”-不,它没有。。。此外,词干分析不仅仅是剥离
“ing”
——如果需要,请查看
nltk
。anmol_uppal给出了正确的答案,但正如Jonsharpe所建议的,我想看看nltk,或者这实际上我正在为波斯语编写一个词干分析器,这只是代码中不起作用的一部分,我不想使用nltk。这只会在返回前检查第一个后缀。在列表理解中也有类似的问题。我得到语法错误==>print stem('having')^SyntaxError:invalid syntaxe你在使用Python3@adelrahimi?Edited@adelrahimi,我仍然不明白否决票的含义?@anmol\u uppal我不会否决你的答案,我甚至没有足够的声望去投票给Stackoverflow,无论如何,我怎么能在python 3中使用这段代码呢?