结构复杂的词干



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

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

这个可以迭代

for label, words in labeled_words:

我怎样才能使这些单词变为小写词干?

我想循环中有这样的东西(stemmer是PorterStemmer()):

stemmer.stem(word.lower())

这不起作用:

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

谢谢你抽出时间。

这主要是一个"如何处理循环和变量"的问题。最重要的是不要试图修改你正在迭代的列表,而是建立一个新的列表。

我想这就是你想要的:

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'])]

最新更新