NLP 语言模型_ 它们是什么_ N-gram 示例
NLP 中的语言模型是统计生成的计算模型,它们捕获单词和短语之间的关系以生成新的文本。从本质上讲,它们可以找到给定单词序列中下一个单词的概率,以及整个单词序列的概率。
这些语言模型很重要,因为它们有助于各种 NLP 任务,例如机器翻译、语言生成和词语补全等。您可能没有意识到,但在电脑或手机上打字时,所做的更正和您的写作本质上是由 NLP 指导的;词语补全,有时拼写和短语的错误检测,都是基于概率语言模型。
本文将介绍语言模型的工作原理、统计和概率背景、使用的各种技术以及它们在各种环境中的应用。具体来说,我们将介绍 N-gram 模型,它是其中最基本的一种。
什么是 N-gram 语言模型以及它是如何推导出来的?
语言模型有两种类型:统计模型和基于神经网络的语言模型。N-gram 属于统计模型,借助马尔可夫属性,为句子和句子中的单词创建概率分布。让我们深入了解这些模型是如何形成的。根据我们对条件概率的了解,我们可以使用概率的链式法则找到单词序列的概率,以及给定公式的下一个单词的概率,其中 Wi 表示句子中的第 i 个单词
序列的概率如下
Equation 1: P(W1, W2,....., Wn) = P(W1) x P(W2|W1) x P(W3|W1,W2) …..x P(Wn|W1,W2,....,Wn-1)
序列中给定单词的概率将是
$$\mathrm{公式\:2\::\:P(Wi\:|\:Wi-1,\:Wi-2,\:.....,\:W1)\:=\:\frac{Count(wi−1,wi−2,....,w1)}{Count(wi,wi−1,wi−2,...,w1)}}$$然而,在处理大型语料库时,上述公式中使用的这种方法的一般思想需要花费太多时间和资源来计算。我们可以改为利用我们对概率的了解来寻找新的方法来近似单词和句子的概率。
在处理每个前面的单词时,我们意识到这可能是一项相当繁琐的任务,因此我们可以假设上述马尔可夫属性。
这意味着,与其关注每个前面的单词,我们只关注固定数量的单词,这些单词反过来代表所有前面的单词。因此,我们得到以下估计 -
Equation 3: P(Wi = w1 | Wi-1 = wi-1, Wi-2 = wi-2, …. W1 = w1) ≈ P(Wi = wi | Wi-1 = wi-1)
现在,我们可以结合“公式 1”和“公式 3”来创建一个公式,我们可以通过近似更容易地使用它 -
Equation 4: P(W1, W2,....., Wn) ≈ P(W1) x P(W2|W1) x P(W3|W2) …..x P(Wn|Wn-1)
请注意,在上面的公式中,我们是如何只选择概率序列中的两个单词的?好吧,在 n-gram 模型中,这将是一个二元语法。如果我们只关注每个特定的单词,它将是单字语法,如果我们依次选择三个单词,我们将得到三元语法。这种命名约定继续命名为 4-gram、5-gram,依此类推。
何时使用哪个模型
要了解何时使用哪种类型的模型,例如二元语法或 5-gram 模型,将取决于数据集的大小。二元语法模型适合小型数据集,因为它们比大型数据集上的较大 n-gram 更可能出现,这可能会导致稀疏性。另一方面,对于较大的数据集,较大的 n-gram 模型 n 大小将起作用。
为了帮助具体理解这一点,让我们用实际的单词替换上面公式中提到的变量。下面是一个特定句子的二元语法模型示例(请注意,START 和 END 用于指示下一个单词是开头还是前一个单词是结尾) -
P(This is a test sentence) = P(This | START) x P(is | This) x P(a | This is) x P(test | This is a) x P(sentence | This is a test ) x P(END | This is a test sentence) ≈ P(This | START) x P(is|This) x P(a|is) x P(test|a) x P(sentence|test) x P(END |sentence)
结论
在本教程中,我们介绍了如何在不使用深度学习的情况下计算特定的语言模型,深度学习在过去几年中迅速普及。这应该让您很好地了解不断变化的领域中不同的想法是如何产生的。