CN104572879A - 更新索引表的方法及装置、基于索引表检索的方法及装置 - Google Patents

更新索引表的方法及装置、基于索引表检索的方法及装置 Download PDF

Info

Publication number
CN104572879A
CN104572879A CN201410806400.1A CN201410806400A CN104572879A CN 104572879 A CN104572879 A CN 104572879A CN 201410806400 A CN201410806400 A CN 201410806400A CN 104572879 A CN104572879 A CN 104572879A
Authority
CN
China
Prior art keywords
participle
text
node
concordance list
symbiosis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410806400.1A
Other languages
English (en)
Inventor
刘曙
关涛
于立柱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LeTV Information Technology Beijing Co Ltd
Original Assignee
LeTV Information Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LeTV Information Technology Beijing Co Ltd filed Critical LeTV Information Technology Beijing Co Ltd
Priority to CN201410806400.1A priority Critical patent/CN104572879A/zh
Publication of CN104572879A publication Critical patent/CN104572879A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种基于分词更新索引表的方法及装置以及基于索引表进行检索的方法及装置,其中所述更新索引表的方法,包括:为收集的文本分配文本标识,并对所述文本进行分词处理;统计所述文本处理后得到的各分词在所述文本内出现的次数以及出现的位置,并依据各分词在所述文本内出现的次数以及出现的位置形成所述文本内各分词的共生信息进行存储;将所述文本标识绑定在所述文本内各分词的共生信息中,将绑定处理后的各分词的共生信息与索引表中的相应分词建立对应关系从而更新所述索引表。本申请大大降低了存储的数据量,并且加快了在索引表中检索遍历的速度,以便于更加合理高效快速的捕捉到用户发起的搜索请求的目标结果。

Description

