著录项信息
专利名称 | 倒排索引建立方法 |
申请号 | CN200910260705.6 | 申请日期 | 2009-12-29 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2011-06-29 | 公开/公告号 | CN102110123A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 中国人民解放军国防科学技术大学 | 申请人地址 | 湖南省长沙市德雅路国防科学技术大学
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中国人民解放军国防科学技术大学 | 当前权利人 | 中国人民解放军国防科学技术大学 |
发明人 | 黄九鸣;周斌;贾焰;邹鹏;吴泉源;杨树强;韩伟红;李爱平;梁政;单大甫;蒋子海;崔凯;韩毅 |
代理机构 | 北京泛华伟业知识产权代理有限公司 | 代理人 | 王勇 |
摘要
本发明提供一种倒排索引建立方法,所述倒排索引包括抽取结果表,所述抽取结果表包括文档号以及与该文档号相对应的抽取结果记录,所述抽取结果记录包括有类型、内容以及位置信息项;该方法包括:对由字符串格式表示的文档做分词操作,从所述分词操作结果中取出一个词;判断所取出的词是否属于某一类型的数据,如果属于,则执行下一步,否则,为所取出的词建立通用的倒排索引表后结束操作;将所提取出来的词的内容、在所在文档中的位置以及判断该词是否属于某一类型的数据时所采用的检测方法分别填入所述抽取结果记录中的内容、位置以及类型信息项,创建抽取结果表,然后为所取出的词建立通用的倒排索引表。
1.一种倒排索引建立方法,所述倒排索引包括抽取结果表,所述抽取结果表包括文档号以及与该文档号相对应的抽取结果记录,所述抽取结果记录包括有类型、内容以及位置信息项;该方法包括:
步骤1)、对由字符串格式表示的文档做分词操作,从所述分词操作结果中取出一个词;
步骤2)、判断所取出的词是否属于某一类型的数据,如果属于,则执行下一步,否则,执行步骤4);
步骤3)、将所提取出来的词的内容、在所在文档中的位置以及判断该词是否属于某一类型的数据时所采用的检测方法分别填入所述抽取结果记录中的内容、位置以及类型信息项,创建抽取结果表,然后执行下一步;
步骤4)、使用所取出的词以及包含该词的文档的文档号为所取出的词建立通用的倒排索引表。
2.根据权利要求1所述的倒排索引建立方法,其特征在于,在所述的步骤2)中,采用正则表达式检测所取出的词是否属于某一类型的数据。
3.根据权利要求2所述的倒排索引建立方法,其特征在于,所述的某一类型的数据包括移动电话号码、固定电话号码、身份证号码、电子邮箱地址中的一种。
4.根据权利要求1所述的倒排索引建立方法,其特征在于,在所述的步骤2)中,采用命名实体识别的方法检测所取出的词是否属于某一类型的数据;其中,所述命名实体识别的方法包括基于规则的方法、基于统计的方法、基于词库的方法中的一种。
5.根据权利要求4所述的倒排索引建立方法,其特征在于,所述的某一类型的数据包括人名、公司名、地址中的一种。
6.一种利用权利要求1-5之一所建立的倒排索引实现搜索的方法,包括:
步骤1)、利用关键词在通用的倒排索引表中做查找,得到包含有该关键词的文档的文档号;
步骤2)、根据所述文档号从抽取结果表中找出相关文档的抽取结果并显示。
倒排索引建立方法\n技术领域\n[0001] 本发明涉及信息检索领域,特别涉及一种倒排索引建立方法。\n背景技术\n[0002] 随着计算机、互联网的发展,人类的知识越来越多地以数字化形式存储。如何在海量的数字化文本中,快速、准确的检索人们想要的知识成为急迫的需求。1945年,Vannevar Bush的论文《就像我们可能会想的......》第一次提出了设计自动的、在大规模的存储数据中进行查找的机器的构想。这被认为是现代信息检索技术的开山之作。进入50年代后,研究者们开始为逐步的实现这些设想而努力。50年代中期,在利用电脑对文本数据进行检索的研究上,研究者取得了一些成果。其中最有代表性的是Luhn在IBM公司的工作(请见参考文献1“H.P.Luhn,“A statistical approach to mechanized encoding and searching of literary information”,IBM Journal of Research and Development,vol.1(4),pp.309–317,1957”),他提出了利用词对文档构建索引并利用检索使用的关键词与文档中词的匹配程度进行检索的方法,这种方法就是目前常用的倒排索引技术的雏形。\n[0003] 所谓的倒排索引(Inverted index)也常被称为反向索引、置入档案或反向档案,是一种常用的索引方法,它被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。在现有技术中一种已知的实现方式中,倒排索引可以被看成一个链表数组,每个链表的表头包含关键词,其后续单元则包括所有包含这个关键词的文档标号以及一些其他信息。这些信息可以是文档中该词的频率,也可以是文档中该词的位置等信息。这样在检索时可以直接利用各个链表表头的关键词来查找包含这些关键词的文档,而无需对所有的文档逐个进行基于关键词的检索,有利于提高检索的效率。Google等知名的搜索引擎公司多数都采用了倒排索引方法来实现信息的检索。\n[0004] 现有技术中,倒排索引的建立过程通常包含以下几个步骤:\n[0005] 步骤1)、文档解析。将不同的文档存储格式转换为统一的字符串形式。现在的文档格式特别多,如PDF格式、HTML格式、TXT格式、DOC格式等,文档解析步骤的任务是读取文档文件,转换为统一的字符串格式。\n[0006] 步骤2)、关键词提取。这个步骤主要完成包括中文分词、去除停用词、大小写转换、时态还原等操作。\n[0007] 步骤3)、建立、存储倒排索引。将关键词、文章号、关键词的出现位置加入到前面所述的倒排索引数据结构中,将倒排索引数据结构存储到数据库或文件等持久化设备中。\n[0008] 现有技术中的倒排索引为根据词找到文档提供了快速检索途径,但是它的匹配过程是精确匹配,只有包含检索词的文档才能被搜索到,这在很多场合往往是不够的。例如,在企业和政府部门的文本信息搜索应用中,经常会有类似这样的需求:输入某个人的姓名,不仅要找到包含该人名的所有文档,还希望知道和这个人相关的电话号码、邮箱等信息。显然,在搜索引擎上输入“电话号码”这个词,只能找到含有“电话号码”这个词的所有文档,而找不到只含有用数字表示的电话号码却没出现“电话号码”这个词的文档。\n[0009] 本领域技术人员虽然已经认识到了倒排索引技术所存在的上述缺陷,但所提出的解决方案通常具有实现效率很低的缺陷。如现有技术中对前述问题的一种典型解决方法是:找到包含该人名的所有文档后,再通过信息抽取系统对搜索到的文档的全文进行解析,抽取出所需的电话号码、邮箱等。这个方法最大的问题是每次搜索都要再对被搜索到的文档进行一次信息抽取,当文档数量巨大,搜索次数很多时,时间开销显然让人无法接受。\n发明内容\n[0010] 本发明的目的是克服现有技术无法通过倒排索引方法直接查找某一类型数据的缺陷,从而提供一种新的倒排索引创建方法。\n[0011] 为了实现上述目的,本发明提供了一种倒排索引建立方法,所述倒排索引包括抽取结果表,所述抽取结果表包括文档号以及与该文档号相对应的抽取结果记录,所述抽取结果记录包括有类型、内容以及位置信息项;该方法包括:\n[0012] 步骤1)、对由字符串格式表示的文档做分词操作,从所述分词操作结果中取出一个词;\n[0013] 步骤2)、判断所取出的词是否属于某一类型的数据,如果属于,则执行下一步,否则,执行步骤4);\n[0014] 步骤3)、将所提取出来的词的内容、在所在文档中的位置以及判断该词是否属于某一类型的数据时所采用的检测方法分别填入所述抽取结果记录中的内容、位置以及类型信息项,创建抽取结果表,然后执行下一步;\n[0015] 步骤4)、为所取出的词建立通用的倒排索引表。\n[0016] 上述技术方案中,在所述的步骤2)中,采用正则表达式检测所取出的词是否属于某一类型的数据。\n[0017] 上述技术方案中,所述的某一类型的数据包括移动电话号码、固定电话号码、身份证号码、电子邮箱地址中的一种。\n[0018] 上述技术方案中,在所述的步骤2)中,采用命名实体识别的方法检测所取出的词是否属于某一类型的数据;其中,所述命名实体识别的方法包括基于规则的方法、基于统计的方法、基于词库的方法中的一种。\n[0019] 上述技术方案中,所述的某一类型的数据包括人名、公司名、地址中的一种。\n[0020] 本发明还提供了一种利用所建立的倒排索引实现搜索的方法,包括:\n[0021] 步骤1)、利用关键词在通用的倒排索引表中做查找,得到包含有该关键词的文档的文档号;\n[0022] 步骤2)、根据所述文档号从抽取结果表中找出相关文档的抽取结果并显示。\n[0023] 本发明的优点在于:\n[0024] 本发明的倒排索引创建方法所创建的倒排索引能够查找类型数据,避免了现有技术在查找类型数据时所花费的额外开销。\n附图说明\n[0025] 图1为本发明的倒排索引建立方法的流程图;\n[0026] 图2为本发明中所涉及的抽取结果表的示意图;\n[0027] 图3为利用本发明所创建的倒排索引实现搜索的方法的流程图。\n具体实施方式\n[0028] 下面结合附图和具体实施方式对本发明加以说明。\n[0029] 在本发明中,除了要从文档中提取关键词,并为关键词建立倒排索引外,还能够根据需要从文档中抽取出相关信息并存储。使得用户在搜索时,通过关键词可以直接找到抽取出来的相关信息,无需再对原始文档进行解析,从而提高搜索时的时间效率。下面以通讯信息为例,对建立包含有通讯信息的倒排索引的过程加以说明。\n[0030] 与现有技术相同,在建立倒排索引的过程中,首先要解析文档,将不同的文档存储格式转换为统一的字符串形式。如将PDF格式、HTML格式、TXT格式、DOC格式中的任意一种转换为统一的字符串格式。该步骤中的转换操作与现有技术并无二致,因此不在此处做重复说明。\n[0031] 在将文档转换为统一的字符串格式后,下面就要从文档中提取关键词。与现有技术中所涉及的关键词的概念不同的是,在本发明中,关键词这一概念所包含的范围更为广泛。本发明中的关键词除了现有技术中常见的特定字符数据外(如若干个确定的汉字或字母),还可以包括某种类型的数据,如固定电话号码、移动电话号码、电子邮箱、身份证号码等。对这些内容不同但类型相同的数据的提取采用现有技术中的文本匹配的方法已经无法实现,因此需要采用一些特殊的技术手段。\n[0032] 同种类型的数据一般来说都有一些共同的特点,例如,如果都是移动电话号码,那么这些数据应该都是由数字组成,并且具有相同的位数,又如,如果都是电子邮箱,那么在数据中应当包含@字符。因此,在本实施例中可以设定一些特殊字符来做初步提取,然后再通过能够对规则加以描述的正则表达式来实现详细的提取过程。基于上述原因,参考图\n1,本发明在得到用字符串格式描述的文档后,首先对该文档做分词操作,从分词后的结果中取出一个词,然后判断所取出的词中是否包含有特殊字符,如果有特殊字符,那么就可以采用与该特殊字符相对应的正则表达式做匹配操作,将成功匹配的结果提取出来,如果不含有特殊字符或者正则表达式匹配不成功,则按照现有技术中的关键词提取方法提取关键词。下面以移动电话号码为例,对上述过程加以说明。由于不同用户的移动电话号码的数字组合存在差异,因此,除非已经知道移动电话号码的具体内容,否则很难依靠现有的关键词提取方法从文档中找出所有属于移动电话号码类型的数据。在本实施例中,采用正则表达式来实现对移动电话号码类型数据的提取。例如,中国大陆地区的移动电话号码的正则表达式如下:(15[13567890]\d{8}|13[13567890]\d{8})。那么在关键词提取过程中,在分词后,判断从分词结果中所取出的一个词内是否有数字,如果有数字,就采用上述的正则表达式对该词做匹配操作,将成功匹配的结果提取出来。\n[0033] 上文以从文档中提取移动电话号码类型的数据为例,对关键词提取的有关操作做了说明。在实际应用中,还可以以同样的方法实现对包括固定电话号码、身份证号码、电子邮箱在内的多种类型的数据的提取,只是在提取这些类型的数据的时候,对该类型数据的识别方法可能会有一定的变动(如所采用的特殊字符的具体内容会有所不同),另外,所采用的正则表达式也会有所不同。下面给出了固定电话号码、移动电话号码、电子邮箱、身份证号码等类型的数据各自所对应的正则表达式。本领域技术人员应当了解,根据实际需要还可以提取其它类型的数据,而其它类型数据也会有各自对应的正则表达式。\n[0034] \n序号 类型 正则表达式\n1 移动电话号码 (15[13567890]\d{8}|13[13567890]\d{8})\n2 固定电话号码 (\d{3}-\d{8}|\d{4}-\d{7})\n3 身份证号码 (\d{15}|\d{18})\n4 电子邮箱 (\w+([-+.]\\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)\n[0035] 表1\n[0036] 在完成关键词的提取后,下面接着建立倒排索引。在前面的说明中已经提到,文档中的某些词语需要通过正则表达式加以提取,并且提取所得到的数据通常属于某一数据类型,这些数据相互之间的内容并不完全相同。因此,在为这些由类型数据所组成的关键词建立倒排索引的过程中,除了要用到常规的倒排索引数据结构外,还要用到一个被称为抽取结果表的数据结构。如图2所示,在抽取结果表中存储了多篇文档的抽取结果。每个文档的抽取结果有多个,因此一个文档号对应有多条抽取结果记录,每条记录有“类型”和“内容”、“位置”三项信息;其中,“类型”指明了“内容”是用哪个正则表达式识别的,“内容”存储了抽取结果,“位置”存储了“内容”在文档中出现的位置。\n[0037] 继续参考图1,结合前面所提到的抽取结果表,对倒排索引的建立过程加以说明。\n在前文中已经提到,关键词包括用正则表达式提取出来的词语和用常规方法抽取出来的词语。对用正则表达式提取出来的词语,判断该词语是用哪个正则表达式提取出来的,从而确定该词语的类型,然后根据该词语所在的文档将该词语的类型、内容、位置信息依次填入到前述文档的抽取结果表中;最后再根据现有技术将提取出来的词语以及词语所在文档的文档号加入到常规的倒排索引中。对于用常规方法抽取出来的词语,则直接根据现有技术将该词语以及词语所在文档的文档号加入到常规的倒排索引中。\n[0038] 在建立上述的倒排索引后,就可以利用所建立的倒排索引实现搜索。如图3所示,在利用关键词完成传统的倒排索引查找后,得到了一批相关文档的文档号。如果要进一步得到文档中某种类型的数据,传统搜索系统一般是根据这些文档号查找原始文档,得到文件名及文档摘要后按一定规则排序展现。而在本发明中,可根据获取的文档号,在抽取结果表中快速查找到相关文档的所有抽取结果。这些抽取结果可按类型、文档两个维度进行多维展示。比如,搜索关键词“北京”,展现结果除了所有含有“北京”这个词的文档名称及文档摘要外,还可在每个文档的详细信息里列出在该文档出现过的所有手机号码、电子邮箱、固定电话号码、身份证号码。也可以将所有涉及到“北京”这个词的所有文档中出现过的手机号码、电子邮箱、固定电话号码、身份证号码按照类型分别列出。\n[0039] 从对上述搜索过程的说明可以看出,在由关键词查找文档,并由文档快速检索相关信息的过程中,最后所能快速检索到的信息与索引创建过程中保存在抽取结果表中的信息有关。如在上述的实施例中,利用正则表达式抽取出了固定电话号码、移动电话号码、电子邮箱、身份证号码信息并保存在抽取结果表中,那么就不可能在检索过程中由文档号直接通过查找抽取结果表得到关于家庭地址的信息。\n[0040] 在上述实施例中,采用了正则表达式来实现对某一类型的数据的抽取,但在其他实施例中还可以采用现有技术中的其他方法来实现对某一类型数据的抽取,如采用命名实体识别的方法对人名、公司名、地址等信息的抽取。命名实体识别的方法具体包括基于规则的方法、基于统计的方法、基于词库的方法等。在本发明中可优选基于规则的方法或基于词库的方法。当然,如果用命名实体识别的方法实现信息抽取时,抽取结果表中的类型项所记录的就是“内容”是用哪种命名实体识别方法识别的。\n[0041] 本发明的倒排索引创建方法所创建的倒排索引能够查找类型数据,避免了现有技术在查找类型数据时所花费的额外开销。\n[0042] 最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
法律信息
- 2017-02-22
未缴年费专利权终止
IPC(主分类): G06F 17/30
专利号: ZL 200910260705.6
申请日: 2009.12.29
授权公告日: 2014.02.05
- 2014-02-05
- 2012-05-09
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 200910260705.6
申请日: 2009.12.29
- 2011-06-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| | 暂无 |
2006-09-25
| | |
2
| |
2008-06-04
|
2007-11-13
| | |
3
| |
2004-06-09
|
2003-08-06
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |