一种基于中文检索的双向分词方法及装置制造方法
【专利摘要】本发明提供一种基于中文检索的双向分词方法和装置,能够比较准确地切分中文字串而不丢失其语义,尤其在句子长度较长时分词结果比较准确,有利于提高查询的准确度,可应用于信息检索领域的自动文摘和自动分类系统。
【专利说明】—种基于中文检索的双向分词方法及装置
【技术领域】
[0001]本发明涉及计算机网络中网页文字信息处理领域,特别涉及搜索引擎中的中文网页检索的方法和装置。
【背景技术】
[0002]随着互联网的不断发展,Web页面数量急剧大幅增加,网页已经成为人们最为巨大和广泛的信息来源。许多有用的信息淹没在浩如烟海的Web页面中,面对海量信息,人们已经不能简单地靠人工来处理所有的信息。文本的搜索是大规模信息处理领域重要的应用技术之一,也是信息处理领域的重要研究方向。随着对文本的分类搜索技术研究的深入,文本的搜索技术在信息技术的应用越来越广泛。而分词技术是任何一个搜索引擎的“灵魂”, 能否将检索请求中的关键字通过正确的理解从句子中正确切分出来并进行匹配查找,是一个搜索引擎能否得到正确结果的关键过程。分词的准确与否会直接影响到检索结果的正确率。现行常用的分词技术有单字分词法、二分法和最大长度匹配算法。
[0003](I)单字分词法
单字分词法是以单个字作为单元进行切分,把文本的每一个字切分出来,然后按照这种方式来建立索引。例如“中华人民共和国”使用单字分词法进行分词时,切分出来的词为: “中”、“华”、“人”、“民”、“共”、“和”、“国”。可见,单字分词法实现比较简单,但切分出来的词没有意义,丧失了文本原有的语义。
[0004](2) 二分法
二分法以两个字作为一个单元进行切分,把文本中相邻两个字切分出来,然后按照这种方式建立索引。例如“中华人民共和国”使用二分法进行分词,切分出来的词为: “中华”、 “华人”、“人民”、“民共”、“共和”、“和国”。与单字分词法相比,虽然二分法在处理字词位置方面要好,但这种方法切分出很多无用词条,从而产生索引冗余。
[0005](3)最大长度匹配算法
目前比较常用的分词算法是最大匹配法(又称MM法)。MM法是一种应用广泛的分词方法,在其分词过程中,它只使用一个分词词库。MM法的基本思想如下:设词典中最长的词为个字,则每次均从句子开始位置起取一个长度为K的字串,依次将它与词库中的词匹配,若词库中确有这样一个字长为K的词,则成功匹配,就把这个字串作为一个词从句子切分出去。接着找到句子剩余部分的起始位置,依上法同样取另一个字长为K的字串,重复以上方法,直到把句子切分完为止。当词库中找不到一个匹配当前字串的词条,则应删掉该字串尾部一个字,另生成一个K-1字长的字串,再到词库中查询。如成功匹配,把该字长为K-1的字串作为一个词,从句子中切分出去;如匹配失败,重复以上步骤,把该K-1字长的字串尾部再删去一个字,生成一个K一 2的字串去词库中匹配,直到成功匹配。
[0006]假设一个需要进行切分的字符串:ClC2C3C4"?Cn,其中Ci (i=l,2,3,…,n)代表单个汉字字符,字典中最长的词字长为i,以i字长进行第一次切分,如成功匹配,结果如下:
S=S1+S2, SI= {Cl…Ci},S2= {Ci+1…Cn}如匹配失败,则以i_l字长进行再一次匹配,如匹配成功,则其结果如下:
S=S1+S2, SI= {Cl…C1-1},S2= {Ci…Cn}
以此类推,将SI切分出来后,再同样递归处理S2。
[0007]最大匹配算法的特点是“长词优先”,与普通匹配相比,可以很好地提高检索速率。 与正向最大长度匹配算法的取词与步骤相同,只是从字符串的最后一个自开始向前取词匹配,这种匹配算法叫做逆向最大长度匹配算法,即RMM。RMM匹配方式现阶段也越来越受到人们在设计分词方式时的青睐,因其在一些特殊检索中的分词可以达到更为精确的目的。
[0008]在普通最大长度匹配算法中,无论是正向还是逆向,都是在开始的局部范围内的最大匹配,即每个句子的前M个字符或者后M个字符进行匹配。在短句当中,这样的匹配方式还可以很好地解决问题,但是如果待匹配的句子长度远远大于最大匹配词的长度,那么这种匹配方式的弊端就显而易见了,只是局部的匹配不能完全囊括整个句子,使得在句子中间的词汇没有匹配成功,从而造成检索中的漏词和检索不完全。
【发明内容】
[0009]垂直搜索引擎是针对某一行业或组织,以构筑某行业或组织的网络信息资源库为目标来满足行业专业需求或者组织某项业务需求,智能地在互联网上搜集符合某一专题需要的信息资源,是通用搜索引擎的细化和延伸,它对网页库中的某类专业信息进行整合,分字段抽取出用户需要的数据,处理后以某种形式返回给用户。能够为包括学科信息门户、专业信息机构、特定行业领域、公司信息中心、行业专家等等在内的信息用户,提供整套的网络信息资源开发方案。由此可见,垂直搜索引擎是更有针对性的搜索引擎,它只搜索特定主题的息。
[0010]本发明针对单独的正向或是逆向最大匹配算法存在的问题,在搜索系统尤其是垂直搜索系统中,充分利用专业类环境,在机器词典库中建立专业类词库,首先根据词库中的专有名词的最大长度来确定MAX_Length的值,解决了匹配算法中盲目选择最大长度的问题,并通过正向与逆向最大匹配算法结合的方式来构成正反双向匹配算法,让正反最大匹配算法可以在匹配过程中弥补各自的不足,从很大程度上提高检索的精确度。在这里,在提出双向匹配算法的同时,针对正向和逆向的匹配过程中的分词歧义和匹配不全问题,对最大长度的匹配算法提出改进,提出“窗口”匹配的思想来进一步提升分词匹配效果。
[0011]本发明所提出的一种基于中文检索的双向分词方法采用正向和逆向结合的最大长度匹配算法来分词,其中正向分词方法(改进的MM法)通过由中央处理器、输入输出设备、寄存器、机器词典、窗口计数器、存储器组成的装置对中文字串S=C1C2C3Cf Cn进行分词, 包括以下步骤:
(1)中央处理器从输入输出设备读入中文字串S=C1C2C3C^Cn,放入寄存器中,如果n 的值小于等于1,则分词匹配结束,分词结果保存在存储器中,直接转到步骤(7);当n > I 时,转到步骤(2);
(2)中央处理器从机器词典中查找最大长度匹配词的值M=MAX_Length,窗口计数器的起始位置为待匹配句子的第一个字,记为j=0 ;
(3)当n-j大于等于M且M大于等于I时,则从j的位置开始在寄存器中向后截取长度为M的子串进行匹配,若匹配不成功则转到步骤(4),若匹配成功则转到步骤(5);当n-j小于M且M大于等于I时,转到步骤(6);当11小于I时,转到步骤(7);
(4)j=j+l,即窗口计数器加I,转到步骤(3);
(5)将匹配成功的分词取出,存入存储器,j=j+M,转到步骤(3);
(6)M值减1,j=0,转到步骤(3);
(7)将保存在存储器中的分词结果通过输入输出设备输出;
一种基于中文检索的双向分词方法的正向分词的具体流程如图1所示。
[0012]原始的RMM算法中,其匹配方式和正向匹配方式基本相同,只是在匹配行进的方向上互逆,这一点不同已经可以在匹配过程中形成较大的结果差异。而在改进的匹配算法中,由于窗口的加入,逆向匹配方式的一个难点就是窗口起点的定位和挪动方向的控制,这也是与正向匹配方式相比较下的重要差别之一。
[0013]逆向分词方法(改进的RMM法),通过由中央处理器、输入输出设备、寄存器、机器词典、窗口计数器、存储器组成的装置对中文字串S=C1C2C3Cf Cn进行分词,包括以下步骤:
(8)中央处理器从输入输出设备读入中文字串S=C1C2C3CfCn,放入寄存器中,如果n 的值小于等于1,则分词匹配结束,分词结果保存在存储器中,直接转到步骤(14);当11 > I 时,转到步骤(9);
(9)中央处理器从机器词典中查找最大长度匹配词的值M=MAX_Length,窗口计数器的起始位置为待匹配句子的最后一个字,记为n-P,其中P=O ;
(10)若n-P小于0,则匹配结束,直接转到步骤(14),当P大于等于M且M大于等于 I时,则从n-P的位置开始向前截取长度为M的子串进行匹配,若匹配不成功则转到步骤
(11);若匹配成功则转到步骤(12);当P小于M且M大于等于I时转到步骤(13);当M小于I时转到步骤(14);
(11)p=p+l,转到步骤(10);
(12)将匹配成功的分词取出,存入存储器,P=P+M,转到步骤(10);
(13)M值减1,P=0,转到步骤(10);
(14)将保存在存储器中的分词结果通过输入输出设备输出。
[0014]一种基于中文检索的双向分词方法的逆向分词的具体流程如图2所示。
[0015]本发明所提出的一种基于中文检索的双向分词装置,由中央处理器、输入输出设备、寄存器、机器词典、窗口计数器、存储器组成,对中文字串S=C1C2C3C4…(;进行分词包括以下步骤:
(1)中央处理器从输入输出设备读入中文字串S=C1C2C3CfCn,放入寄存器中,如果n 的值小于等于1,则分词匹配结束,分词结果保存在存储器中,直接转到步骤(7);当n > I 时,转到步骤(2);
(2)中央处理器从机器词典中查找 最大长度匹配词的值M=MAX_Length,窗口计数器的起始位置为待匹配句子的第一个字,记为j=0 ;
(3)当n-j大于等于M且M大于等于I时,则从j的位置开始在寄存器中向后截取长度为M的子串进行匹配,若匹配不成功则转到步骤(4),若匹配成功则转到步骤(5);当n-j小于M且M大于等于I时,转到步骤(6);当11小于I时,转到步骤(7);
(4)j=j+l,即窗口计数器加I,转到步骤(3);
(5)将匹配成功的分词取出,存入存储器,j=j+M,转到步骤(3);(6)M值减1,j=0,转到步骤(3);
(7)将保存在存储器中的分词结果通过输入输出设备输出;
(8)中央处理器从输入输出设备读入中文字串S=C1C2C3C^Cn,放入寄存器中,如果n 的值小于等于1,则分词匹配结束,分词结果保存在存储器中,直接转到步骤(14);当11 > I 时,转到步骤(9);
(9)中央处理器从机器词典中查找最大长度匹配词的值M=MAX_Length,窗口计数器的起始位置为待匹配句子的最后一个字,记为n-P,其中P=O ;
(10)若n-P小于0,则匹配结束,直接转到步骤(14),当P大于等于M且M大于等于 I时,则从n-P的位置开始向前截取长度为M的子串进行匹配,若匹配不成功则转到步骤(11);若匹配成功则转到步骤(12);当P小于M且M大于等于I时转到步骤(13);当M小于I时转到步骤(14);
(11)p=p+l,转到步骤(10);
(12)将匹配成功的分词取出,存入存储器,P=P+M,转到步骤(10);
(13)M值减1,P=0,转到步骤(10);
(14)将保存在存储器中的分词结果通过输入输出设备输出。
[0016]【专利附图】
【附图说明】
图1是本发明一种基于中文检索的双向分词方法的正向分词具体流程图;
图2是本发明一种基于中文检索的双向分词方法的逆向分词具体流程图;
图3是在本发明基础上构建的Web全文检索中间件架构模型;
图4是由图3所示Web全文检索中间件构建的文档搜索系统架构模型。
【具体实施方式】
[0017]下面以句子I “发展中国家人民”和句子2 “大学生活动点”的分词结果为具体例子来说明中文双向分词方法中的改进效果。当使用改进的MM算法进行分词的时候,句子I 可以得出结果“发展/中国/家人/民”,而句子2可得出结果“大学生/活动/点”。当使用改进的RMM算法时,句子I可以得出结果“发展中/国家/人民”,而句子2可以得出结果 “大学/生活/动点”。在这种情况下,显然人脑可以清楚地辨别出,句子I用改进的RMM算法做出的分词结果正确,句子2用改进的MM算法得出结果正确。
[0018]在这里即可以得知,当单独使用改进的MM算法或者改进的RMM算法进行分词的时候,若这两类句子同时在分词工作中出现,则必然会有一类不能做出正确的分词结果。而此时若用改进的正向和逆向结合的最大长度匹配算法来分词,则可以在对照专业词库的同时找出哪一种匹配方式最为合适,从而得出正确的分词结果,即在匹配中判断出句子I用改进的RMM算法和句子2用改进的丽算法。
[0019]在具体实施过程中,本发明还可以应用于信息检索领域,构建出以下一种Web全文检索中间件和一种文档搜索系统。
[0020]图3给出了Web全文检索中间件的架构模型。整个中间件由信息采集模块、信息处理模块和全文检索模块组成。各个模块的简要描述如下。
[0021]I)信息采集模块。该模块主要是负责对Web网页进行多线程抓取并对抓取所得到的URL进行去重处理。在该模块中,采集接口面向Web网站,只需给定抓取的起始URL,即可通过宽度优先搜索策略完成整个站点所有网页的抓取。
[0022]2)信息处理模块。该模块包含两个主要内容,先对采集到的网页内容进行正文提 取;后利用上述一种基于中文检索的双向分词方法对提取结果进行分词并建立索引,其中 分词功能通过使用上述一种基于中文检索的双向分词装置来实现。
[0023]3)全文检索模块。全文检索模块提供了用户检索功能的接口,其内部封装了全文 检索、用户检索条件解析、对检索结果进行排序以及若干提高用户体验的个性化操作功能, 如搜索关键词智能提不、相关关键词搜索和闻级检索等。
[0024]图4给出了文档搜索系统的架构模型。文档搜索系统采用J2EE技术结合MVC架 构,利用Web全文检索中间件,采用Java语言开发实现。
[0025]I)表示层。用于生成用户访问的Web页面,包括文档搜索引擎的搜索界面、结果的 返回页面、高级搜索页面,搜索引擎进行初始设置或者调整服务器功能的一些页面,都集中 在表示层。简单地说,表示层就是该系统与各种用户的人机接口。
[0026]2)逻辑层。逻辑层位于系统的服务器端,包含众多的功能模块,是实现文档搜索系 统和搜索服务功能的核心层次。表示层中提出的各种功能都通过逻辑层相应的代码模块实 现。逻辑层的设计包含两个主要的内容:一是面向Internet的网页信息自动采集功能,通 过一个专门的多线程爬虫程序来实现,并把采集的页面信息存储在下面的数据存储层中; 另一个则是分析用户条件,进行组合搜索,将检索结果按照特定的缓存策略进行缓存,同时 对给予用户展示的结果按照时问排序或者相关度排序。逻辑层的设计是实现系统健壮性、 可重用性、可扩展性和可维护性的关键因素。
[0027]3)数据存储层。数据存储层主要是负责将网页爬虫采集到的HTML页面进行URL 去重,然后对页面正文进行提取,将提取结果封装成对象的形式,利用上述一种基于中文检 索的双向分词方法对提取结果进行分词并建立索引,其中分词功能通过使用上述一种基于 中文检索的双向分词装置来实现,在索引文件中存储相应的数据。
【权利要求】
1.一种基于中文检索的双向分词方法,其特征是,通过由中央处理器、输入输出设备、 寄存器、机器词典、窗口计数器、存储器组成的装置对中文字串S=C1C2C3C4…Cn进行分词,包括以下步骤:(1)中央处理器从输入输出设备读入中文字串S=C1C2C3CfCn,放入寄存器中,如果n 的值小于等于1,则分词匹配结束,分词结果保存在存储器中,直接转到步骤(7);当n > I 时,转到步骤(2);(2)中央处理器从机器词典中查找最大长度匹配词的值M=MAX_Length,窗口计数器的起始位置为待匹配句子的第一个字,记为j=0 ;(3)当n-j大于等于M且M大于等于I时,则从j的位置开始在寄存器中向后截取长度为M的子串进行匹配,若匹配不成功则转到步骤(4),若匹配成功则转到步骤(5);当n-j小于M且M大于等于I时,转到步骤(6);当11小于I时,转到步骤(7);(4)j=j+l,即窗口计数器加1,转到步骤(3);(5)将匹配成功的分词取出,存入存储器,j=j+M,转到步骤(3); (6)M值减1,j=0,转到步骤(3);(7)将保存在存储器中的分词结果通过输入输出设备输出;(8)中央处理器从输入输出设备读入中文字串S=C1C2C3C^Cn,放入寄存器中,如果n 的值小于等于1,则分词匹配结束,分词结果保存在存储器中,直接转到步骤(14);当11 > I 时,转到步骤(9);(9)中央处理器从机器词典中查找最大长度匹配词的值M=MAX_Length,窗口计数器的起始位置为待匹配句子的最后一个字,记为n-P,其中P=O ;(10)若n-P小于0,则匹配结束,直接转到步骤(14),当P大于等于M且M大于等于 I时,则从n-P的位置开始向前截取长度为M的子串进行匹配,若匹配不成功则转到步骤(11);若匹配成功则转到步骤(12);当P小于M且M大于等于I时转到步骤(13);当M小于I时转到步骤(14);(11)p=p+l,转到步骤(10);(12)将匹配成功的分词取出,存入存储器,P=P+M,转到步骤(10);(13)M值减1,P=0,转到步骤(10);(14)将保存在存储器中的分词结果通过输入输出设备输出。
2.一种基于中文检索的双向分词装置,其特征是,由中央处理器、输入输出设备、寄存器、机器词典、窗口计数器、存储器组成,对中文字串S=C1C2C3Cf Cn进行分词包括以下步骤:(1)中央处理器从输入输出设备读入中文字串S=C1C2C3C^Cn,放入寄存器中,如果n 的值小于等于1,则分词匹配结束,分词结果保存在存储器中,直接转到步骤(7);当n > I 时,转到步骤(2);(2)中央处理器从机器词典中查找最大长度匹配词的值M=MAX_Length,窗口计数器的起始位置为待匹配句子的第一个字,记为j=0 ;(3)当n-j大于等于M且M大于等于I时,则从j的位置开始在寄存器中向后截取长度为M的子串进行匹配,若匹配不成功则转到步骤(4),若匹配成功则转到步骤(5);当n-j小于M且M大于等于I时,转到步骤(6);当11小于I时,转到步骤(7);(4)j=j+l,即窗口计数器加I,转到步骤(3);(5)将匹配成功的分词取出,存入存储器,j=j+M,转到步骤(3);(6)M值减1,j=0,转到步骤(3);(7)将保存在存储器中的分词结果通过输入输出设备输出;(8)中央处理器从输入输出设备读入中文字串S=C1C2C3C^Cn,放入寄存器中,如果n 的值小于于1,则分词匹配结束,分词结果保存在存储器中,直接转到步骤(14);当11 > I 时,转到步骤(9);(9)中央处理器从机器词典中查找最大长度匹配词的值M=MAX_Length,窗口计数器的起始位置为待匹配句子的最后一个字,记为n-P,其中P=O ;(10)若n-P小于0,则匹配结束,直接转到步骤(14),当P大于等于M且M大于等于 I时,则从n-P的位置开始向前截取长度为M的子串进行匹配,若匹配不成功则转到步骤(11);若匹配成功则转到步骤(12);当P小于M且M大于等于I时转到步骤(13);当M小于I时转到步骤(14);(11)p=p+l,转到步骤(10);(12)将匹配成功的分词取出,存入存储器,P=P+M,转到步骤(10);(13)M值减1,P=0,转到步骤(10);(14)将保存在存储器中的分词结果通过输入输出设备输出。
3.—种Web全文检索中间件,由信息采集接口、信息采集模块、信息处理模块、全文检索模块和检索接口组成,其中,信息采集模块对来自信息采集接口的Web网页进行抓取并对抓取所得到的URL进行去重处理;信息处理模块先对信息采集模块采集到的网页内容进行正文提取,后对提取结果进行分词并建立索引;全文检索模块内部封装了全文检索、用户检索条件解析、对检索结果进行排序以及提高用户体验的个性化操作功能,对外提供了检索接口,其特征是,信息处理模块中对正文提取结果进行分词的装置是如权利要求2所述的一种基于中文检索的双向分词装置。
4.如权利要求3所述的一种Web全文检索中间件,其特征是,信息采集模块对来自信息采集接口的Web网页进行抓取时采用多线程抓取。
5.一种中间件的Web全文检索方法,该中间件由信息采集接口、信息采集模块、信息处理模块、全文检索模块和检索接口组成,全文检索包括以下步骤:(1)信息采集模块对来自信息采集接口的Web网页进行抓取并对抓取所得到的URL进行去重处理;(2)信息处理模块先对信息采集模块采集到的网页内容进行正文提取,后对提取结果进行分词并建立索引;(3)全文检索模块内部封装了全文检索、用户检索条件解析、对检索结果进行排序以及提高用户体验的个性化操作功能,对外提供了检索接口 ;其特征是,在步骤(2)中,信息处理模块中对正文提取结果进行分词的的方法是如权利要求I所述的一种基于中文检索的双向分词方法。
6.如权利要求5所述的一种Web全文检索中间件的构造方法,其特征是,信息采集模块对来自信息采集接口的Web网页进行抓取时采用多线程抓取。
7.一种文档搜索系统,其特征是,由人机接口和如权利要求3所述的一种Web全文检索中间件组成,人机接口提供起始URL给中间件的信息采集接口,并显示中间件通过检索接口输出的检索结果。
8.一种文档搜索的方法,通过人机接口和Web全文检索中间件实现搜索,包括以下步骤:(1)人机接口提供起始URL;(2)Web全文检索中间件进行全文检索;(3)中间件将检索结果输出并显不在人机接口;其特征是,在步骤(2)中,Web全文检索中间件进行全文检索的方法是如权利要求5所述的一种中间件的Web全文检索 方法。
【文档编号】G06F17/30GK103577391SQ201210241471
【公开日】2014年2月12日 申请日期:2012年7月28日 优先权日:2012年7月28日
【发明者】刘迎春, 魏华峰, 方筠捷 申请人:江苏新瑞峰信息科技有限公司