我正在创建一个 n-gram 模型,它将预测 n-gram(可能是 unigram、bigram 和 trigram)之后的下一个单词作为课程作业。
当在训练数据中找不到测试数据中的 n-gram 时,我已经看到了很多关于如何处理零概率的解释。我了解'add-one'平滑和其他一些技术是如何工作的。
但是,我找不到任何关于我们为什么需要采取此类行动的信息。
例如,如果测试数据有“和平以微笑开始”,而这不在训练数据中,那么当我为模型提供“和平以微笑开始”时,它不会出现“微笑”结束词。它可能提供其他人,也可能不提供。如果没有或它们的概率很低,那么我将提供较短的“以 a 开头”的 n-gram 并查看提供的单词和概率。如果失败了,那么“with a”等等。
我怀疑我错过了一些东西,但看不到什么。
请问你能帮忙吗?