一、 引言<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

随着大规模语料库的建设和各种语言知识库的出现,基于语料库的统计机器学习方法进入自然语言处理的视野。多种机器学习方法应用到自然语言处理中来并取得了良好的效果,促进了自然语言处理技术的发展。然而,自然语言处理领域仍然有许多课题尚待探索,为机器学习的研究与应用提供了广阔的舞台。
本文较系统地介绍了自然语言处理中广泛存在的歧义现象的类型、实例和问题,并提供了我们利用机器学习方法解决其中一些问题的实例。本文还引出文学语言对机器学习的挑战性课题,其目的是期望更多的机器学习专家关注自然语言处理领域中的问题,共同努力,使自然语言处理技术朝自然语言理解的方向不断前进。

二、自然语言处理的主攻方向

自然语言处理的流程可以划分为分析和生成两大部分。自然语言生成固然也有很多难题,但几十年来,自然语言处理研究的重点是分析。自然语言分析的关键就是识别与消解自然语言的歧义。人与人的交流由于有共同的知识背景,并且能领会交流的环境和过程,通常不会产生误解。但是,作为语言学研究对象的任何一个语言单位,如词、短语和句子等,如果脱离语境而孤立存在,通常都是有歧义的。当交流在人和机器之间进行时,由于机器尚不具备“背景知识”和“世界知识”,歧义现象就表现得尤为突出。
汉语信息处理很难回避的一个步骤就是把用汉字序列书写的句子切分为词的序列或者说从句子中辨识出词。在这个最基本的步骤中,就存在大量的歧义。例如,仅“白天鹅”这3个汉字组成的序列就存在歧义:是“白/天鹅/”还是“白天/鹅/”?如果这3个字的序列落在更长的汉字序列中,歧义就可能得以消解。
白天鹅飞过来了——白/天鹅/飞/过来/了/  (因为鹅不会飞)
白天鹅可以看家——白天/鹅/可以/看/家/  (家里通常不会养天鹅)
人如何消解歧义呢?当然是根据业已掌握的知识。也可以把这些知识教授给计算机,存储在知识库中,计算机据此也可以消解这样的歧义。但如果“白天鹅”落在“白天鹅在湖里游泳”中,仅依靠存储在人脑或电脑中的静态知识,是不能判定句中的“白天鹅”这3个字应该如何切分的,必须依赖更大的上下文语境。
*本文相关研究得到国家973课题“文本内容理解的数据基础(2004CB318102)”、国家自然科学基金(60773173,60603093,60503071)、国家博士后基金(20060400027)和江苏省社会科学基金(06JSBYY001)的支持。
动物园里,白天鹅在湖里游泳。——动物园/里/,/白/天鹅/在/湖/里/游泳/。/
白天鹅在湖里游泳,夜晚青蛙在池边鸣唱。
——白天/鹅/在/湖/里/游泳/,/夜晚/青蛙/在/池/边/鸣唱/。/
词语切分确定下来之后,还有歧义。见下例: 
老子不在家——老子/不/在/家/ 
这里的“老子”如果读“lao3zi<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3”,是指古代的人物;如果读“lao3zi”,则可能指“父亲”,或者指“自己”。以上句子中“子”的读音不同可以造成意义的不同,而同音词也会形成另外的歧义。下面几个例子中“连”的读音是一样的,但词性不同(当然,词义也不同):
    一个连有三个排——“连”是名词,指军队的建制;
我们兄弟心连心——“连”是动词,“连接”的意思;
苹果可以连皮吃——“连”是介词,“带”的意思。 
当词语切分和词性标注正确解决之后,还会面临语句结构的歧义。
两个孩子的母亲——两/m  个/q  孩子/n  的/u  母亲/n
              ——[ [  两/m  个/q  孩子/n ]  的/u  母亲/n ]
              ——[  两/m  个/q  [孩子/n  的/u  母亲/n ] ]
(m,q,n,u 分别是数词、量词、名词、助词的代码)
短语中各个词的结合顺序不同,就构成结构不同的短语,意义也就不一样。
再考察下面一组句子及其切分和词性标注的结果,其切分、标注、语句结构都无歧义:   
狗熊/n  吃/v  玉米/n                    
学生/n  吃/v  食堂/n                                     
民工/n  吃/v  大碗/n
显然,动词“吃”与其后面同是宾语的“玉米”、“食堂”、“大碗”的语义关系是不一样的:“玉米”是“吃”的受事(动作所及的对象),“食堂”是“吃”的处所,“大碗”则是工具。又如,同是述补结构的“写完了”、“写累了”、“写满了”、“写全了”中的补语“完、累、满、全”的语义指向也是不一样的:“书稿写完了”、“老师写累了”、“纸写满了”、“要点写全了”。这样的语义指向问题对于计算机理解来说已经非常困难了,但毕竟还可以根据上下文进行分析。而像对
天快要下雨了吧?
这句话的意义的理解,则完全依赖说这句话的人身份和当时的心境:主人希望留客还是在下逐客令。只有对说话者的态度进行揣度分析,才能消解这种语境歧义。
除上述句子内的切词、多音词、词性、词义、句法结构、语义角色等都有歧义现象外,其它语言求解问题,诸如断句(现代汉语尽管有标点符号,确定句法和语义相对完整、又不过长的句子仍是难题)、指代、省略也可归结为歧义问题。
自然语言处理技术的进步总是伴随着计算机系统内的知识库的丰富和发展。然而,人对知识的运用并不局限于已经知道的知识以及单纯的机械计算或逻辑推理,人还会灵活运用旧知识,从而创造出新知识。以下是笔者之一的亲身经历。
曾在飞机上阅读《今日民航》(2001年9月号)上一篇关于“沙漠化”的文章:“几年前由于种植籽瓜有利可图,使大批的种植者就到过渡带来开垦,……在这样的绿洲和沙漠过渡带开垦,极易造成风蚀。”
删节号代表略去的很长的篇幅。开始读删节号之前的第2句话,就是读不懂,朦胧地做了这样的切分:“就”、“就到”、“到”、“到过”、“过渡”、“带”、“带来”、“来”、“开垦”,总是感觉不连贯。无奈,也就放过去了。当读到删节号后的那句话时,“过渡带”这个新词突然被发现,而且很自然地联想到前面那句未能理解的话,现在也豁然理解了。那时笔者第一次接触“绿洲和沙漠过渡带”这样一个新概念,从前笔者的脑海中并没有这样的知识,却突然获取了这个知识,这种情况可不可以说是“顿悟”?这种“顿悟”的机理,计算机可以模拟吗?这一段由不懂到懂的文字显然超出了“未定义词”的范畴,因为“籽瓜”对很多人和机器词典来说或许也是未定义词,但似乎并不像“过渡带”这个新概念那样妨碍对文章的理解。
让计算机理解符合规则(词法、句法、语义)的自然语言的语句和文本已经是十分困难的任务,不同语言单位的各种形态的歧义已经让研究者左支右绌,力不从心。然而,当自然语言处理面对语言中的各种修辞手法时,又会遭遇什么样的困难呢?

