一种基于es倒排索引的化学分子式检索方法技术

技术编号:20972502 阅读:27 留言:0更新日期:2019-04-29 17:48
本发明专利技术公开了一种基于es倒排索引的化学分子式检索方法,本发明专利技术结合大数据平台对检索过程进行重新设计,首先通过对es数据库中的分子式进行分词得到的子结构建立倒排索引,并对es数据库中的分子式计算哈希表示;检索时对分子式进行分词得到子结构,并计算哈希表示,利用倒排索引得到子结构匹配的分子式集合,再与得到的分子式集合的哈希表示一一比较,得到输入分子式与分子式集合中每个分子式之间的相似度,按照应用需要输出检索结果。本发明专利技术的比较范围为分子式集合,而不是数据库中全部的分子式,减少了比较的次数,进一步加快了分子式的检索。

A Chemical Molecular Formula Retrieval Method Based on ES Inverted Index

The invention discloses a chemical molecular retrieval method based on ES inverted index. The retrieval process is redesigned in combination with a large data platform. Firstly, the inverted index is established through the sub-structure obtained by partitioning the molecular formula in ES database, and the hash representation of the molecular formula in ES database is calculated; when searching, the sub-structure is obtained by partitioning the molecular formula and calculating. Hash representation uses inverted index to get the set of molecular formulas with substructure matching, and then compares it with the hash representation of the set of molecular formulas one by one. The similarity between the input molecular formulas and each molecular formula in the set of molecular formulas is obtained, and the retrieval results are output according to the application needs. The comparison range of the present invention is a set of molecular formulas, not all the molecular formulas in the database, which reduces the number of comparisons and further speeds up the retrieval of molecular formulas.

