文本分类:准确性

数据挖掘 Python 聚类 文本分类
2022-02-26 10:51:23

我想了解如何计算聚类分析的准确性。我有一百篇文章。数据集如下所示:

Author  Text Checked
Shakespeare ‘...’ yes
Keats ‘...’ no
...

在正文中,有一些作者的引述。已手动填写选中的列。我想做的是按作者对文本进行分组。我已经使用 kmeans 和 TfidfVectorizer 做到了。但是我想了解是否可以测试这种方法的准确性。你知道我该怎么做吗?如果不可能,请告诉我我可以考虑哪些其他方法?最好测试不同的方法并查看准确性水平。任何例子都会很棒。

1个回答

有不同的方法可以解决您描述的任务:

  • 如果目标只是在一组预定义的作者中预测作者,那么这不是聚类任务(无监督)而是分类任务(监督)。这意味着您将在训练集和测试集之间拆分数据(或使用交叉验证),使用训练集训练模型,然后将其应用于测试集,最后通过将预测作者与预测作者进行比较来评估测试集的性能每个文本的真正作者。通常将每个作者的性能汇总为 f1-score,然后是宏观/微观 f1-score。
  • 如果目标是某种实验,以查看聚类算法是否可以按作者正确识别组(剧透:它肯定不能,至少不是很好),那么您正在通过外部评估进行无监督学习。我不知道这种情况下的任何标准评估方法(可能有)。我假设您需要集群 ID 和作者之间的匹配方法(例如,将每个作者分配给该作者实例最多的集群),然后您可以应用常规分类评估。

补充两点:

  • 按作者区分文本的一般问题称为文体测量。有很多变体,例如开放或封闭分类、作者验证、作者简介等。它是 NLP 研究的一个活跃领域(这意味着有很多关于它的文献),并且最先进的方法与常规方法有很大不同分类/聚类。这并不意味着常规方法根本不起作用,但通常不如专用方法那么好。
  • 特征:TF-IDF 词向量用于文本“主题”很重要的任务,例如对有关体育、政治等的文章进行分类。当任务涉及写作风格时,这些特征有更好的选择:
    • 不关注稀有词(如 IDF 所做的那样),通常应该丢弃稀有词(因为它们会导致大量过拟合)
    • 单词不一定是要考虑的正确单位。字符 trigrams/4-grams 已被证明效果更好。
    • 标记化可能很棘手,通常认为根本不进行标记化更安全,这样作者的标点符号习惯就会被保留为特征。