百度PaddlePaddle + NLP 学习分享贴(一)

本系列分享贴主要是对课程上的内容的一些总结和重要内容的记录,受限于csdn的帖子分类,归于原创,但是主要内容均来源于百度PaddlePaddle课程链接. 更多具体的内容和资源,请移步百度paddlepaddle平台进行学习.

 

# 主要学习课程:

[百度架构师手把手教深度学习](https://aistudio.baidu.com/aistudio/education/group/info/888)

## 第一堂课程:

[4-1 自然语言处理综述](https://aistudio.baidu.com/aistudio/projectdetail/286390)

 

## 本次课程重点:

 

1. 自然语言处理(Natural Language Processing,简称NLP)被誉为人工智能皇冠上的明珠,是计算机科学和人工智能领域的一个重要方向。

2. NLP 的起源和历史, 用来说明对自然语言妥当处理往往决定了战争的胜利或是政权的更迭。

2.1 16世纪的英国大陆,英格兰和苏格兰 政权之争 , **自然语言的密码获得政权之争的胜利.

2.2 1950年二战,**纳粹德国的恩尼格玛密码成为盟军对抗纳粹的重要战场。

从1956年,自然语言的研究就被分为了以语言学为基础的符号主义学派,以及以概率统计为基础的连接主义学派。

# NLP的主要发展时期

1. 符号主义时期

在自然语言处理发展的兴起阶段,大量的研究工作都聚焦从语言学角度,分析自然语言的词法、句法等结构信息,并通过总结这些结构之间的规则,达到处理和使用自然语言的目的。这一时期的代表人物就是乔姆斯基和他提出的“生成式文法”。

2. 连接主义时期

1980年,由于计算机技术的发展和算力的提升,个人计算机可以处理更加复杂的计算任务,自然语言处理研究得以复苏,研究人员开始使用统计机器学习方法处理自然语言任务。

3. 深度学习时期

从2006年深度神经网络反向传播算法的提出开始,伴随着互联网的爆炸式发展和计算机(特别是GPU)算力的进一步提高,人们不再依赖语言学知识和有限的标注数据,自然语言处理领域迈入了深度学习时代。

# 自然语言处理技术面临的挑战

1. 语言学角度

自然语言数量多、形态各异,理解自然语言对人来说本身也是一件复杂的事情,如同义词、情感倾向、歧义性、长文本处理、语言惯性表达等。

2. 计算角度

自然语言技术的发展除了受语言学的制约外,在计算角度也天然存在局限。顾名思义,计算机是计算的机器,现有的计算机都以浮点数为输入和输出,擅长执行加减乘除类计算。自然语言本身并不是浮点数,计算机为了能存储和显示自然语言,需要把自然语言中的字符转换为一个固定长度(或者变长)的二进制编码

 

# 自然语言处理的常见任务

自然语言处理是是非常复杂的领域,是人工智能中最为困难的问题之一,常见的任务如 图9 所示:

百度PaddlePaddle + NLP 学习分享贴(一)

  • 词和短语级任务:包括切词、词性标注、命名实体识别(如“苹果很好吃”和“苹果很伟大”中的“苹果”哪个是苹果公司?)、同义词计算(如“好吃”的同义词是什么?)等以词为研究对象的任务。
  • 句子和段落级任务:包括文本倾向性分析(如客户说:“你们公司的产品真好用!”是在夸赞还是在讽刺?)、文本相似度计算(如“我坐高铁去广州”和“我坐火车去广州”是一个意思吗?)等以句子为研究对象的任务。
  • 对话和篇章级任务:包括机器阅读理解(如使用医药说明书回答患者的咨询问题)、对话系统(如打造一个24小时在线的AI话务员)等复杂的自然语言处理系统等。
  • 自然语言生成:如机器翻译(如“我爱飞桨”的英文是什么?)、机器写作(以AI为题目写一首诗)等自然语言生成任务。

 

# 使用飞桨探索自然语言处理

接下来,让我们一起探索几个经典的自然语言处理任务,包括:

  • 计算词语之间的关系(如同义词):word2vec
  • 理解一个自然语言句子:文本分类和相似度计算
  • 计算机写一首诗:自然语言生成-seq2seq模型

一般来说,使用飞桨完成自然语言处理任务时,都可以遵守一个相似的套路,包括:

  1. 准备数据:准备所需要的数据,将数据处理成神经网络可以计算的形式。
  2. 定义网络:使用飞桨定义出神经网络的结构,包括输入层,中间层(又叫隐层)和输出层,特别的,还需要定义好神经网络的损失函数和优化器,便于网络训练。
  3. 训练网络:将准备好的数据逐个送入神经网络中,进行训练,并在训练中观察网络是否正常收敛。
  4. 评估网络:把训练好的网络保存起来,并使用测试集测试网络的效果,并根据测试效果反复迭代。