我有一个名为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不支持-
操作数。
答案 0 :(得分:4)
如果您要查找字典对的键和值,则必须使用.items()
。
for key, value in spee_dict.items():
如果你不这样做,你只是通过密钥迭代。因此,因为密钥不是元组,所以会引发错误,因为您无法将其解压缩。