我使用这段代码来填词,这里是它是如何工作的,首先有一个后缀列表,程序检查该词的结尾是否与列表中的结尾相同后缀,但是,当我运行代码,我得到这样的结果:在python中填词词组
suffixes = ['ing']
def stem(word):
for suff in suffixes:
return word[:-len(suff)]
stem ('having')
print (stem)
我使用这段代码来填词,这里是它是如何工作的,首先有一个后缀列表,程序检查该词的结尾是否与列表中的结尾相同后缀,但是,当我运行代码,我得到这样的结果:在python中填词词组
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(http://tartarus.org/martin/PorterStemmer/),还有一个Python。
*“程序检查单词的结尾是否与列表中的单词结尾相同”* - 不,它不会...此外,除了剥离“ing”外,还有更多词干 - 如果您需要这样做,看看'nltk'。 – jonrsharpe
anmol_uppal写了正确的答案,但正如jonsrharpe所示,我会看看nltk或https://pypi.python.org/pypi/stemming/1.0 –
其实我正在为波斯语编写一个词干,这是只有一部分代码不起作用,我不想在这方面使用NLTK。 –