NLP基础:n-gram语言模型和神经网络语言模型

【AI理论学习】n-gram语言模型和神经网络语言模型 语言模型是自然语言处理中的重要技术,假设一段长度为TTT的文本中的词依次为w1,w2,…,wTw1​,w2​,…,wT​P(w1,w2,...,wT)P(w1​,w2​,...,wT​)语言模型有助于提升自然语言处理任务的效果,例如在语音识别任务中,给定一段“厨房里食油用完了”的语音,有可能会输出“厨房里食油用完了”和“厨房里石油用完了”这两个读音完全一样的文本序列。 阅读详情


语言模型是自然语言处理中的重要技术,假设一段长度为 T T T的文本中的词依次为 w 1 , w 2 , … , w T w_1, w_2, \ldots, w_T w1​,w2​,…,wT​,语言模型将计算该序列的概率:
P ( w 1 , w 2 , … , w T ) . P(w_1, w_2, \ldots, w_T). P(w1​,w2​,…,wT​).
语言模型有助于提升自然语言处理任务的效果,例如在语音识别任务中,给定一段“厨房里食油用完了”的语音,有可能会输出“厨房里食油用完了”和“厨房里石油用完了”这两个读音完全一样的文本序列。合适的语言模型能够判断出前者的概率大于后者的概率,于是可以得到正确的“厨房里食油用完了”这个文本序列。

语言模型的计算

我们可以把文本看作一段离散的时间序列 w 1 , w 2 , … , w T w_1, w_2, \ldots, w_T w1​,w2​,…,wT​,假设每个词是按时间先后顺序依次生成的,那么在离散的时间序列中, w t w_t wt​( 1 ≤ t ≤ T 1 \leq t \leq T 1≤t≤T)可看作在时间步(time step) t t t的输出或标签。于是,对于一个句子而言,有:
P ( w 1 , w 2 , … , w T ) = ∏ t = 1 T P ( w t ∣ w 1 , … , w t − 1 ) . P(w_1, w_2, \ldots, w_T) = \prod_{t=1}^T P(w_t \mid w_1, \ldots, w_{t-1}). P(w1​,w2​,…,wT​)=t=1∏T​P(wt​∣w1​,…,wt−1​).
例如,一段含有4个词的文本序列的概率:

P ( w 1 , w 2 , w 3 , w 4 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) P ( w 4 ∣ w 1 , w 2 , w 3 ) . P(w_1, w_2, w_3, w_4) = P(w_1) P(w_2 \mid w_1) P(w_3 \mid w_1, w_2) P(w_4 \mid w_1, w_2, w_3). P(w1​,w2​,w3​,w4​)=P(w1​)P(w2​∣w1​)P(w3​∣w1​,w2​)P(w4​∣w1​,w2​,w3​).

n-gram 语言模型

如果一个句子特别长,那么计算和存储多个词共同出现的概率的复杂度会呈指数级增加。

由此引入 n-gram 语言模型,n-gram 是一种基于统计模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为n的滑动窗口操作,形成了长度为n的字节片段序列,每一个字节片段称为gram。

n-gram 模型基于马尔可夫假设,第n个词的出现只与前面 n-1 个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积:
P ( w 1 , w 2 , … , w T ) ≈ ∏ t = 1 T P ( w t ∣ w t − ( n − 1 ) , … , w t − 1 ) . P(w_1, w_2, \ldots, w_T) \approx \prod_{t=1}^T P(w_t \mid w_{t-(n-1)}, \ldots, w_{t-1}) . P(w1​,w2​,…,wT​)≈t=1∏T​P(wt​∣wt−(n−1)​,…,wt−1​).
这些概率可以通过直接从语料中统计 n 个词同时出现的次数得到。常用的是 n=2 的Bi-Gram和 n=3 的Tri-Gram。

例如,长度为4的序列 w 1 , w 2 , w 3 , w 4 w_1, w_2, w_3, w_4 w1​,w2​,w3​,w4​在Bi-Gram和Tri-Gram中的概率分别为:

