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

时间:2015-11-18 22:00:15

标签: python python-2.7 for-loop text nltk

我有一个名为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不支持-操作数。

1 个答案:

答案 0 :(得分:4)

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

for key, value in spee_dict.items():

如果你不这样做,你只是通过密钥迭代。因此,因为密钥不是元组,所以会引发错误,因为您无法将其解压缩。