三、文学语言对机器学习提出的挑战

    记得一位语言学家W. Taubert 曾说过,“自然语言是一套规则加噪声”。这个命题如果不算是一条定律,至少是一种看法。
    哪些现象可以看作是噪声?规则能反映形象思维的规律吗?这些问题同样难以界定。
并非所有不合规则和常识的语句都是噪声。在常识范围内,动词“吃”的客体或对象通常是食物。土块不是食物。有报纸曾载,“中国河北省有个老太太吃土块”。显然不能认为这句违背常识的话是混在正常自然语言中的噪声。
文学作品常常采用的一些表现手法更增加了自然语言理解的难度,甚至超越了目前机器理解可能达到的界限。而这些文学表现手法也不能简单地看作是自然语言的噪声。

(1) 隐喻和影射

隐喻是修辞学的传统研究内容,运用隐喻是为了提高语言表达效果。作为一种修辞手段,隐喻可以归于文学语言的范畴,但从认知语言学角度观察,隐喻无处不在,因此它又不限于文学语言的范畴。认知语言学甚至认为“隐喻不仅仅是语言修辞手段,而且是一种思维方式——隐喻概念体系。作为人们认知、思维、经历、语言甚至行为的基础,隐喻是人类生存主要的和基本的方式[1]。”在计算语言学领域,特别是在汉语信息处理领域,中国内地学者只是近年来才开始关注“隐喻”的识别和求解[2,3]。不过,语言信息处理要走上自然语言理解的坦途,隐喻是必须逾越的路障。
首先探讨隐喻和歧义的关系。歧义是指对同一个语言形式进行分析或理解时,至少存在两种不同的结果。歧义消解就是对两种以上的可能结果,在特定的语境中选择其中的一种作为答案。歧义的最终消解取决于语境,需要语境分析。机器理解的困难是“由同辨异”。
“这男人是狼”和“那女人是狐狸”这样的话就是隐喻。“男人是狼”本是违反生物分类学常识的,而在自然语言中这种表现形式又是常见的。隐喻符合人的认知机制,说话人利用了“男人”和“狼”的某种共同属性构成含有隐喻的句子,比直接说“男人如何如何”的表现力要丰富得多,听话人“异中求同”,也能够理解说话人想讲什么。对于机器来说,“异中求同”和“由同辨异”一样困难。隐喻也包含有歧义问题,“男人是狼”在不同的语境中也可能表达不同的意思。又如,“男人都是动物”表面上是符合常识的,这句话在不同语境中有歧义,在某个语境中,也可以作为隐喻。隐喻和歧义的复杂关系及其界定还需要进行深入的讨论。 
可以根据包含隐喻的语言单位的大小将隐喻划分为词汇级、语句级和篇章级。
从词汇级隐喻开始(以下涉及词义,均参照《现代汉语词典》[4],但也有一些修改)。像“山头”、“墙脚”、“心田”、“吹牛”、“露马脚”、“吹毛求疵”、“鸡蛋里挑骨头”这样一些些词语,都是借助隐喻形成的。例如,“山头”有两个义项:①山的最高处;②比喻独霸一方的宗派。②显然是隐喻。关于①,这个“山头”也是由隐喻形成的,本体是“山(的最高处)”,喻体是“(人)头”。只是人们已经习惯叫“山头”,词典就不特别指明它是隐喻。“山头”在组成短语时又可以有进一步的隐喻用法,如“他这个人惯于垒山头,作风不正派”。
只要词典(或机器中的词汇知识库)登录了这些词语的各种义项(包括本义或引申的隐喻义),识别和理解这些词语没有特别的困难,其求解技术同歧义消解没有本质的区别。词汇级隐喻也在发展。像“病毒”、“窗口”、“垃圾”这些词,1996年版的《现代汉语词典》的释义都与计算机技术没有关系。由于计算机技术的普及,这些词的新义在社会上的使用日益广泛。2005年版的《现代汉语词典》增加了这些词作为计算机词汇的新义项。这些词都是由隐喻形成的,但把这些词汇加入词典后,对这些词汇隐喻意义的识别就如同词义消歧一样,没有特别之处了。
语句级的隐喻如:“金融风暴”、“知识的海洋”、“郎平是中国女排的铁榔头”、“铁榔头(指郎平)的去向尚未敲定”、“幻想是诗人的翅膀”,等等。“诗人的翅膀”和“幻想是翅膀”已经是隐喻的表现形式,“幻想是诗人的翅膀”则是双重隐喻。
“风暴”、“海洋”、“铁榔头”、“翅膀”都是普通的名词,用在这里使整个语句有了隐喻的意义。普通动词和形容词也可以用于隐喻。像“铁榔头(指郎平)的去向尚未敲定”中的“敲”在这里也是隐喻用法。其它的例子还有“用知识照亮希望”,“热血沸腾,激情燃烧”、“这样处理可以得到漂亮的结果”,等等。
“书要摆在书架上,或者抛几本在地板上,酒杯要摆在桌子上,但算盘却要收在抽屉里,或者最好是收在肚子里。”(鲁迅《病后杂谈》)
这是一个句群。第二个“或者”之前的几句都符合常识。“算盘”作为计算工具自然可以“收在抽屉里”,前面用“但”,会使人感到奇怪。读到“或者最好是收在肚子里”,才会理解“收在肚子里”的“算盘”是个人的想法和打算,当然不便摆在“桌面”上。这样,整个句群的隐喻意义才会显现出来。
“打起黄莺儿,莫叫枝上啼。啼时惊妾梦,不得到辽西。”这首短诗可以作为篇章级隐喻的例子。其中“辽西”喻指古战场,整首诗则反映妻子对在远方征战的亲人的魂牵梦绕。篇章级的隐喻自然更难求解。像鲁迅的《狂人日记》显然不能按字面意义去理解,一定要理解它隐喻什么,影射什么。在这里,影射是要达到的目的,而隐喻只是表现手段。
语言或文章常有弦外之音(这里的“弦外之音”又隐喻“言外之意”),这是最难理解和表达的。弦外之音是否也可看作篇章级隐喻的效果?或许也可看作是语用问题,也就是必须基于语境(狭义的上下文和广义的社会、文化、历史环境)才能消解的歧义。
再看朱庆余的宫中词“寂寂花开闭院门,美人相并立琼轩。含情欲说宫中事,鹦鹉前头不敢言。”诗人想象两个宫女想讲讲贴己话,又恐鹦鹉学舌,泄露机密。计算机即使装备了“鹦鹉会学人说话”的知识,它能理解诗中所反映的宫女的孤寂和胆怯吗?这首诗或许还有更深一层的含义,表现皇宫内院的压抑、沉闷、恐怖、人人自危的生存环境,这样的一层含义,计算机能够通过学习进而理解吗?
文学作品常常表现人物触景生情,如王昌龄的《闺怨》:“闺中×××不知愁,春日凝妆上翠楼。忽见陌头杨柳色,悔教夫婿觅封侯。”为什么×××见了杨柳,就对让丈夫外出竞逐功名起了后悔之心?只在这一首诗中是难以找到答案的,必须了解当时人们的文化背景。以“杨柳”为关键词检索唐诗,找到如下一些诗篇:张九龄的《折杨柳》:“纤纤折杨柳,持此寄情人,一枝何足贵,怜是故园春。”李瑞的《横吹曲辞——折杨柳》:“赠君折杨柳,颜色岂能久,上客莫沾巾,佳人正回首。”令狐楚的《远离别》:“昨日卢梅渡口,整见诸人镇守,都护三年不归,折尽江边杨柳。”还有《送别》:“杨柳东门树,青青夹御河。近来攀折苦,应为别离多。”从这些诗,读者可以了解,唐代人经常把“杨柳”和“离别”、“思念”联系在一起。计算机能不能学到这样的知识?对包含“杨柳”的诗篇进行比较、计算、判别,探求诗篇所表达的情感,进而达到对不同语境中的“杨柳”词义的理解。这是计算语言学正在努力研究的问题[5]。
除了隐喻之外,还有很多的文学表现手法也突破了常规的语法。文学作品是形象思维的结晶,其表现形式自然也需要形象生动,需要标新立异,常常采用夸张、拟人、典故、双关等表现手法,还要照顾韵律、节奏、效果等美学因素,由此造成的真实文本往往有不合语法、违反常识的现象,这些算不算噪声,计算机如何识别、应对和理解?

