我正在尝试实现一个朴素贝叶斯分类器来对本质上是特征集(而不是袋子)的文档进行分类,即每个特征都包含一组独特的特征,每个特征最多可以在文档中出现一次。例如,您可以将功能视为文档的唯一关键字。
我密切关注 Rennie 等人。人。http://www.aaai.org/Papers/ICML/2003/ICML03-081.pdf上的论文,但我遇到了一个似乎没有得到解决的问题。即,由于文档具有较少的特征数量,对短文档进行分类会导致后验概率更高;对于长文档,反之亦然。
这是因为后验概率被定义为(忽略分母):
P(class|document) = P(class) * P(document|class)
扩展到
P(class|document) = P(class) * P(feature1|class) * ... * P(featureK|class)
由此可见,特征较少的短文档将具有较高的后验概率,这仅仅是因为要相乘的词项较少。
例如,假设特征“foo”、“bar”和“baz”都出现在正训练观察中。然后,具有单个特征“foo”的文档将比具有特征 {“foo”、“bar”、“baz”} 的文档具有更高的后验概率被分类为正类。这似乎违反直觉,但我不太确定如何解决这个问题。
是否可以进行某种长度标准化?一种想法是将文档的大小作为特征添加,但这似乎不太正确,因为结果会因训练数据中的文档大小而出现偏差。