更新索引表的方法及装置、基于索引表检索的方法及装置
技术领域
本申请涉及信息检索技术领域,具体涉及一种基于分词更新索引表的方法及装置,以及基于索引表进行检索的方法及装置。
背景技术
互联网技术的发展给人类的生活带来了极大的方便,各种各样的内容充斥着网络,如何在互联网的海洋中找到自己关注的内容也是互联网开发者们一直努力解决的问题。每一个网站都有自己的搜索引擎,现有技术中的网站的搜索引擎在接收到用户发起的搜索请求后,会通过接口将搜索到的相关结果反馈给用户。
因此,如何通过一种合理高效的索引结构将通过接口搜索到的相关结果保存起来就成为了亟待解决的技术问题。另外如何准确、快速地利用这种索引结构搜索到相关搜索信息并反馈给用户成为了亟待解决的另一技术问题。
发明内容
本申请的目的在于提供一种基于分词更新索引表的方法及装置,以及基于索引表进行检索的方法及装置。
为了达成上述目的,本申请揭示了一种基于分词更新索引表的方法,包括:为收集的文本分配文本标识,并对所述文本进行分词处理;统计所述文本处理后得到的各分词在所述文本内出现的次数以及出现的位置,并依据各分词在所述文本内出现的次数以及出现的位置形成所述文本内各分词的共生信息进行存储;将所述文本标识绑定在所述文本内各分词的共生信息中,将绑定处理后的各分词的共生信息与索引表中的相应分词建立对应关系从而更新所述索引表。
进一步地,统计所述文本处理后得到的各分词在所述文本内出现的位置,包括:对所述文本处理后得到的依序排列的各分词,以各分词的序数标识各分词在所述文本内出现的位置。
进一步地,依据各分词在所述文本内出现的次数以及出现的位置形成所述文本内各分词的共生信息进行存储,包括:以内存区块的方式对各分词的共生信息进行存储,一个内存区块存储一个或多个文本内各分词的共生信息,属于同一个文本的所有分词的共生信息被分配至同一个内存区块,每个内存区块内待存储的各分词的共生信息由当前可用的最高地址开始进行存储。
进一步地,在每个内存区块内设置有时间戳,所述时间戳记录每个内存区块内最近一次的存储时间;以单向环形链表组织多个内存区块,以头指针和尾指针分别标识起始内存区块和结束内存区块,从头指针到尾指针的方向上,各内存区块的时间戳所显示的存储时间距当前时间越来越远。
进一步地,将绑定处理后的各分词的共生信息与索引表中的相应分词建立对应关系从而更新所述索引表,包括:采用双向环形链表建立所述索引表,所述索引表中每个节点对应一分词并存储与所述分词对应的共生信息;对于绑定处理后的各分词的共生信息,根据所述各分词中的每一个,在所述索引表的节点上进行遍历,当命中某一分词时,在命中的所述分词对应的节点上添加绑定处理后的对应分词的共生信息,或,当没有命中的分词时,在所述索引表中的空白节点上创建所述没有命中的分词,并在所述空白节点上存储经绑定处理后的所述没有命中的分词的共生信息。
进一步地,周期性对所述索引表中的所有节点的有效性进行查询,当节点内存储的绑定处理后的所有分词的共生信息失效时,在所述索引表中屏蔽所述节点;当所述节点被屏蔽的时长超过一预设门限,清空所述节点,保留所述节点的内存空间。
为了达成上述目的,本申请还揭示了一种基于索引表进行检索的方法,包括:识别用户输入的搜索词并对所述搜索词进行分词,根据分词处理所得到的多个分词中的每一个分别在索引表中进行遍历,获得命中的分词对应的多个节点,其中,所述索引表的更新采用如上述任一项所述基于分词更新索引表的方法;针对命中的每一个节点,分别获取所述节点内所存储的所有共生信息形成一组共生信息,从而得到与命中的节点对应数量的多组共生信息;由所述多组共生信息中提取出具有同一文本标识的共生信息,对于具有同一文本标识的共生信息,成对地比较所述同一文本标识的共生信息中对应分词在文本中出现的位置以及出现的次数,当所述对应分词在文本中出现的位置之间的距离小于或等于一第一门限且所述次数小于或等于一第二门限时,将所述同一文本标识的共生信息中的文本标识进行输出。
为了达成上述目的,本申请还揭示了一种基于分词更新索引表的装置,包括:分词配置模块,用于为收集的文本分配文本标识,并对所述文本进行分词处理;统计存储模块,用于统计所述文本处理后得到的各分词在所述文本内出现的次数以及出现的位置,并依据各分词在所述文本内出现的次数以及出现的位置形成所述文本内各分词的共生信息进行存储;索引更新模块,用于将所述文本标识绑定在所述文本内各分词的共生信息中,将绑定处理后的各分词的共生信息与索引表中的相应分词建立对应关系从而更新所述索引表。
进一步地,所述统计存储模块,用于在所述文本内任一分词的共生信息中,以增序方式存储所述任一分词在所述文本内出现的位置。
进一步地,所述统计存储模块,用于以内存区块的方式对各分词的共生信息进行存储,一个内存区块存储一个或多个文本内各分词的共生信息,属于同一个文本的所有分词的共生信息被分配至同一个内存区块,每个内存区块内待存储的各分词的共生信息由当前可用的最高地址开始进行存储。
进一步地,所述统计存储模块,还用于在每个内存区块内设置有时间戳,所述时间戳记录每个内存区块内最近一次的存储时间,以单向环形链表组织多个内存区块,以头指针和尾指针分别标识起始内存区块和结束内存区块,从头指针到尾指针的方向上,各内存区块的时间戳所显示的存储时间距当前时间越来越远。
进一步地,所述索引更新模块,采用双向环形链表建立所述索引表,所述索引表中每个节点对应一分词并存储与所述分词对应的共生信息,对于绑定处理后的各分词的共生信息,根据所述各分词中的每一个,在所述索引表的节点上进行遍历,当命中某一分词时,在命中的所述分词对应的节点上添加绑定处理后的对应分词的共生信息,或,当没有命中的分词时,在所述索引表中的空白节点上创建所述没有命中的分词,并在所述空白节点上存储经绑定处理后的所述没有命中的分词的共生信息。
进一步地,所述索引更新模块,用于周期性对所述索引表中的所有节点的有效性进行查询,当节点内存储的绑定处理后的所有分词的共生信息失效时,在所述索引表中屏蔽所述节点;当所述节点被屏蔽的时长超过一预设门限,清空所述节点,保留所述节点的内存空间。
为了达成上述目的,本申请还揭示了一种基于索引表进行检索的装置,包括:相耦接的索引表更新设备及检索模块;所述索引表更新设备包含如上述任一项所述的基于分词更新索引表的装置;所述检索模块,用于识别用户输入的搜索词并对所述搜索词进行分词,根据分词处理所得到的多个分词中的每一个分别在所述索引表中进行遍历,获得命中的多个节点;针对命中的每一个节点,分别获取所述节点内所存储的所有共生信息形成一组共生信息,从而得到与所述命中的节点数对应的多组共生信息;由所述多组共生信息中提取出具有同一文本标识的共生信息,对于具有同一文本标识的共生信息,成对地比较所述同一文本标识的共生信息中对应分词在文本中出现的位置以及出现的次数,当所述对应分词在文本中出现的位置之间的距离小于或等于一第一门限且所述次数小于或等于一第二门限时,将所述同一文本标识的共生信息中的文本标识进行输出。
与现有技术相比,本申请可以获得包括以下技术效果:
1)本申请利用通过接口搜索到的相关结果进行分词并获取共生信息形成索引结构从而对索引表进行建立和更新,从而大大降低了存储的数据量,并且加快了在索引表中检索遍历的速度,以便于更加合理高效快速的捕捉到用户发起的搜索请求的目标结果。
2)本申请集合了对索引表进行建立和更新的机制,并依托于上述索引表进行搜索,能够更加合理高效快速的捕捉到用户发起的搜索请求的目标结果。
当然,以上技术效果并不一定要同时达成。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例的方法流程示意图。
图2为本申请实施例的又一方法流程示意图。
图3为本申请实施例的又一方法流程示意图。
图4为本申请实施例的装置结构图。
图5为本申请实施例的又一装置结构图。
具体实施方式
以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
因此,本领域普通技术人员在本申请下述实施例的启发下,无须创造性劳动,即可将本申请的上述核心思想应用到其他外置音频输入输出设备与智能电视连接的场合,详细不再赘述。
实施例1
本例中详细描述对共生信息进行提取,并利用共生信息对索引表进行更新。当然,更新索引表之后,还可以根据用户输入的搜索词使用索引表进行遍历并输出。
图1为本申请实施例的方法流程示意图,用于描述基于分词更新索引表的方法流程,包括:
步骤S100,为收集的文本分配文本标识,并对所述文本进行分词处理;
所收集的文档包括多个域,每个域包含有一文本,本实施例的方法所处理的对象是每个域的文本,对任一域的文本进行分词处理并为每个分词在该域的文本内生成共生信息。
文本标识标明的就是这个域的标识,这样对于属于同一个文档的不同域的文本标识是不同的,在后续步骤进行检索时会根据用户输入的搜索词在属于同一个文本标识的共生信息中进行检索,因此最终检索到的结果是与文本标识对应的文本。当然文本标识也可以是整个文档的标识,这样属于同一个文档的不同域的文本标识是相同的,在后续步骤进行检索时会根据用户输入的搜索词在属于同一个文本标识的共生信息中进行检索,因此最终检索到的结果是与文本标识对应的文档。
所述文本为一文档中任意域内的文本和/或所述文本为一文档中所有域内的文本,所述域包括:标题、正文、评价等等,所得到的分词包括字和/或词。
步骤S102,统计所述文本处理后得到的各分词在所述文本内出现的次数以及出现的位置,并依据各分词在所述文本内出现的次数以及出现的位置形成所述文本内各分词的共生信息进行存储。
本步骤主要包括三个核心环节——统计数据、共生信息的生成和存储。
1)统计数据
统计数据主要是统计各分词在所述文本内出现的次数以及出现的位置。对于出现的次数的统计较好理解,但是对于出现的位置如何统计、统计后如何记录,并且呈现的形式是否与次数一样简单直观可读,这个是一个技术难点。
对所述文本处理后得到的依序排列的各分词,以各分词的序数标识各分词在所述文本内出现的位置。例如,对于收集的文档A,文档A的标题是“演员甲主演的电影中演员甲扮相很帅”,而分词处理后得到的各分词依序排列为“演员甲|主演|的|电影|中|演员甲|扮相|很|帅”,这些分词的序数标识依次为0、1、2、3、4、5、6、7、8,“演员甲”这个分词出现过两次,所对应的序数标识分别为0和5,因此就用0和5来表示“演员甲”这个分词在文档A的标题(即文本)中出现的位置。本申请并不限于以上示例的内容,上述数字、格式和文档内容并不限定本申请的保护范围。
2)共生信息的生成
对于文本内的每一个分词,都会有一个共生信息,这个共生信息包括这个分词在所述文本内出现的次数以及出现的位置。依然使用文档A作为例子进行说明,文档A的标题进行分词处理后得到的各分词依序排列为“演员甲|主演|的|电影|中|演员甲|扮相|很|帅”,“演员甲”这个分词出现过两次,出现的位置分别为0和5,依据出现的次数以及出现的位置形成在所述文档A的标题中“演员甲”这个分词的共生信息是(2,0,5),首数字的位置表示出现的次数,后续数字的位置表示出现的位置。需要注意的是,所述任一分词在所述文本内出现的位置是以增序方式出现的,生成共生信息时也是以增序方式存储的。本申请并不限于以上示例的内容,上述数字、格式和文档内容并不限定本申请的保护范围。
3)存储
为了有效利用有限的内存资源并且高效管理存储的数据。本申请以以内存区块的方式对各分词的共生信息进行存储,内存区块的数量会依照需要存储的共生信息的数据量动态配置。如果内存区块的存储空间和一个文本内各分词的共生信息的数据量恰好相符(两者相差小于预设阈值),可以在一个内存区块就存储一个文本内各分词的共生信息。如果一个文本内各分词的共生信息的数据量较小,而内存区块的存储空间较大,可以在一个内存区块存储多个文本内各分词的共生信息,但是需要注意,因为属于同一个文本的所有分词的共生信息会一起失效,而内存区块的清空再利用也需要整体进行,所以属于同一个文本的所有分词的共生信息需要被分配至同一个内存区块,这样整体性非常便于将内存区块的整体清理释放并再利用;而如果属于同一个文本的所有分词的共生信息不可以散落存储在不同的内存区块,这样会导致内存区块中存在大量垃圾,而因为少于依然有效的数据而无法对内存区块进行清理并释放失效的内存区块。内存区块剩余未使用的存储空间如果放不下一个文本内各分词的共生信息就用0进行填充。
每个内存区块中待存储的各分词的共生信息由当前可用的最高地址开始进行存储,而读取每个内存区块的起始位置一般是从最低地址开始,这种方式就可以保证每个内存区块的最低地址存储的是最新的共生信息,从每个内存区块中读取数据时也会最先获得最新的共生信息。
以单向环形链表组织多个内存区块,以头指针和尾指针分别标识起始内存区块和结束内存区块,从头指针到尾指针的方向上的内存区块是可用的内存区块,因为是环形链表,从尾指针到头指针的方向上的内存区块是备用的内存区块;在每个内存区块内设置有时间戳,所述时间戳记录每个内存区块内最近一次的存储时间,从头指针到尾指针的方向上,各内存区块的时间戳所显示的存储时间距当前时间越来越远,即各内存区块内存储的共生信息越来越旧,一直没有更新,当然共生信息旧且没有更新并不一定表示内存区块内存储的共生信息失效了,只有文本本身失效了才说明这些伴随文本的共生信息失效。
步骤S104,将所述文本标识绑定在所述文本内各分词的共生信息中,将绑定处理后的各分词的共生信息与索引表中的相应分词建立对应关系从而更新所述索引表。
所述索引表(倒排索引)优选采用双向环形链表建立,当然也可以选用其他形式,本申请并不限于此。
所述索引表已经事先建立好,所述索引表具有多个节点,其中每个节点对应一分词并存储与所述分词对应的共生信息;例如索引表中的节点A对应的分词为“演员甲”,并且这个节点A上存储与“演员甲”对应的共生信息。假设事先收集的文本中都包括“演员甲”这个分词,那么在这些文本中,每个文本都会有一个“演员甲”的共生信息,那这些文本的“演员甲”的共生信息都事先存储在了这个节点A上。本申请并不限于以上示例的内容,上述数字、格式和文档内容并不限定本申请的保护范围。
建立对应关系时,对于绑定处理后的各分词的共生信息,根据所述各分词中的每一个,在所述索引表的节点上进行遍历,在命中的节点上添加绑定处理后的对应分词的共生信息。接续上例还以节点A来说明,对于一个新收集的含有“演员甲”这个分词的文本,生成了分词“演员甲”在这个文本内的共生信息并且与文本标识绑定后,根据“演员甲”这个分词在索引表的节点上进行遍历,命中了节点A,就把“演员甲”在这个文本内的共生信息添加存储到节点A内,这样就等于对节点A的共生信息进行了更新。本申请并不限于以上示例的内容,上述数字、格式和文档内容并不限定本申请的保护范围
当在所述索引表的节点上遍历后存在没有命中的分词时,在所述索引表中的空白节点上创建所述没有命中的分词,并在所述空白节点上存储经绑定处理后的所述没有命中的分词的共生信息。接续上例还来说明,如果索引表中就没有节点对应“演员甲”,生成了分词“演员甲”在这个文本内的共生信息并且与文本标识绑定后,根据“演员甲”这个分词在索引表的节点上进行遍历,显然无法命中,此时就在索引表中的空白节点B上创建“演员甲”这个分词,并“演员甲”在这个文本内的共生信息添加存储到空白节点B。需要说明的是,在索引表中选择当前可用的最高地址的空白节点进行存储。本申请并不限于以上示例的内容,上述数字、格式和文档内容并不限定本申请的保护范围。
根据所述各分词中的每一个在所述索引表的节点内进行遍历时,会优先查找所述节点内的最高地址,因为所述节点的最高地址设置有分词指示位,用于指示所述节点所对应的分词。比如,索引表中节点A对应的分词是“演员甲”,那在节点A的最高地址设置有分词指示位,专门用来指示对应的分词是“演员甲”,这样检索时优先检索每个节点内的最高地址以便快速定位到目标节点,如果共生信息对应的分词与分词指示位匹配,说明找到了节点,就可以在节点内遍历,如果共生信息对应的分词与分词指示位不匹配,说明这个节点不对,可以直接跳过查验之后的节点了,极大提高了检索效率。本申请并不限于以上示例的内容,上述数字、格式和文档内容并不限定本申请的保护范围。
另外,当一节点无法存储一分词的所有共生信息时,由多个节点共同存储所述分词的共生信息,所述多个节点的分词指示位均指示所述分词。例如,在很多文本中都出现了“演员甲”这个词,所以“演员甲”的共生信息很多,数据量大到无法由一个节点所容纳,所以此时分别有节点A、节点B、节点C共同存储“演员甲”的共生信息,每个节点分别存储了“演员甲”的共生信息中的一部分,同时节点A、节点B、节点C中的分词指示位均指示对应的分词是“演员甲”,这样对于检索就非常便利了。本申请并不限于以上示例的内容,上述数字、格式和文档内容并不限定本申请的保护范围。
更新所述索引表时会将共生信息存储在节点内,实质上是将共生信息存储在内存区块中的地址存储在节点内。将绑定处理后的各分词的共生信息向节点内进行存储时,由所述偏移量开始向所述起始地址进行存储,相对于所述起始地址的偏移量用于对每个节点内的可用存储空间进行标识,所述可用的存储空间为所述偏移量到所述起始地址。每个节点内的总存储空间是预先配置好的,所述总存储空间为节点内起始地址和结束地址之间的部分。例如,节点内的地址为0x08010000--0x08011000表示总存储空间,偏移量为0x08010501,那么表示0x08010000--0x08010500是可以写入新数据的可用存储空间,而0x08010501--0x08011000表示已经写入数据的不可用存储空间。本申请并不限于以上示例的内容,上述数字、格式和文档内容并不限定本申请的保护范围。
图2为本申请实施例的又一方法流程示意图,用于描述在更新索引表时还对索引表内失效节点进行清理的方法流程,基于图1中所述步骤S100至S104,还包括:
步骤S106,周期性地对所述索引表中的所有节点的有效性进行查询,对于失效的节点进行清理。
除了对索引表进行共生信息的添加,在本步骤中还要对索引表内的数据进行淘汰,包括:当查询到节点内存储的绑定处理后的所有分词的共生信息失效时,并不直接删除,因为一次查询过程有可能存在错误,因此为了避免误删除,此时在所述索引表中先屏蔽所述节点,然后等待一段时间,在这段时间内很可能发生多次对所述节点是否失效的查询,如果还是失效则始终保持屏蔽状态,如果当所述节点被屏蔽的时长超过一预设门限,则可以确认其失效状态为真实,清空所述节点,保留所述节点的内存空间。
需要说明的是,步骤S106的执行时机不受约束,其可以与步骤S102~S104并行执行,也可以先于步骤S102执行,甚至先于S100执行,也可以在步骤S104之后执行,但是步骤S106的执行与S100、S102、S104没有必然联系。
图3为本申请实施例的又一方法流程示意图,用于描述在更新索引表后使用索引表进行遍历并输出的方法流程,,基于图1中所述步骤S100至S104,还包括:
步骤S108,接续步骤S104执行,识别用户输入的搜索词并对所述搜索词进行分词,根据分词处理所得到的多个分词中的每一个分别在所述索引表中进行遍历,获得命中的节点。
下面用一个应用实例对上述步骤进行解释。
假设用户输入的搜索词为“演员甲演员乙”,分词处理后得到的各分词依序排列为“演员甲|演员乙”,根据“演员甲”在所述索引表中进行遍历,获得命中的节点A,根据“演员乙”在所述索引表中进行遍历,获得命中的节点B。本申请并不限于以上示例的内容,上述数字、格式和文档内容并不限定本申请的保护范围。
步骤S110,针对命中的任一节点,分别获取所述任一节点内所存储的所有共生信息形成一组共生信息,从而得到与所述命中的节点数对应的多组共生信息;
接续上个应用实例对上述步骤进行解释。
对于节点A,获得了“演员甲”的第一组共生信息(occur),包括occur11、occur12、occur13等,occur11绑定的文本标识为1391,occur12绑定的文本标识为1392,occur13绑定的文本标识为1393。
对于节点B,获得了“演员乙”的第二组共生信息,包括occur21、occur22、occur23等,occur21绑定的文本标识为1391,occur22绑定的文本标识为2392,occur23绑定的文本标识为2393。本申请并不限于以上示例的内容,上述数字、格式和文档内容并不限定本申请的保护范围。
步骤S112,由所述多组共生信息中提取出具有同一文本标识的共生信息,对于具有同一文本标识的共生信息,成对地比较所述同一文本标识的共生信息中对应分词在文本中出现的位置的距离以及出现的次数,当所述距离小于或等于一第一门限且所述次数小于或等于一第二门限时,将所述同一文本标识的共生信息中的文本标识进行输出。
接续上个应用实例对上述步骤进行解释。
比较分析发现第一组共生信息中的occur11和第二组共生信息中的occur21具有同一文本标识1391,说明occur11和occur21出自同一篇文本。提取出occur11和occur21,occur11携带的共生信息为(2,0,5),说明“演员甲”在文本标识为1391的文本中出现过两次,位置分别为0和5;occur21携带的共生信息为(2,2,6),说明“演员乙”在文本标识为1391的文本中出现过两次,位置分别为2和6。比较occur11和occur21中出现的位置和次数,两者的次数相等,而出现的位置的距离都不超过门限2,说明在文本标识为1391的文本中“演员甲”和“演员乙”这两个词都是紧随着出现的,非常符合用户搜索的意图,因此将文本标识1391输出,这个文本标识为1391的文本就是用户搜索的目标。本申请并不限于以上示例的内容,上述数字、格式和文档内容并不限定本申请的保护范围。
需要说明的是,如果用户输入的搜索词分词后为三个,则会找到三组共生信息,如果在三组共生信息中分别找到一个共生信息,三个共生信息具有同一文本标识,在进行出现的位置的距离以及出现的次数比对时,需要两两之间成对地比对。
实施例2
本实施例的装置是在实施例1的基础下,实现索引表维护与检索的装置。图4为本申请实施例的装置结构图,用于描述索引表维护装置,包括:
分词配置模块110,用于为收集的文本分配文本标识,并对所述文本进行分词处理;
所收集的文档包括多个域,每个域包含有一文本,本实施例的方法所处理的对象是每个域的文本,对任一域的文本进行分词处理并为每个分词在该域的文本内生成共生信息。
文本标识标明的就是这个域的标识,这样对于属于同一个文档的不同域的文本标识是不同的,在后续步骤进行检索时会根据用户输入的搜索词在属于同一个文本标识的共生信息中进行检索,因此最终检索到的结果是与文本标识对应的文本。当然文本标识也可以是整个文档的标识,这样属于同一个文档的不同域的文本标识是相同的,在后续步骤进行检索时会根据用户输入的搜索词在属于同一个文本标识的共生信息中进行检索,因此最终检索到的结果是与文本标识对应的文档。
所述文本为一文档中任意域内的文本和/或所述文本为一文档中所有域内的文本,所述域包括:标题、正文、评价等等,所得到的分词包括字和/或词。
统计存储模块120,与分词配置模块110耦接,用于统计所述文本处理后得到的各分词在所述文本内出现的次数以及出现的位置,并依据各分词在所述文本内出现的次数以及出现的位置形成所述文本内各分词的共生信息进行存储;
索引更新模块130,与分词配置模块110、统计存储模块120耦接,用于将所述文本标识绑定在所述文本内各分词的共生信息中,将绑定处理后的各分词的共生信息与索引表中的相应分词建立对应关系从而更新所述索引表150。索引表150为倒排索引表。
生成共生信息时,统计存储模块120在所述文本内任一分词的共生信息中,以增序方式存储所述任一分词在所述文本内出现的位置;还对所述文本处理后得到的依序排列的各分词,以各分词的序数标识各分词在所述文本内出现的位置。
存储共生信息时,统计存储模块120以内存区块的方式对各分词的共生信息进行存储,一个内存区块存储一个或多个文本内各分词的共生信息,属于同一个文本的所有分词的共生信息被分配至同一个内存区块,每个内存区块内待存储的各分词的共生信息由当前可用的最高地址开始进行存储;且在每个内存区块内设置有时间戳,所述时间戳记录每个内存区块内最近一次的存储时间;以单向环形链表组织多个内存区块,以头指针和尾指针分别标识起始内存区块和结束内存区块,从头指针到尾指针的方向上,各内存区块的时间戳所显示的存储时间距当前时间越来越远。
索引更新模块130采用双向环形链表建立所述索引表150,所述索引表150中每个节点对应一分词并存储与所述分词对应的共生信息;对于绑定处理后的各分词的共生信息,根据所述各分词中的每一个,在所述索引表150的节点上进行遍历,在命中的节点上添加绑定处理后的对应分词的共生信息;当在所述索引表150的节点上遍历后存在没有命中的分词时,在所述索引表150中的空白节点上创建所述没有命中的分词,并在所述空白节点上存储经绑定处理后的所述没有命中的分词的共生信息,其中,在所述索引表150中选择当前可用的最高地址的空白节点进行存储。
根据所述各分词中的每一个在所述索引表150的节点上进行遍历时,索引更新模块130优先查找所述节点的最高地址,所述节点的最高地址设置有分词指示位,用于指示所述节点所存储的分词,其中,当一节点无法存储一分词的所有共生信息时,由多个节点共同存储所述分词的共生信息,所述多个节点的分词指示位均指示所述分词。
将共生信息存储在节点内时,实质上是将共生信息存储在内存区块中的地址存储在节点内,索引更新模块130对绑定处理后的各分词的共生信息由所述偏移量开始向所述起始地址进行存储,相对于所述起始地址的偏移量用于对每个节点内的可用存储空间进行标识,所述可用的存储空间为所述偏移量到所述起始地址,每个节点内的总存储空间为预先配置,所述总存储空间为起始地址和结束地址之间的部分。
另外,索引更新模块130周期性对所述索引表150中的所有节点的有效性进行查询,当节点内存储的绑定处理后的所有分词的共生信息失效时,在所述索引表中屏蔽所述节点;当所述节点被屏蔽的时长超过一预设门限,清空所述节点,保留所述节点的内存空间。
图5为本申请实施例的又一装置结构图,用于描述根据索引表检索的装置,在图4所示的装置的基础上,还包括:
检索模块140,与索引更新模块130所更新维护的索引表150相耦接,用于识别用户输入的搜索词并对所述搜索词进行分词,根据分词处理所得到的多个分词中的每一个分别在所述索引表150中进行遍历,获得命中的多个节点;针对命中的每一个节点,分别获取所述节点内所存储的所有共生信息形成一组共生信息,从而得到与所述命中的节点数对应的多组共生信息;由所述多组共生信息中提取出具有同一文本标识的共生信息,对于具有同一文本标识的共生信息,成对地比较所述同一文本标识的共生信息中对应分词在文本中出现的位置的距离以及出现的次数,当所述距离小于或等于一第一门限且所述次数小于或等于一第二门限时,将所述同一文本标识的共生信息中的文本标识进行输出。
本实施例的分词配置模块110、统计存储模块120、索引更新模块130、检索模块140和索引表150的连接关系和模块功能,与实施例1之间存在对应关系,因此本实施例不再赘述,不足之处请参见实施例1。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。

