CN108241713A - 一种基于多元切分的倒排索引检索方法 - Google Patents

一种基于多元切分的倒排索引检索方法 Download PDF

Info

Publication number
CN108241713A
CN108241713A CN201611227295.1A CN201611227295A CN108241713A CN 108241713 A CN108241713 A CN 108241713A CN 201611227295 A CN201611227295 A CN 201611227295A CN 108241713 A CN108241713 A CN 108241713A
Authority
CN
China
Prior art keywords
lemma
list
term
word
index
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.)
Granted
Application number
CN201611227295.1A
Other languages
English (en)
Other versions
CN108241713B (zh
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.)
NANJING FIBERHOME TELECOMMUNICATION TECHNOLOGIES Co.,Ltd.
Original Assignee
Nanjing Fiberhome Software Technology 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 Nanjing Fiberhome Software Technology Co Ltd filed Critical Nanjing Fiberhome Software Technology Co Ltd
Priority to CN201611227295.1A priority Critical patent/CN108241713B/zh
Publication of CN108241713A publication Critical patent/CN108241713A/zh
Application granted granted Critical
Publication of CN108241713B publication Critical patent/CN108241713B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3335Syntactic pre-processing, e.g. stopword elimination, stemming
    • 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
    • G06F16/316Indexing structures
    • G06F16/328Management therefor
    • 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/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/374Thesaurus

Landscapes

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

Abstract

本发明公开了一种基于多元切分的倒排索引检索方法,属于计算机技术领域,规避检索过程中的多分词距离运算,解决了多分词情况的检索速度慢的问题,省去了在倒排索引中对分词偏移的磁盘记录空间的占用。

Description