P ( w 1 , w 2 , w 3 , w 4 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 2 ) P ( w 4 ∣ w 3 ) , P ( w 1 , w 2 , w 3 , w 4 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) P ( w 4 ∣ w 2 , w 3 ) . \begin{aligned} P(w_1, w_2, w_3, w_4) &= P(w_1) P(w_2 \mid w_1) P(w_3 \mid w_2) P(w_4 \mid w_3) ,\\ P(w_1, w_2, w_3, w_4) &= P(w_1) P(w_2 \mid w_1) P(w_3 \mid w_1, w_2) P(w_4 \mid w_2, w_3) . \end{aligned} P(w1​,w2​,w3​,w4​)P(w1​,w2​,w3​,w4​)​=P(w1​)P(w2​∣w1​)P(w3​∣w2​)P(w4​∣w3​),=P(w1​)P(w2​∣w1​)P(w3​∣w1​,w2​)P(w4​∣w2​,w3​).​

当 n n n较小时, n n n元语法往往并不准确。然而,当 n n n较大时, n n n元语法需要计算并存储大量的词频和多词相邻频率。

对于Bi-Gram而言,有:
p ( w t ∣ w t − 1 ) = c ( w t − 1 , w t ) ∑ w t c ( w t − 1 , w t ) p(w_t|w_{t-1}) = \frac{c(w_{t-1},w_t)}{\sum_{w_t}c(w_{t-1},w_t)} p(wt​∣wt−1​)=∑wt​​c(wt−1​,wt​)c(wt−1​,wt​)​
当 t = 1 t=1 t=1时,为了使上式有意义,在句子的开头加上 < B O S > <BOS> <BOS>,即对于所有的句子 w 0 = < B O S > w_0 = <BOS> w0​=<BOS>。同时,给每个句子加上一个结束符 < E O S > <EOS> <EOS>,加上结束符的目的是使得所有的字符串的概率之和 ∑ s p ( s ) = 1 \sum_sp(s)=1 ∑s​p(s)=1。

举个例子,我们有下面的语料数据:
在这里插入图片描述

用计算最大似然估计的方法计算概率:
p ( w i ∣ w i − 1 ) = c ( w i − 1 w i ) ∑ w i c ( w i − 1 w i ) p(w_i|w_{i-1}) = \frac{c(w_{i-1}w_i)}{\sum_{w_i}c(w_{i-1}w_i)} p(wi​∣wi−1​)=∑wi​​c(wi−1​wi​)c(wi−1​wi​)​
其中,函数 c 表示个数统计。

用计算最大似然估计的方法计算概率 p ( B R O W R E A D A B O O K ) p(BROW \quad \quad READ \quad A \quad BOOK) p(BROWREADABOOK),具体过程如下:
P ( B R O W ∣ < B O S > ) = c ( < B O S > B R O W ) ∑ w c ( < B O S > w ) = 1 3 P ( R E A D ∣ B R O W ) = c ( B R O W R E A D ) ∑ w c ( B R O W w ) = 1 1 P ( A ∣ R E A D ) = c ( R E A D A ) ∑ w c ( R E A D w ) = 2 3 P ( B O O K ∣ A ) = c ( A B O O K ) ∑ w c ( A w ) = 1 2 P ( < E O S > ∣ B O O K ) = c ( B O O K < E O S > ) ∑ w c ( B O O K w ) = 1 2 \begin{aligned} &P(BROW |<BOS>) = \frac{c(<BOS>\quad BROW )}{\sum_{w}c(<BOS> \quad w)} = \frac{1}{3} \\ & P(READ |BROW) = \frac{c(BROW \quad READ )}{\sum_{w}c(BROW \quad w)} = \frac{1}{1} \\ & P(A |READ) = \frac{c(READ \quad A )}{\sum_{w}c(READ \quad w)} = \frac{2}{3} \\ & P(BOOK |A) = \frac{c( A \quad BOOK )}{\sum_{w}c(A \quad w)} = \frac{1}{2} \\ & P(<EOS>|BOOK ) = \frac{c( BOOK \quad <EOS> )}{\sum_{w}c(BOOK \quad w)} = \frac{1}{2} \end{aligned} ​P(BROW∣<BOS>)=∑w​c(<BOS>w)c(<BOS>BROW)​=31​P(READ∣BROW)=∑w​c(BROWw)c(BROWREAD)​=11​P(A∣READ)=∑w​c(READw)c(READA)​=32​P(BOOK∣A)=∑w​c(Aw)c(ABOOK)​=21​P(<EOS>∣BOOK)=∑w​c(BOOKw)c(BOOK<EOS>)​=21​​
所以:
p ( B R O W    R E A D    A    B O O K ) = P ( B R O W ∣ < B O S > ) × P ( R E A D ∣ B R O W ) × P ( A ∣ R E A D ) × P ( B O O K ∣ A ) × P ( < E O S > ∣ B O O K ) = 1 3 × 1 × 2 3 × 1 2 × 1 2 ≈    0.06 \begin{aligned} &p(BROW \; READ\; A\; BOOK)\\ = &P(BROW |<BOS>)\times P(READ |BROW) \times P(A |READ)\\&\times P(BOOK |A)\times P(<EOS>|BOOK ) \\ =&\frac{1}{3} \times 1 \times\frac{2}{3}\times\frac{1}{2}\times\frac{1}{2}\\ \approx & \;0.06 \end{aligned} ==≈​p(BROWREADABOOK)P(BROW∣<BOS>)×P(READ∣BROW)×P(A∣READ)×P(BOOK∣A)×P(<EOS>∣BOOK)31​×1×32​×21​×21​0.06​

