深度学习DAY2:n-gram

什么是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阶段

在这里插入图片描述
直观,符合直觉,但是效果很差
问题:
①句子不好确定
②很难保证句子能够完全一样地重复出现

2.1第一阶段:Unigram 模型 / 1-gram

在这里插入图片描述
直接把词出现的概率相乘

unigram基本思想

Unigram 模型是一种最简单的统计语言模型,它假设文本中的每个词在上下文中都是独立的,没有考虑其他词的影响。这意味着 Unigram 模型只计算每个单词在文本中出现的概率,而不考虑它与其他单词的关系。

Unigram 模型主要特点

词的独立性假设:Unigram 模型假设文本中的每个词都是相互独立的,因此模型计算一个词出现的概率不受其他词的影响。

词频统计:Unigram 模型通过统计每个词在语料库中的出现次数来计算概率。一般来说,概率与词频成正比。

缺乏上下文考虑:Unigram 模型不考虑词与词之间的关系或上下文信息,因此无法捕捉到词序列的语法结构或语义含义。

尽管 Unigram 模型非常简单,并且在捕捉文本复杂性方面存在严重限制,但它在某些任务上仍然有用。例如,在一些文本分类任务中,Unigram 模型可以作为一个基线模型,快速建立一个最简单的文本分类器。然而,对于更复杂的自然语言处理任务,如机器翻译、语音识别和语言建模等,通常需要更复杂的模型,例如n-gram模型、循环神经网络(RNN)、Transformer等,以更好地捕捉上下文信息和语法结构。

2.2 第二阶段:二元语法模型BLM

Bigram Language Model / 2-gram / bigram / “一阶马尔科夫链”
在这里插入图片描述

在这里插入图片描述

BLM基本思想

BLM是一种基于统计的语言模型,用于建模文本中词语的序列。与Unigram模型不同,二元语法模型考虑相邻的两个词之间的关系。它基于一个假设,即每个词的出现只受其前面一个词的影响,而与其他词无关。因此,它计算每个词出现的概率,考虑了前一个词。

具体来说,对于一个文本序列w_1, w_2, w_3, …,二元语法模型计算每个词的条件概率,即P(w_i | w_{i-1}),表示在给定前一个词w_{i-1}的情况下,词w_i出现的概率。
在这里插入图片描述
要做的工作就是在语料库中统计各个词语出现的词频,同时要计算出给定的语句的先验概率,这个先验概率是基于2-gram的

BLM主要特点

上下文窗口:它仅考虑前一个词,因此上下文窗口大小为1,即只关注相邻的两个词。

参数估计:为了估计概率,需要统计训练数据中每个词对的出现次数,并根据这些统计信息计算条件概率。

简化模型:与更高阶的n-gram模型相比,二元语法模型更加简化,但仍可以在某些自然语言处理任务中表现良好。

虽然二元语法模型比Unigram模型更加复杂,可以捕捉到词序列中的一些局部信息,但它仍然有限制,无法捕捉到较远距离的依赖关系或语义含义。在实际应用中,二元语法模型通常用于一些简单的自然语言处理任务,例如文本生成、拼写检查和词性标注等。对于更复杂的任务,如机器翻译或语音识别,通常需要更高阶的n-gram模型或深度学习模型,以更好地处理上下文信息和语法结构。

2.3 第三阶段:3-gram / trigram / "二阶马尔科夫链” ……n-gram

在这里插入图片描述

3 原理

3.1数学原理

在这里插入图片描述

3.2 n-gram原理

假设句子S是有词序列w1,w2,w3…wn组成,用公式表示N-Gram语言模型如下(每一个单词wi​都要依赖于从第一个单词w1到它之前一个单词wi−1​的影响):
在这里插入图片描述

3.3 原概率公式弊端及解决办法:

3.3.1 参数空间过大问题——最大似然估计

在这里插入图片描述

  • 根据大数定理,只要统计量足够,相对频度就等于概率。

  • 通常用相对频率作为概率的估计值。这种估计概率值的方法称为最大似然估计
    在这里插入图片描述

为了解决第二个问题,我们通常会使用平滑法(如:拉普拉斯平滑、add-k 平滑) 或者回退法(backoff)。

3.3.2 稀疏问题——平滑法和回插法

