一种基于链表结构的倒排索引模型及其构建方法

文档序号:10471245阅读:409来源:国知局
一种基于链表结构的倒排索引模型及其构建方法
【专利摘要】本发明公开了一种基于链表结构的倒排索引模型及其构建方法。在倒排索引模型的基础上,通过在关键词节点中增加指向邻接关键词节点的指针,从而形成一个支持高效的短语查询、快速的索引构建以及较小的索引空间的消耗的索引模型。在基于链表结构的倒排索引模型的基础上,进一步给出了索引构建的方法。本发明提出的基于链表的倒排索引模型可以实现文本索引的快速构建,并且支持短语关键词的快速查询。
【专利说明】
-种基于链表结构的倒排索引模型及其构建方法
技术领域
[0001] 本发明设及一种基于链表结构的倒排索引模型及其构建方法,属于文本信息处理
技术领域。
【背景技术】
[0002] 索引技术是捜索引擎中用来快速获得查询结果的关键技术。最早的内容索引是指 通过已知的按照可检索顺序排列的文献集合中所包含的事项来快速查找文献中的内容。随 着互联网的普及和发展,互联网中的海量信息资源为用户获取信息提供了巨大的便利,全 文索引技术为人们提供了在互联网中查找信息的技术基础,通过为互联网中的信息添加索 引,用户可W快速方便地对信息进行捜索。
[0003] 全文索引模型是由索引结构、索引构造算法和索引查询算法组成的数据结构和算 法集合,其中索引结构是全文索引模型的核屯、,它直接决定了索引构造算法W及索引查询 算法的设计。索引程序通过扫描文本的内容,根据索引结构的要求,从文本中抽取出构造索 引所需要的信息,比如关键词、关键词位置信息、词频等,根据索引构造算法,将提取出的信 息组合成索引结构的要求写入到索引文件中,索引查询的过程是从索引文件出发,通过匹 配用户输入的关键词,返回用户查询结果的集合,索引查询的过程类似于通过字典的字表 来查找字义的过程,而索引的构造则相当于通过字义来生成字表的过程。
[0004] 目前主流的索引模型是倒排索引模型。倒排索引的物理存储文件主要分为两个, 第一个文件用来存放关键词在文档中出现的情况,比如关键词在文档中的下标、关键词在 文档中出现的次数等,第二个文件按照字典顺序存储出现在文档中的所有关键词W及关键 词指向第一个文件中关键词出现情况列表的指针。倒排索引的构造过程如下:
[0005] 1)输入文档D:This is a text.A text has many words.Words are made from letters.
[0006] 2)删除无用词汇:this is a has are 打om
[0007] 3)词干提取:text many word made letter
[000引4)将词干添加到倒排文件中,倒排文件模型如图1所示。
[0009] 除了倒排索引模型,现有的主流索引模型还有后缀树索引模型、后缀数组索引模 型,但是目前没有一个索引模型能够同时兼顾索引的构建速度、索引的查询速度W及索引 所占用的内存消耗运Ξ个指标。本发明提出的一种基于链表结构的倒排索引模型旨在提供 一种能够兼顾构建速度、查询速度W及内存消耗的索引方法,而本发明能够很好地解决上 面的问题。

【发明内容】