n-gram 平滑技术

在自然语言处理处理中,难免会遇到未登录词(OOV),即测试集中出现了训练集中未出现过的词,或者未出现过的子序列,导致语言模型计算出的概率为0。使用平滑技术的目的就是在条件概率为0时,防止整个句子的概率为0,人为按一定规则,给0条件概率一定的值。常见的平滑方法有:

  • 加法平滑方法
  • 古德-图灵(Good-Turing)估计法
  • Katz平滑方法
  • Jelinek-Mercer平滑方法
  • Witten-Bell平滑方法
  • 绝对减值法

具体内容参考宗成庆老师的《统计自然语言处理 第二版》

神经网络语言模型(NNLM)

基本思想

神经网络语言模型先给每个词赋予一个词向量,利用神经网络去建模当前词出现的概率与其前 n-1 个词之间的约束关系,即通过神经网络去学习词的向量表示。结构如下图所示:

在这里插入图片描述

具体而言,假设当前词出现的概率只依赖于前 n − 1 n-1 n−1个词。即:
p ( w t ∣ w 1 … w t − 1 ) = p ( w t ∣ w t − n + 1 … w t − 1 ) p(w_t|w_1\ldots w_{t-1}) = p(w_t|w_{t-n+1}\ldots w_{t-1}) p(wt​∣w1​…wt−1​)=p(wt​∣wt−n+1​…wt−1​)
假设 V V V表示所有N个词的集合, w t ∈ V w_t \in V wt​∈V,存在一个 ∣ V ∣ × m |V|\times m ∣V∣×m的参数矩阵C,矩阵的每一行代表每一个词的特征向量,m代表每个特征向量由m个维度。 C ( w t ) C(w_t) C(wt​)表示第 t 个词 w t w_t wt​的对应的特征向量。

如上图所示,将句子的前 n-1 个词特征对应的向量 C ( w t − n + 1 ) … C ( w t − 1 ) C(w_{t-n+1})\ldots C(w_{t-1}) C(wt−n+1​)…C(wt−1​)作为神经网络的输入,输出当前的词是 w t w_t wt​的概率。计算过程如下:
y = W x + U t a n h ( d + H x ) + b y = W x + U tanh(d+Hx) + b y=Wx+Utanh(d+Hx)+b
其中:
x = ( C ( w t − 1 ) , C ( w t − 2 ) , … , C ( w t − n + 1 ) ) x = (C(w_{t-1}),C(w_{t-2}),\ldots ,C(w_{t-n+1})) x=(C(wt−1​),C(wt−2​),…,C(wt−n+1​))
经过上式得到 y w = ( y w , 1 , y w , 2 , … , y w , N ) T y_w = (y_{w,1},y_{w,2},\ldots,y_{w,N})^T yw​=(yw,1​,yw,2​,…,yw,N​)T ,其中,将 y w y_w yw​进行softmax后, y w , i y_{w,i} yw,i​ 表示当上下文为 c o n t e x t ( w ) context(w) context(w)时,下一个词恰好是词典中第 i i i个词的概率,即:
P ( w ∣ c o n t e x t ( w ) ) = e y w , i w ∑ i = 1 N e y w , i P(w|context(w)) = \frac{e^{y_{w,i_w}}}{\sum_{i=1}^N e^{y_{w,i}}} P(w∣context(w))=∑i=1N​eyw,i​eyw,iw​​​
其中, i w i_w iw​表示词在词典中的索引。

