能否在TF/IDF中考虑类别信息?

9
使用分类算法(例如朴素贝叶斯或SVM)和StringToWordVector,是否可以使用TF/IDF并在整个当前类中计算术语频率,而不仅仅是查看单个文档?
让我解释一下,我希望计算为给定类别中非常频繁的词汇(而不仅仅是给定文档),但在整个语料库中并不是非常频繁的词汇提供高分。
这是否可能直接实现,还是需要进行额外的开发?
谢谢 :)
3个回答

6
我希望计算能够给予某个类别中非常频繁的词语高分(不仅仅是给定文档),但在整个语料库中并不是非常频繁的词语。
您似乎想要有监督的术语加权。我不知道是否有现成的实现,但有大量相关文献。例如,加权方案tf-χ²用χ²独立性检验的结果替换idf,因此具有统计学上依赖于某些类别的术语会得到提升,还有其他几种方法。
Tf-idf本身的特性是无监督的。

4

我认为你在这里有些混淆了——你所要求的实际上是该术语在该类文档中的特征权重。这就是学习算法旨在优化的内容。只需关注有用的文档表示,必须对它们所属的类别保持不变(因为您不会知道看不见的测试文档所属的类别)。


0

改变idf可能在某些场景下有所帮助。

您可以使用以下定义的idf:
log(1+p(该类别中的词项)/p(其他类别中的词项))

缺点:每个类别都有不同的idf,这可以解释为不同类别中的每个词项在区分类别方面具有各种贡献。

应用:通过在Native Bayes中添加idf,我在查询关键字分类方面得到了改进。并且在提取关键字时表现良好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接