在 Python 字典值 split() 中解压的值太多?

Too many values to unpack in Python dictionary value split()?

我有一本名为 speech_dict 的字典,其中 key 是文件名,value 是一段话(通常约 10,000 个单词)。我正在尝试获取每个单词的词干;这是通过 nltk 模块中的一些函数完成的。这是我的代码:

from __future__ import print_function
from nltk.stem import *
from nltk.stem.snowball import SnowballStemmer

stemmer = SnowballStemmer("english")

spee_dict = speech_dict

for key,value in spee_dict:
    for i in value.split():
        i = stemmer.stem(i)
        i = i.decode('utf-8')
        spee_dict[key].add(i)

我收到以下错误:

ValueError: too many values to unpack

speech_dict 中存储了大约 900 个密钥,总共要经过大约 350 万个单词。我怎样才能完成这项工作?

编辑:

好的,Delgan 帮我加了词干。现在如何删除原始单词?

我有这个:

for key,value in spee_dict.items():
    for i in value.split():
        i_stemmed = stemmer.stem(i)
        i_stemmed = i_stemmed.decode('utf-8')
        spee_dict[key] += i_stemmed
        spee_dict[key] - I

但是 Unicode 不支持 - 操作数。

如果您要查找字典的键值对,则必须使用 .items()

for key, value in spee_dict.items():

如果不这样做,您只是在遍历键。因此,由于密钥不是元组,因此会引发错误,因为您无法解压它。