如何使用 TextBlob 获取新短语的准确性?

How to get the accuracy of new phrases with TextBlob?

我正在使用 NaiveBayes 模型制作一个分类器来对用户对位置、天气等的请求进行分类...

我 return 的分类如下所示:

("What is the weather in Copenhagen", "weather")

然后对这些请求进行训练并与测试集进行比较,return 测试集的准确性。这个效果不错。

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")

这应该 return 一个错误,但它没有。有没有办法从新输入的短语的 Textblob 中获取准确性?这样当我输入一个短语时,它会告诉我该短语的准确性。我正在使用 Textblob 包和 Python 3。如果需要更多信息,完整的代码在我 GitHub 的 NaturalLanguage.py 文件下。提前谢谢你。

我使用 textBlob 中的 prob_classify 方法解决了我自己的问题。这 returns 给定 class 化的概率。 Phrase 是一个字符串,classification 是来自 NaiveBayes 分类器的 class-action。

    def classifier_prob(self, phrase, classification):
         return self.classifier.prob_classify(phrase).prob(classification)