Claims (14)

1.一种基于分词更新索引表的方法,其特征在于,包括:
为收集的文本分配文本标识,并对所述文本进行分词处理;
统计所述文本处理后得到的各分词在所述文本内出现的次数以及出现的位置,并依据各分词在所述文本内出现的次数以及出现的位置形成所述文本内各分词的共生信息进行存储;
将所述文本标识绑定在所述文本内各分词的共生信息中,将绑定处理后的各分词的共生信息与索引表中的相应分词建立对应关系从而更新所述索引表。
2.根据权利要求1所述的方法,其特征在于,统计所述文本处理后得到的各分词在所述文本内出现的位置,进一步包括:
对所述文本处理后得到的依序排列的各分词,以各分词的序数标识各分词在所述文本内出现的位置。
3.根据权利要求1所述的方法,其特征在于,依据各分词在所述文本内出现的次数以及出现的位置形成所述文本内各分词的共生信息进行存储,进一步包括:
以内存区块的方式对各分词的共生信息进行存储,一个内存区块存储一个或多个文本内各分词的共生信息,属于同一个文本的所有分词的共生信息被分配至同一个内存区块,每个内存区块内待存储的各分词的共生信息由当前可用的最高地址开始进行存储。
4.根据权利要求3所述的方法,其特征在于,
在每个内存区块内设置有时间戳,所述时间戳记录每个内存区块内最近一次的存储时间;
以单向环形链表组织多个内存区块,以头指针和尾指针分别标识起始内存区块和结束内存区块,从头指针到尾指针的方向上,各内存区块的时间戳所显示的存储时间距当前时间越来越远。
5.根据权利要求1所述的方法,其特征在于,将绑定处理后的各分词的共生信息与索引表中的相应分词建立对应关系从而更新所述索引表,进一步包括:
采用双向环形链表建立所述索引表,所述索引表中每个节点对应一分词并存储与所述分词对应的共生信息;
对于绑定处理后的各分词的共生信息,根据所述各分词中的每一个,在所述索引表的节点上进行遍历,当命中某一分词时,在命中的所述分词对应的节点上添加绑定处理后的对应分词的共生信息,或,当没有命中的分词时,在所述索引表中的空白节点上创建所述没有命中的分词,并在所述空白节点上存储经绑定处理后的所述没有命中的分词的共生信息。
6.根据权利要求1至5任一项所述的方法,其特征在于,
周期性对所述索引表中的所有节点的有效性进行查询,当节点内存储的绑定处理后的所有分词的共生信息失效时,在所述索引表中屏蔽所述节点;
当所述节点被屏蔽的时长超过一预设门限,清空所述节点,保留所述节点的内存空间。
7.一种基于索引表进行检索的方法,其特征在于,包括:
识别用户输入的搜索词并对所述搜索词进行分词,根据分词处理所得到的多个分词中的每一个分别在索引表中进行遍历,获得命中的分词对应的多个节点,其中,所述索引表的更新采用如权利要求1-6中任一项所述基于分词更新索引表的方法;
针对命中的每一个节点,分别获取所述节点内所存储的所有共生信息形成一组共生信息,从而得到与命中的节点对应数量的多组共生信息;
由所述多组共生信息中提取出具有同一文本标识的共生信息,对于具有同一文本标识的共生信息,成对地比较所述同一文本标识的共生信息中对应分词在文本中出现的位置以及出现的次数,当所述对应分词在文本中出现的位置之间的距离小于或等于一第一门限且所述次数小于或等于一第二门限时,将所述同一文本标识的共生信息中的文本标识进行输出。
8.一种基于分词更新索引表的装置,其特征在于,包括:
分词配置模块,用于为收集的文本分配文本标识,并对所述文本进行分词处理;
统计存储模块,用于统计所述文本处理后得到的各分词在所述文本内出现的次数以及出现的位置,并依据各分词在所述文本内出现的次数以及出现的位置形成所述文本内各分词的共生信息进行存储;
索引更新模块,用于将所述文本标识绑定在所述文本内各分词的共生信息中,将绑定处理后的各分词的共生信息与索引表中的相应分词建立对应关系从而更新所述索引表。
9.根据权利要求8所述的装置,其特征在于,
所述统计存储模块,进一步用于在所述文本内任一分词的共生信息中,以增序方式存储所述任一分词在所述文本内出现的位置。
10.根据权利要求8所述的装置,其特征在于,
所述统计存储模块,进一步用于以内存区块的方式对各分词的共生信息进行存储,一个内存区块存储一个或多个文本内各分词的共生信息,属于同一个文本的所有分词的共生信息被分配至同一个内存区块,每个内存区块内待存储的各分词的共生信息由当前可用的最高地址开始进行存储。
11.根据权利要求10所述的装置,其特征在于,
所述统计存储模块,还用于在每个内存区块内设置有时间戳,所述时间戳记录每个内存区块内最近一次的存储时间,以单向环形链表组织多个内存区块,以头指针和尾指针分别标识起始内存区块和结束内存区块,从头指针到尾指针的方向上,各内存区块的时间戳所显示的存储时间距当前时间越来越远。
12.根据权利要求8所述的装置,其特征在于,
所述索引更新模块,进一步采用双向环形链表建立所述索引表,所述索引表中每个节点对应一分词并存储与所述分词对应的共生信息,对于绑定处理后的各分词的共生信息,根据所述各分词中的每一个,在所述索引表的节点上进行遍历,当命中某一分词时,在命中的所述分词对应的节点上添加绑定处理后的对应分词的共生信息,或,当没有命中的分词时,在所述索引表中的空白节点上创建所述没有命中的分词,并在所述空白节点上存储经绑定处理后的所述没有命中的分词的共生信息。
13.根据权利要求12所述的装置,其特征在于,
所述索引更新模块,进一步用于周期性对所述索引表中的所有节点的有效性进行查询,当节点内存储的绑定处理后的所有分词的共生信息失效时,在所述索引表中屏蔽所述节点;当所述节点被屏蔽的时长超过一预设门限,清空所述节点,保留所述节点的内存空间。
14.一种基于索引表进行检索的装置,其特征在于,包括:相耦接的索引表更新设备及检索模块;
所述索引表更新设备包含如权利要求8-13中任一项所述的基于分词更新索引表的装置;
所述检索模块,用于识别用户输入的搜索词并对所述搜索词进行分词,根据分词处理所得到的多个分词中的每一个分别在所述索引表中进行遍历,获得命中的多个节点;针对命中的每一个节点,分别获取所述节点内所存储的所有共生信息形成一组共生信息,从而得到与所述命中的节点数对应的多组共生信息;由所述多组共生信息中提取出具有同一文本标识的共生信息,对于具有同一文本标识的共生信息,成对地比较所述同一文本标识的共生信息中对应分词在文本中出现的位置以及出现的次数,当所述对应分词在文本中出现的位置之间的距离小于或等于一第一门限且所述次数小于或等于一第二门限时,将所述同一文本标识的共生信息中的文本标识进行输出。
CN201410806400.1A 2014-12-19 2014-12-19 更新索引表的方法及装置、基于索引表检索的方法及装置 Pending CN104572879A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410806400.1A CN104572879A (zh) 2014-12-19 2014-12-19 更新索引表的方法及装置、基于索引表检索的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410806400.1A CN104572879A (zh) 2014-12-19 2014-12-19 更新索引表的方法及装置、基于索引表检索的方法及装置

