自然语言处理NLP这样学,你也能炼出仙丹

通讯,书籍,消息,短信,歌曲,电影……我们很难想象没有语言的世界。

我们每天要面对非常多的文本和语音数据,而自然语言处理要做的,就是如何理解这些数据中并做一些有趣的事情。

目前我们接触到的视频聊天,自动售货机,无人机等等都属于自然语言处理的研究范畴,自然语言处理就是要培养人工智能来代替我们人类做这些事情,这门技术目前也是我们研究的热点。

自然语言处理(NaturalLanguageProcessing,NLP)是一门融合了计算机科学、人工智能及语言学的交叉学科,这门学科所研究的内容是如何通过机器学习等技术,让计算机学会处理人类的语言,最终实现理解人类语言或者打造出人工智能的目标。

可以看出自然语言处理所研究的内容的深度和广度是很大的,因此学习自然语言处理的过程是很漫长的,我认为学习自然语言处理的路线可以分为两部分:明确NLP的研究问题,找大量的书籍、资料、资源和向前辈学习,自己自学的道路是不太行得通的,因为这部分内容过于复杂和抽象。

大家可以按照我下面这个思维导图来进行学习:

下面我就按照思维导图来给大家一点点介绍:

在正式学习之前,我们首先要来了解一下自然语言处理的研究方向,有了方向感大家就可以根据自己的兴趣选择一个分支来入门,这样学习起来更轻松。

所谓自然语言处理,即NLP,就是通过用计算机来处理人类的语言、文字,从而可以代替人类做一些文书类的工作,例如咨询、售后、海量数据处理以及公文阅读与处理等。基于此,NLP领域延伸处理种类繁多的任务,这里我总结了文本向量化、命名实体识别-NER、文本分类、信息提取这四大类NLP任务,做一个介绍。

文本向量化

文本的向量化可谓是NLP进入深度学习时代的标志。所谓文本的向量化(embedding),就是将文本用一定维度的向量来表示,也可以理解为文本的数值化。通过embedding,文本的语义、句法等特征得以表征,便于下游模型的处理。

例如,“人/如果/没有/梦想/,/跟/咸鱼/还有/什么/差别”,向机器学习模型直接输入字符串显然是不明智的,这样直接输入机器是不识别的,毕竟是电脑不是人脑,不便于模型进行计算和文本之间的比较。

那么,我们需要一种方式来表示一个文本,这种文本表示方式要能够便于进行文本之间的比较,计算等。

最容易想到的,就是对文本进行向量化的表示。例如,根据语料库的分词结果,建立一个词典,每个词用一个向量来表示,这样就可以将文本向量化了。

命名实体识别-NER

命名实体识别(NamedEntityRecognition,NER)是NLP中一项非常基础的任务。NER是信息提取、问答系统、句法分析、机器翻译等众多NLP任务的重要基础工具。

所谓实体识别,就是将你想要获取到的实体类型,从一句话里面挑出来的过程。

如上面的例子所示,句子“小明在北京大学的燕园看了中国男篮的一场比赛”,通过NER模型,将“小明”以PER,“北京大学”以ORG,“燕园”以LOC,“中国男篮”以ORG为类别分别挑了出来。

命名实体识别的数据标注方式

NER是一种序列标注问题,因此他们的数据标注方式也遵照序列标注问题的方式,主要是BIOES。先列出来BIOES分别代表什么意思:

将“小明在北京大学的燕园看了中国男篮的一场比赛”这句话,进行标注,结果就是:

那么,换句话说,NER的过程,就是根据输入的句子,预测出其标注序列的过程。

文本分类

文本分类是一个不难理解的概念,即通过计算机对输入文本进行分类,例如判断“你真是个帅哥啊”这句话是褒义还是贬义。文本分类的应用场景很多,例如情感分类、机器人中的意图识别等。

听上去,分类问题似乎是个不难解决的问题,实际上文本分类有它的难度。

