什么是LM(language model语言模型)?
引例:
1、统计机器学习时期的语言模型–语音识别
2、贝叶斯公式求P(s|A)——在有了语音信号的前提下是文本的概率
1 n-gram模型概述
n-gram模型是一种统计语言模型,用于建模文本数据中的语言结构。它在机器学习和自然语言处理领域广泛应用。
1.1 n-gram模型的基本思想
马尔科夫假设:假设文本中的每个词(或字符)只依赖于前面的n-1个词(或字符),即条件概率P(w_n|w_1, w_2, …, w_{n-1}),其中w_1, w_2, …, w_n表示文本中的词(或字符)。n-gram模型中的n表示上下文的大小,通常是1、2、3等。
1.2 特点
某个词的出现依赖于其他若干个词;
我们获得的信息越多,预测越准确;
1.3缺点
- 数据稀疏性:词同时出现的情况可能没有,组合阶数高时尤其明显。
改进:smoothing平滑、backoff回退、引入神经网络语言模型 - 上下文局限性: 无法共享具有相同语义的词汇/前缀中的信息
改进:引入词嵌入,由字符表示转向向量表示 - n较大时,模型很容易受到数据中未见的n-gram序列的影响。
也就是说,n越大,需要计算、统计的参数越多,占用的内存空间越大。
改进:马尔科夫假设,限制n大小
随着深度学习技术的发展,神经网络模型如循环神经网络(RNN)和Transformer等逐渐取代了传统的n-gram模型,在自然语言处理任务中取得了更好的性能。这些神经网络模型能够更好地捕捉长距离依赖关系和上下文信息,使它们在许多NLP任务中表现出色。然而,n-gram模型仍然可以用作某些特定任务的基线模型或快速原型开发工具。
1.4n-gram模型步骤
-
数据预处理:将文本数据分割成词语(或字符)序列,并去除不需要的标点符号、停用词等。
-
计算n-gram频率:对于给定的n值,统计文本中所有n-gram序列的出现频率,这些序列可以是单词级别的(如unigram、bigram、trigram)或字符级别的。
-
计算条件概率:对于每个n-gram序列,计算其条件概率,即给定前面的n-1个词(或字符)后,下一个词(或字符)出现的概率。
-
应用模型:使用计算得到的条件概率来进行文本生成、文本分类、语言模型评估等任务。
在n-gram模型中,较小的n值(如1或2)通常用于简单的任务,如文本分类,而较大的n值(如3或4)可以用于更复杂的自然语言处理任务,如语言建模。
2 发展阶段
2.0第0阶段
直观,符合直觉,但是效果很差
问题:
①句子不好确定
②很难保证句子能够完全一样地重复出现