Publications (1)

Publication Number Publication Date
CN104572879A true CN104572879A (zh) 2015-04-29

Family

ID=53088941

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410806400.1A Pending CN104572879A (zh) 2014-12-19 2014-12-19 更新索引表的方法及装置、基于索引表检索的方法及装置

Country Status (1)

Country Link
CN (1) CN104572879A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783776A (zh) * 2016-08-26 2018-03-09 阿里巴巴集团控股有限公司 固件升级包的处理方法及装置、电子设备
CN112422668A (zh) * 2020-11-10 2021-02-26 北京百度网讯科技有限公司 用于网络社区的存储方法、装置、电子设备及可读介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023989A (zh) * 2009-09-23 2011-04-20 阿里巴巴集团控股有限公司 一种信息检索方法及其系统
CN102236719A (zh) * 2011-07-25 2011-11-09 西交利物浦大学 基于网页分类的网页搜索引擎及快速查找方法
US20130024459A1 (en) * 2011-07-20 2013-01-24 Microsoft Corporation Combining Full-Text Search and Queryable Fields in the Same Data Structure
CN103064847A (zh) * 2011-10-20 2013-04-24 北京中搜网络技术股份有限公司 索引装置、索引方法、检索装置、检索方法和检索系统
CN103186622A (zh) * 2011-12-30 2013-07-03 北大方正集团有限公司 一种全文检索系统中索引信息的更新方法以及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023989A (zh) * 2009-09-23 2011-04-20 阿里巴巴集团控股有限公司 一种信息检索方法及其系统
US20130024459A1 (en) * 2011-07-20 2013-01-24 Microsoft Corporation Combining Full-Text Search and Queryable Fields in the Same Data Structure
CN102236719A (zh) * 2011-07-25 2011-11-09 西交利物浦大学 基于网页分类的网页搜索引擎及快速查找方法
CN103064847A (zh) * 2011-10-20 2013-04-24 北京中搜网络技术股份有限公司 索引装置、索引方法、检索装置、检索方法和检索系统
CN103186622A (zh) * 2011-12-30 2013-07-03 北大方正集团有限公司 一种全文检索系统中索引信息的更新方法以及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783776A (zh) * 2016-08-26 2018-03-09 阿里巴巴集团控股有限公司 固件升级包的处理方法及装置、电子设备
CN107783776B (zh) * 2016-08-26 2021-10-15 斑马智行网络(香港)有限公司 固件升级包的处理方法及装置、电子设备
CN112422668A (zh) * 2020-11-10 2021-02-26 北京百度网讯科技有限公司 用于网络社区的存储方法、装置、电子设备及可读介质
CN112422668B (zh) * 2020-11-10 2023-04-07 北京百度网讯科技有限公司 用于网络社区的存储方法、装置、电子设备及可读介质