计算集中在隐藏层和输出层之间的矩阵向量运算,以及输出层上的softmax归一化运算。该模型的参数是:
θ = ( b , d , W , U , C ) \theta = (b,d,W,U,C) θ=(b,d,W,U,C)
损失函数是:
L = − 1 T ∑ t log ⁡ p ^ ( w t = i ∣ w t − n + 1 … w t − 1 ) + R ( θ ) L = -\frac{1}{T} \sum_t \log \hat p(w_t=i|w_{t-n+1}\ldots w_{t-1}) + R(\theta) L=−T1​t∑​logp^​(wt​=i∣wt−n+1​…wt−1​)+R(θ)
$ R(\theta)$是正则化项,用于控制过拟合。

有了损失函数,我们可以用梯度下降法,在给定学习率 η \eta η的条件下,进行参数更新:
θ ← θ − η ∂ L ∂ θ \theta \leftarrow \theta - \eta \frac{\partial L}{\partial \theta} θ←θ−η∂θ∂L​
直至收敛,得到一组最优参数。

神经网络语言模型小结

只要词的表征足够好,就能具有比 n-gram 更好的泛化能力,从而很大程度地降低了数据稀疏带来的问题。不足之处是仅包含了有限的前文信息。

优点:(1) 长距离依赖,具有更强的约束性;(2) 避免了数据稀疏所带来的OOV问题;(3) 好的词表征能够提高模型泛化能力。

缺点:(1) 模型训练时间长;(2) 可解释性较差。

神经网络语言模型与 n-gram 模型相比,

1,相似的词具有相似的向量。对 n-gram 模型而言,如果语料中S1=“A dog is running in the room”出现了10000次,而S2=“A cat is running in the room”只出现了1次,p(S1)肯定会远大于p(S2)。而实际上,dog 和 cat 是相似的存在,神经网络语言模型所得到的词向量距离会比较近,表示两个词十分相似。

2,用向量表示的词自带平滑化功能(由p(w∣Context(w))∈(0,1)p(w|Context(w))∈(0,1)p(w∣Context(w))∈(0,1)不会为零),不再需要像 n-gram 那样进行额外处理了。

语言模型评价指标—困惑度

通常用困惑度作为语言模型的评价指标。

设存在文本序列 W = ( w 1 , w 2 , … , w N ) W=(w_1,w_2,\ldots,w_N) W=(w1​,w2​,…,wN​),则每个词的平均交叉熵为:
H ( W ) = − 1 N log ⁡ P ( w 1 , w 2 , … , w N ) H(W) = -\frac{1}{N}\log P(w_1,w_2,\ldots,w_N) H(W)=−N1​logP(w1​,w2​,…,wN​)
显然,交叉熵越小,得到的概率模型越接近真实分布,进一步我们定义困惑度为:
P r e p l e x i t y ( W ) = 2 H ( W ) = 1 P ( w 1 , w 2 , … , w N ) N Preplexity(W) = 2^{H(W)} = \sqrt[N]{\frac{1}{ P(w_1,w_2,\ldots,w_N)}} Preplexity(W)=2H(W)=NP(w1​,w2​,…,wN​)1​ ​
由公式可知:困惑度越小,说明所建模的语言模型越精确。

参考文章

  1. A Neural Probabilistic Language Model

  2. 深入理解语言模型 Language Model

  3. 6.1语言模型

  4. 语言模型基础

【n-gram算法】一篇文章讲透~ n-gram算法作为一种基于统计的NLP算法,在文本分析和处理中发挥着重要作用。通过统计文本中连续n个词的序列的频率信息,n-gram为文本生成、语言模型构建、文本分类等任务提供了有力的支持。然而,n-gram算法也存在一些局限性,如数据稀疏性、上下文信息有限以及计算复杂度高等问题。因此,在实际应用中,我们需要根据具体任务和数据特点选择合适的n值和算法参数,以充分发挥n-gram算法的优势并克服其局限性。 阅读详情

相关推荐

自然语言处理基础:N-Gram语言模型

自然语言处理基础:N-Gram语言模型

天涯雨的博客 1428

语言模型:n-gram语言模型和神经网络语言模型

语言模型 什么是语言模型:语言模型是一个基于统计建立的,用来计算概率的模型。 计算不同的概率使语言模型有两种应用: 计算一个句子的合理程度。 A language model can take a list of words, and attempt to predict the word that follows them. 即通过一些预先输入的词预测下一个词,如输入法的预测功能。 应用...

