2016-10-30 4 views
1

NLTKのSklearnClassifierとBernoulliNBを使用してデータを分類しようとしています。'SklearnClassifier'オブジェクトにNLTKの属性 'batch_classify'がありません

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-学ぶ0.18を使用していますこれはいくつかのコードです。

+0

https://github.com/nltk/nltk/wiki/Porting-your-code-to-NLTK-3.0を見てください – alvas

+0

まだ始まっていて、まだ移植するコードがないので、必要なドキュメントの最新版を探してください。 – alexis

+0

ありがとう、私は解決しました。 – BoomKa

答えて

1

あなたは古くなったドキュメントを見てきました。 nltk 3では、名前はclassify_many()に変更されました。 (同様に、他のモジュールでは、batch_pos_tag()及びbatch_parse()それぞれpos_tag_sents()parse_sents()に変更した。)

関連する問題