3.2 准确度

用于评估一个分类最简单的度量是准确度,测量测试集上分类器正确标注的输入的比例。例如,一个名字性别分类器,在包含 80 个名字的测试集上预测正确的名字有 60 个,它有 60/80 = 75%的准确度。nltk.classify.accuracy()函数会在给定的测试集上计算分类器模型的准确度:

  1. >>> classifier = nltk.NaiveBayesClassifier.train(train_set)
  2. >>> print('Accuracy: {:4.2f}'.format(nltk.classify.accuracy(classifier, test_set)))
  3. 0.75

解释一个分类器的准确性得分,考虑测试集中单个类标签的频率是很重要的。例如,考虑一个决定词 bank 每次出现的正确的词意的分类器。如果我们在金融新闻文本上评估分类器,那么我们可能会发现,金融机构的意思 20 个里面出现了 19 次。在这种情况下,95%的准确度也难以给人留下深刻印象,因为我们可以实现一个模型,它总是返回金融机构的意义。然而,如果我们在一个更加平衡的语料库上评估分类器,那里的最频繁的词意只占 40%,那么 95%的准确度得分将是一个更加积极的结果。(在2测量标注一致性程度时也会有类似的问题。)