machine-learning - 朴素贝叶斯分类中的未知词

标签 machine-learning smoothing text-classification

如何测试未知单词的文本分类问题?在训练模型时,我们可以使用平滑技术(Laplace add-1)来确保任何单词在每个类别中至少获得 1 个计数。

那么,测试阶段呢?如果训练数据中没有出现某个单词,处理它的最佳方法是什么?简单地跳过它,或者也给它一个出现次数 1?

谢谢您的任何建议或意见。具体来说,我正在使用朴素贝叶斯分类器。

最佳答案

当你对一个实例进行分类时,想想发生了什么,如果你对一个看不见的特征进行加1平滑,那么你只需乘以一个非常小的概率(1/vocabSize)(或添加日志非常小的概率)到您的累积分数。如果您跳过看不见的功能,那么分数不会发生任何变化。

因此,一般来说,测试数据中不可见的特征不应该对您的分类决策产生影响 - 您对此一无所知,因为您在训练中没有看到它,所以在平滑的情况下,您会将相同的小(对数)概率乘以(或相加)到每个类(class)的所有分数,否则您将忽略所有类(class)分数。

如果您不相信,只需尝试两者,看看是否有任何区别。

关于machine-learning - 朴素贝叶斯分类中的未知词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26287971/

相关文章:

matlab - 裁剪图像后如何消除边缘边界附近的错误?

python - MAXent分类器NLTK输出理解

machine-learning - 交叉验证是否用于找到最佳模型/架构或模型/架构的最佳参数?

python - 或者在pytorch中训练多任务学习模型 - 权重更新

javascript - 在 HTML 中使用 Node.js 模块

c++ - C++中的曲线平滑

machine-learning - 如何确定神经网络中的权重?

python - 平方 (x^2) 近似的神经网络

python - 将 Wordnet 的输出简化为一种含义