识别有助于对样本进行分类的信息量最大的(子)词/向量

数据挖掘 神经网络 nlp 文本挖掘 特征选择
2022-03-04 03:10:52

我正在使用 fastText 对文本进行分类,fastText是一个 word2vec 库,它还可以为字符级 n-gram 创建向量,并且我已经成功训练了一个二进制分类器。

现在我想看看哪些词或子词 n-gram 对这两个类的类最有预测性(例如,如果分类器看到一个词forest或一个子词,res那么这可能是文档具有标签的强烈指示Nature,但如果它看到单词“and”,那么这对于这个分类任务可能不是很有信息)。

因此,我想这个问题可以表述为:

给定表示单词和子词的向量以及经过训练的 fastText 分类器,获得例如前 10 个信息量最大的词和子词列表以决定样本属于哪个类的最佳方法是什么?

尽管如果您能提出考虑我当前使用 fastText 设置的具体建议,我会很高兴,但我也愿意接受更通用的解决方案建议。

谢谢

1个回答

注1:我相信您正在寻找的技术术语是“(子)词显着性”。

首先想到(这不是最好的方法,但如果您的示例很小,可能值得快速尝试) - 通过 fastText 运行包含所有单词的文本,并获得带有概率的基线最有可能的标签(预测概率函数)。然后删除您有兴趣测试的每个单词(可能会删除诸如“a”“the”等常用词),并比较每个获得的一组predicted_probs 的预测概率。在基线和缺失 wordX 之间给出最大差异的那些可以被解释为信息量最大的。

这个想法的一个排列是获取有趣单词的嵌入,然后获取到您拥有的标签的距离度量(我假设余弦距离)。那么你有一个问题,因为它们可能在距离方面均匀分布在标签上,但如果有一组单词接近特定标签,则可以解释为信息丰富。

我相信有更好的技术可以做到这一点,所以我也很好奇:)。您可能想检查这些(但他们使用额外的建模来获得显着性)

学习神经词显着性分数

一种用于文本分类的区域嵌入的新方法- 这涉及如何识别输入文本的有用位的确切问题