MMSEG 中文分词算法


November 1st, 2009 leeing Leave a comment Go to comments


由于学习需要,我尝试翻译MMSEG算法,目前处于初稿状态,很许多地方的翻译仍不尽准确,在以下几天会加以修改。

算法原文位于:http://technology.chtsai.org/mmseg/

MMSEG :一个基于最大匹配算法的两种变体的中文单词识别系统

发表日期: 1996-04-29

更新日期: 1998-03-06

文档更新: 2000-03-12

许可: 非商业使用情况下免费

Copyright © 1996-2006 Chih-Hao Tsai (Email: hao520@yahoo.com )

摘要

中文文本在计算分析中一个问题是中文文本在印刷时缺少单词的边界,由于单词是一个基本的语义单元,因此有必要识别中文文本的单词以让进一步的处理可 以进行。这份论文的目的是开发一个基于最大匹配算法的两种变体的中文单词识别系统,这个系统由一个词典,两种匹配算法,以及四种歧义消解规则组成。在一个 由1013个单词组成的样本中,这个系统的正确识别率达到98.41%,本文也会对这个系统可能潜在的应用加以讨论。

介绍

正如Hung and Tzeng (1981) 和 DeFrancis (1984) 指出,中文书写系统同时以语素和音节来映射到口语中,因此,汉字在书面语中是区分的,从另一个方面来说,按照惯例,单词的边界在中文的印刷和书写中是缺失的。

单词识别过程中的难点

由于单词是一个基本的语言单位,因而有必要对中文文本的单词进行区分以让计算分析和处理中文文本能够进行。然而,在单词识别过程中有一些难点:

首先,几乎所有的汉字都可能是一个单字的单词。进一步地,它们能与其它汉字组成多字的单词,这就导致了大量的分词歧义。其次,在现代中文中,合成词 是一种居主导地位的造词方案。经常很难区分一个低频率的合成词是一个单词还是一个短语;区分固有单词也会为一个问题。最后, 一些特定的形态结构例如重复和 ” A 不 A ” 也需要加以考虑。

若不是一些例外情况(例如e.g. Huang, Ahrens, & Chen, 1993; Sproat and Shih, 1990),大部份的单词识别方法共享一种常见的算法(例如,Chen & Liu, 1992; Fan & Tsai, 1988; Yeh & Lee, 1991),这种基本的策略是使用存储在一个预编译的词典中的大量词条集来匹配输入的汉字以找到所有(或部份)可能的分词方式,由于通常仅有一种正确的分 词方法,歧义应当被消除。

最大匹配算法及它的变体

不同的研究中它们的歧义消除方法也不同。一个经过表明简单有效的方法是最大匹配算法(Chen & Liu, 1992),最大匹配算法可以有多种形式。

简单最大匹配算法。其基本形式是解析单个单词的歧义性(Yi-Ru Li, personal communication, January 14, 1995),例如,假设C1,C2,….代表一个字符串中的汉字。我们首先位于字符串的开头并想知道如何区分单词。我们首先搜索词典,看 _C1_是否为一个单个汉字组成的单词,然后搜索 _C1C2_来看是否为一个两个汉字组成的单词,以下类推。直至找到字典中最长的匹配。最可能的单词就是最长的匹配。我们取这个单词,然后继续这个过程直 至字符串中的最后一个单词被识别出来。

复杂最大匹配算法。另一种最大匹配算法是由Chen 和Liu(1992)提出的,它比基本的形式更为复杂。他们的最大匹配规则指出,最可能的分词方案是三个单词。。。再次,我们从一个字符串的头部开始,寻 找分词的方案。如果存在有歧义的分词(例如,_C1_是一个单词,但是_C1C2_也是一个单词,等等),然后我们向前再看两个单词去寻找所有可能的以 _C1_ 或者 _C1C2_ 开头的三词 chunks 。例如,如果有一个可能的三词chunks:

1. _C1_ _C2_ _C3C4_

2. _C1C2_ _C3C4_ _C5_

3. _C1C2_ _C3C4_ _C5C6_

最大长度的chunk是第三个。第一个单词,在第三个chunk中的_C1C2_,会被认为是正确的。我们接受这个词,并向前重复这个过程从汉字 C3,直到字符串的最后一个词被识别。Chen 和 Liu(1992)声称这个规则达到了99.69%的准确率并且93.21%的歧义能被这个规则消除。