【技术实现步骤摘要】
一种基于es倒排索引的化学分子式检索方法
本专利技术属于信息检索领域,尤其涉及一种基于es倒排索引的化学分子式检索方法。
技术介绍
化学结构式(分子式)检索主要用在化学品的搜索中,对于拥有海量化学品的企业和研究机构,快速准确地检索到分子式对于生产和研究具有重要的价值。现有的化学分子式检索方法没有基于大数据平台,没有利用es数据库的倒排索引,化学分子式检索方法通常通过计算分子式的哈希表示来加速检索过程,虽然进行了加速,但这一过程仍然需要与数据库中全部的分子式进行一一比较来实现检索,加速效果有限。
技术实现思路
本专利技术在现有的分子式检索方法基础上,结合es(elasticsearch)的倒排索引技术,提出了一种在大数据平台下的检索方法,进一步加快了检索速度。本专利技术的目的是通过以下技术方案来实现的:一种基于es倒排索引的化学分子式检索方法,包括以下步骤:步骤1:对es数据库中的分子式建立倒排索引和哈希表示,具体为:1.1对es数据库中的每个分子式进行分词,得到分子式的子结构集合,子结构集合包含2个以上用化学键相连的原子,或单个的除常用原子以外的原子;1.2去掉子结构集合中的相同子结构;1.3把分子式得到的一系列子结构哈希映射到一个由32位整数组成的数组上,得到分子式的哈希表示;分子式得到的一系列子结构作为分子式的索引,建立es数据库中所有分子式的倒排索引。步骤2:检索过程,具体为:2.1检索时对输入的分子式进行分词,得到分子式的子结构集合,计算分子式的哈希表示;2.2用子结构集合在倒排索引中查找匹配项,即查找包含子结构集合中任一子结构的分子式,得到es数据库中匹配的分子式集合T;2.3用输入分子式的哈希表示,与得到的分子式集合T对应的哈希表示一一比较,得到输入分子式与分子式集合T中每个分子式之间的相似度;2.4根据输入分子式与分子式集合T中每个分子式的相似度,按照应用需要,输出T中相似度大于阈值的分子式,或按照相似度从大到小排列,输出前n个最相似的分子式。进一步地,所述子结构的形成具体为:子结构是通过遍历分子式的原子树形成的,即依次从每一个原子A开始向前、向后遍历,将遍历到的全部原子、化学键和原子A一起形成子结构;遍历停止时即形成一个子结构,子结构记录了形成过程中遍历到的原子、原子之间的化学键、以及多个原子是否形成了环状结构。进一步地,所述步骤1中,遍历停止条件有两个:①当遍历到的下一个原子与当前的遍历过的几个原子形成环状时,子结构形成过程即停止,得到一个子结构;②当遍历的原子数量达到7个或已经顺序遍历完当前的分子式时即停止,得到一个子结构。进一步地,所述步骤1中,所述相同子结构有两种情况:某子结构的逆序排列是其相同子结构,环状子结构中任意原子作为起始点,均为相同子结构。进一步地,所述步骤1中,数组长度设置为32或32的整数倍。进一步地,所述步骤2中,两个分子式的相似度的计算方式为:每个分子式的哈希表示均看作一个二进制的大整数,具体为:将数组中的每个32位整数依次转化为二进制后,拼接为一个二进制的大整数;将两个分子式对应的两个大整数做按位(bit)与操作得到一个相同长度的二进制大整数A,计算A中1的个数An;做按位或操作得到一个相同长度的二进制大整数B,计算B中1的个数Bn;An/Bn即得到两个分子式的相似度。本专利技术的有益效果是:本专利技术结合大数据平台对检索过程进行重新设计,首先通过对es数据库中的分子式进行分词得到的子结构建立倒排索引,并对es数据库中的分子式计算哈希表示;检索时对分子式进行分词得到子结构,并计算哈希表示,利用倒排索引得到子结构匹配的分子式集合,再与得到的分子式集合的哈希表示一一比较,减少了比较的范围,加快了分子式的检索。附图说明图1为本专利技术基于es倒排索引的化学分子式检索方法的流程图;图2为分子式”CCC(=O)Cl”的图形。具体实施方式下面结合附图和具体实施例对本专利技术作进一步详细说明。如图1所示,本专利技术提供的一种基于es倒排索引的化学分子式检索方法,包括以下步骤:第一步:对es数据库中的分子式建立倒排索引和哈希表示:对es数据库中的每个分子式进行分词,得到分子式的子结构集合,子结构集合包含2个以上(7个以下)用化学键相连的原子,或单个的除常用原子以外的原子,所述常用原子包括C、N、O、H等,也可以人为设定;子结构是通过遍历分子式的原子树(由分子式的原子通过化学键连接构成的树结构)形成的,即依次从每一个原子A开始向前、向后遍历,将遍历到的全部原子、化学键和原子A一起形成子结构;遍历停止时即形成一个子结构,子结构记录了形成过程中遍历到的原子、原子之间的化学键、以及多个原子是否形成了环状结构,遍历的停止条件有两个:①当遍历到的下一个原子与当前的遍历过的几个原子形成环状时,子结构形成过程(遍历过程)即停止,得到一个子结构;②当遍历的原子数量达到7个或已经顺序遍历完当前的分子式时即停止,得到一个子结构。在对所有分子式形成了子结构集合后,去掉集合中的相同子结构,即等同的子结构用同一个原子序列表示;相同子结构有两种情况:某子结构的逆序排列是其相同子结构,环状子结构中任意原子作为起始点,均为相同子结构;把分子式得到的一系列子结构哈希映射到一个由32位整数组成的数组上,数组长度可以设置为32或32的整数倍,得到分子式的哈希表示;例如:分子式”CCC(=O)Cl”的分词,其中1、2表示一价、二价化学键:C1CC1C1CO2CO2C1CO2C1C1CClCl1CCl1C1CCl1C1C1CCl1C2O该分子式的图形如图2所示,其哈希表示如下,其中每个整数都是32位的:131072000001342177280160768000000003276810737459200000000000131072。分子式得到的一系列子结构作为分子式的索引,建立es数据库中所有分子式的倒排索引。第二步:检索过程:1.检索时对输入的分子式进行上述分词,得到分子式的子结构集合,并用上述过程计算分子式的哈希表示;2.用子结构集合在倒排索引中查找匹配项,即查找包含子结构集合中任一子结构的分子式,得到es数据库中匹配的分子式集合T;3.用输入分子式的哈希表示,与得到的分子式集合T对应的哈希表示一一比较,得到输入分子式与分子式集合T中每个分子式之间的相似度;两个分子式的相似度的计算方式为:每个分子式的哈希表示均看作一个二进制的大整数,具体为:将数组中的每个32位整数依次转化为二进制后,拼接为一个二进制的大整数;将两个分子式对应的两个大整数做按位(bit)与操作得到一个相同长度的二进制大整数A,计算A中1的个数An;做按位或操作得到一个相同长度的二进制大整数B,计算B中1的个数Bn;An/Bn即得到两个分子式的相似度;4.根据输入分子式与分子式集合T中每个分子式的相似度,按照应用需要,输出T中相似度大于阈值的分子式,或按照相似度从大到小排列,输出前n个最相似的分子式;由于步骤3中比较的范围为集合T,而不是数据库中全部的分子式,减少了比较的次数,加快了分子式的检索。本专利技术将一步检索拆成两步,在第一步中通过利用倒排索引的检索减少了第二步比较的次数,进一步加快了检索的过程。以上所述仅为本专利技术的较佳实施举例,并不用于限制本专利技术,凡在本专利技术精神本文档来自技高网...

