2016-01-23 110 views
4

这里是我的代码,其中i调用方法分类():find_features的类型错误:分类()缺少1所需位置参数: 'FEATURESET'

def sentiment(text): 
    feats = find_features(text) 
    return voted_classifier.classify(feats),voted_classifier.confidence(feats) 

定义()方法:

def find_features(document): 
    words = word_tokenize(document) 
    features = {} 
    for w in word_features: 
     features[w] = (w in words) 

    return features 

我得到的错误:

TypeError: classify() missing 1 required positional argument: 'featureset' 

其中featuresets是:

featuresets_f = open("pickled_algos/featuresets.pickle", "rb") 
featuresets = pickle.load(featuresets_f) 
featuresets_f.close() 

random.shuffle(featuresets) 
print(len(featuresets)) 

testing_set = featuresets[8000:] 
training_set = featuresets[:8000] 

(注:我在Ubuntu 14.04做使用Python 3.4的Twitter情感分析,NLTK)

回答

2

我怀疑你有没有受过训练的分类项。请注意以下错误:

>>> from nltk import NaiveBayesClassifier # for example 
>>> NaiveBayesClassifier.classify(feats) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: classify() missing 1 required positional argument: 'featureset' 

您需要先训练它:

>>> classifier = NaiveBayesClassifier.train(training_set) 

然后你可以特征分类:

>>> classifier.classify(feats) # feats == a dict of features 
相关问题