自然语言处理从入门到应用
文章平均质量分 87
《自然语言处理从入门到应用》系列以自然语言基础知识为始,穿插介绍了当今预训练常用模型。本系列由浅入深,全面介绍了中文自然语言处理的各类知识。初学者可以与《深入理解深度学习》系列一起学习,而熟悉深度学习理论的读者可以直接阅读本系列。
von Neumann
技术日新月异,人类生活方式正在快速转变,这一切给人类历史带来了一系列不可思议的奇点。我们曾经熟悉的一切,都开始变得陌生。
展开
-
自然语言处理从入门到应用——预训练模型总览:预训练模型存在的问题
虽然预训练模型已经在很多自然语言处理任务中显示出了他们强大的能力,然而由于语言的复杂性,仍存在诸多挑战原创 2023-07-02 17:36:52 · 16601 阅读 · 0 评论 -
自然语言处理从入门到应用——预训练模型总览:迁移学习与微调
预训练模型从大型语料库中获取通用语言知识,如何有效地将其知识适应下游任务是一个关键问题。迁移学习的方式主要有归纳迁移(顺序迁移学习、多任务学习)、领域自适应(转导迁移)、跨语言学习等。自然语言处理中预训练模型的迁移方式是顺序迁移学习。原创 2023-07-02 16:50:59 · 13462 阅读 · 0 评论 -
自然语言处理从入门到应用——预训练模型总览:预训练模型的拓展
从大量无标注数据中进行预训练使许多自然语言处理任务获得显著的性能提升。原创 2023-07-02 16:39:39 · 10839 阅读 · 0 评论 -
自然语言处理从入门到应用——预训练模型总览:两大任务类型
从大量无标注数据中进行预训练使许多自然语言处理任务获得显著的性能提升。预训练模型按照任务类型可分为2大类:监督学习和自监督学习两类。监督学习在预训练模型中的主要代表就是CoVe,CoVe作为机器翻译的Encoder部分可以应用于多种NLP下游任务。除了CoVe外,NLP中的绝大多数预训练模型都属于自监督学习。自监督学习实际是无监督学习的一种方法,自监督学习主要是利用辅助任务从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。原创 2023-07-02 15:59:25 · 16194 阅读 · 0 评论 -
自然语言处理从入门到应用——预训练模型总览:词嵌入的两大范式
从大量无标注数据中进行预训练使许多自然语言处理任务获得显著的性能提升。预训练模型的发展经历从浅层的词嵌入到深层编码两个阶段,按照这两个主要的发展阶段,可以归纳出预训练模型编码的两大范式:静态词向量(Static Word Embedding)和动态词向量(Dynamic Word Embedding)。原创 2023-07-02 15:50:26 · 11022 阅读 · 0 评论 -
自然语言处理从入门到应用——词向量的评价方法
对于不同的学习方法得到的词向量,通常可以根据其对词义相关性或者类比推理性的表达能力进行评价,这种方式属于内部任务评价方法(Intrinsic Evaluation)。在实际任务中,则需要根据下游任务的性能指标判断,也称为外部任务评价方法(Extrinsic Evaluation)。本文首先介绍两种常用的内部任务评价方法,然后以情感分类任务为例,介绍如何将预训练词向量应用于下游任务。原创 2023-06-17 13:44:31 · 10760 阅读 · 1 评论 -
自然语言处理从入门到应用——动态词向量(Dynamic Word Embedding):ELMo词向量
最自然的做法是使用两个LSTM的最后一层隐含层输出作为词的动态向量表示。然而,在ELMo模型中,不同层次的隐含层向量蕴含了不同层次或粒度的文本信息。例如,越接近顶层的LSTM隐含层表示通常编码了更多的语义信息,而接近底层的隐含层表示(包括输入表示。因此,ELMo采取对不同层次的向量表示进行加权平均的机制,为不同的下游任务提供更多的组合自由度。表示每个向量的权重,反映每一层向量对于目标任务的重要性,可由一组参数根据Softmax函数归一化计算得到,该权重向量可在下游任务的训练过程中学习;原创 2023-06-18 16:12:16 · 11862 阅读 · 1 评论 -
自然语言处理从入门到应用——动态词向量(Dynamic Word Embedding):双向语言模型
对于给定的一段输入文本w1w2⋯wn,双向语言模型从前向(从左到右)和后向(从右到左)两个方向同时建立语言模型。这样做的好处在于,对于文本中任一时刻的词wt,可以同时获得其分别基于左侧上下文信息和右侧上下文信息的表示。具体地,模型首先对每个词单独编码。这一过程是上下文无关的,主要利用了词内部的字符序列信息。基于编码后的词表示序列,模型使用两个不同方向的多层长短时记忆网络(LSTM)分别计算每一时刻词的前向、后向隐含层表示,也就是上下文相关的词向量表示。原创 2023-06-18 15:22:24 · 12191 阅读 · 0 评论 -
自然语言处理从入门到应用——动态词向量(Dynamic Word Embedding):基础知识
在一个文本序列中,每个词的动态词向量实际上是对该词的上下文进行语义组合后的结果。在目前介绍的静态词向量学习算法中,无论是基于局部上下文预测的word2vec算法,还是基于显式全局共现信息的 GloVe回归算法,其本质都是将一个词在整个语料库中的共现上下文信息聚合至该词的向量表示中。因此,在一个给定的语料库上训练得到的词向量可以认为是静态的,即:对于任意一个词,其向量表示是恒定的,不随其上下文的变化而变化。顾名思义,在这种表示方法中,一个词的向量将由其当前所在的上下文计算获得,因此是随上下文而动态变化的。原创 2023-06-17 14:10:42 · 12313 阅读 · 1 评论 -
自然语言处理从入门到应用——静态词向量:全局向量词嵌入GloVe(Global Vectors for Word Representation)
无论是基于神经网络语言模型还是Word2vec的词向量预训练方法,本质上都是利用文本中词与词在局部上下文中的共现信息作为自监督学习信号。除此之外,另一类常用于估计词向量的方法是基于矩阵分解的方法,例如潜在语义分析(参考《》)等。这类方法首先对语料进行统计分析,并获得含有全局统计信息的“词–上下文”共现矩阵,然后利用奇异值分解(Singular Value Decomposition,SVD)对该矩阵进行降维,进而得到词的低维表示。原创 2023-06-16 21:18:17 · 10757 阅读 · 1 评论 -
自然语言处理从入门到应用——静态词向量:神经网络语言模型(Neural Network Language Model)
中介绍了语言模型的基本概念,以及经典的基于离散符号表示的N元语言模型(N-gram Language Model)。从语言模型的角度来看,N元语言模型存在明显的缺点。首先,模型容易受到数据稀疏的影响,一般需要对模型进行平滑处理;其次,无法对长度超过N的上下文依赖关系进行建模。神经网络语言模型(Neural Network Language Model)在一定程度上克服了这些问题。一方面,通过引入词的分布式表示,也就是词向量,大大缓解了数据稀疏带来的影响;原创 2023-06-16 20:19:07 · 11271 阅读 · 1 评论 -
自然语言处理从入门到应用——评价指标
而在对语义依存图任务进行评价时,由于每个词的父节点的个数不确定,则无法使用准确率进行评价,此时就需要使用F值了,即以图中的弧为单位,计算其识别的精确率和召回率,然后计算F值。》中介绍的语言模型问题,在给定历史文本预测下一个词时,除了在语料库中出现的词,还有许多其他词也是合理的。仍以上图中的示例为例,其中,“正确识别的命名实体数目”为1(“哈尔滨”),“识别出的命名实体总数”为2(“张”和“哈尔滨”),“测试文本中命名实体的总数”为2(“张三”和“哈尔滨”),那么此时精确率和召回率皆为。,这显然是不合理的。原创 2023-06-05 19:49:06 · 14180 阅读 · 0 评论 -
自然语言处理从入门到应用——预训练模型总览:从宏观视角了解预训练模型
近些年基于深度学习的NLP技术的重大进展主要包括NNLM(2003)、Word Embedding(2013)、Seq2Seq(2014)、Attention(2015)、Transformer(2017)、GPT(2018)、BERT(2018)、XLNet(2019)、GPT-2(2019)、GPT-3(2020)等,主要预训练模型的大致发展脉络见下图:各种主要预训练模型的特征、抽取特征方法、使用语言模型类别等内容:模型语言模型特征提取上下文创新点ELMOLMBi-L原创 2022-02-06 13:33:47 · 18229 阅读 · 0 评论 -
自然语言处理从入门到应用——自然语言处理的基本问题:序列到序列(Sequence-to-Sequence,Seq2Seq)问题
除了机器翻译,还有很多自然语言处理问题可以被建模为序列到序列问题,如对话系统中,用户话语可被视为输入序列,机器的回复则可被视为输出序列,甚至文本分类问题也可以被建模为序列到序列问题。结构预测问题也类似,首先,也需要使用编码器对输入文本进行表示,然后,在处理序列标注问题时,使用解码器生成输出标签序列(需要保证输出序列与输入序列长度相同);将其推广到序列到序列问题,输入就是一个由若干词组成的序列,输出则是一个新的序列,其中,输入和输出的序列不要求等长,同时也不要求词表一致。原创 2023-06-04 14:04:42 · 11892 阅读 · 0 评论 -
自然语言处理从入门到应用——自然语言处理的基本问题:结构预测问题
与文本分类问题不同,在结构预测问题中,输出类别之间具有较强的相互关联性。例如,在词性标注任务中,一句话中不同词的词性之间往往相互影响,如副词之后往往出现动词或形容词,形容词之后往往跟着名词等。结构预测任务通常是自然语言处理独有的。下面介绍三种典型的结构预测问题——序列标注、序列分割和图结构生成。原创 2023-06-04 14:01:43 · 13414 阅读 · 0 评论 -
自然语言处理从入门到应用——自然语言处理的基本问题:文本分类(Text Classification, Text Categorization)
除了直接使用文本分类技术解决实际问题,还有很多自然语言处理问题可以转换为文本分类问题,如文本匹配(Text Matching),即判断两段输入文本之间的匹配关系,包括复述关系(Paraphrasing)即判断两个表述不同的文本语义是否相同、蕴含关系(Entailment),即根据一个前提文本,推断与假设文本之间的蕴含或矛盾关系等。在使用机器学习,尤其是深度学习方法解决文本分类问题时,首先,需要使用《[1] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.原创 2023-06-04 12:54:58 · 12090 阅读 · 0 评论 -
自然语言处理从入门到应用——自然语言处理的应用任务
本文介绍信息抽取、情感分析、问答系统、机器翻译和对话系统等自然语言处理应用任务。这些任务可以直接或间接地以产品的形式为终端用户提供服务,是自然语言处理研究应用落地的主要技术。原创 2023-06-03 20:49:26 · 12708 阅读 · 0 评论 -
自然语言处理从入门到应用——自然语言处理的基础任务:语义分析(Semantic Analysis)
其中,语义角色标注也称谓词论元结构(Predicate-Argument Structure),即首先识别句子中可能的谓词(一般为动词),然后为每个谓词确定所携带的语义角色(也称作论元),如表示动作发出者的施事(Agent),表示动作承受者的受事(Patient)等。其中,语义依存图中的节点是句子中实际存在的词语,在词与词之间创建语义关系边。从词语的粒度考虑,一个词语可能具有多种语义(词义),例如“打”,含义即可能是“攻击”(如“打人”),还可能是“玩”(如“打篮球”),甚至“编织”(如“打毛衣”)等。原创 2023-06-03 20:13:12 · 12060 阅读 · 0 评论 -
自然语言处理从入门到应用——自然语言处理的基础任务:词性标注(POS Tagging)和句法分析(Syntactic Parsing)
虽然它们只相差一个“的”字,但是表达的语义是截然不同的,这主要是因为两句话的主语不同。其中,第一句话的主语是“文章”,而第二句话的主语是“转”的动作。在依存结构句法表示中,sub和obj分别表示主语和宾语,root表示虚拟根节点,其指向整个句子的核心谓词。例如,表示抽象或具体事物名字(如“计算机”)的词被归为名词,而表示动作(如“打”)、状态(如“存在”)的词被归为动词。最终的目标是将词序列表示的句子转换成树状结构,从而有助于更准确地理解句子的含义,并辅助下游自然语言处理任务。您转的这篇文章很好。原创 2023-06-03 19:40:56 · 13189 阅读 · 0 评论 -
自然语言处理从入门到应用——自然语言处理的基础任务:中文分词和子词切分
自然语言处理的一大特点是任务种类纷繁复杂,有多种划分的方式。从处理顺序的角度,可以分为底层的基础任务以及上层的应用任务。其中,基础任务往往是语言学家根据内省的方式定义的,输出的结果往往作为整个系统的一个环节或者下游任务的额外语言学特征,而并非面向普罗大众。本文和后文介绍几种常见的基础任务,包括词法分析(分词、词性标注)、句法分析和语义分析等。原创 2023-06-03 19:41:25 · 12765 阅读 · 0 评论 -
自然语言处理从入门到应用——自然语言处理的语言模型(Language Model,LM)
语言模型(Language Model,LM)(也称统计语言模型)是描述自然语言概率分布的模型,是一个非常基础和重要的自然语言处理任务。利用语言模型,可以计算一个词序列或一句话的概率,也可以在给定上文的条件下对接下来可能出现的词进行概率分布的估计。同时,语言模型是一项天然的预训练任务,在基于预训练模型的自然语言处理方法中起到非常重要的作用,因此这种预训练模型有时也被称为预训练语言模型。本文将主要介绍经典的N元语言模型(N-gram Language Model)。原创 2023-06-03 13:50:32 · 13674 阅读 · 0 评论 -
自然语言处理从入门到应用——文本的表示方法
若要利用计算机对自然语言进行处理,首先需要解决语言在计算机内部的存储和计算问题。字符串(String)是文本最自然,也是最常用的机内存储形式。所谓字符串,即字符序列,而其中的一个字符本质上就是一个整数。基于字符串的文本表示方式可以实现简单的字符串增删改查等编辑任务,并能够通过编辑距离等算法计算两个字符串之间的字面相似度。在使用字符串表示(也叫符号表示)计算文本的语义信息时,往往需要使用基于规则的方法。例如,要判断一个句子的情感极性(褒义或贬义),规则的形式可能为:如果句子中出现“喜欢”“漂亮”等词则为褒义。原创 2023-06-02 21:18:57 · 10792 阅读 · 0 评论 -
自然语言处理从入门到应用——自然语言处理(Natural Language Processing,NLP)基础知识
自然语言通常指的是人类语言,是人类思维的载体和交流的基本工具,也是人类区别于动物的根本标志,更是人类智能发展的外在体现形式之一。自然语言处理(Natural Language Processing,NLP)主要研究用计算机理解和生成自然语言的各种理论和方法,属于人工智能领域的一个重要甚至核心分支,是计算机科学与语言学的交叉学科,又常被称为计算语言学(Computational Linguistics,CL)。随着互联网的快速发展,网络文本呈爆炸性增长,为自然语言处理提出了巨大的应用需求。原创 2023-05-31 21:25:43 · 15508 阅读 · 0 评论