【问题标题】:'SklearnClassifier' object has no attribute 'batch_classify' in NLTK [duplicate]'SklearnClassifier' 对象在 NLTK 中没有属性'batch_classify' [重复]
【发布时间】:2017-03-12 15:27:30
【问题描述】:

我正在尝试使用 NLTK 的 SklearnClassifier 和 BernoulliNB 对数据进行分类。这是一些代码:

train = posFeatures[174:]+negFeatures[174:]+neuFeatures[174:]
devtest = posFeatures[124:174]+negFeatures[124:174]+neuFeatures[124:174]
test = posFeatures[:124]+negFeatures[:124]+neuFeatures[:124]
dev, tag_dev = zip(*devtest)
def score(classifier):
    classifier = SklearnClassifier(classifier)
    classifier.train(train)
    pred = classifier.batch_classify(dev)
    return accuracy_score(tag_dev,pred)
print('BernoulliNB  accuracy is %f'%score(BernoulliNB()) )

然后我得到了这个错误:

Traceback (most recent call last):
  File "G:/pycharm/quanbu.py", line 53, in <module>
    print('BernoulliNB  accuracy is %f'%score(BernoulliNB()) )
  File "G:/pycharm/quanbu.py", line 51, in score
    pred = classifier.batch_classify(dev)
AttributeError: 'SklearnClassifier' object has no attribute 'batch_classify'

我正在使用 python3.5.2,nltk3.2.1,scikit-learn 0.18。

【问题讨论】:

标签: python-3.x scikit-learn classification nltk


【解决方案1】:

您一直在查看过时的文档。在 nltk 3 中,名称更改为 classify_many()。 (同样在其他模块中,batch_pos_tag()batch_parse() 分别更改为 pos_tag_sents()parse_sents()。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-04
    • 2015-08-03
    • 2013-12-22
    • 2021-12-04
    • 2021-05-07
    • 2016-09-20
    • 2013-06-25
    • 2018-09-12
    相关资源
    最近更新 更多