其它消除歧义的算法

除了最大匹配算法,许多其它消除歧义的算法也已经被得出。在消除歧义的过程中使用了各种各样的信息,例如,概率和统计(Chen & Liu, 1992; Fan & Tsai, 1988),语法(Yeh & Lee, 1991),还有词语形态学(Chen & Liu, 1992),它们当中的大部份需要一个构建良好,拥有汉字和词组频率信息的字典,单词的语法分类,以及一个语法或形态学的集合(例如,汉语知识信息处理小 组[CKIP], 1993a, 1993b, 1993c)。

MMSEG 系统概述

MMSEG系统实现了前面讨论的最大匹配算法的简单和复杂形式。更进一步来说,为了消除未被复杂最大匹配算法所消除的歧义,又实现了三个消除歧义的规则。

其中一个是由Chen 和Liu(1992)提出的,剩下的两个则是新做法。这些规则会在后面加以讨论。这个系统没有特殊规则来处理固有名称和特殊的形态结构例如重复和“A不A”结构。

并不是说MMSEG不是设计目标为100%正确识别率的专业级别系统,在一定程度上,应当 将 MMSEG 看作是一个通用平台,用来测试新的消除歧义的算法。然而,我们能看到即使是当前版本的MMSEG也达到了非常高的准确率,与一些在学术性期刊上发表的算法相当。

 

字典

字典的第一部份由124499个多字词条组成,字典词条的长度从两个汉字到八个汉字,可以从附录A来查看单词长度的分布。字典是一个简单的汉字字符 串的有组织的列表,每个字符串没有附加额外的信息。字典的基础是一个由作者维护的拥有137450个中文单词列表(Tsai,1996c),这个列表是通 过将一些能在 Internet 上获得的中文单词列表归并而创建的 (Tsai, 1996a)。

字典的第二部份由13060个汉字及它们的使用频率组成(Tsai,1996b),汉字的频率在最后一个歧义消除规则之中使用。

匹配算法

简单匹配:对于字符串中的汉字Cn,用字典匹配以Cn开头的子串并查找所有可能的匹配。

复杂匹配:对于字符串中的汉字Cn,查找所以可能以Cn开头的三字chunks,不管是否与第一个单词有歧义。三字chunks仅在第一个单词有歧义时形成。

歧义消除规则

四种歧义消除规则被使用。在简单和复杂的匹配算法中都使用了最大匹配规则来消除分词的歧义。剩下的三个规则没有(而且不能)应用于简单匹配算法。

规则 1:最大匹配(Chen & Liu 1992)。

a)       简单最大匹配:取最大长度的单词。

b)      复杂最大匹配:从Chunk中以最大长度取第一个单词,如果有多于一个chunk最大长度,应用下一个规则。

规则 2:最大平均单词长度(Chen & Liu,1992)。在每一个字符串的结尾,很可能得到只有一个或者两个单词的chunk,例如,下面的 chunks 拥有相等的长度且单词长度的方差也相等。


1. _C1_ _C2_ _C3_


2. _C1C2C3_



规则2 以最大平均单词长度从chunk中取得第一个单词。在上面的例子中,它从第二个chunk中选择_C1C2C3_。这个规则是假设更可以遇到多字的单词而不是单字的单词。

这个规则在chunk中一个或多个单词为空的条件下才有用。当chunks是一个真正的三词chunks,这个规则并没有用。因为拥有相同总长度的三词 chunks 拥有同样的平均长度,所以我们需要其它的解决方案。

规则 3:单词长度的最小方差(Chen & Liu 1992)。规则1和规则2不能解析的歧义条件很少,例如,这两个chunks拥有相同的长度:


1. _C1C2_ _C3C4_ _C5C6_


2. _C1C2C3_ _C4_ _C5C6_



规则3取chunk中拥有单词长度最小方差的作为单词,在上面的例子中,它从第一个chunk中取_C1C2_。 这个规则和Chen & Liu(1992)提出的规则完全相同。(然而,他们在规则1之后立即应用这个规则)。 这个规则假设单词的长度通常是均匀分布的。如果存在多于一个chunks拥有最小的单词长度方差,则 应用下一个规则。