当类别非常多或者类别与类别之间差异很小时,文本分类就开始变得困难;再者,有时需要考虑额外特征才能分类正确,例如常常需要根据说话者语气,才能判断“你真是个帅哥啊”这句话是讽刺还是真心的赞美。

早期有一些基于传统机器学习的文本分类,例如基于某种词语特征的的贝叶斯模型,SVM分类器等。

信息提取

信息提取(IE)的目标是将文本信息转化为结构化信息,起初用于定位自然语言文档中的特定信息。

广泛地看,信息提取其实是一个非常宽泛的概念,从文本提出感兴趣的内容就可以称为信息提取。

在NLP中常常用实体抽取、关系抽取。

实体抽取是序列标记问题,上面的命名实体识别已经介绍过,关系抽取以及事件抽取则通常转化为分类的任务。关系抽取常常需要先确认subject(主观)以及object(客观)。所以,关系抽取任务常常伴随着实体抽取的要求。

信息提取的应用比如说拿来一篇论文,我们就可以识别出它的作者,发表年份,摘要,关键词等重要信息。

上文说了四个和自然语言处理有关的研究了问题,想必大家一定会有自己感兴趣的部分,我比较感兴趣的是NER—命名实体识别技术,给机器编码就能识别人类的语言,这让我觉得有些不可思议。

下面给大家详细讲解一下如何去学习自然语言处理。

自学阶段:NLP学习书籍推荐—《统计自然语言处理基础》

这本书是纯英文书籍,对于英文不太好的朋友来说可能读起来比较吃力,当然现在的翻译软件很强大这些应该都不是问题。这里可以给大家推荐一款翻译软件—知云文献翻译,大家边看边用这个翻译就不用担心看不懂的问题了。

我认为这本书比较好的一点是在每个章节的最后一部分都有一个深入学习和习题练习的部分,让读者更多的去发散思维,去练习巩固。深入学习的部分很多都是这个领域最前沿的研究成果,大家一定要珍惜资源,确实是来之不易的!

这本书主要分为四个部分,首先是介绍部分,里面会讲解自然语言处理学习的数学基础,第二部分会给大家介绍一些基本术语,让大家对自然语言处理中的一些概念有一个基本的了解,第三部分会给大家介绍一些算法和模型理论,最后一部分则是自然语言处理的一些应用。

总的来说这本书介绍的内容算是比较全面的,下面可以给大家简单介绍一下这几部分的内容:

第一部分:主讲数学基础

在数学基础这一部分里面这本书主讲了统计学的部分,像事件的运算律,条件概率的计算,贝叶斯公式的推导等等,这些公式要牢记,自然语言处理中构建概率统计模型会用到这些公式的推导。

第二部分:介绍基础概念

第二部分介绍了一些自然语言处理中的基础概念,其实更多的还是偏向统计学,比如说t检验,假设检验,极大似然估计,协方差等等。这里更多的是讲解构造模型之后的模型优化方法,以及如何检验模型的精确性等等。

第三部分:介绍一些算法和模型:

有了前面两部分的基础,在第三部分开始介绍算法和模型了,比如马氏链,隐马尔可夫模型,文本标注,词类标注等等,这也是我在介绍中提到的识别方面的问题。

第四部分:自然语言处理的应用

这里我举一个K-means聚类分析的例子,这个例子主要说明这个算法的本质是什么样的,将样本集合划分为k个子集,随机选取k个样本点为类中心,然后计算其他样本点到则k个中心的距离,最小的归为一类,这样得到一个新的类,然后计算这k个类的中心,在按照开头的方法计算距离,重新划分,如果最后类没有变化,则停止聚类,若有变化,则继续迭代,直到没有变化为止。

这种聚类方法最多的应用还是在于文字识别,把文字相似的编码放在一起,这样会提高机器的识别效率。

