我有一个元组列表。这些元组包含标签和列表。它看起来像这样:
[('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 ]
感谢您的时间。
答案 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'])]