专利名称:倒排索引建立方法
技术领域:
本发明涉及信息检索领域,特别涉及一种倒排索引建立方法。
背景技术:
随着计算机、互联网的发展,人类的知识越来越多地以数字化形式存储。如何在海 量的数字化文本中,快速、准确的检索人们想要的知识成为急迫的需求。1945年,Varmevar
Bush的论文《就像我们可能会想的......》第一次提出了设计自动的、在大规模的存储数
据中进行查找的机器的构想。这被认为是现代信息检索技术的开山之作。进入50年代后, 研究者们开始为逐步的实现这些设想而努力。50年代中期,在利用电脑对文本数据进行检 索的研究上,研究者取得了一些成果。其中最有代表性的是Luhn在IBM公司的工作(请见 参考文献 1“H. P. Luhn,“A statistical approach tomechanized encoding and searching of literary information”,IBM Journal ofResearch and Development, vol. 1(4), PP. 309-317,1957”),他提出了利用词对文档构建索引并利用检索使用的关键词与文档中 词的匹配程度进行检索的方法,这种方法就是目前常用的倒排索引技术的雏形。所谓的倒排索引(Inverted index)也常被称为反向索引、置入档案或反向档案, 是一种常用的索引方法,它被用来存储在全文搜索下某个单词在一个文档或者一组文档中 的存储位置的映射。它是文档检索系统中最常用的数据结构。在现有技术中一种已知的实 现方式中,倒排索引可以被看成一个链表数组,每个链表的表头包含关键词,其后续单元则 包括所有包含这个关键词的文档标号以及一些其他信息。这些信息可以是文档中该词的频 率,也可以是文档中该词的位置等信息。这样在检索时可以直接利用各个链表表头的关键 词来查找包含这些关键词的文档,而无需对所有的文档逐个进行基于关键词的检索,有利 于提高检索的效率。Google等知名的搜索引擎公司多数都采用了倒排索引方法来实现信息 的检索。现有技术中,倒排索引的建立过程通常包含以下几个步骤步骤1)、文档解析。将不同的文档存储格式转换为统一的字符串形式。现在的文 档格式特别多,如PDF格式、HTML格式、TXT格式、DOC格式等,文档解析步骤的任务是读取 文档文件,转换为统一的字符串格式。步骤2)、关键词提取。这个步骤主要完成包括中文分词、去除停用词、大小写转换、 时态还原等操作。步骤3)、建立、存储倒排索引。将关键词、文章号、关键词的出现位置加入到前面所 述的倒排索引数据结构中,将倒排索引数据结构存储到数据库或文件等持久化设备中。现有技术中的倒排索引为根据词找到文档提供了快速检索途径,但是它的匹配过 程是精确匹配,只有包含检索词的文档才能被搜索到,这在很多场合往往是不够的。例如, 在企业和政府部门的文本信息搜索应用中,经常会有类似这样的需求输入某个人的姓名, 不仅要找到包含该人名的所有文档,还希望知道和这个人相关的电话号码、邮箱等信息。显 然,在搜索引擎上输入“电话号码”这个词,只能找到含有“电话号码”这个词的所有文档,而找不到只含有用数字表示的电话号码却没出现“电话号码”这个词的文档。本领域技术人员虽然已经认识到了倒排索引技术所存在的上述缺陷,但所提出的 解决方案通常具有实现效率很低的缺陷。如现有技术中对前述问题的一种典型解决方法 是找到包含该人名的所有文档后,再通过信息抽取系统对搜索到的文档的全文进行解析, 抽取出所需的电话号码、邮箱等。这个方法最大的问题是每次搜索都要再对被搜索到的文 档进行一次信息抽取,当文档数量巨大,搜索次数很多时,时间开销显然让人无法接受。
发明内容
本发明的目的是克服现有技术无法通过倒排索引方法直接查找某一类型数据的 缺陷,从而提供一种新的倒排索引创建方法。为了实现上述目的,本发明提供了一种倒排索引建立方法,所述倒排索引包括抽 取结果表,所述抽取结果表包括文档号以及与该文档号相对应的抽取结果记录,所述抽取 结果记录包括有类型、内容以及位置信息项;该方法包括步骤1)、对由字符串格式表示的文档做分词操作,从所述分词操作结果中取出一 个词;步骤2)、判断所取出的词是否属于某一类型的数据,如果属于,则执行下一步,否 则,执行步骤4);步骤3)、将所提取出来的词的内容、在所在文档中的位置以及判断该词是否属于 某一类型的数据时所采用的检测方法分别填入所述抽取结果记录中的内容、位置以及类型 信息项,创建抽取结果表,然后执行下一步;步骤4)、为所取出的词建立通用的倒排索引表。上述技术方案中,在所述的步骤2)中,采用正则表达式检测所取出的词是否属于 某一类型的数据。上述技术方案中,所述的某一类型的数据包括移动电话号码、固定电话号码、身份 证号码、电子邮箱地址中的一种。上述技术方案中,在所述的步骤2)中,采用命名实体识别的方法检测所取出的词 是否属于某一类型的数据;其中,所述命名实体识别的方法包括基于规则的方法、基于统计 的方法、基于词库的方法中的一种。上述技术方案中,所述的某一类型的数据包括人名、公司名、地址中的一种。本发明还提供了一种利用所建立的倒排索引实现搜索的方法,包括步骤1)、利用关键词在倒排索引表中做查找,得到包含有该关键词的文档的文档 号;步骤2)、根据所述文档号从抽取结果表中找出相关文档的抽取结果并显示。本发明的优点在于本发明的倒排索引创建方法所创建的倒排索引能够查找类型数据,避免了现有技 术在查找类型数据时所花费的额外开销。
图1为本发明的倒排索引建立方法的流程图2为本发明中所涉及的抽取结果表的示意图;图3为利用本发明所创建的倒排索引实现搜索的方法的流程图。
具体实施例方式下面结合附图和具体实施方式
对本发明加以说明。在本发明中,除了要从文档中提取关键词,并为关键词建立倒排索引外,还能够根 据需要从文档中抽取出相关信息并存储。使得用户在搜索时,通过关键词可以直接找到抽 取出来的相关信息,无需再对原始文档进行解析,从而提高搜索时的时间效率。下面以通讯 信息为例,对建立包含有通讯信息的倒排索引的过程加以说明。与现有技术相同,在建立倒排索引的过程中,首先要解析文档,将不同的文档存储 格式转换为统一的字符串形式。如将PDF格式、HTML格式、TXT格式、DOC格式中的任意一 种转换为统一的字符串格式。该步骤中的转换操作与现有技术并无二致,因此不在此处做 重复说明。在将文档转换为统一的字符串格式后,下面就要从文档中提取关键词。与现有技 术中所涉及的关键词的概念不同的是,在本发明中,关键词这一概念所包含的范围更为广 泛。本发明中的关键词除了现有技术中常见的特定字符数据外(如若干个确定的汉字或字 母),还可以包括某种类型的数据,如固定电话号码、移动电话号码、电子邮箱、身份证号码 等。对这些内容不同但类型相同的数据的提取采用现有技术中的文本匹配的方法已经无法 实现,因此需要采用一些特殊的技术手段。同种类型的数据一般来说都有一些共同的特点,例如,如果都是移动电话号码,那 么这些数据应该都是由数字组成,并且具有相同的位数,又如,如果都是电子邮箱,那么在 数据中应当包含@字符。因此,在本实施例中可以设定一些特殊字符来做初步提取,然后 再通过能够对规则加以描述的正则表达式来实现详细的提取过程。基于上述原因,参考图 1,本发明在得到用字符串格式描述的文档后,首先对该文档做分词操作,从分词后的结果 中取出一个词,然后判断所取出的词中是否包含有特殊字符,如果有特殊字符,那么就可以 采用与该特殊字符相对应的正则表达式做匹配操作,将成功匹配的结果提取出来,如果不 含有特殊字符或者正则表达式匹配不成功,则按照现有技术中的关键词提取方法提取关键 词。下面以移动电话号码为例,对上述过程加以说明。由于不同用户的移动电话号码的数 字组合存在差异,因此,除非已经知道移动电话号码的具体内容,否则很难依靠现有的关键 词提取方法从文档中找出所有属于移动电话号码类型的数据。在本实施例中,采用正则表 达式来实现对移动电话号码类型数据的提取。例如,中国大陆地区的移动电话号码的正则 表达式如下(15 [13567890] \d {8} 13 [13567890] \d {8})。那么在关键词提取过程中,在分 词后,判断从分词结果中所取出的一个词内是否有数字,如果有数字,就采用上述的正则表 达式对该词做匹配操作,将成功匹配的结果提取出来。上文以从文档中提取移动电话号码类型的数据为例,对关键词提取的有关操作做 了说明。在实际应用中,还可以以同样的方法实现对包括固定电话号码、身份证号码、电子 邮箱在内的多种类型的数据的提取,只是在提取这些类型的数据的时候,对该类型数据的 识别方法可能会有一定的变动(如所采用的特殊字符的具体内容会有所不同),另外,所采 用的正则表达式也会有所不同。下面给出了固定电话号码、移动电话号码、电子邮箱、身份证号码等类型的数据各自所对应的正则表达式。本领域技术人员应当了解,根据实际需要
还可以提取其它类型的数据,而其它类型数据也会有各自对应的正则表达式。
权利要求
1.一种倒排索引建立方法,所述倒排索引包括抽取结果表,所述抽取结果表包括文档 号以及与该文档号相对应的抽取结果记录,所述抽取结果记录包括有类型、内容以及位置 信息项;该方法包括步骤1)、对由字符串格式表示的文档做分词操作,从所述分词操作结果中取出一个词;步骤2)、判断所取出的词是否属于某一类型的数据,如果属于,则执行下一步,否则,执 行步骤4);步骤3)、将所提取出来的词的内容、在所在文档中的位置以及判断该词是否属于某一 类型的数据时所采用的检测方法分别填入所述抽取结果记录中的内容、位置以及类型信息 项,创建抽取结果表,然后执行下一步;步骤4)、为所取出的词建立通用的倒排索引表。
2.根据权利要求1所述的倒排索引建立方法,其特征在于,在所述的步骤2)中,采用正 则表达式检测所取出的词是否属于某一类型的数据。
3.根据权利要求2所述的倒排索引建立方法,其特征在于,所述的某一类型的数据包 括移动电话号码、固定电话号码、身份证号码、电子邮箱地址中的一种。
4.根据权利要求1所述的倒排索引建立方法,其特征在于,在所述的步骤2)中,采用命 名实体识别的方法检测所取出的词是否属于某一类型的数据;其中,所述命名实体识别的 方法包括基于规则的方法、基于统计的方法、基于词库的方法中的一种。
5.根据权利要求4所述的倒排索引建立方法,其特征在于,所述的某一类型的数据包 括人名、公司名、地址中的一种。
6.一种利用权利要求1-5之一所建立的倒排索引实现搜索的方法,包括步骤1)、利用关键词在倒排索引表中做查找,得到包含有该关键词的文档的文档号; 步骤2)、根据所述文档号从抽取结果表中找出相关文档的抽取结果并显示。
全文摘要
本发明提供一种倒排索引建立方法,所述倒排索引包括抽取结果表,所述抽取结果表包括文档号以及与该文档号相对应的抽取结果记录,所述抽取结果记录包括有类型、内容以及位置信息项;该方法包括对由字符串格式表示的文档做分词操作,从所述分词操作结果中取出一个词;判断所取出的词是否属于某一类型的数据,如果属于,则执行下一步,否则,为所取出的词建立通用的倒排索引表后结束操作;将所提取出来的词的内容、在所在文档中的位置以及判断该词是否属于某一类型的数据时所采用的检测方法分别填入所述抽取结果记录中的内容、位置以及类型信息项,创建抽取结果表,然后为所取出的词建立通用的倒排索引表。
文档编号G06F17/30GK102110123SQ20091026070
公开日2011年6月29日 申请日期2009年12月29日 优先权日2009年12月29日
发明者单大甫, 吴泉源, 周斌, 崔凯, 李爱平, 杨树强, 梁政, 蒋子海, 贾焰, 邹鹏, 韩伟红, 韩毅, 黄九鸣 申请人:中国人民解放军国防科学技术大学