当前位置:文档之家› 基于搜索统计技术中文分词算法的应用研究

基于搜索统计技术中文分词算法的应用研究

http://www.paper.edu.cn

-1- 基于搜索统计技术中文分词算法的应用研究1

付青华

绵阳师范学院计算机科学与工程系,四川绵阳(637002)

E-mail:fuhuamy@sohu.com

摘 要:中文分词是影响中文搜索引擎性能的一个重要因素,而歧义识别则是中文分词中需

要解决的一个问题,本文简要介绍了目前主要的几种中文分词算法,并提出了基于搜索统计

技术的中文分词算法,通过实验证明,它具有良好的歧义识别能力。

关键词:搜索统计; 中文分词

图书法分类号:TP391

1. 引言

随着网络信息量的丰富,用户面对成千上万的搜索结果,逐一浏览是不可能的。因此判

断一个搜索引擎性能的好坏并不在于其能否找到所有的信息,而是在于其能否找到用户最需

要的信息。对用户提交的搜索关键字进行分词,是影响搜索引擎性能的一个重要功能模块,

中文分词把输入的计算机汉语语句自动切分为词的序列的过程[1]

。中文分词对于中文页面检

索有重要的意义,对它的评价不应依据人的主观看法,而应该考察其是否有助于提高信息检

索的准确度[2]

。中文分词是汉语自然语言处理存在一些难以解决的问题[3]

主要体现在两方

面:①对新词识别②歧义解决[4]

面对着这些中文分词问题,目前的解决方法主要有:基于字符串匹配的分词方法、基于

理解的分词方法和基于统计的分词方法。针对这三种方法各自的优缺点,本文基于搜索统计

技术,提出了一种新的中文分词算法。经过实验证明,本算法具有比较良好的中文分词性能。

2. 研究现状

目前常用的中文分词方法主要有:基于字符串匹配的分词方法、基于语义的分词方法、

基于统计原理的分词方法。

2.1基于字符串匹配的分词方法

又称为机械分词方法,其实现原理较为简单。主要步骤是将准备分析的汉字串与一个事

先预备好的机器词库中的词进行字符串匹配,若在词典中找到某个字符串,则匹配成功,也

即认为识别出一个词。

串匹配分词方法显然不具有良好的歧义识别能力,它基于机械的字符串匹配,不具有语

义上的分析。虽然通过在串匹配算法过程中加入一些技术改进,如:正向匹配、逆向匹配、

最大(最长)匹配、最小(最短)匹配等使得机械分词技术的性能有所提高,但其精度并不

能完全满足实际的需要。实际使用中,机械分词只是作为一种初始划分的手段,还需通过利

用各种其它的技术辅助,来进一步提高切分的准确率。

2.2基于语义的分词方法

该分词方法是让计算机了解句子语义,从而实现识别词、划分词的功能。它的基本方法

是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它一般由

1

本课题得到绵阳师范学院重点实验项目的资助。 http://www.paper.edu.cn

-2- 三个模块组成:控制模块、分词子系统模块、句法语义子系统模块。在控制模块的调控下,

分词子系统模块获得相关词、句子等的句法和语义信息,然后对分词歧义进行判断,实现人

对句子的理解的模拟过程。

2.3基于统计原理的分词方法

词是稳定的字的组合,因此在上下文中,相邻的字若同时出现的次数越多,其构成一个

词的概率就越高。因此字与字相邻共现的频率能够较好的反映成词的置信度。可以对现有文

字资料中相邻出现的各个字组合的频度进行统计,计算它们的互现信息。互现信息即两个汉

字相邻出现的概率。互现信息体现了汉字之间结合关系的紧密程度。当结合紧密程度高于某

一个阈值时,便可认为相关的字可能构成了一个词。

2.4 以上方法的优缺点

串匹配分词方法显然不具有良好的歧义识别能力,它基于机械的字符串匹配,不具有语

义上的分析。虽然通过在串匹配算法过程中加入一些技术改进,如:正向匹配、逆向匹配、

最大(最长)匹配、最小(最短)匹配等,使得机械分词技术的性能有所提高,但其精度并

不能完全满足实际的需要。实际使用中,机械分词只是作为一种初始划分的手段,还需通过

利用各种其它的技术辅助,来进一步提高切分的准确率。

基于语义的分词方法需要使用大量的语言知识和信息。与当前的语义表述信息技术如:

XOL,语义WEB技术不同的是:基于语义的分词方法,需要计算机对任意的汉语句子进行

理解,而由于汉语语言知识的复杂性,将汉语信息组织成机器可直接读取的形式具有相当的

难度。因此目前基于语义的分词系统还处在试验阶段。

这种方法只需要对中的字组合的频度进行统计,不需要切分词典,因而又叫做无词典分

词法或统计取词方法。但这种方法的局限性在于:其经常抽出一些共现频度高、但并不是词

的常用字组,并且对常用词的识别精度差,时空开销大。

通过对上述分析可以看出,它们都有各自的优缺点。为了实现一个较为理想的分词效果,

目前实际使用的分词系统一般都是以上三种技术的综合应用,如使用串匹配分词进行初始分

配,再使用统计方法识别新词,达到分词切分速度快、效率高的特点,又可以实现识别新词,

实现一定程度上的消除歧义。

3. 基于搜索统计技术的中文分词算法

3.1基于搜索统计的中文分词技术原理

通过对以上分词技术的介绍可以看出,这些技术都存在一个共同的难以解决的问题,即:

歧义识别问题。串匹配方法通过字符串匹配来实现分词,基于统计原理的分词方法是根据字

