首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >纸袋和垃圾邮件分类器

纸袋和垃圾邮件分类器
EN

Data Science用户
提问于 2020-12-16 17:38:48
回答 2查看 164关注 0票数 1

使用Bernoulli朴素贝叶斯、Logistic回归和支持向量机实现了垃圾邮件分类器。使用单词袋(BoW)方法对整个安然垃圾邮件数据集进行算法培训.预测是在UCI短信垃圾收集数据集上进行的。我有三个问题:

  1. 在测试期间,在创建术语频率矩阵时,如果我的培训BoW中没有一个单词出现在我的测试电子邮件/smses中,该怎么办?那么,对于这些数据点,文档向量不是零向量吗?我该怎么处理呢?
  2. 如果BoW中没有我测试邮件/短信中的新词呢?
  3. 如何选择我的BoW以提高我的预测精度?
EN

回答 2

Data Science用户

回答已采纳

发布于 2020-12-16 19:00:23

监督ML在假设测试数据与训练数据的分布相同的前提下工作。在真实的用例中,情况并不总是这样,但至少测试数据与培训数据“大部分类似”是必要的。

因此,BoW模型只能应用于使用相同词汇表的数据,而这些词汇的分布基本相同。的确,在测试数据中经常出现OOV (OOV)单词,因为自然语言中的单词遵循Zipf分布,因此有许多单词很少出现。BoW ML模型中的一般假设是,由于这些词很少出现,因此可以合理地忽略它们。

  1. 在测试期间,在创建术语频率矩阵时,如果我的培训BoW中没有一个单词出现在我的测试电子邮件/smses中,该怎么办?那么,对于这些数据点,文档向量不是零向量吗?我该怎么处理呢?

这个事件被认为是不可能发生的:一个句子通常至少包含几个常见的单词(同样是由于Zipf发行版)。然而,这可能发生在一个非常短的短信。无论如何,没有什么特别的事情要做:所有的单词都被忽略了,向量只包含零,模型给出了这个特征向量的预测。

  1. 如果BoW中没有我测试邮件/短信中的新词呢?

这是上述OOV词的传统情况。最简单的(也可能是最常见的)选项是完全忽略未知的单词。对于一些概率模型,平滑可以用来解释OOV单词的存在,但据我所知,这仅用于n克。

  1. 如何选择我的BoW以提高我的预测精度?

实验:使用一个验证集来评估几种方法,然后选择性能最好的方法,并且只在测试集上应用这个方法。

票数 0
EN

Data Science用户

发布于 2020-12-17 05:56:37

Erwan回答说,培训数据需要类似于测试数据。

但是,如果你的培训数据和测试数据包含了类似的电子邮件,而不是确切的单词,那该怎么办?这个场景不能使用BoW术语频率来解决,因为它不包含语义知识(无法学习“旧车”和“二手车”这样的文本之间的相似性)。

我建议您使用Word嵌入(与Word2Vec)或高级语言模型(与伯特)。

如果你是初学者,这个文章将是手把手。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/86788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档