一种基于树形结构的检索方法_2

文档序号:9646610阅读:来源:国知局
就会有k个后续(a不是文本的结尾),记作a[s],s = 1,2,…,k。
[0041](2) 一元后续表达式与一元后续树:假设全文T是由字符串&1,a2,…,an,#组成的,如果其中的au= a i2=…=a ik是相同的字符,记为a,而a il+1,ai2+1,…,aik+^别是它们的后续,则所有的a和它的后续就构成了一个一元后续表达式a (all+1, al2+1,…,alk+1),用一棵树来描述此表达式的话,a是树根,all+1,al2+1,…,&1,+1是它的后续结点,这棵树就成为a的一元后续树。
[0042](3) 二元后续表达式与二元后续树:对一元后续表达式进行扩展,如果原文T中有相同的字符串auail+1= ai2ai2+1 =…=aikaik+1,记作ab,则所有的ab和其后续就构成了一个~?兀后会头表达式,记作a (b (ail+2, 3-12+2)…,a;k+2))。
[0043]举例:在文本abcbacabacc#中(本发明举例中的文本都以此文本为例,命名为T),ab字符串出现了 2次,则其文本库存在一个二元后续表达式为:a (b (c, a))。用树来表示这个表达式的话,将all+2,al2+2,…,alk+2这些后续用其在以b为根的一元后续树中它们所在分支的序号来表示,对于上例来说二元后续表达式可以改为:a(b(l,3))。a的二元后续树表为:a 疋树根,ail+1,ai2+i,…,iiik+i疋 a 的后会头,(a il+1, tagj),(ai2+i,tag2),…,(?^+ι,tagk)贝1J作为a的后续结点,其中,tagi, tag2...,tag#为是以a il+1,ai2+1,…,aik+1为根的一元后续树中ail+1,ai2+1,…,aik+1的后续所在分支的序号。以上述文本T为例,a的后续依次为b、c、b、c,相应的后续结点依次为(b, 1)、(c, 2)、(b, 3)、(c, 3) ο
[0044]内相关后续树的定义:由一个源文档库中全部文档的所有索引项的后续树组成的森林,叫做这个源文档库的内相关后续树,当所述后续树为二元后续树时,该内相关后续树为二元内相关后续树。
[0045]参见图1,本发明提出的一种基于树形结构的检索方法,用于中文搜索引擎中对中文网页数据的处理,包括:
[0046]步骤S100,网页数据预处理;
[0047](1)提取网页中的文本信息,生成相应的文本并对文本进行编号。这一过程主要工作是将网页文件中的文本信息提取出来,生成用于建网页数据索引的文档。
[0048](2)生成网页索引文件。
[0049]需要一个网页索引文件来记录文本编号和其来源网页的相关信息,如网页标题、URL和网页大小等信息,其作用有两方面:一是在建立后续的网页数据索引阶段,后续树结点中只需要记录文档的编号,而不是冗长的文件名;二是在检索阶段可以根据文本编号从网页索引文件中找出源网页的URL信息,从而以特定的方式输出到结果显示页面上。
[0050](3)将文本中的标点符号去掉,使文本成为短字符串的集合。
[0051]该步骤的输入是抓取到的网页文件,输出是待切词的文本。
[0052]步骤S200,建立网页数据索引文件
[0053]为步骤S100处理后的网页数据建立网页数据索引文件。网页数据索引文件是对处理后的网页数据所建立的索引组成的文件。可以为所述网页数据建立字索引,也可以为所述网页数据建立词索引。所述索引是基于二元内相关后续树创建的索引。所述网页数据索引文件可以为网络搜索引擎的搜索提供服务。
[0054]在中文检索系统中,索引的语言单元可以分为字和词两种,由此出现了两种不同的建索引库策略:基于字表的建库策略和基于词表的建库策略。基于字表的建库策略,是指将源文档中的每个汉字均作为标引的基本单元,为每个不同的字都建立一个字表,字表中记录了该字在不同文档中的所有出现位置,在检索时对查询字符串中的单字所检索到的记录进行逻辑乘运算从而获得最终的结果集。基于字表建库的优点主要有:字表规模小、查全率高,缺点是当源文档数量大时索引文件占用的存储空间很大。
[0055]基于词表的建库策略就是以能表达一定语言意义的词为索引项建立索引库。这种建库思想一般需要对源文档进行分词操作,也就是将源文档中的字符集合分解为词的集合,检索的时候同样需要对检索字符串分词,然后对每个词在索引文件中查找记录,求交后最后得到检索结果集。基于词表建库的优点主要有:检索速度快、查准率高,缺点是查全率不尚。
[0056]本发明的一实施例兼顾了上述两种建立索引库的优缺点。同时采用了两种建立索引库的方法。
[0057]本发明上述实施例的基础上,在步骤S100中,网页数据预处理进一步包括首先对抓取的原始网页进行分类,然后再按照分类分别提取网页中的文本信息,得到分类后的文本信息;生成网页索引文件的过程包括为原始网页的每个分类分别建立网页索引文件。在步骤S200中,建立网页数据索引文件进一步包括:首先,判断每个分类的文本信息的容量,当所述分类的容量小于1GB时,为所述分类的文本信息建立字索引,当所述分类的容量大于等于1GB时,为所述分类的文本信息建立词索引。
[0058]上述实施例中,所述二元内相关后续树定义如下:
[0059](1)后续:对文本T中的字符串a1&2来说,a2称为a i的后续,文本T最后一个字符的后续称为结束符,用“#”来表示;文本中总会有相同的字符出现,具体来说就是有相同的字或词,如果某一个索引项a出现了 k次,a不是文本的结尾,那么a有k个后续,记作a[s],s = 1,2,…,k ;
[0060](2) 一元后续表达式与一元后续树:假设全文T是由字符串&1,a2,…,an,#组成的,如果其中的au= a i2=…=a ik是相同的字符,记为a,而a il+1,ai2+1,…,aik+^别是它们的后续,则所有的a和它的后续就构成了一个一元后续表达式a (all+1, al2+1,…,alk+1),用一棵树来描述此表达式,a是树根,ail+1,ai2+1,…,&^+1是它的后续结点,这棵树就是a的一元后续树;
[0061](3) 二元后续表达式与二元后续树:对一元后续表达式进行扩展,如果原文T中有相同的字符串auail+1= ai2ai2+1 =…=aikaik+1,记作ab,则所有的ab和其后续就构成了一个~?兀后g头表达式,记作 a (b (ail+2, 3-12+2)…,a;k+2));
[0062](4)a 的二元后续树表示为:a 是树根,ail+1,ai2+1,…,aik+^ a 的后续,(a il+1, tag^ ,(ai2+1, tag2),…,(aik+1, tagk)则作为 a 的后续结点,其中,tagp tag2...,tag#为是以 a il+1,ai2+1,…,aik+1为根的一元后续树中a il+1,ai2+1,…,aik+l的后续所在分支的序号;
[0063](5)内相关后续树的定义:由一个源文档库中全部文档的所有索引项的后续树组成的森林,叫做这个源文档库的内相关后续树,当所述后续树为二元后续树时,该内相关后续树为二元内相关后续树;
[0064]上述实施例中,基于二元内相关后续树创建索引的过程具体包括:
[0065]第一阶段是扫描文本,统计双字频率,也就是统计每个字符后续的个数,为初始化树时分配空间提供参考,具体步骤是:读入文本的开始两个字符A和B,如果B不是文本的结尾,则将双字AB的频度Freq[A] [B]加1,将字串指针后移一个字,统计BC的频度Freq[B][C],C是B的后续,循环进行直到文本结尾,则文本中所有双字的频度统计完成,生成该文本的双字频度表;
[0066]以文本T为例,ab这个双字的频度为2,ac这个双字的频度为2,be这个双字的频度为1,......
[0067]第二阶段是二元内相关后续树的建立过程,初始化二元内相关后续树,为每个索引项建立后续树,再次扫描文本,将文本中所有字符的后续及后续编号填入它的后续树中,直到文本扫描完毕,将建好的二元内相关后续树模型输出到文本形成索引文件,具体步骤是:首先对二元内相关后续树初始化,为每个字符分配存储空间,接下来读入文本的开始两个字符A和B,如果B不是文本的结尾,将A树的分支数加一,然后把B和B的位置信息Pos (B)写入A树中,后移字符串一个位置,读取下一个双字B和C,再执行一遍上面的步骤,直到文本的结尾,最后将建成的二元内相关后续树输出到文本中。
[0068]举例:以文本T为例,a、b、c的初始逻辑位置分别为:Pos (a) = 1 ;Pos (b) = 1 ;Pos(c)
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1