组合的频度来判断分词。因而这两种方法都不能从根本上解决歧义识别问题。而基于语义的

分词方法,从理论是可以达到良好的歧义识别能力,但是其实现难度很大,就目前计算机技

术发展水平而言是很难达到的。因此本文基于搜索统计技术,提出一种新的中文分词技术。

在阐述基于搜索统计的中文分词技术之前,本文首先对分词歧义的本质,以及造成分词歧义

的因素进行分析。

设字符串S,分词算法F,那么即有:

F(S) =

1,w

2,…w

n>,其中{w

i | w

i∈WD},WD为预设的词库。(1)

分词歧义的本质在于当某个关键词进行分词划分时,可以形成不同的划分方式,即F(S)http://www.paper.edu.cn

-3- 的结果并不唯一:

F(S) =

1,w

2,…w

n>||

1,w’

2,…w’

n> 其中{w

i | w

i∈WD}, {w’

i | w’

i∈WD}(2)

从而造成搜索引擎无法准确识别用户输入关键字的意图,给搜索工作产生影响。同样值

得注意的是,分词歧义与真歧义不同,分词歧义是指计算机无法正确分词,但人可以正确做

到正确识别,而真歧义就算是人也无法正确领会关键字的含义。从这一点出发可见,造成分

词歧义的本质是因为仅使用词库中的词进行匹配划分,而没有考虑到这些词的应用上下文。

人可以进行正确分词,是因为人知道正常情况下,错误的词划分那种词组合情况是不会出现

的或极少出现。也即:

S(

1,w

2,…w

n>)>S(

1,w’

2,…w’

n>)(3)

其中S为频率统计,

1,w

2,…w

n>为词划分向量。

由此可以提出新的分词方法,即可以先统计词出现组成的频率,然后建立对应的统计资

料库,当出现字符串匹配出现歧义时,再按统计资料库中词组合的出现频率进行查找,找到

频率最高的一组划分词的组合方式,即认为是正确的词划分结果。

这样的方法从理论上可行,但在实现在存在一些问题,主要是汉语的词数目较多,词语

的组合方式规模巨大,而且一个关键词中可能有多个词,这时词组合方式会出现爆炸式的增

长。因此造成频率统计工作困难,统计资料库的设计、维护难以实现。

3.2 基于搜索统计的分词方法的实现

通过式(3)可得错误的词划分组合出现的频率比正确词划分组合出现的频率要低,也

即意味着正确词划分组合使用的频率更高。由此提出基于搜索统计的分词方法,其步骤如下

所示:

第一步:按字符串匹配的方式对关键字进行词划分;

第二步:若词划分不存在多种结果,则直接输出划分结果;如果存在多种划分结果,则

进行第三步;

第三步:对于多种划分结果,分别将相应的词使用直接搜索,搜索中文页面,获得不同

的搜索结果;

第四步:对搜索结果进行,将搜索页面数最多的词组合,作为正确的词划分组合输出。

3.3 算法代码及分析

以上分词方法的主要依据在于,中文页面实际上代表了汉语言应用情况,其主身就是一

个非常丰富的汉语使用资料库。因此通过词组合对中文页面直接搜索,所得页面数即体现出

该词组合使用的频率。通过这种方式,避免了对词组合的频率统计以及统计资料库的设计,

使用、维护等难以克服的问题。以下是该算法的伪代码:

produce word_partition

Link partition_output; //词划分结果输出链表

Array search_count; //对应不同词划分进行搜索的页面数结果

int max; //最大页面数对应的词划分位置

begin

input keywords;

call string_match(keywords,partition_output); //调用字符串匹配算法

if (partition.length()==1) //结果唯一,则输出 http://www.paper.edu.cn

-4- return partition_output;

else

begin

p = partition.getpoint();

while (p<>null) //遍历链表,分别对应不同词组合进行搜索

begin

call search(paratition.get(p),search_count);

end

call find_max(search_count,max); //找到最大搜索页面数的词组合位置

return paratition.get(max); //作为正确划分结果输出

end

3.4算法实验效果分析

实现的界面如下:

图1 界面

针对以上的算法,本文进行了验证。

“三年中将增长”这个关键词是用于词划分歧义识别测试的一个重要例子。从字符串匹配

的角度来看,它既可以划分成:<三年,中将,增长>和<三年,增长>两种形式,显然<三年,

增长>是正确的词划分结果。通过以上算法的实验,利用GOOGLE搜索引擎,进行直接搜

索的结果分别是:<三年,中将,增长>搜索结果为225000,而<三年,增长>搜索结果为

3270000。按照以上算法即可获得正确的词划分形式。

“高性能绿色环保”同样可划分成<性能,绿色,环保>,也可划分成<性能,色环>二种

形式,同样经过GOOGLE搜索引擎所得的结果分别为:1670000和58800。按以算法也可

获得正确的词划分形式。通过以上的实验可见,基于搜索统计的中文分词技术以中文页面作

为汉语言使用资料库,可以实现较为良好的词划分效果。

4. 结束语

本文提出的基于搜索统计的中文分词技术利用中文页面作为汉语言使用资料库,基于汉

语言正常使用中的词组合频率可以实现良好的词划分效果。它不需要庞大的频率统计资料

库,算法空间效率较高。但是它使用了搜索引擎对中文页面进行搜索,使得其时间复杂度较

高,在下一步的工作中将通过实现简化的词组合频率统计库来进一步解决这个问题。同时,

随着互联网的发展中,本体的语义网将成为当今研究的主流。

相关主题