浅谈nlp知识点

       深度学习主要在自然语言处理以及计算机视觉发挥着重大的作用,今天主要结合工作谈一下对于自然语言处理方面的理解,同时也对于自己的学习总结有一个很好的梳理作用。

       自然语言处理包括但不仅限于文本分类,情感分析,实体识别和抽取,词性标注等等。

1.分词

jieba(结巴)是一个强大的分词库,完美支持中文分词。可以自己导入分词词典,也可以做词性标注,对于未登录词,使用HMM隐马尔科夫模型处理。

当然还有其他的分词,比如清华的分词等等。。。

2.预训练语言模型

  • 2.1 word2vec

       word2vec是google在2013年推出的一个NLP工具,它的特点是将所有的词向量化,这样词与词之间就可以定量的去度量他们之间的关系,挖掘词之间的联系。word2vec也叫word embeddings,中文名“词向量”,作用就是将自然语言中的字词转为计算机可以理解的稠密向量(Dense Vector)。在word2vec出现之前,自然语言处理经常把字词转为离散的单独的符号,也就是One-Hot Encoder。

关于词向量的原理可以参考以下网站:

word2vec原理(一) CBOW与Skip-Gram模型基础

word2vec原理(二) 基于Hierarchical Softmax的模型

word2vec原理(三) 基于Negative Sampling的模型

关于word2vec可以直接安装gensim库使用

  • 2.2 elmo

       

       word2vec是静态词向量,在word2vec模型中固定的词拥有固定的词向量,而无法解决一词多义的情况,例如:苹果可以在文中有水果的含义,也可以在文中有手机电脑的含义,而elmo是使用bilstm基于上下文实现动态词向量。

具体使用可参考以下链接:

http://www.linzehui.me/2018/08/12/%E7%A2%8E%E7%89%87%E7%9F%A5%E8%AF%86/%E5%A6%82%E4%BD%95%E5%B0%86ELMo%E8%AF%8D%E5%90%91%E9%87%8F%E7%94%A8%E4%BA%8E%E4%B8%AD%E6%96%87/

https://github.com/allenai/bilm-tf

  • 2.3 BERT和OpenAI GPT

ELMO 在迁移到下游任务时,会将不同层的特征采用加权求和的方式来获得每个词的最终表示。事实证明, ELMO 的确解决了多义性问题, 词性也能对应起来了。但, ELMO 的缺点也十分明显:

  • LSTM 特征抽取能力远弱于 Transformer , 并行性差
  • 拼接方式双向融合特征融合能力偏弱

在了解BERT和OpenAI GPT之前,需要先了解Transformer的结构,编码器和解码器,具体可参考我的博客:

一文详解transformer(Attention Is All You Need)原理

GPT 虽然不是第一个预训练语言模型,但它的出现更具开创意义,基于Transformer的解码器堆栈组成,其特点很明显:

  • 采用单向 Transformer 作为特征抽取器
  • 采用二阶段:预训练 + 微调 来适配下游任务

GPT 1.0 与 GPT 2.0 的出现说明了以下几点:

  • 高质量,大规模的预训练数据集是提升性能的根本
  • 深层的 Transformer 模型具有更强的表示能力

训练前模型架构的差异。BERT使用双向Transformer。OpenAI GPT使用从左到右的Transformer。ELMo使用独立训练的从左到右和从右到左LSTM的连接来为下游任务生成特性。在这三个层次中,只有BERT表示在所有层中同时受左右上下文的制约。

BERT是基于Transformer的编码器堆栈组成的,同时找到正确的任务来训练编码器的Transformer堆栈是一个复杂的障碍,BERT采用了来自早期文献的“屏蔽语言模型”概念(在那里它被称为完形填空任务)来解决这个问题。

除了屏蔽15%的输入,BERT还混合了一些东西,以改进模型后来的微调方式。有时它会随机地将一个单词替换成另一个单词,并要求模型预测在那个位置上的正确单词。

Figure:BERT input representation. The input embeddings is the sum of the token embeddings, the segmentation embeddings and the position embeddings.

有关BERT的中文翻译:https://github.com/yuanxiaosc/BERT_Paper_Chinese_Translation

更多内容可参考:https://blog.csdn.net/hufei_neo/article/details/94739500

  • 2.4 百度的ERNIE 2.0

ERNIE 2.0 是基于持续学习的语义理解预训练框架,使用多任务学习增量式构建预训练任务。ERNIE 2.0 中,新构建的预训练任务类型可以无缝的加入训练框架,持续的进行语义理解学习。 通过新增的实体预测、句子因果关系判断、文章句子结构重建等语义任务,ERNIE 2.0 语义理解预训练模型从训练数据中获取了词法、句法、语义等多个维度的自然语言信息,极大地增强了通用语义表示能力。

有关更详细的介绍在:https://github.com/PaddlePaddle/ERNIE

3. CRF,HMM(隐马模型),MEMM(最大熵隐马模型)

CRF,HMM(隐马模型),MEMM(最大熵隐马模型)都常用来做序列标注的建模,像分词、词性标注,以及命名实体标注。。但是其各自有自身的特点,HMM模型是对转移概率和表现概率直接建模,统计共现概率。而MEMM模型是对转移 概率和表现概率建立联合概率,统计时统计的是条件概率。MEMM容易陷入局部最优,是因为MEMM只在局部做归一化,而CRF模型中,统计了全局概率,在 做归一化时,考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置的问题。

更多有关内容可参考:https://www.cnblogs.com/hellochennan/p/6624509.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值