1 初步介绍

  • 现在随着互联网的发展,网络的上传和下载文件的速度有了极大的提高。因此现在的基础设施,越来越多高要求的应用有了可行性。人工智能,深度学习,自然语言处理等网络热词频频出现在我们的视野,那么,到底什么是自然语言处理呢?接下来就由我们来给大家科普一下自然语言处理到底是什么,做什么,以及对我们有什么帮助。
  • 首先,自然语言处理是人工智能的一个分支,最终的目标和人工智能一样都是模仿人的行为,而自然语言处理的终极目标细化到对语言的理解,使计算机像人一样阅读和理解语言,并且给出相应符合人类思维的回答。实现它的方式有很多,可以基于统计,也可以基于深度学习等方法。
  • 简单来说,自然语言处理就是,对计算机中各种各样的语言文本文件进行分析和应用上的处理。比如分析出一段文字的语义是否是消极的,又或者是辨别出一段文字的名词,形容词等。
  • 具体来说,自然语言处理,英文是Natural Language Processing,简写NLP。可以把它分成“自然语言”和“处理”两部分。先来看自然语言。现在世界上所有的语种语言,都属于自然语言,包括汉语、英语、法语等。然后再来看“处理”。这个“处理”是指计算机进行处理。但计算机毕竟不是人,无法像人一样处理文本,需要有自己的处理方式。因此自然语言处理,即是计算机接受用户自然语言形式的输入,并在内部通过人类所定义的算法进行加工、计算等系列操作,以模拟人类对自然语言的理解,并返回用户所期望的结果。
  • 正如机械解放人类的双手一样,自然语言处理的目的在于用计算机代替人工来处理大规模的自然语言信息。它是人工智能、计算机科学、信息工程的交叉领域,涉及统计学、语言学等的知识。由于语言是人类思维的证明,故自然语言处理是人工智能的最高境界,被誉为“人工智能皇冠上的明珠”。
  • 那么,自然语言处理具体能够给我们带来些什么呢
    下面是自然语言处理在整个领域中所处的具体位置和它主要做的一些内容
  • 自然语言处理的应用非常的广泛而且实用,下面针对自然语言处理的细分领域,让我们一起深入自然语言处理吧!

2 应用

2.1 语义理解

  • 语义理解技术简单来说就是让计算机像人一样实现对文本篇章的理解,并且回答与篇章相关问题的过程。语义理解更注重于对上下文的理解以及对答案精准程度的把控。比如说,给出一段文字,然后再提出一个问题,计算机通过算法模型,根据文本的语义输出这个问题的答案。下面这张图是一个实例,计算机通过阅读理解了文章Passage和问题Question之后,回答相应的答案。

2.2 文本摘要

  • 就是交给计算机一段文字或者是一整篇论文,然后计算机根据你的正文来输出针对这段文字的摘要。其核心技术是要聚焦到文本文件最核心的部分,然后自动生成摘要。这个技术模仿了人独有的一个特征,那就是注意力。我们人在面对多个事务之前,总是会有优先级。就像你在酒吧当中,很多人都在说话,但是如果有人叫你的名字,或者你对某个人很感兴趣,那么你的大脑就会过滤掉其他的声音,而专注于你关注的事务。你看,计算机能做到这样的事,是不是越来越有人类的呢?

2.3 语言推理和溯因自然语言推理(aNLI)

  • 语言推理:给计算机输入两个句子,然后计算机给你判断出两个句子之间的关系,比如是增强关系,或者是因果关系等。
  • 溯因自然语言推理(aNLI):这是计算机模仿人类想象力的一种实现,因为人在面对一个问题的时候,比如有人问你什么是蓝色的事务,那么你的脑海中就会产生大量的与蓝色相关的事务,如天空,蓝鲸,蓝色汽车等,甚至也会联想到和蓝色不相关的,如篮子,兰花等。Anli就是使计算机模仿人类的日常对话的技术,它相较于自然语言推理的话,想象空间更大,并且更加符合人类的日常交流

2.4 情绪分析

  • 情绪分析是自然语言处理中文本分类的一种具体的应用。
  • 文本分类是指用计算机对文本(或其他实体)按照一定的分类体系或标准进行自动分类标记。伴随着信息的爆炸式增长,人工的标注每个数据属于哪一个类别已经变得非常耗时,并且质量低下,因为受到标注人主观意识的影响。因此,利用计算机自动的来实现对文本进行分类的变得具有很大的意义,将重复且枯燥的文本分类任务交由计算机进行处理能够有效克服以上问题,同时所分类的数据具有一致性、高质量等特点。
  • 情绪分析是计算机在学习了人类情绪特点之后对文本进行情绪上的分类,识别给定文本的情绪(比如,非常消极、消极、中性、积极、非常积极)。如果句子措辞清晰明确,比如“我不喜欢冬天的天气”,情绪分析就可以很简单。然而,当人工智能系统遇到具有翻转结构或否定的句子时,情绪分析可能会变得更具挑战性,例如“说讨厌冬天的天气不是我真正的事情,这是完全不准确的。情感分析核心难点在于如何理解文本情绪以及如何度量文本之间的距离。
  • 下面是一个例子如图所示:

2.5 机器翻译

  • 简单来说,就是利用计算机技术实现从一种自然语言到另外一种自然语言的翻译过程。现在基于统计,深度学习的机器翻译方法突破了之前基于规则和实例翻译方法的局限性,翻译性能取得巨大提升。基于深度神经网络的机器翻译在日常口语等一些场景的成功应用已经显现出了巨大的潜力。随着上下文的语境表征和知识逻辑推理能力的发展,自然语言知识图谱不断扩充,机器翻译将会在多轮对话翻译及篇章翻译等领域取得更大进展。

