NLP:自然语言处理技术的简介、发展历史、案例应用之详细攻略-阿里云开发者社区

开发者社区> 一个处女座的程序猿> 正文

NLP:自然语言处理技术的简介、发展历史、案例应用之详细攻略

简介: NLP:自然语言处理技术的简介、发展历史、案例应用之详细攻略
+关注继续查看

4、自然语言理解的五个层次

image.png

      自然语言的理解和分析是一个层次化的过程,许多语言学家把这一过程分为五个层次,可以更好地体现语言本身的构成,五个层次分别是语音分析、词法分析、句法分析、语义分析和语用分析。


语音分析:要根据音位规则,从语音流中区分出一个个独立的音素,再根据音位形态规则找出音节及其对应的词素或词。

词法分析:找出词汇的各个词素,从中获得语言学的信息。

句法分析:对句子和短语的结构进行分析,目的是要找出词、短语等的相互关系以及各自在句中的作用。

语义分析:找出词义、结构意义及其结合意义,从而确定语言所表达的真正含义或概念。

语用分析:研究语言所存在的外界环境对语言使用者所产生的影响。


5、图灵试验判断计算机是否理解了某种自然语言


      在人工智能领域或者是语音信息处理领域中,学者们普遍认为采用图灵试验可以判断计算机是否理解了某种自然语言,具体的判别标准有以下几条:


问答:机器人能正确回答输入文本中的有关问题;

文摘生成:机器有能力生成输入文本的摘要;

释义:机器能用不同的词语和句型来复述其输入的文本;

翻译:机器具有把一种语言翻译成另一种语言的能力。


6、自然语言处理技术的发展历史

image.png



      自然语言处理是包括了计算机科学、语言学心理认知学等一系列学科的一门交叉学科,这些学科性质不同但又彼此相互交叉。最早的自然语言理解方面的研究工作是机器翻译。1949年,美国人威弗首先提出了机器翻译设计方案。20世纪60年代,国外对机器翻译曾有大规模的研究工作,耗费了巨额费用,但人们当时显然是低估了自然语言的复杂性,语言处理的理论和技术均不成热,所以进展不大。

      近年自然语言处理在词向量(word embedding)表示、文本的(编码)encoder和decoder(反编码)技术以及大规模预训练模型(pre-trained)上的方法极大地促进了自然语言处理的研究。


1、20世纪50年代到70年代——采用基于规则的方法


      1950年图灵提出了著名的“图灵测试”,这一般被认为是自然语言处理思想的开端,20世纪50年代到70年代自然语言处理主要采用基于规则的方法,研究人员们认为自然语言处理的过程和人类学习认知一门语言的过程是类似的,所以大量的研究员基于这个观点来进行研究,这时的自然语言处理停留在理性主义思潮阶段,以基于规则的方法为代表。但是基于规则的方法具有不可避免的缺点,首先规则不可能覆盖所有语句,其次这种方法对开发者的要求极高,开发者不仅要精通计算机还要精通语言学,因此,这一阶段虽然解决了一些简单的问题,但是无法从根本上将自然语言理解实用化。


2、20世纪70年代到21世纪初——采用基于统计的方法


      70年代以后随着互联网的高速发展,丰富的语料库成为现实以及硬件不断更新完善,自然语言处理思潮由经验主义向理性主义过渡,基于统计的方法逐渐代替了基于规则的方法。贾里尼克和他领导的IBM华生实验室是推动这一转变的关键,他们采用基于统计的方法,将当时的语音识别率从70%提升到90%。在这一阶段,自然语言处理基于数学模型和统计的方法取得了实质性的突破,从实验室走向实际应用。


3、2008年到2019年——深度学习的RNN、LSTM、GRU


      从2008年到现在,在图像识别和语音识别领域的成果激励下,人们也逐渐开始引入深度学习来做自然语言处理研究,由最初的词向量到2013年的word2vec,将深度学习与自然语言处理的结合推向了高潮,并在机器翻译、问答系统、阅读理解等领域取得了一定成功。深度学习是一个多层的神经网络,从输入层开始经过逐层非线性的变化得到输出。从输入到输出做端到端的训练。把输入到输出对的数据准备好,设计并训练一个神经网络,即可执行预想的任务。RNN已经是自然语言处理最常用的方法之一,GRU、LSTM等模型相继引发了一轮又一轮的热潮。