规则 4:单字单词的语素自由度的最大和。这个例子展示了两个拥有相同长度,方差和平均单词长度的chunks。

1. _C1_ _C2_ _C3C4_
2. _C1_ _C2C3_ _C4_

两个chunks都有一个单字单词和一个双字单词。哪一个更像是正确的呢?在这里我们会关注于单字单词。中国汉字的语素自由度不同,一些很少使用的 汉字被用作 free morhemes,但其它则拥有较大的自由度。一个汉字的出现频率可以作为它的语素自由度的索引。一个高频率的汉字更可能是一个单字单词,反之亦然。

用来计算语素自由度的和的公式是计算一个chunk中所以单字单词的频率。这个算法转换的原理是相同数量的频率区别并不对所有的频率范围起到一个一致性的影响。

规则4选取chunk中拥有最大频率的第一个词。由于很有可能两个汉字拥有相同的频率值,在这个规则应用之后应当没有歧义性。

算法实现

MMSEG系统是用C语言编写的。

硬件和软件环境。MMSEG运行在一个拥有1MB主存和12M扩展岁内存的IBM兼容PC(486DX-33)上,操作系统是MS-DOS。用来构 建MMSEG的编译器是Turbo C++ 3.0。MMSEG占用1.5M的磁盘空间,包含可执行文件,源代码,字典,索引和测试数据。

测试结果

一个由1013个单词组成的样本用来测试MMSEg的两个单词识别算法。表1展示了初步的测试结果。

01 
 Table 1 
 
  
 02 
 Testing Results 
 
  
 03 
 _______________________________________________________ 
 
  
 04 
  Identification Algorithm 
 
  
 05 
  Simple          Complex 
 
  
 06 
 _______________________________________________________ 
 
  
 07 
 Words identified (N2)           1012            1010 
 
  
 08 
 Correct identifications (N3)    966             994 
 
  
 09 
 Recall rate (N3/N1)             95.36%          98.12% 
 
  
 10 
 Precision rate (N3/N2)          95.45%          98.41% 
 
  
 11 
 _______________________________________________________ 
 
  
 12 
 Note. 
 
  
 13 
 Number of words (N1) in the input sample is 1013. 
 
不出人意料的,就算是简单的最大匹配算法也正确识别出样本中95%的单词。这也作为评估单词识别算法的基准。
包含四条歧义解析的复杂最大匹配算法,正确识别出样本中98%的单词。这个性能比简单匹配算法要好。
表2展示了每条歧义解析规则的成功率。前两条规则解析出90%的歧义并拥有一个相对高的成功率。大部份(59.5%)歧义被规则1解析。规则2解析 了30.6%。规则3只解析出歧义总数的1%。规则4解析了9%。这些规则的准确率总的来说是比较高的,但规则3稍比其它规则要低。
 
 01 
 Table 2 
 
  
 02 
 Accuracy of Each Ambiguity Resolution Rule 
 
  
 03 
 ___________________________________________________ 
 
  
 04 
  Ambiguity Resolution Rules 
 
  
 05 
  1       2       3       4 
 
  
 06 
 ___________________________________________________ 
 
  
 07 
 Identifications         400     245       6      82 
 
  
 08 
 Errors                    5       4       2       4 
 
  
 09 
 Accuracy             98.75%  98.37%  66.67%  95.12% 
 
  
 10 
 ___________________________________________________ 
 
  
 11 
 Note. 
 
  
 12 
 Rule 1 = Maximum Matching. 
 
  
 13 
 Rule 2 = Largest Average Word Length. 
 
  
 14 
 Rule 3 = Smallest Variance of Word Lengths. 
 
  
 15 
 Rule 4 = Largest Sum of Degree of Morphemic Freedom 
 
  
 16 
 of One-Character Words.

错误示例:

最大匹配算法:

最大平均单词长度:

最小单词长度方差:

最大单字单词的语素自由度和:

讨论

