![](/img/trans.png)
[英]Nltk lemmatizers do not recognize the plural form of chemical names
[英]nltk do not recognize list
我有一个名为VoteClassifier
的 class,如下所示。 我创建了一个名为unpickled_model
的列表,将所有经过训练的 model 放入其中,但 nltk 无法识别列表。 请问你有什么想法吗? 任何贡献将不胜感激。
投票分类器 class:
class VoteClassifier(ClassifierI):
def __init__(self, *classifiers):
self._classifiers = classifiers
def classify(self, features):
votes = []
for c in self._classifiers:
v = c.classify(features)
votes.append(v)
return mode(votes)
def confidence(self, features):
votes = []
for c in self._classifiers:
v = c.classify(features)
votes.append(v)
choice_votes = votes.count(mode(votes))
conf = choice_votes / len(votes)
return conf
models = MultinomialNB, BernoulliNB, LogisticRegression, SGDClassifier, SVC, LinearSVC
unpickeled_models = []
for model in models:
classifier_f = open("{0}.pickle".format(model),"rb")
unpickeled_models.append(pickle.load(classifier_f))
classifier_f.close()
voted_classifier = VoteClassifier(unpickeled_models)
print("voted classifier accuracy pct:", (nltk.classify.accuracy(voted_classifier, testing_set))*100)
错误:
Traceback (most recent call last):
File "model.py", line 152, in <module>
print("voted classifier accuracy pct:", (nltk.classify.accuracy(voted_classifier, testing_set))*100)
File "/Users/delalma/Library/Python/3.7/lib/python/site-packages/nltk/classify/util.py", line 91, in accuracy
results = classifier.classify_many([fs for (fs, l) in gold])
File "/Users/delalma/Library/Python/3.7/lib/python/site-packages/nltk/classify/api.py", line 79, in classify_many
return [self.classify(fs) for fs in featuresets]
File "/Users/delalma/Library/Python/3.7/lib/python/site-packages/nltk/classify/api.py", line 79, in <listcomp>
return [self.classify(fs) for fs in featuresets]
File "model.py", line 45, in classify
v = c.classify(features)
AttributeError: 'list' object has no attribute 'classify'
这是关于如何用*
定义__init__
function ;
def test_function(*classifiers):
classifiers = classifiers
print(classifiers)
list_ = ['hello', 'world']
test_function(list_)
输出一个带有列表的元组;
(['hello', 'world'],)
如果您删除*
;
def test_function(classifiers):
classifiers = classifiers
print(classifiers)
list_ = ['hello', 'world']
test_function(list_)
输出一个列表;
['hello', 'world']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.