NLTK python错误:“TypeError:”dict_keys“对象不可订阅”

2024-06-01 01:12:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在按照课堂作业的指示做作业,我应该在一个文本文件中查找前200个最常用的单词。

下面是代码的最后一部分:

fdist1 = FreqDist(NSmyText)
vocab=fdist1.keys()
vocab[:200]

但当我在vocab 200行后按enter时,它会返回:

 Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: 'dict_keys' object is not subscriptable

关于如何解决这个问题以便正确返回答案的建议?


Tags: 代码mostkeys单词enter文本文件vocabtraceback
3条回答

看起来你在使用Python 3。在Python 3中,dict.keys()返回一个可iterable但不可索引的对象。最简单(但效率不高)的解决方案是:

vocab = list(fdist1.keys())

我正在使用python 3.5,我遇到了 TypeError的相同问题。

使用vocab = list(fdist1.keys())不会给出前50个最常用的单词。
但是fdist1.most_common(50)是的。

此外,如果您只想显示前50个单词,而不是它们的频率,您可以尝试:

[word for (word, freq) in fdist1.most_common(50)]

要打印最常用的200个单词,请使用: 最常见(200) 上面的代码行将返回200个最常用的单词作为密钥频率对。

相关问题 更多 >