7、自然语言处理最新进展


      近年来,预训练语言模型在自然语言处理领域有了重要进展。预训练模型指的是首先在大规模无监督的语料上进行长时间的无监督或者是自监督的预先训练(pre-training),获得通用的语言建模和表示能力。之后在应用到实际任务上时对模型不需要做大的改动,只需要在原有语言表示模型上增加针对特定任务获得输出结果的输出层,并使用任务语料对模型进行少许训练即可,这一步骤被称作微调(fine tuning)。

      自 ELMo、GPT、BERT 等一系列预训练语言表示模型(Pre-trained Language Representation Model)出现以来,预训练模型在绝大多数自然语言处理任务上都展现出了远远超过传统模型的效果,受到越来越多的关注,是 NLP 领域近年来最大的突破之一,是自然语言处理领域的最重要进展。

image.png

      BERT(Bidirectional Encoder Representation from Transformer)是 Google AI于NAACL2019 提出的一个预训练语言模型。BERT 的创新点是提出了有效的无监督预训练任务,从而使得模型能够从无标注语料中获得通用的语言建模能力。BERT之后涌现了许多对其进行扩展的模型(如上图所示),包括:跨语言预训练的XLM和UDify,跨模态预训练的模型,融合知识图谱的ERNIE,将seq2seq等语言生成任务整合入BERT类模型的MASS, UniLM等。其中几个重要的进展包括:


(1)XLNet使用Transformer-XL替代了Transformer作为基础模型,拥有编码超长序列的能力。XLNet提出了一个新的预训练语言任务:Permutation Language Modeling(排列语言模型),模型将句子内的词语打乱顺序,从而使得预测当前词语时可以利用双向信息。XLNet相对BERT也使用了更多的语料。

(2)RoBERTa采用了与BERT具有相同的模型结构,同样采用了屏蔽语言模型任务进行预训练,但舍弃了 BERT中下句预测模型。此外,RoBERTa采用了更大规模的数据和更鲁棒的优化方法,从而取得了更好的表现。

(3)ALBERT模型针对BERT参数量过大难以训练的问题做了优化,一是对词向量矩阵做分解,二是在层与层之间共享参数。此外,ALBERT将下句预测模型替换为句序预测任务,即给定一些句子预测它们的排列顺序。


自然语言处理技术的案例应用


1、算法实践中常用的库


word2vec

nltk

jieba


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
哈工大自然语言处理ltp在windows10下的源代码安装时builtin_converters.cpp报错
安装LTP的环境要求比较复杂,首先cmake,VS2010等等。今天要说的时编译过程中出现的一个坑,python setup.py install,编译到后面会报错。直接上错误代码: patch\libs\python\src\converter\builtin_converters.
3179 0
转:JavaScript事件冒泡简介及应用
(本文转载自别处) JavaScript事件冒泡简介及应用   一、什么是事件冒泡 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。
676 0
中文自然语言处理工具集:分词,相似度匹配
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 分词工具 结巴分词 https://github.
1531 0
使用Keras进行深度学习:(三)使用text-CNN处理自然语言(上)
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 上一篇文章中一直围绕着CNN处理图像数据进行讲解,而CNN除了处理图像数据之外,还适用于文本分类。
1404 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
6362 0
Web系统下Office文档的处理 之OpenXml应用分类资料
本文对常见的处理参考和工具提供一个简要的参考。 对于实际的解决方案参考如下地址(有很多的分类知识) http://blogs.msdn.com/b/ericwhite/archive/2008/10/20/eric-white-s-blog-s-table-of-contents.
886 0
阿里云自然语言处理 .NET 使用示例
阿里云自然语言处理(Natural Language Processing)是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,旨在帮助用户高效的处理文本,已经广泛应用在电商、文化娱乐、金融、物流等行业客户的多项业务中,取得了良好的效果。
3349 0
了解对自然语言处理的卷积神经网络
了解对自然语言处理的卷积神经网络 当我们听到卷积神经网络(CNN)的时候,我们通常会想到计算机视觉。 CNN负责图像分类的重大突破,是当今大多数计算视觉系统的核心,从Facebook的自动照片标签到自动驾驶。
790 0
《C++语言入门经典》一第1章 初识C++——“Hello World!” 1.1 C++的历史背景
本节书摘来自华章出版社《C++语言入门经典》一书中的第1章,第1.1节,作者 郭鑫 顾彦玲,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1750 0
5条建议,让应用软件服务发挥云计算平台的优势
传统的企业应用软件开发者,在软件开发的哪些方面应该做出调整,以利用云计算的优势,开发出可快速扩展、可自动维护的互联网级的应用服务?
1422 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
1701
文章
0
问答
来源圈子
更多
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载