使用 Countvectorizer Python 查找文本分类的最佳特征

数据挖掘 Python 分类 文本
2022-02-22 20:49:54

我面临一个文本分类问题,其中算法是人为但受关键字影响的。因此,我不能使用任何 ML 模型,但我当然可以采用数据科学驱动的方法来找到可以确定类别的最佳关键字。

因此,我设法使用 Countvectorizer 构建了一个数据框,其中每一行是整个输入数据词汇表的一个单词,3 个类别列包含该单词在每个类别中出现的次数。

从该数据框中获得最佳关键字的最佳方法是什么?我可以使用显着性统计检验吗?我不能随便选择一个阈值,然后说一个类别中出现超过 20 次的所有词都是该类别的好关键字;这是因为数据集也很不平衡(50% 是 A 类,35% 是 B 类,15% 是 C 类)所以我确信必须有一些聪明的方法来提取最重要的影响关键字。

我的第一次尝试是通过类出现来加权出现,因此在查看绝对数字时,在 C 类中出现 15+X% 的单词可能很重要,尽管该单词在 A 类中出现的频率更高。这种方法并不完美,但这就是我卡住的地方。想法非常受欢迎。

1个回答

我可以使用显着性统计检验吗?我不能只选择一个任意阈值并说在一个类别中出现超过 20 次的所有单词都是该类别的好关键字

这不仅仅是一个阈值的问题,因为有些词通常很常见,即使它们与某个类别没有特别关联。

首先,在任何情况下,您都应该删除最不常见的词,因为它们经常偶然出现并导致过度拟合。

第一个非常基本的选项是计算给定单词的类别的条件概率:具有高高度相关,但这没有考虑类别之间的不平衡,因此您会有很多与多数类别高度相关的单词。p(c|w)p(c|w)c

更合适的方法是使用统计关联度量:

  • 单词和类别之间的逐点互信息
  • 信息增益条件熵,它计算当一个人知道这个词时,一个人有多少关于该类别的信息信息。这些度量用于决策树算法以选择最佳特征。