【技术保护点】
1.一种基于es倒排索引的化学分子式检索方法,其特征在于,包括以下步骤:步骤1:对es数据库中的分子式建立倒排索引和哈希表示,具体为:1.1对es数据库中的每个分子式进行分词,得到分子式的子结构集合,子结构集合包含2个以上用化学键相连的原子,或单个的除常用原子以外的原子;1.2去掉子结构集合中的相同子结构;1.3把分子式得到的一系列子结构哈希映射到一个由32位整数组成的数组上,得到分子式的哈希表示;分子式得到的一系列子结构作为分子式的索引,建立es数据库中所有分子式的倒排索引。步骤2:检索过程,具体为:2.1检索时对输入的分子式进行分词,得到分子式的子结构集合,计算分子式的哈希表示;2.2用子结构集合在倒排索引中查找匹配项,即查找包含子结构集合中任一子结构的分子式,得到es数据库中匹配的分子式集合T;2.3用输入分子式的哈希表示,与得到的分子式集合T对应的哈希表示一一比较,得到输入分子式与分子式集合T中每个分子式之间的相似度;2.4根据输入分子式与分子式集合T中每个分子式的相似度,按照应用需要,输出T中相似度大于阈值的分子式,或按照相似度从大到小排列,输出前n个最相似的分子式。

【技术特征摘要】
1.一种基于es倒排索引的化学分子式检索方法,其特征在于,包括以下步骤:步骤1:对es数据库中的分子式建立倒排索引和哈希表示,具体为:1.1对es数据库中的每个分子式进行分词,得到分子式的子结构集合,子结构集合包含2个以上用化学键相连的原子,或单个的除常用原子以外的原子;1.2去掉子结构集合中的相同子结构;1.3把分子式得到的一系列子结构哈希映射到一个由32位整数组成的数组上,得到分子式的哈希表示;分子式得到的一系列子结构作为分子式的索引,建立es数据库中所有分子式的倒排索引。步骤2:检索过程,具体为:2.1检索时对输入的分子式进行分词,得到分子式的子结构集合,计算分子式的哈希表示;2.2用子结构集合在倒排索引中查找匹配项,即查找包含子结构集合中任一子结构的分子式,得到es数据库中匹配的分子式集合T;2.3用输入分子式的哈希表示,与得到的分子式集合T对应的哈希表示一一比较,得到输入分子式与分子式集合T中每个分子式之间的相似度;2.4根据输入分子式与分子式集合T中每个分子式的相似度,按照应用需要,输出T中相似度大于阈值的分子式,或按照相似度从大到小排列,输出前n个最相似的分子式。2.根据权利要求1所述的一种基于es倒排索引的化学分子式检索方法,其特征在于,所述步骤1中,所述子结构的形成具体为:子结构是通过遍历分子式的原子树形成的,即依次从每一个原子A开始向前、向后遍历,将遍历到的全部原子、化学...

【专利技术属性】
技术研发人员:杨红飞
申请(专利权)人:杭州费尔斯通科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1