使用朴素贝叶斯进行文本分类

问题描述 投票:3回答:2

我正在使用朴素贝叶斯进行文本分类机器学习问题。我把每个单词都作为一个功能。我已经能够实现它,并且我的准确性很高。

我可以使用单词元组作为特征吗?

例如,如果有两个类,政治和体育。政府这个词可能出现在他们两个人身上。然而,在政治上我可以有一个元组(政府,民主),而在课堂体育中我可以有一个元组(政府,运动员)。因此,如果一篇新的文章出现在政治中,那么元组(政府,民主)的概率比元组(政府,运动员)更具概率。

我问这是因为这样做是因为我违反了Naive Bayes问题的独立性假设,因为我也在考虑将单个单词作为特征。

另外,我正在考虑为功能添加权重。例如,3元组功能的重量将小于4元组功能。

从理论上讲,这两种方法是否都没有改变Naive Bayes分类器的独立性假设?此外,我还没有开始我提到的方法,但这会提高准确性吗?我认为准确性可能不会提高,但获得相同精度所需的训练数据量会更少。

machine-learning naivebayes document-classification
2个回答
5
投票

即使没有添加bigrams,真实文档也已经违反了独立性假设。以将奥巴马纳入文件为条件,总统更有可能出现。尽管如此,天真的贝叶斯在分类方面仍然做得不错,即使它给出的概率估计是绝望的。因此,我建议您继续为分类器添加更复杂的功能,看看它们是否能提高准确性。

如果使用较少的数据获得相同的准确度,这基本上相当于使用相同数量的数据获得更高的准确性。

另一方面,使用更简单,更常见的功能可以更好地减少数据量。如果您尝试将太多参数放在太少的数据上,那么您往往会过度配合。

但最重要的是尝试并看到。


2
投票

不,从理论的角度来看,你并没有改变独立性假设。您只是创建一个修改过的(或新的)样本空间。通常,一旦开始在样本空间中使用更高的n-gram作为事件,数据稀疏性就成了问题。我认为使用元组会导致同样的问题。您可能需要更多的培训数据,而不是更少。您可能还需要更多地考虑使用的平滑类型。简单的拉普拉斯平滑可能并不理想。

我认为最重要的一点是:无论您使用什么分类器,功能都高度依赖于域(有时甚至是数据集)。例如,如果您根据电影评论对文本情绪进行分类,那么仅使用unigrams似乎是违反直觉的,但它们的表现要好于仅使用形容词。另一方面,对于Twitter数据集,发现unigrams和bigrams的组合是好的,但是更高的n-gram没有用。根据这些报告(参考Pang和Lee,意见挖掘和情感分析),我认为使用更长的元组会显示类似的结果,因为毕竟,单词元组只是高维空间中的点。基本算法的行为方式相同。

© www.soinside.com 2019 - 2024. All rights reserved.