中文处理的迷思之二:词类标注模块是句法分析的前提
已有 7118 次阅读
2011-12-28 16:59
|个人分类:立委科普|系统分类:科研笔记|
句法分析, 中文, parser, POS, 切词
词类标注(Part-of-speech Tagging: POS)是汉语句法分析的前提么?
没有这回事。
如果说为了模块化开发的方便,中文处理系统先行词类标注,再行句法分析,这种类似于多数英语分析器的架构从工程上看确实有一定的道理,但是词类标注并非句法分析的前提。
点破这一迷思的最直接的例证就是完全可以设计一个跳过POS模块的中文句法分析系统,事实上笔者目前研发的中文系统就跳过了这个环节。
有问:没有词类,怎么可能施行句法分析?
回答是:谁说没有词类?词典里给出的任何类别标注都是一种“词类”。的确,没有这些“词典的类别”信息,句法分析就没有抽象度,就难以编写规则来parse千变万化的语句。
POS 模块的本义在于词类消歧,即根据上下文的条件标注唯一的一个语法词类,譬如把同一个“学习”在不同的上下文中分别标注为名词或动词。前面说过,这样做有工程上的便利,因为如果词类标注是准确的话,后续的句法分析规则就可以简化,是动词就走动词的规则,是名词就走名词的规则。但这只是问题的一个方面。
问题的另一面是,汉语中的词类歧义特别严重(语法学界甚至曾经有云:词无定类,入句而后定),不但很多词都可以是名词或动词,而且动词和形容词的界限也很模糊。三大类实词在汉语中如此界限不分明,这曾经被认为是中文信息处理寸步难行的最大障碍。歧义如此严重的语言如果实行两步走的架构,有可能陷入错误放大(error propagation)的怪圈,即,词类区分的错误进一步造成句法分析的灾难。这是因为有些词类区分的条件在局限于 local context 的 POS阶段尚未到位,POS 模块过早地标注了错误的词类。
根据 keep ambiguity untouched 的经验法则,遵循 adaptive development 的基本原则,跳过 POS 的环节,让句法分析直接建立在词典信息的基础之上,是解决上述矛盾的一个有效方法。具体来说就是,只利用词典里面的静态类别信息来做分析,无须倚赖专有的POS模块先行消歧。如果一个词既可以做名词,又可以做动词,那就把两个类别同时标注到这个词上(另一种有效的做法是,只标逻辑动词,不标名词,因为差不多所有的词典动词都可活用为名词,给逻辑类动词在词典标注名词基本增加不了新的信息,这些选项都是系统内的协调的事儿)。编写句法规则的时候,对于兼类词(譬如动名兼类词 “学习”)与单纯词(譬如纯名词“桌子”)根据条件的宽松分别对待即可。
需要说明的是,笔者并不反对先POS后Parser的中文处理策略,只是指出POS并非Parser的先决条件,还有一种句法直接建立在词典之上的一步走的策略。顺着这个思路,一步半的策略也许更好。所谓一步半,就是做一个简单的 POS 模块(算是半步)把词类区分中比较大路容易的现象标注好,并不求对所有词类施行标注。
【中文处理的迷思之一:切词特有论】
【中文处理的迷思之二:词类标注是句法分析的前提】
【中文NLP迷思之三:中文处理的长足进步有待于汉语语法的理论突破】
【置顶:立委科学网博客NLP博文一览(定期更新版)】
https://blog.sciencenet.cn/blog-362400-522996.html
上一篇:
中文处理的迷思之一:切词特有论下一篇:
米拉围脖:7.23高铁事故认定报告出来了