我正在尝试将推文分为两类(例如basketball
和non-basketball
)。显然,数据集是动态的,即文档集合不固定为一组N
文档(即推文):当一个人抓取Twitter时,数据集会一遍又一遍地扩张。
应该尝试应用的一件事是Naive Bayes分类器,它广泛用于文本分类。提供了解释here。但是,仍有一个疑问。
我可以从训练集开始计算模型(并说明词汇V
由训练集中包含的术语组成)。现在,可以收集一条新的,未分类的推文,其中包含V
中不存在的术语(即未出现在训练集中的术语)。朴素贝叶斯分类器仍然适用吗?
概括问题:朴素贝叶斯分类器是否可以应用于词汇未完全知晓的情况?
提前谢谢。
答案 0 :(得分:0)
对于测试集中不在训练集中的单词,最简单的方法就是忽略它们。
你可以做更高级的事情,例如测量哪个班级往往看不见/稀有的单词。或者您可以尝试使用单词整形将看不见的单词转换为更一般/观察到的单词类(例如,将所有数字视为相同)。
答案 1 :(得分:0)
Naive Bayes分类器可以应用于那些词汇未完全知晓的情况吗?
如果测试集中的单词不在训练集中,则在训练期间将给出0的类条件概率。由于朴素贝叶斯分类器涉及测试文档中所有单词的产品,因此测试文档中不在列车集中的单个单词将导致文档属于所考虑的类的概率为零。
应用的技巧(我认为你要求)被称为(拉普拉斯)平滑:在测试集中的所有项的计数中加1。它是许多库中的默认设置,例如Python的Scikit-Learn: