machine-learning - 如何使用 MLE 来训练 n-gram 模型?

标签 machine-learning nlp n-gram mle

我学习了很多关于使用 MLE 训练 n-gram 模型的文档,但是当我注意到所有实现只是通过计算 n-gram 来计算条件概率时,我的问题是与 MLE 有何关系?

最佳答案

直观上,您必须计算世界上所有文本中的所有 n 元语法才能计算它们的概率。由于这是非常不现实的,MLE 提供了一种通过在给定语料库中计数这些 n-gram 概率来估计它们的方法。

例如,如果您需要单词 x 后面的单词 y 的二元概率,您可以将它们出现的次数作为一对进行计数,C(xy) 。然后,您必须将此计数除以以 x 开头的所有二元组的总和(即:x 后跟每个可能的单词),sum of C(xz) over all z 来标准化此计数。 ,因此 MLE 估计最终位于 0 和 1 之间。

因此,这个二元组概率可以通过以下表达式来估计:

P(y|x) = C(xy) / sum of C(xz) over all z

请注意,此表达式可以进一步简化,因为以 x 开头的所有二元组计数的总和必须等于 x 本身的一元组计数:

P(y|x) = C(xy) / (x)

关于machine-learning - 如何使用 MLE 来训练 n-gram 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38523839/

相关文章:

machine-learning - 为什么梯度下降会更新 0 值权重?

python - 为什么 TensorFlow 的 `tf.data` 包会减慢我的代码速度?

python - 虚拟助理的 POS 标记器

postgresql - 从 PostgreSQL 中的文本正文中提取所有长度为 1、2 和 3 的 n-gram 的最快方法是什么?

python - 检测外来词

machine-learning - 现代 CNN(卷积神经网络)作为 DetectNet 旋转不变吗?

python - Reconciling Records (Date and Number Value) : Given two datasets with multiple features, 如何获得最有可能的匹配?

ruby - 找一些句子

apache-spark - 在分布式 Spark 系统中嵌入句子的最有效方法是什么?

python - 使用所有可能的 3 元组向量化三元组 - Python