2.6 问答系统和对话系统

  • 严格上来说,问答系统和对话系统是人工智能多个领域分支结合起来共同实现的技术,自然语言处理是系统中不可获取的一部分。对话系统是接受用户提出的的问题,并返回像人一样相应的回答。常见形式为检索式、抽取式和生成式三种。近年来交互式也逐渐受到关注。典型应用有智能客服。与问答系统有许多相通之处,区别在于问答系统旨在直接给出精准回答,回答是否口语化不在主要考虑范围内;而对话系统旨在以口语化的自然语言对话的方式解决用户问题。对话系统目前分闲聊式和任务导向型。前者主要应用有siri、小冰等;后者主要应用有车载聊天机器人。(对话系统和问答系统应该是最接近NLP终极目标的领域)

3 应用实现的一般步骤

  • 好了,我们了解了自然语言模仿了人类的方方面面,想象力,注意力,理解能力,情绪和对话等等,那么,我们到底是怎么让计算机实现这些技术的呢?下面我们就了解一下自然语言的基本技术吧!
  • 其实现在要实现这些自然语言的技术,一定离不开大数据的支持。像人一样,人类对一件事情做出什么样的反应,有非常大的比重是来自于人类之前经历过的事情,也就是所谓的经验。有了经验,你才会对做某个事情更加得心应手。比如你去考试,如果你在之前已经做了类似的很多题目了,那么你就学习到了很多经验,基于这些经验,这次考试你做出的选择一般来说都是对的。计算机也同样如此,背后大数据的支撑,就是计算机所谓的“经验”,利用这些数据,计算机就可以做出更好更加正确的模仿人类。
  • 另外,自然语言处理的很多细分应用场景中,一般都离不开几个必要的步骤,在介绍具体的实现细节之前,先举一个简单的现实例子来预热一下,准备好了吗?
  • 比如说你想要做一个模型,让计算机帮你分析一个人是否可以做你的男/女朋友,首先你在现实中是对大量的人本身有一个基本度量的,你会很清楚这些人当中哪些是符合你的预期,适合做男女朋友的,哪些坚决不行。然后把这个人的特征抽取出来,比如你喜欢的人身高要在1.6米以上,善良,有车有房等等,计算机就可以根据这些具体量化的特征进行判断,从而输出适合和不适合两个答案。如果计算机输出不符合你的预期,那么就调整输入的特征参数(因为最开始计算机是不知道你身高的要求是1.6米的),将身高这个特征调整为1.55米,或者调整这个特征占整个特征的比重等等,然后重新计算输出,不断的循环,不断的调整特征的参数,直到输出大概率都符合你的预期为止。这样,一个男女朋友判断模型就做出来了。
  • 好了,我们了解了一个简单的模型是怎么实现了之后,具体展开聊聊每个步骤具体要做的事情。

  • 一是获取数据集,让计算机获得所谓的习题和答案。
  • 二是对数据集进行数据的预处理,预处理过程中要对数据集中没有用和重复的词语进行处理,让计算机获得的数据集是高质量的,然后要对这些数据集进行分词,因为计算机是不能直接识别理解一个一个的文字的,所以为了让计算机可以量化每一个文字,我们要先把数据集分成一个一个的词,然后进行特征工程,也就是把每个词变成一个一个的向量。词向量基于某个规则进行(如one-hot、word2vec),每一个词向量不是随机产生的,而是会和周围的其他文字共同计算之后产生,这样每个词向量就和周围的词向量产生了联系,计算机就是通过这种方式来实现理解每个文字之间的联系的。之后就是针对不同的应用进行具体特征的选择,常用算法有(DF、MI、IG、CHI、WLLR、WFO等),至此,就把一个人可以理解的文字集合转变成了计算机可以理解的词向量集合。
  • 三是对某个应用构造具体的模型,我们把这些词向量集合输入计算机之后,根据某个模型(也就是一个算法),基于数据集的“经验”进行计算,从而产生我们想要的结果,如果计算的结果不符合我们的预期,那么就调整每个输入特征的权重,在不断的循环优化中,逐渐的达成我们想要的预期,就像是不断做题的过程,获得了经验就可以做对这个题目。这个过程就是所谓一个计算机的模型学习,将知识转化为经验的过程。
  • 最后就是对模型进行评估,一般我们把数据集分成训练集和测试集两个部分,训练集就是用于对模型进行训练的过程,过程中会不断优化每个输入特征的参数权重。而测试集就是检验我们模型的准确率,区别就在于使用测试集的这个过程不会改变参数权重,而是仅仅观察模型输出的答案是否符合我们的预期。
    以上,就是一般情况下自然语言处理必做的几个步骤。

  • 常见的模型分为机器学习模型和深度学习两种:
    常见的机器学习模型有KNN,SVM,Naive Bayes,决策树,GBDT,K-means等。
    常见的深度学习模型有CNN,RNN,LSTM,Seq2Seq,Fast Text,Text CNN等。

4 未来发展

  • 现在几乎人人都离不开互联网,而且会将大量的文本数据存储放在网络上,这样就产生了大量的自然语言文本文件,这是一个巨大的资源,自然语言处理现在的发展很快,越来越多的人把注意力放在自然语言处理上面,很多方面的应用都有很大的进展,精度也越来越向人类靠近,甚至某些方面已经超越人类。但是,由于所有应用方面都是基于一个很简单的事情来做,跟具体人能干的事情还是差得很远。这些任务大多都只能对应于人的感知,比如识别一个图片里的东西或视频里的东西,都是人类几秒钟能做的事情,但是对于人类需要几个小时,甚至很多天才能做的事情,是没有涉及到的。所以自然语言处理有非常大的发展空间