本书是第一本全面阐述如何构建健壮和准确多语种自然语言处理系统的图书,由两位资深专家编辑,集合了该领域众多尖端进展以及从广泛的研究和产业实践中总结的实用解决方案。第一部分介绍现代自然语言处理的核心概念和理论基础,展示了现今理解单词和文件结构、分析语法、建模语言、识别蕴含和检测冗余。
第二部分彻底阐述与构建真实应用有关的实际考量,包括信息抽取、机器翻译、信息检索/搜索,总结、问答、精馏、处理流水线等。
本书是第一本全面阐述如何构建健壮和准确的多语自然语言处理系统的图书,由两位资深专家编辑,集合了该领域众多尖端进展以及从广泛的研究和产业实践中总结出的实用解决方案。
第一部分介绍现代自然语言处理的核心概念和理论基础,展示了如何理解单词和文档结构、分析语法、建模语言、识别蕴涵和检测冗余。第二部分彻底阐述与构建真实应用有关的实际考量,包括信息抽取、机器翻译、信息检索、文摘、问答、提炼、处理流水线等。
作者简介
Daniel M. Bikel 现为Google公司高级研究科学家,正在开发用于自然语言处理和语音识别的新方法。在IBM工作期间,他为IBM的GALE多语种信息抽取和自动应答系统构架了拦截系统。在宾夕法尼亚大学攻读博士后期间,他建造了第一个可扩展的多语种语法分析引擎。
Imed Zitouni 现为微软公司高级研究员。2004~2012年,他是IBM公司高级研究科学家,领导IBM公司的阿拉伯语信息抽取和数据资源工作组。在此之前,他还曾领导DIALOCA的语音/自然语言处理组和Bell实验室/阿尔卡特朗讯的语言建模和呼叫路由工作。他的研究涉及机器翻译、自然语言处理和口语对话系统。
看起来几乎每个人都在一定程度上受到了信息技术的发展和互联网繁荣的影响。近来,多媒体信息源变得日益普及。不过,未加工的自然语言文本的总量在不断增长,并且地球上各种主要语言都在不断产生大量未处理文本。例如,英语维基百科报导已有 101 种语言的维基百科,而每种语言至少有10 000 篇文章。因此,不管是国家、公司,还是个人,都迫切需要来分析、翻译、综合或者提炼这些海量文本。
以前,要开发鲁棒、精确的多语自然语言处理(Natural Language Processing, NLP)应用,研究者或者开发人员需要查阅若干本参考书、几十个期刊或者会议论文。本书旨在为开发此类应用提供所需的所有背景知识和实际建议。虽然这个要求很高,但我们希望本书至少是本有用的参考书。
过去20年来,自然语言研究者开发了可处理多种语言的大量文本的若干优秀算法。迄今为止,主流的方法是建立可从实例中学习的统计模型。这样的模型能鲁棒地应对其处理文本的类型甚至语言的变化。如果设计适当,同样的模型可用于新的领域或新的语言,只需要提供相应领域或语言的新的训练实例。这种方法也使得研究者没有必要辛苦地写出处理问题的所有规则以及这些规则联合使用的方式。统计系统一般只要研究者提供可能的输入特征的抽象表示,其相对重要性可在训练(training)阶段学习而得,并在解码(decoding)或者推理(inference)阶段应用于新的文本。
统计自然语言处理领域在快速变化,部分变化源于其快速发展。例如,该领域的主要会议之一是计算语言学年会,其参会人数在过去五年已经翻番。另外,IEEE语音和语言处理会议和期刊上自然语言处理的文章数目也在过去十年中翻了一番以上。IEEE是世界上推进技术发展的最大的专业学会之一。自然语言处理研究者不但在解决本领域的问题上取得了内在的进步,也从机器学习和语言学领域的进展中借鉴良多。本书虽注意先进的算法和技术,但主要目的是对该领域的最佳实践进行详尽的阐明。另外,每章会描述所述方法在多语(multilingual)环境下的适用性。
本书分成两部分。第一部分是理论,包括前七章,展示了自然语言处理的各种基础问题以及解决这些问题的算法。头三章关注的是找出各种不同粒度层次的语言结构。第1章引入了一个重要概念——形态学(morphology),研究词的结构,以及世界上各种语言的不同形态现象的处理方法。第2章讨论了多种方法,文档可由此分解为更易处理的部分,如句子,以及通过主题联系的更大的单位。第3章研究了发现句子内部结构的方法,也即句法(syntax)。句法一直都是语言学最重要的研究领域,这种重要性也反映在自然语言处理领域。说其重要,部分原因是句子的结构和句子的意义相关,所以找出句法结构是理解句子的第一步。
找出句子或者其他文本单位的结构化的意义表示,经常称作语义分析(semantic parsing),这是第4章的内容。第4章还特别讨论了近年来引起诸多关注的语义角色标注(semantic role labeling)问题,其目的是找出可作为动词或谓词的论元的句法短语。对动词的论元进行了识别和分类,我们离生成句子的逻辑形式(logical form)又靠近了一步,而逻辑形式是句子意义的一种表示,这种表示方式容易被机器处理,而用于处理逻辑的多种工具人类自古代就开始研究了。
然而,如果我们不需要语义分析生成的深层句法语义结构呢?如果我们的问题只是确定多个句子中哪个句子是人最可能写或者说的呢?解决此问题的一种方法是开发一个可根据语法合法性而为句子打分的模型并以此选取分值最高的句子。给出一个词串的分值或概率估计的问题称为语言模型(language modeling),这是第5章的主题。
表示意义和判断句子的语法合法性只是处理语言前期步骤中的两种。为了进一步理解意义,我们需要一个算法,该算法可对一段文本中表示的事实进行推理。例如,我们想要知道一个句子中提到的事实是否被文档中前面的某个句子所蕴涵,这种推理被称为识别文本蕴涵(recognizing textual entailment),这是第6章的主题。
找出陈述或事实的相互蕴涵显然对文本自动理解很重要,但是这些陈述的性质也有待考究。理解一个陈述是否是主观的,并找出其表述的意见的倾向性是第7章的主题。由于人们经常表达意见,这显然是一个重要的问题,尤其在社交网络已经成为互联网上人际交流的最重要形式的时代,这一点更显重要。本书第一部分以本章作结。
本书第二部分是实践,讲述如何将第一部分描述的自然语言处理基础技术应用于现实世界中的问题。应用开发经常要做权衡,如时间和空间的权衡,因此本书应用部分的章节探讨了在构建一个鲁棒的多语自然语言处理应用时,如何进行各种算法和设计决策的权衡。
第8章描述识别和区分命名实体(named entity)以及这些实体在文本中提及的办法,也描述了识别两个以上的实体提及共指(corefer)的方法。这两个问题一般称为提及检测(mention detection)和共指消解(coreference resolution),它们是一个更大的应用领域——信息抽取(information extraction)的两个核心部分。
第9章继续信息抽取的讨论,探索找出两个实体如何发生关系的技术,也称为关系抽取(relation extraction)。要识别事件,并对此进行分类,称为事件抽取(event extraction)。此外,事件涉及多个实体,我们希望机器能找出事件的参与者及其所起的作用。因此,事件抽取与自然语言处理中的一个关键问题“语义角色标注”紧密相关。
第10章描述自然语言处理领域中最古老的问题之一,这本质上也是一个多语自然语言处理问题:机器翻译(Machine Translation,MT)。从一种语言翻译为另外一种语言,一直是NLP研究追求的目标。在学术界几十年的努力之后,近年来已经研究出多种方法,在现有的硬件条件下可以进行实用的机器翻译了。
翻译文本是一回事,但是我们如何理解现存的海量文本呢?第8、9章对帮助我们自动产生文本中信息的结构化记录进行了一些探索。解决海量问题的另一个办法是通过查找与某个搜索查询相关的少量文档或者文档的一部分来缩小范围。该问题称为信息检索(information retrieval),这是第11章的主题。像Google一样的商用搜索引擎在很多方面可看作大规模的信息检索系统。由于搜索引擎非常流行,因此这是个很重要的NLP问题——考虑到有大量语料是非公开的,从而不能被商业引擎搜索到,所以信息检索越发重要。
处理大量文本的另一个办法是自动文摘,这是第12章的主题。摘要很困难,一般有两种做法:找到若干个句子或句子片段来表示文本的大意;理解文本,将其意义进行某种内部表示,然后生成摘要,与人为的操作一样。
人们经常倾向于使用机器自动处理文本,因为他们有很多问题要找到答案。这些问题可以是简单的事实性问题,如“约翰·肯尼迪何时出生”,也可以是复杂的问题,如“德国巴伐利亚的最大城市是哪个”。第13章讨论如何建造自动回答这类问题的系统。
如我们想回答的问题还更复杂那该怎么办?我们的查询可能有多个答案,如“找出奥巴马总统在2010年会见的外国政府首脑”。这类查询可由在NLP中被称为提炼(distillation)的一门较新的子学科处理。提炼需要真正地把信息检索和信息抽取技术结合起来,同时还要增加自己的技术。
在许多情形下,我们希望机器能利用语音识别和合成技术交互式地处理语言。这样的系统称为对话系统(dialog system),这在第15章讨论。由于在语音识别、对话管理和语音合成方面的技术进展,对话系统越来越实用,并且已经在实际场合中广泛安装使用。
最后,我们作为NLP研究者和工程师,希望用世界上开发的大量不同的部件来构造系统。这种处理引擎的聚合在第16章介绍。虽然这是本书的最后一章,但从某种意义上来讲这代表处理文本的开始而非结尾,因为该章描述了一个通用的架构,可用来生成不同组合的一系列处理流水单元。
我们希望本书是自足的,同样希望读者将其作为学习的开始而不是结束。每章都有大量参考文献,读者可以用来继续深入研究任何话题。NLP的研究队伍在全世界越来越壮大,我们希望你加入我们的行列,一起进行自动文本处理的激动人心的探索。你可以在大学、研究所、会议、博客甚至社交网络上和我们一起交流。多语自然语言处理系统的未来是十分光明的,我们期待你的贡献!
致谢
写作本书伊始,我们就将它定位为多个作者通力合作的成果。我们对IBM出版社/Prentice Hall 在起步阶段给予的鼓励和支持怀有无限的感激,特别要感谢Bernard Goodwin 和所有其他在IBM出版社工作的员工,他们在项目的开展和结束过程中给予了帮助。这样一本书当然也离不开我们各章节作者大量的时间、努力和技术才能的投入,所以我们非常感谢Otakar Smr、HyunJo You、Dilek HakkaniTür、Gokhan Tur、Benoit Favre、Elizabeth Shriberg、Anoop Sarkar、Sameer Pradhan、Katrin Kirchhoff、Mark Sammons、VGVinod Vydiswaran、Dan Roth、Carmen Banea、Rada Mihalcea、Janyce Wiebe、Xiaqiang Luo、Philipp Koehn、Philipp Sorg、Philipp Cimiano、Frank Schilder、Liang Zhou、Nico Schlaefer、Jennifer ChuCarroll、Vittorio Castelli、Radu Florian、Roberto Pieraccini、David Suendermann、John FPitrelli以及 Burn Lewis。Daniel MBikel 还对Google Research表示感谢,特别对Corinna Cortes 在本项目最后阶段给予的支持表示感谢。最后我们(Daniel MBikel 和 Imed Zitouni)要对IBM Research 的支持表示由衷的感谢,特别要感谢Ellen Yoffa,没有他,本项目就不可能完成。
计算机科学及应用
本书是第一本全面阐述如何构建健壮和准确的多语自然语言处理系统的图书,由两位资深专家编辑,集合了该领域众多尖端进展以及从广泛的研究和产业实践中总结出的实用解决方案。
第一部分介绍现代自然语言处理的核心概念和理论基础,展示了如何理解单词和文件结构、分析语法、建模语言、识别蕴含和检测冗余。第二部分彻底阐述与构建真实应用有关的实际考量,包括信息抽取、机器翻译、信息检索、文摘、问答、提炼、处理流水线等。
(美)Daniel M. Bikel, Imed Zitouni 编:Daniel M. Bikel,现为Google公司高级研究科学家,正在开发用于自然语言处理和语音识别的新方法。在IBM工作期间,他为IBM的GALE多语种信息抽取和自动应答系统构架了拦截系统。在宾夕法尼亚大学攻读博士后期间,他建造了第一个可扩展的多语种语法分析引擎。
Imed Zitouni,现为微软公司高级研究员。2004-2012年,他是IBM公司高级研究科学家,领导IBM公司的阿拉伯语信息抽取和数据资源工作组。在此之前,他还曾领导DIALOCA的语音/自然语言处理组和Bell实验室/阿尔卡特朗讯的语言建模和呼叫路由工作。他的研究涉及机器翻译、自然语言处理和口语对话系统。
史晓东 陈毅东 等译:暂无简介
本书对自然语言处理的多语言相关现象做了深入的研究,内容丰富,引用了很多最新的文献。对广大的自然语言处理研究者和开发者来说,这是一本非常好的参考书。
全书分为理论和实践两部分。理论部分有7章,实践部分有9章,各章可单独阅读。下面对各章内容进行简要评述,以供读者参考。
第1章主要讨论形态学,重点关注阿拉伯语等屈折语的形态处理。该章提到了汉语的分词问题,但是没有任何描述,另外还讨论了很有意思的形态归纳问题。
第2章主要讨论文档结构,包括句子边界检测、话题边界检查,主要讨论了基于特征的机器学习方法,对语音的分割也进行了讨论。
第3章讨论了句法分析,涉及的内容丰富而具体。
第4章讨论了语义分析,是本书篇幅最大的一章,内容非常详尽,从各类语义问题描述、资源、方法到具体系统,应有尽有。
第5章讨论了语言模型,介绍各种先进的语言模型,有很多最新的内容和文献可供读者参考,阅读该章需在理解了n元模型的基础上进行。
第6章讨论了文本蕴涵识别,提出了一个文本蕴涵框架,介绍了各类文本蕴涵算法和系统及其性能评测,提供了很多相关资源。
第7章讨论了情感和主观性分析,强调了孳衍(bootstrapping)方法的使用(特别是跨语言孳衍)。
第8章讨论了提及检测和共指消解,这是两个信息抽取中的基本问题。该章写得非常简明扼要,而且提供了一种实现。
第9章讨论了关系抽取和事件抽取,也属于信息抽取的范畴。该章探讨了机器学习的方法,并提倡将实体检测和关系抽取结合在一个模型里。
第10章讨论了机器翻译及其现状、评测与各种模型。
第11章讨论了信息检索,内容翔实,特别区分了跨语言信息检索和多语言信息检索。
第12章讨论了自动文摘,对其历史、方法、评测、系统构造、工具、多语问题都有细致的描述。自动文摘也可以看作是信息抽取问题。
第13章讨论了问答系统,对涉及的实现技术和相关算法都进行了详细的描述。问答系统也可以看作是高级的信息抽取。
第14章讨论了提炼,这是介于信息检索和问答系统的一类新兴问题,需要融合多个信息源的知识。
第15章讨论了口语对话系统,包括其体系结构、技术和方法,以及实现中的一些问题。
第16章讨论了自然语言处理的多引擎聚合,包括其常见的体系结构,并在GALE项目背景下讨论了一个详细案例。
虽然本书的目的之一是在基础知识方面尽量完整,读者不需要为了自然语言处理基本任务去看很多书,但是,对于已经有自然语言处理基础的读者而言,本书提供了很多最新的研究内容,其参考文献和提供的大量可下载资源的链接非常有价值,省去了读者很多宝贵的时间。对自然语言处理系统的研发者,特别是信息抽取和信息检索相关的开发者,本书是非常好的参考。
译者在翻译时全书尽量采用统一的术语,并且采用浅显的译法来帮助读者理解。然而语言学和自然语言处理方面的术语迄今还有很多不如意之处,因此可能仍然不能使读者看其言而知其义。
本书由多人翻译,基本上每人一章。翻译人员按照章节顺序分别为史晓东、谭波、徐伟、陈毅东(其中黄哲煌翻译了452节)、黄研洲、林达真、苏劲松、胡金铭、何中豪、邬昌兴、方瑞玉、罗凌、崔志健和方瑞玉、甘星超、王晓苏、曹茂元。校对工作也由史晓东、陈毅东、谭波等多人参加。全书由史晓东统校,对存在的翻译错误负主要责任。出版社的王春华老师对本书的翻译给出了很多指导性意见,特此感谢。
由于译者水平有限,翻译时间也很仓促,译文中肯定还存在不少错误,欢迎读者批评指正,以便将来修订。译者的联系地址为mandel@xmu.edu.cn。
出版者的话
译者序
前言
关于作者
第一部分理论
第1章找出词的结构
11词及其部件
111词元
112词形
113词素
114类型学
12问题和挑战
121不规则性
122歧义性
123能产性
13形态模型
131查词典
132有限状态形态
133基于合一的形态
134函数式形态
135形态归纳
14总结
第2章找出文档的结构
21概述
211句子边界检测
212主题边界检测
22方法
221生成序列分类方法
222判别性局部分类方法
223判别性序列分类方法
224混合方法
225句子分割的全局建模扩展
23方法的复杂度
24方法的性能
25特征
251同时用于文本与语音的特征
252只用于文本的特征
253语音特征
26处理阶段
27讨论
28总结
第3章句法
31自然语言分析
32树库:句法分析的数据驱动方法
33句法结构的表示
331使用依存图的句法分析
332使用短语结构树的句法分析
34分析算法
341移进归约分析
342超图和线图分析
343最小生成树和依存分析
35分析中的歧义消解模型
351概率上下文无关文法
352句法分析的生成模型
353句法分析的判别模型
36多语言问题:什么是词元
361词元切分、实例和编码
362分词
363形态学
37总结
第4章语义分析
41概述
42语义解释
421结构歧义
422词义
423实体与事件消解
424谓词 论元结构
425意义表示
43系统范式
44词义
441资源
442系统
443软件
45谓词 论元结构
451资源
452系统
453软件
46意义表示
461资源
462系统
463软件
47总结
471词义消歧
472谓词 论元结构
473意义表示
第5章语言模型
51概述
52n元模型
53语言模型评价
54参数估计
541最大似然估计和平滑
542贝叶斯参数估计
543大规模语言模型
55语言模型适应
56语言模型的类型
561基于类的语言模型
562变长语言模型
563判别式语言模型
564基于句法的语言模型
565最大熵语言模型
566因子化语言模型
567其他基于树的语言模型
568基于主题的贝叶斯语言模型
569神经网络语言模型
57特定语言建模问题
571形态丰富语言的建模
572亚词单元的选择
573形态类别建模
574无分词语言
575口语与书面语言
58多语言和跨语言建模
581多语言建模
582跨语言建模
59总结
第6章文本蕴涵识别
61概述
62文本识别蕴涵任务
621问题定义
622RTE的挑战
623评估文本蕴涵系统性能
624文本蕴涵解决方案的应用
625其他语言中的RTE研究
63文本蕴涵识别的框架
631要求
632分析
633有用的组件
634通用模型
635实现
636对齐
637推理
638训练
64案例分析
641抽取语篇约束
642基于编辑距离的RTE
643基于转换的方法
644逻辑表示及推理
645独立于蕴涵学习对齐
646在RTE中利用多对齐
647自然逻辑
648句法树核
649使用有限依存上下文的全局相似度
6410RTE的潜在对齐推理
65RTE的进一步研究
651改进分析器
652发明或解决新问题
653开发知识库
654更好的RTE评价
66有用资源
661文献
662知识库
663自然语言处理包
67总结
第7章多语情感与主观性分析
71概述
72定义
73英语中的情感及主观性分析
731词典
732语料库
733工具
74词级和短语级标注
741基于字典的方法
742基于语料库的方法
75句子级标注
751基于字典
752基于语料库
76文档级标注
761基于字典
762基于语料库
77什么有效,什么无效
771最佳情况:已有人工标注的语料库
772次优情形:基于语料库的跨语言映射
773第三优情形:孳衍词典
774第四优情形:翻译词典
775各种可行方法的比较
78总结
第二部分实践
第8章实体检测和追踪
81概述
82提及检测
821数据驱动的分类
822搜索提及
823提及检测特征
824提及检测实验
83共指消解
831Bell树的构建
832共指模型:链接和引入模型
833最大熵链接模型
834共指消解实验
84总结
第9章关系和事件
91概述
92关系与事件
93关系类别
94将关系抽取视为分类
941算法
942特征
943分类器
95关系抽取的其他方法
951无监督和半监督方法
952核方法
953实体和关系检测的联合方法
96事件
97事件抽取方法
98超句
99事件匹配
910事件抽取的未来方向
911总结
第10章机器翻译
101机器翻译现状
102机器翻译评测
1021人工评测
1022自动评测
1023WER、BLEU、METEOR等
103词对齐
1031共现
1032IBM模型1
1033期望最大化
1034对齐模型
1035对称化
1036作为机器学习问题的词对齐
104基于短语的翻译模型
1041模型
1042训练
1043解码
1044立方剪枝
1045对数线性模型和参数调节
1046控制模型的大小
105基于树的翻译模型
1051层次短语翻译模型
1052线图解码
1053基于句法的模型
106语言学挑战
1061译词选择
1062形态学
1063词序
107工具和数据资源
1071基本工具
1072机器翻译系统
1073平行语料
108未来的方向
109总结
第11章跨语言信息检索
111概述
112文档预处理
1121文档句法和编码
1122词元化
1123规范化
1124预处理最佳实践
113单语信息检索
1131文档表示
1132索引结构
1133检索模型
1134查询扩展
1135文档先验模型
1136模型选择的最佳实践
114CLIR
1141基于翻译的方法
1142机器翻译
1143中间语言文档表示
1144最佳实践
115多语言信息检索
1151语言识别
1152MLIR的索引建立
1153翻译查询串
1154聚合模型
1155最佳实践
116信息检索的评价
1161建立实验环境
1162相关性评估
1163评价指标
1164已有数据集
1165最佳实践
117工具、软件和资源
118总结
第12章多语自动文摘
121概述
122自动文摘方法
1221传统方法
1222基于图的方法
1223学习如何做摘要
1224多语自动摘要
123评测
1231人工评价
1232自动评价
1233自动文摘评测系统的近期发展
1234多语自动文摘的自动评测方法
124如何搭建自动文摘系统
1241材料
1242工具
1243说明
125评测竞赛和数据集
1251评测竞赛
1252数据集
126总结
第13章问答系统
131概述和历史
132架构
133源获取和预处理
134问题分析
135搜索及候选抽取
1351非结构化资源搜索
1352非结构化源文本的候选抽取
1353结构化源文本的候选抽取
136回答评分
1361方法概述
1362证据结合
1363扩展到列表型问题
137跨语言问答
138案例研究
139评测
1391评测任务
1392判断答案正确性
1393性能度量
1310当前和未来的挑战
1311总结和进一步阅读
第14章提炼
141概述
142示例
143相关性和冗余性
144Rosetta Consortium 提炼系统
1441文档和语料库准备
1442索引
1443查询回答
145其他提炼方法
1451系统架构
1452相关度
1453冗余
1454多模态提炼
1455跨语言提炼
146评测和指标
147总结
第15章口语对话系统
151概述
152口语对话系统
1521语音识别和理解
1522语音生成
1523对话管理器
1524语音用户接口
153对话形式
154自然语言呼叫路由选择
155三代对话应用
156持续的改进循环
157口语句子的转录和标注
158口语对话系统的本地化
1581呼叫流程本地化
1582提示本地化
1583文法的本地化
1584源端数据
1585训练
1586测试
159总结
第16章聚合自然语言处理引擎
161概述
162聚合语音和NLP引擎架构的期望属性
1621灵活的分布式组件化
1622计算效率
1623数据操作功能
1624鲁棒性处理
163聚合的架构
1631UIMA
1632GATE
1633InfoSphere Streams
164案例研究
1641GALE 互操作性演示系统
1642跨语言自动语言开发系统
1643实时翻译服务
165经验教训
1651分割涉及延迟和精度之间的权衡
1652联合优化与互操作性
1653数据模型需要使用约定
1654性能评估的挑战
1655引擎的前向波训练
166总结
167UIMA样本代码
索引