深度学习DAY2:n-gram

news2024/10/7 8:24:54

什么是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.coloradmin.cn/o/1076226.html

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

相关文章

释放Sqlite数据库占用的多余空间

当删除sqlite数据库中的数据之后,会发现内容确实删除掉了,但是sqlite数据库占用的磁盘大小没有缩小,那是因为,删除数据后,未使用的磁盘空间被添加到一个内在的“空闲列表”中用于储存你下次插入的数据,磁盘…

使用yum 安装mysql数据库

h这是参照msyql官方文档写的(网上的教程五花八门,各有各的特色和技巧,不过还是以官方文档为主要参考最靠谱) 注意 : 适用于第一次安装的情况,系统上已经有之前安装过的版本的话,官方文档同一章也有升级、替…

【广州华锐互动】AR轨道交通综合教学平台的应用

轨道交通是一种复杂且精密的系统,涵盖了众多技术和工程学科,包括机械、电气和计算机科学等。对于学生来说,理解和掌握这些知识是一项挑战。然而,AR技术的出现为解决这一问题提供了可能。 通过AR技术,教师可以创建生动、…

Linux ❀ 磁盘IO较大故障告警排查确认方法

文章目录 1、iotop2、iostat3、磁盘压力测试 问题描述:在日常运维工作中,经常会遇到Linux服务器出现Disk磁盘I/O( I/O 英文全称是 Input/Output,中文译为 输入与输出,通常指存储器与其他设备之间的数据交换操作&#x…

sip网络话筒主机SIP桌面式对讲广播主机

sip网络话筒主机SIP桌面式对讲广播主机 SV-8003VP是我司的一款SIP桌面式对讲主机,具有10/100M以太网接口,配置了麦克风输入和扬声器输出,还配置多达22个按键和2.8英寸液晶显示屏,可以配合SIP服务器使用。SV-8003VP网路寻呼话筒可以…

SAP SD定价过程 含税未税 最大区别

SAP SD定价过程 含税&未税 最大区别 最大区别应该为,税条件类型: 含税一般用 MWSI 未税一般用 MWST

HarmonyOS/OpenHarmony原生应用开发-华为Serverless认证服务说明(二)

一、支持HarmonyOS(Stage模型-API9)应用的账户注册登录方式 文档中的TS作者认为就是ArkTS之意。暂时支持四种模式,手机、邮箱、匿名、自有账户。 二、暂时不支持HarmonyOS(Stage模型-API9)应用的账户注册登录方式 包括华为账户注册登录,HarmonyOS…

使用Fillder的一点总结

文章目录 最近使用Fillder的一点总结一、前言二、关于FildderScript的吐槽三、关于filters四、关于快捷方式的吐槽五、关于断点 最近使用Fillder的一点总结 纯乱搞,但是不得不说Fillder确实厉害 一、前言 安装请在官网下载 简单食用方法可参阅:https…

C#实现OPC DA转OPC UA服务器

运行软件前提前安装好OPC运行组件: 为方便演示,提前准备好了一个DAServer服务器: 接下来开始配置: 该软件主要实现的功能如下: 配置过程也相对简单: 第一步: 编辑如下文件: 第二步…

git介绍和安装、(git,github,gitlab,gitee介绍)、git工作流程、git常用命令、git忽略文件

1 git介绍和安装 2 git,github,gitlab,gitee介绍 3 git工作流程 4 git常用命令 5 git忽略文件 1 git介绍和安装 首页功能写完了---》正常应该提交到版本仓库---》大家都能看到这个---》 运维应该把现在这个项目部署到测试环境中---》测试…

最新抖音去水印PHP源码 非第三方接口

简介: 最新抖音去水印PHP源码 非第三方接口 源码全开源 视频解析接口来自官方抖音视频接口!非第三方接口!上传PHP环境中即可运行!支持上传二级目录访问! 访问你的域名地址/douyin.php douyin.php(此文件可以自行重新命名) 支持带有文本的链接和视频ID或者分享的…

【ppt技巧】批量修改ppt中的字体

PPT文件中的字体想要全部更换,有什么方便的方法吗?今天分享两个方法,一键修改ppt文件字体。 方法一: 找到功能栏中的编辑选项卡,点击替换 – 替换字体,在里面选择我们想要替换的字体就可以了。 方法二&am…

springboot项目集成kafka,并创建kafka生成消息线程池

效果图: 步骤1:添加依赖 <!-- kafka依赖 --><dependency><groupId>org.apache.kafka</groupId><<

10、SpringBoot_测试用例

四、测试用例 1.准备工作 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><dependency><groupId>com…

医药行业投资公司都有哪些?医药企业项目投资分析实用工具

据药融云-投融资数据库信息调研结果发现&#xff0c;在 3000家参与医疗投资的资方中,有超200家专注医疗投资的机构。 资方的信息可以通过垂直的生物医药行业投融资数据库进行查找&#xff0c;该类数据库收载了全球绝大部分的生物医药行业投资机构信息&#xff08;包含了投资机构…

SonarQube学习笔记三:直接使用sonar-scanner扫描器

目录 1.安装Sanner扫描器2.环境变量配置3.创建项目3.1 登录并创建项目3.2 输入项目名称信息3.3 选择分析仓库类型3.4 创建令牌3.5 保存令牌&#xff08;非必须&#xff09;3.6 选择构建技术方案3.6.1 .Net类项目3.6.2 Java类项目 3.7 获取Sonar检查结果3.8 在页面查看检查结果或…

微积分 - 对数函数与指数函数的导数

指数法则 对数法则 换底法则&#xff1a;对于任意的底数b>1和c>1以及任意的数x>0有&#xff1a; 对数函数和指数函数求导 令,那么g的导数是什么&#xff1f;使用导数的定义我们得到&#xff1a; 我们如何来简化这个杂乱的公式呢&#xff1f;当然是使用对数法则了&a…

nodejs+vue 高校社团综合服务系统elementui

在当今高度发达的信息中&#xff0c;信息管理改革已成为一种更加广泛和全面的趋势。为确保中国经济的持续发展&#xff0c; 第三章 系统分析 5 3.1 系统设计目标 6 3.2 系统可行性分析 6 3.3 系统功能分析和描述 7 3.4系统UML用例分析 8 3.4.1管理员用例 9 3.4.2用户用例 9 3.5…

【算法|双指针系列No.3】leetcode202. 快乐数

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

Unity基础课程之物理引擎2-用于射击或者点击消除的射线检测方法

业务逻辑 这段代码实现了一个功能&#xff0c;当玩家按下鼠标左键或按下Q键时&#xff0c;从游戏主角的位置沿着主角的前方方向发射一条射线。如果射线碰撞到了具有Collider触发或碰撞器的游戏物体&#xff0c;则销毁该游戏物体。 程序逻辑 程序的逻辑如下&#xff1a; 1. 在…