汉语自动分词研究中的若干理论问题,本文主要内容关键词为:汉语论文,分词论文,理论论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
提要 讨论了汉语自动分词研究中的若干理论问题:分词词表、歧义切分字段、生词以及全局和局部统计量,并提出了相应的处理策略。实用型汉语自动分词系统(对任意开放文本,切他精确率基本稳定在99%左右)的实现已为期不远。
一 引言
自然语言处理是人工智能的重要分支。一切自然语言处理系统均以词为重要知识载体与基本操作单元。而书面汉语中词与词之间没有显式区别标志,汉语自动分词这一研究领域于是应运而生,并且随着中文信息处理研究的深入,其重要性愈加突出。自动分词系统可在汉语分析与理解、汉外机器翻译、中文文献自动标引或全文信息检索、汉字识别、汉语语音识别与合成、中文简繁体自动转换及中文文稿自动校对等多项应用中施展本领。
关于此项研究,虽然海内外已有十年的研究历史,付诸的努力不可谓不大,取得的成绩不可谓不多(已建立的分词系统,中国大陆、台湾、香港及新加坡合计20个以上),但迄今为止并无真正成熟的实用系统面世,成为严重制约中文信息处理发展的瓶颈之一。究竟是什么原因导致了这种状况?这个领域面临的主要问题,特别是深层次的理论问题都有哪些?可能的解决办法又有哪些?
二 分词词表
汉语词的抽象定义(即“词是什么”)与具体判定(即“什么是词”)问题,语言学界并未完全解决。而词表对自动分词系统而言,是最基础的“构件”。这样,在构造分词词表时,我们就必须作出一个个具体的决定:哪些“汉字串”应被视作“词”而收录到词表中,哪些则不可以?作出这些决定的根据是什么?从语言学家那里,我们尚无法得到所希望的全部答案。
有鉴于此,中国大陆制订了国家标准《信息处理用现代汉语分词规范》,以适应电脑信息处理的迫切需要。为了避免和“词”这一在语言学中具有特定意义的概念相互纠缠,《规范》提出了一个新的概念——“分词单位”来替代“词”的位置,并给出了一套比较系统的规则(实际上是“元规则”),试图对“分词单位”进行界定(“分词单位”包括了语言学中“词”的全部,如“火车”“学习”“更加”;以及满足某些条件的“词组”的一部分,如“牛肉”“一个”“越来越”)。这种考虑是有道理的,可取的。(不可否认,《规范》颁布以来,对中文信息处理研究产生了一定程度的积极影响。)然而,正如某些学者所指出,《规范》的主要弱点是,某些界定“分词单位”的标准仍过于抽象(如《规范》中反复出现的说法“结合紧密、使用稳定”),在具体操作时难以控制,实际上还是无法把《规范》落实到位。例如,关于动补结构,《规范》认为“打倒”是分词单位,“打坏”不是。但循此结构,以“打”字开头可衍生出一个系列:“打破”“打碎”“打烂”“打散”“打沉”“打垮”“打伤”“打残”“打晕”“打死”“打败”“打赢”“打服”“打掉”“打光”“打完”“打遍”……,只能有三种处理策略:(1)统统收进词表。 无疑会导致词表急剧膨胀而一发不可收拾;(2)一律不收进词表, 可能会导致分词时,句子被切得支离破碎;(3)取折衷,部分收,部分不收。 可是根据《规范》有关条例:“动补结构的二字词或结合紧密、使用稳定的二字动补词组,不予切分”,我们还是不清楚用什么手段、在哪里划一条“杠杠”才合适。显然,应用《规范》,并未能在“分词单位”这一层面上妥善解决“词”层面给我们造成的种种困扰。只有另辟蹊径,才能走出这一“迷宫”。
问题的实质在于,除定性信息(如结构)外,必须引入定量信息。我们开出的“药方”是,分词词表的构造,应该并且一定要和汉语语料库结合起来考虑。两条基本假设:
假设一:词表依赖于领域而存在。分通用领域和专用领域。词表对领域的依赖性,包括两层含义:
其一,“词”(严格地讲,应是分词单位)的具体实现,与领域有关。例如汉语中的“兰花”在新加坡华语中被称作“吴姬花”,普通话中的“好莱坞”在粤方言(香港)中为“荷里活”,所以都是对通用领域,汉语或普通话的词表中不会出现“吴姬花”“荷里活”,反过来基本上也是如此。
其二,分词单位的界定,与领域有关。判定分词单位的“杠杠”不是一成不变的,应根据领域动态调整。如在日常生活领域,“打碎”“打服”很有可能成为分词单位(“打碎一个花瓶”“可把他打服了”),而在军事领域,“打掉”“打沉”的机会要多一些(“打掉敌机一架”“敌舰被打沉了”)。“打破”“打垮”“打败”“打赢”“打死”“打伤”在这两个领域中可能都会被当做分词单位,但即便如此,也存在程度上的差异。
假设二:领域总可以用某个相关的语料库恰当地予以描述。可通过对语料库结构与规模这两个参数的合理控制来实现这一假设。
推论:与指定领域相关涉的词表,可以通过某个对应的语料库建立起来。
基本策略十分简单:任给一候选“分词单位”,对其出现次数在整个语料库范围内计频。如果频率大于某一阈值,则接受其为分词单位,否则,拒绝之。(荀子曰:“名无固宜,约之以命,约定俗成谓之宜”。我们以为,“词”也“无固宜”,“约定俗成”同样是“谓之宜”的重要依据。“约定俗成”反映在量上即为频率。)
循此思路构造的词表具备三个重要特性:(1)词表的完整性。 词表覆盖了相关领域中绝大多数分词单位。(2)词表的经济性。 体现在两个方面:第一,与领域无关的分词单位不会出现于词表中;第二,“结合”不够“紧密”、“使用”不够“稳定”的候选“分词单位”也不会出现于词表中。(对分词,并非词表愈大愈好。一是要考虑时间空间开销,二是把与应用领域毫不搭边儿的词拉进词表,会额外增加切分的歧义程度。)(3)词表的一致性。 根据频率及阈值对分词单位“一刀切”。以“量”定“性”,使《规范》完全可操作而不依人的主观意志(如“语感”)而变化。
目前,围绕这一研究的条件与时机均已成熟:(1)物质保障。 随着电子出版业的迅猛扩张,获得大规模(千万字以上)甚或极大规模(一亿字以上)语料库(机器可读文本)已很容易;(2)技术支持。 计算词典学(Computational Lexicography)及计算词汇学(Computational Lexicology)的研究已取得进展。信息论、统计学、人工智能等学科更提供了一整套可资借鉴的理论方法与技术手段;(3)需求驱动一方面,现代社会中,新事物、新概念层出不穷。词汇的增长(分化、汇流与产生)呈现“爆炸”趋势。随着“汉字圈”社会经济的发展,各行各业对中文信息处理系统的呼声日渐强烈,不同用户对领域词表的需求也随之水涨船高。
然而,读者一定会指出,你的这一套想法好则好矣,但仍难以执行:确定一个候选“分词单位”能否成为分词单位要视其在语料库中的频率,这隐含着语料库应先被加工成以候选“分词单位”为单元的不连续语流,再推下去,又需要有一个收集了该领域候选“分词单位”(和分词单位差不多)的分词词表。可这样一种词表从哪里得到呢?
针对这个问题,参考文献1进行了有益的尝试:
(1)直接从一个包含2000 万汉字的“生语料库”(即未作任何切分)出发,利用邻接汉字的互信息(mutual information)、t-测试(t-test)及其相互藕合关系等统计信息,给出针对该语料库的候选词表(即候选“分词单位”表);(2)在《规范》的约束下, 以汉语构词法为指导,对(1)给出的候选词表(电脑并赋予每个词一个置信度, 供人参考)进行人工筛选;(3)半自动循环工作方式。 系统可以在词表为空的初始状态下启动。经过(1)(2)一次流程,可得到一个符合《规范》的词表(在某个阈值δ下);系统将在此新词表的支持下,根据一个新阈值δ’(δ’<δ),再返回步骤(1)。如此循环几次, 停止状态时的词表即为对应语料库的领域词表。
这实际上是一个与《规范》相配套、通用的词表辅助开发工具(为表述方便,下文沿用“词”这个术语来指称“分词单位”)。
三 歧义切分字段
汉语句子中某些字段,如果纯粹根据词表作机械的字符串匹配,则可能存在“歧义切分字段”。歧义切分字段可分为交集型(如字段“白天鹅”:“白天 鹅”,“白 天鹅”)与包孕型(如字段“只是”:“只是(副词)”,“只(副词)是(动词)”)两种基本类型,亦可能是基本类型的变体或组合。
歧义切分字段是自动分词算法遇到的两大困难之一,直接制约了分词系统性能评价指标——切分精确率。定义:
切分精确率=文本中切分正确的词所含汉字个数/该文本所含汉字总个数
歧义切分字段在文本中的实际出现频率不超过1%。 到汉语的平均动态词长约为1.5,每一处切分错误将涉及3个字左右,故最坏情况下(歧义切分字段均被切错),会把切分精确率拉下约3个百分点。
一个分词模型,无论其设计思想如何变化,也脱不出以下模式:
待切分 生成解空间
在解空间中求解切分
句子→ (候选切分集)→ (切分歧义之解决)→ 结果
阶段一
阶段二
阶段一——生成解空间
根据分词词表及其某种切分原则,找出输入句子的候选切分集合,以供下一阶段处理。
最大匹配法是极端之一,给出唯一候选(候选即解)。虽简单,却相当有效。(实践表明,单纯运用最大匹配法,如果词表是完备的,分词系统可获得98%左右的精确率。)但由于长词一定覆盖短词,故不可能检测出包孕型歧义,对交集型有时也会丢掉正确解。换言之,该方法并不能保证正确切分一定出现在生成的解空间中,存在“切分盲点”。改进后的双向最大匹配法亦然。
完全切分法是另一个极端,给出输入句子的所有可能切分形式,可实现无盲点分析。代价是,解空间膨胀太大,又会造成许多不必要的干扰。由n个汉字组成的句子,极而言之,会产生2[n-1]种不同切分。(当然, 词间的相互制约会使实际组合情形大大简化,但仍可能相当复杂。譬如对字段“发展中国家用电器材料”,完全切分法将导致几十种切分形式。)
能否在保证无切分盲点的前提下,给出尽可能小的解空间,是阶段一的关键。参考文献2提出了一种受限的“最大匹配+完全切分”法, 企图寻找某个介乎两个极端之间的“中庸之道”,其解空间,与完全切分法的相比,得以压缩,同时,又避免了切分盲点。
阶段二——在解空间中求解
无切分盲点的解空间终究是相对庞大的。解决切分歧义的策略,大致有三:
1.基于规则 这类研究吸取了人工智能及专家系统的思想。解决歧义切分字段最“自然”不过的对策似乎是诉诸句法、语义规则,并且沿着该脉络再发展一步,
当遇到歧义切分点时,
最好能够调用一个parser来判断,如果分析最终失败,再回溯。这种运用句法、语义规则甚至使分词与parser一体化的方法好像非常漂亮、彻底,但从实用观点看,并不可行。主要困扰是:(1)囿于目前汉语parser 的能力(即使分词完全正确,parser还会遇到较切分歧义更为棘手的词类、句法和语义歧义等一系列“拦路虎”,只能在某些领域实现有限程度的分析),任何期望倚重parser作为解决歧义切分之手段的设想尚缺乏现实的基础;(2)由于无法实现parsing,分词系统所能利用的句法、语义规则必然是局部的,基本上仅涉及若干毗邻词之间的线性关系(没有反映句子中各成分之间的层次关系),多少带有“就事论事”的味道,可靠性不强,难以建立完整、有效、无矛盾的体系。
2.基于词频 基于词频的纠歧问题可抽象为求有向图两点间最优路径问题(图中结点对应句子的位置,边对应位置之间的词,边的长度对应词频)。尽管解空间有膨胀的趋势,但用标准动态规划算法求解,其时间空间复杂度是线性的。效果也令人满意;较最大匹配法,可望将切分精确率提高约1.0%。
本质上这是一个关于词的零阶Markov模型(也称作unigram), 故存在明显缺陷:其表现不依赖于上下文而变化。如字段“只是”,或一律作为一个词被切出来,或一律被切成“只 是”(完全取决于“只”“是”和“只是”的词频)。
参考文献3的做法属此模型的范畴内, 但仍值得一提:直接从未经加工的语料库出发,自动获取(学习)字的统计信息,并利用它的近似词频,从而避免了词频统计(一般需人工介入)这一浩繁的工作,且可迅速移植至新的领域。
3.基于隐Markov模型 将关于词的零阶Markov模型进一步过渡到一阶以上,是顺理成章的事情。但由于汉语常用词在50000左右, 构造该模型的主要参数—概率转移矩阵, 即使对一阶模型, 理论上也需要50000*50000个存储单元(训练该矩阵, 更需要一个规模惊人的预经分好词的语料),这显然吃不消。所以,改变了一下策略,转而采用关于词的语法标记(tag)的Markov模型,是为隐Markov。 语法标记通常不会超过200个,这样至少一阶(bigram)和二阶(trigram)模型均可作现实的考量(前者仅需存储单元200*200个,后者也不过200*200*200个,且训练样本的规模成数量级地下降)。
这种模型将语法知识以统计形式量化在标记的概率转移矩阵中,一方面,表示简洁、均匀,处理灵活、一致,避免了采用规则系统的某些弊端;另一方面,统计数据从不受任何限制的实际语料中获得(当然需先经人工标注),可有效提高分词系统的能力及覆盖面,并且分词结果能随时反馈到统计数据中,不断求精,使系统有一定的自学习功能。
模型的求解仍可归结为有向图两点最优路径问题,只不过:取“词”而代之,边需对应位置间的tag,边的长度对应相关tag的条件概率。关于词的路径应被继续扩展为关于tag的路径,此时, 组合爆炸现象较完全切分法的解空间要严重得多。不过可以证明,对bigram,根据动态规划策略实现的算法,复杂度仍保持线性。
参考文献4指出,基于隐Markov模型的分词系统, 其切分精确率得到了进一步的提高。如可正确处理“只是”“白天鹅”之类的字段,具备了一定的针对上下文“随机应变”的能力。并且体现了将中文信息处理两个重要步骤——自动分词与词性标注融为一体的思想。
作为此种研究的基础,须深入探讨面向分词的语法标记集之设计(参考文献5)。参考文献6还发现了音节对分词的影响。
阶段二的关键:以隐Markov模型为主要手段解决切分歧义,是一种最有希望的方案。但“单打一”恐怕不能完全奏效,必须集成多种手段(方法)。应特别注意:
(1)统计方法与规则方法之间的互补性
汉语的构词、构形规则是任何分词系统必不可缺的模块;bigram或trigram对语言中所谓的long distance dependency 问题肯定“鞭长莫及”,于是规则又多了一块用武之地;当隐Markov过程无法以充分肯定的置信度给出唯一的“解”时,可诉诸局部剖析(Partial parsing)技术,进一步帮助裁决(由于实际上已进行了词性标注,可认为基本排除了词的兼类歧义,使得parsing相对容易)。
(2)方法对领域的敏感性
基于隐Markov模型的方法反映了句子中各成分间的语法制约关系,道理上讲,这种规律带有普遍意义,故对领域应最稳定(最不敏感)。基于词频的方法次之,基于词的一阶以上的Markov模型再次之。
(3)方法内部的可分解性
虽然基于词的Markov模型最易受到不同领域的“攻击”,但其高频词(8000 左右)部分却基本上是各领域通用的(无论是unigram 还是bigram),可以作为一个与领域无关的相对独立体与低频词部分区别开来。
(4)方法集成的可嵌插性
算法的“核”凝聚了稳定程度好的方法或方法的一部分,对不同领域的用户,“核”应是“一成不变”的,“以不变应万变”;而那些与领域关联程度密切的方法,往往对给定领域更加有效,最好能以类似电脑板槽那样的方式嵌插到“核”的外围(只要提供了有关的计算资源),“以变应变”,使系统的性能在“收缩”了的应用范围内“锦上添花”。
四 生词
汉语词汇是一个开放集合。无论试图建立多么庞大的词表,也不可能完备。生词主要指专有名词,包括人名、地名、机构名(含简称)、产品名等,其特点是具有相当程度的任意性,随心所欲,繁若星沙,除少数著名的外,无法穷举。
生词是自动分词研究中的又一个主要困难。约占中文文本的1 %—2%,如果不予处理,将导致为数可观的分词错误。可能波及5%左右的切分精确率,影响甚至超过了歧义切分字段,故绝对不可掉以轻心。以前一般认为生词问题根本无法研究,分词系统只能靠人机交互予以处理。然而,新的进展表明,在这个问题上,我们仍能有所作为。参考文献7、8就中文姓名和英文译名的自动处理作了初步尝试。
应强调的是,必须掌握针对生词不同类型的知识,继而设计一个个独立的功能主体(agent),就句中生词可能出现的位置及范围, 作出判断或者猜测。猜测虽然不一定准确,但毕竟留下了“伏笔”,一旦条件成熟,便有“文章”可做。这些agent尽管处于系统的低层, 却与高层决策(歧义处理)息息相连。
五 全局统计量与局部统计量
有一类统计量,如互信息、概率转移矩阵等,是与大型语料库的整体(一般在百万字以上)相联系的,称之为全局统计量。与此相对,还有一类统计量,系由当前文章计算而来且其作用范围仅限于该文章,称之为局部统计量。关于全局统计量与分词关系的研究,已很深入。局部统计量对分词的作用,人们的认识尚十分肤浅。实际上,局部统计量对歧义分析与生词处理,都非常有效。
(1)切分歧义
注意句子“当开放浪潮从广东翻越南岭,南岭上下顿时活跃起来”中的交集型歧义切分字段“越南 岭”。由于全局词频上“越南”比“南岭”要高,则应用词的unigram模型,孤立地处理前半句, 会得出错误的切分“当 开放 浪潮 从 广东 翻 越南 岭”,但结合下半句,“南岭”又出现了一次,于是结果应向局部词频倾斜:“当 开放 浪潮 从 广东 翻 越 南岭”。
(2)生词
观察句子“河南会员冯俊发愿无偿赠送百日红1000株”。中文姓名agent作出猜测:“冯俊”“冯俊发”是两个潜在的姓名。 对该句纵使进行句法甚至语义分析也不能唯一鉴别,事实上,“冯俊”及“冯俊发”两说均成立:
(a)河南 会员 冯俊 发愿 无偿 赠送 百日红 1000
株。
(b)河南 会员 冯俊发 愿 无偿 赠送 百日红 1000
株。
只有跳出句子界限的束缚,在比句子更大的单位——篇章内才可望解决。例如,若下文出现“冯俊”如何如何,则应取(a); 出现“冯俊发”如何如何,则取(b)。
不妨把局部统计量理解为统计意义下汉语分词的篇章模型。但也不能过分夸大其功效:第一,该模型必须在词或字段出现某种形式“重复”的条件下方可调用;第二,滥用也会带来副作用,必须和分词过程结合起来统筹考虑,才能扬长避短。
六 结语
汉语自动分词研究正酝酿着新的突破。那么,“突破口”究竟在哪里呢?
(1)分词知识 知识是分词系统的源泉, 分词算法靠分词知识驱动。无论是以统计形式,还是以规则形式,抑或统计与规则两种形式并举,要使系统在某一方面有令人满意的表现,必须掌握相应的丰富知识,绝无捷径可走。
(2)多种分词知识与分析策略的集成算法
作为孤立的分析策略(如隐Markov模型等),相关技术已经成熟,也完全有能力解决分词中相应的孤立问题,故没有必要再浪费精力,片面追求方法的“新奇”。鉴于任何单一手段都不能包打天下,算法的研究重点应转移到多种分词知识与分析策略的集成上来(包括同一分析平面上和不同分析平面之间的冲突协调机制)。
我们相信,实用型汉语自动分词系统(对任意开放文本,切分精确率基本稳定在99%左右)已是海平面上开始显现的桅杆,距现实越来越近,梦想成真很可能只在未来两三年之间(虽然不见得一帆风顺)。有志于此道者应抓住良机,竭尽努力,完成这最后的冲刺。
附注:本文的许多重要思想曾同清华大学黄昌宁教授进行过认真讨论,谨此铭谢。囿于篇幅,参考文献仅开列了与作者有关的,亦请读者鉴谅。