笔记(总结)-统计语言模型

统计语言模型(Statistical Language Model)-学习笔记 统计语言模型是自然语言处理(Natural Language Processing,NLP)的基础模型,是从概率统计角度出发,解决自然语言上下文相关的特性的数学模型。统计语言模型的核心就是判断一个句子在文本中出现的概率。 模型 假定S表示某个有意义的句子,由一连串特定顺序排列的词组成,这里n是句子的长度。现在,我们想知道S在文本中出现的可能性,即S的概率P(S),则。 利用条件概率的公... 阅读详情

在自然语言处理的相关问题中,如何表示句子是建模分析的关键。与传统的图像、音频等天然可转化为计算机编码的元素不同,自然语言需要经过复杂编码才能被计算机识别。并且,这种编码是机械式的简单排列,设计初衷是为了解决自然语言的存储问题,编码本身不带有任何语言层面的信息。因此,直接使用自然语言的编码对文字进行转换而后建模是不可靠的,过程中丢失了太多的信息。语言模型正是解决了这样的问题。


语言模型有很多种,计算机领域常用的有统计语言模型和神经语言模型,本篇先只描述统计语言模型。

统计语言模型定义

假设句子可以表示为:

S=w1w2...wnS=w1w2...wn

其中wi,i=1,2,...,nwi,i=1,2,...,n为组成句子的基本单位(可以为字、词等划分单位,下文统称为词)。那么以该句子的出现的概率P(S)P(S)来描述该句子的合理性。

可以看到,该定义用概率对语言建模,而不需要进行语言层面的分析。这其实是机器学习解决问题的典型思路,自然界的事物规律可以由概率表达,概率大的事件更加可能出现、更合理,反之亦然。概率本身就可以描述语言现象的合理性。


P(S)P(S)的具体定义

在自然语言中,上下文是相关的。如果以句子为单位,很容易发现,下文是依赖于上文的。比如在对话过程中,人们往往能根据对方已说出的话,来推测接下来对方要说什么。使用条件概率来刻画这种依赖是十分合适的,于是可以定义概率如下:

P(S)=p(w1)p(w2|w1)p(w3|w1w2)...p(wn|w1w2...wn−1)P(S)=p(w1)p(w2|w1)p(w3|w1w2)...p(wn|w1w2...wn−1)

wiwi的概率由w1w2...wi−1w1w2...wi−1决定,后者也叫做wiwi的历史。


问题简化——n元文法

可以看到,原始定义的概率论意义是十分完备的,每个词都基于历史。但这样是有问题的。建模过程中,需要具体计算形如p(wi|w1w2...wi−1)p(wi|w1w2...wi−1)的参数。假设词汇表的大小为LL,那么w1w2...wi−1的不同排列组合有Li−1Li−1种,而这只是计算wiwi所需要的参数。

因此,我们采取简化的方法,只考虑与该词最近的一段历史(马尔可夫的思路),比如最近的一个词,此时称作二元文法(2-gram):

P(S)=p(w1)p(w2|w1)p(w3|w2)...p(wn|wn−1)P(S)=p(w1)p(w2|w1)p(w3|w2)...p(wn|wn−1)

这样的概率处理在语言学上也是说得通的,距离当前词越近的词,造成的影响越大,而距离较远的词,往往产生的影响较小。当然,这不是绝对的,语言现象中有许多反例。但是,借由这种处理,我们达到了“合理建模”与“模型可计算”的巧妙折中。

当认为一个词由前面的n−1n−1个词决定时,称作n元文法。显而易见,随着n的增大,参数量呈指数增加。现实中往往取n=2,3n=2,3,工业界一般会取n=4n=4。

针对某一个句子,通常增加开始符<BOS><BOS>和结束符<EOS><EOS>使得概率定义更加完备,举例改写二元文法为:

P(S)=p(<BOS>|w1)p(w2|w1)...p(wn|wn−1)p(<EOS>|wn)P(S)=p(<BOS>|w1)p(w2|w1)...p(wn|wn−1)p(<EOS>|wn)


