当前位置: 首页 > news >正文

【n-grams】基于统计方法的语言模型

基于统计方法的语言模型

  • 语言模型
    • 语言模型的发展
  • 基于统计方法的语言模型
    • n-grams 语言模型定义
    • 主流 n-grams 语言模型
    • n-grams 语言模型举例

语言模型

语言是一套复杂的符号系统。语言符号通常在音韵、词法、句法的约束下构成,并承载不同的语义。语言的符号具有不确定性。同样的语义可以由不同的音韵、词法、句法构成的符号来表达。同样的音韵、词法、句法构成的符号也可以在不同的语境下表达不同的语义。因此,语言是概率的。 并且,语言的概率性与认知的概率性也存在密不可分的关系。

语言模型(Language Models,LMs)旨在准确预测语言符号的概率。从语言学的角度,语言模型可以赋能计算机掌握语法、理解语义,以完成自然语言处理任务。但从认知科学的角度,准确预测语言符号的概率可以赋能计算机描摹认知、演化智能。

语言模型的发展

从ELIZA到GPT-4,语言模型经历了从 规则模型统计模型,再到 神经网络模型 的发展历程,逐步从呆板的机械式问答程序成长为具有强大泛化能力的大语言模型。语言模型系列内容,将沿着发展历程展开,从基于统计方法的 n-grams 语言模型,到基于循环神经网络 RNN 的语言模型,再到基于 Transformer 的语言模型。本博文内容,为基于统计方法的 n-grams 语言模型。


基于统计方法的语言模型

语言模型通过对 语料库(Corpus) 中的语料进行统计学习从而获得预测语言符号概率的能力。通常,基于统计的语言模型通过直接统计语言符号在语料库中 出现的频率 来预测语言符号的概率。

n-grams 语言模型是最具代表性的统计语言模型。其基于 马尔可夫假设离散变量的极大似然估计 给出语言符号的概率。本节内容将首先给出 n-grams 语言模型的计算方法,然后讨论 n-grams 语言模型如何在马尔可夫假设的基础上应用离散变量极大似然估计给出语言符号出现的概率。

定义:n 阶马尔可夫建设
对序列 { w 1 , w 2 , . . . , w N } \{w_1, w_2, ..., w_N\} {w1,w2,...,wN},当前状态 w N w_N wN 出现的概率只与前 n n n 个状态 { w N − n , . . . , w N − 1 } \{w_{N-n}, ...,w_{N-1}\} {wNn,...,wN1} 有关,即: P ( w N ∣ w 1 , w 2 , . . . , w N − 1 ) ≈ P ( w N ∣ w N − n , . . . , w N − 1 ) P(w_N|w_1, w_2, ..., w_N-1)≈P(w_N|w_{N-n}, ..., w_{N-1}) P(wNw1,w2,...,wN1)P(wNwNn,...,wN1)

n-grams 语言模型定义

设包含 N 个元素的语言符号可以表示为 w 1 : N = { w 1 , w 2 , . . . , w N } w_{1:N}=\{w_1, w_2, ..., w_N\} w1:N={w1,w2,...,wN} e . g . e.g. e.g. 我喜欢苹果={我,喜欢,苹果})。 w 1 : N w_{1:N} w1:N 代表一段文本,其每一个元素 w i ∈ w 1 : N w_i∈w_{1:N} wiw1:N 称为代表词。

n-grams 语言模型中 n-gram 指的是长度为 n 的词序列。举例来说 n=2 时,考虑上一个词对下一个词的影响。通过依次统计文本中的 n-gram 及其对应的 (n-1)-gram 在语料库中出现的相对频率来计算文本 w 1 : N w_{1:N} w1:N 出现的概率。

计算公式如下所示:
P n − g r a m s ( w 1 : N ) = Π i = n N C ( w i − n + 1 : i ) C ( w i − n + 1 : i − 1 ) P_{n-grams}(w_{1:N})=\Pi ^N _{i=n}\frac {C(w_{i-n+1:i})} {C(w_{i-n+1:i-1})} Pngrams(w1:N)=Πi=nNC(win+1:i1)C(win+1:i)其中:

  • C ( w i − n + 1 : i ) C(w_{i-n+1:i}) C(win+1:i) 为词序列 { w i − n + 1 , . . . , w i } \{w_{i-n+1}, ..., w_i\} {win+1,...,wi} 在语料库中出现的次数
  • C ( w i − n + 1 : i − 1 ) C(w_{i-n+1:i-1}) C(win+1:i1) 为词序列 { w i − n + 1 , . . . , w i − 1 } \{w_{i-n+1}, ..., w_{i-1}\} {win+1,...,wi1} 在语料库中出现的次数

主流 n-grams 语言模型

