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

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

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

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

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

消除歧义

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

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

谐音误解

预期违背

同文异读

指代

应用领域

文本分类/情感分析

问答

对话

机器翻译

图像描述生成

图像问答

基于图像的对话

调整学习率

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

两种类型的分类算法

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

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

 

[展开全文]

关于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已经集成了众多损失函数,可根据实际需要从中选择一个使用。如果没有符合自己要求的损失函数,也可以自己定义。
 
[展开全文]

MT就是使用计算机实现从一种自然语言文本到另一种自然语言文本的翻译。

按需求分类可以将MT应用于:

  • 传播信息
  • 浏览信息
  • 交流信息
  • 查询信息

从技术角度来看,又可根据理性主意和经验主意进行划分

基于理性主义(基于规则的方法,目前使用的较少)的划分:

  • 直接翻译法
  • 转换法
  • 中间语言法

基于经验主义(基于语料库、统计的方法,是目前的主流方法):

  • EBMT(基于实例的翻译)
  • Translation Memory
  • Pattern-Based MT
  • Statistical approach to MT

词语对齐是机器翻译中的重要技术,但是目前自动词语对齐技术一般都嵌入在处理过程中自动完成。

一般来说,篇章、段落、句子、短语、词语等都需要不同级别的对齐,其目的就是从双语互译的文本中找出互译的片段。

其中篇章、段落、句子的对齐技术主要用于语料库的整理,而短语和词语对齐,就是要找出相互翻译的文本中对应的词与词、短语和短语之间的相互翻译对。

在机器翻译领域,seq2seq模型是目前最常用的技术之一。

在NMT中,通常采用encoder-decorder来实现seq2seq的转换。其中的encoder和decoder通常都使用RNN来实现。

基本encoder-decoder是一个end-to-end的网络,所有的参数都可以学习。只要给定训练数据即可训练处效果还不错的模型,省去了很多特征抽取以及各种复杂中间步骤。

 

[展开全文]

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

文本匹配面临的挑战:

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

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

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

基于深度学习的方法:

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

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

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

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

 

[展开全文]

对上节问题的改进:

  • 使用单项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的联合训练可以用于零资源语言翻译。

 

 

[展开全文]

文本摘要常用方法:

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

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

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

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

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

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

文本复述的方法:

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

示例模型:

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

其他方法包括:

  • Global RL-based reward
  • Local supervision

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

 

 

[展开全文]

研究难点

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

(1)复杂特征集和合一语法;

(2)语言学研究中的词汇主义;

(3)语料库方法和统计语言模型。

这三个成果将继续对语言学、计算语言学和NLP的研究产生深远影响。为了理解这些成果的意义,先介绍一下两个相关事实。

自然语言处理中识别句子句法结构的句法分析的全过程:

(1)把句子中的词一个一个地切分出来;

(2)查词典,给句子中的每个词指派一个合适的词性(part of speech);

(3)用句法规则把句子里包含的句法成分,如名词短语、动词短语、小句等,逐个地识别出来。

(4)判断每个短语的句法功能,如主语、谓语、宾语等,及其语义角色,最终得到句子的意义表示,如逻辑语义表达式。

[展开全文]

NLP applications:

文本分类;sentiment analysis

Q & A

dialogue agents

machine translation

image captioning

visual Q & A

visual dialog

[展开全文]

应用:

1、语法检查、关键词搜索、查找同义词

2、从网站提取信息

3、分类

4、机器翻译

5、口头对话系统

6、复杂问答

7、对话

 

CNN:文本分类、关系提取与分类、垃圾检测、语义关系提取

RNN:机器翻译、文本问答系统、图片捕获、图片问答系统、关系分类、对象检测

[展开全文]

相关课程

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

授课教师

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