2016-10-30 3 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())) 

다음이 오류가있어 : 나는 python3.5.2, nltk3.2.1, 0.18을 scikit 배우고 사용하고

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' 

합니다.

+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()로 변경 하였다.)

관련 문제