NLP语言模型 N-gram是什么

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)

在一个序列中给定词的概率将是

然而,上述方程中使用的这种方法的一般思想在处理大规模语料库时需要太多的时间和资源来计算。我们可以利用概率知识来寻找近似计算词和句子概率的新方法。

当处理每一个前置词时,我们意识到这可能是一项繁琐的任务,因此我们可以假设前面提到的马尔可夫性质。

这意味着我们不再关注每个前置词,而是只关注一定数量的前置词,这些前置词代表了所有前置词。因此,我们得到以下估计值−

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模型中,这将是一个二元模型。如果我们只关注每个特定的词,那将是一个一元模型;如果我们选择了三个连续的词,那将是一个三元模型。这个命名约定一直继续到了四元模型、五元模型等等。

何时使用哪种模型

要知道何时使用哪种类型的模型,比如二元模型还是五元模型,取决于数据集的大小。对于小型数据集来说,二元模型更适合,因为在小型数据集中,它们比较容易出现,而大型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)

总结

在本教程中,我们讨论了如何计算特定的语言模型,而不需要使用近年来大受欢迎的深度学习方法。这应该让您对不断变化的领域中的不同观点有一个很好的理解。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程