【发布时间】:2016-12-13 00:36:50
【问题描述】:
每当我尝试调用一个新的分类器时,我都会收到同样的错误...
这是我的代码:
from nltk.classify.scikitlearn import SklearnClassifier
from sklearn.naive_bayes import BernoulliNB
BernoulliNB_classifier = SklearnClassifier(BernoulliNB())
这是错误:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Python34\lib\site-packages\nltk\classify\scikitlearn.py", line 69, in __init__
self._encoder = LabelEncoder()
NameError: name 'LabelEncoder' is not defined
当我查看文档时,这正是它应该被调用的方式(参见http://www.nltk.org/api/nltk.classify.html)
另外,它适用于 Python 2.7。
注意:我尝试了多项朴素贝叶斯、支持向量机和许多其他算法,它返回相同的错误。
【问题讨论】:
-
from sklearn.preprocessing import LabelEncoder从您的 python 3.4 环境返回什么?您可能没有正确设置环境。见github.com/nltk/nltk/blob/develop/nltk/classify/… -
@dukebody 它正常导入,我已经尝试过了..
-
@Charles:Python3 包中有 Numpy、Scipy、Scikit-learn 吗?如果不使用 PIP3 安装。
-
@ravi 是的,我有所有这些包
-
@Charles 我也有同样的问题 - 你找到解决办法了吗?
标签: python-3.x scikit-learn nltk