MMSEG系统的准确率和那些发表在学术期刊上的算法相当。这个发现说明MMSEG是一个成功的的中文单词识别系统。四个歧义解析规则表明是相当有 效率的。规则1(最大匹配算法)解析出大部份的歧义。特别的,规则3(最大平均单词长度)解析出了比我想象中更多的歧义。令人吃惊的是,很少歧义是被规则 2(最小单词长度方差)解析的。这可能与每条规则的顺序有关。在MMSEG早期的版本中,规则3在规则2之前被应用。在那个版本中,规则2解析出了比当前 MMSEG版本更多的歧义。规则4(最大单字单词的语素自由度和)运行相当良好。这表明统计信息在去歧义中是很有用的。像前面提到的那样,MMSEG被设 计为测试一个新的歧义解析算法的通用的平台。在将来我想做的是归纳出中文读者在阅读过程中是如何区分单词和单词的边界的前提。然后我可以使用MMSEG来 测试这些算法。同时,我也会设计实验用于从人提交中收集数据。通过计算机程序和人类提交的性能的对比。我能(希望可以)确定每个算法的心理学真实性。

有效性和可移植性

MMSEG的源代码和可执行文件是一个zip 档案,点击下面的链接来下载:

mmseg.zip (532KB)

mmseg的源代码可以不经修改用gcc来编译,所以基本上来说这是平台无关的。

你被鼓励将MMSEG用于科研的目的,也鼓励用来开发免费的软件,只要在你的源代码和文档的恰当的位置中提及我和MMSEG,并给我发送你的软件的一份拷贝。然而,对于MMSEG任何商业使用需要单独的许可。

MMSEG,Libtabe和XCIN

Libtabe 是一个由 Pai-Hsiang Hsiao 领导的TaBE项目发行的C库, Libtabe 提供了统一的接口和支持函数用来处理汉字,语音,单词和句子。

MMSEG使用的单词识别算法已经由Pai-Hsiang实现,当中使用了libtabe的最新发布,用以提供单词识别的功能。通过libtabe 的这个功能,Pai-Hsiang Hsiao能开发一个名为bims的模块,它能以一个很高的准确率智能地从一个中文音节中恢复正确的汉字。正如它出名的地方,同音异义词在汉字之间是很常 见的。Libtabe的成就,在这个背景中是非常重要的。

广泛应用于X Window System中,用以提供中文输入功能的的XCIN 和XIM(X 输入法)服务器的最新版本已经集成于libtabe中,它提供一个智能的语音输入模块,事实已经证明这个模块和商业产品的质量相当。

参考文献

Chen, K. J., & Liu, S. H. (1992). Word identification for Mandarin Chinese sentences. Proceedings of the Fifteenth International Conference on Computational Linguistics, Nantes: COLING-92.

Chinese Knowledge Information Processing Group. (1993a). Corpus based frequency count of characters in journal Chinese (CKIP Technical Report No. 93-01). Taipei, Taiwan: Academia Sinica.

Chinese Knowledge Information Processing Group. (1993b). Corpus based frequency count of words in journal Chinese (CKIP Technical Report No.93-02). Taipei, Taiwan: Academia Sinica.

Chinese Knowledge Information Processing Group. (1993c). The CKIP categorical classification of Mandaring Chinese (CKIP Technical Report No. 93-05). Taipei, Taiwan: Academia Sinica.

DeFrancis, J. (1984). The Chinese language: Facts and fantasy. Honolulu, HI: University of Hawaii Press.

Fan, C. K., & Tsai, W. H. (1988). Automatic word identification in Chinese sentences by the relaxation technique. Computer Processing of Chinese & Oriental Languages, 4, 33-56.

Huang, C. R., Ahrens, K., & K. J. Chen. (1993, December). A data-driven approach to psychological reality of the mental lexicon: Two studies on Chinese corpus linguistics. Paper presented at the International Conference on the Biological and Psychological Basis of Language, Taipei, Taiwan.

Hung, D. L, & Tzeng, O. (1981). Orthographic variations and visual information processing. Psychological Bulletin, 90, 377-414.

Sproat, R., & Shih, C. (1990). A Statistical method for finding word boundaries in Chinese text. Computer Processing of Chinese & Oriental Languages, 4, 336-351.

Tsai, C. H. (1996a). A review of Chinese word lists accessible on the Internet [On- line]. Available: http://technology.chtsai.org/wordlist/

