╮(╯▽╰)╭哎,自从人工智能火了以后,最近自称NLP研究者的人越来越多了,然而这其中的大忽悠有多少小夕就不想多说了。如果连自己在哪个领域、哪个学科搞研究都不懂的话,你相信他真的是这个领域的研究者喵?反正小夕不信╮(╯▽╰)╭
所以,这个问题就是:“自然语言处理跟自然语言理解和计算语言学是不是一个东西呢?”
在有的科普文,甚至书籍中,将自然语言处理、自然语言理解、计算语言学看作是一个东西,其实是很不准确的呐!小夕今天就讲一讲被大众媒体和诸多自称NLP领域的学者混为一谈的几个概念。
自然语言理解(NLU)
在60年前人工智能诞生之初,就提出了自然语言理解,并且将其作为人工智能最重要的研究方向。自然语言理解是为了探索人类语言能力和语言思维活动的本质,并模仿人类语言的认知过程来让计算机对人类语言进行理解和处理。其是语言学、计算机科学、认知科学、信息论和数学等多学科基础上形成的交叉学科。而其目标是让计算机真正的理解人类语言,进而进行处理与表达等。而判断计算机是否理解自然语言的标准就是“图灵测试”。
图灵测试在自然语言理解领域来说即:让一个人类提出问题,回答他的可能是人也可能是计算机。在计算机给出回答后,如果提问者分不清楚这是人还是计算机的回答,则认为计算机理解了人类语言,广义的说计算机具备了智能。
计算语言学(CL)
而计算语言学的侧重点是数学建模。将人类语言建模为计算机可以有效计算的算法。也就是说,出发点是语言学,而做的是将语言学中的严谨理论借鉴并转为计算机算法,是一门非常理性的学科,即一门纯理论的学科。同时,这也是基于规则的自然语言处理方法的理论核心。
自然语言处理(NLP)
自然语言处理则是面向具体的应用场景,从系统实现与工程的角度出发来对语言文本进行加工与处理。它不一定用数学方法,但是总归是要用某种方法来解决某个特定的工程问题。其实该学科诞生的需求便是互联网上文本信息的爆炸式增长,因此只要能将互联网上的文本信息处理成我们想要达到的效果就可以啦,不一定非要让计算机去理解自然语言呀,也不一定非要有严谨的语言学规则或者数学公式呀。
三者之间
这样看来应该有三门独立的学科才对,然而实际上我们发现国际上、国内的各大顶尖高校几乎只有“自然语言处理”这一个学科,偶尔会有个研究“计算语言学”的高校,而几乎没有研究“自然语言理解”的高校,为什么呢?
其实很好理解啦,虽然自然语言理解诞生的最早,但是遗憾的说,这门学科的有效进展几乎为0,也就是说现在远远谈不上让计算机去理解自然语言,依然停留在对自然语言进行处理的层次上。而随着基于规则的自然语言处理方法的衰落,计算语言学的研究热潮也大幅度冷却了。
插播一句,总有比较机智的做法,比如美国的CMU(不知道CMU的同学千万不要说自己是学计算机的!)就没有自然语言处理,人家起了个新名字叫“人类语言技术”,hhhhh,是不是感觉超机智呀~这样将来有一天计算机真的可以理解人类语言的时候,其他高校要将专业改名字啦,而CMU就不用改了╮(╯▽╰)╭
所以呀,从互相包含的关系上来说,自然语言处理(NLP)、自然语言理解(NLU)、计算语言学(CL)、人类语言技术(HLT)之间的关系是这样的:
2333,是不是感觉CMU特别心机婊╮(╯▽╰)╭
而从研究深度,或者说研究难度上说呢,NLU、CL、NLP这三个具备大量交集的领域是这样的:
所以呀,现在NLP领域正在蓬勃发展,带来了机器翻译(不解释)、搜索引擎(不解释)、人机对话(微软小冰、Siri等)、舆情检索(比如微博热搜)、文本情感分析(自动识别好评差评,参见天猫的评价标签)、信息抽取(如自动生成一篇文章的标题、文摘等,参见今日头条)、信息过滤(比如过滤小黄文或者反动言论,参加被请去喝茶的童鞋们)、文档分类(比如你写一篇足球赛事,计算机可以自动归类到体育主题,参加各大型新闻网站)、文本自动校正(参见word、搜狗拼音等,不解释啦)、语音识别、说话人识别、语音转文本、文本转语音等一系列技术~
所以呀,NLU的大量研究没有做到人工智能,但NLP却飞速发展中,通过各种方法实现计算机对自然语言的处理(甚至有时在老百姓看来,计算机好像真的理解了文本一样)。
那么深度学习会不会真正揭开NLU的篇章呢?小夕说啦,不可能哦。想象一下,一个小孩子学会一句话、并成功的将这句话转换成各种表达方式表达出来,只需要一两次的重复即可完成。而如今先进的深度学习模型则是消耗海量样本(意思即对一句话要重复上千上万次,甚至更多)才能完成勉强可以接受的“智能”水平,但是!一旦测试集稍加改变(比如改变一下问法、换一种表达方式),那么好不容易训练好的机器学习模型将近乎崩溃!所以也不难理解,哪怕是如今最先进的机器翻译系统,Google翻译,有时候在一句话的后面加一个毫无意义的“了”字,却会产生完全不同的两种翻译结果。究其根本原因就是计算机丝毫没有理解文本。虽然对大众来说这很难让人接受,但这是事实。
那么计算机何时可以真正去理解文本呢?期待新的机器学习模型吧!