一种基于多元切分的倒排索引检索方法
技术领域
本发明属于计算机技术领域。
背景技术
在海量数据检索领域,要想获得较快的检索速度,通常采用倒排索引技术来实现。传统的倒排索引结构可以概括为:字典索引、字典、倒排表、分词偏移。在此基础上,倒排索引的检索过程可以大概描述为:
步骤F1:查找字典索引,确定分词在字典中的分段位置,如果找不到,查询结束;
步骤F2:查找字典,确定分词所在文章ID列表信息在倒排表中的位置,如果找不到,查询结束;
步骤F3:查找倒排表,获取分词所在文章ID列表,确定分词在文章中的偏移信息在分词偏移中的位置;
步骤F4:结合查询树、分词所在文章ID列表信息,计算出查询结果,如果没有,查询结束;
步骤F5:查找分词偏移,获取各个查询分词在结果文章中的偏移信息;
步骤F6:计算各个查询分词在结果中的偏移,过滤不符合偏移要求的结果;
从上面的检索过程可以看出,当检索过程执行到步骤F5时,已经可以获得查询结果了,后面的步骤F6和步骤F7只是对步骤F5获得的结果进行过滤。
这也就意味着,如果步骤F1到步骤F5过程中获得的查询结果足够准确,那么步骤F6到步骤F7的过程将可以省略,如此便可以有效的提高查询性能。
从整体查询性能角度出发,步骤F6需要读取每个结果中每个查询分词对应的偏移信息,这个过程将产生大量的磁盘随机读取,从而导致查询时间的增加。同样步骤F7需要计算每个结果中查询分词的偏移位置的合法性,这个过程也会消耗大量的CPU资源,从而增加查询时间。由此可见,在查询性能面前,步骤F6和步骤F7的优化是很有必要的。
发明内容
本发明的目的是提供一种基于多元切分的倒排索引检索方法,规避检索过程中的多分词距离运算,解决了多分词情况的检索速度慢的问题,省去了在倒排索引中对分词偏移的磁盘记录空间的占用。
为实现上述目的,本发明采用以下技术方案:
一种基于多元切分的倒排索引检索方法,包括如下步骤:
步骤1:建立索引系统,索引系统包括Hadoop云存储平台、索引客户端和文本客户端,索引客户端和文本客户端均通过互联网与Hadoop云存储平台连接;
步骤2:用户通过文本客户端上传数个文本数据,文本客户端将所有文本数据均通过互联网传送给Hadoop云存储平台,Hadoop云存储平台的MapReduce对每一个文本数据均设定一个数据ID,并将所有文本数据均存储到Hadoop云存储平台的HDFS中;
步骤3:MapReduce对任意一个文本数据执行清洗任务,并生成清洗后文本数据,清洗任务包括对该文本数据中的大写字母转换成小写字母和对该文本数据中的全角转换半角;
步骤4:MapReduce对清洗后文本数据执行多元分词,其步骤如下:
步骤A:设定分词的最小单位为一个词元,设定词元的个数最大为N,N为正整数,MapReduce创建词元序列,以便对所有词元进行排序;
步骤B:MapReduce尝试从文本中读取一个词元:如能读取,则将读取的词元加入词元序列,执行步骤C;如不能读取,则执行步骤D;
步骤C:判断词元序列中的词元个数是否等于N:是,则执行步骤D;否,则执行步骤B;
步骤D:判断词元序列中的词元个数是否等于0:是,则执行步骤H;否,则执行步骤E;
步骤E:MapReduce以词元序列的第一词元为基准,对词元序列中的所有词元执行一元分词、二元分词…N元分词;
步骤F:删除词元序列中的第一个词元,执行步骤B;
步骤H:对清洗后文本数据执行多元分词的任务结束,并根据多元分词的结果生成分词列表;
步骤5:MapReduce对分词列表执行去重任务,并生成去重分词列表,去重任务包括删除分词列表中重复的词元;
步骤6:重复执行步骤3到步骤5,对所有文本数据均生成相应的去重分词列表;
步骤7:创建倒排表,设定提取词为去重分词列表中的任意一个词元,设定一个提取词,将所有包含该提取词的文本数据的数据ID集合在一起组成一个ID集合,该提取词与该ID集合的映射表即为倒排表,MapReduce根据文本数据所对应的去重分词列表和数据ID构建倒排索引,其步骤如下:
步骤I:接收所有文本数据的数据ID和去重分词列表,创建倒排表;
步骤J:设定去重分词列表中的任意一个词元为提取词W,MapReduce对提取词W进行以下处理:首先在倒排表中查找提取词W,如果能查找到,则在倒排表中添加数据ID,该数据ID在倒排表中的位置为提取词W映射的ID集合;如果不能查到,则在倒排表中添加新ID集合,并将提取词W与所述新ID集合建立映射关系,将所述数据ID添加到所述新ID集合中;
步骤K:遍历去重分词列表,重复执行步骤J,直到去重分词列表中所有的词元均处理完;
步骤L:重复执行步骤I和步骤K,直到接收的所有文本数据均处理完,即倒排表创建完毕;
步骤M:MapReduce创建倒排文件,将倒排表中每个提取词映射的ID集合写入倒排文件;
步骤N:MapReduce创建字典文件,将倒排表中每个提取词及其对应的ID集合内容在倒排文件中的偏移和长度写入字典文件,并在字典文件中建立提取词列表;
步骤O:MapReduce对字典文件中的提取词列表,按照如下步骤构建字典索引:
步骤S1:设定提取词列表中的任意一个提取词为提取词Wn,n为正整数,n的最大值为提取词列表中所有提取词的个数,设定提取词Wn在字典文件中的偏移为偏移Pn,n为正整数,n的最大值为提取词列表中所有提取词的个数;
步骤S2:设定参数步长S,并预设步长S的值,步长S的值小于提取词列表中所有提取词的个数,设定参数m,m=S+n,n的初始值为1;
步骤S3:获取提取词Wm以及提取词Wm在字典文件中的偏移Pm,建立关系式<Wm,Pm>作为索引关系式;
步骤S4:重复执行步骤S2和步骤S3,直到m的值大于提取词列表中所有提取词的个数;
步骤S5:对提取词列表中所有提取词均建立索引关系式,即对所有提取词列表中所有提取词均构建字典索引;
步骤S6:将所有所述字典索引均写入字典索引文件;
步骤P:倒排索引构建结束;
步骤8:重复执行步骤2~步骤7,直到处理完用户输入的所有文本数据,并生成构建好的索引;
步骤9:通过所述构建好的索引执行各种索引查询,其步骤如下:
步骤Q:设定词元的个数最大为N,N为正整数,设定检索词中的词元数为X,X为正整数,用户通过索引客户端输入检索词,索引客户端将检索词均发送给Hadoop云存储平台,Hadoop云存储平台根据检索词和所述构建好的索引,将索引查询分为如下集中情况:
步骤S7:当检索词中的词元数X小于等于N时,MapReduce根据以下步骤进行检索:
步骤A1:搜索检索词在字典索引文件中的偏移位置Pi,i为整数,i小于N;
步骤A2;在字典索引文件中,从偏移位置Pi开始,向后搜索检索词,直到超过给定步长S或者搜索到检索词停止:如果能搜到检索词,则执行步骤A3;如果不能搜到检索词,结束检索,并返回无搜索结果;
步骤A3:从字典索引文件中获取检索词在倒排索引中的偏移和数据长度;
步骤A4:根据步骤A3中的偏移和长度读取倒排索引,获取对应的数据ID,并返回数据ID;
步骤S8:当检索词中的词元数X大于N时,MapReduce根据以下步骤进行检索:
步骤A5:设定检索词中的词元为Ci,1<=i<=X,遍历检索词的词元Ci,从第一个词元C1开始,提取长度为N的检索词作为提取词W1,提取词W1由C1…CN组成;
步骤A6:根据步骤A5中的提取规则,从下一个词元Ci开始,提取检索词作为提取词Wi;
步骤A7:循环执行步骤A6,直到剩余词元的个数不足N,则结束提取;
步骤A8:对每一个通过步骤A5~步骤A8所得到的提取词,根据步骤S7所述的方法进行检索操作,获取对应的数据ID;
步骤A9:对步骤A8中每个检索对应的数据ID执行交集运算;
步骤A10:结束检索,返回交集运算后的数据ID;
步骤S9:当输入的检索词需要进行多检索词的与或非检索时,MapReduce根据以下步骤进行检索:
步骤A11:分析检索词,根据后缀表达式原则,生成查询树;
步骤A12:遍历查询树,按照步骤S8中所述的方法,将词元数大于N的检索词,切分成多个词元数等于N的检索词作为分词检索词,并用逻辑与方式拼接;
步骤A13:遍历查询树,对每个分词检索词根据步骤S7中所述的方法进行检索操作,获取对应的数据ID;
步骤A14:对步骤A13)中获取的每一个数据ID列表均顺序执行交、并、差三种集合运算,生成运算后的数据ID;
步骤A15:返回运算后的数据ID,结束检索。
所述索引客户端为电脑。
所述文本客户端为电脑。
本发明所述的一种基于多元切分的倒排索引检索方法,规避检索过程中的多分词距离运算,解决了多分词情况的检索速度慢的问题,省去了在倒排索引中对分词偏移的磁盘记录空间的占用。
附图说明
图1是本发明的总体流程图;
图2是本发明的步骤4的流程图;
图3是本发明的步骤S8的流程图;
图4是本发明的步骤S9的流程图。
具体实施方式
如图1~图4所示的一种基于多元切分的倒排索引检索方法,其特征在于:包括如下步骤:
步骤1:建立索引系统,索引系统包括Hadoop云存储平台、索引客户端和文本客户端,索引客户端和文本客户端均通过互联网与Hadoop云存储平台连接;
步骤2:用户通过文本客户端上传数个文本数据,文本客户端将所有文本数据均通过互联网传送给Hadoop云存储平台,Hadoop云存储平台的MapReduce对每一个文本数据均设定一个数据ID,并将所有文本数据均存储到Hadoop云存储平台的HDFS中;
步骤3:MapReduce对任意一个文本数据执行清洗任务,并生成清洗后文本数据,清洗任务包括对该文本数据中的大写字母转换成小写字母和对该文本数据中的全角转换半角;
步骤4:MapReduce对清洗后文本数据执行多元分词,其步骤如下:
步骤A:设定分词的最小单位为一个词元,设定词元的个数最大为N,N为正整数,MapReduce创建词元序列,以便对所有词元进行排序;
步骤B:MapReduce尝试从文本中读取一个词元:如能读取,则将读取的词元加入词元序列,执行步骤C;如不能读取,则执行步骤D;
步骤C:判断词元序列中的词元个数是否等于N:是,则执行步骤D;否,则执行步骤B;
步骤D:判断词元序列中的词元个数是否等于0:是,则执行步骤H;否,则执行步骤E;
步骤E:MapReduce以词元序列的第一词元为基准,对词元序列中的所有词元执行一元分词、二元分词…N元分词;
步骤F:删除词元序列中的第一个词元,执行步骤B;
步骤H:对清洗后文本数据执行多元分词的任务结束,并根据多元分词的结果生成分词列表;
步骤5:MapReduce对分词列表执行去重任务,并生成去重分词列表,去重任务包括删除分词列表中重复的词元;
步骤6:重复执行步骤3到步骤5,对所有文本数据均生成相应的去重分词列表;
步骤7:如表5所示,创建倒排表,设定提取词为去重分词列表中的任意一个词元,设定一个提取词,将所有包含该提取词的文本数据的数据ID集合在一起组成一个ID集合,该提取词与该ID集合的映射表即为倒排表,MapReduce根据文本数据所对应的去重分词列表和数据ID构建倒排索引,其步骤如下:
步骤I:接收所有文本数据的数据ID和去重分词列表,创建倒排表;
步骤J:设定去重分词列表中的任意一个词元为提取词W,MapReduce对提取词W进行以下处理:首先在倒排表中查找提取词W,如果能查找到,则在倒排表中添加数据ID,该数据ID在倒排表中的位置为提取词W映射的ID集合;如果不能查到,则在倒排表中添加新ID集合,并将提取词W与所述新ID集合建立映射关系,将所述数据ID添加到所述新ID集合中;
步骤K:遍历去重分词列表,重复执行步骤J,直到去重分词列表中所有的词元均处理完;
步骤L:重复执行步骤I和步骤K,直到接收的所有文本数据均处理完,即倒排表创建完毕;
步骤M:MapReduce创建倒排文件,将倒排表中每个提取词映射的ID集合写入倒排文件;
步骤N:MapReduce创建字典文件,将倒排表中每个提取词及其对应的ID集合内容在倒排文件中的偏移和长度写入字典文件,并在字典文件中建立提取词列表;
步骤O:MapReduce对字典文件中的提取词列表,按照如下步骤构建字典索引:
步骤S1:设定提取词列表中的任意一个提取词为提取词Wn,n为正整数,n的最大值为提取词列表中所有提取词的个数,设定提取词Wn在字典文件中的偏移为偏移Pn,n为正整数,n的最大值为提取词列表中所有提取词的个数;
步骤S2:设定参数步长S,并预设步长S的值,步长S的值小于提取词列表中所有提取词的个数,设定参数m,m=S+n,n的初始值为1;
步骤S3:获取提取词Wm以及提取词Wm在字典文件中的偏移Pm,建立关系式<Wm,Pm>作为索引关系式;
步骤S4:重复执行步骤S2和步骤S3,直到m的值大于提取词列表中所有提取词的个数;
步骤S5:对提取词列表中所有提取词均建立索引关系式,即对所有提取词列表中所有提取词均构建字典索引;
步骤S6:将所有所述字典索引均写入字典索引文件;
步骤P:倒排索引构建结束;
步骤8:重复执行步骤2~步骤7,直到处理完用户输入的所有文本数据,并生成构建好的索引;
步骤9:通过所述构建好的索引执行各种索引查询,其步骤如下:
步骤Q:设定词元的个数最大为N,N为正整数,设定检索词中的词元数为X,X为正整数,用户通过索引客户端输入检索词,索引客户端将检索词均发送给Hadoop云存储平台,Hadoop云存储平台根据检索词和所述构建好的索引,将索引查询分为如下集中情况:
步骤S7:当检索词中的词元数X小于等于N时,MapReduce根据以下步骤进行检索:
步骤A1:搜索检索词在字典索引文件中的偏移位置Pi,i为整数,i小于N;
步骤A2;在字典索引文件中,从偏移位置Pi开始,向后搜索检索词,直到超过给定步长S或者搜索到检索词停止:如果能搜到检索词,则执行步骤A3;如果不能搜到检索词,结束检索,并返回无搜索结果;
步骤A3:从字典索引文件中获取检索词在倒排索引中的偏移和数据长度;
步骤A4:根据步骤A3中的偏移和长度读取倒排索引,获取对应的数据ID,并返回数据ID;
步骤S8:当检索词中的词元数X大于N时,MapReduce根据以下步骤进行检索:
步骤A5:设定检索词中的词元为Ci,1<=i<=X,遍历检索词的词元Ci,从第一个词元C1开始,提取长度为N的检索词作为提取词W1,提取词W1由C1…CN组成;
步骤A6:根据步骤A5中的提取规则,从下一个词元Ci开始,提取检索词作为提取词Wi;
步骤A7:循环执行步骤A6,直到剩余词元的个数不足N,则结束提取;
步骤A8:对每一个通过步骤A5~步骤A8所得到的提取词,根据步骤S7所述的方法进行检索操作,获取对应的数据ID;
步骤A9:对步骤A8中每个检索对应的数据ID执行交集运算;
步骤A10:结束检索,返回交集运算后的数据ID;
步骤S9:当输入的检索词需要进行多检索词的与或非检索时,MapReduce根据以下步骤进行检索:
步骤A11:分析检索词,根据后缀表达式原则,生成查询树;
步骤A12:遍历查询树,按照步骤S8中所述的方法,将词元数大于N的检索词,切分成多个词元数等于N的检索词作为分词检索词,并用逻辑与方式拼接;
步骤A13:遍历查询树,对每个分词检索词根据步骤S7中所述的方法进行检索操作,获取对应的数据ID;
步骤A14:对步骤A13)中获取的每一个数据ID列表均顺序执行交、并、差三种集合运算,生成运算后的数据ID;
步骤A15:返回运算后的数据ID,结束检索。
所述索引客户端为电脑。
所述文本客户端为电脑。
一元分词就是最简单的分词,将所有的中文字符按照单字形式输出;二元分词按双字形式输出;多元分词则是将一句话中可能的单词组合按照一定规则输出,允许输出的词有重叠。
以用户输入的文本数据的切分方法为为1~4元切分方法,步长S的预设值为10;用户输入的文本数据的数个为3;用户输入的文本数据的内容和文本数据所对应的数据ID如表1所示:
数据ID 文本数据
0 农民经常用复合肥。
1 常用复合技术生产农用复合肥。
2 复合肥好用。
表1
根据步骤1~步骤8中所述的方法,对数据ID为0的文本数据执行1~4元切分,得到去重分词列表0:农、农民、农民经、农民经常、民、民经、民经常、民经常用、经、经常、经常用、经常用复、常、常用、常用复、常用复合、用、用复、用复合、用复合肥、复、复合、复合肥、合、合肥和肥;
根据步骤1~步骤8中所述的方法,对数据ID为1的文章内容执行执行1~4元切分,得到去重分词列表1:常、常用、常用复、常用复合、用、用复、用复合、用复合技、复、复合、复合技、复合技术、合、合技、合技术、合技术生、技、技术、技术生、技术生产、术、术生、术生产、术生产农、生、生产、生产农、生产农用、产、产农、产农用、产农用复、农、农用、农用复、农用复合、用复合肥、复合肥、合肥和肥;
根据步骤1~步骤8中所述的方法,对数据ID为2的文本数据执行1~4元切分,得到去重分词列表2:复、复合、复合肥、复合肥好、合、合肥、合肥好、合肥好用、肥、肥好、肥好用、好、好用和用;
如表2~表4所示,根据步骤1~步骤8中所述的方法对去重分词列表0、去重分词列表1、去重分词列表2倒排表;
提取词列表 ID集合 索引词标记
1
产农 1
产农用 1
产农用复 1
0 1
常用 0 1
常用复 0 1
常用复合 0 1
0 1 2
肥好 2
肥好用 2
0 1 2
复合 0 1 2
复合肥 0 1 2
表2
提取词列表 ID集合 索引词标记
复合肥好 2
复合技 1
复合技术 1
2
好用 2
0 1 2
合肥 0 1 2
合肥好 2
合肥好用 2
合技 1
合技术 1
合技术生 1
1
技术 1
技术生 1
技术生产 1
0
经常 0
经常用 0
经常用复 0
0
民经 0
民经常 0
民经常用 0
0 1
农民 0
农民经 0
农民经常 0
农用 1
农用复 1
农用复合 1
表3
提取词列表 ID集合 索引词标记
1
生产 1
生产农 1
生产农用 1
1
术生 1
术生产 1
术生产农 1
0 1 2
用复 0 1
用复合 0 1
用复合肥 0 1
用复合技 1
表4
表5
如表1~表4所示,根据步骤1~步骤8中所述的方法,将各提取词对应的ID集合内容依次写入倒排文件中,得到每段数据的写入偏移和长度。
根据步骤1~步骤8中所述的方法,将各提取词和提取词对应的ID集合内容在倒排文件中的偏移和长度,按提取词的排序顺序依次写入字典索引文件中。
根据步骤1~步骤8中所述的方法,生成构建好的索引;
根据步骤9所述的方法,当用户输入的检索词的词元数小于等于4时,假设检索词为:经常
根据步骤9所述的方法,按照最大元分词方法切分检索词后,得到检索词:经常;
根据步骤9所述的方法,在所述构建好的索引中,确定“经常”检索词所在的字典区间:“经”~“农民经”;
根据步骤9所述的方法,确定“经常”检索词在倒排文件中位置;
根据步骤9所述的方法,读取倒排文件得到ID集合的序号为0;
当用户输入的检索词的词元数大于4时,假设检索词为:农用复合肥;
根据步骤9所述的方法,按照最大元切分方法切分检索词后,得到检索词列表:农用复合,用复合肥;
根据步骤9所述的方法,确定“农用复合”检索词对应的ID集合序号为1;
根据步骤9所述的方法,确定“用复合肥”检索词对应的ID集合的序号为0和1;
根据步骤9所述的方法,执行交集运算得到结果ID集合的序号为1;
当用户收入的检索词的词元数大于4的检索词查询,假设检索词为:常用复合肥;
根据步骤9所述的方法,按照最大元切分方法切分检索词后,得到检索词列表:常用复合,用复合肥
根据步骤9所述的方法,确定“常用复合”检索词对应的ID集合的序号为0和1;
根据步骤9所述的方法,确定“用复合肥”检索词对应的ID集合的序号为0和1;
根据步骤9所述的方法,执行交集运算得到结果ID集合的序号为0和1;
其中序号0的结果正确,序号1的结果有问题,因为原始检索词的各个词元位置不连续,但是大部分词元位置是连续的,得到的结果近似;
根据步骤9所述的方法,执行组合检索词查询,假设检索词为:常用AND农OR农用复合肥;
根据步骤9所述的方法,得到检索词为:常用AND农OR(农用复合AND用复合肥);
根据步骤9所述的方法,确定“常用”检索词对应的ID集合的序号为0和1;
根据步骤9所述的方法,确定“农”检索词对应的ID集合的序号为0和1;
根据步骤9所述的方法,确定“农用复合”检索词对应的ID集合的序号为1;
根据步骤9所述的方法,确定“用复合肥”检索词对应的ID集合的序号为0和1;
根据查询树的节点优先级,执行与或非集合运算,得到结果ID集合的序号为0和1。
本发明所述的一种基于多元切分的倒排索引检索方法,规避检索过程中的多分词距离运算,解决了多分词情况的检索速度慢的问题,省去了在倒排索引中对分词偏移的磁盘记录空间的占用。

