自然语言处理是什么?
下定义——人类语言
「下定义」从来不是一件容易的事情,我们先来看看大佬们怎么说:
维基百科:
自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。
百度百科:
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。
清华大学自然语言处理与社会人文计算实验室:
自然语言处理,简单地说,就是用计算机来处理人类的语言(英文、中文等)。由于语言是人类区别于动物的根本标志,没有语言,人类的思维也就无从谈起,所以自然语言处理体现了人工智能的最高任务与境界(只有当计算机具有处理语言的能力时,机器才可能通过图灵测试)。
《从人机交互的角度看自然语言处理》美国计算机科学家马纳瑞斯:
自然语言处理可以定义为研究在人与人交际中以及人与计算机交际中的语言问题的一门科学。自然语言处理要研制表示语言能力和语言应用的模型,建立计算框架来实现这样的语言模型,提出相应的方法来不断的完善这样的语言模型,根据这样的语言模型设计各种实用系统,并探讨这些实用系统的测评技术。
下面说说我的理解:
我们可以把自然语言处理
做个切分得到自然语言
和处理
两个部分。关于自然语言,百度百科解释为:“自然语言通常是指一种自然地随文化演化的语言。”简单来说,自然语言就是人类之间交流的语言,包括汉语、英语、日语等。与之对应的是逻辑语言
,逻辑语言是人类和机器沟通的语言,比如编程代码。其次,处理这个词很好理解,就是安排事物,执行操作的意思。
总的来说,「自然语言处理」就是使用某种技术对人类的语言进行一系列的操作。
我们希望通过自然语言处理技术来实现人机通信,因此自然语言处理通常认为由自然语言理解
和自然语言生成
组成,自然语言理解是将人类的自然语言转化成计算机可以理解的逻辑语言,而自然语言生成是将逻辑语言转化成自然语言。这两个看似直观简单的任务,实则不易,人类已经花费了巨大的精力去解决它,目前仍然是一个长期的目标。
在这个大目标下,划分出很多具体的任务,比如机器翻译
、对话系统
、自动摘要
等。希望广大自然语言处理爱好者投身这个行业,一起奋斗!
划分——理性和经验
有一种划分方法,在整个人工智能领域,甚至于哲学领域都适用,那就是理性主义
和经验主义
。具体到自然语言处理领域,通常被分为文法学派
和统计学派
。
前者是思想是找到一个规则,而后者是适应历史数据。这样说有些抽象,我来举个例子,现在有以下几组数据,让你训练一个模型来预测未来的输入输出。
1 | # 输入, 输出 |
打开上帝视角,很明显上面的数据是一个乘法操作,如果你给出下面的代码就是完全正确的。
1 | def multiplication(x1, x2): |
文法学派就是想尽一切办法找到这个乘法的规则,而统计学派不是,它只要找到一个满足情况的就行,有可能生成了下面的函数:
1 | # 统计学派生成的模型的一种可能 |
统计学派不关心真正的规则是啥,只关心是否能拟合数据。
还有一个关于学习英语的例子,比如英语老师A告诉你,你要好好学语法就行,一切英语句子都包含在了语法中,这是文法学派。另外一个英语老师B告诉你,不用死记什么语法,多读多背文章,读多了自然就懂了,这是统计学派。
近些年由于深度学习的崛起,统计学派占据了上风,现在所有的研究论文中,很少能看到文法学派的身影。从哲学上看,这两者的关系是此消彼长、对立统一的,它们只有互相站在对方的肩膀上,才能一起站得更高,走得更远。所以大家不要忘记了,还有文法学派的方法可以给研究带来帮助,说不定哪天「计算文法」就崛起了呢?