本学期修读了“自然语言处理”这门课,趁着假期把学到的东西整理一下~
在了解自然语言处理相关知识之前,首先要知道什么是自然语言处理、自然语言处理能干什么、怎么来做自然语言处理。
【一】什么是自然语言处理
个人认为,自然语言处理(Natural language processing,NLP)是将自然语言处理为计算机所能理解的东西,并利用计算机做一些进一步的处理以达到某些目的的方法。
那么问题来了,自然语言是什么?
自然语言,指人们平时用于交流的语言,例如英语、法语、汉语等等,也包括手语、旗语等,其标准定义为:人类社会发展过程中自然产生的、约定俗成的人类语言。
根据语言结构的差异,语言可以分为三种:曲折语、黏着语、孤立语。
曲折语:用词的形态变化表示语法关系,如英语、法语等。
黏着语:词内有专门表示语法意义的附加成分,词根或词干与附加成分的结合不紧密,如日语。
孤立语:形态变化少,语法关系靠词序和虚词表示,如汉语。
(上述提到的四种语言中,我只接触过英语、法语和汉语,对于日语特点的把握可能有些偏差,此处仅照搬课程PPT中的介绍)
自然语言处理是人工智能(AI)的一个分支,用于分析、理解和生成自然语言,以方便人和计算机设备以及人与人之间的交流。
提到AI,就不得不提到AI发展的四个层次:
1.运算智能:记忆、计算的能力
2.感知智能:包括听觉、视觉、触觉
3.认知智能:理解、运用语言的能力,掌握知识、运用知识的能力,以及在语言和知识基础上的推理能力
4.创造智能:利用想象力创造出很好的作品或产品
可以看出,自然语言处理成为了人工智能认知的关键问题。
【二】自然语言处理能干什么
1.机器翻译:将一种语言自动翻译成另外一种语言,例如谷歌翻译、百度翻译。
2.信息检索:利用计算机系统从大量文档中找到符合用户需要的相关信息,例如谷歌搜索、百度搜索。
3.信息抽取:从指定文档或者海量文本中抽取出用户感兴趣的信息。
4.自动文摘:将原文档的主要内容或某方面的信息自动提取出来,并形成原文档的摘要,例如情报获取、电子图书管理等。
5.问答系统:计算机系统对人提出的问题进行理解,利用自动推理等手段,在有关知识资源中自动求解答案并做出相应的回答,例如社区问答、人机对话系统等。
6.阅读理解:类似英语考试中的阅读理解问题,要求系统回答一些非事实性的、高度抽象的问题,通常要求信息源被限定于给定的一篇文章。
7.文档分类:利用计算机系统对大量的文档按照一定的分类标准(例如主题、内容等)实现自动归类。
8.情感分类:利用计算机实现对文本数据的观点、情感、态度、情绪等进行分析挖掘。
9.信息推荐与过滤:根据用户的习惯、偏好或兴趣,从大规模信息中识别满足用户兴趣的信息,例如淘宝的商品推荐。
【三】怎么来做自然语言处理
首先,需要表明的一点是,自然语言处理绝不仅仅是计算机领域的问题,而是一门融合了认知科学、逻辑学、语言学、应用数学与计算机科学的交叉学科,绝对不能只利用计算机领域的思维和技术取解决语言学问题。相反,计算机科学领域的技术可能仅仅是使得人们更好地应用语言解决其他问题的途径之一。
自然语言处理大概可以分为两个学派:理性主义学派和经验主义学派。
理性主义学派认为语言是由一些表层或深层的规律构成的,所以试图利用规则描述语言规律;而经验主义学派认为,人们的语言能力是学习得到的,所以试图利用大量的语料对语言规律进行学习,很显然,两个学派都有其长处和短板。
利用规则描述语言规律直观、灵活,还可以表述复杂的语言知识,具有良好的描述能力和生成能力,但是这种方法对语言知识的覆盖率低,成本高,对语言冲突缺乏解决能力,而且自然语言处于不断的变化之中,而规则法对这种变化的适应能力很弱。
利用语料对语言进行学习从本质上讲是一种统计模型,这提供了语言知识的冲突解决机制,提高了语言的覆盖率,同时也可以应对自然语言的变化,但是这一切的长处都建立在拥有大规模语料的情况下,对于数据稀缺的小语种,没有较好的解决办法,而且这种学习无法表述深层次的、复杂的语言知识。
20世纪20年代到20世纪50年代,以马尔可夫、图灵、香农、韦弗、乔姆斯基为代表的科学家利用概率法进行了自然语言处理领域的研究;20世纪60年代到20世纪80年代中期,理性主义(规则法)是自然语言处理领域的主要方法;而在20世纪80年代之后,经验主义成为了自然语言处理领域的潮流,特别是2010年以后,深度学习技术的发展使得自然语言处理进入了蓬勃发展的时期。
现在,我们已经对自然语言处理有了一个最基本的了解,在下一部分的内容中,我们将对自然语言处理领域需要用到的基本理论和基本模型进行介绍。
如果本文中某些表述或理解有误,欢迎各位大神批评指正。
谢谢!