赵走x博客
网站访问量:151907
首页
书籍
软件
工具
古诗词
搜索
登录
16、算法部分源码解析
15、系统总体流程与词典结构
14、中文分词
13、词汇与分词技术
12、三个平面中的语义研究
11、汉语的发展
10、字形的流变
9、六书及其他
8、文字符号的起源
7、整合语义角色标注模块
6、整合句法解析模块
5、整合命名实体识别模块
4、整合词性标注模块
3、整合中文分词模块
2、现代自然语言系统简介
1、中文语言的机器处理:历史回顾
1、中文语言的机器处理:历史回顾
资源编号:75987
NLP汉语自然语言处理原理与实践
自然语言处理
热度:79
自然语言处理(Natural Language Processing, NLP)是研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,也是人工智能领域中一个最重要、最艰难的方向。说其重要,因为它的理论与实践与探索人类自身的思维、认知、意识等精神机制密切相关;说其艰难,因为每一项大的突破都历经十年乃至几十年以上,要耗费几代人的心血。
自然语言处理(Natural Language Processing, NLP)是研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,也是人工智能领域中一个最重要、最艰难的方向。说其重要,因为它的理论与实践与探索人类自身的思维、认知、意识等精神机制密切相关;说其艰难,因为每一项大的突破都历经十年乃至几十年以上,要耗费几代人的心血。 近些年,NLP在中文分词、词性标注、词汇语义、句法解析方面均获得了很大的突破。大量的技术都应用于商业实践,并在商业领域获得了良好的市场和经济效益。文本方面主要有:基于自然语言理解的智能搜索引擎和智能检索、智能机器翻译、自动摘要与文本综合、文本分类与文件整理、自动阅卷系统、信息过滤与垃圾邮件处理、文学研究与古文研究、语法校对、文本数据挖掘与智能决策、基于自然语言的计算机程序设计等。语音方面主要有:机器同声传译、智能客户服务、聊天机器人、语音挖掘与多媒体挖掘、多媒体信息提取与文本转化、对残疾人智能帮助系统等。 这使得从事研究这个行业的科技人员越来越多,本书的目的之一就是为使这些朋友尽快进入这个领域而降低门槛。为此,笔者不想在开篇谈那些艰深的理论知识和数学原理,这些沉重的主题还是留在后面为读者慢慢道来。我们先简要回顾一下NLP的历史,然后通过几个开源系统,领略一下当代NLP的风采。 世界上早期的科幻小说作者,英国诗人雪莱的夫人玛丽·雪莱,于1818年创作了科幻小说《弗兰肯斯坦——现代普罗米修斯的故事》。小说讲的是,一个叫作弗兰肯斯坦的年轻科学家希望利用所学的生物学知识,制造出一个类人生物。在强烈的科学探索欲望的驱使下,他从停尸房等处取得不同人体的器官和组织,拼合成一个人体,并利用雷电的电能激活了这个人造的生命。经过电击,人造人瞬间被弗兰肯斯坦赋予了生命。刚刚诞生的人造人天性善良并向往美好。不过,由于相貌丑陋,社会并不接纳它,并将其视作怪物。因为他与社会的种种矛盾,终于导致怪物走上了报复之路。故事的结尾是悲惨的,弗兰肯斯坦因病而死,怪物也自焚消失。 # 1、从科幻到现实 这里想要探讨的并不是故事在文学上的价值,而是其在科学上的重要意义。自工业革命以来,在生产生活的各个领域,科技都走入了人们的视野:人们创造了铁路系统、公路系统以延伸人的双腿;创造了各种各样的机械臂装置来模仿人的双手;创造了五颜六色的纺织品模仿动物的皮毛;还发展了电影和广播系统来愉悦视听。两百年来,这部作品给我们留下一个发人深省的启示:似乎我们所有的科学技术活动都围绕着一个方向——人类如何创造而发展自身! 时间过得很快,这个问题第二次摆在我们面前的时候,从《弗兰肯斯坦》发表又过了一百多年。经过二次大战的洗礼,人类对自身的认识进入了一个新的阶段。在民主制度与专制制度、民族主义与殖民主义的斗争中,科学技术得到了空前的发展。1950年,计算理论的先驱阿兰·麦席森·图灵写了一篇著名的论文——《计算机器与智能》,其内容是:如果电脑能在5分钟内回答由人类测试者提出的一系列问题,且其超过30%的回答让测试者误认为是人类所答,则电脑通过测试(来自百度百科)。这就是著名的“图灵测试”。计算机专业的读者对于图灵测试应该并不陌生。这个测试想从实验的角度提出一个假设:“机器能与人类交流吗?”问题听起来似乎有点悬,我们换一种方式来重新描述一下这个问题:“有可能设计出具有类似人类智能的机器吗?” 虽然从现代的视野来看,图灵问题本身显得有些粗糙,但不得不承认,图灵问题的提出是人类科技的一个重要的里程碑。它揭开了科学幻想那遥不可即的面纱,将人工智能最重要的任务赤裸裸地摆在了人们的面前——所谓人工智能的终极任务就是人类要制造出具有人类语言和思考能力的机器。 # 2、早期的探索 计算机刚一诞生,人们就开始着手研究用它来解析人类的自然语言。这一需求不仅源于科学家的个人兴趣,而且具有重要的战略意义:20世纪50年代开始,大家都意识到以美、苏两国为首的两大政治集团迟早要进入冷战时代。此时,美国就尝试着利用计算机将大量俄语资料自动翻译成英语,以窥探苏联科技的最新发展。虽然当时的计算机还在襁褓之中,但研究者从破译军事密码中得到启示,简单地认为语言之间的差异只不过是对“同一语义”的不同编码而已,从而想当然地采用译码技术解析不同的语言。这就是最早机器翻译理论的思想。 1954年1月7日,美国乔治敦大学和IBM公司首先成功地将60多句俄语自动翻译成英语。当时的系统还非常简单,仅包含6个语法规则和250个词。但是,由于媒体的广泛报道,美国政府备受鼓舞,认为这是一个巨大的进步,长期发展将具有重要的战略意义。而实验者声称: 在三到五年之内就能够完全解决从一种语言到另一种语言的自动翻译问题。 当时普遍认为只要制定好各种翻译规则,通过大量规则的堆砌就能完美地实现语言间的自动翻译。1956年,美国语言学家N. Chomsky从Shannon的工作中利用了有限状态马尔科夫过程的思想,首先把有限状态自动机作为一种工具来刻画语言的语法,并且把有限状态语言定义为由有限状态语法生成的语言。这些早期的研究工作产生了“形式语言理论”(Formal Language Theory)。它为最初的机器翻译工作提供了理论基础。 经过近十年的努力,机器翻译并未获得本质性的突破。1964年美国科学院成立了语言自动处理咨询委员会(ALPAC),开始了为期两年的综合调查分析和测试。直到1966年年底,委员会公布了一个题为《语言与机器》的报告(简称ALPAC报告)。该报告全面否定了机器翻译的可行性,并建议停止对机器翻译项目的资金支持。这一报告的发表终结了自然语言处理的第一个时代——机器翻译时代。 # 3、规则派还是统计派 虽然机器翻译时代结束了,但自然语言处理这一新兴学科(NLP)却没有消亡。时间进入20世纪七八十年代后,随着经济发展特别是国际市场机制的成熟,国与国之间的语言障碍越来越成为更深层次国际交流的壁垒。传统的人工作业方式已经不能满足需求,这就需要一种自动机器来取代人工。同时,计算机硬件技术大幅度提高,使中等规模的语料(百万级)处理成为可能。经过十多年的发展,自然语言处理逐渐作为人工智能的一个独立领域而发展起来,此时的自然语言处理也分为两种不同的派别。 一种是以语言学理论为基础,根据语言学家对语言现象的认识,采用规则形式描述或解释歧义行为或歧义特性,称为规则派。规则派的方法通常是基于乔姆斯基的语言理论的。它通过语言所必须遵守的一系列原则来描述语言,以此来判断一个句子是正确的(遵循语言原则)还是错误的(违反语言原则)。规则派首先要对大量的语言现象进行研究,归纳出一系列的语言规则。然后再形成一套复杂的规则集——语言分析或生成系统,对自然语言进行分析处理。 另一种是以基于语料库的统计分析为基础的经验主义方法,也称为统计派,该方法更注重用数学,从能代表自然语言规律的大规模真实文本中发现知识,抽取语言现象或统计规律。统计派来源于多种数学基础,包括通香农(Shannon)的信息论、最优化方法、概率图模型、神经网络、深度学习等。它将语言事件赋予概率,作为其可信度,由此来判断某个语言现象是常见的还是罕见的。统计派的方法则偏重于对语料库中人们实际使用的普通语言现象的统计表述。统计方法是语料库语言学研究的主要内容。 两派曾经一度相执不下。这里不考虑两派之间孰是孰非,而是希望通过一个著名的实验给大家一点启示,这个实验就是著名的约翰·赛尔的中文屋子实验。 一个对中文一窍不通的、以英语为母语的人被关闭在一间只有两个通口的封闭屋子中。屋子里有一本用英文写成、从形式上说明中文文字句法和文法组合规则的手册及一大堆中文符号。屋子外的人不断向屋子内递进用中文写成的问题。屋子内的人便按照手册的说明,将中文符号组合成对问题的解答,并将答案递出屋子。 约翰·塞尔认为,尽管屋子里的人甚至可以做到以假乱真,让屋子外的人以为他是中文的母语用户,然而,他压根就不懂中文。而在上述过程中,屋子外的人所扮演的角色相当于程序员,屋子中的人相当于计算机,而那本手册则相当于计算机程序。 正如屋子中的人不可能通过手册理解中文一样,计算机也不可能通过程序来获得对自然语言(中文)的理解能力。塞尔由此得出结论:图灵测试中机器根本不理解回答的问题,机器根本没有思考,机器也没有智能。(来自网络文摘) 塞尔的中文屋测试本来是针对图灵测试的一个反驳意见,但它所揭示的意义是深刻的。当时所谓的人工智能,特别是对自然语言处理领域的主要任务,不过是使用机器来解析人类的语言符号,将其转换为机器能够处理的形式和结构,在机器内部按照人们已经设定好的逻辑进行处理,最后将处理的结果再转码为人类理解的形式,传输给人类。这与大多数非智能的计算机程序没有本质的不同。 的确,计算机几十年的发展,绝大多数程序不都是这样吗?即便像操作系统这样高度复杂的软件,也不能说其中的哪段代码能够自主地识别设备、完成请求任务;或者为任务的执行提出合理性或哪怕看起来稍微有点自发的智能行为。所谓智能不过是程序人员对程序执行的某种预先的设定,所有看起来智能的行为都是在确定性条件下的一条执行路径。 难道,研究就停留在这里了吗?想要突破这一点确实是很艰难的。但是,科学家的脚步并没有就此停止。之后人们终于把视野从确定性的问题开始转向随机性问题,实践上从单纯的指令系统转向研究人类大脑的机制——认知科学。古人云:知人者智,自知者明。在科学探索的艰辛道路上,智慧是一种较低层次的能力,而自省才具有更高级的境界。 # 4、从机器学习到认知计算 进入20世纪90年代,世界经济从国际化逐渐走向了一体化的进程,随着互联网的普遍应用,国际社会之间的交流越来越频繁。人们足不出户即可通过互联网了解世界上发生的大事及形形色色的生活。这种交流不仅出现在政治、经济上,还渗透到人们的日常生活之中。中文互联网搜索引擎的基础语言构件就是中文分词。没有大规模、高精度的分词,很难想象能够实现精准的中文搜索。NLP技术不再是实验室中易碎的花瓶,而是登堂入室地走进了千家万户。 伴随着这些突破的是一系列新方法(算法体系)的出现,它们被统称为“机器学习”。这些方法大多都以神经元和大脑的工作原理为理论基础,模拟人类的认知行为而发展起来。人们发现这些程序不是编程编出来的而是训练出来的,经过二三十年,机器学习在处理多维、非线性问题方面取得了精确而稳定的效果。例如,在大规模语料上的中文分词、词性标注问题的解决,使中文信息检索和文本挖掘成为可能。因为大多数的机器学习方法都以统计学为基础,毫无疑问,统计派占了上风。 时间进入21世纪,终于在2006年,以Hinton为首的几位科学家历经近20年的努力,终于成功设计了第一个多层神经网络算法,因其通过多层架构实现了抽象认知的学习能力,Hinton将其命名为“深度学习”。 深度学习就是一种特征学习方法,把原始数据通过一些简单的但是非线性的模型转变成为更高层次的、更加抽象的表达。通过足够多的转换的组合,非常复杂的函数也可以被学习。(选自《深度学习-LeCun、Bengio和Hinton的联合综述》) 在多年的实验中,人们发现了认知的两个重要机制:一个是抽象,另一个是迭代。从原始信号,做低层抽象,逐渐向高层抽象迭代,在迭代中抽象出更高层的模式。这是认知的生物学原理。目前来看,深度学习在解决机器视觉和语音识别方面都获得了非常好的效果,相关的技术都已经商业化。所以,人们评价,通过深度学习理论及算法,人类终于找到了如何处理“抽象概念”这个亘古难题的方法。 作为认知计算的重要起点,深度学习的递归神经网络在自然语言处理方面同样获得了成功。虽然在中文领域离商业化还有距离,但是这个距离应该不会太远。