Claims (3)

1.一种基于多元切分的倒排索引检索方法,其特征在于:包括如下步骤:
步骤1:建立索引系统,索引系统包括Hadoop云存储平台、索引客户端和文本客户端,索引客户端和文本客户端均通过互联网与Hadoop云存储平台连接;
步骤2:用户通过文本客户端上传数个文本数据,文本客户端将所有文本数据均通过互联网传送给Hadoop云存储平台,Hadoop云存储平台的MapReduce对每一个文本数据均设定一个数据ID,并将所有文本数据均存储到Hadoop云存储平台的HDFS中;
步骤3:MapReduce对任意一个文本数据执行清洗任务,并生成清洗后文本数据,清洗任务包括对该文本数据中的大写字母转换成小写字母和对该文本数据中的全角转换半角;
步骤4:MapReduce对清洗后文本数据执行多元分词,其步骤如下:
步骤A:设定分词的最小单位为一个词元,设定词元的个数最大为N,N为正整数,MapReduce创建词元序列,以便对所有词元进行排序;
步骤B:MapReduce尝试从文本中读取一个词元:如能读取,则将读取的词元加入词元序列,执行步骤C;如不能读取,则执行步骤D;
步骤C:判断词元序列中的词元个数是否等于N:是,则执行步骤D;否,则执行步骤B;
步骤D:判断词元序列中的词元个数是否等于0:是,则执行步骤H;否,则执行步骤E;
步骤E:MapReduce以词元序列的第一词元为基准,对词元序列中的所有词元执行一元分词、二元分词…N元分词;
步骤F:删除词元序列中的第一个词元,执行步骤B;
步骤H:对清洗后文本数据执行多元分词的任务结束,并根据多元分词的结果生成分词列表;
步骤5:MapReduce对分词列表执行去重任务,并生成去重分词列表,去重任务包括删除分词列表中重复的词元;
步骤6:重复执行步骤3到步骤5,对所有文本数据均生成相应的去重分词列表;
步骤7:创建倒排表,设定提取词为去重分词列表中的任意一个词元,设定一个提取词,将所有包含该提取词的文本数据的数据ID集合在一起组成一个ID集合,该提取词与该ID集合的映射表即为倒排表,MapReduce根据文本数据所对应的去重分词列表和数据ID构建倒排索引,其步骤如下:
步骤I:接收所有文本数据的数据ID和去重分词列表,创建倒排表;
步骤J:设定去重分词列表中的任意一个词元为提取词W,MapReduce对提取词W进行以下处理:首先在倒排表中查找提取词W,如果能查找到,则在倒排表中添加数据ID,该数据ID在倒排表中的位置为提取词W映射的ID集合;如果不能查到,则在倒排表中添加新ID集合,并将提取词W与所述新ID集合建立映射关系,将所述数据ID添加到所述新ID集合中;
步骤K:遍历去重分词列表,重复执行步骤J,直到去重分词列表中所有的词元均处理完;
步骤L:重复执行步骤I和步骤K,直到接收的所有文本数据均处理完,即倒排表创建完毕;
步骤M:MapReduce创建倒排文件,将倒排表中每个提取词映射的ID集合写入倒排文件;
步骤N:MapReduce创建字典文件,将倒排表中每个提取词及其对应的ID集合内容在倒排文件中的偏移和长度写入字典文件,并在字典文件中建立提取词列表;
步骤O:MapReduce对字典文件中的提取词列表,按照如下步骤构建字典索引:
步骤S1:设定提取词列表中的任意一个提取词为提取词Wn,n为正整数,n的最大值为提取词列表中所有提取词的个数,设定提取词Wn在字典文件中的偏移为偏移Pn,n为正整数,n的最大值为提取词列表中所有提取词的个数;
步骤S2:设定参数步长S,并预设步长S的值,步长S的值小于提取词列表中所有提取词的个数,设定参数m,m=S+n,n的初始值为1;
步骤S3:获取提取词Wm以及提取词Wm在字典文件中的偏移Pm,建立关系式<Wm,Pm>作为索引关系式;
步骤S4:重复执行步骤S2和步骤S3,直到m的值大于提取词列表中所有提取词的个数;
步骤S5:对提取词列表中所有提取词均建立索引关系式,即对所有提取词列表中所有提取词均构建字典索引;
步骤S6:将所有所述字典索引均写入字典索引文件;
步骤P:倒排索引构建结束;
步骤8:重复执行步骤2~步骤7,直到处理完用户输入的所有文本数据,并生成构建好的索引;
步骤9:通过所述构建好的索引执行各种索引查询,其步骤如下:
步骤Q:设定词元的个数最大为N,N为正整数,设定检索词中的词元数为X,X为正整数,用户通过索引客户端输入检索词,索引客户端将检索词均发送给Hadoop云存储平台,Hadoop云存储平台根据检索词和所述构建好的索引,将索引查询分为如下集中情况:
步骤S7:当检索词中的词元数X小于等于N时,MapReduce根据以下步骤进行检索:
步骤A1:搜索检索词在字典索引文件中的偏移位置Pi,i为整数,i小于N;
步骤A2;在字典索引文件中,从偏移位置Pi开始,向后搜索检索词,直到超过给定步长S或者搜索到检索词停止:如果能搜到检索词,则执行步骤A3;如果不能搜到检索词,结束检索,并返回无搜索结果;
步骤A3:从字典索引文件中获取检索词在倒排索引中的偏移和数据长度;
步骤A4:根据步骤A3中的偏移和长度读取倒排索引,获取对应的数据ID,并返回数据ID;
步骤S8:当检索词中的词元数X大于N时,MapReduce根据以下步骤进行检索:
步骤A5:设定检索词中的词元为Ci,1<=i<=X,遍历检索词的词元Ci,从第一个词元C1开始,提取长度为N的检索词作为提取词W1,提取词W1由C1…CN组成;
步骤A6:根据步骤A5中的提取规则,从下一个词元Ci开始,提取检索词作为提取词Wi;
步骤A7:循环执行步骤A6,直到剩余词元的个数不足N,则结束提取;
步骤A8:对每一个通过步骤A5~步骤A8所得到的提取词,根据步骤S7所述的方法进行检索操作,获取对应的数据ID;
步骤A9:对步骤A8中每个检索对应的数据ID执行交集运算;
步骤A10:结束检索,返回交集运算后的数据ID;
步骤S9:当输入的检索词需要进行多检索词的与或非检索时,MapReduce根据以下步骤进行检索:
步骤A11:分析检索词,根据后缀表达式原则,生成查询树;
步骤A12:遍历查询树,按照步骤S8中所述的方法,将词元数大于N的检索词,切分成多个词元数等于N的检索词作为分词检索词,并用逻辑与方式拼接;
步骤A13:遍历查询树,对每个分词检索词根据步骤S7中所述的方法进行检索操作,获取对应的数据ID;
步骤A14:对步骤A13)中获取的每一个数据ID列表均顺序执行交、并、差三种集合运算,生成运算后的数据ID;
步骤A15:返回运算后的数据ID,结束检索。
2.如权利要求1所述的一种基于多元切分的倒排索引检索方法,其特征在于:所述索引客户端为电脑。
3.如权利要求1所述的一种基于多元切分的倒排索引检索方法,其特征在于:所述文本客户端为电脑。
CN201611227295.1A 2016-12-27 2016-12-27 一种基于多元切分的倒排索引检索方法 Active CN108241713B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611227295.1A CN108241713B (zh) 2016-12-27 2016-12-27 一种基于多元切分的倒排索引检索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611227295.1A CN108241713B (zh) 2016-12-27 2016-12-27 一种基于多元切分的倒排索引检索方法