N-gram的N越大,模型 Perplexity 越小,表示模型效果越好。
依赖的词越多,我们获得的信息量越多,对未来的预测就越准确。然而,语言是有极强的创造性的,当N变大时,更容易出现这样的状况:某些n-gram从未出现过,这就是稀疏问题。

N-gram最大的问题就是稀疏问题(Sparsity)。例如,在bi-gram中,若词库中有2万个词,那么两两组合就有近4亿个组合。其中的很多组合在语料库中都没有出现,根据极大似然估计得到的组合概率将会是0,从而整个句子的概率就会为0。最后的结果是,我们的模型只能计算零星的几个句子的概率,而大部分的句子算得的概率是0,这显然是不合理的。

法1:数据平滑data Smoothing)

  • 数据平滑的目的
    使所有的N-gram概率之和为1;
    使所有的n-gram概率都不为0;
  • 本质
    重新分配整个概率空间,使已经出现过的n-gram的概率降低,补充给未曾出现过的n-gram。

“平滑”处理的基本思想是“劫富济贫”,即提高低概率(如零概率),降低高概率,尽量使概率分布趋于均匀。

补充:
① 古德-图灵估计的原理:对于没有看见的事件,我们不能认为它发生的概率就是零,因此我们从概率的总量中,分配一个很小的比例给予这些没有看见的事件,因此需要将所有看见的事件概率调小一点。至于小多少,要根据“越是不可信的统计折扣越多”的方法进行。

② Zipf 定律:一般来说,出现一次的词的数量要比出现两次的多,出现两次的比出现三次的多。

在这里插入图片描述

法2:回退(backoff)和 插值(interpolation)

当我们没有足够的数据使用高阶n元模型时,我们会“退回”到低阶n元模型,如:我们无法计算P(C | A,B),我们仍然可以依赖于bigram概率P(C | B),甚至是unigram概率P©,然后通过插值(如:线性插值)混合各种n元模型,赋予它们不同的权重来估计P(C | A, B):
在这里插入图片描述

4 n-gram应用

4.1 评估句子是否合理

1-gram

每个词都是独立分布的
P(A,B,C) 其中A,B,C互相之间没有交集.
所以P(A,B,C) = P(A)P(B)P©

例子
“猫跳上椅子” ,分词后得到:“猫/跳上/椅子”

P(“猫”,“跳上”,“椅子”) = P(“猫”)P(“跳上”)P(“椅子”);

假设其中各个词的数量数语料库中统计的数量如下表所示(语料库词汇量为M):
在这里插入图片描述
句子的合理的概率.
P(A,B,C) = P(A)P(B)P© =13/M * 16/M * 23/M

2-gram

每个词都与它左边的最近的一个词有关联
P(A,B,C) = P(A)P(B|A)P(C|B)

例子
“猫,跳上,椅子” ,P(A=“猫”,B=“跳上”,C=“椅子”) = P(“猫”)P(“跳上”|“猫”)P(“椅子”|“跳上”);其中各个词的数量数语料库中统计的数量
在这里插入图片描述

在这里插入图片描述
“猫”后面是“跳上”的频数:9
句子的合理的概率.
P(A,B,C) = P(A)P(B|A)P(C|B) = 13/M * 9/13 * 15/16

//评估

对于一个训练好的模型,我们需要评估模型的好坏。
法1:外部评估(extrinsic evaluation)
评估一个模型的最佳方法是将其嵌入到应用程序中,并衡量应用程序的改进程度,这种方法叫外部评估(extrinsic evaluation),很消耗资源;
法2:内部评估(intrinsic evaluation)
把数据集分为训练集和测试集,评估测试集的结果。内部评估模型的指标称为复杂度perplexity (有时缩写成PP)

