n-gram 模型 - 为什么要平滑?

数据挖掘 nlp 斯坦福-nlp
2022-02-16 19:52:33

我正在创建一个 n-gram 模型,它将预测 n-gram(可能是 unigram、bigram 和 trigram)之后的下一个单词作为课程作业。

当在训练数据中找不到测试数据中的 n-gram 时,我已经看到了很多关于如何处理零概率的解释。我了解'add-one'平滑和其他一些技术是如何工作的。

但是,我找不到任何关于我们为什么需要采取此类行动的信息。

例如,如果测试数据有“和平以微笑开始”,而这不在训练数据中,那么当我为模型提供“和平以微笑开始”时,它不会出现“微笑”结束词。它可能提供其他人,也可能不提供。如果没有或它们的概率很低,那么我将提供较短的“以 a 开头”的 n-gram 并查看提供的单词和概率。如果失败了,那么“with a”等等。

我怀疑我错过了一些东西,但看不到什么。

请问你能帮忙吗?

1个回答

平滑的目的是防止语言模型将零概率分配给看不见的事件。

这是必要的,因为在某些情况下,单词可以出现在相同的上下文中,但它们没有出现在你的训练集中。平滑是一个相当粗略的技巧,可以让你的模型更通用和更真实。您也可以将其视为防止过度拟合的工具。