N元语言模型 —— 一文讲懂!!!

news2025/6/8 17:49:58

目录

引言 

一. 基本知识

二.参数估计

三.数据平滑

一.加1法

二.减值法/折扣法

​编辑 1.Good-Turing 估计

​编辑 2.Back-off (后备/后退)方法 

3.绝对减值法 

​编辑4.线性减值法

5.比较 

三.删除插值法(Deleted interpolation) 

 四.模型自适应


引言 

本章节讲的知识主要是来解决以上这个问题:即如何计算一段话在我们日常生活中出现的概率。在学完本章节后,你可以尝试解决下面的问题:

一. 基本知识

对于一段话,我们如何计算其在生活中出现的概率呢?首先我们可以把每一句话拆分成一个个词,这些词就是我们所说的“统计基元”,一个个统计基元组成了我们的一句话。而对于我们每一个统计基元来说,其前面的基元就是历史基元

 如何计算一段话的概率?

假设我们这段话是“我爱你”,我们该怎么计算呢?你可能会想到,“我爱你”这句话的概率,不就应该等于“我”出现的概率*“爱”出现的概率*“你”出现的概率。实际上来说,这样算的话我们就忽略了词与词的关系,比如“爱”会不会影响“你”出现的概率,比如我们大部分人都会把“爱你”连起来说,这样的话我们就不能把他们俩独立开来了。这样的话,就相当于我们计算概率的时候要参考一句话前面的基元。因此我们应该用下面的公式:

可以理解为:句子的概率 = 第 1 个词的概率 × 第 2 个词依赖第 1 个词的概率 × 第 3 个词依赖前两个词的概率 × … × 第 m 个词依赖前 m - 1 个词的概率

历史基元数量爆炸问题

显然随着要预测的词位置越靠后(i 越大 ),需要参考的 “历史基元数量” 也越多(i−1 个 ),这样的话很容易出现后面的历史基元越来越多出现参数爆炸。即:

那我们该如何解决这个问题呢?

我们的解决办法是等价类划分:

举个例子:“我爱你”和“石头爱地”这两句话,假设n等于2,则“你”前面的“我爱”和“地”前面的“石头爱”,因为前n-1个基元,即“爱” 相同,则这俩句话为同一等价类。因此我们很容易看出来,这个n其实就是相当于缩减了我们的视野,我们只看前n-1个基元而看不到更前面的基元了。

因此:

但是,这样的话,显然我们的句子的第一个单词没有前置的选项让我们看了,也就是说没有历史基元,这对我们是非常不方便的,因为我们无法统一编程,并且我们还丢失了其作为第一个单词的位置信息。所以我们为这个句子加上了开头和结尾符号来标识。

即:

这样的话我们就非常好求解了,例题如下:


(下面三个分别是一元,二元,三元划分) 那么我们的概率就是:

二.参数估计

好了,既然我们已经整出来了表示,那么我们模型里的这些参数是啥呢?就是说我们这里的P是什么呢?这就引出了我们下面的概念:

 

例题:

 那若是求一个句子里包含从没出现的词呢?这是很常见的,比如训练语料不可能包含所有人的姓名,如果一个人的姓名比较生僻,比如叫“诸葛大力”,这样的话是否“诸葛大力爱张伟”在日常生活中是不可能发生的呢?显然不是。但是我们的计算下整个的概率是0。显然是不合理的。于是我们便引出了数据平滑。

三.数据平滑

 

困惑度你就理解为这个句子的常见程度,如果困惑度很高,说明句子很罕见,让人看着很“困惑”。

一.加1法

意思就是分子加1,分母加上词汇库的总量(不包含开始和结束字符)

例题:

二.减值法/折扣法

 1.Good-Turing 估计

 举例:

 给你们算个一个吧。第一个r*,照着公式的话,r+1等于2,因为我们这里的r等于1,然后nr和nr+1直接看表的话就是2053和458,也就是说r*=2*(458/2053)约等于0.446,其他的你们照着我这样做就行。

 2.Back-off (后备/后退)方法 

3.绝对减值法 

4.线性减值法

5.比较 

三.删除插值法(Deleted interpolation) 

 四.模型自适应

 

 

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

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

相关文章

.NET 9中的异常处理性能提升分析:为什么过去慢,未来快

一、为什么要关注.NET异常处理的性能 随着现代云原生、高并发、分布式场景的大量普及,异常处理(Exception Handling)早已不再只是一个冷僻的代码路径。在高复杂度的微服务、网络服务、异步编程环境下,服务依赖的外部资源往往不可…

Mac 安装git心路历程(心累版)

省流版:直接安装Xcode命令行工具即可,不用安Xcode。 git下载官网 第一部分 上网初步了解后,打算直接安装Binary installer,下载完安装时,苹果还阻止安装,只好在“设置–安全性与隐私”最下面的提示进行安…

计算机网络第2章(下):物理层传输介质与核心设备全面解析

目录 一、传输介质1.1 传输介质的分类1.2 导向型传输介质1.2.1 双绞线(Twisted Pair)1.2.2 同轴电缆(Coaxial Cable)1.2.3 光纤(Optical Fiber)1.2.4 以太网对有线传输介质的命名规则 1.3 非导向型传输介质…

C# 类和继承(扩展方法)

扩展方法 在迄今为止的内容中,你看到的每个方法都和声明它的类关联。扩展方法特性扩展了这个边 界,允许编写的方法和声明它的类之外的类关联。 想知道如何使用这个特性,请看下面的代码。它包含类MyData,该类存储3个double类型 的…

