2017-08-15 69 views
1

我知道如何在單個單詞上執行SnowballStemmer(在我的情況下,在俄語單詞上)。在做下一件事:SnowballStemmer for Russian單詞列表

from nltk.stem.snowball import SnowballStemmer 

stemmer = SnowballStemmer("russian") 
stemmer.stem("Василий") 
'Васил' 

我怎麼可以做以下,如果我有一個像[「Василий」,「Геннадий」,「Виталий」]單詞列表?

使用循環我的做法似乎是不工作:(

l=[stemmer.stem(word) for word in l] 
+0

你得到哪個錯誤? – ettanany

+0

使用Python 3,我得到了這個:'['васил','геннад','витал']' – ettanany

回答

2

你的變量l沒有預先定義,致使名稱錯誤。見我的最後兩行的修復。

>>> from nltk.stem.snowball import SnowballStemmer 
>>> stemmer = SnowballStemmer("russian") 
>>> my_words = ['Василий', 'Геннадий', 'Виталий'] 
>>> l=[stemmer.stem(word) for word in l] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'l' is not defined 
>>> l=[stemmer.stem(word) for word in my_words] 
>>> l 
['васил', 'геннад', 'витал']