精华内容
下载资源
问答
  • 语言模型
    千次阅读
    2022-01-20 21:17:45

    数据准备流程是为了整理数据,生成指定的文件或者是变成指定的格式,方便kaldi后面的语言模型训练,数据准备流程
    1、 处理集外词,将分词后的预料库data/local/train/text中的文件索引全部替换成<SPOKEN_NOISE>,在生成语言模型时,如果计数文件中或者训练文件总出现了词典之外的词(OOV)将被替换成<SPOKEN_NOISE>,然后将 <SPOKEN_NOISE>作为正常词进行统计,这么做的好处是给大量OOV分配概率,使得相比于以前频数稀少的精确词,使用<SPOKEN_NOISE>增大计算概率,也起到了一定的泛化效果,会降低perplexity值,使得模型效果变好
    2、 为方便kalid统计词频,给所有word加上,<SPOKEN_NOISE>(分别代表 句首,句尾,集外词)设置索引,生成索引文件word_map,并且将训练语料data/local/train/text中的每个word按照索引映射成word_map的指定项,生成train.gz文件,后续语言模型依据train.gz文件统计各ngram出现的频率
    3、 结合发音词典和语料库,统计每个word出现的频次并且按照出现次数的多少排序,生成unigram.counts文件,该文件的目的主要是在后续模型回退阶段,回退至unigram时,为unigram赋概率值,具体计算:count(unigram)/vocabulary_size。

    更多相关内容
  • 从传统的语言模型到统计语言模型,深入了解n-gram语言模型的原理、计算方法、优缺点等。

    作为NLP的基础知识,语言模型可能是我们最早接触的知识点之一了,那么语言模型到底是什么呢?在看过一些文章之后我最后形成了我自己的理解:语言模型就是计算词序列(可以是短语、句子、段落)概率分布的一种模型,它的输入是文本句子,输出是该句子的概率,这个概率表明了这句话的合理程度,即这句话符合人类语言规则的程度。

    或者我们可以这么理解:传统的语言模型是基于词袋模型(Bag-of-Words)和one-hot编码展开工作的,即在传统的语言模型中要生成一个句子,其实是拿一堆词语进行拼凑,拼凑出一个句子后我们需要有一个评委来对这个机器生成的句子进行打分和评价,语言模型就是这么一位评委,它会给每个句子打出一个概率值,以表明他们与人类语言的接近程度。

    比如,词袋中有这么几个词:

    “小明”,‘’牛奶,”桌上”,“打翻”,“了“,”的”

    如果是我们人类来造句,可能结果是:

    “小明打翻了桌上的牛奶“

    那么机器也造了两个句子:

    “小明打翻了桌上的牛奶“

    ”小明牛奶打翻的桌上了“

    那么语言模型就要出来了,它出来给机器造的两个句子进行打分,理想的状态是给第一个句子打一个高的分数(比如所得的概率值是0.8),给第二个句子打一个较低的分数(概率值0.2),这就是语言模型要做的事。即从数学上讲,语言模型是一个概率分布模型,目标是评估语言中任意一个字符串的生成概率p(S),其中S=(w1,w2,w3,…,wn),它可以表示一个短语、句子、段落或文档,wi取自词表集合W。利用条件概率及链式法则我们可以将p(S)表示为:

    image-20200907234359156

    即一个句子生成可以理解为由m个单词共同出现组成,而这些单词又可以看成是词序列中的一员,第i个单词的出现依赖于它的前i-1个词出现的概率。

    这样的方法看似已经可以了,但是会至少有以下两个问题:

    1.参数量巨大,难以计算。

    2.每一部分的概率怎么求得?

    带着这两个问题我们来看由上面最原始的语言模型演化出来的统计语言模型——N-gram语言模型。

    统计语言模型-N-gram语言模型

    什么是N-gram

    上面的公式中,某一个词出现的概率与它前面所有词出现的概率有关,数据稀疏问题会导致计算量可能会巨大,而N-gram模型引入了马尔科夫假设,这是一种独立性假设,在这里说的是某一个词语出现的概率只由其前面的n−1个词语所决定,这被称为n元语言模型 ,即n-gram,当n=2时,相应的语言模型就被称为是二元模型

    这样之前的统计语言模型在简化成N-gram语言模型之后就可以表示为:

    image-20200908075832685

    Bi-gram(N =2):

    image-20200908083930893

    再如Tri-gram(N =3):

    image-20200908083958114

    我们很少考虑N>3的N-gram。

    举个例子:

    我现在想预测出一个完整句子 “我要去吃冰激凌” ,按照之前的统计模型,我们可以得出概率:

    p(我要去吃冰激凌)=p(冰激凌|我要去吃)p(吃|我要去)p(要去|我)p(我)

    而若我们基于Bi-gram模型:

    p(冰激凌|我要去吃)=p(冰激凌|吃)

    整个句子出现的概率:

    p(我要去吃冰激凌)=p(冰激凌|吃)p(吃|要去)p(要去|我)p(我)

    如何计算N-gram中的条件概率

    那么,如何计算其中的每一项条件概率 p ( w n ∣ w n − 1 ⋯ w 2 w 1 ) p(w_{n}∣w_{n−1}⋯w_{2}w_{1}) p(wnwn1w2w1)呢?答案是极大似然估计(Maximum Likelihood Estimation,MLE),根据大数定理,当样本数量足够大时,我们可以近似地用频率来代替概率,在这里我们就是要求我们的语料库要比较大,然后概率用数频数的方法来计算:

    image-20200908085028079

    下面我们通过一个N-gram Language Models文章中的小例子来说明上述公式的计算过程:

    我们使用的一个三句话的微型语料库,且我们需要在这三句话的前后分别加上开始符<s>和结束符</s>,接下来我们来看语料:

    <s> I am Sam </s>
    <s> Sam I am </s>
    <s> I do not like green eggs and ham </s>
    

    利用Bi-gram计算各个概率值:

    image-20200909075426936

    这样我们就完成了Bi-gram各个概率值的计算,整个句子的概率就是挑选出对应的概率相乘即可。这里需要说明一下为什么要在句子前后分别加上开始符<s>和结束符</s>

    目的是为了让以某一词为条件的所有概率加起来是1,从而保证这确实是一个合法的概率分布。

    例如,对于上面的语料: p(I|sam)+p(</s>|sam)=1/2+1/2=1

    OOV与平滑/回退

    在上面的计算过程过会有一个很严重的问题,那就是当我们的语料库有限,大概率会在实际预测的时候遇到我们没见过的词或短语,这就是未登录词(OOV),这样就会造成概率计算的公式中,分子或分母为0,毕竟它们都只是频率。分子为0的话,整个句子的概率是连乘出来的结果是0;分母是0的话,数学上就根本没法计算了,这样的问题我们该怎么解决呢?

    方法有几种:

    平滑(smoothing):为每个w对应的Count增加一个很小的值,目的是使所有的 N-gram 概率之和为 1、使所有的 N-gram 概率都不为 0。常见平滑方法:

    Laplace Smoothing

    Add-one:即强制让所有的n-gram至少出现一次,只需要在分子和分母上分别做加法即可。这个方法的弊端是,大部分n-gram都是没有出现过的,很容易为他们分配过多的概率空间。

    image-20200911173908849

    Add-K:在Add-one的基础上做了一点小改动,原本是加1,现在加上一个小于1的常数K。但是缺点是这个常数仍然需要人工确定,对于不同的语料库K可能不同。

    image-20200911173944638

    另外还有其他平滑方法:

    • Good-Turing smoothing
    • Jelinek-Mercer smoothing (interpolation)
    • Catz smoothing
    • Witten-Bell smoothing
    • Absolute discounting
    • Kneser-Ney smoothing

    回退(Katz backoff):从N-gram回退到(N-1)-gram,例如Count(the,dog)~=Count(dog)。具体该方法也有公式计算,这里不再赘述,重点在掌握思想。

    n-gram的优缺点

    总结下基于统计的 n-gram 语言模型的优缺点:

    优点:

    • 采用极大似然估计,参数易训练;
    • 完全包含了前 n-1 个词的全部信息;
    • 可解释性强,直观易理解。

    缺点:

    • 缺乏长期依赖,只能建模到前 n-1 个词;
    • 随着 n 的增大,参数空间呈指数增长;
    • 数据稀疏,难免会出现OOV的问题;
    • 单纯的基于统计频次,泛化能力差。

    写在最后

    基于n-gram的不足,人们开始尝试用神经网络来建立语言模型,下一篇笔记,我们一起回顾一下基本的前馈神经网络语言模型,以及对应延申出来的循环神经网络语言模型。


    加油,不积跬步无以至千里!


    参考文章:

    nlp中的传统语言模型与神经语言模型

    Deep Learning in NLP (一)词向量和语言模型

    NLP进化史系列之语言模型

    N-gram Language Models

    语言模型

    自然语言处理NLP中的N-gram模型

    展开全文
  • 预训练语言模型(四):ELMo模型

    千次阅读 2022-02-02 10:07:52
    预训练语言模型的前世今生 - 从Word Embedding到BERT ELMo也参考了这个: 【NLP-13】ELMo模型(Embeddings from Language Models) 这里提出的一个新的问题是:Word2Vec通过大规模语料对每个单词训练出固定词向量,...

    参考一个很全的总结:
    预训练语言模型的前世今生 - 从Word Embedding到BERT
    ELMo也参考了这个:
    【NLP-13】ELMo模型(Embeddings from Language Models)

    这里提出的一个新的问题是:Word2Vec通过大规模语料对每个单词训练出固定词向量,但没有办法解决多义词的问题,ELMo就是为了这个任务而诞生的。它的核心是给予了每个token一个Word Embedding,即每个句子中样貌相同的词汇也会有不同的Embedding。
    这里其实就用到了迁移学习的思想,使用了在大规模语料库上训练好的Word Embedding,输入ELMo模型中进行Fine-Tuning,这里ELMo模型的训练数据是去除标签的,可以根据上下文信息学习到当前语境下的Word Embedding。

    ELMo模型

    模型结构

    使用了双向LSTM,根据上下文预测单词。
    ELMo采用了两阶段过程:
    第一个阶段是使用语言模型进行预训练
    第二个阶段是在下游应用时,从预训练网络中提取对应单词网络歌城的Word Embedding作为新特征补充到下游任务中。
    训练好这个网络之后,每输入一个新的句子都能得到三个Embedding:

    1. 单词的Word Embedding;
    2. 第一层双向LSTM,包含更多的句法信息;
    3. 第二层双向LSTM,包含更多的语义信息。

    下游应用:

    这样对于下游任务:

    1. 将句子 X X X 输入ELMo网络中,这样句子 X X X 中每个单词在ELMo网络中都能获得对应的三个Embedding;
    2. 之后赋予每个Embedding一个权重a,这个权重可以由学习得来,根据权重求和之后将三个Embedding整合为一个;
    3. 将整合后的Embedding作为相应的单词输入,作为新特征给下游任务使用;

    这一类的训练方法也叫作“Feature-based Pre-Training”。

    公式

    前向表示:
    p ( t 1 , t 2 , … , t N ) = ∏ k = 1 N p ( t k ∣ t 1 , t 2 , … , t k − 1 ) p(t_1,t_2,…,t_N)=\prod_{k=1}^Np(t_k|t_1,t_2,…,t_{k-1}) p(t1,t2,,tN)=k=1Np(tkt1,t2,,tk1)
    后向表示:
    p ( t 1 , t 2 , … , t N ) = ∏ k = 1 N p ( t k ∣ t k + 1 , t k + 2 , … , t N ) p(t_1,t_2,…,t_N)=\prod_{k=1}^Np(t_k|t_{k+1},t_{k+2},…,t_{N}) p(t1,t2,,tN)=k=1Np(tktk+1,tk+2,,tN)
    biLM训练目标是最大化对数似然:
    ∑ k = 1 N ( log ⁡ p ( t k ∣ t 1 , … , t k − 1 , Θ x , Θ → L S T M , Θ s ) + log ⁡ p ( t k ∣ t k + 1 , t k + 2 , … , t N , Θ x , Θ ← L S T M , Θ s ) ) \sum_{k=1}^N(\log p(t_k|t_1,…,t_{k-1},\Theta_x,\overrightarrow\Theta_{LSTM},\Theta_s)+\log p(t_k|t_{k+1},t_{k+2},…,t_{N},\Theta_x,\overleftarrow\Theta_{LSTM},\Theta_s)) k=1N(logp(tkt1,,tk1,Θx,Θ LSTM,Θs)+logp(tktk+1,tk+2,,tN,Θx,Θ LSTM,Θs))
    由于ELMo模型使每一层的向量都使用,因此通过一个L层的网络会产生2L+1个表征(每一层双向两个向量,初始输入一个向量,共有3个)
    R k = { x k L M , h → k , j L M , h ← k , j L M ∣ j = 1 , … , L } = { h k , j L M ∣ j = 0 , … , L } \begin{aligned} R_k&=\{\mathbf x^{LM}_k,\overrightarrow h^{LM}_{k,j},\overleftarrow h^{LM}_{k,j} |j=1,…,L \}\\ &=\{\mathbf{h}^{LM}_{k,j} |j=0,…,L \} \end{aligned} Rk={xkLM,h k,jLM,h k,jLMj=1,,L}={hk,jLMj=0,,L}
    k表示单词位置,j表示所在层,j=0表示输入层,所以上式中的 x k L M = h k , j L M \mathbf x^{LM}_k=\mathbf{h}^{LM}_{k,j} xkLM=hk,jLM
    下游任务会将 R k R_k Rk 压缩为一个向量:
    E L M o k t a s k = E ( R k ; Θ t a s k ) = γ t a s k ∑ j = 0 L s j t a s k h k , j L M \begin{aligned} ELMo^{task}_k &=E(R_k;\Theta^{task})\\ &=\gamma^{task}\sum_{j=0}^Ls_j^{task}\mathbf{h}^{LM}_{k,j} \end{aligned} ELMoktask=E(Rk;Θtask)=γtaskj=0Lsjtaskhk,jLM
    其中 s j t a s k s_j^{task} sjtask 是softmax标准化权重, γ t a s k \gamma^{task} γtask 是缩放系数,允许任务模型缩放整个ELMo向量。

    这样通过不同表征的权重分配,就可以实现通过上下文区分多义词了。

    展开全文
  • 语言有哪些基本特征: syntactic or semantic features of the language universal language representations (through large corpus) 特征的表示方法: Distributed Representation 发展史: 模型发展简史 Non-...

    本系列文章是笔者以邱锡鹏老师《Pre-trained Models for Natural Language Processing: A Survey》为主要参考材料所做的关于“预训练语言模型综述”的记录,所涉及之素材也包括其他相关综述与未被纳入此综述的工作,分享出来与大家交流讨论。此篇为系列第一篇,记录预训练语言模型及其历史。

    第二、三篇跳转可阅:

    预训练语言模型综述(二)—— 预训练任务及训练策略
    预训练语言模型综述(三)—— 预训练语言模型的实际使用

    补充知识

    1. 一个好的语言模型应该可以从语料中:

      (1)捕获语言的特征(linguistic features),包括但不限于
      语义特征(semantic features):词与句子的语义
      句法1特征(syntactic features):即句子的结构组织以及句子中词语次之间的依赖关系。
      (2)反映语言现象:
      一词多义(polysemy), 指代(anaphora), 语用学(pragmatics,现多指言外之意)等。

    1. 词的表示方法(Word Representations/Word Embeddings)
      把文本向量化通常是自然语言处理的第一步。词的向量表示有最简单的One-hot Representation,以及用低维度稠密向量表示的Distributed Representation2

    NLP方法/模型发展简史

    1. 非神经网络方法

    非神经网络方法通常依赖于离散的人工特征,应用起来也比较困难。

    2. 早期神经网络模型

    早期神经网络模型多使用RNN、CNN等神经网络,同时网络也较浅。主要原因是缺少针对各种NLP任务的大规模数据集,模型如果过深极易引起过拟合,在实际使用中难以确保泛化能力。

    3. 第一代预训练语言模型

    第一代预训练语言模型学习Non-contextual(static) word embeddings,即与上下文无关的、静态的词向量。第一代预训练语言模型的做法是把词汇表中的每一个词汇映射到一个lookup table中,训练过程就是得到这个lookup table的过程。得到这个lookup table后,把每个词的One-hot乘以lookup table就得到这个词的词向量了。

    第一代预训练语言模型有两个明显的缺陷,一是无法处理一词多义等语言现象,因为它没有把词与词的上下文联系起来;二是OOV(Out of Vocabulary)问题,如果有些词没有在训练数据中出现过,那么通过lookup table中也无法得到它的词向量,为了解决OOV问题,我们可以把词进一步分割,变成字符等形式3,这样就可以一定程度上解决OOV问题了。

    第一代预训练语言模型相对于第二代预训练语言模型还是比较浅的。两个经典结构是Continuous Bag-of-Words(CBOW)和Skip-Gram(SG),最典型的实现就是word2vec。还有一个经典结构是GloVe,也被广泛用于获取词向量。
    推广开来,同时期还有不少工作研究句向量、段向量乃至篇章向量(如Skip-thought vectors,Paragraph vector,Context2Vec等)。将这些工作也归类为第一代预训练语言模型的原因是他们也是把输入映射为固定维度的向量表示。

    4. 第二代预训练语言模型

    第二代预训练语言模型学习contextual(dynamical) word embeddings,即与上下文相关的、动态的词向量。

    第二代预训练语言模型的重要代表是ElMo(Embeddings from Language Models)、OpenAI GPT (Generative Pre-training) 和BERT(Bidirectional Encoder Representation from Transformer) 。

    得益于更强的算力、深度模型的发展、NLP预训练任务的设计、大规模训练语料的利用、各种训练技巧的出现,第二代预训练语言模型蓬勃发展、越来越强大。

    第一代与第二代预训练语言模型

    5. 扩展的预训练语言模型

    随着预训练语言模型的发展,研究人员已经不再满足于使用简单范式和简单语料训练预训练语言模型,由此催生了一系列扩展的预训练语言模型。其中包括:知识增强(Knowledge-Enriched)的预训练模型、多语言/跨语言(Multilingual)的预训练模型、针对特定语言(Language-Specific)的预训练模型、多模态(Multi-Modal,包括视频-文本、图像-文本、声音-文本等)的预训练模型、针对特定领域(Domain-Specific)的预训练模型、针对特定任务(Task-Specific)的预训练模型等。此外,还有一些预训练模型是在大型预训练模型上做出一些修改/压缩等操作所得的,包括修剪、量化、参数共享、蒸馏、模块替换等,这其中也涉及到如何应用预训练语言模型的问题,在讲到预训练模型的应用是还会进一步介绍。下图是邱老师综述中关于扩展的预训练模型及相关工作的归纳:

    扩展的预训练语言模型

    NLP深度神经网络的发展


    当前,NLP任务通用的神经网络架构如图1所示(其实就是第二代预训练语言模型的架构)。
    邱老师的文章把Neural Contextual Encoders分为了两类。
    一类是Sequence Models,此类模型是按序列顺序来获取词的上下文(包括CNN模型和RNN模型(LSTM和GRU)),无法很好地处理长期依赖(Long-term dependency)。
    另一类是Graph-based Models,此类模型按预定义的树形或图结构(如句法结构、语义联系)建立词与上下文的联系,但是如何建立好的此类结构是比较困难的。因此,全连接与自注意力在强大算力的加持下就提供了一个更为直接的方法:可以建立全连接图然后让模型学习两个词之间的联系。

    Contextual EncodersNN TypesReferences
    Sequence ModelsCNN[1]Y. Kim, “Convolutional Neural Networks for Sentence Classification,” in Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), Doha, Qatar, Oct. 2014, pp. 1746–1751, doi: 10.3115/v1/D14-1181.
    LSTM[1]A. M. Dai and Q. V. Le, “Semi-supervised Sequence Learning,” arXiv:1511.01432 [cs], Nov. 2015, Accessed: May 17, 2020. [Online]. Available: http://arxiv.org/abs/1511.01432.
    [2]P. Liu, X. Qiu, and X. Huang, “Recurrent Neural Network for Text Classification with Multi-Task Learning,” p. 7.
    GRU[1]R. Kadlec, M. Schmid, O. Bajgar, and J. Kleindienst, “Text Understanding with the Attention Sum Reader Network,” arXiv:1603.01547 [cs], Jun. 2016, Accessed: May 17, 2020. [Online]. Available: http://arxiv.org/abs/1603.01547.
    [2]L. Li, M. Huang, Y. Liu, S. Qian, and X. He, “Contextual label sensitive gated network for biomedical event trigger extraction,” Journal of Biomedical Informatics, vol. 95, p. 103221, Jul. 2019, doi: 10.1016/j.jbi.2019.103221.
    Graph-based ModelsRecursive NN[1]R. Socher et al., “Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank,” in Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing, Seattle, Washington, USA, Oct. 2013, pp. 1631–1642, Accessed: May 17, 2020. [Online]. Available: https://www.aclweb.org/anthology/D13-1170.
    TreeLSTM[1]K. S. Tai, R. Socher, and C. D. Manning, “Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks,” in Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing (Volume 1: Long Papers), Beijing, China, Jul. 2015, pp. 1556–1566, doi: 10.3115/v1/P15-1150.
    [2]X. Zhu, P. Sobhani, and H. Guo, “Long short-term memory over recursive structures,” in Proceedings of the 32nd International Conference on International Conference on Machine Learning - Volume 37, Lille, France, Jul. 2015, pp. 1604–1612, Accessed: May 16, 2020. [Online].
    GCN[1]T. N. Kipf and M. Welling, “Semi-Supervised Classification with Graph Convolutional Networks,” arXiv:1609.02907 [cs, stat], Feb. 2017, Accessed: May 17, 2020. [Online]. Available: http://arxiv.org/abs/1609.02907.

    [1] https://www.zhihu.com/question/31370551?sort=created
    [2] Z. S. Harris, “Distributional Structure,” WORD, vol. 10, no. 2–3, pp. 146–162, Aug. 1954, doi: 10.1080/00437956.1954.11659520.


    1. 容易混淆的概念有语法与词法,词法是分析词与词的变形,即形态学(morphology);而语法是一个更完整的概念,包括音韵学(phonology)、形态学(morphology)与造句法(syntax)[1]。 ↩︎

    2. Distributed Representation与Distributional Representation容易混淆。通常认为,Distributed Representation是与Local Representation(One-hot Representation就属于Local Representation)相对的,用到低维稠密向量来表示词的语义,单独的维度是不表达什么含义的,只有整个向量表达出含义;而One-hot Representation则是高维稀疏向量来表示词的语义,只有一个维度表示含义。而Distributional Representation的理论基础则是Harris在1954年提出的分布假说(Distributional Hypothesis)[2],即上下文相似的词,其语义也相近。所以说凡是用到上下文的Representation都可以称为Distributional Representation,如传统的基于计数的词向量、Word2Vec以及contextualized word vector都属于Distributional Representation。 ↩︎

    3. 代表工作有CharCNN、FastText和Byte-Pair Encoding (BPE)等。 ↩︎

    展开全文
  • 1 语言模型 循环神经网络模型可以对序列片段进行学习,找到样本间的顺序特征。这个特性非常适合运用在语言处理方向。 1.1 语言模型简介 语言模型包括文法语言模型和统计语言模型,一般指统计语言模型。 1.1.1 ...
  • —人工智能的大语言模型(LLMs)的简介、发展以及未来趋势 目录 人工智能的大语言模型(LLMs)—AI下一代浪潮?Bigger is better?大力出奇迹? 2017年以来,大规模语言模型发展史 单体模型VS混合模型 大模型的意义...
  • RNNLM,循环神经网络的基本结构与训练过程、优缺点;语言模型的评价指标说明。
  • 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...
  •   新冠凸显了全球科学家面临的一个长期问题:我们如何与最新的科学知识保持同步?自病情发生以来的短短几...在大数据和精密医学时代,推进自然语言处理发展的紧迫性比以往任何时候都高,NLP可以帮助研究人员快速识别
  • 语言模型(language model)

    千次阅读 2019-11-18 17:26:34
    一、统计语言模型 1、什么是统计语言模型? 统计语言模型是一个单词序列上的概率分布,对于一个给定长度为m的序列,它可以为整个序列产生一个概率 P(w_1,w_2,…,w_m) 。其实就是想办法找到一个概率分布,它可以...
  • 大多数现代的NLP系统都...屏蔽语言模型解释 在屏蔽语言建模中,我们通常屏蔽给定句子中特定百分比的单词,模型期望基于该句子中的其他单词预测这些被屏蔽的单词。这样的训练方案使这个模型在本质上是双向的,因为掩蔽词
  • NLP之语言模型

    万次阅读 2018-09-16 21:41:56
    语言模型(language model, LM)在自然语言处理中占有重要的地位,尤其在基于统计模型的语音识别、机器翻译、汉语自动分词和句法分析等相关研究中得到了广泛应用。目前主要采用的是n元语法模型(n-gram model),...
  • 讲讲语言模型和中文分词

    千次阅读 2018-07-09 11:51:24
    一、语言模型无论什么做自然语言处理的工具,都是基于计算机程序实现的,而计算机承担了数学计算的职责,那么自然语言和数学之间的联系就是语言模型,只有理解语言模型才能理解各种工具的实现原理,本节让我们深究...
  • 语言模型效果好坏的常用评价指标是perplexity,简单说,perplexity值刻画的是语言模型预测一个语言样本的能力。在一个测试集上得到的perplexity值越低,说明建模效果越好。计算公式如下: 其中,为word数量 在...
  • 语言模型:Trigram-语言模型

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

    千次阅读 2019-10-09 11:14:01
    进入正文一、什么是语言模型什么是语言模型相关背景与认知1.1 对于自然语言相关的问题,比如机器翻译,最重要的问题就是文本的序列时候不是符合我们人类的使用习惯,语...
  • 理解GPT-3: OpenAI最新的语言模型

    千次阅读 2020-09-02 08:26:33
    这一切都始于OpenAl研究人员发表的论文《Language Models are few Shot Learners》,该论文介绍了GPT-3系列模型。 GPT-3的规模和语言能力是惊人的,它可以虚构、开发程序代码、编写深思熟虑的商业备忘录、总结文本...
  • 语言模型简介

    万次阅读 2018-05-17 19:18:40
    语言模型 语言模型可以对一段文本的概率进行估计,对信息检索,机器翻译,语音识别等任务有着重要的作用。语言模型分为统计语言模型和神经网络语言模型。下面一次介绍着两类语言模型。 统计语言模型 要判断一段...
  • 统计语言模型:自然语言从它产生开始,逐渐演变成一种上下文相关的信息表达和传递方式。因此让计算机处理自然语言,一个基本问题就是为自然语言这种上下文相关的特性建立数学模型,这个数学模型就是在自然语言处理...
  • 生成语言模型

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

    千次阅读 多人点赞 2019-04-06 22:54:34
    如果你曾经使用Siri、Google Assistant、Alexa、Google翻译,甚至智能手机键盘进行下一词预测,那么你很有可能从这个已经成为自然语言处理模型核心的想法中受益。 在过去的几十年中,嵌入技术用于神经网络模型已有...
  • 语音识别语言模型介绍

    千次阅读 2020-06-07 01:09:23
    语言模型技术广泛应用于语音识别、OCR、机器翻译、输入法等产品上。语言模型建模过程中,包括词典、语料、模型选择,对产品的性能有至关重要的影响。语言模型的建模需要利用复杂的模型公式进行模拟计算,是人工智能...
  • 在ELMO/BERT出来之前,大家通常讲的语言模型其实是根据上文内容预测下一个可能跟随的单词,就是常说的自左向右的语言模型任务,或者反过来也行,就是根据下文预测前面的单词,这种类型的LM被称为自回归语言模型。...
  • 欢迎关注“勇敢AI”公众号,更多python学习、数据分析、机器学习、深度学习原创文章与大家分享,还有更多电子资源、教程、数据集下载。勇敢AI,一个专注于人工智能AI的...一、什么是语言模型 1.1 相关背景...
  • 预训练语言模型 | (1) 概述

    千次阅读 2020-02-05 21:58:57
    自从Bert问世以来,预训练语言模型的各种变体层出不穷,在预训练语言模型专栏,我将参考一些资料,对一些主要的平时使用比较多的预训练语言模型做一些理论层面的整理。 至于预训练语言模型的应用,可以查阅我的文分...
  • 最近,在自然语言处理(NLP)领域中,使用语言模型预训练方法在多项 NLP 任务上都获得了不错的提升,广泛受到了各界的关注。就此,我将最近看的一些相关论文进行总结,选取了...
  • NLP中语言模型预训练方法

    千次阅读 2019-01-13 23:33:35
    最近,在自然语言处理(NLP)领域中,使用语言模型预训练方法在多项NLP任务上都获得了不错的提升,广泛受到了各界的关注。就此,我将最近看的一些相关论文进行总结,选取了几个代表性模型(包括ELMo [1],OpenAI GPT...
  • 文本分类之一:语言模型

    千次阅读 2018-08-05 17:53:22
    前言 最近一直在处理文本相关的一些内容,涉及到文本分类...或者说,语言模型是用来计算一个句子概率的模型,也就是计算一句话是不是人话的概率。 那么如何计算这个句子的概率呢?给定一个句子,假设这个句子的序...
  • 在这一部分中,我们将简要介绍NLP领域的基本模型——语言模型,我们还将对自然语言处理的基础——语料库的概念进行介绍。这些都是在学习自然语言处理之前所必备的知识。此外,我们默认大家有一定的信息论和概率论...
  • 一、传统语言模型 1.1 稀疏性 1.2泛化能力差 二、神经网络语言模型 2.1 前馈神经网络模型(FFLM) 2.2 循环神经网络模型(RNNLM) 2.2.1循环神经网络模型示例 2.2.2RNN语言模型训练过程 2.2.3RNN语言模型...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 969,201
精华内容 387,680
关键字:

语言模型