NLP 不是魔术,但是,其结果有时几乎就是魔术一般神奇。
引自:http://www.confidencenow.com/nlp-seduction.htm
【立委按】
说明一点,写这篇 NLP 联络图科普的时候 深度学习还没火。 AI 还没有摇身一变 ,被 DL 所窃取。当时的机器学习界 还在鄙视 取笑 并与 ai 保持距离。没想到现如今 AI 居然被看成了 DL 的同义词 突然成了香饽饽。言必称神经,连 NLP 也被窃取了,也与dl划了等号。符号逻辑派的 AI 与规则系统的 NLP,做了一辈子,到头来连“家”都没了。一切皆是学习,一切都要神经。但我相信天变了,道却不变,因此下面的联络图或可超越神经一统天下的狭隘思维。拨乱反正,谈何容易。还是一家之言,愿者上钩吧。
(NLP Word Cloud, courtesy of ourselves who built the NLP engine to parse social media to generate this graph )
【立委原按】
样板戏《智取威虎山》里面,杨子荣怀揣一张秘密联络图而成为土匪头子座山雕的座上客,因为在山头林立的江湖,谁掌握了联络图,谁就可以一统天下。马克思好像说过人是社会关系的总和,专业领域又何尝不是如此。在关系中定义和把握 NLP,可以说是了解一门学问及其技术的钟南山捷径。老马识途,责无旁贷,遂精雕细刻,作联络图四幅与同仁及网友分享。此联络图系列可比林彪元帅手中的红宝书,急用先学,有立竿见影之奇效。重要的是,学问虽然日新月异,永无止境,然而天下大势,在冥冥中自有其不变之理。四图在手,了然于心,可以不变应万变,无论研究还是开发,必不致迷失革命大方向。
一个活跃的领域会不断产生新的概念,新的术语,没有一个合适的参照图,新人特别容易湮没其中。新术语起初常常不规范,同一个概念不同的人可能使用不同的术语,而同一个术语不同的人也可能有不同的解读。常常要经过一个混沌期,研究共同体才逐渐达成规范化的共识。无论是否已经达成共识,关键是要理解术语的背后含义 (包括广义、窄义、传统定义,以及可能的歧义)。加强对于术语的敏感性,不断探究以求准确定位新概念/新术语在现有体系的位置,是为专业人员的基本功。
本文将围绕这四幅自制联络图,对
NLP
相关的术语做一次地毯式梳理和解说。本文提到的所有术语在第一次出现时,中文一律加下划线,英文斜体(
Italics
),大多有中英文对照,有的术语还给出超链,以便读者进一步阅读探索。
在我们进入
NLP
系列联络图内部探究其奥秘之前,有必要澄清
自然语言处理
(
NLP
)的一般概念及其上位概念,以及与
NLP
平起平坐或可以相互替换的一些术语。
NLP
这个术语是根据“自然语言”这个问题领域而命名的宽泛概念。顾名思义,自然语言处理就是以自然语言为对象的计算机处理。无论为了什么目标,无论分析深浅,只要涉及电脑处理自然语言,都在
NLP
之列。所谓
自然语言
(
Natural language
)指的即是我们日常使用的语言,英语、俄语、日语、汉语等,它与
人类语言
(
Human language
)是同义词,主要为区别
形式语言
(
Formal language
),包括
计算机语言
(
Computer language
)。自然语言是人类交流最自然最常见的形式,不仅仅是口语,书面语也在海量增长,尤其是移动互联网及其社交网络普及的今天。比较形式语言,自然语言复杂得多,常有省略和歧义,具有相当的处理难度(hence 成就了
NLP
这个专业及其我们的饭碗)。顺便一提,在自然语言灰色地带的还有那些
人造语
(
Artificial language
)方案,特别是广为流传的
世界语
(
Esperanto
),它们的形式与自然语言无异,也是为人类交流而设计,不过是起源上不太“自然”而已,其分析处理当然也属
NLP
。(笔者N多年前的
机器翻译
专业的硕士课题就是一个把世界语全自动翻译成英语和汉语的系统,也算填补了一项空白。)
与
NLP
经常等价使用的术语是
计算语言学
(
Computational Linguistics
, or,
CL
)。顾名思义,计算语言学是
计算机科学
(
Computer Science
)与
语言学
(
Linguistics
)之间的交叉学科。事实上,
NLP
和
CL
是同一个行当的两面,
NLP
注重的是实践,
CL
则是一门学问(理论)。可以说,
CL
是
NLP
的科学基础,
NLP
是
CL
的应用过程。由于
CL
与数理等基础学科不同,属于面相应用的学问,所以
CL
和
NLP
二者差不多是同一回事儿。其从业人员也可以从这两个侧面描述自己,譬如,笔者在业界可称为 NLP 工程师(
NLP engineer
),在学界则是
计算语言学家
(
Computational linguist
)。当然,在大学和研究所的计算语言学家,虽然也要做
NLP
系统和实验,但学问重点是以实验来支持理论和算法的研究。在工业界的
NLP
工程师们,则注重 real life 系统的实现和相关产品的开发,奉行的多是白猫黑猫论,较少理论的束缚。
另外一个经常与
NLP
平行使用的术语是
机器学习
(
Machine Learning
, or,
ML
)。严格说起来,机器学习与
NLP
是完全不同层次的概念,前者是方法,后者是问题领域。然而,由于机器学习的万金油性质(谁说机器学习不万能,统计学家跟你急),加之
ML
已经成为
NLP
领域(尤其在学界)的主流方法,很多人除了机器学习(如今时兴的是
深度学习
,或曰
深度神经网络
),忘记或者忽视了
NLP
还有语言规则的方法,因此在他们眼中,
NLP
就是机器学习。其实,机器学习并不局限于
NLP
领域,那些用于语言处理的机器学习算法也大多可以用来做很多其他
人工智能
(
Artificial Intelligence
, or
AI
)的事儿,如
股市预测
(
Stock market
analysis
)、
信用卡欺诈监测
(
Detecting
credit card fraud
)、
机器视觉
(
Computer vision
)、
DNA测序分类
(
Classifying
DNA sequences
),甚至
医疗诊断
(
Medical diagnosis
)。
在
NLP
领域,与机器学习平行的传统方法还有语言学家(
linguist
)或知识工程师(
knowledge engineer
)手工编制的
语言规则
(
Linguistic rules
, or
hand-crafted rules
),这些规则的集合称
计算文法
(
Computational grammar
),由计算文法支持(or 编译)的系统叫做
规则系统
(
Rule system
)。
机器学习和规则系统这两种方法各有利弊,可以取长补短。统而言之,机器学习擅长
文档分类
(
Document classification
),从宏观上粗线条(
course-grained
)把握语言现象,计算文法则擅长细致深入的语言学分析,从细节上捕捉语言现象。如果把语言看成森林,语句看成林中形态各异的树木,总体而言,机器学习是见林不见木,计算文法则见木不见林(本来这是很自然的互补关系,但双方都有不为少数的“原教旨主义极端派”不愿承认对方的长处,呵呵)。从效果上看,机器学习常常以覆盖面胜出,业内的术语叫
高查全率
(
High recall
),而计算文法则长于分析的精度,即
高查准率
(
High precision
)。由于自然语言任务比较 复杂,一个实用系统(
Real-life system
)常常需要在在粗线条和细线条(
fine-grained
)以及查全与查准之间取得某种平衡,因此结合两种方法的
NLP
混合式系统
(
Hybrid system
)往往更加实惠好用。一个简单有效的结合方式是把系统建立成一个
后备式模型
(
back-off model
),对每个主要任务,先让计算文法做高精度低覆盖面的处理,再行机器学习出来的
统计模型
(
Statistical model
),以便粗线条覆盖遗留问题。
值得一提的是,传统 AI 也倚重手工编制的规则系统,称作
符号逻辑派
,但是它与语言学家的计算文法有一个根本的区别:AI 规则系统远远不如计算文法现实可行。
AI
的规则系统不仅包括比较容易把握(
tractable
)和形式化(
formalized
)的语言(学)规则,它们还试图涵盖包罗万象的常识(至少是其中的核心部分)以及其他知识,并通过精巧设计的逻辑推理系统把这些知识整合起来。可以说,AI 旨在从本质上模拟人的智能过程,因雄心太大而受挫,以致多年来进展甚微。过去的辉煌也只表现在极端狭窄的领域的玩具系统(后来也发展了一支比较实用的
专家系统
),当时统计模型还是没有睡醒的雄狮。以
ML
为核心以大数据(
Big data
)为支撑的统计方法的兴起,让这种
AI
相形见绌。有意思的是,虽然人工智能(台湾同胞称人工智慧)听上去很响亮,可以唤起普罗大众心中的某种科学幻想奇迹(因此常常为电子产品的包装推销商所青睐),在科学共同体中却相当落寞:有不少统计学家甚至把
AI
看成一个过气的笑话。虽然这里难免有王婆卖瓜的偏见,但 传统 AI 的方法论及其好高骛远不现实也是一个因素。也许在未来会有符号逻辑派
AI
的复兴,但是在可预见的将来,把人类智能当作联接输入输出的黑匣子的机器学习方法,显然已经占了上风。
由此看来,
ML
与
AI
的关系,颇似
NLP
与
CL
的关系,外延几乎重合,
ML
重在
AI
的应用(包括
NLP
),而传统
AI
理应为
ML
的理论指导。可是,由于方法学上的南辕北辙,以
知识表达