Publications (2)

Publication Number Publication Date
CN108241713A true CN108241713A (zh) 2018-07-03
CN108241713B CN108241713B (zh) 2021-12-28

Family

ID=62702060

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611227295.1A Active CN108241713B (zh) 2016-12-27 2016-12-27 一种基于多元切分的倒排索引检索方法

Country Status (1)

Country Link
CN (1) CN108241713B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284352A (zh) * 2018-09-30 2019-01-29 哈尔滨工业大学 一种基于倒排索引的评估类文档不定长词句的查询方法
CN109558589A (zh) * 2018-11-12 2019-04-02 速度时空信息科技股份有限公司 一种基于中文分词技术的畅想文书的方法及系统
CN110096478A (zh) * 2019-05-09 2019-08-06 中国联合网络通信集团有限公司 文档索引生成方法及设备
CN111078824A (zh) * 2019-12-18 2020-04-28 南京录信软件技术有限公司 一种减少Lucene无字典n-gram切词占用存储空间的方法
CN112052361A (zh) * 2019-06-06 2020-12-08 Oppo广东移动通信有限公司 搜索方法、装置、终端及存储介质
CN113609249A (zh) * 2021-09-09 2021-11-05 北京环境特性研究所 目标模型仿真数据存储方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023989A (zh) * 2009-09-23 2011-04-20 阿里巴巴集团控股有限公司 一种信息检索方法及其系统
CN103955514A (zh) * 2014-05-05 2014-07-30 陈浩 一种基于Lucene倒排索引的图像特征索引方法
CN104408034A (zh) * 2014-11-28 2015-03-11 武汉数为科技有限公司 一种面向文本大数据的中文分词方法
CN105183733A (zh) * 2014-06-05 2015-12-23 阿里巴巴集团控股有限公司 一种文本信息的匹配、业务对象的推送方法和装置
CN105224624A (zh) * 2015-09-22 2016-01-06 广州神马移动信息科技有限公司 一种实现倒排链快速归并的方法和装置
CN105975495A (zh) * 2016-04-26 2016-09-28 北京奇虎科技有限公司 大数据的存储、搜索方法及装置
CN105988996A (zh) * 2015-01-27 2016-10-05 腾讯科技(深圳)有限公司 一种索引文件生成方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023989A (zh) * 2009-09-23 2011-04-20 阿里巴巴集团控股有限公司 一种信息检索方法及其系统
CN103955514A (zh) * 2014-05-05 2014-07-30 陈浩 一种基于Lucene倒排索引的图像特征索引方法
CN105183733A (zh) * 2014-06-05 2015-12-23 阿里巴巴集团控股有限公司 一种文本信息的匹配、业务对象的推送方法和装置
CN104408034A (zh) * 2014-11-28 2015-03-11 武汉数为科技有限公司 一种面向文本大数据的中文分词方法
CN105988996A (zh) * 2015-01-27 2016-10-05 腾讯科技(深圳)有限公司 一种索引文件生成方法及装置
CN105224624A (zh) * 2015-09-22 2016-01-06 广州神马移动信息科技有限公司 一种实现倒排链快速归并的方法和装置
CN105975495A (zh) * 2016-04-26 2016-09-28 北京奇虎科技有限公司 大数据的存储、搜索方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张超: ""基于MapReduce的分布式搜索引擎研究与实现"", 《中国优秀硕士学位论文全文数据库工程科技辑》 *
苏宇: ""基于Hadoop的分布式全文检索及相关技术研究"", 《中国优秀硕士学位论文全文数据库工程科技辑》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109284352A (zh) * 2018-09-30 2019-01-29 哈尔滨工业大学 一种基于倒排索引的评估类文档不定长词句的查询方法
CN109284352B (zh) * 2018-09-30 2022-02-08 哈尔滨工业大学 一种基于倒排索引的评估类文档不定长词句的查询方法
CN109558589A (zh) * 2018-11-12 2019-04-02 速度时空信息科技股份有限公司 一种基于中文分词技术的畅想文书的方法及系统
CN110096478A (zh) * 2019-05-09 2019-08-06 中国联合网络通信集团有限公司 文档索引生成方法及设备
CN110096478B (zh) * 2019-05-09 2021-06-29 中国联合网络通信集团有限公司 文档索引生成方法及设备
CN112052361A (zh) * 2019-06-06 2020-12-08 Oppo广东移动通信有限公司 搜索方法、装置、终端及存储介质
CN111078824A (zh) * 2019-12-18 2020-04-28 南京录信软件技术有限公司 一种减少Lucene无字典n-gram切词占用存储空间的方法
CN113609249A (zh) * 2021-09-09 2021-11-05 北京环境特性研究所 目标模型仿真数据存储方法及装置
CN113609249B (zh) * 2021-09-09 2023-04-28 北京环境特性研究所 目标模型仿真数据存储方法及装置

