APP下载

智能化中文机械分词组件的设计

2009-09-27齐忠琪

中国教育技术装备 2009年21期

齐忠琪

摘要 分词是计算机系统对自然语言处理的第一步,分词的方法与准确率将显著影响自然语言的处理效果。在分析机械分词技术的基础上,提出构建智能化机械分词组件的思想,论述构建智能化中文分词组件的基本思路与方法,指出智能化中文机械分词组件在中文信息处理领域中的应用前景。

关键词 中文处理;机械分词;组件设计

中图分类号:TP391.43 文献标识码:B 文章编号:1671-489X(2009)21-0095-02

Design of Intelligent Mechanical Segmentation Module for Chinese Word//Qi Zhongqi

Abstract The first step of natural language processing (NLP) on computer is the segmentation for word. It affects the effect of NLP evidently that which segmentation method is used and what its precision is. In this paper, based on the comparison of several commonly used segmentation methods for Chinese word, we propose the idea of building the intelligent mechanical segmentation module. We present the basic idea and methods of the intelligent mechanical segmentation module, and forecast its prospect of application in Chinese information processing.

Key words Chinese language processing; mechanical segmentation of words; module design

Authors address Education and Science Academy of Xinjiang Normal University, Urumqi, 830053, China

文字是人类用来交际和学习知识的符号系统,在20世纪80年代之前,人们对中文文字的认识与应用仅仅停留在以纸张为媒介的书面文字阶段。计算机技术和通信技术的飞速发展,为中文文字的数字化处理搭建了一个全新的平台。但由于中文文字属于表意文字,且数量惊人,如何能让计算机智能化处理中文文字,提高人们获取知识的效率,则成为计算机文字处理研究领域研究的一个热点[1-2]。

1 机械分词法

机械分词法[3]有时也被称为基于字符串匹配的分词方法。该方法主要是按照一定策略,将待分析的汉字串与事先做好的词典中的词条进行匹配,从而得到分词结果。根据匹配的策略不同,该分词法存在几种不同的实现方式,其中常用的有正向最大匹配、逆向最大匹配、最少切分等。无论采用哪种方式来实现机械分词,必须要有分词词典的支持,并且词典的完备程度将大大决定分词的准确度。

该分词法的优点是:算法简单且容易实现,出错几率较低。其缺点是:效率和准确性受到词库容量的约束,存在歧义切分的问题。

2 在信息检索与智能化产品开发中应用机械分词法的优点

2.1 技术要求相对比较简单机械分词法对程序设计人员的综合技术水平要求较低,更容易被大多数程序设计人员所接受。若采用基于统计的分词方法[4],开发人员必须具有一定数学建模经验,并能理解有关数学模型,还必须对汉语言知识有所研究,有一定语言学的基础。

2.2 产品开发成本低机械分词法的算法复杂度较低,实现起来较为容易,且有较多可供参考的成果。这样可以大大降低产品开发成本。

2.3 分词词典构建难度低分词词典的构建与语料库和知识库的构建相比较为容易。目前有一些中文输入法已经公开其词库,分词词典可以基于这些词库进行制作。

由此得出的结论是:在实际产品开发中,采用机械分词法较为可行。

3 智能化产品中机械分词组件的设计

3.1 组件整体设计在信息检索、机器翻译、自动应答等基于自然语言处理应用系统的开发中,首先必须实现分词功能,该功能是后续功能实现的前提条件。鉴于这个特点可以将分词功能模块提取出来单独设计,做成一个具有通用性的模块。这样可以将该模块复用到大多数基于自然语言处理的应用系统当中。

3.2 组件类型设计综合组件通用性及实现的难易程度可从2方面考虑,本文将分词组件设计成动态链接库的形式。在对组件进行组装时,只需要清楚如何调用链接库的接口函数,而不用关心函数内部实现。动态库的代码不需要重新被编译,只在目标对象链接时引入即可。另外,当分词算法被改进,需要重新对算法进行设计时,只要接口函数形式不变,使用动态链接库的应用系统就不需重新设计,只修改函数内部实现即可。图1表示动态链接库与应用系统之间的关系。

动态链接库的实现是较为容易的。若在windows平台下构建动态库,可以在VC++6.0中创建Win32 Dynamic-Link Library工程,在创建好的工程项目中直接添加代码即可。在Linux平台下构建动态库,也有现成的规则,只需按照规则书写相关MakeFile文件即可。

