我正在使用NaiveBayes模型制作分类器,以对用户对位置,天气等的请求进行分类......
我要归类的分类如下:
("What is the weather in Copenhagen", "weather")
然后训练这些请求并与测试集进行比较,测试集返回准确性。这很好用。
c = NaiveBayesClassifier(train_set)
self.classifier = Blobber(analyzer=NaiveBayesAnalyzer(), classifier=c)
print(c.accuracy(test_set))
我正在运行此方法来分类新短语
def classify_phrase(self, tb_phrase):
return self.classifier(tb_phrase).classify()
但是,当我尝试对不属于我的某个分类的新短语进行分类或者是用户的错误时,它仍会尝试将其归类为请求。示例如下:
("Where is Bob", "location")
这应该返回错误,但事实并非如此。有没有办法从新输入的短语中获得Textblob的准确度?因此,当我输入一个短语时,它会告诉我该短语的准确性。我正在使用Textblob Package和Python 3.如果需要更多信息,则完整代码位于GitHub上的NaturalLanguage.py文件下。提前谢谢。
答案 0 :(得分:1)
我使用textBlob中的prob_classify方法解决了我自己的问题。这返回给定分类的概率。短语是一个字符串,分类是来自NaiveBayes分类器的类操作。
def classifier_prob(self, phrase, classification):
return self.classifier.prob_classify(phrase).prob(classification)