0

我正在尝试将推文分为两类(例如,basketballnon-basketball)。显然,数据集是动态的,即文档集合不固定为一组N文档(即推文):数据集在爬取 Twitter 时一遍又一遍地膨胀。

应该尝试应用的一件事是朴素贝叶斯分类器,它广泛用于文本分类。此处提供了解释。然而,一个疑问仍然存在。

我可以从训练集开始计算模型(并说明词汇表V是由训练集中包含的术语组成的)。现在,人们可以收集一条新的、未分类的推文,其中包含不存在的V术语(即,没有出现在训练集中的术语)。朴素贝叶斯分类器是否仍然适用?

概括问题:朴素贝叶斯分类器能否应用于词汇表不完全已知的情况?

先感谢您。

4

2 回答 2

0

对于测试集中不在训练集中的单词,最简单的方法就是忽略它们。

你可以做一些更花哨的事情,比如衡量哪个班级往往有看不见/稀有的词。或者您可以尝试使用单词整形将看不见的单词变成更一般/观察到的单词类别(例如,将所有数字视为相同)。

于 2014-04-25T16:28:16.060 回答
-1

朴素贝叶斯分类器能否应用于词汇不完全已知的情况?

如果测试集中的单词不在训练集中,则在训练期间这些单词的类条件概率为 0。因为朴素贝叶斯分类器涉及测试文档中所有单词的乘积,所以测试文档中不在训练集中的单个单词将导致文档属于所考虑的类的概率为零。

应用的技巧(我认为您正在要求)称为(拉普拉斯)平滑:将 1 添加到测试集中所有术语的计数。它是许多库中的默认设置,例如在 Python 的 Scikit-Learn 中:

http://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.MultinomialNB.html#sklearn.naive_bayes.MultinomialNB

于 2017-11-14T15:51:52.423 回答