iamnotironman的博客 1654

NLP自然语言处理:神经网络语言模型(NNLM)

目录 一、传统语言模型 1.1 稀疏性 1.2泛化能力差 二、神经网络语言模型 2.1 前馈神经网络模型(FFLM) 2.2 循环神经网络模型(RNNLM) 2.2.1循环神经网络模型示例 2.2.2RNN语言模型训练过程 2.2.3RNN语言模型反向传播 2.2.4语言模型评估 语言模型的构建目的是为了对语言中的各要素的分布进行估计,具有较长的研究历史和广泛...

陈宸的博客 1万+

NLP自然语言处理实战(四):词向量推理(Word2vec)

Word2vec

weixin_44288092的博客 1046

NLP DAY3:早期的n-gram算法(最浅显易懂)

n-gram算法作为一种基于统计的NLP算法,在文本分析和处理中发挥着重要作用。通过统计文本中连续n个词的序列的频率信息,n-gram为文本生成、语言模型构建、文本分类等任务提供了有力的支持。然而,n-gram算法也存在一些局限性,如数据稀疏性、上下文信息有限以及计算复杂度高等问题。因此,在实际应用中,我们需要根据具体任务和数据特点选择合适的n值和算法参数,以充分发挥n-gram算法的优势并克服其局限性。

feifeikon的博客 1611

自然语言处理之语言模型:n-gram:n-gram模型基础

语言模型是一个概率模型,用于预测一个词序列的概率。形式上,给定一个词序列w1w2wnw1​w2​...wn​,语言模型的目标是计算其概率Pw1w2wnPw1​w2​...wn​。在实际应用中,语言模型通常用于生成新的文本序列,或者评估现有文本序列的合理性。n-gram模型是一种基于统计的语言模型,用于预测序列中下一个词的概率。它基于一个假设:一个词的出现只依赖于它前面的n-1个词。这里的n就是n-gram中的“n”,表示序列中连续的n个词。

zhubeibei168的博客 1185

N-gram和NNLM语言模型

N-gram和NNLM语言模型

m0_67084346的博客 1416

自然语言处理基础知识入门(一) N-gram,NNLM模型讲解

在之前的博客中介绍了图神经网络(Graph Neural Networks, GNNs)的内容,旨在帮助初学者快速掌握这一复杂领域,以便于读者迅速投入到科研工作中去。在浏览这些图神经网络相关的资料时,读者经常会遇到一个关键术语 —— “嵌入表示”(Embedding),该术语用于描述图结构中单个节点的特征信息。尽管许多初学者可能对这个概念感到陌生,但它实际上起源于自然语言处理(NLP)领域。为了深入理解"嵌入表示"这一概念,拥有NLP背景知识显得尤为重要。

WANGYANG的博客 3234

NLP之N-Gram模型

N-Gram是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。 N-Gram是大词汇连续语音识别中常用的一种语言模型 N-Gram(有时也称为N元模型)是自然语言处理中一个非常重要的概念,通常在NLP中,人们基于一定的语料库,可以利用N-Gram来预计或者评估一个句子是否合理。另外一方面,N-Gram的另外一个作用是用来评估两个字符串之间的差异程度。这是模糊匹配中常用的一种手段 ...

hxxjxw的博客 982

自然语言处理之语言模型:n-gram:统计语言模型原理

为了解决n-gram模型的局限性,研究者们转向了基于神经网络的语言模型。这些模型能够学习更复杂的上下文依赖关系,处理语义和语法的复杂性,并在一定程度上缓解数据稀疏问题。在自然语言处理(NLP)领域,语言模型是预测文本序列中下一个词的概率分布的关键工具。n-gram模型,作为统计语言模型的一种,通过分析文本中连续的n个词的频率来估计词的概率。下面,我们将总结n-gram模型的核心原理和应用。

zhubeibei168的博客 1063

自然语言处理之语言模型:n-gram与基于神经网络的语言模型对比

在自然语言处理(NLP)领域,语言模型是预测文本序列中下一个词概率的关键技术。传统的n-gram模型基于统计方法,通过计算词频来预测词的概率,但这种方法在处理长距离依赖和词汇稀疏性问题时存在局限。随着深度学习的发展,神经网络语言模型因其能够捕捉更复杂的语言结构和语义信息而逐渐成为主流。

zhubeibei168的博客 1185

