干词复杂的结构

时间:2013-02-19 00:12:19

标签: python nltk

我有一个元组列表。这些元组包含标签和列表。它看起来像这样:

[('neg', ['watching', 'by', 'myself', 'tweetdebate', 'not', ...]), ('pos', ['here', 'we', 'go', 'tweetdebate', 'tweetdebate', ...])]

它可以通过此

进行迭代
for label, words in labeled_words:

我怎样才能改变这些单词的小写词干?

我猜这个循环中的东西(限制器是PorterStemmer()):

stemmer.stem(word.lower())

这不起作用:

labeled_words = [( label, [stemmer.stem(word.lower()) for words]) for label, words in labeled_words ]

感谢您的时间。

1 个答案:

答案 0 :(得分:3)

这主要是'我如何处理循环和变量'的问题。最重要的是不要尝试修改您正在迭代的列表。相反,建立一个新的列表。

我认为这就是你要找的东西:

labeled_words = [('neg', ['watching', 'by', 'myself', 'tweetdebate', 'not']), ('pos',     ['here', 'we', 'go', 'tweetdebate', 'tweetdebate'])]
stemmedWords = []
for label, words in labeled_words:
    stemmed = []
    for word in words:
        stemmed.append(porter2.stem(word))
    stemmedWords.append((label,stemmed))

输出如下:

>>> stemmedWords
[('neg', ['watch', 'by', 'myself', 'tweetdeb', 'not']), ('pos', ['here', 'we', 'go', 'tweetdeb', 'tweetdeb'])]