2015-05-26 81 views
0

我使用這段代碼來填詞,這裏是它是如何工作的,首先有一個後綴列表,程序檢查該詞的結尾是否與列表中的結尾相同後綴,但是,當我運行代碼,我得到這樣的結果:在python中填詞詞組

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

stem ('having') 
print (stem) 
+3

*「程序檢查單詞的結尾是否與列表中的單詞結尾相同」* - 不,它不會...此外,除了剝離「ing」外,還有更多詞幹 - 如果您需要這樣做,看看'nltk'。 – jonrsharpe

+1

anmol_uppal寫了正確的答案,但正如jonsrharpe所示,我會看看nltk或https://pypi.python.org/pypi/stemming/1.0 –

+0

其實我正在爲波斯語編寫一個詞幹,這是隻有一部分代碼不起作用,我不想在這方面使用NLTK。 –

回答

0

對於給定的列表中的每個後綴,您可以檢查如果給定的字與任何給定的後綴結束,如果是刪除後綴,否則返回這個詞。

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

    return word 

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

這隻會在返回之前檢查第一個後綴。在列表理解中也存在類似的問題。 – interjay

+0

@interjay編輯。 – ZdaR

+0

我得到語法錯誤==> print stem('having') ^ SyntaxError:無效的語法 –