在'compat.py'中找不到引用'Counter'

时间:2018-06-15 09:48:54

标签: python nltk counter compatibility

我正在尝试运行我从here获得的nltk的BLEU分数计算模块。但是导致以下导入错误。

from nltk.compat import Counter

我尝试了一个计数器的pip安装,它已经成功安装。我为这个项目使用了相同的解释器。但这仍然显示为错误。

  

在'compat.py'中找不到引用'Counter'

我正在使用Python 3.5并在pycharm中工作。

enter image description here

任何有关解决此问题的建议都将受到高度赞赏。

3 个答案:

答案 0 :(得分:2)

关于您的nltk版本,您所关注的文档已过时。

collections compat.py导入的nltk.align.bleucompat.py模块正在导入它,就好像它是在nltk.align.bleu中定义的那样。

现在不再有nltk.translate.bleu而是pip install Counter,您可能也想使用There used to be Counter class

为了完整起见,Counter将安装仅支持Python2的counter.Counter up-to-date documentation(然后可以导入为collections.Counter),并且只应在Python2上使用。 6现在更早(如果有人还在使用那些)。自Python 2.7以来,它已作为{{1}}合并到third party library

答案 1 :(得分:0)

<强> TL; DR

您的nltk版本已过时。请用。升级。

pip install -U nltk

当前版本应为3.3。版本3.0太旧了。

答案 2 :(得分:0)

尽管我的nltk版本是最新的,并且我使用的是Python 3.5,但我一直遇到以下错误。

  

在'compat.py'中找不到引用'Counter'

不是带有compat.py文件的 issue ,而是 无法解析Counter对象的问题 。由于Counter是用于计数可哈希对象的字典子类,因此我尝试使用python的collections模块导入。这些是高性能的容器数据类型。可从python 2.7中获得。

因此,我仅按如下所示修改了import语句,它就起作用了。

from collections import Counter

再加上pointers on Counters:这是一个无序集合,其中元素存储为字典键,其计数存储为字典值。计数可以是任何整数值,包括零或负计数。 Counter类类似于其他语言的包或多件套。