##### 计算 PP
***法1:***![在这里插入图片描述](https://img-blog.csdnimg.cn/3cbc17b8001b4f6faf56822a2f2c972f.png)
例子

在这里插入图片描述

①单词序列的条件概率越高,复杂度越低。因此,对于语言模型,最小化复杂度等价于最大化测试集概率。
②2-gram比1-gram的复杂度值要小,而复杂度值越小说明模型越好。

法2:
计算任何单词后面可能出现的下一个单词的数量(一个模型的复杂度越小,每个位置的词就越确定,模型越好)
在这里插入图片描述

4.2 评估两个字符串之间的差异程度!

公式
在这里插入图片描述
例子
在这里插入图片描述
Gn(s):词①的分词数
Gn(t):词②的分词数
Gn(s)∩Gn(t):词①和词②重复的分词数
因此距离:8+9-2*4=9
字符串之间的距离越小,它们就越接近。当两个字符串完全相等的时候,它们之间的距离就是0。

4.3其他

输入法、分词算法、语音识别、机器翻译等

  • 用N—gram模型进行中文分词
    首先根据词典(可以是从训练语料中抽取出来的词典,也可以是外部词典)对句子进行简单匹配,找出所有可能的词典词。将它们和所有单个字作为结点,构造n元切分词图,利用n-gram求出所有可能分词路径的权值,利用动态规划思想求得最佳分词路径。

链接:语言模型与应用https://blog.csdn.net/weixin_40056628/article/details/89364456?spm=1001.2014.3001.5502

参考

自然语言处理NLP中的N-gram模型

简单理解 n-gram

语言模型(N-Gram
N-gram的简单的介绍
N-Gram语言模型
语言模型(LM)和循环神经网络(RNNs
自然语言处理中的语言模型预训练方法(ELMo、GPT和BERT
【研究前沿】神经网络语言模型综述_单词
NLP:n-gram模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/100732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java】微服务——Feign远程调用

目录 1.Feign替代RestTemplate1)引入依赖2)添加注解3)编写Feign的客户端4)测试5)总结 2.自定义配置2.1.配置文件方式2.2.Java代码方式 3.Feign使用优化4.最佳实践4.1.继承方式4.2.抽取方式4.3.实现基于抽取的最佳实践1…

【深度学习】Chinese-CLIP 使用教程,图文检索,跨模态检索,零样本图片分类

代码:https://github.com/OFA-Sys/Chinese-CLIP/blob/master/deployment.md 文章目录 安装环境和onnx推理转换所有模型为onnx测试所有onnx模型的脚本onnx cpu方式执行docker镜像 安装环境和onnx推理 安装环境,下载权重放置到指定目录,进行on…

制造业进销存管理怎么做?

进销存是什么?生产制造业如何进行进销存管理?制造进销存都能为企业提供什么?进销存管理系统的优势?本文将带大家深入浅出的聊聊制造进销存,全面剖析制造进销存的前世今生。 接下来我会通过一些例子为大家深入浅出的讲…

数据结构与算法—时间复杂度和空间复杂度

目录 1. 什么是数据结构? 2.什么是算法? 3、算法的复杂度 4、时间复杂度 (1) 时间复杂度的概念: (2) 大O的渐进表示法: 六个例题: (3) 时间复杂度对比: 两个例题: OJ题分析时间复杂度…

【快速入门】JVM之类加载机制与Native

感慨: 如何定义一个合格的Java程序员,Java程序员要了解掌握哪些知识点,网上的面试题太多了,后端需要了解掌握的知识点太多太多了,Java基础、数据结构、异常、多线程、Spring、Spring boot、事务、算法、数据库&#xf…

Transformer [Attention is All You Need]

(一)论文部分 Abstract (1)The best performing models also connect the encoder and decoder through an attention mechanism. 最好的性能通过注意力机制将编码器和解码器连接在一起。 (2)the Transformer, based solely on attention mechanisms,…

家政预约服务APP小程序搭建,功能支持定制

家政预约服务APP小程序搭建,功能支持定制,后期升级无忧.团队自主研发家政APP系统,正版源码,售后技术保障! 家政系统客户端 搭建专属私城流量平台,让您插上互联网的翅膀。找月嫂,育婴…

Vue思考题_01v-for与v-if的优先级谁更高

目录 vue2vue3 官方文档上说不推荐将v-for与v-if在同一个标签上使用&#xff0c;因为两者优先级并不明显。 那么到底是那个指令的优先级比较高呢&#xff1f; 在vue2与vue3中答案是相反的。 vue2 在vue2中将2个指令放在同一个标签上 <template><ul><li v-fo…

竞赛 深度学习 大数据 股票预测系统 - python lstm

文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果项目运行展示开发环境数据获取 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天…

怎么防止重要文件夹丢失?文件夹安全如何保护?

