摘要
中文软件需要具有对中文文本的输入、显示、编辑、输出等基本功能,而且随着计算机技术的发展,对于计算机的文本处理能力提出了更高的要求,诸如智能拼音语句输入、手写和语音自动识别输入;文章的校对;简体和繁体中文的自动转换;信息检索和信息摘录;文本分类和自动文摘;语音合成;自然语言的理解和自动翻译;自然语言接口等。 而所有这些中文处理功能都要建立在对汉语文本的分词处理这一基本功能之上。因而,汉语分词是中文信息处理的基础,在中文信息处理系统中具有广泛的应用前景。
我们知道,汉语的中文信息处理就是要“用计算机对汉语的音、形、义进行处理。” [1], 我们还知道,“词是最小的能够独立活动的有意义的语言成分。”[2] 然而,汉语文本中词与词之间却没有明确的分隔标记,而是连续的汉字串。显而易见,自动识别词边界,将汉字串切分为正确的词串的汉语分词问题无疑是实现中文信息处理的各项任务的首要问题。
以拼音输入中的同音词自动辨识为例,据我们统计,汉语单字同音现象是非常严重的。以6763个汉字为例,没有同音字的汉字只有16个。其他汉字都有同音字。其中最多的有116个同音字。而汉语词的同音现象则有很大的改善。以52505的词表为例,其中35942个词语没有同音词。因此,大多数同音字可以依靠词来确定。例如:”yi”对应的同音字“以,一,易,已,意”, 分别可以在“以为,一定,容易,已经,意义”中来确定。对于词语(包括单字词)的同音现象,则需要运用词语之间的合理搭配以及词语在句子中的合法运用来确定。比如“一枝可爱的玫瑰花”,”Zhi”的同音字有:“只,之,直,支,枝.....”等。但是这里“枝”是和“花”的合理搭配。也就是说”一+枝+可爱的玫瑰花”是合理的搭配。由此不难看出,分词对于同音词自动辨识的作用。而同音词的自动辨识也是语音自动识别所要解决的重要问题。
除了同音词的自动辨识,汉语的多音字自动辨识仍然需要分词的帮助。例如:“校、行、重、乐、率”等都是多音字。无论是拼音自动标注还是语音合成都需要识别出正确的拼音。而多音字的辨识可以利用词以及句子中前后词语境,即上下文来实现。如以上几个多音字都可以在以下几组词中得以定音:学校(xiao)/ 校(jiao)对、行(hang)列/行(xing)进、重(zhong)量/重(chong)新、快乐(le)/音乐(yue)、率(shuai)领/效率(lv)。
汉字的简体/繁体转换、信息检索和信息摘录、自然语言理解、文本分类、机器翻译、文本校对等中文信息处理系统同样都首先需要分词作为其最基本的模块。
汉语分词是由计算机自动识别文本中的词边界的过程。从计算机处理过程上看,分词系统的输入是连续的字符串(C1C2C3……Cn),输出是汉语的词串(W1W2W3……Wm), 这里,Wi 可以是单字词也可以是多字词。 那么,在这个过程中,我们所要解决的关键问题是什么,我们又有什么样的解决方案哪?
汉语的语素和单字词,合成词和短语之间没有清晰的界限。语言学界虽然对于词在概念上有一个十分清晰的定义,即,“词是最小的能够独立活动的有意义的语言成分。”但从一些词典的编撰中,我们仍然可看出一些上述界限难以区分的问题。比如:“听见”“看见”在很多词典中都有收录,但是有类似结构的“闻见”却没有收录。在建立分词系统词表时,仍然对于收词的标准难以把握,例如:“鸡蛋”是词,那么“鸭蛋、鹌鹑蛋”是否也作为词收入词表?至今为止,分词系统仍然没有一个统一的具有权威性的分词词表作为分词依据。这不能不说是分词系统所面临的首要问题。除了分词词表,还有一个概念值得我们注意,即“分词单位”。从计算机进行分词的过程来看,其输出的词串我们称之为“切分单位”或“分词单位”。《信息处理用现代汉语分词规范》中对于“分词单位”也有一个定义:“汉语信息处理使用的、具有确定的语义或语法功能的基本单位。包括本规范的规则限定的词和词组。”[3]由此可见,信息处理中分词单位的定义比传统意义上的词更宽泛些。这也就避开了理论上对于词的界定难以把握的困扰。分词系统可以面向解决实际问题的需求和真实语料中使用的频繁程度来规定“分词单位”。分词单位可以是同词表中词完全一致,也可以是包含未登录词识别以及一些词法分析的切分单位, 例如,一些人名、地名、机构名、外国人译名,应予以识别和切分。一些动词和形容词重叠结构,如“高高大大”、“甜甜蜜蜜”等;一些附加词,如后缀,“亲和性”、“热敏性”等;都可以作为分词单位予以识别和切分。因此,对于一个分词系统而言,制定一个一致性的分词单位切分规范无疑也是一个重要的问题。
分词系统要处理的第二个关键问题是文本中歧义切分字段的判别。汉语中歧义切分字段最基本有以下两种类型:
我们知道,词表中不能囊括所有的词。一方面是因为语言在不断的发展和变化,新词会不断的出现。另一方面是因为词的衍生现象非常普遍,没有必要把所有的衍生词都收入辞典中。
特别是人名、地名等专有名词,在文本中有非常高的使用频度和比例。而且由于未录词引入的分词错误往往比单纯的词表切分歧义还要严重。这就要求分词系统具有一定的未登录词识别能力,从而提高分词的正确性。
除了人名、地名的识别,我们认为,分词系统还需要有一定的词法分析能力,从而解决衍生词和复合词等词汇平面上的问题,为进一步的中文信息处理提供坚实的基础。
以上我们大致了解了分词系统所面临的关键问题,那么,分词系统怎样解决这些问题的哪?下面我对我们曾经试验过的几种分词算法,也是目前比较被广泛使用的方法加以简单介绍:
这是一种有着广泛应用的机械分词方法,该方法依据一个分词词表和一个基本的切分评估原则,即“长词优先”原则,来进行分词。这种评估原则虽然在大多数情况下是合理的,但也会引发一些切分错误。根据我们小规模测试的结果,其正确率为95.422%,速度为65,000字/分钟。
这种切分方法,需要最少的语言资源(仅需一个词表,不需要任何词法、句法、语义知识),程序实现简单,开发周期短,是一个简单实用的方法。
这种方法首先切分出与词表匹配的所有可能的词,这种切分方法称为“全切分”,运用统计语言模型和决策算法决定最优的切分结果。
这种方法的优点是可以发现所有的切分歧义,但是解决歧义的方法很大程度上取决于统计语言模型的精度和决策算法。需要大量的标注语料,并且分词速度也因搜索空间的增大而有所缓慢。根据我们小规模测试的结果,其正确率为96.252%。分词速度为:40,000字/分钟。
这种方法首先运用最大匹配作为一种初步切分, 再对切分的边界处进行歧义探测,发现歧义。再运用统计和规则结合的方法来判别正确的切分,运用不同的规则解决人名、地名、机构名识别,运用词法结构规则来生成复合词和衍生词。
目前这种方法可以解决汉语中最常见的歧义类型:单字交集型歧义。并对人名、地名、机构名、后缀、动词/形容词重叠、衍生词等词法结构进行识别的处理,基本解决了分词所面临的最关键的问题。而且由于优秀的辞典结构和算法设计,分词速度非常快。根据我们小规模测试的结果,其正确率为97.948%。分词速度为:200,000字/分钟。但是,目前这个分词系统对于组合歧义的处理还没有涉及。
这一分词系统我们称之为:WB2000, 它作为Office2000中文版中的一个基本模块被许多中文功能所运用。
这里,我们就WB2000在Office2000中文版中的具体应用实例进行简单介绍,从这些具体的应用实例中,我们可以对中文分词的广泛应用有进一步深入的了解。
1)交叉型歧义识别
2)词法分析:前后缀、重叠等
3)专有名词识别:人名、地名、机构名
4)其它:数量和时间类词组识别
此外,从程序设计的角度看,它还具备以下的特点:
以上几个的特点,是基于分词系统是所有语言信息处理系统的基础,也就是说,是所有语言信息处理系统所不可或缺的模块这一认识来设计的。我们认为这一设计思想应该是开发通用的、实用的分词系统所必须掌握的原则。
Office2000 中有诸多功能运用到分词系统,这里只挑选几个典型的应用例子加以说明。
分词是文本校对中的一个基本模块,校对系统运用分词模块对文本进行分词,运用词语之间搭配的合理性来识别可能的错误。
我们知道,简体/繁体之间的转换,在单字一级,会有一个简体汉字对应多个繁体汉字的情况,如:“发”对应繁体的“發”和“髮”。那么,简体/繁体转换应该将“发”转为“發”还是“髮”哪?这就引入了如何解决简/繁歧义的问题。此外,简体中文和繁体中文在一些技术术语的运用上也有不同。例如,简体中文计算机术语“物理地址”和“逻辑地址”在繁体中文中写作“邏輯位址”和“物理位址”。简体/繁体转换系统也需要解决这种术语的不同用法问题。 我们的简体/繁体转换系统运用分词模块切分词语,根据词语以及上下文来决定最可能的转换结果。
例2:
MSWord2000中,当用户双击鼠标左键是,如果是英文文本,英文单词会被高亮选中,如果是中文文本,中文词语则也会高亮选中,用户可以对选中的词语做进一步的编辑行为。这一功能同样是运用分词系统来实现的。
例3:当用户在“计算机”文本段内任意位置双击鼠标左键时,“计算机”将作为词被选中。
MSWord2000中提供了对于文本自动标音的功能,我们知道,汉语存在一字多音的问题,如何决定多音字的正确拼音哪?这里,我们仍然利用分词系统作为基础模块根据上下文来判别其正确的拼音。
例4:
这里,我们看到多音字:“重”被正确标注为“zhong4”和“chong2”.
汉语分词是中文信息处理系统的基础,有着极其广泛的实际应用。从基本的输入系统,如智能语句输入法、语音输入、手写输入;到文字处理,如文本校对、简体/繁体转换、拼音标注;以及语音合成,文本检索,文本分类,自然语言接口,自动文摘等等,无处不渗透着分词系统的应用。但是对于分词中所涉及的一些关键问题,我们仍然没有很好的解决方案。因此,中文信息处理技术的进步和中文信息处理系统的广泛应用,有待于对分词中的关键问题进行进一步的深入研究和探索,如,制定和颁布国家通用的分词词表,研究歧义切分字段类型,增强歧义判别的能力,提高专有名词的识别率,研究汉语的构词规则和词法规则等等。从系统设计方面,应考虑开发通用的多功能的汉语分词系统,如:支持多种不同应用的多词典结构、自适应不同应用的切分结果、带结构化和属性信息的切分结果等。从分词的在中文信息处理系统中的应用方面,可以说,我们已经跨出了一大步,但是我们仍在致力于拓展其新的应用,如:自动文摘、汉语文本索引和检索、汉语语音合成、汉语自然语言接口等。 我们认为,汉语分词系统作为中文信息处理系统的基石,有着极其广泛的应用前景。通过对分词技术的深入研究,开发出高质量,多功能的分词系统,必将促进中文信息处理系统的广泛应用,换言之,也就提高了中文软件对于中文的处理能力,这也将使得计算机用户的日常工作的效率得以提高。
[1]《汉语信息处理词汇01部分;基本术语(GB12200.1-90)》,中国标准出版社,1991
[2] 朱德熙《语法讲义》,商务印书馆,1982
[3] GB/T13715-92《信息处理用现代汉语分词规范》,中国标准出版社,1993。
[4] 梁南元《书面汉语自动分词系统-CDWS》,《中文信息学报》1(2),1987。