(2) 引用典故

韦庄的《章台夜思》:“清瑟怨遥夜,绕弦风雨哀。孤灯闻楚角,残月下章台。芳草已云暮,故人殊未来。乡书不可寄,秋雁又南回。”乡书和秋雁有何关联?这里引用了古人(《汉书:苏武传》)的雁足传书的故事。
     杜牧的《赤壁》:“折戟沉沙铁未销,自将磨洗认前朝。东风不与周郎便,铜雀春深锁二乔。”这里引用了火烧赤壁的大故事,里面又包含了借东风、孙策娶大乔、周瑜娶小乔、曹操建铜雀台等小情节。如果不了解这些历史事件,如何能知道这首诗在说些什么呢?
    当代人讲话、写文章也常常引用典故或古诗词。

(3) 遣词造句的形象化

(3-1) 使用形象化的量词
通常名词与量词的搭配有一定的规则和约定俗成的习惯。为了生动形象,使人印象深刻,
可能故意标新立异,选用其它的词作量词。例如:“灯”是可计数名词,与它搭配的典型量词是“盏”。可是,在下面的报道中:
“雪一程,风一程,灾区雪夜千帐灯。张北县台路沟乡二百来户人家的大圪村,人口近六百人。走进村民赵荣福家的帐篷,几户人正围坐在一台电视机前,收看电视新闻节目。”
“千帐灯”虽然符合“数词+量词+名词”的结构,可是量词用了“帐”,显然不合常规,但又比“盏”要生动,更切合情境。又如,“一钩新月”、“一叶小舟”、“一寸光阴一寸金”中的量词“钩、叶、寸”是很形象的,但都不是通常使用的。
(3-2)  词性的变通使用
古汉语中不乏词性变通使用的实例:
晓镜但愁云鬓改
在此,名词“镜”作动词用:“照镜子”。
春风又绿江南岸
在此,形容词“绿”作动词用:“使…变绿”。
当局能肩天下事
读书深得古人心
在此,名词“肩”作动词用:“肩负”。
这里的名词“镜”、“肩”和形容词“绿”都作了动词,固然是受制于古诗、楹联的字数和格律,却也显得紧凑、生动。由此可以看出,词性变通使用的现象在古汉语中已经存在。变通使用得多了、久了,就成了兼类。
(3-3)韵律影响语序,造成不合语法、语义的词序
    ×××的诗句“春风杨柳万千条,六亿神州尽舜尧。”中的“神州”指中国,何来“六亿中国”?应是“中国的六亿人”。受律诗平仄分布规律的制约,诗人改变了正常语序。