3.3 组件接口设计在本文中组件被设计为动态链接库的形式,组件接口则为动态链接库提供外部函数,组件组装过程即为函数调用过程。由此可见,函数的设计需要考虑到调用的复杂性及接口的通用性。除此之外,更要考虑到接口功能的可扩展性。

鉴于以上特点,接口函数的设计从2方面入手。第一,函数参数。在这里参数为待分词的内容,在实现过程中,不妨利用字符串变量来存储该内容。由于待分词的内容均为文字信息,因此利用C++中的字符串对象String来存储该信息是最为方便的。第二,函数返回值。分词后的结果为一个个独立的单词,在实现过程中可考虑使用数组进行存储。在这里每一个单词可以看做是数组中的一个元素。考虑到分词处理只是初步,在自然语言处理中对于分词结果还需后续处理,因此可以建立一个结构体来保存单词,单词结构体中可以包含词性、词义等单词相关信息,从而可为后续处理提供更多可用信息。每一个单词对应一个结构体实例,分词结果即为单词结构体数组。在具体实现中,数组可以直接采用C++ STL中的vector模板来实现,这样会大大降低开发复杂度。

3.4 分词过程设计整个分词过程的设计是以机械分词中的最大正向匹配算法为基础的,其设计重点主要集中在2个方面:最大正向匹配算法的实现与分词词典的设计。

1)最大正向匹配算法的实现。该算法的基本思想是:假设所用的分词词典中,最长的一个词所含有的汉字个数为L,则从待分词的内容中取出前L个汉字作为匹配字串,接着在词典中查找该匹配字串,如果能找到,说明该字串可以组成一个词,被切分出来;如果词典中不存在该字串,则将字串中的最后一个字删除构成新的字串,再进行同样的匹配过程,直至匹配成功。由此完成第一个词的切分,继续这样的循环直至所有词被切分出来为止。

从算法的基本思想来看,整个过程是以循环迭代处理为主,这正符合计算机处理问题的特点,下面将阐述如何实现该算法流程。

①假设:S为待分词的字符串,S=C1C2C3…Cn(Ci为单字);L为分词词典中最长词所含的汉字个数;W为存放单词的临时变量;R为最终分词结果,即W的集合;i、j为临时变量,i=1。②j=min(i+L-1,n);转到③。③W=Ci…Cj;W在词典中是否存在?是,转到④;否,转到⑤。④W为一个单词,将W存入R中;i=j+1;i

在上述流程中需要注意的是:在分词词典中不存在的词,最终会被切分成逐个单字。但前提是待分词的内容是由单个汉字组成的字符串,而编程语言中并没有为汉字设定变量类型,因此在实现时应做一定的转码处理。

2)分词词典的设计。分词词典在计算机中就是存放单词信息的文本文件或二进制数据文件,具体文件格式可以自由设定。为了文件读取方便,可以采用一行一个词条的格式,每个词条包含2部分内容——单词本身及其词性,二者之间以空格相隔。

评价机械分词算法实现得好坏的重要因素就是词典查找效率。为提高效率,在分词时会将词典先加载到内存中,再从内存中进行搜索,因此词典在内存中的存储形式将大大影响查找效率。由于词典文件格式被设计为每个词条包含单词本身及词性2部分内容,词本身决定其词性,二者类似于键值对关系。因此本文提出将词典以STL中Map的形式存储。

4 智能化中文机械分词组件的实际应用

智能化中文机械分词组件基于系统集成的思想,将功能实现隐藏在固定接口之内,从而为中文信息处理类软件的设计和不断完善提供方便。用此组件开发中文信息处理类软件,具有周期短、开发成本低、通用性强等特点。

将此组件嵌入网站应用程序中,可以在普通网站中构建简洁、实用的中文搜索引擎,方便一般网站中的信息检索;将此组件嵌入语音合成系统中,可以提高文语转换的效率,降低普通级语音合成系统的开发成本;将此组件嵌入智能化产品中,可以方便产品的更新换代与内核升级……

本文作者提出的分词组件的设计思想,虽然不是计算机自动分词的最佳方法,但在具体应用方面,则具有一定的价值。

参考文献

[1]王晓龙,关毅,等.计算机自然语言处理[M].北京:清华大学出版社,2005

[2]郭庆琳,樊孝忠.自然语言理解与智能检索[J].信息与控制,2004,33(1):120-123

[3]周文帅,冯速.汉语分词技术研究现状与应用展望[J].山西师范大学学报:自然科学版,2006,20(1):25-29

[4]瞿凤文,赫枫龄,左万利.字典与统计相结合的中文分词方法[J].小型微型计算机系统,2006,27(9):1 766-1 771