CN112817916B - 基于ipfs的数据获取方法及系统 - Google Patents
基于ipfs的数据获取方法及系统 Download PDFInfo
- Publication number
- CN112817916B CN112817916B CN202110167845.XA CN202110167845A CN112817916B CN 112817916 B CN112817916 B CN 112817916B CN 202110167845 A CN202110167845 A CN 202110167845A CN 112817916 B CN112817916 B CN 112817916B
- Authority
- CN
- China
- Prior art keywords
- index
- sentence
- text
- query
- keyword
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
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)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于IPFS的数据获取方法及系统,对存储在IPFS的数据建立了去中心化混合索引,将文本存入IPFS得到文本标识符;选取对文本区分度高的词作为关键词;对关键词进行哈希运算,与文本标识符组成关键词索引;由文本中心语句的关键词计算文本的句子索引;使用分布式哈希表存储索引文件。数据请求者发起查询请求时,根据查询语句长度决定执行关键词索引或者句子索引,在执行句子索引时,无法精确匹配的情况下,因为相似内容的句子索引相邻存储,在存储句子索引的节点附近进行搜索。本发明能够实现去中心化混合索引的建立与查询功能,从而满足IPFS数据获取的需求。
Description
技术领域
本发明涉及信息技术领域中的信息处理技术、信息检索领域,尤其涉及一种基于IPFS的数据获取方法及系统。
背景技术
IPFS创造了一个点对点的分布式文件系统,升级了现有的网络结构,实现了真正意义上的去中心化存储。IPFS为解决数据的规模量级不断提高,提供了一个去中心化的优良存储方案,它在满足海量数据存储需求的同时,还可以有效的进行数据的共享。每一个上传到IPFS存储的文件,都会有一个唯一的文件标识符。目前IPFS仅支持基于文件标识符的寻址方式,资源请求者需要准确提供文件标识符才能请求相应文件。由于缺乏相应的搜索功能,资源请求者很难通过关键词或者其它描述信息获取相关文件。
ipfs-search是github上的一个开源项目,该项目尝试在IPFS上建立一个通用的搜索引擎。ipfs-search是一种基于Elasticsearch的集中式搜索引擎,通过利用IPFS的日志监听其它对等节点添加文件事件。ipfs-search的服务器需要监听DHT的记录更新,使用ipfs-tika提取元数据和内容,使用Elasticsearch建立索引并提供搜索服务。
Siva为IPFS建立一个去中心化的搜索引擎,提取文档关键字建立关键词和标识符的倒排索引,使用分布式哈希表存储索引文件。
在现有的技术中存在以下问题:
1)集中式索引削弱IPFS的去中心化程度,并限制了IPFS的可伸缩性;
2)数据获取方式没有充分考虑到长短查询语句之间的区别,将长查询语句分词为多个关键词进行搜索会对网络造成更多的负担。
针对IPFS数据搜索与获取过程中所面临对的挑战,本发明提供了一种基于IPFS的数据获取方法及系统。
发明内容
本发明目的在于,针对现有技术中的不足,提供一种基于IPFS的数据获取方法及系统,对存储在IPFS的数据建立了去中心化混合索引,将文本存入IPFS得到文本标识符;选取对文本区分度高的词作为关键词;对关键词进行哈希运算,与文本标识符组成关键词索引;由文本中心语句的关键词计算文本的句子索引;使用分布式哈希表存储索引文件。数据请求者发起查询请求时,根据查询语句长度决定执行关键词索引或者句子索引,在执行句子索引时,无法精确匹配的情况下,因为相似内容的句子索引相邻存储,在存储句子索引的节点附近进行搜索。本发明能够实现去中心化混合索引的建立与查询功能,从而满足IPFS数据获取的需求。
本发明所述的一种基于IPFS的数据获取方法,按下列步骤进行:
a、获取文本在IPFS的标识符,对所述文本进行预处理,获取文本关键词及中心语句,训练词向量模型,建立关键词索引,建立句子索引;
b、为索引存储节点分配节点地址,组成分布式哈希表,以存储索引文件;
c、根据查询语句长度决定执行的索引机制,检查缓存,执行搜索,得到最终的搜索结果;
d、发布查询的节点根据规则,将查询语句及查询结果加入缓存或者对缓存进行更新。
步骤a中获取文本在IPFS的标识符:是将待存储文本存入IPFS后,得到一个唯一标识所述文本的标识符;
对所述文本进行预处理:包括分词,去停用词,去标点符号操作;
获取文本的关键词及中心语句,使用词频-逆文件频率算法:首先计算词在该文件中出现次数,记为词频,然后计算词在所有文本中出现的频率,记为逆文件频率,最后计算两者的乘积,乘积越大表示该词对这个文本的重要性越大,选取对文本区分度高的词作为关键词,对文本的中心语句,计算中心语句的关键词权重值;对所述关键词进行哈希运算,得到160bit的关键词哈希,将关键词哈希与步骤a所述标识符组合,得到关键词索引;
训练词向量模型,使用深度学习方法进行多次迭代训练,通过逻辑回归的方法对文本进行训练,将训练数据集合内的每个词汇表示成为128维的特征向量,使得词汇间的语义相似性转为空间相似性;训练好的词向量模型将文本中心语句分词后得到的关键词表示为128维的词向量,将各个词向量乘以其权重比后对应维度相加,得到句子的向量表示,使用局部敏感哈希算法得到句子向量降维后的哈希表示,降维后的向量各维拼接得到160bit的值与步骤a所述标识符组成句子索引,句子索引保留了文本内容的相似性。
步骤b所述的索引存储,将索引文件采用的是去中心化的存储方式,将关键词索引及句子索引存储在分布式哈希表中,分布式哈希表使用哈希算法为每个索引存储节点分配一个唯一的160bit的节点地址,节点地址与关键词索引及句子索引的键值具有相同值域,将所述关键词索引及所述句子索引存储在节点地址与其相同或相近的索引存储节点中,在索引存储节点使用倒排表结构对索引文件进行整合。
步骤c中根据查询语句长度决定执行的索引机制、缓存检查和执行搜索,具体为:
对等节点发起查询时,对查询语句进行分词,判断是否执行句子索引,若判断为是,则使用与建立句子索引相同过程计算查询语句的160bit哈希值,判断缓存中是否存储相关查询结果,若判断为是,则发起查询的节点对对缓存中的查询结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询;若判断为否,执行句子索引,若在索引存储节点无法精确匹配的情况下,因为相似内容的句子索引相邻存储,在存储句子索引的节点附近进行搜索,然后发起查询的节点对搜索过程中返回的结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询;
若判断为否,使用与建立关键词索引同样的哈希算法,计算查询关键词的160bit哈希值,判断缓存中是否存储相关查询结果,若判断为是,则发起查询的节点对对缓存中的查询结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询;若判断为否,执行关键词索引,在索引存储节点需要精确匹配索引的关键词哈希,然后发起查询的节点对搜索过程中返回的结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询。
若搜索过程中,其它对等节点缓存了相关结果则中断搜索并返回结果,否则对搜索消息进行转发直到负责存储相关结果的对等节点。
所述的句子索引搜索时,使用切比雪夫距离衡量句子索引的相似性。
步骤d中的缓存,因为缓存空间有限,并不是所有节点都会缓存查询结果,只有当节点若干路由跳数范围内的邻居节点没有相关数据才进行缓存,若缓存空间已满,将采用最近最久未访问算法对缓存结果进行置换。
一种基于IPFS的数据获取系统,所述系统包括:
索引建立模块,获取文本在IPFS的标识符,对所述文本进行预处理,得到文本关键词及中心语句,训练词向量模型,以建立关键词索引及句子索引;
索引存储模块,为索引存储节点分配节点地址组成分布式哈希表,存储索引文件;
搜索模块,根据查询语句长度决定执行的索引机制,得到最终的搜索结果;
结果缓存模块,发布查询的节点根据规则将查询语句及查询结果加入缓存或者对缓存进行更新。
所述索引建立模块:由获取文本标识符、文本预处理、获取关键词及中心语句、训练词向量模型、建立关键词索引、建立句子索引组成,其中:
获取标识符模块:将待存储文本存入IPFS后,得到一个唯一标识所述文本的标识符;
数据预处理模块:对待建立索引文本进行预处理,包括分词,去停用词,去标点符号操作;
关键词及中心语句获取模块:使用词频-逆文件频率的方法,获取文本的关键词,对文本的中心语句,计算中心语句的关键词权重值;
词向量模型训练:使用深度学习方法进行多次迭代训练,将训练数据集合内的每个词汇表示成为128维的特征向量;
关键词索引模块:对关键词及中心语句获取模块中所述关键词进行哈希运算,得到160bit的关键词哈希,将关键词哈希与获取标识符模块中所述标识符组合,得到关键词索引;
句子索引模块:使用词向量模型将文本中心语句的关键词表示为128维的词向量,将各个词向量乘以其权重比后对应维度相加,得到句子的向量表示,使用局部敏感哈希算法对句子向量进行降维,降维后的向量各维拼接得到160bit的值与标识符组成句子索引,句子索引保留了文本内容的相似性。
所述搜索模块:对等节点发起查询时,先根据查询语句的长度决定执行关键词索引或者句子索引,然后检查缓存中的数据,若缓存中有相关结果则直接返回结果并更新缓存,若搜索过程中,其它对等节点缓存了相关结果则中断搜索并返回结果,否则对查询消息进行转发直到负责存储相关结果的对等节点,执行关键词索引需要精确匹配关键词哈希,执行句子索引无法精确匹配的情况下,因为相似内容的句子索引相邻存储,在存储句子索引的节点附近进行搜索,最后发起查询的对等节点得到搜索结果,更新缓存,结束查询。
具体地说,本发明公开了一种基于IPFS的数据获取方法,其中包括:
步骤a、获取文本在IPFS的标识符,对所述文本进行预处理,获取文本关键词及中心语句,训练词向量模型,建立关键词索引,建立句子索引;
步骤b、为索引存储节点分配节点地址,组成分布式哈希表,以存储索引文件;
步骤c、根据查询语句长度决定执行的索引机制,检查缓存,执行搜索,得到最终的搜索结果;
步骤d、发布查询的节点根据规则,将查询语句及查询结果加入缓存或者对缓存进行更新。
其中步骤a中获取标识符,将待存储文本存入IPFS后,得到一个唯一标识所述文本的标识符;
对待建立索引文本进行预处理,包括分词,去停用词,去标点符号操作;
获取文本的关键词及中心语句,同时计算中心语句的关键词权重值,使用词频-逆文件频率的方法提取关键词:首先计算词在该文件中出现次数,记为词频:
其中,ni,j表示词ti在文本dj中出现的次数,然后计算词在所有文本中出现的频率,记为逆文件频率:
其中,分子|D|是文本总数,分母是包含该关键字的文本数目,如果包含该关键字的文本数为0,则分母为0,为解决此问题,分母计算时常常加1进行平滑操作;
最后计算两者的乘积,乘积越大表示该词对这个文本的重要性越大,选取对文本区分度高的词作为关键词;
TF-IDFi,j=TFi,j×IDFi (3)
计算词频-逆文件频率的目的是发现对文本很重要、区分度高的词。
训练词向量模型,使用深度学习方法进行多次迭代训练,通过逻辑回归的方法对文本进行训练,将训练数据集合内的每个词汇表示成为128维的特征向量,使得词汇间的语义相似性转为空间相似性;
对所述关键词使用SHA-1算法进行哈希运算,得到160bit的关键词哈希,将关键词哈希与步骤a中所述标识符组合,得到关键词索引;
使用训练好的词向量模型将文本中心语句的关键词表示为128维的词向量,将各个词向量乘以其权重比后对应维度相加,得到句子向量,通过采用局部敏感哈希算法,将句子向量从原高维空间使用哈希映射到一个新的低维空间,使得在原高维空间相似的句子向量,在新空间中也相似的概率很大,而在原高维空间不相似的句子向量,在新空间中相似的概率很小,因此空间位置相邻的句子向量,在哈希运算后也保持一定的相似性,实现空间相似性转为哈希相似性。降维后的向量各维拼接得到160bit的值与步骤a所述标识符组成句子索引,句子索引保留了文本内容的相似性;
由词向量模型将关键词转为词向量表示,如下所示:
k'i=(dim1i,dim2i,...,dimmi) (4)
其中,dimti(t=1,2,...,m)表示第i个词向量的第t维,此时句子可表示为(k'1,k'2,...,k'n),将各个词向量乘以其权重比后对应维度相加,得到句子的向量如下表示:
其中,wi(i=1,2,...,n)表示第i个关键词的权重值;
使用局部敏感哈希算法得到句子向量降维以后的哈希表示,minhash是局部敏感哈希函数的一种,降维的同时可以保留高维度向量之间的相似性。使用minhash进行降维的合理性,是基于对两个集合随机求最小哈希值相等的概率等于两个集合的Jaccard系数,公式表示如下;
P(minhash(A)=minhash(B))=Jac(A,B) (6)
其中,Jac(A,B)是集合A与B的Jaccard相似度,minhash在压缩原始向量的情况下,保证了向量的相似度尽可能少被破坏,不失去相似性。Jaccard相似度计算用如下公式表示:
步骤b还包括:
索引文件采用的是去中心化的存储方式,将关键词索引及句子索引存储在分布式哈希表中实现索引文件的存储,分布式哈希表使用哈希算法为每个索引存储节点分配一个唯一的160bit的节点地址,因此节点地址与关键词索引及句子索引的键值具有相同值域,将关键词索引及句子索引存储在节点地址与其相同或相近的索引存储节点中,在索引存储节点使用倒排表结构对索引文件进行整合。
步骤c还包括:
根据查询语句长度决定执行的索引机制、检查缓存、执行搜索,具体包括:
步骤c.1、对等节点发起查询时,对查询语句进行分词,判断是否执行句子索引,若判断为是,则执行步骤c.2;若判断为否,执行步骤c.4;
步骤c.2、使用与建立句子索引相同过程计算查询语句的160bit哈希值,判断缓存中是否存储相关查询结果,若判断为是,则执行步骤c.6;若判断为否,执行步骤c.3;
步骤c.3、执行句子索引,若在索引存储节点无法精确匹配的情况下,因为相似内容的句子索引相邻存储,在本该存储句子索引的节点附近进行搜索,然后执行步骤c.6;
步骤c.4、使用与建立关键词索引同样的哈希算法,计算查询关键词的160bit哈希值,判断缓存中是否存储相关查询结果,若判断为是,则执行步骤c.6;若判断为否,执行步骤c.5;
步骤c.5、执行关键词索引,在索引存储节点需要精确匹配索引的关键词哈希,然后执行步骤c.6;
步骤c.6、发起查询的对等节点对搜索过程中返回的结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询。
步骤c还包括:
若搜索过程中,其它对等节点缓存了相关结果则中断搜索并返回结果,否则对查询消息进行转发直到负责存储相关结果的对等节点;
所述的句子索引搜索,使用切比雪夫距离衡量句子索引的相似性:
其中,dimti(i=1,2)表示第i个句子索引键值的第t维。
步骤d还包括:
制定的缓存规则,由于缓存空间有限,并不是所有节点都会缓存查询结果,只有当节点若干路由跳数范围内的邻居节点没有相关数据才进行缓存,若缓存空间已满,将采用最近最久未访问算法对缓存结果进行置换。
本发明还提供了一种基于IPFS的数据获取系统,该系统包括:
索引建立模块,获取文本在IPFS的标识符,对所述文本进行预处理,得到文本关键词及中心语句,训练词向量模型、建立关键词索引及句子索引;
索引存储模块,为索引存储节点分配节点地址组成分布式哈希表,存储索引文件;
搜索模块,根据查询语句长度决定执行的索引机制,得到最终的搜索结果;
结果缓存模块,发布查询的节点根据规则将查询语句及查询结果加入缓存或者对缓存进行更新;
索引建立模块:获取文本标识符、文本预处理、获取关键词及中心语句、训练词向量模型、建立关键词索引、建立句子索引,具体包括:
获取标识符模块:将待存储文本存入IPFS后,得到一个唯一标识所述文本的标识符。
数据预处理模块:对待建立索引文本进行预处理,包括分词,去停用词,去标点符号操作;
关键词及中心语句提取模块:使用词频-逆文件频率算法获取文本的关键词,同时计算中心语句的关键词权重值;
词向量模型训练:使用深度学习方法进行多次迭代训练,将训练数据集合内的每个词汇表示成为128维的特征向量;
关键词索引模块:对关键词及中心语句提取模块中所述关键词进行哈希运算,得到160bit的关键词哈希,将关键词哈希与获取标识符模块中所述标识符组合建立关键词索引;
句子索引模块:使用词向量模型将文本中心语句的关键词或者文本关键词表示为128维的词向量,将各个词向量乘以其权重比后对应维度相加,得到句子向量,使用局部敏感哈希算法对句子向量进行降维,降维后的向量各维拼接得到160bit的值与标识符组成句子索引,句子索引保留了文本内容的相似性;
搜索模块还包括:
对等节点发起查询时,先根据查询语句的长度决定执行关键词索引或者句子索引,然后检查缓存中的数据,若缓存中有相关结果则直接返回结果并更新缓存,若搜索过程中,其它对等节点缓存了相关结果则中断搜索并返回结果,否则对查询消息进行转发直到负责存储相关结果的对等节点,执行关键词索引需要精确匹配关键词哈希,执行句子索引无法精确匹配的情况下,因为相似内容的句子索引相邻存储,在存储句子索引的节点附近进行搜索,最后发起查询的对等节点得到搜索结果,更新缓存,结束查询。
本发明所述的一种基于IPFS的数据获取方法及系统,该方法及系统所提供的技术方案的积极效果是:对文本建立关键词索引和句子索引,实现内容相似的句子索引在分布式哈希表上存储相邻,索引存储节点使用倒排表结构对索引文件进行整合。查询时,如果查询语句较短则执行关键词索引,否则执行句子索引,无法精确匹配的情况下,因为相似内容的句子索引相邻存储,在存储句子索引的节点附近进行搜索。解决了在IPFS中,快速获取共享数据的问题。
附图说明
图1为本发明基于IPFS的数据获取方法流程图;
图2为本发明索引建立流程图;
图3为本发明句子索引键值计算过程示例图;
图4为本发明缓存及索引文件存储示意图;
图5为本发明搜索流程示意图;
图6为本发明基于IPFS的数据获取系统框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图对本发明做进一步的详细说明。
实施例
本发明所述的一种基于IPFS的数据获取方法,按下列步骤进行:
a、获取文本在IPFS的标识符,对所述文本进行预处理,获取文本关键词及中心语句,训练词向量模型,建立关键词索引,建立句子索引;
获取文本在IPFS的标识符:是将待存储文本存入IPFS后,得到一个唯一标识所述文本的标识符;
对所述文本进行预处理:包括分词,去停用词,去标点符号操作;例如,句子A:历史的教训告诉我们落后就要挨打。经分词,去停用词,去标点符号的处理后,表示为A:[历史,教训,告诉,落后,挨打];
获取文本的关键词及中心语句,使用词频-逆文件频率算法:首先计算词在该文件中出现次数,记为词频,然后计算词在所有文本中出现的频率,记为逆文件频率,最后计算两者的乘积,乘积越大表示该词对这个文本的重要性越大,选取对文本区分度高的词作为关键词,对文本的中心语句,计算中心语句的关键词权重值,使用词频-逆文件频率的方法提取关键词,选取对文本区分度高的词所述关键词进行哈希运算,得到160bit的关键词哈希,将关键词哈希所述标识符组合,得到关键词索引;
训练词向量模型,使用深度学习方法进行多次迭代训练,通过逻辑回归的方法对文本进行训练,将训练数据集合内的每个词汇表示成为128维的特征向量,使得词汇间的语义相似性转为空间相似性;训练好的词向量模型将文本中心语句分词后得到的关键词表示为128维的词向量,将各个词向量乘以其权重比后对应维度相加,得到句子的向量表示,使用局部敏感哈希算法得到句子向量降维后的哈希表示,降维后的向量各维拼接得到160bit的值与所述标识符组成句子索引,句子索引保留了文本内容的相似性;
图3中展示了一个句子A:历史的教训落后就要挨打。预处理后选取关键词及对应权重,经过向量转换、降维,得到降维后句子向量,拼接各维,在进一步计算句子索引的键值,最后与IPFS返回的文件标识符组成句子索引;
由词向量模型将关键词转为词向量表示,如下所示:
k'i=(dim1i,dim2i,...,dimmi) (1)
其中,dimti(t=1,2,...,m)表示第i个词向量的第t维,此时句子可表示为(k'1,k'2,...,k'n),将各个词向量乘以其权重比后对应维度相加,得到句子的向量如下表示:
其中,wi(i=1,2,...,n)表示第i个关键词的权重值;
b、为索引存储节点分配节点地址,组成分布式哈希表,以存储索引文件;
所述的索引存储,将索引文件采用的是去中心化的存储方式,将关键词索引及句子索引存储在分布式哈希表中,实现索引文件的存储,分布式哈希表使用哈希算法为每个索引存储节点分配一个唯一的160bit的节点地址,因此节点地址与关键词索引及句子索引的键值具有相同值域,将所述关键词索引及所述句子索引存储在节点地址与其相同或相近的索引存储节点中,在索引存储节点使用倒排表结构对索引文件进行整合;每一个索引存储节点包含缓存文件和索引文件,结构如图4所示;
c、根据查询语句长度决定执行的索引机制,检查缓存,执行搜索,得到最终的搜索结果;
根据查询语句长度决定执行的索引机制、缓存检查和执行搜索具体为:
对等节点发起查询时,对查询语句进行分词,判断是否执行句子索引,若判断为是,则使用与建立句子索引相同过程计算查询语句的160bit哈希值,判断缓存中是否存储相关查询结果,若判断为是,则发起查询的节点对对缓存中的查询结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询;若判断为否,执行句子索引,若在索引存储节点无法精确匹配的情况下,因为相似内容的句子索引相邻存储,在存储句子索引的节点附近进行搜索,然后发起查询的节点对搜索过程中返回的结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询;
若判断为否,使用与建立关键词索引同样的哈希算法,计算查询关键词的160bit哈希值,判断缓存中是否存储相关查询结果,若判断为是,则发起查询的节点对缓存中的查询结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询;若判断为否,执行关键词索引,在索引存储节点需要精确索引的关键词哈希,然后发起查询的节点对搜索过程中返回的结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询。
若搜索过程中,其它对等节点缓存了相关结果则中断搜索并返回结果,否则对搜索消息进行转发直到负责存储相关结果的对等节点。
所述的句子索引搜索时,使用切比雪夫距离衡量句子索引的相似性;
其中,dimti(i=1,2)表示第i个句子索引键值的第t维;
d、发布查询的节点根据规则,将查询语句及查询结果加入缓存或者对缓存进行更新;
因为缓存空间有限,并不是所有节点都会缓存查询结果,只有当节点若干路由跳数范围内的邻居节点没有相关数据才进行缓存,若缓存空间已满,将采用最近最久未访问算法对缓存结果进行置换;
本发明还提供了一种基于IPFS的数据获取系统,如图6所示,所述系统600包括:
索引建立模块610,用于获取文本在IPFS的标识符,对所述文本进行预处理,得到文本关键词及中心语句,训练词向量模型,建立关键词索引及句子索引;
索引存储模块620,用于为索引存储节点分配节点地址组成分布式哈希表,存储索引文件;
搜索模块630,用于根据查询语句长度决定执行的索引机制,执行搜索过程,得到最终的搜索结果;
结果缓存模块640,发布查询的节点根据规则将查询语句及查询结果加入缓存或者对缓存进行更新;
所述索引建立模块:由获取文本标识符、文本预处理、获取关键词及中心语句、训练词向量模型、建立关键词索引、建立句子索引组成,其中:
获取标识符模块:将待存储文本存入IPFS后,得到一个唯一标识所述文本的标识符;
数据预处理模块:对待建立索引文本进行预处理,包括分词,去停用词,去标点符号操作;
关键词及中心语句获取模块:使用词频-逆文件频率的方法,获取文本的关键词,对文本的中心语句,计算中心语句的关键词权重值;
词向量模型训练:使用深度学习方法进行多次迭代训练,将训练数据集合内的每个词汇表示成为128维的特征向量;
关键词索引模块:对关键词及中心语句获取模块中所述关键词进行哈希运算,得到160bit的关键词哈希,将关键词哈希与获取标识符模块中所述标识符组合,得到关键词索引;
句子索引模块:使用词向量模型将文本中心语句的关键词表示为128维的词向量,将各个词向量乘以其权重比后对应维度相加,得到句子的向量表示,使用局部敏感哈希算法对句子向量进行降维,降维后的向量各维拼接得到160bit的值与标识符组成句子索引,句子索引保留了文本内容的相似性。
所述搜索模块:对等节点发起查询时,先根据查询语句的长度决定执行关键词索引或者句子索引,然后检查缓存中的数据,若缓存中有相关结果则直接返回结果并更新缓存,若搜索过程中,其它对等节点缓存了相关结果则中断搜索并返回结果,否则对查询消息进行转发直到负责存储相关结果的对等节点,执行关键词索引需要精确匹配关键词哈希,执行句子索引无法精确匹配的情况下,因为相似内容的句子索引相邻存储,在存储句子索引的节点附近进行搜索,最后发起查询的对等节点得到搜索结果,更新缓存,结束查询。
本发明未详细阐述的部分属于本领域公知技术。显然,本领域的技术人员应该意识到,在本发明的范围内和精神指导下,各种改进、添加和替换都是可能的,如改变数据格式和内容、调整接口调用次序、使用不同编程语言(如Python、C、C++、Java等)实现等。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种基于IPFS的数据获取方法,其特征在于,按下列步骤进行:
a、获取文本在IPFS的标识符,对所述文本进行预处理,获取文本关键词及中心语句,训练词向量模型,建立关键词索引,建立句子索引;
b、为索引存储节点分配节点地址,组成分布式哈希表,以存储索引文件;
c、根据查询语句长度决定执行的索引机制,检查缓存,执行搜索,得到最终的搜索结果,根据查询语句长度决定执行的索引机制、缓存检查和执行搜索,具体为:
对等节点发起查询时,对查询语句进行分词,判断是否执行句子索引,若判断为是,则使用与建立句子索引相同过程计算查询语句的160bit哈希值,判断缓存中是否存储相关查询结果,若判断为是,则发起查询的节点对缓存中的查询结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询;若判断为否,执行句子索引,若在索引存储节点无法精确匹配的情况下,因为相似内容的句子索引相邻存储,在存储句子索引的节点附近进行搜索,然后发起查询的节点对搜索过程中返回的结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询;
若判断为否,使用与建立关键词索引同样的哈希算法,计算查询关键词的160bit哈希值,判断缓存中是否存储相关查询结果,若判断为是,则发起查询的节点对对缓存中的查询结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询;若判断为否,执行关键词索引,在索引存储节点需要精确匹配索引的关键词哈希,然后发起查询的节点对搜索过程中返回的结果进行整合过滤,得到最终搜索结果,更新缓存,结束查询;
d、发布查询的节点根据规则,将查询语句及查询结果加入缓存或者对缓存进行更新。
2.根据权利要求1所述的基于IPFS的数据获取方法,其特征在于,步骤a中获取文本在IPFS的标识符:是将待存储文本存入IPFS后,得到一个唯一标识所述文本的标识符;
对所述文本进行预处理:包括分词,去停用词,去标点符号操作;
获取文本的关键词及中心语句,使用词频-逆文件频率算法:首先计算词在该文件中出现次数,记为词频,然后计算词在所有文本中出现的频率,记为逆文件频率,最后计算两者的乘积,乘积越大表示该词对这个文本的重要性越大,选取对文本区分度高的词作为关键词,对文本的中心语句,计算中心语句的关键词权重值;对所述关键词进行哈希运算,得到160bit的关键词哈希,将关键词哈希与步骤a中所述标识符组合,得到关键词索引;
训练词向量模型,使用深度学习方法进行多次迭代训练,通过逻辑回归的方法对文本进行训练,将训练数据集合内的每个词汇表示成为128维的特征向量,使得词汇间的语义相似性转为空间相似性;训练好的词向量模型将文本中心语句分词后得到的关键词表示为128维的词向量,将各个词向量乘以其权重比后对应维度相加,得到句子的向量表示,使用局部敏感哈希算法得到句子向量降维后的哈希表示,降维后的向量各维拼接得到160bit的值与步骤a所述标识符组成句子索引,句子索引保留了文本内容的相似性。
3.根据权利要求1所述的基于IPFS的数据获取方法,其特征在于,步骤b所述的索引存储,索引文件采用去中心化的存储方式,将关键词索引及句子索引存储在分布式哈希表中,分布式哈希表使用哈希算法为每个索引存储节点分配一个唯一的160bit的节点地址,节点地址与关键词索引及句子索引的键值具有相同值域,将所述关键词索引及所述句子索引存储在节点地址与其相同或相近的索引存储节点中,在索引存储节点使用倒排表结构对索引文件进行整合。
4.根据权利要求1所述的基于IPFS的数据获取方法,其特征在于,若搜索过程中,其它对等节点缓存了相关结果则中断搜索并返回结果,否则对搜索消息进行转发直到负责存储相关结果的对等节点。
5.根据权利要求1所述的基于IPFS的数据获取方法,其特征在于,所述的句子索引搜索时,使用切比雪夫距离衡量句子索引的相似性。
6.根据权利要求1所述的基于IPFS的数据获取方法,其特征在于,步骤d中的缓存,因为缓存空间有限,并不是所有节点都会缓存查询结果,只有当节点若干路由跳数范围内的邻居节点没有相关数据才进行缓存,若缓存空间已满,将采用最近最久未访问算法对缓存结果进行置换。
7.一种基于IPFS的数据获取系统,其特征在于,所述系统包括:
索引建立模块,获取文本在IPFS的标识符,对所述文本进行预处理,得到文本关键词及中心语句,训练词向量模型,以建立关键词索引及句子索引,所述索引建立模块:由获取文本标识符、文本预处理、获取关键词及中心语句、训练词向量模型、建立关键词索引、建立句子索引组成,其中:
获取标识符模块:将待存储文本存入IPFS后,得到一个唯一标识所述文本的标识符;
数据预处理模块:对待建立索引文本进行预处理,包括分词,去停用词,去标点符号操作;
关键词及中心语句获取模块:使用词频-逆文件频率的方法,获取文本的关键词,对文本的中心语句,计算中心语句的关键词权重值;
词向量模型训练:使用深度学习方法进行多次迭代训练,将训练数据集合内的每个词汇表示成为 128 维的特征向量;
关键词索引模块:对关键词及中心语句获取模块中所述关键词进行哈希运算,得到160bit的关键词哈希,将关键词哈希与获取标识符模块中所述标识符组合,得到关键词索引;
句子索引模块:使用词向量模型将文本中心语句的关键词表示为128维的词向量,将各个词向量乘以其权重比后对应维度相加,得到句子的向量表示,使用局部敏感哈希算法对句子向量进行降维,降维后的向量各维拼接得到160bit的值与标识符组成句子索引,句子索引保留了文本内容的相似性;
索引存储模块,为索引存储节点分配节点地址组成分布式哈希表,存储索引文件;
搜索模块,根据查询语句长度决定执行的索引机制,得到最终的搜索结果,所述搜索模块:
对等节点发起查询时,先根据查询语句的长度决定执行关键词索引或者句子索引,然后检查缓存中的数据,若缓存中有相关结果则直接返回结果并更新缓存,若搜索过程中,其它对等节点缓存了相关结果则中断搜索并返回结果,否则对查询消息进行转发直到负责存储相关结果的对等节点,执行关键词索引需要精确匹配关键词哈希,执行句子索引无法精确匹配的情况下,因为相似内容的句子索引相邻存储,在存储句子索引的节点附近进行搜索,最后发起查询的对等节点得到搜索结果,更新缓存,结束查询;
结果缓存模块,发布查询的节点根据规则将查询语句及查询结果加入缓存或者对缓存进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110167845.XA CN112817916B (zh) | 2021-02-07 | 2021-02-07 | 基于ipfs的数据获取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110167845.XA CN112817916B (zh) | 2021-02-07 | 2021-02-07 | 基于ipfs的数据获取方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817916A CN112817916A (zh) | 2021-05-18 |
CN112817916B true CN112817916B (zh) | 2023-03-31 |
Family
ID=75862165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110167845.XA Active CN112817916B (zh) | 2021-02-07 | 2021-02-07 | 基于ipfs的数据获取方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817916B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114297145A (zh) * | 2021-12-20 | 2022-04-08 | 重庆邮电大学 | 一种ipfs节点本地基于关键词搜索文件的方法、介质及系统 |
CN115576945A (zh) * | 2022-10-13 | 2023-01-06 | 成都信息工程大学 | 一种利用数据预筛选以提高区块链数据处理效率的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843960A (zh) * | 2016-04-18 | 2016-08-10 | 上海泥娃通信科技有限公司 | 基于语义树的索引方法和系统 |
CN108268539A (zh) * | 2016-12-31 | 2018-07-10 | 上海交通大学 | 基于文本分析的视频匹配系统 |
CN108959478A (zh) * | 2018-06-21 | 2018-12-07 | 中南林业科技大学 | 一种云环境下的密文图像检索方法及系统 |
CN109213874A (zh) * | 2018-08-30 | 2019-01-15 | 福建师范大学 | 一种wmsn区块链的多媒体混合数据近似近邻二元查询方法 |
CN110019011A (zh) * | 2017-11-20 | 2019-07-16 | 中移(杭州)信息技术有限公司 | 一种密文检索方法及设备 |
CN111625619A (zh) * | 2019-02-28 | 2020-09-04 | 北京沃东天骏信息技术有限公司 | 查询省略方法、装置、计算机可读介质及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10789545B2 (en) * | 2016-04-14 | 2020-09-29 | Oath Inc. | Method and system for distributed machine learning |
US11146380B2 (en) * | 2017-08-03 | 2021-10-12 | Parity Technologies Ltd. | Methods and systems for a heterogeneous multi-chain framework |
-
2021
- 2021-02-07 CN CN202110167845.XA patent/CN112817916B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843960A (zh) * | 2016-04-18 | 2016-08-10 | 上海泥娃通信科技有限公司 | 基于语义树的索引方法和系统 |
CN108268539A (zh) * | 2016-12-31 | 2018-07-10 | 上海交通大学 | 基于文本分析的视频匹配系统 |
CN110019011A (zh) * | 2017-11-20 | 2019-07-16 | 中移(杭州)信息技术有限公司 | 一种密文检索方法及设备 |
CN108959478A (zh) * | 2018-06-21 | 2018-12-07 | 中南林业科技大学 | 一种云环境下的密文图像检索方法及系统 |
CN109213874A (zh) * | 2018-08-30 | 2019-01-15 | 福建师范大学 | 一种wmsn区块链的多媒体混合数据近似近邻二元查询方法 |
CN111625619A (zh) * | 2019-02-28 | 2020-09-04 | 北京沃东天骏信息技术有限公司 | 查询省略方法、装置、计算机可读介质及电子设备 |
Non-Patent Citations (3)
Title |
---|
Blockchain-Enabled Decentralized Trust Management and Secure Usage Control of IoT Big Data;Ma Zhaofeng et al.;《IEEE Internet of Things Journal》;20200531;4000-4015 * |
基于去中心化索引的IPFS数据获取方法研究;石秋娥 等;《计算机工程与应用》;20220331;第58卷(第3期);83-90 * |
基于数据挖掘的网络新闻热点发现系统设计与实现;童昱强;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190815;I138-1348 * |
Also Published As
Publication number | Publication date |
---|---|
CN112817916A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6544756B2 (ja) | 画像の高次元特徴の類似性を比較するための方法及びデバイス | |
US8938459B2 (en) | System and method for distributed index searching of electronic content | |
US8032551B2 (en) | Searching documents for successive hashed keywords | |
US9026518B2 (en) | System and method for clustering content according to similarity | |
US20070244881A1 (en) | System, method and user interface for retrieving documents | |
CN112817916B (zh) | 基于ipfs的数据获取方法及系统 | |
JP2013519138A (ja) | アイテム関連付けのための結合埋込 | |
CN108647322B (zh) | 基于词网识别大量Web文本信息相似度的方法 | |
CN104991959A (zh) | 一种基于内容检索相同或相似图像的方法与系统 | |
WO2023108980A1 (zh) | 基于文本对抗样例的信息推送方法及装置 | |
US9971828B2 (en) | Document tagging and retrieval using per-subject dictionaries including subject-determining-power scores for entries | |
JP7451747B2 (ja) | コンテンツを検索する方法、装置、機器及びコンピュータ読み取り可能な記憶媒体 | |
Tajbakhsh et al. | Semantic knowledge LDA with topic vector for recommending hashtags: Twitter use case | |
CN111813930B (zh) | 相似文档检索方法及装置 | |
Jiang et al. | Fast nearest neighbor search in the hamming space | |
CN115563313A (zh) | 基于知识图谱的文献书籍语义检索系统 | |
CN112836008B (zh) | 基于去中心化存储数据的索引建立方法 | |
JP5552981B2 (ja) | 索引方法、検索方法、及びその記憶媒体 | |
US9336280B2 (en) | Method for entity-driven alerts based on disambiguated features | |
CN113918807A (zh) | 数据推荐方法、装置、计算设备及计算机可读存储介质 | |
Gentile et al. | Early steps towards web scale information extraction with lodie | |
Ghavimi et al. | A semi-automatic approach for detecting dataset references in social science texts | |
CN106294784B (zh) | 资源搜索方法及装置 | |
Cetintas et al. | Using past queries for resource selection in distributed information retrieval | |
Zhai et al. | Online topic models with infinite vocabulary |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |