汉语字段处理的几点思考

 

(中科院声学所 韦向峰 北京,100080

 

0 引言

汉语作为一种以意合为主的语言,具有“字义基元化,词义组合化”[1],P.25的特点。和英语相比,汉语语法很不规范,难以给出一个形式上的统一标准。这使得句子层面的汉语理解处理似乎面临一个巨大的困难――分词,但从计算机模拟人类大脑理解语言的角度出发,分词不是汉语分析的“瓶颈”而是“瓶底”[1],P.427~428

 

1 分词、歧义和理解

    从人类大脑对一个语串的理解过程来看,语串切分是一个反复验证的过程。首先假设一种切分,进一步考虑词语的意义和语串的语用环境等知识。如果切分合理有意义,那么认可这种切分,语串得到理解。如果不合理,那么回头看看有没有另一种可能的切分,有则继续进行假设检验的过程,直至找到认可的切分。人类大脑还允许两种或多种切分的合理存在,已经无法切分的语串。

       因此,词语的切分组合贯穿于语串(特别是句子)理解的全过程,而不仅仅作为一个不可回溯的独立模块。分词只是汉语理解的一个必要阶段,并非充分阶段。由于分词与理解过程紧密结合的特性,要想在汉语分析理解的第一步便精确切分出理解正确的语串,是不可能的。分词系统遇到的两大难题,一个是切分歧义,一个是未登录词。这两个难题都和理解紧密相关。

       汉语的自动分词方法可以分为:有词典切分和无词典切分。有词典切分方法主要是最大匹配(正向、逆向和双向)、最少切分(切分后的词数最少,又称为最短路径)。无词典切分方法主要是基于统计的方法,即统计训练语料中字与字的同现频率和词与词的同现频率,若同现频率大于某个阈值则得到一个切分。实际使用的分词系统都是多种方法的综合和改进,如基于N-最短路径方法的中文词语粗分模型[2]就结合了最少切分方法和统计概率的方法。山西大学计算机系研制的自动分词系统ABWS加入了词法、句法等知识,把分词和理解过程结合考虑,用“两次扫描联想-回溯”方法来解决组合切分歧义。

       从切分处理的角度来看,切分歧义分为交集型歧义、组合型歧义和混和型歧义。假设“ABC”是一个由ABC三个汉字构成的字串,如果 AB”、“BC”都是词,那么计算机在切分时可以把“ABC”切分为“AB/C”,也可以切分为“A/BC”。这种切分歧义称为交集型歧义。如果“AB”是词、“ABC”也是词,那么产生的切分歧义称为组合型歧义。混和型歧义是包含交集型歧义和组合型歧义的切分歧义。

       从切分歧义所处的语言环境来看,切分歧义分为词法级、句法级、语义级和语用级。例如,“才能(才/能)”、“将来(将/来)”属于词法级;“的确切”属于句法级(“他//确切/地址//这”、“这///的确///不错”);“白天鹅在湖里游泳”属于语义级;“乒乓球拍卖完了”则属于语用级。

 

2 分段处理

       一个值得思考的问题是:如果书面汉语按照分词规范用空格切分,计算机理解汉语的难度就大大降低了吗?应当看到,分词结果的正确与否必须使用句法、语义和语用知识来判断,歧义在没有全面准确的知识帮助下无法彻底消除。因此,句类分析理解汉语的过程在一开始的语义块感知阶段保留歧义字段的所有切分,对于歧义的消解放到句类假设检验和语义块构成阶段处理。当然,在语义块感知阶段要进行必要的字段层选处理,为后面的歧义消解减轻负担。

2.1 歧义字段的构成

如果不考虑多字词,那么歧义字段只有一种类型――交集型。如果多字词包含有双字词,且多字词内部的双字词不形成交集型歧义,那么多字词是一个组合型歧义字段。一个最一般的歧义字段可以看成由双字词、交集型歧义字段和多字词构成,它们自身或相互之间的交叉和包含关系决定了歧义字段的类型。

1)交集型歧义字段

仅由双字词构成,字段中的每一个字都与其前后的汉字构成词(字段首字与其后字成词、字段末字与其前字成词)。

例如图1中的“成为了”和“展现在世人”就分别是交集型的三字段和五字段,弧线表示词的范围。

1 交集型歧义字段

2)组合型歧义字段

多字词包含双字词,但不包含交集型歧义字段。如图2所示。

2 组合型歧义字段

3)多字词与双字词交叉(如图3所示)

3 多字词与双字词交叉的歧义字段

4)多字词与多字词的交叉和包含(如图4所示)

4 多字词包含或交叉多字词的歧义字段

5)多字词与交集型歧义字段的交叉和包含(如图5所示)

5 多字词包含和交叉交集型歧义字段的歧义字段

6)双字词、多字词和交集型歧义字段共存(如图6所示)

6 双字词、多字词和交集型歧义字段共存的歧义字段

2.2 歧义字段的识别算法

       歧义字段构成的三大要素为:双字词、多字词、交集型歧义字段。首先,根据词典匹配可以得到双字词和多字词。其次,根据双字词的位置关系可以得到交集型歧义字段。最后,根据多字词与双字词和交集型歧义字段的位置关系可以得到歧义字段。

2.2.1 交集型歧义字段的识别算法

       1)取输入字串的第一个字作为当前字。

       2)用当前字在词库中匹配双字词。

       3)若匹配到双字词,记录词语信息到临时的双字词集合中,转(6)。

       4)判断当前字是否与其前一个字组成双字词、前一个字又是否与其前一个字组成双字词。如果都是,则找到一个交集型歧义,

              转(5)。否则,转(6)。

       5)临时的双字词集合记录为一个交集型歧义字段,如果当前字为字串末字,转(7)。

       6)临时双字词集合清空,取输入字串的下一个字作为当前字,转(2)。

       7)返回。

2.2.2 复杂歧义字段的识别算法

       1)取输入字串的第一个字作为当前字。

       2)得到当前字所在字段(包括双字词、多字词和交集型歧义字段)的当前最小起始位置和当前最大结束位置。

       3)如果当前字为字串的首字,那么前次最小起始位置为零,前次最大结束位置为当前最大结束位置,转()。

       4)如果当前最小起始位置小于前次最大结束位置,那么取当前最小起始位置和前次最小结束位置的最小者作为前次最小起始位

              置,取当前最大结束位置和前次最大结束位置的最大者作为前次最大结束位置。转(6

       5)从前次最小开始位置到前次最大结束位置逐字作一遍扫描,如果有两个以上多字词、或者有一个以上多字词和一个以上双字

              词、或者有一个以上交集型歧义字段,那么得到一个复杂歧义字段,记录复杂歧义字段信息。如果当前字为字串末字,转(7)。

       6)取前次最大结束位置的下一个字作为当前字,转(2)。

       7)返回。

 

3 层选处理

       如前面的图1~6所示,在歧义字段中,双字词的弧线有画在上面一层的,也有画在下面一层的,多字词可以看作夹层,需要单独处理。层选处理就是要从上层、下层和夹层中选出合理的字词切分。

3.1 术语介绍

       字段-―由汉字或字符组成的一段字符串。

       歧义字段-―存在交集型歧义或组合型歧义的字段。

       奇段-―汉字或字符个数为奇数的字段。

       偶段-―汉字或字符个数为偶数的字段。

       上层-―字段中由奇偶字(符)构成的双字词序列。

       下层-―字段中由奇偶字(符)构成的双字词序列。

夹层-―字段中的多字词结构,报括多字词内部的双字词。

3.2 层选处理的基本策略

       层选处理的出发点是为句类分析服务。在句类分析的“三步曲”[3](语义块感知、句类假设检验和语义块构成)中都可能要做层选处理。层选处理的任务是给出字段可能切分集合的优先级,如果根据层选处理的步骤不能给出优先级的排列,则说明字段中可能存在新词或伪词。“新词和伪词的辨识,才是汉语分词的精髓”。[4]

如果不考虑多字词,那么奇段的单字词只能是奇数个(至少一个),偶段的单字词只能是偶数个(至少两个)。因此,首先假设出奇段的一个单字词,偶段最多假设两个单字词,然后按照“奇号前上后下,偶号前下后上”的规则选取双字词。“奇号前上后下,偶号前下后上”规则是指:若假设的单字词处于奇号位置,则单字词前面选取字段上层,后面选取字段下层;若假设的单字词处于偶号位置,则单字词前面选取字段下层,后面选取字段上层。这样一来,层选处理的关键就在于字段中单字词的位置判断。单字词的位置判断需要使用以下四个方面的知识:第一是双字词的频度知识,第二是双字词之间的关联知识,第三是单字词的概念知识,第四是语境知识。根据这四个方面的知识库提供的知识,可以给出单字词的假设是否合理,以及单字词位置的优先级。

现代汉语中双字词的数量比单字词多得多,除一些特殊的单字外,双字词的使用频度也比单字的使用频度高。因此,对于偶段可以采用这样的原则:不假设单字词,只选取上层(即偶段全部由双字词构成,无单字词)。

       如果歧义字段中出现了多字词,那么对交集型歧义字段的处理可以按照前面的处理方法和原则。对多字词需要考虑是否“优先”(多字词与双字词或交集型歧义字段交叉时优先考虑多字词)和是否“层并”(多字词内部的双字词不处理,并入多字词夹层)。如果多字词内部没有双字词,则可以使用多字词优先原则。

       在语义块感知阶段,层选处理可以遵从三条原则:第一,奇段只考虑一个单字词;第二,偶段只取上层;第三,多字词优先,对于复杂的夹层要特殊处理,必要时作出多个假设。在句类假设检验阶段,要特殊处理l0概念、v概念和hv概念,在没有假设的情况下考虑字段中的v概念和E假设。在语义块构成阶段,层选处理要进行段接处理和消伪处理。

 

4 结束语

汉语的分段层选处理跨越了句类分析的三个阶段,模拟了人类大脑对歧义消除的过程(假设检验,边理解边消歧)。层选处理不可能一步到位,需要根据所处的阶段和所得到的知识进行假设检验和回溯处理,以给出最佳的切分可能性。层选处理需要加强偶段的段接处理和单字l概念的处理,对于复杂夹层可以采取多字词优先的策略,同时保存夹层的全部构成信息,以便回溯处理。歧义字段的处理关键是结合句类假设和检验,采取优先假设和知识检验的策略,而不是确定性算法的一次切分。

 

 

参考文献

[1] 黄曾阳. HNC(概念层次网络)理论[M].北京:清华大学出版社,199811.

[2] 张华平 刘群. 基于N-最短路径方法的中文词语粗分模型[J].中文信息学报.2002165(9) P.77-84.

[3] 晋耀红. 基于HNC理论的句类分析系统的设计与实现[D].硕士学位论文.北京:中国科学院声学研究所,19986.

[4] 黄曾阳. 汉语的分段层选处理.内部资料.

[5] 晋耀红. 汉语理解处理中多动词难点的研究与实现[D].博士论文.中国科学院声学研究所,20036.

[6] 苗传江. HNC句类知识研究[D].博士论文.中国科学院声学研究所,20018.


 

 作者简介:韦向峰,男,1976年生,博士生,研究方向:自然语言理解、机器翻译、HNC(概念层次网络)理论及技术。