首页 AI学术青年与开发者社区

NLP工程师入门实践:基于深度学习的自然语言处理

开课时间:2月开课,每周定时更新
开课时长:三大模块,预计20个课时
NLP领域 基础入门
会员免费
现价:¥599.00
原价:¥699.00

  开通会员,立省599元 立即开通

  当前课程,会员领券立减59元>>

研究难点

编辑
单词的边界界定
在口语中,词与词之间通常是连贯的,而界定字词边界通常使用的办法是取用能让给定的上下文最为通顺且在文法上无误的一种最佳组合。在书写上,汉语也没有词与词之间的边界。
词义的消歧
许多字词不单只有一个意思,因而我们必须选出使句意最为通顺的解释。
句法的模糊性
自然语言的文法通常是模棱两可的,针对一个句子通常可能会剖析(Parse)出多棵剖析树(Parse Tree),而我们必须要仰赖语意及前后文的资讯才能在其中选择一棵最为适合的剖析树。
有瑕疵的或不规范的输入
例如语音处理时遇到外国口音或地方口音,或者在文本的处理中处理拼写,语法或者光学字符识别(OCR)的错误。
语言行为与计划
句子常常并不只是字面上的意思;例如,“你能把盐递过来吗”,一个好的回答应当是把盐递过去;在大多数上下文环境中,“能”将是糟糕的回答,虽说回答“不”或者“太远了我拿不到”也是可以接受的。再者,如果一门课程去年没开设,对于提问“这门课程去年有多少学生没通过?”回答“去年没开这门课”要比回答“没人没通过”好。
[展开全文]

文本摘要常用方法:

  • 基于句子抽取的方法
  • 压缩文本摘要方法
  • 生成式摘要

文本的压缩和融合一般用于生成信息更加紧凑的摘要,获得更好的摘要效果,常用方法包括:

  • 从句子中删除词语
  • 对句子中的词语进行替换、重排序或插入

句子融合技术主要是合并两个或多个包含重叠内容的相关句子得到一个句子

文本复述生成技术通过对给定文本进行改写,生成全新的复述文本,一般要求文本的输入和输出在表达上不同,但是表达的意思基本一样。应用领域:

  • 机器翻译
  • 用户查询改写
  • 文本难度转换

文本复述的方法:

  • 基于自然语言生成的方法
  • 基于机器翻译的方法
  • 基于Pivot的方法(借助于中间语言)

示例模型:

  • Bi-LSTM作为编码器
  • LSTM作为译码器
  • 使用Attention机制进行增强

其他方法包括:

  • Global RL-based reward
  • Local supervision

Teacher forcing algorithm:一个模型在生成一个摘要时使用参考摘要,并且该模型在每生成一个新单词时会被分配一个逐词误差。

 

 

[展开全文]

文本标签

人的理解,需要学习过程

 

[展开全文]

对上节问题的改进:

  • 使用单项RNN作为编码器,只考虑了历史信息,如果可以考虑到未来信息的话,效果会更好,因此:可使用双向RNN来解决“过去”与“未来”相结合的问题。
  • 对于C的问题,一般来说可以直接拿最后一个时刻的hidden输出(一般来说,最后一个时刻的输出一定程度上能够表示整个句子);另外一种做法是,不仅仅使用最后一个时刻的hidden output,还用其他时刻的输出。同时对每个时刻的hidden output给出一个权重。

Local Attention

  • Global attention的思想是计算每个目标端词和每个源语言端词的对齐概率,这也许会称为一种缺点,尤其针对长句子,这种方法代价很大。
  • Local attendtion对某一时刻的输出生成一个它在源语言段的对齐位置p_i,接着在源语言端取窗口[p_i-D, p_i+D],上下文向量c_i则通过计算窗口内的hidden state的加权平均得到。通过local-p和local-m可以来确定对齐位置p_i

local-m(Monotonic alignment)

local-p(Predictive alignment)

attention模型与encoder-decoder模型的区别在于:attention模型不要求编码器将所有输入信息都编码进一个固定长度的向量之中。相反,此时编码器需要将输入编码成一个向量序列,而解码的时候,每一步都会选择性的从向量序列中挑选一个加权后的向量进行进一步处理。这样,在每产生一个输出的时候,都能够做到充分利用输入序列携带的信息。

近年来,增强学习的加入,是的模型的准确率又得到了进一步的提高。(最大的奖励或者最小的惩罚)

Golbal与Local方法应混合使用,以达到最好效果。

基于Pivot的联合训练可以用于零资源语言翻译。

 

 

[展开全文]

文本匹配是自然语言理解中的一个核心问题,经常应用于信息检索、自动回答、机器翻译、机器对话等领域。

文本匹配面临的挑战:

  • 词语匹配的多元性:a、一词多义,b、多词一义
  • 短语匹配问题

文本匹配的层次包含:词语组成短语、短语组成句子、句子组成段落、段落组成篇章。

传统文本匹配主要是通过相似度计算来展开,需要大量的人工一定和抽取的特征,存在人工代价大、不精确、性能低等问题。

基于深度学习的方法:

  • 可自动从原始数据中抽取特征
  • 迁移成本低
  • 结合词嵌入技术,可以较好的解决词语匹配的多元性问题
  • 能够更好的满足短语匹配的结构性和文本匹配的层次性的特征。

基于DL的文本匹配可分为三种类型(此处不太明白,需要重新听一下):

  • Single Semantic Document
  • Multi Semantic Document
  • Model Based
