自然语言处理(Natural Language Processing,NLP)是在机器语言和人类语言之间沟通的桥梁,用计算机来处理、理解及运用人类语言(如中文、英文等),以实现人机交流的目的,它是人工智能的一个分支,是计算机科学和语言学的交叉学科,称为计算语言学,如图2-52所示。由于自然语言是人类区别于其他动物的根本标志,没有语言,人类的思维就无从谈起,所以对于机器而言,能够处理自然语言的智能机器才真正体现了人工智能的最高能力与境界,也就是说,只有当机器具备了处理自然语言的能力,才算是实现了真正的智能。
图2-52 自然语言处理
自然语言处理的兴起与机器翻译有着不可分开的联系,机器能够理解、处理自然语言,是计算机技术的一项重大突破。比如,机器能够将一种自然语言翻译为另外一种自然语言,自动将英文“I like China”翻译为“我爱中国”,或者反过来,将“我爱中国”翻译为“I like China”,如图2-53所示。如果能够通过机器翻译准确地进行语言间的翻译,将大大提高人类沟通的效率。自然语言处理的应用除了机器翻译外,还包括信息检索、自动问答、情感分析、信息抽取等。
图2-53 NLP
2.自然语言的发展历程
自然语言处理是涵盖了计算机科学、语言学、心理认知学等一系列学科的一个交叉研究领域。其发展趋势是从规则到统计再到深度学习,大致经历了4个阶段。
(1)萌芽期(1956年以前)
从20世纪40年代末到50年代初,是自然语言处理的基础研究阶段。随着第一台计算机问世,英国数学家布斯(A.Donald Booth)和美国数学家韦弗(W.Weaver)开始了机器翻译方面的研究。1948年,香农把离散马尔可夫过程的概率模型应用于描述语言的自动机。接着,他又把热力学中“熵”(entropy)的概念引入语言处理的概率算法中。20世纪50年代初,Kleene研究了有限自动机和正则表达式。1956年,艾弗拉姆·乔姆斯基(Chomsky)又提出了上下文无关语法,并把它运用到自然语言处理中。他们的工作直接促成了基于规则和基于概率这两种自然语言处理技术的产生。另外,这一时期还取得了一些令人瞩目的研究成果。比如,1946年Köenig进行了关于声谱的研究,1952年贝尔实验室语音识别系统的研究,1956年人工智能的诞生为自然语言处理翻开了新的篇章。
(2)快速发展期(1957—1970年)
从20世纪60年代开始,自然语言处理很快融入了人工智能的研究领域中。由于有基于规则和基于概率这两种不同方法的存在,自然语言处理的研究在这一时期分为两大阵营:一个是基于规则方法的符号派(Symbolic),另一个是采用概率方法的随机派(Stochastic)。
从20世纪50年代中期开始到60年代中期,以艾弗拉姆·乔姆斯基为代表的符号派学者开始了形式语言理论和生成句法的研究,60年代末又进行了形式逻辑系统的研究。而随机派学者采用基于贝叶斯方法的统计学研究方法。这一时期多数学者注重研究推理和逻辑问题,所以基于规则方法的研究势头明显强于基于概率方法的研究势头。1959年,宾夕法尼亚大学研制成功了TDAP系统,布朗美国英语语料库建立;1967年,美国心理学家Neisser提出认知心理学的概念,直接把自然语言处理与人类的认知联系起来。
(3)低谷发展期(1971—1993年)
20世纪70年代后,自然语言处理出现了低谷期。随着研究的深入,基于自然语言处理的应用不能在短时间内实现,新问题又不断地涌现,该时期对自然语言处理的研究丧失了信心。尽管如此,一些发达国家依旧研究出了新的成果,比如,基于隐马尔可夫模型(Hidden Markov Model,HMM)的统计方法在语音识别领域获得成功。20世纪80年代初,话语分析(Discourse Analysis)也取得了重大进展。
(4)复苏融合期(1994年—至今)
20世纪90年代后,自然语言处理进入复苏融合阶段。计算机的速度和存储量大幅增加,为自然语言处理改善了物质基础,使得语音和语言处理的商品化开发成为可能;1994年,Internet商业化和同期网络技术的发展使得基于自然语言的信息检索和信息抽取的需求变得更加突出。
进入21世纪后,自然语言处理有了突飞猛进的变化。2000年后,自然语言处理的8个里程碑事件主要是:2001年的神经语言模型;2008年的多任务学习;2013年的Word词嵌入;2013年的自然语言处理神经网络;2014年的序列到序列模型;2015年的注意力机制;2015年的基于记忆的神经网络;2018年的预训练语言模型。
3.自然语言处理技术
自然语言处理用计算机对自然语言的形、音、义等信息进行处理,对字、词、句、段落、篇章进行输入、输出、识别、分析、理解、生成等操作和加工。许多语言学家把语言处理过程分成5个层次,分别是语音分析、词法分析、句法分析、语义分析和语用分析,如图2-54所示,这种层次化的划分更好地体现了语言本身的结构,并在一定程度上使得自然语言处理系统的模块化成为可能。
(1)语音分析
(www.xing528.com)
图2-54 自然语言处理技术
语音分析是指根据人类的发音规则或音位规则,以及人们的日常习惯发音,从语音传输数据中区分出一个个独立的音节或者音调,再根据对应的发音规则找出不同音节所对应的词素或词,进而由词到句,识别出人所说的一句话的完整信息,将其转化为对应的文字,这也正是语音识别的核心。构成单词发音的最小独立单元是音素,对于一种语言,例如英语,必须将声音的不同单元识别出来并分组。如pin和bin中分别有/p/和/b/这两个不同的音素,但pin、spin和tip中的音素/p/是同一个音素,它对应了一组略有差异的音。
(2)词法分析
词法分析的主要目的是从句子中切分出单词,找出词汇的各个词素,从中获得单词的语言学信息并确定单词的词义。如unchangeable是由un-change-able构成的。
不同的语言对词法分析有不同的要求。例如,英语和汉语在词法分析上就有较大的差别。在英语等语言中,词之间是以空格自然分开的,切分一个词很容易,所以找出句子的各个词就很方便。但是,由于英语中的词有词性数、时态、派生及变形等变化,要找出词中的各个词素就复杂得多,需要对词尾或词头进行分析,例如,英语中词尾中的词素“s”通常表示名词复数或动词第三人称单数;“ly”是副词的后缀;“ed”通常是动词的过去式与过去分词等。在汉语中,每个字就是一个词素,所以要找出各个词素是相当容易的。但要切分出各个词就非常困难,不仅需要构词的知识,还需要解决可能遇到的切分歧义。
(3)句法分析
句法分析是对句子和短语的结构进行分析。句法分析的目的是识别句子的句法结构,实现自动句法分析过程。其基本方法有线图分析、短语结构分析、完全句法分析、局部句法分析、依存句法分析等。句法分析的最大单位是一个句子,分析的目的是找出词、短语等的相互关系及各自在句子中的作用等,并以一种层次结构来加以表达,这种层次结构可以是反映从属关系、直接成分关系,也可以是语法功能关系。
(4)语义分析
句法分析完成后,一般还不能理解被分析的句子,还需要对其进行语义分析。语义分析就是通过分析找出词义、结构意义及其结合意义,更多的会涉及单词、词组、句子、段落所包含的意义分析,从而确定语言所表达的真正含义或概念。
(5)语用分析
语用分析研究语言所存在的外界环境对语言使用所产生的影响,是自然语言理解中更高层次的内容。它描述了语言的环境知识,以及语言与语言使用者在某个给定语言环境中的关系。关注语用信息的自然语言处理系统更侧重于讲话者/听话者模型的设定,而不是处理嵌入给定话语中的结构信息。
4.自然语言处理的应用
自然语言处理的应用中,人机交互系统主要分为对话系统和聊天机器人。
(1)对话系统
对话系统是以完成特定任务为主要目的的人机交互系统,比如预订机票、酒店、查询天气、制订日程。
(2)聊天机器人
聊天机器人主要侧重于闲聊,它的工作方式是通过语言、语音或者文字实现人机在任意开放话题上的交流,更倾向于情感层面的沟通。聊天机器人可分为基于规则式的聊天机器人、基于检索式的聊天机器人和基于生成式的聊天机器人。为了帮助大家区分,通过对话例子进行学习。
基于规则式的聊天机器人的对话:你跟它说“Hello”,它说“Hi,How are you”,你说“I am fine”,然后它说“I am happy to hear that”。然后你说“吃了点啥”,它说“OK,Good for you”。
基于检索式的聊天机器人的对话:你跟它说“你最近怎么样”,它说“挺好的,好久不见”,你问“你吃午饭了吗”,它说“我吃了番茄炒西红柿和马铃薯炒土豆丝,味道有点怪”。你再问它“番茄炒西红柿是什么”,它说“胡萝卜”。
基于生成式的聊天机器人的对话:你问它“你最近怎么样”,它说“最近忙着呢”,你问“你吃午饭了吗”,它说“吃完了”,你问“午饭吃的什么”,它说“我不知道”。
5.自然语言处理的挑战和未来
从长远来看,自然语言处理具有广阔的应用领域和前景,作为一个多学科交叉的新型领域,自然语言处理的繁荣发展对很多相关学科及方向都具有深远的影响力。伴随着各种词表、词义、词法、语料库等数据资源的日益丰富,分析技术的快速进步,新方法、新理论的不断涌现,研究模型的逐渐迭代更新,不仅可以为理论研究奠定坚实基础,自然语言处理的快速发展也将逐步巩固其在人工智能领域乃至整个计算机科学研究的核心课题地位。“路漫漫其修远兮”自然语言处理作为一个高度交叉的新型研究领域,不论是探究自然本质还是付诸实际应用,将来一定都会有令人期待的成果和异常快速的发展。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。