使用Bernoulli朴素贝叶斯、Logistic回归和支持向量机实现了垃圾邮件分类器。使用单词袋(BoW)方法对整个安然垃圾邮件数据集进行算法培训.预测是在UCI短信垃圾收集数据集上进行的。我有三个问题:
发布于 2020-12-16 19:00:23
监督ML在假设测试数据与训练数据的分布相同的前提下工作。在真实的用例中,情况并不总是这样,但至少测试数据与培训数据“大部分类似”是必要的。
因此,BoW模型只能应用于使用相同词汇表的数据,而这些词汇的分布基本相同。的确,在测试数据中经常出现OOV (OOV)单词,因为自然语言中的单词遵循Zipf分布,因此有许多单词很少出现。BoW ML模型中的一般假设是,由于这些词很少出现,因此可以合理地忽略它们。
这个事件被认为是不可能发生的:一个句子通常至少包含几个常见的单词(同样是由于Zipf发行版)。然而,这可能发生在一个非常短的短信。无论如何,没有什么特别的事情要做:所有的单词都被忽略了,向量只包含零,模型给出了这个特征向量的预测。
这是上述OOV词的传统情况。最简单的(也可能是最常见的)选项是完全忽略未知的单词。对于一些概率模型,平滑可以用来解释OOV单词的存在,但据我所知,这仅用于n克。
实验:使用一个验证集来评估几种方法,然后选择性能最好的方法,并且只在测试集上应用这个方法。
发布于 2020-12-17 05:56:37
Erwan回答说,培训数据需要类似于测试数据。
但是,如果你的培训数据和测试数据包含了类似的电子邮件,而不是确切的单词,那该怎么办?这个场景不能使用BoW术语频率来解决,因为它不包含语义知识(无法学习“旧车”和“二手车”这样的文本之间的相似性)。
我建议您使用Word嵌入(与Word2Vec)或高级语言模型(与伯特)。
如果你是初学者,这个文章将是手把手。
https://datascience.stackexchange.com/questions/86788
复制相似问题