海纳百川 有容乃大(http://www.brtech.com.cn)

海纳百川,有容乃大(http://www.brtech.com.cn)

  :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::
摘要:本文对中文全文检索系统中常用的索引项技术n元语法,字,n元语法,词进行了介绍并讨论了其各自的特点。然后着重介绍了以词为索引项的方法及全文检索中的汉字分词问题。最后给出了一种混合型最大匹配分词算法。
关键词:信息检索 中文信息处理 分词

The indexing term technology of Chinese information retrieval and implement of segmentation system


Abstract


The paper discuss the technology of indexing term ,such as n-gray , character, word ,used in Chinese information retrieval . we also introduce the method of using word as indexing term and the problem of segmentation ,then paper presents a mix max match algorithm.

 


1 引言

在全文信息检索系统中,索引项的选择是一个基本的,也是非常重要的问题。对输入的文档及用户查询要做的第一件事就是将它们分解为索引项的集合,然后才有可能计算出查询与文档的相关度。在英文的全文信息检索系统中,将查询及文档分解为索引项集合是件非常简单的事因为通常选用词为索引项,
而英文中词与词之间存在分隔符(如空格)。对中文全文信息检索系统来说将查询及文档分解为索引项集合就复杂些。首先要确定以什么单位为索引项,是以字,词还是短语为索引项?现有的研究中大部份认为应以词为索引项。这是因为首先以词为单位比较符合人的自然思维习惯,其次以词为索引项就可以借用英文全文检索系统中已有的理论及方法。


以词为索引项,就要进行分词,也就是将由汉字组成的连续字符串分解为词的集合,要进行正确的分词不是一件十分容易的事,首先在中文中字与之间,词与词之间是不存在分隔符的,因此分词一般都要借助词典来进行,而中文的构词非常灵活,词的数目几乎是无限的,因此要构造完备的词典是不可能的。为了克服以词为索引项所带来的困难,人们提出了一些别的方法如以字为索引项,以二元,三元语法为索引项等。


本文首先对各种类型的索引项技术作简单介绍,分析它们应用于中文检索中的优缺点,然后着重讨论以词为索引项时的分词系统的设计及实现。


2 索引项及中文文本的表示方式


2.1 字


使用字为索引项是最简单的方法,将文本分解为索引项时非常容易实现。按照GB2312的规定共有6763个汉字。这样索引集合就非常小,最大不会超过6763。在这一点上与其它索引项技术(如词,N元语法)相比优点是非明显的。但以字为索引单位也有其明显的缺点。首先是匹配的准确性不高,例如用户的查询为
"识别",而某文档中存在 "你是否还认别的人?" 这样一句话。则基于字的检索方法则会认为该查询与文档是相关的。其次在中文中同一概念可以有多种表达方式如
"中文","汉语","国语"。基于字的检索方法是无法处理这类问题的。


2.2 n元语法


在全文检索中常用的为二元及三元语。二元语法的思想为将文本中所有相邻汉字均作为索引项,这样前一个索引项的后一个字与下一索引项头个字是相同的。例如有一个字符串C1C2C3C4C5,则由它生成的索引项为C1C2,C2C3,C3C4,C4C5。三元语法的思想与二元语法相同,差别仅为三元语法的索引项由三个字构成,例如对上面的字符串由其生成的三元语法索引项为C1C2C3,C2C3C4,C3C4C5。


同样n元法的优点为将文本分解为索引项集合是十分容易的。但其索引空间是十分巨大的。使用n元语法同样也会使系统无法利用语言学知识。


2.3 词


目前大多数研究者认为中文全文检索也应以词为索引单位。也就是索引项应该为中文的词。这样做的好处是十分明显的。首先符合人的习惯,有利于提高查询的准确性,也便于系统利用语言学知识。如果要进一步设计跨语种查询系统则非要以词为索引项不可。但使用词为索引项则应先解决好分词问题。


3. 一种混合型正向最大匹配算法


中文分词问题的研究己有二十多年历吏。其间己提出了多种分词算法。总的来说这些算法可分为四大类。第一类为基于词典的机械分词算法。第二类为基于统计的分词算法。第三类为第一类和第二类的混合型分词算法。第四类为基于知识的分词专家系统。


但各种分词算法均有其适用领域,针对全文检索中文档数量大,要求速度快的特点。我们设计了一个混合型正向最大匹配算法,该算法可利用规则及字频信息来处理分词中的歧义并使用了三词块方法[1]。为加快分词过程中词的查找速度,按首字索引结构对词典进行了组织。


3.1 三词块及处理歧义的规则


三词块是一种处理分词歧义的方法。分词中遇到歧义时(假设有一字符串C1C2C3C4C5C6,当前处理到汉字C1,且C1为词C1C2也为词),则向前多找两个词,这种由三个词组成的串称之为三词块。处理中我们将找出所有可能的三词块并且认为具有最大长度的三词块是最有可能的分词。


假设有字符串C1C2C3C4C5C6,且C1,C1C2均为词并有如下一些可能的三词块。


1 C1 C2 C3C4
2 C1C2 C3C4 C5
3 C1C2 C3C4 C5C6

具有最大长度的词块为第三个。这样我们就认为第三个词块中的C1C2为正确的分法。取其为词。从C3外再次开始进行分词,一直到字符串结束。


我们所设计的分词算法以正向最大匹配算法为框架。分词过程中遇到歧义时则应用下例规则加以解决。


规则1


具有最大长度的词块的第一个词为正确分词。


规则2


如具有最大长度的词块不唯一则寻找具有最小词长变化的三词块。该规则的隐含假设为在文档中词长是均匀分布的。


例如: 1 研究 生命 的 起源


2 研究生 命 的 起源


按规则选取块1中的"研究"为正确分词。


规则3


当具有最大长度的词块不唯一并且有相同的词长变化则具最大平均词的块中的第一个词为正确分词。该规则的隐含假设为遇到多字词的概率大于遇到一字词的概率。该规则仅当某些词块由一个或二个词构成时才有用。


规则4


当前面规则均不能确定选取那词块时,则分别计算各块中一字词的词频和,取词频和最大的词块。


3.2 词典的组织及词的查找


整个词典由12万个词条信息构成。词典组织结构为首字索引结构,其示意图如下


 


词典由两部份组成,一部份为索引部份,另一部份则为词典正文。索引部份由字,字频,指针组成。其中指针指向以该字为首字的所有词的首地址。正文部份为词条。词条按其长短从短向长的顺序存放。词典采取这种组织方式是为了加快词的查找速度。


4 结束语

本文介绍了一种混合型分词算法。为解决分词歧义问题引入了四条规则。在分词中遇到歧义时则通过生成三词块并引用规则来解决。文中提出的分词算法已在一全文检索系统中进行了实际应用。

posted on 2006-03-26 04:55  阿昆  阅读(634)  评论(0编辑  收藏  举报