Also Published As

Publication number Publication date
CN108241713B (zh) 2021-12-28

Similar Documents

Publication Publication Date Title
CN108241713A (zh) 一种基于多元切分的倒排索引检索方法
US9454599B2 (en) Automatic definition of entity collections
CN104008106B (zh) 一种获取热点话题的方法及装置
CN104199857A (zh) 一种基于多标签分类的税务文档层次分类方法
CN101593200A (zh) 基于关键词频度分析的中文网页分类方法
CN103729402A (zh) 一种基于图书目录的知识图谱的构建方法
CN103631909A (zh) 对大规模结构化和非结构化数据联合处理的系统及方法
CN103678491A (zh) 一种基于Hadoop中小文件优化和倒排索引的方法
CN104239553A (zh) 一种基于Map-Reduce框架的实体识别方法
CN105787097A (zh) 一种基于文本聚类的分布式索引构建方法及系统
CN100592332C (zh) 一种基于案例树进行案例推理的装置及方法
CN104679738A (zh) 互联网热词挖掘方法及装置
CN104036023A (zh) 一种融合上下文的树形视频语义索引建立方法
CN103761286B (zh) 一种基于用户兴趣的服务资源检索方法
CN104536830A (zh) 一种基于MapReduce的KNN文本分类方法
CN104615734B (zh) 一种社区管理服务大数据处理系统及其处理方法
WO2015051481A1 (en) Determining collection membership in a data graph
CN104077385A (zh) 一种文件的分类及检索方法
CN110888981A (zh) 基于标题的文档聚类方法、装置、终端设备及介质
CN104915405A (zh) 一种基于多层次的微博查询扩展方法
CN111177410A (zh) 基于进化R-tree的知识图谱存储和相似性检索方法
CN104408128B (zh) 一种基于b+树异步更新索引的读优化方法
CN103034656A (zh) 章节内容分层方法和装置、文章内容分层方法和装置
CN103678513A (zh) 一种交互式的检索式生成方法及系统
Arora et al. Big data: A review of analytics methods & techniques

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210918

Address after: 211161 Sheng'an Avenue 739, Binjiang Economic Development Zone, Jiangning District, Nanjing City, Jiangsu Province

Applicant after: NANJING FENGHUO TIANDI COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 210000 Fenghuo technology building, No. 88, yunlongshan Road, Nanjing, Jiangsu

Applicant before: NANJING FIBERHOME SOFTWARE TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211130

Address after: 210019 Fenghuo technology building, No. 88, yunlongshan Road, Jianye District, Nanjing, Jiangsu Province

Applicant after: NANJING FIBERHOME TELECOMMUNICATION TECHNOLOGIES Co.,Ltd.

Address before: 211161 Sheng'an Avenue 739, Binjiang Economic Development Zone, Jiangning District, Nanjing City, Jiangsu Province

Applicant before: NANJING FENGHUO TIANDI COMMUNICATION TECHNOLOGY CO.,LTD.

GR01 Patent grant
GR01 Patent grant