一种对海量数据进行快速匹配的算法制造技术

技术编号:32488423 阅读:18 留言:0更新日期:2022-03-02 09:54
本发明专利技术公开了一种对海量数据进行快速匹配的算法,包括HubbleDotNet将全文搜索和关系数据库整合到一起,通过SQL语句对数据库中的数据进行全文和关系查询;在TF

【技术实现步骤摘要】
一种对海量数据进行快速匹配的算法


[0001]本专利技术涉及数据匹配
,尤其涉及一种对海量数据进行快速匹配的算法。

技术介绍

[0002]目前的全文搜索数据库组件的匹配相关度存在着问题,搜索到的数据往往不是最希望得到的结果。有些系统试图通过分词来解决,这种方法对问题会有所改善,但不能根本解决问题,而英文环境下,分词根本无法起到作用。HubbleDotNet的算法参考了Lucene、SQL Server的算法并做了重大改进,匹配相关度较其他同类的全文搜索数据库组件有了显著提高。系统会根据得分排序得到相匹配的数据,再采用编辑距离(Edit Distance)算法,算出其精确的匹配值。从而大大提高了海量数据的匹配速度及匹配精度。

技术实现思路

[0003]本专利技术的目的是为了解决现有技术中数据匹配得到的结果不精确的问题,而提出的一种对海量数据进行快速匹配的算法。
[0004]为了实现上述目的,本专利技术采用了如下技术方案:一种对海量数据进行快速匹配的算法,包括以下步骤:
[0005]S1、HubbleDotNet将全文搜索和关系数据库整合到一起,通过SQL语句对数据库中的数据进行全文和关系查询;
[0006]S2、在TF

IDF算法的基础上增加了位置函数fp(t,d,q):
[0007]S3、通过HubbleDotNet得到精确的数据后,系统采用编辑距离算法的的基础上,结合自身特定的递归算法,对数据进行匹配运算。
[0008]在上述的对海量数据进行快速匹配的算法中,HubbleDotNet组件本身负责对全文数据进行倒排索引,并将索引存储到表所指定的目录下,数据的存储则由和Hubble.net关联的关系数据库完成。
[0009]在上述的对海量数据进行快速匹配的算法中,HubbleDotNet的基础得分算法公式如下:
[0010][0011]FieldRank为字段权值;
[0012]Rank(t,q)为单词分量(term)的在查询字符串中的权值;
[0013]Rank(t,d)为单词分量(term)所在文档的权值,默认为1,如果要指定文档权值,需要在表中增加一个rank int untokenized字段;
[0014]TF(t,d):为单文本词汇频率,要查询的单词分量(term)在文档中的出现的次数除以文档所有单词分量出现的次数;
[0015]IDF(t)为逆文本频率指数。
[0016]在上述的对海量数据进行快速匹配的算法中,步骤三中匹配运算的运算规则为:
[0017](1)找出两个字符串中相同部分最长的一段;
[0018](2)再用同样的方法在剩下的两段中分别找出相同部分最长的一段,以此类推,直到没有任何相同部分;
[0019](3)相似度=相同部分的长度/两个字符串中最长字符串的长度。
[0020]与现有的技术相比,本专利技术具体是用全文搜索数据库组件结合编辑距离算法来达到对海量数据快速匹配的运算方法;现有技术中针对20W条以上的数据,找出某条数据的最大相似度的匹配数据时,未没有采用此方法时,需要花费100多个小时左右,本专利技术采用HubbleDotNet+匹配算法后,时间上缩减十倍左右,十个小时就可以得出数据,且精度要较之前的大大提高。
附图说明
[0021]图1为本专利技术提出的一种对海量数据进行快速匹配的算法中HubbleDotNet全文搜索的示意图。
具体实施方式
[0022]以下实施例仅处于说明性目的,而不是想要限制本专利技术的范围。
[0023]实施例
[0024]参照图1,一种对海量数据进行快速匹配的算法,包括以下步骤:
[0025]S1、HubbleDotNet将全文搜索和关系数据库整合到一起,通过SQL语句对数据库中的数据进行全文和关系查询;
[0026]S2、在TF

IDF算法的基础上增加了位置函数fp(t,d,q):
[0027]S3、通过HubbleDotNet得到精确的数据后,系统采用编辑距离算法的的基础上,结合自身特定的递归算法,对数据进行匹配运算。
[0028]HubbleDotNet组件本身负责对全文数据进行倒排索引,并将索引存储到表所指定的目录下,数据的存储则由和Hubble.net关联的关系数据库完成。
[0029]HubbleDotNet的基础得分算法公式如下:
[0030][0031]FieldRank为字段权值;
[0032]Rank(t,q)为单词分量(term)的在查询字符串中的权值;
[0033]Rank(t,d)为单词分量(term)所在文档的权值,默认为1,如果要指定文档权值,需要在表中增加一个rankintuntokenized字段;
[0034]TF(t,d):为单文本词汇频率,要查询的单词分量(term)在文档中的出现的次数除以文档所有单词分量出现的次数;
[0035]IDF(t)为逆文本频率指数。
[0036]步骤三中匹配运算的运算规则为:
[0037](1)找出两个字符串中相同部分最长的一段;
[0038](2)再用同样的方法在剩下的两段中分别找出相同部分最长的一段,以此类推,直到没有任何相同部分;
[0039](3)相似度=相同部分的长度/两个字符串中最长字符串的长度。
[0040]本专利技术中HubbleDotNet的算法参考了Lucene、SQL Server的算法并做了重大改进,匹配相关度较其他同类的全文搜索数据库组件有了显著提高。系统会根据得分排序得到相匹配的数据,再采用编辑距离(Edit Distance)算法,算出其精确的匹配值。从而大大提高了海量数据的匹配速度及匹配精度。
[0041]针对20W条以上的数据,找出某条数据的最大相似度的匹配数据时,使用现有技术需要花费100多个小时左右,采用HubbleDotNet+匹配算法后,时间上缩减十倍左右,十个小时就可以得出数据,且精度要较之前的大大提高。
[0042]本专利技术在对全文搜索数据库组件的比较上,经过多重数据的比对运算,HubbleDotNet的匹配度相比于同类的系统,匹配的精确度高。在得到这些较高精度的数据后,系统会对这些数据通过编辑距离的方式算出其精确的匹配度,从而达到精确、高效算出匹配值的问题。
[0043]以上所述仅是本专利技术的优选实施方式,应当指出:对于本
的普通技术人员来说,在不脱离本专利技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本专利技术的保护范围。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对海量数据进行快速匹配的算法,其特征在于,包括以下步骤:S1、HubbleDotNet将全文搜索和关系数据库整合到一起,通过SQL语句对数据库中的数据进行全文和关系查询;S2、在TF

IDF算法的基础上增加了位置函数fp(t,d,q):S3、通过HubbleDotNet得到精确的数据后,系统采用编辑距离算法的的基础上,结合自身特定的递归算法,对数据进行匹配运算。2.根据权利要求1所述的一种对海量数据进行快速匹配的算法,其特征在于,HubbleDotNet组件本身负责对全文数据进行倒排索引,并将索引存储到表所指定的目录下,数据的存储则由和Hubble.net关联的关系数据库完成。3.根据权利要求1所述的一种对海量数据进行快速匹配的算法,其特征在于,HubbleDotNet的基...

【专利技术属性】
技术研发人员:胡永伟
申请(专利权)人:江苏省舜禹信息技术有限公司
类型:发明
国别省市:

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

1