【发布时间】:2013-10-19 17:40:20
【问题描述】:
使用分类算法(例如朴素贝叶斯或 SVM)和 StringToWordVector, 是否可以使用 TF/IDF 并计算整个当前类中的术语频率,而不是只查看单个文档?
让我解释一下,我希望计算能够对给定类(不仅仅是给定文档)非常频繁但在整个语料库中不是非常频繁的单词给予高分。
是否可以开箱即用,还是需要一些额外的开发?
谢谢:)
【问题讨论】:
标签: machine-learning weka
使用分类算法(例如朴素贝叶斯或 SVM)和 StringToWordVector, 是否可以使用 TF/IDF 并计算整个当前类中的术语频率,而不是只查看单个文档?
让我解释一下,我希望计算能够对给定类(不仅仅是给定文档)非常频繁但在整个语料库中不是非常频繁的单词给予高分。
是否可以开箱即用,还是需要一些额外的开发?
谢谢:)
【问题讨论】:
标签: machine-learning weka
我希望计算能够为给定类(不仅仅是给定文档)非常频繁但在整个语料库中不是非常频繁的单词打高分。
您似乎想要有监督的词权重。我不知道有任何现成的实现,但是有很多literature about it。例如。加权方案 tf-χ² 将 idf 替换为 χ² 独立性检验的结果,因此在统计上依赖于某些类的项得到提升,还有其他几个。
Tf-idf 本身本质上是无监督的。
【讨论】:
我认为您在这里感到困惑-您所要求的本质上是该类别文档的该术语的特征权重。这就是学习算法旨在优化的内容。只需担心文档的有用表示,它必须对它们所属的类保持不变(因为对于看不见的测试文档,您不会知道类 是什么)。
【讨论】:
更改后的 idf 可能会在某些场景中为您提供帮助。
您可以将 idf 定义为:
log(1+p(本类项)/p(其他类项))
缺点:每个类都有不同的idf,这可以理解为不同类中的每个词对区分类别有不同的贡献。
应用:通过在 Native Bayes 中添加 idf,我在查询关键字分类方面得到了改进。并且在提取关键字时表现良好。
【讨论】: