自然语言处理(Natural language processing | NLP)
网络上有海量的文本信息,想要处理这些非结构化的数据就需要利用 NLP 技术。
本文将介绍 NLP 的基本概念,2大任务,4个典型应用和6个实践步骤。
NLP 为什么重要?
“语言理解是人工智能领域皇冠上的明珠” ——比尔·盖茨
在人工智能出现之前,机器智能处理结构化的数据(例如 Excel 里的数据)。但是网络中大部分的数据都是非结构化的,例如:文章、图片、音频、视频…
结构化数据和非结构化数据
在非结构数据中,文本的数量是最多的,他虽然没有图片和视频占用的空间大,但是他的信息量是最大的。
为了能够分析和利用这些文本信息,我们就需要利用 NLP 技术,让机器理解这些文本信息,并加以利用。
什么是自然语言处理 – NLP
每种动物都有自己的语言,机器也是!
自然语言处理(NLP)就是在机器语言和人类语言之间沟通的桥梁,以实现人机交流的目的。
人类通过语言来交流,狗通过汪汪叫来交流。机器也有自己的交流方式,那就是数字信息。
不同物种有自己的沟通方式
不同的语言之间是无法沟通的,比如说人类就无法听懂狗叫,甚至不同语言的人类之间都无法直接交流,需要翻译才能交流。
而计算机更是如此,为了让计算机之间互相交流,人们让所有计算机都遵守一些规则,计算机的这些规则就是计算机之间的语言。
既然不同人类语言之间可以有翻译,那么人类和机器之间是否可以通过“翻译”的方式来直接交流呢?
NLP 就是人类和机器之间沟通的桥梁!
NLP就是人类和机器之间沟通的桥梁
为什么是“自然语言”处理?
自然语言就是大家平时在生活中常用的表达方式,大家平时说的「讲人话」就是这个意思。
自然语言:我背有点驼(非自然语言:我的背部呈弯曲状)
自然语言:宝宝的经纪人睡了宝宝的宝宝(微博上这种段子一大把)
NLP 的2大核心任务
NLP有2个核心任务:NLU和NLG
NLP 有2个核心的任务:
自然语言理解 – NLU | NLI
自然语言生成 – NLG
自然语言理解 – NLU|NLI
自然语言理解就是希望机器像人一样,具备正常人的语言理解能力,由于自然语言在理解上有很多难点(下面详细说明),所以 NLU 是至今还远不如人类的表现。
自然语言理解的5个难点:
语言的多样性
语言的歧义性
语言的鲁棒性
语言的知识依赖
语言的上下文
想要深入了解NLU,可以看看这篇文章《一文看懂自然语言理解-NLU(基本概念+实际应用+3种实现方式)》
自然语言生成 – NLG
NLG - 将非语言格式的数据转换成人类可以理解的语言格式
NLG 是为了跨越人类和机器之间的沟通鸿沟,将非语言格式的数据转换成人类可以理解的语言格式,如文章、报告等。
NLG 的6个步骤:
内容确定 – Content Determination
文本结构 – Text Structuring
句子聚合 – Sentence Aggregation
语法化 – Lexicalisation
参考表达式生成 – Referring Expression Generation|REG
语言实现 – Linguistic Realisation
想要深入了解NLG,可以看看这篇文章《一文看懂自然语言生成 – NLG(6个实现步骤+3个典型应用)》
NLP 的5个难点
NLP 的5个难点
语言是没有规律的,或者说规律是错综复杂的。
语言是可以自由组合的,可以组合复杂的语言表达。
语言是一个开放集合,我们可以任意的发明创造一些新的表达方式。
语言需要联系到实践知识,有一定的知识依赖。
语言的使用要基于环境和上下文。
NLP 的4个典型应用
NLP的4种典型应用
情感分析
互联网上有大量的文本信息,这些信息想要表达的内容是五花八门的,但是他们抒发的情感是一致的:正面/积极的 – 负面/消极的。
通过情感分析,可以快速了解用户的舆情情况。
聊天机器人
过去只有 Siri、小冰这些机器人,大家使用的动力并不强,只是当做一个娱乐的方式。但是最近几年智能音箱的快速发展让大家感受到了聊天机器人的价值。
而且未来随着智能家居,智能汽车的发展,聊天机器人会有更大的使用价值。
语音识别
语音识别已经成为了全民级的引用,微信里可以语音转文字,汽车中使用导航可以直接说目的地,老年人使用输入法也可以直接语音而不用学习拼音…
机器翻译
目前的机器翻译准确率已经很高了,大家使用 Google 翻译完全可以看懂文章的大意。传统的人肉翻译未来很可能会失业。
NLP 的 2 种途径、3 个核心步骤
NLP 可以使用传统的机器学习方法来处理,也可以使用深度学习的方法来处理。2 种不同的途径也对应着不同的处理步骤。详情如下:
方式 1:传统机器学习的 NLP 流程
传统机器学习的 NLP 流程
步骤一、语料预处理
中文语料预处理 4 个步骤(下文详解)
英文语料预处理的 6 个步骤(下文详解)
步骤二、特征工程
特征提取
特征选择
步骤三、选择分类器
方式 2:深度学习的 NLP 流程
深度学习的 NLP 流程
步骤一、语料预处理
中文语料预处理 4 个步骤(下文详解)
英文语料预处理的 6 个步骤(下文详解)
步骤二、设计模型
步骤三、模型训练
英文 NLP 语料预处理的 6 个步骤
英文 NLP 语料预处理的 6 个步骤
分词 – Tokenization
词干提取 – Stemming
词形还原 – Lemmatization
词性标注 – Parts of Speech
命名实体识别 – NER
分块 – Chunking
中文 NLP 语料预处理的 4 个步骤
中文 NLP 语料预处理的 4 个步骤
中文分词 – Chinese Word Segmentation
词性标注 – Parts of Speech
命名实体识别 – NER
去除停用词
总结
自然语言处理(NLP)就是在机器语言和人类语言之间沟通的桥梁,以实现人机交流的目的。
NLP的2个核心任务
自然语言理解 – NLU
自然语言生成 – NLG
NLP 的5个难点
语言是没有规律的,或者说规律是错综复杂的。
语言是可以自由组合的,可以组合复杂的语言表达。
语言是一个开放集合,我们可以任意的发明创造一些新的表达方式。
语言需要联系到实践知识,有一定的知识依赖。
语言的使用要基于环境和上下文。
NLP 的4个典型应用
情感分析
聊天机器人
语音识别
机器翻译
NLP 的6个实现步骤
分词-tokenization
次干提取-stemming
词形还原-lemmatization
词性标注-pos tags
命名实体识别-ner
分块-chunking
百科介绍
百度百科(详情)
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。
自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。
维基百科(详情)
自然语言处理(NLP)是计算机科学,信息工程和人工智能的子领域,涉及计算机与人类(自然)语言之间的交互,特别是如何对计算机进行编程以处理和分析大量自然语言数据。自然语言处理中的挑战通常涉及语音识别,自然语言理解和自然语言生成。
扩展阅读
书籍
开拓视野
NLP领域中的迁移学习现状(2019-9)
从发展滞后到不断突破,NLP已成为AI又一燃爆点?(2019-7)
【技术综述】深度学习在自然语言处理中的应用发展史(2019-6)
干货|最全自然语言处理attention综述(2019-6)
AI产品经理必备知识:8个最先进的NLP领域的预训练模型(2019-6)
8种优秀预训练模型大盘点,NLP应用so easy!(2019-5)
中文对比英文自然语言处理NLP的区别综述(2019-3)
自然语言处理中注意力机制综述(2019-1)
实践类
赛尔笔记 | 四种常见NLP框架使用总结(2019-7)
8种优秀预训练模型大盘点,NLP应用so easy!(2019-4)
资源