李清照的词:“帘卷西风,人比黄花瘦。”查《现代汉语词典》中动词“卷”,有例句:“风卷着雨点劈面打来”。据此,正常语序“西风卷帘”才好理解。
(3-4)拟声、拟态词
“离离原上草,一岁一枯荣。野火烧不尽,春风吹又生。远芳侵古道,晴翠接荒城。又送王孙去,萋萋满别情。”这里的“离离”指草长垂貌;“萋萋”指草盛貌。
“风萧萧兮易水寒,壮士一去兮不复还。”中的“萧萧”可能是拟声词。“无边落木萧萧下,不尽长江滚滚来”中的“萧萧”、“滚滚”可能是拟态词,也可能是拟声词。 这些拟声词、拟态词是很难根据所用的汉字猜想其真正意义的。
(3-5)褒贬色彩转换
“他出国留学不过3年,便‘拐’了一个洋妞回来。”“拐骗”意义的“拐”是贬义词,用在这里只有夸耀、羡慕的意义,完全没有贬义。
正意反说与褒贬色彩转换有点相似。“岭外音书绝,经冬复立春。近乡情更怯,不敢问来人。”(李频:渡汉江)长年流浪在外,好不容易快回到故里了,照常理,本该急切了解家乡近况,此刻却反而不敢打听了,这种心态把太过牵挂的心境,表现得淋漓尽致。

(4) 夸张

    李白的乐府诗《将进酒》:“君不见黄河之水天上来,奔流到海不复回。君不见高堂明镜悲白发,朝如青丝暮成雪。”讲黄河水的磅礴气势,用头发喻人生,都极其夸张,超出了常识。

(5)双关

(5-1)语义双关
由于语言符号的有限性与自然语言所表现的内容的无限性,自然语言的歧义是固有的,但人们有时还要故意采用歧义表现手段,凸现出待人接物的技巧和语言运用的艺术。一语双关是典型的例证。
“可是匪徒们走上几十里的大山背,他们没想到包马脚的麻袋片全烂掉在马路上,露出了他们的马脚。”(曲波《林海雪原》)
通常,“露马脚”只用其引申义(隐喻):露出破绽。这里的“露马脚”一语双关:表面上叙述事实,实际上用了隐喻。
“往后的日子,儿子开始在下课后被留下来,开始了他自己说的‘留学’生涯。理由是字写得太丑了,留下来继续学写字。”
通常,“留学”是“留在国外学习”的缩写,约定俗成,中国人“留学”还常让人羡慕。这里将“留下来继续学写字”也紧缩成“留学”,也符合词语缩略的规则,却又明显带有调侃的口气,显得幽默风趣。
以下的例子是歧义的活用 —— 一语双关的例子:
某下岗工人开的理发店的招牌:“从头开始”。其意思一:我的新生活从(剃)头(理发)开始;意思二:下岗不可怕,一切可以从头(重新)做起。表现了理发店主人诙谐的性格,乐观的生活态度。
另一理发店的招牌:“顶上功夫”。其意思一:头(顶)上的手艺——理发;意思二:最棒的手艺。一语双关,用得实在妙!
(5-2)谐音双关
利用音同或音近的条件使词语或句子语义双关,也是一种艺术。古诗如:
“东边日出西边雨
道是无晴(情)却有晴(情)”
这样的谐音双关是耐人寻味的。  
此外,汉语中的许多歇后语就是利用谐音双关构成的。例如
老虎拉车——谁赶(敢)?
也有兼顾谐音和意义的。某车主在他的后车窗写道:“别吻我,我怕羞(修)!”
意思一:别撞上我,修车挺麻烦的。意思二:别太亲近我,我害羞。语言形象生动,利用谐音双关,风趣幽默。

(6) 拟人化

童话故事中的“狼和小羊”的对话惟妙惟肖地刻画了一个霸道者的蛮不讲理和弱小者的聪明善辨。在常识中,无论是狼还是小羊可都不会说人话呀。有的童话故事还浓缩成了一句习惯用语:“狐狸吃不到葡萄说葡萄酸”。
目前不仅自然语言处理的实用技术同识别、理解文学语言的要求尚有很大的距离,而且计算语言学在理论上也没有找到合适的模型。可否借鉴机器学习的理论和方法以及如何借鉴?是否可以围绕文学语言的理解建立一套机器学习的理论和方法?这些问题都值得我们探讨、思考和实践。

四、服务于机器学习的语言资源建设

       北京大学计算语言学研究所(ICL/PKU, Institute of Computational Linguistics, Peking University)自1986年成立,至今已有二十多个年头。在这二十余年自然语言处理的实践中,我们深切体会到语言资源和语言知识库在自然语言处理中的重要性。面向自然语言的机器学习,就是要在大规模语料库的基础上训练各种模型的参数;要在各类语言知识库的强力支撑下,完成自然语言各层级的处理任务。而语言知识库建设本身,也就是语言文本中的知识发现,同样可以利用机器学习的各种方法。