我们在使用电脑的过程中&#xff0c;会将重要数据放在文件夹中&#xff0c;那么&#xff0c;我们该怎么防止重要文件夹丢失呢&#xff1f;下面我们就一起来了解一下。 EFS加密 EFS加密可以对于NTFS卷上的文件夹进行加密&#xff0c;加密后的文件夹将只允许加密时登录系统的用户…

zookeeper节点数据类型介绍及集群搭建

一、zookeeper介绍 zookeeper官网&#xff1a;Apache ZooKeeper zookeeper是一个分布式协调框架&#xff0c;保证的是CP&#xff0c;即一致性和分区容错性&#xff1b;zookeeper是一个分布式文件存储系统&#xff0c;文件节点可以存储数据&#xff0c;监听子文件节点等可以实…

艺术字画雕刻经营配送商城小程序的作用是什么

一副传神且精致的绘画/雕塑品不仅具有很好的观赏性&#xff0c;更具备售卖属性&#xff0c;当然由于产品本身本身的局限性&#xff0c;无论开店还是线上朋友圈推广&#xff0c;都难有效果。 通过【雨科】平台搭建字画雕刻经营商城&#xff0c;将所有产品线上售卖&#xff0c;电…

“开启中文智能之旅:探秘超乎想象的 Llama2-Chinese 大模型世界”

“开启中文智能之旅&#xff1a;探秘超乎想象的 Llama2-Chinese 大模型世界” 1.国内Llama2最新下载地址 本仓库中的代码示例主要是基于Hugging Face版本参数进行调用&#xff0c;我们提供了脚本将Meta官网发布的模型参数转换为Hugging Face支持的格式&#xff0c;可以直接通过…

QT CmakeLists配置python

这是exe目录&#xff0c;要放到这里&#xff0c;要放到这里&#xff0c;要放到这里。 find_package(PythonLibs 3.6 REQUIRED) include_directories(${PYTHON_INCLUDE_DIRS})set(PY python/libs/) set(PY_LIBS ${PY}_tkinter ${PY}python3 ${PY}python36 ${PY}python36_d) targ…

排序算法——直接插入排序

一、介绍 插入排序就是将前两个元素排好&#xff0c;再将第三个元素通过与前边的元素比较后插入适当的位置&#xff0c;再将第四个元素插入&#xff0c;不断重复插入与前边元素比较的操作&#xff0c;直到将元素都排列好。 演示如下&#xff1a; 视频演示&#xff1a;…

京东数据分析平台:9月中上旬白酒消费市场数据分析

9月份&#xff0c;围绕白酒的热点不断。9月5日&#xff0c;瑞幸咖啡官微发布消息称&#xff0c;瑞幸与贵州茅台跨界合作推出的酱香拿铁刷新单品纪录&#xff0c;首日销量突破542万杯&#xff0c;销售额破1亿元。9月14日&#xff0c;贵州茅台官微发布消息称与德芙推出联名产品“…

软件培训测试高级工程师多测师肖sir__html之作业11

html之作业 案例1&#xff1a; 截图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>表单</title></head><body><table style"background-color:red" bo…

【C++】list基本接口+手撕 list(详解迭代器)

父母就像迭代器&#xff0c;封装了他们的脆弱...... 手撕list目录&#xff1a; 一、list的常用接口及其使用 1.1list 构造函数与增删查改 1.2list 特殊接口 1.3list 排序性能分析 二、list 迭代器实现&#xff08;重点难点&#xff09; 关于迭代器的引入知识&#xff1a…

Mac mov转mp4,详细转换步骤

Mac mov转mp4怎么转&#xff1f;视频文件格式为.mov是由Apple公司所开发的特殊格式。因其只能在苹果设备上播放&#xff0c;与他人分享时就会变得困难。为此&#xff0c;我们通常会选择使用MP4这种最受欢迎的视频格式。在日常使用中&#xff0c;MP4成为了大家首选的视频格式。而…

onlyoffice历史版本功能实现

一&#xff1a;开启客户端配置 如果不开启&#xff0c;回调请求里面的history和changeUrl是空 二&#xff1a;客户端主要实现2个回调函数 1.实现onRequestHistory事件&#xff0c;该事件会在ui点击查看历史的时候发起,用于展示历史列表 关键在于获取到history的内容&#xff…