精华内容
参与话题
问答
  • 语言模型

    千次阅读 2017-06-25 11:52:59
    电话有效语音范围125Hz∼\sim3800Hz。使用HMM做为语音识别系统的前提是连续语音特征可以分成准静态序列。这些状态序列之间是不相关的,系统通常采用25ms的帧长,10ms的滑动长度,提取特征MFCC/PLP做分析特征。...

    我的书:
    在这里插入图片描述
    淘宝购买链接
    当当购买链接
    京东购买链接

    电话有效语音范围125Hz$\sim3800Hz。使用HMM做为语音识别系统的前提是连续语音特征可以分成准静态序列。这些状态序列之间是不相关的,系统通常采用25ms的帧长,10ms的滑动长度,提取特征MFCC/PLP做分析特征。上面的假设的HMM状态的独立性在语音上实际上并不成立,这是由于观察到的每一帧语音都或多或少依赖前面的语音(发音器官的生物物理特性)。所以希望将发音轨迹(或者说帧于帧之间的联系)做为一个特征合并到单帧得到的特征序列里(这样可以不破坏HMM结构)。这一添加的特征被称为动态系数(或者delta参数3800Hz。使用HMM做为语音识别系统的前提是连续语音特征可以分成准静态序列。这些状态序列之间是不相关的,系统通常采用25ms的帧长,10ms的滑动长度,提取特征MFCC/PLP做分析特征。 上面的假设的HMM状态的独立性在语音上实际上并不成立,这是由于观察到的每一帧语音都或多或少依赖前面的语音(发音器官的生物物理特性)。所以希望将发音轨迹(或者说帧于帧之间的联系)做为一个特征合并到单帧得到的特征序列里(这样可以不破坏HMM结构)。这一添加的特征被称为动态系数(或者delta参数3800Hz使HMM25ms10msMFCC/PLPHMMHMMdelta\Delta y(t)$),可以按照如下的方式计算:
    Δy(t)=∑τ=dDτ(y(t+τ)−y(t−τ))2∑τ=dDτ2\Delta y(t)=\frac{\sum_{\tau=d}^D\tau(y(t+\tau)-y(t-\tau))}{2\sum_{\tau=d}^D\tau^2}Δy(t)=2τ=dDτ2τ=dDτ(y(t+τ)y(tτ))
    如果d=1d=1d=1,则可以计算得到线性回归动态delta参数。如果开始和结束帧的距离相等,如d=Dd=Dd=D,则反应不同的动态参数将回退到一个时间差的计算。如果把动态参数做为输入,则可以得到加速度Δ2\Delta^2Δ2
    对于小词汇量识别,可以为每个单词构建一个HMM模型。然而,对于大词汇量识别,通常采取的方法是将单词拆分成更小的识别单元,如(音节或者音素)。发音字典的作用就是将单词和其识别单元(音节或者音素)建立映射关系。基于单词的HMM识别系统将最小识别单元序列连接起来。
    .单音素模型:使用完整的音素集,而不考虑前后音素。然而随着前后音素的变化,当前音素的声学特征可以变化,也就是协同发音效应。
    三音素模型:对于前后音素,选择当前最有可能的音素。
    完整的三音素集非常大,并且训练数据也可能没有百分之百覆盖所有的三音素。为了获得好的模型参数估计,三音素之间需要尽可能使用相同的参数。最常用的方法是将在HMM状态层面上进行三音素之间合并(声学聚类)。三音素模型不能很好的处理训练语料不足的发音情况,这类情况的一种解决方法是使用音素决策树。

    声学模型和语言模型是分开训练的,训练集差异导致不匹配问题,
    W^=arg⁡max⁡W[αlog⁡P(W)+logp(YT∣W)−ϕNW]\hat W=\arg\max\limits_{W}[\alpha\log P(W)+logp(Y_T|W)-\phi N_W]W^=argWmax[αlogP(W)+logp(YTW)ϕNW]
    α\alphaα是语言模型缩放因子,ϕ\phiϕ是词嵌入惩罚因子,NWN_WNW是单词序列WWW中单词的个数。

    导谱均值归一化可以消除部分卷积噪声。提取噪声健壮性特性。
    语音补偿和增强技术包括谱减法,自适应噪声消除以及概率最优滤波器。

    语言模型的基本任务是估计一个每一个单词序列一个概率。∑w∈∑p(w)=1\sum_{w\in \sum }p(\mathbf w) =1wp(w)=1,在语音识别中影响词的选择,如:
    p(他喜欢吃苹果)>p(他喜欢痴苹果)p(他 喜欢 吃 苹果)\gt p(他 喜欢 痴 苹果)p()>p()
    语言模型的好坏估计使用perplexity。
    ##基于计数的N-元语法模型
    使用马尔科夫假设建模语音模型。

    • 只有之前的信息对当前的信息有影响
    • 只根据前K-1个单词推测当前单词
    • 这是一个k阶马尔科夫过程。
      对于2元语法模型:
      p(w1,w2,w3,...,wn)=p(w1)p(w2∣w1)p(w3∣w1,w2)×...×p(wn∣w1,w2,...,wn−1)≈p(w1)p(w2∣w1)p(w3∣w2)×...×p(wn∣wn−1)p(w_1,w_2,w_3,...,w_n)=p(w_1)p(w_2|w_1)p(w_3|w_1,w_2)×...×p(w_n|w_1,w_2,...,w_{n-1}) \approx p(w_1)p(w_2|w_1)p(w_3|w_2)×...×p(w_n|w_{n-1})p(w1,w2,w3,...,wn)=p(w1)p(w2w1)p(w3w1,w2)×...×p(wnw1,w2,...,wn1)p(w1)p(w2w1)p(w3w2)×...×p(wnwn1)
      对于3元语法模型的最大似然估计是:
      p(w3∣w1,w2)=count(w1,w2,w3)count(w1,w2)p(w_3|w_1,w_2)=\frac{count(w_1,w_2,w_3)}{count(w_1,w_2)}p(w3w1,w2)=count(w1,w2)count(w1,w2,w3)
      文本语料比较容易获得。由于可能存在统计语料不充分的情况,一个更好的平滑策略如下:
      p1(wn∣wn−2,wn−1)=λ3p(wn∣wn−2,wn−1)+λ2p(wn∣wn−1)+λ1p(wn)p_1(w_n|w_{n-2,w_{n-1}})=\lambda_3 p(w_n|w_{n-2,w_{n-1}})+\lambda_2p(w_n|w_{n-1})+\lambda_1p(w_n)p1(wnwn2,wn1)=λ3p(wnwn2,wn1)+λ2p(wnwn1)+λ1p(wn)
      其中λ3+λ2+λ1=1\lambda_3+\lambda_2+\lambda_1=1λ3+λ2+λ1=1

    优点:

    • 具有卓越可扩展性,训练的文本集可以可以包括万亿的单词
    • 测试时间固定且快
    • 复杂的平滑技术可以获得效果很好的语言模型

    缺点

    • N很大时将获得稀疏分布,难获取长时间依赖。
    • 单词之间的相似性无法获得,如cat-dog( word2vec)
      ##基于RNN的语法模型
      这里写图片描述
      展开后是:
      这里写图片描述
    展开全文
  • 语言模型 (1996) An Empirical Study of Smoothing Techniques for Language Modelling Performs an extensive survey of smoothing techniques in traditional language modelling systems. (2003) A Neural ...

    语言模型

    展开全文
  • 语言模型:Trigram-语言模型

    千次阅读 2018-05-22 12:09:12
    有很多种定义语言模型的方式,在这里我们将重点介绍一种特别重要的方式,即三元语言模型(Trigram language model)。这将是根据上一节中关于马尔科夫模型的最直接的一个应用。在这一部分中,我们将给出三元语言模型...

    作者:chen_h
    微信号 & QQ:862251340
    微信公众号:coderpai


    该系列将描述一些自然语言处理方面的技术,完整目录请点击这里


    有很多种定义语言模型的方式,在这里我们将重点介绍一种特别重要的方式,即三元语言模型(Trigram language model)。这将是根据上一节中关于马尔科夫模型的最直接的一个应用。在这一部分中,我们将给出三元语言模型的最基本定义,并且讨论三元模型的最大似然参数估计,并且讨论了三元模型的优势和劣势。

    1.1 基础定义

    在马尔科夫模型中,我们将每个句子构建成 n 个随机变量的序列 X1, X2,…,Xn。其中,长度 n 是可变的。并且,我们定义 Xn = STOP。在二阶马尔科夫模型下,任何序列 x1, x2, …, xn 的概率可以被表示为:

    其中,正如我们之前假设的 x(0) = x(-1)=*。

    我们假设对于任何的 i,和任何的 x(i-2),x(i-1),x(i)。

    其中,q(w | u,v) 是任何参数 (u, v, w) 的一个参数模型。接下来,我们很快就会学习到如何从语料库中学习中模型 q(w | u,v) 的参数估计,我们模型采用的具体形式是:

    该等式对于任何的序列 x1, x2, …, xn 对成立。

    那么,接下来我们就可以推出如下定义:

    定义 2(Trigram Language Model):一个三元语言模型包括一个有限集合 V,和一个参数 q(w | u, v) 。对于任何的三元 u, v, w,其中 w ∈ V ∪ {STOP}, 和 u, v ∈ V ∪ {*}。q(w | u,v) 的值可以理解为,在看到二元组 (u, v) 之后,看到单词 w 的概率是多少。对于任何的序列 x1, x2, …, xn,其中 xi ∈ V for i = 1 …(n − 1),并且 xn = STOP。那么,根据三元语言模型可以得出序列的概率为:

    其中 x(0) = x(-1) = *。

    举个例子,比如我们有一个句子:

    the dog barks STOP

    那么我们可以得到概率:

    p(the dog barks STOP)
    = q(the|*, *)×q(dog|*, the)×q(barks|the, dog)×q(STOP|dog, barks)

    请注意,在这个表达式中,我们对句子中的每个单词 (the, dog, barks, STOP) 都有一个独立的符号。并且三元语言模型假设:每个单词只取决于前两个单词。

    对于任何的三元组 (u, v, w) 都满足 q(w|u, v) ≥ 0。
    对于任何的二元组 (u, v) 都满足:

    因此,q(w | u,v) 是在已知语境 (u, v) 然后预测下一个词是 w 的分布概率。

    那么,现在的关键问题就是,我们如何去求得这个模型的概率分布。即 q(w | u, v)。

    其中,w 可以是集合 V ∪ {STOP} 中的任何值,u, v ∈ V ∪ {*}。那么,模型的参数量级将达到 |V|^3。这是一个非常大的值。比如,我们取 |V| = 10000,那么这个量级就将达到 |V|^3 ≈ 10^12。

    1.2 最大似然估计

    首先,我们从估计参数最通用的解决方案开始 —— 最大似然估计。我们将看到这些估计方法都有一个严重的缺陷,但是我们将讨论如何推导相关的参数估计,使得它能更好的在实际环境中工作。

    首先,我们需要定义一些符号。* c(u, v, w) * 表示三元组 (u, v, w) 在语料库中出现的次数。比如,* c(the, dog, barks) * 表示序列 * the dog barks * 在语料库中出现的次数。相似地,* c(u, v) * 表示二元组 (u, v) 在语料库中出现的次数。对于任何的词 w, u, v,我们可以定义如下:

    举个例子,如果我们要对 q(barks | the, dog) 进行估计,那么:

    这个估计是非常自然的:分子是三元组 the dog barks 出现的次数,分母是二元组 the dog 出现的次数。然后把这两个进行相除就行了。

    但不幸的是,这种参数估计的方法有一个非常严重的问题。设想一下,如果我们的模型中有很多的参数(比如,语料库的词汇大小是 10000,那么我们的参数规模将达到 10^12)。正因为这个原因,我们的很多计数都会变成 0。这将导致两个很严重的问题:

    • 由于分子会变成 0,那么很多的估计会 q(w|u, v) = 0。这将导致很多三元组的概率会等于 0 。但是一个在训练集中没有出现的三元组,在测试集中就把它的概率定义为 0,这显然是不合理的。

    • 还有一种更差的情况,如果分母 c(u, v) 等于,那么我们上式的定义将是无意义的。

    那么,如何修正这些问题将变成一个迫在眉睫的问题,具体的方法我们会在后续章节中给出。首先,我们需要讨论如何来评估一个语言模型的好坏。然后讨论三元语言模型的优缺点。

    1.3 语言模型评估指标:困惑度(Perplexity)

    那么,我们怎么来评估一个语言模型的好坏呢?一个非常常见的方法是评估模型在一些已知数据集上面的困惑度(Perplexity)。

    具体方法是这样的。假设,我们有一个测试数据集:

    每个测试样本 x^(i) for i ∈ {1 … m} 是由一个序列组成的,具体如下:

    其中,n(i) 表示第 i 个句子的长度。正如我们之前所假设的,句子的最后一个符号是一个特殊符号 STOP。

    这有一个非常重要的信息,那就是测试句子是不存在与训练集中的句子。从这个层面上来说,这个句子是新的句子,模型是从来没有看见过这些句子。

    对于任何的测试句子 x^(i),我们都能利用语言模型计算出它的概率 p(x^(i)) 。对语言模型质量的度量就是在整个测试句子中进行概率计算,即:

    从式子直观来看:如果最后的数值越大,那么该语言模型的建模效果越好。

    测试语料库的困惑度直接由这个数值来决定。我们定义 M 是语料库中所有词的数量。更准确地说,n(i) 表示第 i 个句子的长度。

    我们对模型的度量取对数操作,即:

    上式只是对整个测试语料库的概率取了对数。在这里,对于任何 z>0,我们采用 log2(z) 来进行表示,因为都是一个递增函数,所有这个值越大,那么语言模型的表现也就越好。

    接下来,我们来正式的定义困惑度(Perplexity),如下:

    其中,

    因此,我们对刚刚讨论的平均对数概率取了负值,并且将该值作为 2 的指数。困惑度将是一个正数。困惑度的值越小,语言模型的效果越好。

    一些对于困惑度的直观解释如下。假设我们有一个词库 V,其中 |V ∪ {STOP}| = N 。我们假设对词 w, u, v 进行预测,得到的概率都是:

    当然,这是一个非常差的模型,它把所有词的概率当做了一个均匀分布的概率来计算,包括 STOP 符号。在这种情况下,我们得到的困惑度将等于 N 。困惑度可以被认为是在该模型下,有效词汇的多少。例如,如果模型的困惑度是 123(尽管语料库中词汇数量为 10000),那么模型也认为具有有效的词汇数量是 123 个。

    为了更好的说明这个问题,我们来定义一些相关的符号 1/t ,其中

    也就是说, t 是一个几何平均数。比如,如果困惑度等于 100,那么几何平均数将是 0.01,即 t = 0.01。

    关于困惑度还有另一个有用的事实。如果测试集中对于任何的三元组 (u, v, w),我们有估计概率:

    那么,困惑度将达到无限大 ∞。请注意,在这种情况下,模型对测试语料库的预测概率都是 0,即平均对数概率将是负无穷大 −∞。因此,我们必须认真对待困惑度这个值,想尽任何办法把这个值趋近于 0 。

    最后,我们来计算一些典型模型的困惑度。比如,我们有一个词库,里面有 50000 个词。在二元语言模型中,我们有的参数形式是 q(w | v),即:

    因为,每个词只依赖于它前面一个词。在一元语言模型中,我们拥有的参数是 q(w),即:

    也就是说,在一元语言模型中,每个词都是独立的,不依赖于任何的词。那么,对于三元语言模型,困惑度是 74;对于二元语言模型,困惑度是 137;对于一元语言模型,困惑度是 955;如果我们采用最初介绍的均匀分布,即每一个词的预测概率是 1/50000,那么模型的困惑度将达到 50000 。所以,我们能很直观的看到,三元语言模型对于一元语言模型和二元语言模型都是一个巨大的进步。

    1.4 三元语言模型的优缺点

    • 高阶 n-gram 对更多的上下文敏感,但是数据拥有更多的稀疏性。
    • 低阶 n-gram 考虑非常有限的上下文信息,但是具有更强的鲁棒性。
    展开全文
  • 计算语言学之语言模型

    千次阅读 2017-04-12 15:55:09
    0. 写在前面这一章我们介绍语言模型。不过要说的是,这里的语言模型基本上是基于字词的,但是其思想也是要掌握的,如果以后到句子、段落、篇章的时候,这些思想都是十分有用的。1. 语言模型语言模型(LM)在自然语言...

    0. 写在前面

    这一章我们介绍语言模型。不过要说的是,这里的语言模型基本上是基于字词的,但是其思想也是要掌握的,如果以后到句子、段落、篇章的时候,这些思想都是十分有用的。

    1. 语言模型

    语言模型(LM)在自然语言处理中占有重要地位,而且像n元语法模型是一个简单但是比较有效的模型。只能说比较有效,但是想要提高到非常高的地步,还需要继续改进才行。

    1.1 n元语法

    我们正常人的思维,肯定是这样想的,一句话的每个单词,都会与之前所有出现的词相关,甚至是与后面出现的词也相关(双向RNN)。

    而一个语言模型通常构建为字符串s的概率分布p(s),这里p(s)试图反应的是字符串s作为一个句子出现的频率。对于一个由l个基元(基元就是基本单元,这里一般指字、词、短语,没有再大的了)构成的句子s=w1w2wl其概率计算公式可以表示为:

    p(s)=p(w1)p(w2|w1)p(w3|w1w2)p(wl|w1wl1)

    =i=1lp(wi|w1wi1)

    上面就是n元语法,它只考虑前n-1个词与当前词的关系,而且n的取值一般是1,2,3,…,7等这种比较小的数。之所以这样做,当然是为了简化计算,因为如果我们考虑的前n个词过多的话,那么我们的自由参数都是几何式增长,计算机一是训练不来,二是根本没有这么多语料可供我们使用。

    1.1.1 一元文法

    一元文法就是n=1,也就是只考虑当前词,这样的话,就相当于是统计词频了。没有什么太大价值。

    1.1.2 二元文法

    二元文法则是n=2,这就有价值了,我们称为是一阶马尔科夫链。因为有一个概率是我们能够看到的,但是会影响最终结果的:

    p(s)i=1lp(wi|wi1)

    p(wi|wi1)=c(wi1wi)wic(wi1wi)这时最大似然估计。

    如果是这样子,那么它就是这样一个样子,需要在头和尾分别添加一个开头标记和结尾标记w0wl的内容。

    1.1.3 三元文法

    三元文法则是n=3,这时平时用的比较多的,我们称为二阶马尔科夫链。同样的,它的样子我们也可以写出来:

    p(s)i=1lp(wi|wi1wi2)

    但有时候,如果数据太过稀疏的话,我们可能要考虑数据平滑了。
    或者说可以使用下面式子来近似:
    p(wi|wi1wi2)=q1f(wi|wi1wi2)+q2f(wi|wi1)+q3f(wi)

    其中q1+q2+q3=1,而且f(wi|wi1wi2)f(wi|wi1)f(wi)是通过训练语料得到的相对频率。

    1.2 语言模型评价

    评价一个语言模型的性能通常就是使用交叉熵或者困惑度来进行,
    一个n元文法,总结来讲,可以使用如下公式来统一:

    p(s)i=1l+1p(wi|wi1in+1)

    那么p(wi|wi1in+1)=p(wi|wi1)=c(wi1in+1)wic(wi1in+1)
    其中wic(wi1in+1)表示的是出现次数总和。

    那么对于句子(t1,t2,,tlT)构成的测试集T,可以通过T中所有句子的概率乘积来计算测试集的概率P(T)。
    那么交叉熵Hp(T)

    Hp(T)=1WTlog2p(T)

    这里的WT是以词为单位度量的文本T的长度。这一个式子可以作如下解释:
    利用与模型有关的压缩算法对数据集合中的W_T个词进行编码,每一个编码所需要的平均比特位数。

    而困惑度只需要是这样的:

    PPT(T)=2Hp(T)

    交叉熵和困惑度都是越小越好,一般的困惑度为50~1000之间。

    2. 数据平滑

    上面我们说过了N元文法最大的缺陷就是容易引起数据稀疏,也就是说,有可能一些情况的概率是0,那么解决办法就是数据平滑。我们这里简要介绍一下几种数据平滑方法。

    2.1 加法平滑

    加法平滑是非常常用而又特别简单的平滑方法,其重要含义,就是给所有的可能都增加一个基础概率,这个基础概率就是让每种可能均分那么一点概率。数学表达式如下:

    padd(wi|wi1in+1)=δ+c(wi1in+1)δ|V|+wic(wi1in+1)

    2.2 古德-图灵估计法

    上面的加法平滑,实际上是改变了已出现的概率情况,它把每个概率都减少了不同的值,但并没有按比例减少。下面这种古德——图灵估计法则是按比例减少已出现的概率,然后再均分给那些没有出现的概率的情况。

    2.3 Katz平滑方法(属于后备平滑)

    这种方法是当某一事件在样本中出现的概率大于k时,运用最大似然估计经过减值来估计其概率。当某一事件的频率小于k时,使用低阶的语法模型作为代替高阶语法模型的后备,然后再使用归一化来进行处理。

    2.4Jelinek-Mercer平滑方法

    这种方法,我们在上面也提过了,例如对于三元语法:

    p(wi|wi1wi2)=q1f(wi|wi1wi2)+q2f(wi|wi1)+q3f(wi)

    这样处理就是Jelinek-Mercer平滑方法。

    2.5 绝对减值法

    绝对减值法,就是对于已有概率的事件,减去相同的量,然后再把这匀出来的概率均分给未见的情况。

    2.6 Kneser-Ney平滑方法

    这种平滑方法是对于已有概率的事件,按比例减去不同的量,然后再把这匀出来的概率均分给未见的情况。

    3. 语言模型的自适应

    N元模型的缺点我们都十分明确,也就是它只考虑了与前n-1个词有关,但这显然和实际情况不符。

    为此,需要进行语言模型自适应,这里提供3种模型。

    3.1. 基于缓存的语言模型

    基于换粗你的语言模型的原理就是,之前出现过的词,再出现的概率会更大,这个编程过程中的“局部性原理”差不多。因此我们需要建立一个缓存区,记录下之前出现过的词语。因此模型就变成了这样:

    p(wi|wi11)=λpcache(wi|wi11)+λpngram(wi|wi11)

    λ可以通过EM算法求得。
    pcache(wi|wi11)=1kj=iki1I(wj=wi)

    但同样的,未考虑缓存区内的顺序,因此有改进:

    pcache(wi|wi11)=1kβj=iki1I(wj=wi)eα(i1)

    其中α为衰减率,β为归一化常数
    当然,还有其他改进模型,我就不一一举例。

    3.2. 基于混合的语言模型

    基于混合的语言模型是为了解决可能训练语料不是同源的,但是为了保证测试效果比较好而做出的这种办法。
    它的想法是,对于每一个来源相同的子语料Si,训练处不同的子模型Mi,然后通过求和得出最终模型:

    p(wi|wi11)=j1nλjpMj(wi|wi11)

    其中:j1nλj=1这个可以通过EM算法,使得困惑度最低。

    3.3. 基于最大熵的语言模型

    基于最大熵的语言模型则是通过一组不同约束的模型,从中选择熵最大的模型。
    例如可以是距离为1的标准二元模型,或者是距离为2的二元模型。然后再通过线性插值,使用后备方法进行数据平滑。

    4. 小结

    事实上,在网上关于这方面的描述还是很少的。大多集中于科研论文中。因此难度还是挺大的。可能只有专攻计算语言学的,才会细致的研究这方面内容吧。

    展开全文
  • 自然语言处理之语言模型(LM)

    万次阅读 多人点赞 2018-04-29 17:06:02
    经过几天对nlp的理解,接下来我们说说语言模型,下面还是以PPT方式给出。一、统计语言模型1、什么是统计语言模型?一个语言模型通常构建为字符串s的概率分布p(s),这里的p(s)实际上反映的是s作为一个句子出现的概率...
  • 经典统计语言模型

    万次阅读 2015-06-01 23:11:24
    本文介绍三个经典统计语言模型, HAL,LSA, 与COALS.
  • 语言模型论文列表及其笔记

    万次阅读 2019-12-13 11:58:26
    Language Model 2017-11 Bengio et al. - 2003 - A neural probabilistic language model [pdf] Press and Wolf - 2016 - Using the output embedding to improve language model [pdf] 2019-02 ...
  • 语言模型简介

    千次阅读 2018-05-17 19:18:40
    语言模型 语言模型可以对一段文本的概率进行估计,对信息检索,机器翻译,语音识别等任务有着重要的作用。语言模型分为统计语言模型和神经网络语言模型。下面一次介绍着两类语言模型。 统计语言模型 要判断一段...
  • NLP常见语言模型总结

    千次阅读 2019-01-19 10:35:19
    3、N-gram语言模型 二、词的分布式表示(Distributed Representation) 1、共现矩阵(Co-currence Matrix) 2、神经网络语言模型(Neural Network Language Model,NNLM) 3、Word2Vec,G...
  • 简单理解语言模型 语言模型简单介绍 语言模型:为单词序列分配概率的模型。即对于单词序列w1, w2, w3,..., wn,计算P(w1, w2, w3,..., wn)的模型就是语言模型语言模型作用:对于一句话中的词序列,它判断这一句...
  • 图解N-gram语言模型的原理--以kenlm为例

    万次阅读 多人点赞 2018-08-29 14:34:24
    详细介绍基于N-gram语言模型的原理–从kenlm的源码说起 常用的N-gram训练工具有SRILM、IRSTLM、BerkeleyLM和KenLM等。这几种工具所 用的算法思想基本一致,只是在实现细节上有所不同,所以我们只需理解其中一个训 ...
  • 词向量:语言模型

    千次阅读 2017-12-07 21:44:55
    一、统计语言模型 1、什么是统计语言模型? 一个语言模型通常构建为字符串s的概率分布p(s),这里的p(s)实际上反映的是s作为一个句子出现的概率。 这里的概率指的是组成字符串的这个组合,在训练语料中出现的似然,与...
  • 1. n-grams统计语言模型研究的是一个单词序列出现的概率分布(probability distribution)。例如对于英语,全体英文单词构成整个状态空间(state space)。 边缘概率分布 p(Xt=k)p(X_t=k) 称为 unigram; 使用一阶...
  • 语言模型:马尔可夫模型

    千次阅读 2018-05-22 12:08:26
    这个教程,我们将要讨论语言模型的关键问题:给定一个语料库,我们如何学习到概率 p? 在这一部分,我们将利用马尔科夫模型来解决这个问题。 1.1 马尔科夫模型对于确定长度的序列问题 考虑一个随机变量序列,X1, ...
  • BERT语言模型

    千次阅读 2019-07-18 17:31:54
    模型架构图如下: transformer的结构由encoder编码和decoder解码组成。 1.1 Encoder Encoder组件部分由一堆Layer(可以理解为编码器)构成(论文中是将6个Layer叠在一起)。Decoder解码组件部分也是由相同数量...
  • 统计语言模型

    千次阅读 2016-05-09 10:56:50
    (一)简介 1.词向量传统表示: (1)One-hot Representation; (2)存在稀疏以及维度灾难的问题; (3)根据词向量无法判断词之间的相关性; 2.词向量近期表示: (1)Distributed representation;...
  • Lua语言模型 与 Redis应用

    万次阅读 2016-10-01 10:01:46
    本篇博客主要介绍了 Lua 语言不一样的设计模型(相比于Java/C/C++、JS、PHP), 以及 Redis 对 Lua 的扩展, 最后结合 Lua 与 Redis 实现了一个支持过期时间的分布式锁. 我们希望这篇博客的读者朋友可以在读完这篇文字...
  • 生成语言模型

    千次阅读 2018-05-11 10:17:09
    这里主要介绍我使用过的两种根据文本生成语言模型的两种方法1. 通过网站: Sphinx 上传文件,生成对应的语言模型,需要注意的是文件最好不要太大,网站容易报504错误,贴下图吧,傻瓜式的操作方式:2. 使用SRILM ...
  • 语言模型评估

    千次阅读 2018-05-09 10:27:32
    转自:http://www.cnblogs.com/rocketfan/p/4917588.html说明:自己在看代码的时候,计算Perplexity的时候,都是通过交叉熵损失函数求指数得来的,一直很困惑,交叉熵不是用来衡量两个分布的差异程度,而Perplexity...
  • 有一些多语言模型可用,并且与单语言模型具有不同的机制。本页详细介绍了这些模型的用法。 当前支持多种语言的两个模型是BERT和XLM。 XLM XLM共有10个不同的checkpoints,其中只有一个是单语言的。剩下的9个模型...
  • 2018 阿里 声学模型 语言模型

    千次阅读 2019-02-27 09:53:36
    本文将挑选阿里云语音识别技术中的一些模型端技术进行简要介绍。 鄢志杰,阿里云资深算法专家,人机交互首席科学家。研究领域主要包括语音识别、语音合成、说话人识别验证、OCR/手写识别、机器学习算法等...
  • 关于kenlm工具训练统计语言模型

    千次阅读 2018-11-19 10:19:41
    统计语言模型工具有比较多的选择,目前使用比较好的有srilm及kenlm,其中kenlm比srilm晚出来,训练速度也更快,而且支持单机大数据的训练。现在介绍一下kenlm的使用方法。 特征 “语言行业最大的改进是增加了新的...
  • N-gram语言模型 N-gram是一种语言模型(Language model,这个后面讲),是一种概率模型。这个模型输入的是一个句子,输出的是一个概率(看完就懂这个是什么概率了)。 I love deep learning中如果给出l love ( ) ...

空空如也

1 2 3 4 5 ... 20
收藏数 48,233
精华内容 19,293
关键字:

语言模型