n-grams 语言模型根据 n 值,有如下主流模型:

  • n = 1 n=1 n=1,称 unigram,不考虑文本上下文关系: P u n i g r a m ( w 1 : N ) = Π i = 1 N C ( w i ) C ( w i : i − 1 ) = 词 w i 语料库中出现的次数 语料库中词的总数 P_{unigram}(w_{1:N})=\Pi^N_{i=1}\frac{C(w_{i})} {C(w_{i:i-1})}=\frac {词 w_i 语料库中出现的次数} {语料库中词的总数} Punigram(w1:N)=Πi=1NC(wi:i1)C(wi)=语料库中词的总数wi语料库中出现的次数
  • n = 2 n=2 n=2,称 bigrams,对前一个词作考虑: P b i g r a m s ( w 1 : N ) = Π i = 2 N C ( w i − 1 : i ) C ( w i − 1 ) = 词序列 { w i − 1 : w i } 语料库中出现的次数 词 w i − 1 语料库中出现的次数 P_{bigrams}(w_{1:N})=\Pi^N_{i=2}\frac {C(w_{i-1:i})} {C(w_{i-1})}=\frac {词序列 \{w_{i-1}:w_i\} 语料库中出现的次数} {词 w_{i-1} 语料库中出现的次数} Pbigrams(w1:N)=Πi=2NC(wi1)C(wi1:i)=wi1语料库中出现的次数词序列{wi1:wi}语料库中出现的次数
  • n = 3 n=3 n=3,称 trigrams,对前两个词作考虑: P t r i g r a m s ( w 1 : N ) = Π i = 3 N C ( w i − 2 : i ) C ( w i − 2 : i − 1 ) P_{trigrams}(w_{1:N})=\Pi^N_{i=3}\frac {C(w_{i-2:i})} {C(w_{i-2:i-1})} Ptrigrams(w1:N)=Πi=3NC(wi2:i1)C(wi2:i)

n-grams 语言模型举例

假设语料库(Corpus)中包含有5个句子:
请添加图片描述

基于该语料库,应用 bigrams 语言模型,对文本 w 1 : N = 长颈鹿脖子长 = { 长颈鹿,脖子,长 } w_{1:N}=长颈鹿脖子长=\{长颈鹿,脖子,长\} w1:N=长颈鹿脖子长={长颈鹿,脖子,长} 出现的概率进行计算,公式如下: P b i g r a m ( 长颈鹿,脖子,长 ) = C ( 长颈鹿,脖子 ) C ( 长颈鹿 ) ∗ C ( 脖子,长 ) C ( 脖子 ) P_{bigram}(长颈鹿,脖子,长)=\frac {C(长颈鹿,脖子)} {C(长颈鹿)}*\frac {C(脖子,长)} {C(脖子)} Pbigram(长颈鹿,脖子,长)=C(长颈鹿)C(长颈鹿,脖子)C(脖子)C(脖子,长) 根据语料库内容统计, C ( 长颈鹿,脖子 ) = 2 C(长颈鹿,脖子)=2 C(长颈鹿,脖子)=2 C ( 脖子,长 ) = 2 C(脖子,长)=2 C(脖子,长)=2 C ( 长颈鹿 ) = 5 C(长颈鹿)=5 C(长颈鹿)=5 C ( 脖子 ) = 6 C(脖子)=6 C(脖子)=6。故, P b i g r a m ( 长颈鹿,脖子,长 ) = 2 15 P_{bigram}(长颈鹿,脖子,长)=\frac 2 {15} Pbigram(长颈鹿,脖子,长)=152 由此可见,虽然文本并未出现在语料库中,但是 bigram 模型仍然判断该文本出现的概率为 2 15 \frac 2 {15} 152,可以说,n-grams 模型对未知文本是具备初步泛化能力

但是,这种泛化能力会随着 n 的增大而逐渐减弱。如我们在应用 trigram 模型对文本 “长颈鹿脖子长” 进行概率计算时, P t r i g r a m ( 长颈鹿,脖子,长 ) = C ( 长颈鹿,脖子,长 ) ( 长颈鹿,脖子 ) = 0 P_{trigram}(长颈鹿,脖子,长)=\frac {C(长颈鹿,脖子,长)} {(长颈鹿,脖子)}=0 Ptrigram(长颈鹿,脖子,长)=(长颈鹿,脖子)C(长颈鹿,脖子,长)=0

因此,在 n-grams 语言模型中,n 代表了拟合语料库的能力与对未知文本的泛化能力之间的权衡。

  • 当 n 过于大时,语料库中很难找到与 n-gram 一模一样的词序列,可能出现大量”零概率“现象。
  • 在 n 过小时,n-gram 难以承载足够的语言信息,不足以反应语料库的特性。

所以,在 n-grams 语言模型中,n 值的选择是影响性能的关键因素。

相关文章:

  • ⚡️ Linux 系统安装与配置 Git
  • webpack的安装
  • spring和Mybatis的各种查询
  • YOLO-UniOW概述 论文
  • 华为OD最新机试真题-反转每对括号间的子串-OD统一考试(B卷)
  • 小猴子摆玩具
  • python--=的用法
  • 用python制作一个打地鼠游戏
  • Condition源码解读(二)
  • 基于物理约束的稀疏IMU运动捕捉系统
  • Spring AI 集成多个大语言模型
  • canal高可用配置
  • Linux中的Shell脚本基础
  • 2025年5月通信科技领域周报(5.19-5.25):太赫兹通信规模商用启动 空天地一体化网络加速落地
  • 亚古数据:查询BVI(英属维尔京群岛)公司可以获取到什么信息和文件?
  • Cesium实现标注动画
  • get_rga_thread线程和low_camera_venc_thread线程获取低分辨率VENC码流数据
  • WES(二)——数据预处理
  • 美颜SDK功能模块化设计实战:滤镜、贴纸与人脸识别的协同实现
  • YOLOv8 区域计数系统:基于计算机视觉的智能物体计数方案
  • 公司在线网站制作系统/互联网营销师
  • 怎么用自己主机做网站_/org域名注册
  • 为什么最近好多网站打不开了/邯郸网站建设优化
  • 黑龙江专业建站/关键词优化流程
  • 如何做转运网站/品牌营销策略论文
  • 公司做网站哪家好/海淀区seo多少钱