Similar Documents

Publication Publication Date Title
CN102164186B (zh) 一种实现云搜索服务的方法及系统
CN102541875B (zh) 有向无环图的关系型节点数据的存取方法、装置及系统
CN104090889B (zh) 数据处理方法及系统
CN103678494A (zh) 客户端同步服务端数据的方法及装置
CN104572871A (zh) 基于索引表检索的方法及装置
CN102402605A (zh) 用于搜索引擎索引的混合分布模型
CN104769585A (zh) 递归地遍历因特网和其他源以识别、收集、管理、评判和鉴定企业身份及相关数据的系统和方法
CN102541529A (zh) 一种查询页面生成装置和方法
CN109308300B (zh) 一种逻辑运算的处理方法、装置、转换插件及存储介质
CN103686244A (zh) 视频数据的管理方法及其系统
CN104077385A (zh) 一种文件的分类及检索方法
CN103473076A (zh) 一种代码版本的发布方法及系统
CN103186622A (zh) 一种全文检索系统中索引信息的更新方法以及装置
CN110807028B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN104469832A (zh) 移动通信网络故障分析定位辅助系统
CN107783974B (zh) 数据处理系统及方法
CN111324604A (zh) 数据库表的处理方法、装置、电子设备及存储介质
CN110222074A (zh) 索引查找方法、查找装置、电子设备及存储介质
CN108874930A (zh) 文件属性信息统计方法、装置、系统、设备及存储介质
CN108241709B (zh) 一种数据集成方法、装置和系统
CN104572879A (zh) 更新索引表的方法及装置、基于索引表检索的方法及装置
CN103207872A (zh) 一种实时索引方法和服务器
CN112307318A (zh) 一种内容发布方法、系统及装置
CN103778219A (zh) 一种基于HBase的更新增量索引的方法
CN107291938A (zh) 订单查询系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
AD01 Patent right deemed abandoned

Effective date of abandoning: 20181123