3.2 语音和语言处理简史
语音和语言处理简史
目标
-
简单了解自然语言处理的发展历程
在历史上,语音和语言处理曾经在计算机科学、电子工程、语言学和心理认知语言学等不同的领域分别进行研究。之所以出现这种情况,是由于语音和语言处理包括了一系列性质不同而又彼此交叉的学科,它们是:语言学中的计算语言学(computational linguistics)、计算机科学中的自然语言处理(natural language processing)、电子工程中的语音识别(speech recognition)、心理学中的计算心理语言学(computational psycholinguistics)。本节中,我们将把在语音和语言处理中这些不同的历史线索做总结性的说明。
1 基础研究:20 世纪 40 年代和 20 世纪 50 年代
这个领域的研究最早可以追溯到第二次世界大战刚结束时的那个充满了理智的时代,那个时代刚发明了计算机。从 20 世纪 40 年代到 20 世纪 50 年代末的时期有两项基础性的研究值得注意:一项是自动机(automaton)的研究,另一项是概率模型(probabilistic models)或信息论模型(information- theoretic models)的研究。
20 世纪 50 年代提出的自动机理论来源于 Turing 的算法计算模型(1936),这种模型被认为是现代计算机科学的基础。Turing 的工作首先导致了 Mcculloch-Pits 的神经元(neuron)理论(Mc Culloch-Pit,1943)。一个简单的神经元模型就是一个计算的单元,它可以用命题逻辑来描述。
接着,Turing 的工作导致了 Kleene (1951,1956) 关于有限自动机和正则表达式的研究。Shannon(1948) 把离散马尔可夫过程的概率模型应用于描述语言的自动机。Chomsky (1956) 从 Shannon 的工作中吸取了有限状态马尔可夫过程的思想,首先把有限状态自动机作为一种工具来刻画语言的语法,并且把有限状态语言定义为由有限状态语法生成的语言。这些早期的研究工作产生了形式语言理论(formal language theory)这样的研究领域,采用代数和集合论把形式语言定义为符号的序列。Chomsky 在研究自然语言的时候首先提出了上下文无关语法(1956),但是,Backus (1959) 和 Naur et al. (1960) 在描述 ALGOL 程序语言的工作中也独立地发现了这种上下文无关语法。
这个时期的另外一项基础研究工作是用于语音和语言处理的概率算法的研制,这是 Shannon的另一个贡献。Shannon 把通过诸如通信信道或声学语音这样的媒介传输语言的行为比喻为噪声信道(noisy channel)或者解码(decoding) 。Shannen 还借用热力学(thermodynamics)的术语“熵”(entropy)来作为测量信道的信息能力或者语言的信息量的一种方法,而且他首次用概率技术测定了英语的熵。
在这个时期,还研究了声谱(Koenig et al,1946),声谱和实验语音学的基础研究为之后语音识别的研究奠定了基础。这导致了 20 世纪 50 年代第一个机器语音识别器的研制成功。1952 年,贝尔实验室的研究人员建立了一个统计系统来识别由一个单独的说话人说出的 10 个任意的数字(Davis et al,1952)。该系统存储了 10 个依赖于说话人的模型,它们粗略地代表了英语数字的头两个元音的共振峰。贝尔实验室的研究人员采用选择与输入具有最高相关系数模式的方法,达到了 97%~99%的准确率。
2 两个阵营:1957 年至 1970 年
在 20 世纪 50 年代末期到 20 世纪 60 年代初期,语音和语言处理明显地分成两个阵营:一个阵营是符号派(symbolic),一个阵营是随机派(stochastic)。
符号派的工作可分为两个方面。一方面是 20 世纪 50 年代后期以及 20 世纪 60 年代初期和中期 Chomsky 等的形式语言理论和生成句法的研究,很多语言学家和计算机科学家的剖析算法研究,早期的自顶向下和自底向上算法的研究,后期的动态规划的研究。最早的完整的剖析系统是 Zelig Harris 的“转换与话语分析课题”(Transformation and Discourse Analysis Project, TDAP)。这个剖析系统于 1958 年 6 月至 1959 年 7 月在宾夕法尼亚大学研制成功(Harris,1962) 。另一方面是人工智能的研究。在 1956 年夏天,John Mccarthy, Marvin Minsky, Claude Shannon 和 Nathaniel Rochester 等学者汇聚到一起组成了一个为期两个月的研究组,讨论关于他们称之为“人工智能”(Artificial Intelligence, AI)的问题。尽管有少数的 AI 研究者着重于研究随机算法和统计算法(包括概率模型和神经网络),但是大多数的 AI 研究者着重研究推理和逻辑问题。典型的例子是 Newell 和 Simon 关于“逻辑理论家“(logic theorist)和“通用问题解答器”(general problem solver) 的研究工作。早期的自然语言理解系统都是按照这样的观点建立起来的。这些简单的系统把模式匹配和关键词搜索与简单试探的方法结合起来进行推理和自动问答,它们都只能在某一个领域内使用。在 20 世纪 60 年代末期,学者们又研制了更多的形式逻辑系统。
随机派主要是一些来自统计学专业和电子学专业的研究人员。在 20 世纪 50 年代后期,贝叶斯方(Bayesian method)开始被应用于解决最优字符识別的问题。Bledsoe and Browning (1959) 建立了用于文本识别的贝叶斯系统,该系统使用了一部大词典,计算词典的单词中所观察的字母系列的似然度,把单词中每一个字母的似然度相乘,就可以求出字母系列的似然度来。Mosteller and Wal lace (1964) 用贝叶斯方法来解决在《联邦主义者》(The Federalist)文章中的原作者的分布问题。
20 世纪 60 年代还出现了基于转换语法的第一个人类语言计算机处理的可严格测定的心理模型;并且还出现了第一个联机语料库:Brown 美国英语语料库,该语料库包含一百万单词的语料,样本来自不同文体的 500 多篇书面文本,涉及的文体有新闻、中篇小说、写实小说、科技文章等。这些语料是布朗大学(Brown University)在 1963 年到 1964 年收集的(Kucera and Francis, 1967; Francis,1979; Francis and Kucera,1982)。王士元(William S. Y. Wang)在 1976 年建立了 DOC (Dictionary on Computer),这是一部联机的汉语方言词典。
3 四个范型:1970 年至 1983 年
在这个时期,语音和语言的计算机处理中出现了四个研究范型:至今我们在自然语言处理的思路中还会时不时见到它们的身影。
随机范型(stochastic paradigm)在语音识别算法的研制中起着重要的作用。其中特别重要的是隐马尔可夫模型和比喻为噪声信道与解码的模型。这些模型是分别独立地由两支队伍研制的。一支是 Jelinek, Bahl, Mercer 和 IBM 的 Thomas J. Watson 研究中心的研究人员,另一支是卡内基梅隆大学的 Baker 等人,Baker 受到普林斯顿国防分析研究所的 Baum 和他的同事们的工作的影响。AT&T 的贝尔实验室也是语音识别和语音合成的中心之一,详情可参阅 Rabiner and Juang (1993) 对这方面工作的全面描述。
基于逻辑的范型(logic- based paradigm)肇始于 Colmerauer 和他的同事们(Colmerauer,1970, 1975) 关于 Q 系统(Q-system)和变形语法(metamorphosis grammar)的工作,Colmerauer 是 Prolog 语言的先驱者。定子句语法(definite clause grammar, Pereira and Warren,1980) 也是在基于逻辑的范型方面的早期工作之一。Kay 对于功能语法的研究(1979),稍后 Bresnan 和 Kaplan 在词汇功能语法(Lexical Function Grammar, LFG,1982) 方面的工作,都是特征结构合一(feature struc ture unification)研究方面的重要成果。
这个时期的自然语言理解(natural language understanding)肇始于 Terry Winograd 的 SHIRDLU 系统,这个系统能够模拟一个嵌入玩具积木世界的机器人的行为(Winograd,1972 a)。该系统的程序能够接受自然语言的书面指令【例如,Move the red block on top of the smaller green one(请把绿色的小积木块移动到红色积木块的上端)】,从而指挥机器人摆弄玩具积木块。迄今为止我们还没有看到如此复杂和精妙的系统。这个系统还首次尝试建立基于 Halliday 系统语法的全面的(在当时看来是全面的)英语语法。Winograd 的模型还清楚地说明,句法剖析也应该重视语义和话语的模型。Roger Schank 和他在耶鲁大学的同事和学生们(经常被称为耶鲁学派)建立了一些语言理解程序,这些程序构成一个系列,他们重点研究诸如脚本、计划和目的这样的人类的概念知识以及人类的记忆机制(Schank and Abelson,1977; Schank and Riesbeck,1981; Culling ford,1981; Wilensky,1983; Lehnert,1977)。他们的工作经常使用基于网络的语义学理论(Quil lian, 1968: Norman and Rumelhart, 1975; Schank, 1972; Wilks, 1975 c, 1975 b: Kintsch, 1974), f 在他们的表达方式中(Simmons,1973) 开始引进 Fillmore 关于格角色的概念(Fillmore,1968)。
基于逻辑的范型和自然语言理解的范型还可以在系统中融合起来,例如,LUNAR 问答系统(Woods,1967,1973) 是一个自然语言理解系统,在该系统中,就使用谓词逻辑来进行语义解释。
话语模型范型(discourse model paradigm)集中探讨了话语研究中的四个关键领域。Grosz 和她的同事们研究了话语中的子结构(substructure)和话语焦点(discourse focus) (Grosz,1977 a;Sidner,1983);一些研究者开始研究自动参照消解(automatic reference resolution) (Hobbs, 1972)。在基于逻辑的言语行为研究中,建立了“信念一愿望一意图”的框架,即 BDI (Belief-Desire- Intention)的框架(Perrault and Allen,1980; Cohen and Perrault,1979)。
4 经验主义和有限状态模型的复苏:1983 年至 1993 年
在 1983 年至 1993 这 10 年中,语音和语言处理的研究又回到了 20 世纪 50 年代末期到 20 世纪 60 年代初期几乎被否定的有限状态和经验主义这两种模型上去,这两种模型之所以出现这种复苏,其部分原因在于过去 Chomsky 对于 Skinner 的“言语行为”(Verbal Behavior)的很有影响的评论(Chomsky,1959 b)在这时遭到了理论上的反对。第一种模型是有限状态模型,由于 Kaplan and Kay (1981) 在有限状态音系学和形态学方面的工作,以及 Church (1980) 在句法的有限状态模型方面的工作,这种模型又重新得到注意。本书自始至终都会讨论到与有限状态模型有关的工作。
在这个时期的第二个倾向是所谓的“重新回到经验主义”;这里值得特别注意的是语音和语言处理的概率模型的提出,这样的模型受到 IBM 的 Thomas J. Watson 研究中心的语音识别概率模型的强烈影响。这些概率模型和其他数据驱动的方法还传播到了词类标注、句法剖析、附着歧义的判定以及从语音识别到语义学的联接主义方法的研究中去。
在这个时期,自然语言的生成研究也取得了引人瞩目的成绩。
5 不同领域的合流:1994 年至 1999 年
在 20 世纪的最后 5 年,语音和语言处理这个领域发生了很大的变化。这主要表现在三个方面。首先,概率和数据驱动的方法几乎成为了自然语言处理的标准方法。句法剖析、词类标注参照消解和话语处理的算法全都开始引入概率,并且采用从语音识别和信息检索中借过来的评测方法。其次,由于计算机的速度和存储量的增加,使得在语音和语言处理的一些子领域,特别是在语音识别、拼写检查、语法检查这些子领域,有可能进行商品化的开发。语音和语言处理的算法开始被应用于增强交替通信(Augmentative and Alternative Communication, AAC)中。最后,web 的发展使得进一步加强基于语言的信息检索和信息抽取的需要变得更加突出。
6 机器学习的兴起:2000 年至 2008 年
在 21 世纪,从 20 世纪 90 年代后期开始的经验主义倾向进一步以惊人的步伐加快了它的发展速度。这样的加速发展在很大的程度上受到下面三种彼此协同的趋势的推动。
首先是建立带标记语料库的趋势。在语言数据联盟(Linguistic Data Consortium, LDC)和其他相关机构的帮助下,研究者们可以获得口语和书面语的大规模的语料。重要的是,在这些语料中还包括些标注过的语料,如宾州树库(Penn Treebank) (Marcus et al,1993)、布拉格依存树库(Prague Dependency Treebank) (Haji,198)、宾州命题语料库(Propbank) (Palmer et al,2005)、宾州话语树库(Penn Discourse Treebank) (Miltsakaki et al,2004 b)、修辞结构库(RSTBANK) (Carlson et al,2001) 和 Time Bank (Pustejovsky et al,200 b)。这些语料库是带有句法、语义和语用等不同层次的标记的标准文本语言资源。这些语言资源的存在大大地推动了人们使用有监督的机器学习方法来处理那些在传统上非常复杂的自动剖析和自动语义分析等问题。这些语言资源也推动了有竞争性的评测机制的建立,评测的范围涉及剖析(Dejean and Tjong Kim Sang,2001)、信息抽取(NIST,200 a; Tjong Kim Sang,2002 Cong Kim Sang and De Meulder,2003)、词义排歧(Palmer et al,2001; Kilgarriff and Palmer,2000、问答系统(Voorhees and Tice,199)、自动文摘(Dang,2000) 等领域。
第二是统计机器学习的趋势。对于机器学习的日益增长的重视,导致了学者们与统计机器学习的研究者更加频繁地交互,彼此之间互相影响。对于支持向量机技术(Boser et al,1992; Vapnik,1995)、最大熵技术以及与它们在形式上等价的多项逻辑回归(Berger et al.,1996)、图式贝叶斯模型(Pearl,1988) 等技术的研究,都成为了计算语言学的标准研究实践活动。
第三是高性能计算机系统发展的趋势。高性能计算机系统的广泛应用,为机器学习系统的大规模训练和效能发挥提供了有利的条件,而这些在上一个世纪是难以想象的。
最后应当指出,在这个时期结束时,大规模的无监督统计学习方法得到了重新关注。机器翻译(Brown et al,1990; Och and Ney,2003) 和主题模拟(Blei et al.,2003) 等领域中统计方法的进步,说明了也可以只训练完全没有标注过的数据来构建机器学习系统,这样的系统也可以得到有效的应用。由于建造可靠的标注语料库要花费很高的成本,建造的难度很大,在很多问题中,这成为了使用有监督的机器学习方法的一个限制性因素。因此,这个趋势的进一步发展,将使我们更多地使用无监督的机器学习技术。
7 深度学习时代
自从2012年,alexnet(一个基于卷积神经网络搭建的用于图像分类的神经网络)在imganet 图片分类比赛上取得跨时代的效果之后。深度学习首先在图像领域发扬光大,得到广泛应用。
深度学习(Deep learning)与传统基于统计的机器学习方法相比,最大的特点在于不需要做特征工程。不同的NLP任务需要各种各样不同的特征。
NLP领域跟随着深度学习的潮流,也开始使用深度神经网络来解决问题。
比如机器翻译、文本生成需要一些长时间依赖的特征,那可以用RNN、LSTM这些,让它有个序列的依赖;可以用局部的特征,用各种各样的N元语法模型,现在可以用CNN来提取局部的文本特征。
-
神经网络与符号主义的结合
-
迁移学习实现领域自适应
-
强化学习实现自我演化
-
通过无监督学习充分利用无标注数据
-
与其他模态(Modality)图像语音相结合
8 小结
理解语音和语言处理研究的一个好办法或者是考察怎样来创造一个智能对话系统,或者是建立基于 Web 网络的问答系统,或者是设计机器翻译引擎。
语音和语言处理技术与音系学、语音学、形态学、句法学、语义学、语用学和话语分析等不同平面上的语言知识的形式模型和形式表示方法有着密切的依赖关系。使用包括状态机器、形式规则系统、逻辑等在内的形式模型以及概率模型就可以获取这样的知识。语音和语言处理的基础是计算机科学、语言学、数学、电子工程和心理学。在语音和语言处理中要使用这些学科的标准框架中为数不多的某些算法。
语言和思维之间的密切联系使语音和语言处理技术成为了关于智能机器辩论的中心议题。关于人类怎样与复杂媒体交互的研究表明,语音和语言处理技术在今后智能技术的发展过程中将起着至关紧要的作用。
语音和语言处理的革命性的应用目前已经在现实世界的周围呈现出来了。万维网(World Wide Web)的建设和语音识别与语音合成的最新进展将进一步引导这种技术创造出更加丰富多彩的实际应用前景。
9 文献和历史说明
语音和语言处理各个分支领域的研究成果发表在很多会议论文集和杂志上。
这些会议和杂志的中心内容都集中在自然语言处理和计算语言学两个方面,主要有
美国计算语言学会(Association for Computational Linguistics, ACL)
和它的欧洲伙伴欧洲计算语言学会(European Association for Computational Linguistics, EACL)、
国际计算语言学会议(International Conference on Computa tional Linguistics, COLING)有关系。
ACL、NAACL 和 EACL 的年会论文集和每两年一次的 COLING 会议是该领域研究工作的首要论坛。
相关会议还有诸如自然语言学习会议(Conference on Natural Language Learning, CoNLL)
这样的 ACL 特殊兴趣组(Special Interest Group, SIG),
以及自然语言处理的经验方法会议(Empirical Methods in Natural Language Processing, EMNLP)
语音识别、理解和合成的研究成果发表于每年一次的 INTERSPEECH 会议上,
这个会议又称为口语处理国际会议(International Conference on Spoken Language Processin, ICSLP),这个会议与欧洲语音通信和技术会议(European Conference on Speech Communication and Technology, EUROSPEECH)每隔一年交替召开。
IEEE 国际声学、言语和信号处理会议(IEEE International Conference on Acoustic, Speech and Signal Processing, IEEE ICASSP)每年召开一次。
在 IEEE ICASSP 会议或者如 SIGDIAL 这样的特殊兴趣组专题讨论会上经常发表口语对话研究的成果。
有关语音和语言处理的各个方面的教科书:
Jurafsky and H.Martin的《自然语言处理综论》(Speech and Language Processing)基本上是关于自然语言处理的一本基础入门大全。
Manning and Schiitze (1999) 的《统计语言处理基础》(Foundations of Statistical Language Processing)重点讲述标注、剖析、消歧、搭配等方面的统计模型。
Charniak (1993) 的《统计语言学习》(Statistical Language Learning)介绍相似的内容,尽管内容有些陈旧,篇幅也比较简短,但是通俗易懂,是一本入门读物。
Allen (195) 的《自然语言理解》(Natural Language Understanding)从人工智能的角度,讲述了语言处理的各个方面的材料,覆盖面比较广。
Manning et al. (2008) 的《信息检索导论》(Introduction to Information Retrieval)着重论述信息检索、文本分类和文本聚类的问题。
自然语言处理工具包(Natural Language Toolkit, NLTK) (Bird and Loper,2004) 是一整套的工具,包括程序语言 Python 模块和自然语言处理的数据,还包括在 NLTK 工具报基础上编写的关于自然语言处理的书。
NLP实际应用
目标
-
了解语言知识在实际处理当中的作用
-
知道一些自然语言处理的关键字
-
了解自然语言处理所涉及的应用
1 从应用的角度划分:
-
最基本的处理:正则
-
抽取电话号码,抽取邮箱,抽取时间信息,QQ号等等
-
-
敏感词过滤(基于词典/正则)
-
语种识别(基于统计模型,基于ISO 639-1语言编码标准)
-
中文分词(基于词典匹配,基于统计模型)
-
汉字/拼音互转
-
情感波动分析
-
句子、QA相似度匹配
-
自然语言生成
-
基于医疗领域知识图谱的问答系统
-
语音助手
-
智能客服
-
罪名/法务名词及分类
-
中文手写汉字识别
-
事件抽取(包括条件事件、因果事件、顺承事件、反转事件等事件抽取,并形成事理图谱)
-
中英文跨语言百科知识图谱
-
神经网络关系抽取
-
等等等等。。。
2 从语言知识/技术层面划分:
2.1 词法
-
takes take took 数量,性别,时态,格。词形处理。
-
需求场景: 搜索引擎
-
词干提取stemming
-
算法并不复杂,一堆规则。但是规则只能由语言专家了解构词法的人做
-
-
词形还原lemmatisation
-
就是通过查字典,把单词变回去
-
-
-
形态丰富的语言(Morphological Rich Languages)
-
这种语言甚至有时候主谓宾统统揉在一个单词里
-
处理方法
-
基于规则的方法
-
有限状态自动机等
2.2 分词
-
-
中文分词
-
常用方法
-
最大正(逆)向匹配法
-
基于字标注的方法
-
传智播客/Python学科/就业班/5期
-
B.I.I.E B.I.I.I.I.I.I.E. B.I.E. B.E
-
-
序列标注
-
HMM
-
CRF
-
LSTM
-
...
-
-
-
-
词性标注
-
词性:词的功能分类
-
小兔子迅速逃跑了
-
小兔子立即逃跑了
-
小兔子逃跑的很迅速
-
小兔子逃跑的很立即 ???
-
小兔子/n 迅速/a 逃跑/v 了/u
-
小兔子/n 立即/d 逃跑/v 了/u
-
-
应用
-
句法分析
-
语义消歧
-
信息抽取
-
语音处理系统(代词 that 和 连词 that)
-
更好的研究理解语言本身
-
-
-
命名实体识别
-
人名
-
地名
-
机构名
-
现在一般使用深度学习去处理
-
任务描述:给定一定的序列,预测词性
-
现有解决方案
-
基于NLTK的命名实体识别
-
基于Stanford的NER
-
其他参见github
-
-
-
2.3 句法分析
-
从语言学的角度:规则性句法/描述性句法
-
生成式句法
-
生成式句法分析指的是,生成一系列依存句法树,从它们中用特定算法挑出概率最大那一棵
-
句法分析中,生成模型的构建主要使用三类信息:词性信息、词汇信息和结构信息(需要特殊语法标记)
-
依存句法树(利用词汇+词性生成联合概率模型,使用最大生成树Prim算法搜索最终结果)
-
-
短语结构语法(可以和依存结构语法互相转换)
-
其他语法理论
-
transformational grammer
-
non-transformational grammers
-
cognitive approaches
-
等等等等
-
-
应用
-
信息抽取
-
意见挖掘
-
文本理解
-
谢霆锋的儿子是谁?
-
谢霆锋是谁的儿子?
-
-
机器翻译(调整语序)
-
-
-
2.4 语义
-
如何表达一个句子的含义?
-
命题逻辑:理解句子和句子之间的关系
-
P: Simon has three kids.
-
Q: Simon has two kids.
-
P -> Q
-
-
一阶逻辑(谓词逻辑):理解句子成分之间的关系
-
每个 人 都 有 身份证
-
-
高阶逻辑
-
Mary has a good bicycle. Good.
-
-
-
分布式语义: 一个词的意义是由它的上下文决定的
-
词语的向量表示
-
bag of words
-
tfidf
-
word embedding
-
-
句子级向量表示
-
篇章级向量表示
-
语用
-
--你能告诉我现在几点了吗
-
--可以
-
研究如何使用语言让别人做某件事
-
研究语义如何随上下文变化
-
2.5 语言模型
-
语言模型是用来判断一句话是不是正常人说出来的。
怎么告诉机器,那些话才是人类会说的?
-
规则阶段:形式语言
-
基于统计的语言模型(n-gram)
-
基于深度学习的语言模型
-
-
技术总结
-
语法层面,包括分词及词性标注等,基本实用、通用领域98%左右的准确率。特定领域文本往往性能下降较多,但是可以通过领域适应来提高准确率。
-
句法层面,通用领域90%左右正确率。特定领域80%以下。计算相对昂贵。
-
浅层分析基本使用,深层分析遥遥在望。
-
基于统计(机器学习)的方法在绝大多数任务处于统治地位。
-
深度学习兴起,深度学习 vs 传统机器学习方法(SVM, CRF, KNN, ...)
-
现有应用的关键词们
-
中文NLP
-
分词(通用模型,领域模型,定制化模型)
-
词性标注
-
电商NER
-
电商类目预测
-
关键词提取
-
地址(抽取、分类、结构化)
-
知识库(实体、同义/反义、属性等)
-
句子相似度
-
依存分析
-
评价情感分析
-
舆情分析
-
-
多语言NLP
-
分词/tokenization
-
词干提取
-
词性标注
-
NER
-
中心词/关键词提取
-
句子/词向量
-
文本相似度
-
-
语法诊断
-
搜索纠错
-
审稿校对
-
拼写检查
-
-
NLP符号派
-
知识表示
-
挖掘自然语言文本信息,并用符号语言表示
-
-
知识推理
-
符号语言空间做推理演算,然后映射到自然语言
-
-