Tsai, C. H. (1996b). Frequency and stroke counts of Chinese characters [On-line]. Available: http://technology.chtsai.org/charfreq/

Tsai, C. H. (1996c). Tsai’s list of Chinese words [On-line]. Available: http://technology.chtsai.org/wordlist/tsaiword.zip

Yeh, C. L., & Lee, H. J. (1991). Rule-based word identification for Mandarin Chinese sentences – A unification approach. Computer Processing of Chinese & Oriental Languages, 5, 97-118.

安装和运行MMSEG

MMSEG当前的实现并不将字典载入到计算机内存中。它只载入索引并在磁盘上搜索字典。因此,推荐配备具有高速的磁盘缓存的硬盘;并且,快速的 Pentium PC 是首选。

运行MMSEG:

01 
 MMSEG file1 file1 path [complexity] [progress note] 
 
  
 02 
 
 
  
 03 
 file1:      source file to be processed 
 
  
 04 
 file2:      target file to write segmented text to 
 
  
 05 
 path:       where the lexicon can be found 
 
  
 06 
 
 
  
 07 
 complexity: Complexity of matching algorithm: 
 
  
 08 
  simple      Simple (1 word) matching (default) 
 
  
 09 
  complex     Complex (3-word chunk) matching 
 
  
 10 
 
 
  
 11 
 progress note (for complex matching only): Progress note sent to 
 
  
 12 
  standard output (screen) during segmentation: 
 
  
 13 
 
 
  
 14 
  verbose     Display (1) All ambiguous segmentations and the 
 
  
 15 
  length, variance of word lengths, average word length, and sum 
 
  
 16 
  of log(frequency) for each each segmentation (2) Number of 
 
  
 17 
  ambiguous segmentations not resolved by each disambiguation 
 
  
 18 
  rule, and at which rule the ambiguity is resolved 
 
  
 19 
 
 
  
 20 
  standard    Display (2) only 
 
  
 21 
 
 
  
 22 
  quiet       None of the above information will be displayed 
 
  
 23 
 
 
  
 24 
 Example: MMSEG in.txt out.txt .\lexicon\ complex quie

Author Notes

This paper was a combination of the two term projects for “Topics in Computational Linguistics” and “Seminar in Chinese Linguistics” taught by Professor Chin-Chuan Cheng at University of Illinois at Urbana-Champaign. In 1995, when I initiated the idea of writing a Chinese word identification program, I knew little about computational linguistics. With the knowledge I have gained from his courses during the past two semesters, I am now capable of implementing such a system. I am also grateful to Professor George McConkie at University of Illinois, Professor Chu-Ren Huang at Academia Sinica, Taiwan, Professor Richard Sproat at AT & T Bell Laboratories, and Yi-Ru Li who was a graduate student in computer science at National Cheng-Kung University, Taiwan, for their insightful suggestions. I also want to thank Shih-Kun Huang at National Chiao-Tung University (now at Academia Sinica), Taiwan, who calculated the frequency counts of Chinese characters from a huge corpus consisting of all BIG-5 encoded articles posted to Usenet during 1994-95 and made his data available to the public.

链接

ROCLING (The Association for Computational Linguistics and Chinese Language Processing) , Taiwan

Chinese Knowledge Information Processing Group , Institute of Information Science, Academia Sinica, Taiwan

Online Corpus Search Service , Institute of Information Science, Academia Sinica, Taiwan

COLIPS (Chinese and Oriental Languages Information Processing Society) , Singapore

Guo Jin’s Research Papers and Leisure Writings , Guo Jin, Institute of Systems Science, National University of Singapore

The Chinese PH Corpus , Guo Jin, Institute of Systems Science, National University of Singapore

Chinese Usenet Archive (FTP) , Department of Computer Science and Information Engineering, National Chiao-Tung University, Taiwan

Chang, C. H. (1994). A pilot study on automatic Chinese spelling error correction, Communications of COLIPS, 4(2), 143-149.

Chang, C. H. (1995, December). A new approach for automatic Chinese spelling correction, Proceedings of Natural Language Processing Pacific Rim Symposium ’95(NLPRS’95) (pp. 278-283), Seoul, Korea. [One of the Best Paper Award recipients]

No related posts.