这样的例子在最后一部分还有很多,比如说支持向量机,决策树,朴素贝叶斯算法的应用等等。

附加说明

这本书其实学起来是比较难的,不适合基础弱的小白去学习,我建议如果你的基础比较差的话,去加强一下高等数学基础,去看茆诗松《概率论与数理统计》,华东师范大学出版的《数学分析》上下册,北京大学出版的《高等代数》。把这三部分内容看完,差不多就能打好基础了,再来学这本书也就不吃力了。

向前辈学习:网课推荐—贪心科技NLP算法课程

看书的过程是一个自学的过程,我们不仅要自学自己独立思考,还要向前辈们取取经。这里我向大家推荐贪心科技的NLP算法课程。这门课程介绍了很多关于NLP的算法,比如情感分析,文本识别,分类,回归,聚类等等。干货有很多,下面让我来给大家一一介绍:

首先给大家看一下课程学习安排,可以看到课程分为试学课程和正式课程。

试学课程里面会给大家介绍一些基本的概念,比如说机器学习,深度学习,这两个都是自然语言处理学习的重要分支。还会介绍一些向量,矩阵,线性回归等数学方面的知识,数学忘了的朋友在这里可以捡一捡。大家可以在试学课程里面“热热身”,做做准备活动为正式上战场做准备,打个预防针。

课程中还为大家提供了明确的学习路径,学习路线里面也告诉了大家初级阶段和高级阶段大家要去学什么,我建议大家如果是学自然语言处理的话学初级阶段的三个课程就够了,高级课程难度有些过于高,适合专业的高级算法工程师去学习。

在必备基础这一部分,老师重点提到了编程基础是核心,我们至少要掌握一种编程语言,在这里我给大家推荐学习Python,Python编程语法相对来说简单,易掌握,而且Python在处理数据方面功能强大,是学习NLP的好工具。

我这里可以给大家推荐下面这本书来学习Python,这本书讲的很基础,包括Python的安装,字符,变量类型到函数的调用等等,源代码很详细,方便大家上机去操作。

在每节课程开始之前,都有一道选择题来帮助大家先了解一下课程内容,在正式课程上面也有一段话来介绍即将要讲的课程是什么,我觉得这是比较人性化的,会起到一个预习的效果。

在课程视频里面你会看到老师和你面对面,老师一边讲课会一边用笔在上面写,几乎就和在教室里面上课差别不大,方便大家可以边记笔记边听课。

这门课程一共十八个章节,除了第一章介绍基础之外别的几乎都是在介绍算法和应用,内容都是满满干货,绝无水分!

