我正在尝试运行我从here获得的nltk的BLEU分数计算模块。但是导致以下导入错误。
from nltk.compat import Counter
我尝试了一个计数器的pip安装,它已经成功安装。我为这个项目使用了相同的解释器。但这仍然显示为错误。
在'compat.py'中找不到引用'Counter'
我正在使用Python 3.5并在pycharm中工作。
任何有关解决此问题的建议都将受到高度赞赏。
答案 0 :(得分:2)
关于您的nltk
版本,您所关注的文档已过时。
collections
compat.py
导入的nltk.align.bleu
和compat.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类类似于其他语言的包或多件套。