二十年来,我们建立起比较齐全的各类语言资源,其中一些已经在国内外机器学习和相关研究中得到广泛的应用。在此基础上,我们先后开展了词法分析、句法分析、语义分析、语用分析、机器翻译、领域知识工程、信息检索、信息抽取、自动问答系统等一系列的研究,积累了一定的经验。到目前为止,已经成形的语言知识库主要有:
(1)现代汉语语法信息词典[6]
(2)大规模现代汉语基本标注语料库[7,8]
(3)大规模现代汉语词义标注语料库[9]
(4)面向汉英机器翻译的现代汉语语义词典[10]
(5)面向跨语言文本内容处理的中文概念词典[11]
(6)英汉、日汉对照双语语料库[12]
(7)多个专业领域的术语库(信息科学技术、体育、商务、旅游、餐饮)[13]
(8)现代汉语短语结构规则库[14]
(9)中国古代诗词语料库[15]
(10)服务于语言知识库建设的各种工具软件
成果(1)是北大语言知识库的第一块基石。它收词8万,依据语法功能优势分布建立了一个面向信息处理的词类体系,完成了8万词语的归类,在此基础上,进而又采用关系数据库文件格式按类描述每个词语的详细的语法属性。成果(2)就是在此基础上开发的,现在已经积累到约6000万汉字的规模。
成果(4)的结构设计参照成果(1),采用同样的知识描述形式,词语条目也是《现代汉语语法信息词典》的子集,记录数约有6万。成果(3)是以成果(4)为基础建立起来的,同时,大规模词义语料库的标注过程,也对《现代汉语语义词典》的完善发挥了巨大的作用。成果(5)参照WordNet, 用同义词词集synset表示概念,目前收入的概念已达到10万。这两部词典从不同侧面描述了汉语词汇的语义知识。由于它们是面向机器翻译以及信息检索、信息提取等跨语言文本处理的,都涉及两种以上的语言,所以它们的每一个词条都有对译的英语词。成果(6)以更大的对译单位(文章、段落、句子、短语)覆盖两种语言。目前对齐了的英汉对照的句子在80万对以上,日汉对照的句子也有2.5万对。
从成果(1)到成果(6)汇集的都是日常生活语言的知识。成果(7)则提供专业知识,这些术语库中的术语都是英汉对照的。另有一部计算语言学的术语库,英、日、德、汉4种语言对照,收入5000多条计算语言学和自然语言处理领域的术语[16]。
从成果(1)到成果(7)聚焦于词汇知识。成果(8)描述的则是句法结构知识,含600多条扩充的上下文无关句法规则。
从成果(1)到成果(8)都是关于现代汉语的。建设“中国古代诗词语料库”的目的是利用在现代汉语信息处理研究中积累的技术和方法开展古代诗词计算机辅助深层研究,同时进行古代汉语和现代汉语的纵向对比研究。
建造语言知识库需要专家知识的投入,也需要工具软件的辅助。ICL/PKU开发的一系列工具软件也是知识库的有机组成部分。成果(10)中包含的“现代汉语词语切分与词性标注软件”、“现代汉语文本注音软件”、“双语语料库构建工具集”具有通用性。为中文概念词典CCD研制的可视化词典辅助构造软件VACOL,对加快CCD的研制进程起了关键作用。 以前提供《现代汉语语法信息词典》给用户使用时,只提供数据库本身,现在也开发了功能完善的管理软件,不但操作快速安全,而且为词典的扩充提供了方便。
这些语言数据资源汇集的语言知识及其表述形式独立于特定的语言信息处理系统和实现算法。这种设计理念使得这些知识库得以广泛传播。
从方法论角度考察,这些语言数据资源的建设既采用基于规则的方法,也采用基于统计的方法。“大规模基本标注语料库”及其开发工具“词语切分与词性标注软件”是最典型的例证。而这些语言数据资源的存在又促进了这两种方法的发展和融合。
ICL/PKU为这些资源的传播提供了便利,所有资源的规格说明书都已经公开发表。“现代汉语词语切分、词性标注、注音软件”的功能可以在网上测试。现在可以从网上[1]下载的资源包括:《现代汉语语法信息词典》的1万个词语的样例数据库;一个月的《人民日报》标注语料库,200多万字;机器翻译评测大纲与例句集;大规模词义标注语料库的部分语料,等等。自2001年5月10日起对《人民日报》语料库下载次数开始进行统计,截至2007年2月28日,已记录了11578下载人次。并且,这个数字仍在不断更新。从1996年以来,以《现代汉语语法信息词典》为龙头的北大语言数据资源通过签订许可使用权协议的方式转让给了国内外的诸多大学、研究院所和公司,遍及美国、法国、德国、英国、瑞典、日本、韩国、新加坡、中国香港、中国台湾以及境内各地。2007年初,ICL/PKU申报的“综合型语言知识库”研究成果通过了教育部组织的技术鉴定。以张钹院士为主任、怀进鹏教授为副主任的鉴定委员会认为:“《综合型语言知识库》开创性地实现了汉语词语的大规模归类与属性描述,很好地处理了基础研究与应用研究的关系,形成了基础资源建设与应用系统开发相互支撑、相互促进的良性模式,其规模、深度、质量和应用效果在我国语言工程实践中是前所未有的。该成果是以汉语为核心的多语言知识库建设中最全面、最重要的研究成果,总体上达到了国际领先水平。”
机器学习的本质是基于数据的学习(Learning from Data)。在自然语言处理中,机器要学习的语言知识的源头是人们使用的话语和创作的文本,现在通常以语料库的形式存放在机器中。从没有经过任何加工的原始语料中,机器就可以学到很多书面语言的知识,例如汉字频度、常用的汉字串(组块)及其频度、汉字串与汉字串的搭配以及搭配强度等,甚至通过聚类方法也可以区分(或者说“辨析”,也是某种意义上的“学习”)词语的义项乃至文本的内容,这类学习可以归于无指导的学习。无指导的学习很重要,人可能主要是通过无指导的学习方式培养自己的学习和处事能力的。但人类社会又强调教育的重要性,教育是有指导的学习。人类借助老师、教材等有指导的方式学到的可能主要是知识。知识不能等同于能力,但是能力的强弱在某种程度上或在某些方面又要依赖于是否具备足够的知识。显然,对于人来说,有指导的学习和无指导的学习缺一不可。我们以为,机器也是一样。原始语料固然包含大量的语言知识,在确定的上下文环境中,其含义和用法也是确定的,机器是可以学到的。但原始语料中语言知识的表现方式却是隐性的,限于当前人工智能的水平(学习能力)或者数据的规模,机器还不容易学到这些知识。需要有人加以指导、点拨。以不同的形式和深度对语料进行加工,就是使隐含的信息显性化。例如,进行了切分的语料,使词的知识显性化了;完成了词性标注的语料,不仅使词的知识显性化,而且使其词性的知识显性化。加工越深,显性化的信息就越多。
语言学家的论著和语文词典是人类语言知识的集大成者。人通过阅读语言学论著和查阅词典学习语言知识,可以收到事半功倍的效果。机器也应该是这样的。不过,面向人的论著和词典,也是当代的计算机理解不了或不便应用的。《现代汉语语法信息词典》,《现代汉语语义词典》和《中文概念词典》这类相当于语文词典的语言知识库都是结构化的,机器就便于利用了。结构化的语言知识库与非结构化的文本中的语言知识构成互补的关系:词汇知识库中关于语言知识的表达都是显性的,但也是静态的,存在“不确定性”(例如:一词多类或一词多义);在真实的文本语料中,词的每次出现都有一定的语境,其词义、句法功能、语义角色虽然都是确定的,但却是隐性的。要使文本中的语言知识显性化,结构化的语言知识库可以提供必要的支持。
对结构化的语言知识库也可以进行知识挖掘,即结构化的语言知识库也是机器学习可以利用的数据。特别是当把结构化的语言知识库以及基于这些知识库加工的语料库集成到一起,机器可以学到更丰富、更深入的语言知识。
正是基于上述认识,ICL/PKU不仅研制了多种类型的语言知识库,而且力求各类知识库相互补足,形成综合型语言知识库。ICL/PKU利用综合型语言知识库,尝试进行深层次的知识挖掘,已经取得一些成果,例如,词频、带词性的词频、词的(粗/细粒度)义项频度、词的分布均匀度、动词向名词漂移现象以及词与词组合规律的定量描述,等等。这些知识无论对于信息处理,还是对于语言本体研究乃至语言教学都是十分有价值的。
为了让已有的各类语言知识库发挥更大的效益,ICL/PKU正在努力把它们集成到综合型语言知识库系统中[17]。也期望这样的综合型语言知识库系统为机器学习提供一个广阔的舞台。

