我有大约15k个文本实例,这些实例被手工分类为120个类别中的一个。文本片段是来自客户的电子邮件。类的频率从1到2000不等。我想对这些数据进行分类,以便后续的电子邮件可以自动分类。
我曾尝试过Naive Bayes和SVM,但报告的正确分类实例的百分比分别为51%和57%。我使用过stemmer,删除了停用词并将文本更改为小写。
我确信这样一个包含大量类别和分布不均的文本分类任务,必须采用不同的方式,但我找不到任何关于这种情况的参考......有什么建议吗?
提前致谢!
答案 0 :(得分:0)
我假设类没有重叠(即每条消息只有一个类)。
在不平衡类的情况下,一个有用的方法是使用不对称的错误分类成本,以强制分类器专注于代表性较低的类,因为它的成本分配比其他类更大的数字类。
在二元分类器的情况下,这在WEKA中相对容易(参见例如Class imbalanced distribution and WEKA cost sensitive learning),但在120个类的情况下设置起来要困难得多。因此,一种方法是将此问题转化为120个二元问题(一对一),并为每个问题设置适当的成本矩阵。
根据我的经验,一个更可行的替代方案,并且考虑到大量的课程,将不常见的课程折叠成更大的other
课程。这似乎对实际环境更有用;有一个“其他”文件夹由人类专家检查,而大多数时候分类器正确地将电子邮件分配给其余的--well人口 - 类。
作为最后一点,根据课程的分布,大约50-60%的准确度可能并不差。例如,多数分类器(将每个实例分配给人口最多的类)的99%-1%将是99%准确;但它绝对没用,因为它错过了有趣的例子。在现实生活中,这种情况发生在电子邮件垃圾邮件过滤,欺诈发现以及许多其他域中。