参数计算与平滑

一般使用极大似然估计来进行参数估计,即使用已有的采样数据(训练集)来估计模型参数,使得训练集的语言现象得到最大可能性的复现。显然,极大似然在n元文法的场景下就是通过频数来得到概率参数。此时有(以二元文法举例):

P(wi|wi−1)=∑Count(wi−1wi)∑Count(wi)P(wi|wi−1)=∑Count(wi−1wi)∑Count(wi)

其中,Count(wi−1wi)Count(wi−1wi)表示子串wi−1wiwi−1wi的出现次数,同理Count(wi)Count(wi)。

语言现象是丰富的,即使训练集再庞大,也不可能包括所有子串。当测试集中出现了训练集中没有的词或子串时,句子概率会等于0,但这显然是不科学的。因此我们需要对概率进行平滑,使得即使是没有出现的句子,在模型中计算得到的概率不为0,转而设置为一微小量。

参数平滑方法有很多:加一法(additive smoothing)、折扣法(discounting)、删除减值法等。在各个领域都是适用,这里就暂不详述了。


缺陷

上一部分已经看到,即使是很大的训练集也无法覆盖全部的语言现象,从而导致0概率问题的出现。使用概率进行建模的弊端也在此:依赖语言现象出现的频数。而频数是语料敏感的,不同的语料集之间差异巨大,比如新闻语料和微博语料对于语言的使用风格差异巨大,由此统计而来的频数规律肯定大不相同。在某些场景下,频数甚至无法反映语言现象,如情感分析中,表达情感的词通常是低频出现的,这时统计语言模型无法很好建模。

神经翻译笔记1. 统计语言模型之N元语法 这里写自定义目录标题神经翻译笔记1. 统计语言模型之N元语法统计机器翻译问题的形式化定义逐词计算概率基于记数的n元语法语言模型的评估处理未知词N元语法的扩展 神经翻译笔记1. 统计语言模型之N元语法 本系列笔记主要来自于以下三篇关于神经机器翻译(NMT)的tutorial: [Koehn2017], Philipp Koehn, Statistical Machine Translation, ... 阅读详情

相关推荐

NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035

我们计算:"判断","这个","词","的" 后面出现的的词的概率,本来我们要先,计算 "判断","这个","词","的" 这几个词按照顺序出现的概率,然后再计算"判断","这个","词","的" 后面出现 "词性" 这个词的概率.我们有了词库以后,比如我们有一个 "词性" "火星",这两个词的词库,那么计算P(w_next|"判断","这个","词","的")中的w_next概率的时候,也就是预测填空中的词的时候,就可以,把词库中的每个词带入.

添柴程序猿的专栏 504

统计语言模型Python实现

文章目录原理简述N-gramunigrambigram代码&步骤1、工具导入2、语料预处理3、unigram4、bigram5、概率计算连贯代码附录 原理简述 统计语言模型(Statistical Language Model),可用于计算一个句子的合理程度。 SSS 表示句子,由有序的 nnn 个词 w1,w2,w3,..wnw_1,w_2,w_3,..w_nw1​,w2​,w3​,.....

ArYe 4882

2025.06.20【pacbio】|PB甲基化分析结果的统计与可视化介绍

本文介绍了PacBio甲基化数据的统计分析与可视化方法。主要内容包括:1) 分析甲基化位点分布、比例及染色体分布;2) 修饰基序(Motif)的统计与热图展示;3) 全基因组和局部区域测序深度可视化;4) 使用IGV查看单个reads修饰情况。文章提供了R代码示例,涵盖柱状图、分布图、热图等多种可视化形式,并建议了差异甲基化分析等进阶方法,帮助科研人员深入挖掘甲基化数据。

2066

大模型 | 统计语言模型(一)语言模型发展历程、最大熵模型

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

star_nwe的博客 1112

ABAQUS地应力平衡方法详解