五、机器学习方法的实践

在 ICL/PKU现有的语言资源的支撑下,我们近期开展了许多研究,这里介绍3个例子:词义消歧研究、文本的情感倾向分析研究和隐喻识别研究。这些研究都使用了机器学习的方法,涉及自然语言处理的各个层面。如果说词义消歧还可以归于语言本体研究的话,那么文本的情感倾向分析则深入到文本所反映的主观褒贬态度,而隐喻的识别则把研究的触角伸向修辞学以及人类语言认知的层面上。

(1)词义消歧研究

一词多义在自然语言中是一个非常普遍的现象。以动词“讲”为例,可以出现在“讲/故事/”和“讲/卫生/”等上下文中。前者的意思是“说”,而后者表示“注意”。
词义消歧(Word Sense Disambiguation, WSD)就是从给定上下文中确定一个多义词的具体意思(sense)。这项研究最早源起于20世纪50年代的机器翻译,目前已涉及自然语言处理的诸多领域,如机器翻译、信息检索、问答系统等。数十年来,针对词义消歧已经提出许多方法,大致可以分为基于规则的方法、基于词典的方法和基于语料库的方法。
目前基于统计学习的主流研究方法是把词义消歧看作典型的分类问题,通过建立词义标注语料库作为训练数据去训练各种分类器,实现对新的上下文中多义词的消歧。WSD可以描述如下:
对具有N个义项的多义词W,记为 S = {s1, s2, … , sn}。W出现在某个确定的上下文C(可以是小句、句子、段落甚至篇章)中,词义消歧的任务就是根据给定的上下文C,在这N个义项中选择一个最合适的义项,记为<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> :
其中,R用来计算每个义项和上下文匹配的程度。
需要指出的是,词义消歧也可以采用自动聚类的方法实现,称为词义区分(Word Sense Discrimination)。虽然也可以缩写为WSD,但这不属于本文讨论的范围(有兴趣的读者可参阅[18])。以下行文中,若无特别说明,WSD即为词义消歧。
词义消歧不是自然语言处理的一项独立的任务,而且消歧系统性能的评测会因为词义区分的颗粒度、所用语料等的不同而有很大的差异。为了更好地开展研究,国际上于1998年成立了SENSEVAL([url]http://www.senseval.org[/url])组织,提供benchmark 数据,开展国际评测。迄今为止已经进行了3届。2007年将进行第4届评测,名称改为SemEval-2007。从名字的改变可以看出,该测评从以往的单纯词义消歧,发展到包括词义消歧和语义角色标注等多个方面的测评。ICL/PKU也提供了一个任务,为评测提供标准语料[19]。从以往的评测结果看,所用分类器包括支持向量机、决策表、决策树、贝叶斯、神经网络、最大熵等分类模型和算法。性能比较好的系统,几乎都采用了集成(Ensemble)学习的策略[20]。
下面将按照数据采集、特征提取和选择、模型选择、训练和性能评估这一机器学习的经典流程来介绍ICL/PKU所做的工作。
(1) 数据采集
对词义消歧而言,数据采集WST(Word Sense Tagging)就是建立大规模、高质量的词义标注语料库,称为词义标注(Word Sense Tagging, WST)。其本身可独立成为一个研究课题,涉及词典选择(词义区分的颗粒度)、语料选择(语料的平衡性和规模)、标注方法(正确性和一致性如何保证)等方面。我们设计了人机互助的高效词义标注语料库建设模式,并积累了一套完整的软件工具。文献[9]详细介绍了词义标注语料库的建设工作。
词典选用ICL/PKU的《现代汉语语义词典》,语料库选择人民日报(词义标注前已经完成词语切分和词性标注),采用机器辅助的人工标注方法。目前已经完成170个动词和796个名词的义项区分和描写,在《人民日报》642万字的语料上标注了76,519个词语的义项编码。这应该是当今规模最大的现代汉语词义标注语料库。
必须指出的是,尽管目前语料库规模比较大,但是对于机器学习来讲仍然是稀疏的,主要表现为多义词的各个义项出现的不平衡。出现在2000年1-3月这三个月人民日报语料中的多义名词有485个,其中只以一个义项出现在语料中的有237个。仅有51% 表现为真正的多义词。义项分布的不平衡,给机器学习带来巨大困难。已经有许多研究人员致力于解决这个问题[21]。
(2) 特征提取和选择
英国语言学家J. R. Firth有句名言“观其伴、知其义”。就是说,人通过一个词周围的那些词(也就是这个词的上下文语境)来辨别它的意义。目前的机器学习中,特征选择也主要来自多义词出现的上下文。上下文是一个广义的概念,多义词所在的句子、段落、甚至整个篇章都可以称为上下文。我们的研究仅以多义词所在的句子作为上下文,从中提取和选择特征。以现有的语言资源和处理工具为基础,目前用到的特征主要是词法特征和浅层的语义特征。下面举一个例子来说明,其中多义词为“分子”:
此外/c  ,/w  他们/r  还/d  监视/v  恐怖/a  分子/n  可能/v  对/p  两/m  国/n  电脑/n  系统/n  的/u  袭击/v  。/w 
词法层特征:包括局部词、局部词性、局部词及词性、局部共现、词袋和搭配。除搭配外,这些特征的获取相对容易,也比较准确。针对上面的例子作如下简单说明:
局部词特征是指把多义词周围窗口大小为n的范围内的词作为特征。若设定窗口大小为3,则特征向量表示为<W-3=还, W-2=监视, W-1=恐怖, W+1=可能, W+2=对, W+3=两>。局部词性是指把多义词周围窗口大小为n的范围内词的词性作为特征。仍以窗口大小为3为例,特征向量表示为<P-3=d, P-2=v, P-1=a, P+1=v, P+2=p, P+3=m>。局部词及词性是指把多义词周围窗口大小为n的范围内的“词+词性”作为特征。上句中词和词性特征向量为<还/ d, 监视/v, 恐怖/a, 可能/v, 对/p, 两/m>。局部共现是指两个(或多个)词同时出现在多义词的窗口。设Ci,j表示一个共现,并且这两个词的位置分别位于距多义词第i个位置和第j个位置。比如:C-1,1表示多义词的左右紧邻的两个词。共现限于多义词所在的句子范围内。我们取C-2,-1, C-1,1, C1,2, C-2,1, C-2,2作为局部共现特征。例句中的共现特征为<监视_恐怖, 恐怖_可能, 可能_对, 监视_可能, 监视_对>。局部共现考察了多义词周围的词的搭配对消歧的影响,是对多义词搭配信息很好的补充。词袋中的词(Bag-of-Word, BOW) 是指多义词上下文中所有出现的词,没有位置信息,不包括标点。搭配信息对词义消歧有着重要的作用,许多情况下,仅仅通过搭配就可以直接消解歧义。遗憾的是,在有限的上下文中很难准确地找到搭配词对。
句法层:在我们的特征选择中,尚未加入句法特征。文献[22]的研究表明,和英文相比,加入句法特征后,中文词义消歧的性能提高并不明显。
语义层:这里主要进行了机构名称识别。在现代汉语基本标注语料库中,已经对机构名作了捆绑。比如“阿拉伯国家联盟”,在语料中标记为“[阿拉伯/n  国家/n  联盟/n]nt”。其中nt表明,方括号中的是一个机构名称。
许多研究者认为,特征提取和选择是目前WSD的研究重点[23,24]。我们针对SENSEVAL-3的中文语料,对上下文所开窗口大小对系统性能的影响进行了研究。实验中采用的分类器是SVM-MultiClass工具包(线性核,一次优化)。实验结果如图1所示。从结果中不难看出,当窗口为9时,消歧性能达到最好。
图1:消歧性能随上下文窗口变化的曲线
(3) 模型选择和训练
选择支持向量机(Support Vector Machines, SVM)开展研究。支持向量机是近年来机器学习领域非常流行的方法,该方法因其有限样本下良好的推广能力而备受重视。SVM已经在手写体数字识别、人脸识别、文本分类等领域得到了广泛的应用。文献[25]利用支持向量机对英文词义消歧进行实验,结果要优于朴素贝叶斯、决策树、最大熵等方法。
我们在核函数的选择和采用何种多分策略两个方面进行了实验研究[26]。
核函数的选择。考察了SVM各种核函数对词义消歧的影响,选择二十个多义词(每个多义词均为两个义项),选用上面介绍的所有特征,用SVM-light进行实验。通过设置不同的核函数,并且对每种核函数试验各种参数设置,达到最优时各种核函数的实验结果见表1:
表1  利用各种核函数的消歧结果
核函数
参数设置
正确率
训练时间
线性核
90.03
96s
多项式核
a=1, b=1, d=7
90.05
356s
RBF核
86.50
467s
Sigmoid核
v=2, c=1
81.12
264s

 

从结果看,如果对核函数参数进行合理的调整,多项式核的效果比其它核的效果要好。但是,多项式核的参数太多,在参数空间中寻找最优的参数设置比较困难。综合各种核函数的参数设置的复杂性、正确率以及时间效率等因素,线性核还是比较理想的选择。
二分到多分的转换。WSD显然是一个多分类问题,因为多义词常常多于两个义项。如何用SVM解决多类别的分类问题,是当前机器学习领域的研究热点之一。目前主要有两类方法:用多个二类SVM构造多类别SVM的方法和一次优化决策的方法。前者又可以分为1对多(1-v-r)、1对1(1-v-1)和有向图三种方法。
针对多义词“想”(共4个义项)分别对上述四个方法进行实验(语料使用2000年1-3月人民日报),结果如表2 :
表2 利用各种多类别SVM方法的消歧结果
多类别SVM方法
正确率
训练时间
测试时间
1-v-1
88.06%
36s
3s
1-v-r
87.12%
70s
9s
有向图SVM
87.67%
39s
4s
一次优化决策
87.94%
43s
4s
从结果来看1-v-1的方法正确率最高,运行时间也较短。一次优化决策的方法效果也不错,且构造起来比较简单、训练时间也较短。
(4)实验及分析
我们在两组训练数据上进行实验。第一组数据使用SENSEVAL-3中文评测数据(由哈尔滨工业大学提供)。语料共有20个多义词,793个训练实例,379个测试实例。第二组数据是ICL/PKU 的人工标注语料。

在SENSEVAL-3数据集上的实验。实验结果显示最大熵的准确率为62.53%,支持向量机

[1] http://icl.pku.edu.cn

转载于:https://blog.51cto.com/nianhongdong/75659

机器学习与自然语言处理相关推荐

  1. 科研指导:机器学习与自然语言处理

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Viax科研教育 科研方向:机器学习与自然语言处理 盐趣是一家专业的在线科研教育机构,核心教研团 ...

  2. 面向机器学习的自然语言标注

    作者:[美] 普斯特若夫斯基(James Pustejovsky),[美] 斯塔布斯(Amber Stubbs) 出版社: 机械工业出版社 ISBN:9787111555155 丛书名: OReill ...

  3. NLP自然语言处理-机器学习和自然语言处理介绍(五)

    NLP自然语言处理-机器学习和自然语言处理介绍-知识抽取构建流程 1.什么是知识抽取 知识抽取,即从不同来源.不同结构的数据中进行知识提取,形成知识(结构化数据)存入到知识图谱. 知识抽取的三个基本任 ...

  4. NLP自然语言处理-机器学习和自然语言处理介绍(四)

    NLP自然语言处理-机器学习和自然语言处理介绍-事件抽取 一.案例介绍 1.背景 事件抽取技术的核心价值,是可以把半结构化.非结构化数据转换为对事件的结构化描述,进而支持丰富的下游应用. 比如说我们要 ...

  5. 【2022春实习】百度笔试记录(机器学习/数据挖掘/自然语言)

    20220412百度笔试-机器学习/数据挖掘/自然语言 文章目录 20220412百度笔试-机器学习/数据挖掘/自然语言 一.选择题30道(60分) 二.问答题1道(20分) 三.系统设计题1道(30 ...

  6. 计算机视觉、机器学习、自然语言处理、机器人技术、语音识别等人工智能技术的应用

    人工智能受益于神经网络和深度学习在算法上的突破,技术水平得到飞跃提升.未来,计算机视觉.机器学习.自然语言处理.机器人技术.语音识别等人工智能技术或将给整个人类社会带来巨大改变. 语音识别与自然语言处 ...

  7. 面向机器学习的自然语言标注导读

    前言 本书的读者是那些使用计算机来处理自然语言的人.自然语言是指人类所说的任何一种语言,可以是当代语言(如英语.汉语.西班牙语),也可以指过去曾经使用过的语言(如拉丁语.古希腊语.梵语).标注(ann ...

  8. NLP自然语言处理-机器学习和自然语言处理介绍(一)

    "NLP自然语言处理-机器学习和自然语言处理介绍" 一.机器学习 1.什么是机器学习 从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法.但 ...

  9. 【NLP】到目前为止,机器学习与自然语言处理相遇的那些事

    导读 在过去的十年中,自然语言处理(NLP)有了长足的发展.本文将尝试指出和总结直到现在的NLP领域中最关键和最重要的突破,同时还将重点放在仍然存在和新出现的挑战上. NLP应用程序的记录甚至可以在2 ...

  10. 岗位推荐 | 蚂蚁金服招聘机器学习、自然语言处理算法工程师

    PaperWeekly 致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁.  如果你需要我们来帮助你推广实习机会或全职岗位,请添加微信号「pwbot02」. 你想知道 ...

最新文章

  1. 史上最容易懂的云计算的前世今生
  2. oracle数据库连接时报12514_Oracle 数据库 SQLPlus连接正常、PLSQL连接报错 ORA-12514、TNSPING正常...
  3. 如何用计算机打出love,游戏中名字的LOVE怎么用符号打出来?
  4. eclipse恢复界面默认设置
  5. python 链表推导式_五--python之数据结构(Data Structures)
  6. 关联分析(Association analysis)
  7. 洛奇 服务器文件,【公告】电信三区服务器合并说明...
  8. 使用 Preload/Prefetch 优化
  9. 手把手教你学习ROR-5.Validation
  10. git revert与git reset
  11. Windows 新建文本文档快捷键设置
  12. ppt手动放映怎么设置_PPT如何设置幻灯片自动播放免除手动一张一张的点击
  13. FDMA和TDMA简介
  14. python检测字符串是否包含特殊符号
  15. python开发前景如何
  16. 30分钟学会js新特性
  17. Linux 永久修改主机名(转载)
  18. MongoDB 可视化工具 RoboMongo---Win7 64 安装
  19. 菜鸟学习OGRE和天龙八部之一:OGRE+MFC+OIS
  20. 第十八次CCF计算机软件能力认证

热门文章

  1. oracle安装出现2932,【案例】Oracle报错ORA-19815 fast_recovery_area无剩余空间解决办法...
  2. 3D模型【拱形楼梯】
  3. python-获取UUID
  4. 通过Mars3d在地图上加载风力发电机车模型
  5. 西南大学网络计算机,重庆西南大学计算机等级考试报名
  6. interlace和progressive
  7. Qt编写的项目作品3-输入法V2018
  8. pycharm 18.2 破解过程记录(9月10日)
  9. 推荐一款开源工作流引擎,改善你的开发流程
  10. 国外一些好用的UX/UI设计工具和资源分享