DL文本匹配的优势:
  • DL Model可以通过词嵌入技术将单词表示为语义空间中的向量。
  • 其自身结构是层次化和序列化的,能够比较自然地描述自然语言中的层次结构、序列结构和组合操作。
  • 能够很好地利用大规模数据的优势和日益发展的高性能计算能力。

DL文本匹配已经被应用于词性标注、词法分析、情感分析、关系分类等领域了。CNN、RNN是其主要方法。

 

[展开全文]

关于PyTorch

命令行编程时PyTorch的关键特性

Mac下安装:

  • pip3 install torch torchvision
  • conda install pytorch torchvision -c pytorch
使用:import torch
  • torch.Tensor:一个多维数组
  • autograd.Variable:改变Tensor并且记录下来操作的历史记录,和Tensor拥有相同的API,以及backward()的一些API。同时包含着张量相关的梯度
  • nn.Module:神经网络模块。便捷的数据封装,能够将运算移往GPU,还包括一些输入输出的东西
  • nn.Parameter:一种变量,当将任何值赋予Module时自动注册为一个参数
  • autograd.Function:实现了使用自动求道方法的前馈和后馈的定义。每个Variable的操作都会生成至少一个独立的Function节点,与生成了Variable的函数相连之后记录下操作历史。
PyTorch中所有的神经网络都来自于autograd包,其中autograd.Variable是这个包中最核心的类。它封装了一个Tensor,并且几乎支持所有的定义在其上的操作,一旦运算完成,就可以调用其backward()方法来自动计算出所有的梯度。
from torch.autograd import Variable。
 
任何输入到网络中的数据,首先要变成Variable
import torch
from torch.autograd import Variable
 
PyTorch已经集成了众多损失函数,可根据实际需要从中选择一个使用。如果没有符合自己要求的损失函数,也可以自己定义。
 
[展开全文]

消除歧义

词法模糊:冬天能穿多少穿多少,夏天能穿多少穿多少

句法模糊:是(老男人)和女人呢,还是年老的(男人和女人)?

谐音误解

预期违背

同文异读

指代

应用领域

文本分类/情感分析

问答

对话

机器翻译

图像描述生成

图像问答

基于图像的对话

调整学习率

调整学习率(learning rate)可以帮助跳出局部最小值

两种类型的分类算法

1. 生成式模型(Generative):联合概率模型

2. 判别式模型(Discriminative):条件概率模型

 

[展开全文]

NLP发展现状

传统NLP方法面临的调整

大数据和深度学习给NLP带来的变革和机遇

NLP的发展趋势,以及和各行各业的结合应用

 

自然语言处理具体应用领域:

(文字或语言)检索

  • 在线广告匹配
  • 自动(辅助)翻译
  • 语音识别
  • 聊天/对话代理
  1. 自动客服
  2. 设备控制
  3. 订购商品

 基于深度学习的自然语言处理还可以应用于:

文本分类/情感分析

问答/对话/图像问答/基于图像的对话

机器翻译

图像描述生成

 深度学习与人工智能的关系:人工智能是宏观上的概念,从技术上来说,主要是用到了机器学习技术,而机器学习中有一种算法是神经网络算法,神经网络是分层的,当层数大于3层时,我们一般就把这样的网络称为深度网络,而目前的深度学习算法就是经过一定的预处理之后,训练深度网络的算法。目前主要有卷积神经网络与循环神经网络。

 

[展开全文]

NLP applications:

文本分类;sentiment analysis

Q & A

dialogue agents

machine translation

image captioning

visual Q & A

visual dialog

[展开全文]

NLP工程师课程---课时1 NLP发展历史

  • 什么是自然语言:机器能够通过文字和语言理解人类语言
  1. 自然语言处理是计算机科学/人工智能/语言学的交叉领域
  2. 计算机处理或理解自然语言,以便执行有用的任务:问答等。
  • 自然语言应用:语法检查/关键词/同义词;分类任务;机器翻译;对话系统;问答等
  • 人类语言特点:
  1. 人类语言是一个用于传递含义的系统;
  2. 人类语言是离散/符号化信号系统
  3. 人类语言是象征性/分类化信号系统
  4. 机器学习进行词汇编码存在稀疏的问题
  • 大数据:Volume/Velocity/Varirty
  • 深层VS浅层网络
  1. 相同数量的非线性模块,深层接口比浅层结构更加昂贵;
  2. 浅层网络需要更多的隐藏层节点来弥补缺乏表达性。
  • 无监督训练
  1. 大多数可训练的NLP&机器学习方法都需要有标签的训练数据,实际上,现实中大多数据都是没有标签的
  2. 深层网络利用无监督学习通过学习数据的良好表示来利用未标记的数据。
  3. 人类最初学习就是从无标签数据开始。
  • 判别式模型VS生成式模型
  1. 生成式模型:联合分布
  2. 判别式模型:条件分布
  • 深度学习在NLP领域常见任务
  1. 自然语言处理
  2. 词性标注
  3. 分词
  4. 文本分类
  5. 自动文摘
  6. 机器翻译
  7. 问答系统
  8. 图像自动描述生成
  9. 基于文本的检索

 

[展开全文]

相关课程

开课日期:2月开课,每周定时更新开始
NLP领域 基础入门 41305

授课教师

新加坡南洋理工大学 博士
微信扫码分享课程