THE END
1.自然语言处理(NLP)学习路线总结自然语言处理学习路线文本挖掘(Text Mining)是自然语言处理(NLP)领域中的一项重要技术,它涉及从大量非结构化文本数据中提取有用信息和知识的过程。文本挖掘的目标是帮助人们从文本数据中发现隐藏的模式、趋势和关系,以便更好地理解和利用这些数据。以下是NLP中文本挖掘的学习路线图: https://blog.csdn.net/chengxuyuanyy/article/details/141422348
2.nlp流程图mob649e81553a70的技术博客自然语言处理 (NLP) 流程图解析 自然语言处理(NLP)是计算机科学和人工智能领域的重要分支,其目标是使机器能够理解、解释和生成自然语言。本文将介绍NLP的基本流程,并通过代码示例帮助理解其实现。我们将通过图示化工具和示例代码来阐明这一过程。 NLP 的基本流程 https://blog.51cto.com/u_16175437/11941141
3.NLP第1课:中文自然语言处理的完整机器处理流程本文将带领大家熟悉和回顾一个完整的自然语言处理过程,后续所有章节所有示例开发都将遵从这个处理过程。 首先我们通过一张图来了解 NLP 所包含的技术知识点,这张图从分析对象和分析内容两个不同的维度来进行表达,个人觉得内容只能作为参考,对于整个 AI 背景下的自然语言处理来说还不够完整。 https://www.jianshu.com/p/0c09a2a9f39e
4.深入理解自然语言处理:从文本预处理到处理流程的全面解析在人工智能的广阔领域中,自然语言处理(Natural Language Processing, NLP)扮演着举足轻重的角色。NLP旨在实现人与计算机之间通过自然语言的有效沟通,其应用范围从机器翻译、舆情监测到自动摘要等多个领域。本文将带您走进NLP的世界,从文本预处理开始,逐步解析NLP的整个处理流程。 自然语言处理概述 NLP是计算机科学、人工智https://developer.baidu.com/article/details/3353353
5.智能文档处理IDP关键技术与实践图1 常见文字信息表达方式 智能文档处理(Intelligence Document Processing, IDP)技术是针对文档内容自动处理分析的一揽子技术,除自然语言处理技术外,还包括计算机视觉、文档解析等相关底层技术,因此相较于NLP技术,IDP技术更加复杂。在IDP技术中,光学字符识别(Optical Character Recognition,OCR)技术,文档解析(Document Parsinghttps://www.52nlp.cn/?p=13341
6.Python自然语言处理思维导图模板为你推荐 查看更多? 深度学习与自然语言处理 自然语言处理流程图 自然语言处理NLU 机器学习自然语言处理用户画像构造过程思维导图 语言模型 自然语言处理 Python入门 python知识点 自然语言处理理论与实战 自然语言处理模块流程图 Python自然语言处理 Python自然语言处理 https://www.processon.com/view/5e5b6da8e4b0d4dc8777276a
7.「自然语言处理(NLP)」入门系列(一)初识NLP自然语言处理流程图 1、语音或文本的输入和初始处理过程,并将其分解成小块进行处理。对于语音来说,这一步叫做语音分析,它包括把语音分解成单个的声音,叫做音素。对于文本输入,这包括光学字符识别(OCR)和标记化。OCR是用来识别文本中的单个字符的,如果它是作为图像而不是字符组成的单词输入的。标记化https://zhuanlan.zhihu.com/p/101562935
8.重磅!!“NLP系列教程01”之自然语言处理概要自然语言理解的终极目标就是实现AI-Complete[1],它的意思就是能够完全理解和语言代表符号的含义。但是不管以什么标准进行衡量这都是很难达到的,即使拥有最强大脑的人类也很难能达到这一点。 当前自然语言处理的基本流程图如下所示,自然语言理解主要分析的两块分别是句法分析和语义理解。 https://cloud.tencent.com/developer/article/1483235
9.人工智能算法小白入门系列二、全景图 上图(图1)充分展示了自然语言处理工程化中的各个流程模块,依次包括:1. 业务场景分析2. 数据获取 3.数据预处理 4. 特征工程 建模与训练 6. 模型评估 7. 模型部署与管理 8.模型性能与监控等。文章将从这几个维度依次展开解析。 三、细节描述 https://blog.itpub.net/70001864/viewspace-2781679/
10.GitHubAilln/nlp? 一个「自然语言处理」的学习路线图。 注意: 这个项目包含一个名为PCB的小实验,这个的 PCB 不是印刷电路板Printed Circuit Board,也不是进程控制块Process Control Block,而是Paper Code Blog的缩写。我认为论文、代码和博客这三个东西,可以让我们兼顾理论和实践同时,快速地掌握知识点! https://github.com/Ailln/nlp-roadmap
11.自然语言处理模型流程包含六个步骤自然语言处理(NLP)模型的一般处理流程可以归纳为以下六个步骤: 一、数据收集与预处理 数据收集:从各种来源收集大规模的文本数据,这些数据将用于训练和优化NLP模型。 预处理:对收集到的文本数据进行清洗和整理,包括去除无关字符、纠正拼写错误、统一格式等。 https://www.ai-indeed.com/encyclopedia/10660.html