NLP:n-gram模型

N-Gram N-Gram(有时也称为N元模型)是自然语言处理中一个非常重要的概念。主要有两个重要应用场景: (1)人们基于一定的语料库,可以利用N-Gram来预计或者评估一个句子是否合理。 (2)用来评估两个字符串之间的差异程度。这是模糊匹配中常用的一种手段。 习惯上,1-gram叫unigram,2-gram称为bigram,3-gram是trigram。还有four-gram、five-gram等,不过大于n>5的应用很少见。常用的是Bi-gram (N...

Puzzle的博客 2万+

自然语言处理之语言模型:从n-gram到Transformer

循环神经网络(RNN)是一种用于处理序列数据的神经网络模型。与传统的前馈神经网络不同,RNN具有循环连接,允许信息在时间上流动,这使得RNN能够处理可变长度的输入序列。RNN中的每个时间步都有一个隐藏状态,这个隐藏状态不仅取决于当前时间步的输入,还取决于前一时间步的隐藏状态,从而能够捕捉序列中的依赖关系。门控循环单元(GRU)是LSTM的一种简化版本,旨在减少计算复杂度和参数数量。GRU将LSTM的三个门(输入门、遗忘门和输出门)简化为两个门(更新门和重置门),并通过一个隐藏状态来存储信息。

zhubeibei168的博客 808

浅谈自然语言处理(NLP)学习路线(二):N-Gram模型,一文带你理解N-Gram语言模型

你现在在看我的文章,这是一些文字,但是这些文字实质上是以像素点的形式呈现给你的,所以不要以为这些文字是计算机理解的元素,它不过是一些像素点组合出的可视化图像而已。可是我们现在有很多时候不仅仅是想让文字呈现在我们计算机屏幕上这么简单,更多的是想让计算机接收到一些文字信息后能够在它“心里”对这些文字信息进行理解、分析和处理,怎么办呢?这个时候,语言模型就派上用场了。我们知道,计算机接收到的所有类型的信息,本质上都是转化成“0、1”这两个数进行存储或者处理的,语言文字也不例外。

尚拙的博客 2912

单窗算法的地表温度反演:谷歌地球引擎GEE代码

该论文基于Statistical Mono-Window(SMW)算法,对地表温度加以求解。其中,简单地说,SMW算法即是通过简单的线性关系,对由单热红外波段所得的大气表观亮温与地表温度之间的经验关系加以表示,从而计算得到LST。

2301_78834737的博客 551

保姆级教程:用ROS2 Humble和激光雷达,5分钟搞定机器人避障(附Python代码)

本文提供了一份详细的ROS2 Humble激光雷达避障实战指南,帮助开发者快速实现机器人避障功能。通过环境配置、硬件连接和Python代码实现,5分钟内即可让机器人自主避开障碍物。文章还涵盖了参数调优、常见问题排查及进阶优化技巧,适合机器人开发初学者和进阶用户。

weixin_42528902的博客 342

NLP深入学习(六):n-gram 语言模型

本文介绍 nlp 的 n-gram 语言模型。

日常学习与专研的记录 2154

Windows 11 + AMD 780M 运行 ComfyUI 完整指南:DirectML 实战方案

ComfyUI 是基于 PyTorch 的 Stable Diffusion 可视化工作流工具,其性能高度依赖 GPU 后端支持。在 Windows 平台,传统 CUDA 方案仅适配 NVIDIA 显卡,而 AMD 核显用户长期面临 ROCm 兼容性差、驱动链路断裂等系统级障碍。DirectML 作为微软原生机器学习 API,绕过 ROCm 生态断层,直接对接 DirectX 12 硬件抽象层,成为 RDNA 3 架构(如 Radeon 780M)在 Windows 11 上运行 AI 绘画的最优解。它提供

weixin_30099989的博客 722

N-gram语言模型和Word2Vec

N-gram语言模型 – 潘登同学的NLP学习笔记 文章目录N-gram语言模型 -- 潘登同学的NLP学习笔记语言模型N-gram概率模型马尔科夫假设选取N的艺术举例说明OOV 问题平滑处理总结NPLM(Neural Probabilistic Language Model)N-gram 神经语言模型网络结构相比 N-gram 模型,NPLM 的优势词向量Word2VecCBOW模型(Continuous Bag-of-Words Model)Skip-gram两种模型的两种训练方式哈夫曼树分层Softm

weixin_52185313的博客 2160

WorkBuddy Skill赋能HYSYS与Comsol:AI工作台下的仿真自动化实践

AI Agent正将工业软件自动化带向新高度。在工程仿真领域,流程模拟与多物理场分析常因重复性操作而效率低下,Aspen HYSYS的批量工况调整、Comsol的参数扫描与网格重构均属此类。WorkBuddy这类AI工作台通过Skill将软件二次开发能力封装为可插拔技能包,利用HYSYS的COM/OLE接口和Comsol的Java API,实现自然语言指令到自动化执行的转变。其技术价值在于降低自动化门槛、沉淀工程经验,并支持日志审计与异常重试。在实际应用中,无论化工流程的灵敏度分析,还是激光焊接、移动网格等

weixin_29055699的博客 296

图解凸函数与凹函数:别再被数学定义搞晕了!

本文通过图解和生活化类比,深入浅出地解释了凸函数与凹函数的数学定义及其与日常直觉的差异。文章详细介绍了凸函数的图像特征、数学定义(包括二阶导数判断)、在机器学习中的重要性,以及常见误区和实际应用中的判断技巧,帮助读者彻底理解这一关键数学概念。

weixin_29159441的博客 650

语言模型:从n-gram到神经网络的演进

语言模型是自然语言处理领域中的关键技术之一,它致力于理解和生成人类语言。从最初的n-gram模型到如今基于神经网络的深度学习模型,语言模型的发展经历了漫长的演进。本文将探讨语言模型的演化历程,介绍不同阶段的技术,并深入探讨神经语言模型的重要性及其对自然语言处理的影响。

cooldream2009的博客 2363

【AFAC2026金融智能-赛题四】我做了一个疯狂的决定,把Embedding和Reranker全删了

本文介绍了AFAC2026金融智能挑战赛赛道四的解题思路,核心是在500万token的严格限制下实现金融长文本的高效问答。作者通过四步流水线(规划、BM25检索、记忆压缩、LLM推理)优化流程,重点创新在于: 采用零API调用的纯BM25检索,配合多路查询、封面页加权和页面邻接扩展等策略 设计高效的检索算法,从问题中提取专有名词并构建多路查询组合 深入理解评分公式,平衡准确率和token消耗,最终在准确率提升的同时将token消耗从数百万降至百万级 这些创新使方案在严格限制下实现了性能突破,展示了在资源受限

224

自然语言处理(NLP)

NLP(Nature Language Processing,自然语言处理)是计算机学科及人工智能领域一个重要的子学科,它主要研究计算机如何处理、理解及应用人类语言。所谓自然语言,指人说的话、人写的文章,是人类在长期进化过程中形成的一套复杂的符号系统(类似于C/Java等计算机语言则称为人造语言)。以下是关于自然语言处理常见的定义:自然语言处理还有其它一些名称,例如:自然语言理解(Natural Language Understanding),计算机语言学(Computational Linguistics

weixin_55245206的博客 9930

OData V2 消息在 SAP UI5 中的生成、传播与治理全解

SAP UI5 的 OData V2 消息机制通过自动解析服务端响应头(sap-message)或错误体,将消息推送到全局 MessageModel,实现数据质量保障。关键点包括:1)消息通过目标路径与控件绑定联动,触发高亮等反馈;2)生命周期管理需注意避免自动刷新导致消息丢失;3)常见陷阱如批处理错误重复、内外层消息冲突等可通过精准目标路径或自定义处理器解决。代码示例展示了如何配置模型、消息模型及 MessagePopover 实现端到端消息展示,同时支持控件通过 refreshDataState 自定义

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 231

inno setup自定义卸载程序和美化

也就是DisplayName,因为我们在第一步的时候,将卸载程序名称也写入了注册表,所以,我们直接从注册表读DisplayName字段即可。1.要实现inno setup自定义卸载程序,首先需要关闭自带的卸载程序。在[Setup]的字段关闭卸载程序步骤和页面。2.删除应用程序目录里能够删除的并且返回进度。3.自定义卸载程序相关的注册表信息。4.删除启动菜单栏和guid注册表。2.自定义快捷方式和程序菜单。

cs821984831的博客 2347
上一篇: 长短期记忆(LSTM)相关知识
下一篇: 【word2vec】篇一:理解词向量、CBOW与Skip-Gram等知识
VariableX
博客等级 码龄7年 142粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值