MySQL复杂SQL(多表联查/子查询)详细讲解

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 MySQL复杂SQL(多表联查/子查询&a…

STM32使用土壤湿度传感器

1.1 介绍: 土壤湿度传感器是一种传感装置,主要用于检测土壤湿度的大小,并广泛应用于汽车自动刮水系统、智能灯光系统和智能天窗系统等。传感器采用优质FR-04双料,大面积5.0 * 4.0厘米,镀镍处理面。 它具有抗氧化&…

Windows平台RTSP/RTMP播放器C#接入详解

大牛直播SDK在Windows平台下的RTSP、RTMP播放器模块,基于自研高性能内核,具备极高的稳定性与行业领先的超低延迟表现。相比传统基于FFmpeg或VLC的播放器实现,SmartPlayer不仅支持RTSP TCP/UDP自动切换、401鉴权、断网重连等网络复杂场景自适应…

从 JDK 8 到 JDK 17:Swagger 升级迁移指南

点击上方“程序猿技术大咖”,关注并选择“设为星标” 回复“加群”获取入群讨论资格! 随着 Java 生态向 JDK 17 及 Jakarta EE 的演进,许多项目面临从 JDK 8 升级的挑战,其中 Swagger(API 文档工具)的兼容性…

使用 Coze 工作流一键生成抖音书单视频:全流程拆解与技术实现

使用 Coze 工作流一键生成抖音书单视频:全流程拆解与技术实现(提供工作流) 摘要:本文基于一段关于使用 Coze 平台构建抖音爆火书单视频的详细讲解,总结出一套完整的 AI 视频自动化制作流程。内容涵盖从思路拆解、节点配…

【发布实录】云原生+AI,助力企业全球化业务创新

5 月 22 日,在最新一期阿里云「飞天发布时刻」,阿里云云原生应用平台产品负责人李国强重磅揭晓面向 AI 场景的云原生产品体系升级,通过弹性智能的一体化架构、开箱即用的云原生 AI 能力,为中国企业出海提供新一代技术引擎。 发布会…

LabVIEW主轴故障诊断案例

LabVIEW 开发主轴机械状态识别与故障诊断系统,适配工业场景主轴振动监测需求。通过整合品牌硬件与软件算法,实现从信号采集到故障定位的全流程自动化,为设备维护提供数据支撑,提升数控机床运行可靠性。 ​ 面向精密制造企业数控机…

计算机组成与体系结构:补码数制二(Complementary Number Systems)

目录 4位二进制的减法 补码系统 🧠减基补码 名字解释: 减基补码有什么用? 计算方法 ❓为什么这样就能计算减基补码 💡 原理揭示:按位减法,模拟总减法! 那对于二进制呢?&…

C#使用MindFusion.Diagramming框架绘制流程图(2):流程图示例

上一节我们初步介绍MindFusion.Diagramming框架 C#使用MindFusion.Diagramming框架绘制流程图(1):基础类型-CSDN博客 这里演示示例程序: 新建Windows窗体应用程序FlowDiagramDemo,将默认的Form1重命名为FormFlowDiagram. 右键FlowDiagramDemo管理NuGet程序包 输入MindFusio…

【物联网-ModBus-RTU

物联网-ModBus-RTU ■ 优秀博主链接■ ModBus-RTU介绍■(1)帧结构■(2)查询功能码 0x03■(3)修改单个寄存器功能码 0x06■(4)Modbus RTU 串口收发数据分析 ■ 优秀博主链接 Modbus …

Java应用10(客户端与服务器通信)

Java客户端与服务器通信 Java提供了多种方式来实现客户端与服务器之间的通信,下面我将介绍几种常见的方法: 1. 基于Socket的基本通信 服务器端代码 import java.io.*; import java.net.*;public class SimpleServer {public static void main(String…

Python_day47

作业:对比不同卷积层热图可视化的结果 一、不同卷积层的特征特性 卷积层类型特征类型特征抽象程度对输入的依赖程度低层卷积层(如第 1 - 3 层)边缘、纹理、颜色、简单形状等基础特征低高,直接与输入像素关联中层卷积层&#xff08…

如何在mac上安装podman

安装 Podman 在 macOS 上 在 macOS 上安装 Podman 需要使用 Podman 的桌面客户端工具 Podman Desktop 或通过 Homebrew 安装命令行工具。 使用 Homebrew 安装 Podman: (base) ninjamacninjamacdeMacBook-Air shell % brew install podman > Auto-updating Hom…

小黑一层层削苹果皮式大模型应用探索:langchain中智能体思考和执行工具的demo

引言 小黑黑通过探索langchain源码,设计了一个关于agent使用工具的一个简化版小demo(代码可以跑通),主要流程: 1.问题输入给大模型。 2.大模型进行思考,输出需要执行的action和相关思考信息。 3.通过代理&…

阿里云ACP云计算备考笔记 (4)——企业应用服务

目录 第一章 企业应用概览 第二章 云解析 1、云解析基本概念 2、域名管理流程 3、云解析记录类型 4、域名管理 ① 开启注册局安全锁 ② 域名赎回 第二章 内容分发网络CDN 1、CDN概念 2、使用CDN前后对比 3、使用CDN的优势 4、阿里云CDN的优势 5、配置网页性能优化…

ARM SMMUv3简介(一)

1.概述 SMMU(System Memory Management Unit,系统内存管理单元)是ARM架构中用于管理设备访问系统内存的硬件模块。SMMU和MMU的功能类似,都是将虚拟地址转换成物理地址,不同的是MMU转换的虚拟地址来自CPU,S…