导论

自然语言处理,NLP,接下来的几篇博客将从四方面来展开:

(一)基本概念和基础知识

(二)嵌入Embedding

(三)Text classification

(四)Language Models

(五)Seq2seq/Transformer/BERT

(六)Expectation-Maximization

(七)Machine Translation

 

基本概念和基础知识

一、基本概念

1.什么是NLP?

自然语言处理(Natural Language Processing : NLP) ,就是利用计算机为工具对人类特有的书面形式和口头形式的自然语言的信息进行各种类型处理和加工的技术。

                            ——冯志伟《自然语言的计算机处理》 1996

2.为什么学习NLP?

问题一:巴别塔问题

如何跨越语言的鸿沟? 自动机器翻译是一种可能的解决方案。它是自然语言处理的终极目标之一,涉及到计算语言学的方方面面。

问题二:信息爆炸

如何从这些海量的信息准确地获取用户真正需要的信息? 信息检索 信息抽取 主题爬虫 信息过滤、个性化推荐 舆情分析、情报分析

问题三:自动问答

IBM的沃森系统:沃森是一个问答机系统(Question Answering Machine,简称 QAM)。问答机和简单搜索之间有个重要的区别。搜索常返回好几页链接,从中可能找到答案。而问答机,要模型评分返回一个最具代表性的正确答案

图灵测试

现有的问答系统 –Ask.com、百度知道、新浪爱问、雅虎知识堂 -哈工大信息检索实验室 –PowerSet:Natural Language Search?

3.NLP的四大基本任务

(1)序列标注:分词/POS Tag/NER/语义标注
(2)分类任务:文本分类/情感计算
(3)句子关系判断:Entailment/QA/自然语言推理
(4)生成式任务:机器翻译/文本摘要

4.NLP的研究和应用

(1)机器翻译

利用计算机将一种自然语言文本自动翻译成另一种自然语言文本

方法分类:基于规则的方法,基于统计的方法,基于实例的方法,混合方法

应用:Systran,google翻译,iciba.com, 有道翻译;ZZX_MT,moses,丝路等。

(2)自动问答

通过计算机系统对人提出的问题的理解,利用自动推理等手段,在有关知识资源中自动求解答案并做出相应的回答。

应用场景: 提问“xx的诞辰” (事实类问题) 提问“xx思想的形成” (综合类或者列表类问题) 提问“比较x和x” (比较类问题)

应用实例:普通在线式——Ask.com;社区问答——Baidu知道、yahoo!回答等;IBM的沃森

(3)语音处理(speech processing)

相关研究:

  语音识别:将输入语音信号自动转换成书面文字

  语音合成:将文本转换成语音

  言者识别(speaker recognition):识别特定人

应用场景:通过电话获得航班信息或者预订宾馆 语音输入

(4)信息检索

从大量文档中检索出用户需要的信息

涉及主要问题: 理解用户的需求 检索出和用户相关的信息 以用户满意的方式展示

应用场景:从google上检索“苹果”的信息

成功应用:Google.com, baidu.com

(5)信息抽取

从指定文本、WEB网页中抽取出用户感兴趣的信息

应用场景:

  实体关系抽取 宋祖英首场台湾演唱会为慈善周杰伦做嘉宾捧场

  抽取出淘宝商城或者网上书城中各种商品的信息

(6)其他应用

自动文摘

信息过滤

情感分析 ……

 

5.研究层次和主要问题

 

6.研究方法

 

 

7.应用

 

 

8.推荐课程

https://github.com/yandexdataschool/nlp_course

 

二、基础知识

1.神经网络

(1)循环神经网络(Recurrent Neural Networks,RNN)

①传统神经网络无法保留之前的信息,而RNN允许将信息不停的再内部循环,这样使得它可以保证每一步的计算都保存以前的信息。

②A是一组神经网络(可以理解为一个网络的自循环),也可以将RNNs的自循环结构展开,像是将同一个网络复制并连成的链式结构,将自身提取的信息传递给下一个继承者。如图所示。

 

③这种链式的结构揭示了RNNs与序列和列表类型的数据密切相关。好像他们生来就是为了处理序列类型数据的。

④事实上,也是这样的。在过去的几年里,RNNs在语音识别、文字建模、翻译、字幕等领域有很成功的应用。在Andrej Karpathy写的博客 The Unreasonable Effectiveness of Recurrent Neural Networks中讨论了RNNs取得的惊人成果。

⑤LSTMs是基于RNN改进的。LSTMs是一种特殊的RNN网络,该网络设计出来是为了解决长依赖问题。

⑥双向RNN和深度RNN。

  Bidirectional RNN:当前词不仅依赖过去的,还依赖未来的。在需要双向信息的应用中非常成功,如手写识别,语音识别以及生物信息学

  深度 RNN:不只一层隐层。 

2.概念区分

(1)循环神经网络 vs 递归神经网络

①循环神经网络是Recurrent Neural Network,递归神经网络是Recursive Neural Network。【建议不要将递归神经网络缩写为RNN,以免混淆。】
?②二者联系:
递归神经网络代表循环网络的另一个扩展
从广义上说,递归神经网络分为结构递归神经网络和时间递归神经网络,循环神经网络也确实可以归类到递归神经网络。
从狭义上说,递归神经网络通常指结构递归神经网络,而时间递归神经网络则称为循环神经网络。

③递归神经网络

递归神经网络被构造为深的树状结构而不是 RNN 的链状结构,因此是不同类型的计算图。

递归神经网络的潜在用途——学习推论。
递归网络已成功地应用于输入是数据结构的神经网络,如自然语言处理和计算机视觉。

④两者最主要的差别:

  Recurrent Neural Network是在时间维度展开,处理序列结构信息。

  Recursive Neural Network在空间维度展开,处理树结构、图结构等复杂结构信息。

(2)LSTM和transformer最大的区别

①LSTM的训练是迭代的,是一个一个字的来,当前这个字过完LSTM单元,才可以进行下一个字。

②transformer可以并行计算,所有字同时训练,大大提高效率。使用了位置嵌入(positional encoding)来标识这些字的先后顺序。

 

 3.

 

 

 

参考:

https://www.jianshu.com/p/95d5c461924c

https://blog.csdn.net/zhangjiali12011/java/article/details/90045978

https://blog.csdn.net/Savinger/java/article/details/89302956

posted on 2020-05-13 14:00  西伯尔  阅读(1853)  评论(1编辑  收藏  举报