[0010] 本发明目的在于针对上述现有模型不能兼顾索引构建速度、索引查询速度从及索 引内存空间消耗运Ξ个指标的问题,提出一种基于链表的倒排索引模型,该模型是在倒排 索引模型的基础上,通过在关键词节点中增加指向邻接关键词节点的指针,从而形成一个 支持高效的短语查询、快速的索引构建w及较小的索引空间的消耗的索引模型。
[0011] 本发明解决其技术问题所采取的技术方案是:一种基于链表的倒排索引模型,该 模型包括索引关键词列表和索引关键词指向的文档信息列表。索引关键词列表存储的是被 索引文档中所有关键词的基本信息W及关键词指向其对应的文档信息列表的指针信息。索 引关键词指向的文档信息列表存储的是关键词在所对应的文档中的基本信息,即关键词在 文档中出现的下标、出现次数等。
[0012] 进一步的,本发明模型的文档信息列表中的每一个元关键词信息,都包含有指向 其邻接关键词的指针,当通过短语关键词进行文档查询时,可通过指向邻接关键词的指针, 快速进行短语的匹配。
[0013] 本发明还提出了一种基于链表的倒排索引模型的构建方法,该方法包括如下步 骤:
[0014] 步骤1:元关键词解析:通过分词、格式化、文本解析运Ξ个步骤,将输入的文档解 析为模型所需要的基本数据结构;
[0015] 步骤2:邻接关键词关联:步骤1形成了构建索引模型的基本数据结构,在本步骤 中,通过将前一个关键词节点中的邻接指针指向后一个关键词节点,从而将相邻的关键词 关联起来;
[0016] 步骤3:将关键词节点加入已有的索引模型。
[0017] 进一步的,本发明上述步骤1中生成的基本数据结构中含有指向同类型结构的指 针,使得可W从当前节点方便地链接到相同数据结构的下一个节点。
[0018] 本发明的上述方法应用于基于链表结构的倒排索引模型。
[0019] 针对上述构建好的索引模型,本发明还提出了一种基于链表的倒排索引模型的查 询方法,该方法包括如下步骤:
[0020] 步骤1:根据查询关键词组的首个关键词W及文档集关键词词典Term-Dic查找到 其所指向的倒排表;
[0021] 步骤2:如果查询的是单个关键词,则可直接返回倒排表中所有文档id的集合;
[0022] 步骤3:依次匹配倒排表中的索引关键词节点,针对单个关键词节点,按照其链表 的顺序依次进行关键词的比较,直到最后一个查询关键词,如果所有的关键词都相同,则将 关键词所对应的文档id加入到返回的集合中。
[0023] 本发明的上述方法应用于基于链表结构的倒排索引模型。
[0024] 有益效果:
[0025] 1、本发明提出的基于链表的倒排索引模型可W快速完成索引文件的构建。在文件 的大小成倍增长时,本发明提出的索引模型能够W线性的时间增长完成对文件的索引构 建。
[0026] 2、本发明在倒排索引模型的基础上,通过在关键词节点中增加指向邻接关键词节 点的指针,从而形成一个支持高效的短语查询、快速的索引构建W及较小的索引空间的消 耗的索引模型。
【附图说明】
[0027] 图1是示例倒排索引模型结构图。
[0028] 图2是本发明的一种基于链表的倒排索引模型结构图。
[0029] 图3是本发明的一种基于链表的倒排索引倒排表更新流程图。
【具体实施方式】
[0030] 下面结合说明书附图对本发明创造作进一步的详细说明。
[0031] 如图2所示,本发明提出的基于链表的倒排索引模型的数据结构包含两个部分,分 别是化Node和化xtNodeePLNode用来表示文档中特定关键词下相关信息的集合,NextNode 用来表示单个特定关键词在文档中出现的信息,比如在文档中出现的下表。基于链表的倒 排索引模型的数据结构如下:
[0032]
[0033]
[0034] W文档do= "it is what it is"、山="what is it"为例,图2给出了其在改进的 倒排索引模型中的结构示意图。
[0035] 下面W文档d= "it is a banana."为例,给出详细的索引构建过程:
[0036] 1、元关键词解析
[0037] 元关键词解析主要通过分词、格式化、文本解析Ξ个步骤,将输入的文档解析成本 模型所需要的基本数据结构,W文档d= "it is a banana."为例,元关键词解析过程如下: [003引1)输入文档d;
[0039] 2)对文档d进行分词操作,得到输出"it","is",'V',"banana.";
[0040] 3)对分词的结果进行格式化操作,过滤掉无意义的单词W及标点符号,得到输出 结果 "it", "is", "banana";
[0041] 4)将格式化得到的结果与原文本进行匹配操作,得到单个关键词在原文本中的下 标,形成输出结果化xtNodel = [ "it",0]、NextNode2 = [ "is",3]、NextNode3 = [ "banana", 8]〇
[0042] 2、邻接关键词关联
[0043] 邻接关键词关联阶段主要将相邻的关键词进行关联,在前一个关键词的节点中增 加指向后一个关键词节点的指针,使得通过前一个关键词可W快速地访问到后一个关键 词。在通过邻接关键词关联的处理后,形成的输出结果是NextNodel = ["it",0, 化xtNode2]、NextNode2 = [ "is",3,化xtNode3]、NextNode3 = [ "banana",8,NtXL]。
[0044] 3、加入已有索引模型
[0045] 最后,需要将所有的化xtNode加入到已有的倒排列表中,完成对文档d的倒排索引 工作。
[0046] 首先为文档d生成多个化Node,WNextNodel为例,生成的化Nodel = [d,1, WextNode 1 ]],如果存在多个化xtNode中的关键词为"if',则全部加入到PLNode 1中,修改 其中的词频统计量,其步骤如图3所示。
[0047] 下面W文档d="it is a banana."构建的索引模型为例,来描述索引查询的过 程:
[004引l、w输入关键词"it is",完成一次成功的查询
[0049] 1)对关键词"it is"进行元关键词解析,得到查询关键词列表["it","is"];
[0050] 2)根据"it"关键词查找关键词词典,匹配到"it"关键词所指向的倒排表;
[0051 ] 3)根据倒排表中倒排节点存储的顺序,依次比对倒排节点,当对比到化Nodel时, 按照化xtNode在PLNodel中存储的顺序,依次匹配化xtNode节点;
[0化2] 4)由于化xtNodel中存放的是"it",首次匹配成功,继续将化xtNodel中的邻接节 点与"is"进行对比;
[0053] 5)由于NextNode2中对应的关键词和"is"相同,并且"is"是查询关键词列表中的 最后一个关键词,因此化Nodel的匹配结束,将化Nodel所对应的文档加入待返回的文档列 表中。
[0化4] 2、W输入关键词"it has",完成一次失败的查询
[0055] 1)对关键词"it is"进行元关键词解析,得到查询关键词列表["it","is"];
[0056] 2)根据"it"关键词查找关键词词典,匹配到"it"关键词所指向的倒排表;
[0057] 3)根据倒排表中倒排节点存储的顺序,依次比对倒排节点,当对比到化Nodel时, 按照化xtNode在PLNodel中存储的顺序,依次匹配化xtNode节点;
[0化引 4)由于化xtNodel中存放的是"it",首次匹配成功,继续将化xtNodel中的邻接节 点与"is"进行对比;
[0化9] 5)由于NextNode2中对应的关键词和"is"不相同,并且化Nodel中只包含 化xtNodel运一个邻接关键词节点,因此PLNodel对应的文档中不包含关键词"it has"。 [0060]如图3所示,本发明还提出了一种基于链表的倒排索引模型的构建方法,该方法包 括如下步骤:
[0061 ]步骤1:元关键词解析:通过分词、格式化、文本解析运Ξ个步骤,将输入的文档解 析为模型所需要的基本数据结构;
[0062] 步骤2:邻接关键词关联:步骤1形成了构建索引模型的基本数据结构,在本步骤 中,通过将前一个关键词节点中的邻接指针指向后一个关键词节点,从而将相邻的关键词 关联起来;
[0063] 步骤3:将关键词节点加入已有的索引模型。
[0064] 针对上述构建好的索引模型,本发明还提出了一种基于链表的倒排索引模型的查 询方法,该方法包括如下步骤:
[0065] 步骤1:根据查询关键词组的首个关键词W及文档集关键词词典Term-Dic查找到 其所指向的倒排表;
[0066] 步骤2:如果查询的是单个关键词,则可直接返回倒排表中所有文档id的集合;
[0067] 步骤3:依次匹配倒排表中的索引关键词节点,针对单个关键词节点,按照其链表 的顺序依次进行关键词的比较,直到最后一个查询关键词,如果所有的关键词都相同,则将 关键词所对应的文档id加入到返回的集合中。
[0068] W上所述仅为本发明的较佳实施案例之一,并不用W限制本发明,凡在本发明的 精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0069] 本发明是在深入研究倒排索引模型、后缀树索引模型W及后缀数组索引模型的基 础上,通过在倒排索引模型的关键词节点中增加指向邻接关键词的指针,使得倒排索引模 型能够完成快速的短语查询,结合倒排索引模型构建时间短、内存消耗小的优点,本发明提 出的基于链表的倒排索引模型能够在索引的构建、查询W及内存消耗上都有很好的表现, 具有一定的实用价值。
【主权项】
1. 一种基于链表的倒排索引模型,其特征在于,所述模型包括索引关键词列表和索引 关键词指向的文档信息列表;索引关键词列表存储的是被索引文档中所有关键词的基本信 息以及关键词指向其对应的文档信息列表的指针信息;索引关键词指向的文档信息列表存 储的是关键词在所对应的文档中的基本信息,即关键词在文档中出现的下标和出现次数。2. 根据权利要求1中所述的一种基于链表的倒排索引模型,其特征在于:所述模型的文 档信息列表中的每一个元关键词信息,都包含有指向其邻接关键词的指针,当通过短语关 键词进行文档查询时,通过指向邻接关键词的指针,快速进行短语的匹配。3. -种基于链表的倒排索引模型的构建方法,其特征在于,所述方法包括如下步骤: 步骤1:元关键词解析:通过分词、格式化、文本解析这三个步骤,将输入的文档解析为 模型所需要的基本数据结构; 步骤2:邻接关键词关联:步骤1形成了构建索引模型的基本数据结构,在本步骤中,通 过将前一个关键词节点中的邻接指针指向后一个关键词节点,从而将相邻的关键词关联起 来; 步骤3:将关键词节点加入已有的索引模型。4. 根据权利要求3中所述的一种基于链表的倒排索引模型的构建方法,其特征在于:步 骤1中生成的基本数据结构中含有指向同类型结构的指针,使得可以从当前节点方便地链 接到相同数据结构的下一个节点。5. 根据权利要求3中所述的一种基于链表的倒排索引模型的构建方法,其特征在于,可 以通过下述查询步骤通过关键词对文档进行查询: 步骤1:根据查询关键词组的首个关键词以及文档集关键词词典Term-Dic查找到其所 指向的倒排表; 步骤2:如果查询的是单个关键词,则可直接返回倒排表中所有文档id的集合; 步骤3:依次匹配倒排表中的索引关键词节点,针对单个关键词节点,按照其链表的顺 序依次进行关键词的比较,直到最后一个查询关键词,如果所有的关键词都相同,则将关键 词所对应的文档id加入到返回的集合中。
【文档编号】G06F17/21GK105824956SQ201610192878
【公开日】2016年8月3日
【申请日】2016年3月30日
【发明人】张登银, 于建坤
【申请人】南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1