在岩土工程数值分析中,首先要对模型进行初始地应力平衡计算。ABAQUS有限元软件有五种初始地应力平衡方法:①自动平衡法;②关键字定义初始地应力法(或在界面操作);③ODB导入法;④初始应力提取法;⑤用户子程序SIGNI法。由于第五种方法需要一定的编程基础,操作起来太复杂不易掌握,故本文只讲解较为实用的前四种平衡方法。 地应力平衡的目标:使土层在自重作用下的变形很小----不存在初始位移,只存在初始应力。一般情况下,最大位移达到10-4次幂以下就可以了。 ①自动平衡法 (如果土体采用线弹性,且比较规则,

m0_69808458的博客 3万+

LEC/FORMAL --- PARTIII debug

lec(logic equivalence checking)又叫formal check,是对ic design的综合,PR前后的设计进行逻辑对比检查的工具/手段,保证综合不改变rtl原始的logic function。目前用的较多的就是C家的formal工具。接下来介绍一下lec过程中遇到的问题以及debug手段。...

sinat_27691203的博客 7709

【NLP】2.1 统计语言模型

语言模型任务是给句子一个。

weixin_45531684的博客 391

C++语言程序设计教程第4版杨进才沈显君课后习题答案解析

为了更好地学习这门课程,我尝试在网上寻找一些学习资料和参考书籍,但效果并不是很理想。因此,我希望能有一些学长学姐或者是有经验的程序员能够分享一些学习经验和方法,让我更好地掌握这门课程。学习过程中,我发现这本书的内容非常丰富,讲解也非常详细,对于像我这样编程基础薄弱的学生来说,是一本非常实用的教材。同时,我也希望有经验的程序员能够推荐一些适合初学者的C++语言学习资料和工具,以便我能更好地学习和掌握这门课程。总之,希望能得到大家的帮助和支持,让我更好地学习和掌握C++语言程序设计。主 编: 杨进才,沈显君。

weixin_58833001的博客 1332

语言模型(一) 统计语言模型

1. 什么是语言模型 标准定义:对于语言序列w1,w2,⋯ ,wnw_{1},w_{2},\cdots,w_{n}w1​,w2​,⋯,wn​,语言模型(Language Model)就是计算该序列的概率,即P(w1,w2,w3,⋯ ,wn)P(w_{1},w_{2},w_{3},\cdots,w_{n})P(w1​,w2​,w3​,⋯,wn​)。 从机器学习的角度来看:语言模型是对语句的概率分布的建模。 通俗解释:判断一个语言序列是否是正常语句,即是否是人话,例如P(I am Ligh

huang.xiao的专栏 1511

Windows下玩转DeepSeek-R1:Ollama+Docker配置RAGFlow的3种网络调试方案

本文详细介绍了在Windows环境下使用Ollama和Docker配置RAGFlow的三种网络调试方案,帮助开发者解决本地部署AI知识库系统时的网络隔离问题。通过host.docker.internal直连、自定义Docker网桥网络和端口映射与反向代理三种方法,实现DeepSeek-R1模型与RAGFlow的高效通信,提升本地AI应用的开发效率。

weixin_28347369的博客 247

Carla学习笔记(一)服务器跑carla本地显示窗口

其中host后替换为你的服务器IP,-carla-rpc-port和-p后为端口号,需要一致。python3 manual_control.py也可以替换为其他python脚本。因为电脑配置不够,所以在服务器跑carla,本地运行PythonAPI里的样例。把carla仓库的PythonAPI拷贝到本地,或者直接去官方里下载一下。

做题记录 4977

统计语言模型学习笔记

语言模型(Language Model)是描述自然语言内在规律的数学模型。构造语言模型是计算语言学的核心。在实践中,语言模型广泛地用于语言识别、手写体文字识别、机器翻译、键盘输入、信息检索等研究领域。   语言模型可分为传统的文法型语言模型和基于统计的语言模型。文法型语言模型是人工编制的语言学文法,文法规则来源于语言学家掌握的语言学知识和领域知识,但这种语言模型不能处理大规模真实文本。为满足这一

u010384318的专栏 1785

通达信抓波段指标(主图)

VAR3:=IF(INBLOCK('科创板'),VART20,IF(INBLOCK('创业板') AND DATE>1200823,VART20,IF(INBLOCK('ST板块'),VART5,VART10)));VAR5:=IF(INBLOCK('科创板'),CT20,IF(INBLOCK('创业板') AND DATE>1200823,CT20,IF(INBLOCK('ST板块'),CT5,CT10)));曾涨停/紫色细K线:青字"炸",涨停未封住。曾跌停/蓝色细K线:红字"撬",跌停被打开。

q125500612的博客 2135

笔记--统计语言模型

语言模型 统计语言模型 语言模型通常构建为字符串S的分布概率p(s),这里的p(s)实际上反应的是s作为一个句子出现的概率 这里的概率指的是组成字符串的这个组合,在训练语料中出现的似然,与句子是否合乎语法无关你。 假设训练语料来自于人类的语言,那么可以认为这个概率是一句话是否为人话的概率 怎么建立统计语言模型? 对于一个由T这个词按顺序构成的句子,p(s)实际上是求解的字符串 的联合概率,利用贝叶斯公式,链式分解如下; 从上面可以看出,一个统计语言模型可以表示成,给定前面的词,求后面一个词出现的条件概率

MasanoYu的博客 253

【WorkBuddy专栏14】专家不是「换皮」——角色切换、训练机制与自我进化深度拆解

WorkBuddy专栏14】专家不是「换皮」——角色切换、训练机制与自我进化深度拆解

AI人人懂 593

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[IR课程笔记]统计语言模型

Basic idea 1.一个文档(document)只有一个主题(topic) 2.主题指的是这个主题下文档中词语是如何出现的 3.在某一主题下文档中经常出现的词语,这个词语在这个主题中也是经常出现的。 4.在某一主题下文档中不经常出现的词语,这个词语在这个主题中也是不经常出现的。 5.由此,概率计算方法可以近似为: Ran...

weixin_34247299的博客 314

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

统计语言模型笔记

一个任务P,两句话哪个出现概率大。

weixin_40222848的博客 209

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深度学习笔记之循环神经网络(二)基于统计算法的语言模型

上一节介绍了包含序列特征的数据,并介绍了处理序列数据的一些模型思想。本节从文本这类序列数据的角度,介绍学习文本特征的基于统计算法的语言模型。

静静的学习就好 766

LLM学习笔记 - 1.1 语言模型的发展历程

大语言模型相关自学自用笔记,有错误请指正

weixin_55885003的博客 902

李沐53_语言模型——自学笔记

在迭代过程中,除了对原始序列可以随机抽样外, 我们还可以保证两个相邻的小批量中的子序列在原始序列上也是相邻的。这种策略在基于小批量的迭代过程中保留了拆分的子序列的顺序,因此称为顺序分区。基于相同的设置,通过顺序分区读取每个小批量的子序列的特征X和标签Y。通过将它们打印出来可以发现: 迭代期间来自两个相邻的小批量中的子序列在原始序列中确实是相邻的。在这里,参数batch_size指定了每个小批量中子序列样本的数目, 参数num_steps是每个子序列中预定义的时间步数。生成一个从0到34的序列。

Rrrrrr900的博客 1156

IIV问题:语言模型幻觉的统计起源与分类学归因-Why Language Models Hallucinate读后笔记

摘要:《Why Language Models Hallucinate》由OpenAI与佐治亚理工团队联合发表,揭示了语言模型(LM)幻觉的统计本质与系统性成因。论文提出IIV(Is-It-Valid)理论框架,证明生成错误率与分类错误率存在定量放大关系(err_gen ≥ 2·err_IIV-δ),并建立五维归因框架。

qq_55210199的博客 1413

大语言模型-1.1-语言模型发展历程

本博客内容是《大语言模型》一书的读书笔记,本文主要记录datawhale的活动学习笔记,是系列博客的汇总。

IT从业者的成长历程 957
上一篇: 笔记-图嵌入(Graph Embedding)
下一篇: 笔记(总结)-神经语言模型和词向量
ZSYGOOOD
博客等级 码龄12年 113粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值