计算机识别汉语语法偏误的可行性分析,本文主要内容关键词为:汉语论文,语法论文,可行性分析论文,计算机论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
汉语中介语语料库建设的重要任务是对其中存在的各种偏误现象进行标注。很多偏误现象在归类时存在歧义,即同一偏误实例既可归入A类,又可归入B类(甚至还可以归入其他类),这就给人工标注带来很大难度,即使事先制定详细的标注规范,标注结果的一致性也难以保证。
偏误大多有规律可循,而且有些规律是可以形式化地表示出来的,这就为计算机识别偏误提供了可能性。如果计算机能在一定程度上自动识别一些类型的偏误,那么就可以对人工标注起到很好的辅助作用,在减轻标注者负担的同时可以较好地保证偏误归类的一致性。
一 偏误的定性
偏误的定性问题分为两方面:一方面是有多少类偏误,即分类问题;另一方面是某一具体偏误实例应归入哪一类,即归类问题。
偏误的定性存在主观性。
首先,分类的主观性。不同的研究者收集到的资料不同、考虑的角度不同,归纳出来的类别在数量及层次上就很难达成一致,甚至大相径庭。举例来说,鲁健骥(1994)将语法偏误按性质分为遗漏、误加、误代、错序四大类;“HSK动态作文语料库”(下文简称“HSK作文库”)划分了字、词、句、篇、标点等大类,然后各大类又有小类,其中字、词、标点等主要从形式上的多余、缺失、误用的角度来划分小类;《外国人学汉语语法偏误分析》(李大忠,1996,下文简称《偏误分析》)只关注语法偏误,直接给出了30个具体的语法项目,涉及虚词、动词重叠、特殊句型和补语四个方面;《汉语病句辨析九百例》(程美珍,1997)分为词法、句法、标点符号三方面,其中词法方面是按词类来划分小类的,如名词的误用、代词的误用、动词的误用等,句法方面包括词组的误用、句子成分的误用、单句的误用、复句的误用、特殊句型的误用等,标点符号分为点号的误用和标号的误用。
其次,归类的主观性。某一具体的偏误实例往往存在多种归类的可能,如“你把你的学习方法能不能给我们介绍一下儿?”在《汉语病句辨析九百例》中属于能愿动词误用,如果将其算作语序不当或“把”字句使用不当也是合理的。
理论上如何对待偏误的定性问题,实践上如何确立一个较好的偏误类别体系并进行偏误归类,都是值得深入研究的问题。本文首先从语法偏误入手,参照《偏误分析》一书中的类别体系,对计算机识别各类语法偏误的可行性进行理论上的分析;然后,选择“比”字句、“把”字句、“被”字句三种特殊句型作为切入点进行实验验证。目标是结合面的分析和点的实验来论证计算机识别语法偏误的可行性。
二 计算机识别语法偏误的理论分析
《偏误分析》全书30章对应了30类偏误项目,前19章是与虚词有关的偏误项目,第20章是与动词重叠有关的偏误项目,第21到25章是与一些特殊句型有关的偏误项目,第26到30章是与各种补语有关的偏误项目。
由于篇幅所限,仅以虚词中的“才”(书中第1章内容)为例来说明我们的分析。
对于与副词“才”相关的偏误,《偏误分析》总结了5小类:
第1类
①别着急,你在家考虑考虑才决定吧。①
②这是我从中国寄出的最后一封信。下一封信等我到巴基斯坦才写吧。
③那个人说:“公主病了,因此今天不能开招待会了。等公主治好病才安排吧。”
④我有很多话要对你说,真是一言难尽,等我回到家时才当面对你说。
以上各例“才”都应为“再”。从形式上看,①~③的句末标点前都出现“吧”,这可以作为一个形式标记来发现此类偏误,因为副词“才”很少跟语气词“吧”共现。我们对《人民日报》的语料(1993、1994、1996-2000年)进行了检索,发现只有6句“才”跟“吧”共现,见例(1)~(6)。这6句也可以找到形式上的共同特点,即都是设问句,前文会出现“恐怕”“也许”“大概”等表示假设的词,或者句末出现“?”。由此计算机可以发现例句①~③有问题并进行修改,即将“才”改为“再”。例句④缺乏形式标记,计算机无法发现偏误。
(1)遗憾的是产量不多,也许正因为稀少,才更显珍贵吧?
(2)恐怕正是因为时下的“有偿评奖”泛滥成灾,他们担心人们误以为申请孙冶方经济科学奖也要收费而置之不理,才“多此一举”吧。
(3)那样才不枉一世吧?
(4)大概就是因为这才叫“丝”酱豆吧。
(5)也许,人有了一定阅历,且具有了敢于自我解剖的修养,才不屑于去掩饰自己的过错吧。
(6)才发出如此感叹的吧?
第2类
①昨天晚上我感冒了,九点才睡觉。
②这篇课文不太长,我一个小时才看完了。
以上两例“才”都应为“就”,副词“才”的用法之一是表示事情持续时间长或发生得晚;与之相对,副词“就”的用法之一是表示事情持续时间短或发生得早。计算机要识别此类偏误,需要具备常识,即句子中某个或某些词语反映的现实需要持续的时间段或应当发生的时间点,以此同句中的时间段、时间点进行比较,决定是长是短或是早是晚。而这种常识是很难形式化的,计算机不易获得。首先,时间是一个相对的概念。比如“他明天~能到。”句中“~”的位置填“才”或“就”都可以,这取决于说话者认为“明天”是早还是晚;再比如“一百年”这个时间段对人的一生而言是一个很长的时间,而对于人类历史而言又是一个很短的时间。其次,常识无法穷尽。例句①隐含的常识是:感冒应该早睡觉;如果其中的“感冒”换成别的词语,如“复习功课”,其隐含的常识是:复习功课比较费时间,应该晚睡觉;再如“喝咖啡”,其隐含的常识是:咖啡有提神的功效,喝了咖啡应该晚睡觉。例句②也有同样的问题,其隐含的常识是:课文不太长,应该花较短的时间看完;如果“不太长”换成“不太容易”,隐含的常识是:课文不太容易,应该花较长的时间看完。由此可知,计算机很难发现此类偏误。例句②出现了“‘才’+动词+‘了’+句末标点”的结构,该结构比起“‘就’+动词+‘了’+句末标点”的结构要少见得多,但汉语中确实存在,见例(7)~(10)(出自《人民日报》)。
(7)李老师不停地换水、换药,到5时,罗凯的高烧才退了。
(8)这下我们才信服了。
(9)我又长长地按了一下门铃,房门才打开了。
(10)慢慢地思想才转变了。
第3类
①昨天去了好几家书店,才我买到了这本词典。
②他很用功,每天夜里十二点才他睡觉。
③除非解决这些经济方面的问题,才儿童能上学。
以上三例中的“才”都应放到主语之后。副词“才”后不能跟名词或代词。因此,当“才”后跟名词或代词时,很可能就是出现了此类偏误,计算机可以据此进行判断。
第4类
①去年他得了癌症,当时他才三十九岁了。
②他说:“1945年8月15日,我才四岁了,所以没有战争的记忆。”
③这个姑娘今年才十七岁了。
④我来中国以前学汉语才学了两年半了,所以水平不高。
⑤他抽烟才三年了,没想到牙全黄了。
以上各例都应去掉“了”。从形式上看,①~③都是“‘才’+年龄+‘了’”的结构,④⑤分别是“‘才’+动词+‘了’+时量短语+‘了’”和“‘才’+时量短语+‘了’”的结构。推而广之,“‘才’+[动词+‘了’+]数量短语+‘了’”是不对的(方括号表示里面的内容可能有可能无)。因此,该类偏误有很好的形式标记,易于计算机的识别。
第5类
①在泰国时,我学过几年英语。可现在差不多都忘了。现在一到用英语的时候,我就很着急。可越着急越想不起来。我才知道我的英语太差了。
②有一天,我才有机会跟她聊天。
《偏误分析》指出:当用“才”表示动作行为发生或出现得晚时,“才”的前边一定要有一些表示相关意义的词语与其配合。例①在“我才知道我的英语太差了”前边加上“这时/每当这时/遇到这种情况”等类似词语,就可以起到承上启下的作用,“才”的使用才不会使人感到突然。例②要保留“才”,前边应当改用确定的时间,如说成“终于在一个星期天,我才有机会跟她聊天”。如果不用“才”,就可以保留“有一天”:“有一天,我找了个机会跟她聊天。”
这类偏误缺乏形式上的标记,因此计算机难以识别。
我们将计算机识别偏误的程度分为“高”“中”“低”三个等级,上述分析可总结如表1。
我们对书中其他虚词的相关偏误也进行了类似的分析,虚词偏误总体上“高”“中”“低”的比例为61.6%、17.4%、20.9%,由此可见,虚词偏误总体的可识别程度为“高”。同样,我们对动词重叠偏误、特殊句型偏误、补语偏误都进行了分析及可识别程度的判断,结果发现这三类偏误各自的总体可识别程度同样是“高”。
三 三种特殊句型偏误的计算机识别实验
(一)实验语料
让计算机进行偏误识别的实验,需要借助一定规模的偏误实例,而一般的偏误分析专著和文章中提供的跟某一偏误类型有关的实例极为有限,不利于计算机实验的展开。基于以上原因,我们选择HSK作文库作为实验的语料来源。
HSK作文库由北京语言大学汉语水平考试中心开发,并对HSK(高等)作文中的字、词、句、篇等各类偏误进行了标注。本文所用版本(1.0版)收入作文10740篇,约400万字。
(二)实验步骤
基于出错率高和句型本身有易识别的形式标记这两个标准,本文选择“比”字句、“把”字句、“被”字句三种特殊句型进行了计算机识别偏误的实验。以“比”字句为例,具体做法是:首先,观察HSK作文库中标注出的“比”字句病句,并借鉴语法学界和偏误分析领域已有的研究成果,划分偏误子类,并尽可能给出相应的偏误模式。其次,编写计算机程序,主要利用正则表达式实现模式匹配,当某一例句匹配上某一给定的偏误模式时,计算机就判断该例句属该类偏误。再次,对HSK作文库进行处理,主要包括:还原(去掉人工标记,还原语料本来面目)、自动分词及词性标注(利用北京语言大学语言信息处理研究所开发研制的GPWS软件)、断句(断句标志为标点“,”“;”“。”“?”“!”“,”“.”)。最后,提取出HSK作文库中所有“比”字句(包括正确的句子和病句),让计算机进行自动判错。
在偏误模式中我们用到的信息主要有词、词性、词语小类。其中词、词性方面的信息可以通过自动分词及词性标注获得,但通用的分词及词性标注软件采用的词性标记集也是通用的②,而解决本文的具体问题时还需要一些特殊的词语小类。比如词性标记集中只有表示“动词”的标记“v”,但没有表示“趋向动词”的标记,而我们的工作需要让计算机知道输入文本中哪些词是趋向动词,因此我们就建立起一个列表,收集所有的趋向动词,以备计算机查询。
在正则表达式中用*表示0个1个或多个;用+表示1个或多个;用(a|b|c)表示abc中任选其一。
下面为“比”字句的一个偏误子类的识别模式及与之匹配的例句:
(MYMword*)比(MYMword+)(很|非常|十分|相当|特别|太|格外|多|极)(MYMadj|有MYMnoun_youobj)MYMww_end
“MYMword”代表具体的词,“MYMadj”代表形容词,“MYMnoun_youobj”代表可用在“有”后表示评价的抽象名词,“MYMww_end”代表句末标点。整个模式的含义是:“比”之前没有或有1到多个词,“比”后相隔1个或多个词之后出现“很”“非常”等词中的一个,然后出现一个形容词或“‘有’+MYMnoun_youobj”结构,最后是句末标点。
不过/c现代/t的/u代沟/n问题/n比/v以前/f很/d严重/a。/w
比/p我们/r多/a有/v经验/n,/w
(三)实验结果
以“比”字句为例,第2列指HSK作文库中共提取出的“比”字句的数量。第3列指计算机共报告190句病句,经过我们检查,其中有176句是真实错误。第4列指人工标注共109句③病句,经过本文的进一步核对,其中有94句确实是病句。第5列指计算机和人工识别的真错句中有66句是重叠的。
利用表2的数据,可以进一步计算计算机和人各自的准确率,计算机和人相对于彼此的召回率。公式如下:
准确率=真错数量/报错数量
计算机的召回率(相对于人)=人机都识别出的真错数/人工标注真错数
人的召回率(相对于计算机)=人机都识别出的真错数/计算机识别真错数
计算结果见表3。
(四)结果分析
从准确率看,计算机和人基本持平,有的句型计算机的准确率高一些,有的句型人的准确率高一些。人工标注也会存在误报现象,在此不讨论原因,只给出例句。例(11)(12)、(13)(14)、(15)(16)分别是HSK作文库中人工标注出的“比”字句病句、“把”字句病句、“被”字句病句,而本文认为它们或者没错,或者有问题但跟所用句型无关。计算机误报的原因主要有三:有的偏误现象较为复杂导致识别模式失效,见例(17);分词、词性标注有误,见例(18);原句其他错误影响,见例(19)。
(11)我发现它比以前胖得多,
(12)所以我比以前更想学习很多东西。
(13)我们应该把好的将来,美好的江山留给下一代,
(14)把烟头随便扔下去的行为是就害环境和我们的心情。
(15)给别人添麻烦而且损害别人的健康的爱好不被承认是个爱好。
(16)华业以后被保管当军领导。
(17)这个方法比团体旅游尺有所短,寸有所长的。
(18)把/p水/n偷偷/d地带/n回去/v然后/c和尚/n不/d叫/v他们/r俩/m商量/v一下/m?/w
(19)噪声/n已/d被/p例/n入/v污染/v的/u名册/n中/f,/w
从召回率看,计算机和人相对于彼此的召回率都不高,但计算机要明显优于人。计算机漏报的原因跟其误报的原因类似,在此不再分析。人漏报的主要原因是众多标注者对偏误的归类难以统一造成,例(20)(21)(22)都是计算机识别出的“把”字句病句,而人工标注的结果却各异,例(20)是“把”字句病句,例(21)缺少述语“变得”,例(22)错词“把”(应为“让”)。
(20)原句:他们商量怎么样能把这些工作更轻松一些。
人工标注结果:他们商量怎么样能把这些工作更轻松一些{CJba}。
(21)原句:能把自己的想法和态度广阔一些,宽容一些。
人工标注结果:能把自己的想法和态度{CJ-sy变得}广阔一些,宽容一些。
(22)原句:喜欢流行歌曲可以把我们的生活更完美一些,
人工标注结果:喜欢流行歌曲可以让{CC把}我们的生活更完美一些。
从单个句子看,上面3个句子人工标注的结果无可厚非,但从整体看,标注结果是缺乏一致性的。
四 计算机识别偏误的能力分析及功能定位
在偏误识别方面,计算机有误报和漏报的情况。导致误报和漏报的因素归纳起来有三个:原句存在其他错误;自动分词及词性标注有误;规则本身欠缺。在此就“规则本身欠缺”谈一些看法。规则的形式为:条件→动作。“条件”是对某一类现象的归纳(本文具体体现为某种偏误模式),而这种归纳能涵盖的范围取决于该类现象本身的复杂程度。就自然语言来讲,针对甲类语言现象给出的规则,甲往往只能涵盖该类现象中的典型部分,非典型部分由于不能满足“条件”,自然就无法执行相应的“动作”(本该执行);同时,自然语言存在大量的歧义,不同类的语言现象可能在形式上相同或相似,乙类语言现象由于在形式上满足规则甲的“条件”就会执行相应的“动作”(本不该执行)。因此,我们只能努力追求规则的优化,而不应奢望规则的完美。
通过对已有的汉语中介语语料库的观察和使用,我们发现人工标注也存在误报和漏报现象,漏报尤为严重,这势必影响语料库的质量,进而影响到基于该语料库的相关研究数据的可靠性,比如研究者要检索“把”字句病句,根据人工标注的结果,上文例(20)~(22)中就只能检索出例(20)。
如果不考虑偏误的归类,单纯从发现偏误的角度讲,人的能力要远远超过计算机。自然语言作为一种符号系统包含形式和意义两部分,人可以通过形式理解意义,但计算机只能理解形式,后者之所以在一些情况下可以表现出一定的智能性即“理解”意义,或者是因为有的情况确实比较简单,形式和意义之间是一对一的关系,或者是因为人事先将形式和意义之间多对多的关系通过一定的方式(如增加形式上的约束条件)在一定范围内变为一对一,这样计算机理解了形式就相当于“理解”了意义。
但是,偏误的标注不只是发现偏误的问题,还需进一步归类。同一偏误实例或形式上接近的同一批偏误实例往往在归类上具有多种选择,这就无法避免不同标注者(甚至同一标注者在不同时候)将具有类似偏误形式的实例归入不同偏误类型的后果。而计算机发现某类偏误的前提就是找到该类偏误实例形式上的某些共同特点,这种输入的一致性以及从输入到输出中间处理过程的确定性恰好可以保证输出的一致性。
经过上述分析,针对偏误标注工作,我们可以得出如下结论:一方面,计算机不能代替人,这是由计算机处理人的自然语言的能力决定的;另一方面,计算机可以很好地辅助人,因为计算机之长正好可以补人之短。
注释:
①本文标圈形数码的例子均出自《偏误分析》。
②文本所用软件采用了北京大学的词性标记集,见俞士汶等《北京大学现代汉语语料库基本加工规范(续)》,《中文信息学报》2002年第6期。
③“HSK动态作文语料库”(1.0版)共标注出“比”字句病句124句,其中有“比”句(出现“比”的句子)109句,无“比”句(没有出现“比”的句子)15句,后者指该用“比”字句表达而没有用的情况,如例句“后者的含量还前者多”。“把”字句、“被”字句情况类似。目前还没有找到计算机识别无“比”句、无“把”句、无“被”句的规律,因此表2第4列的数据是人工标注的有“比”句、有“把”句、有“被”句的情况。