【技术实现步骤摘要】
一种基于哈希表的离散型高效模糊搜索方法及系统
[0001]本专利技术涉及计算机
,特别是一种基于哈希表的离散型高效模糊搜索方法及系统。
技术介绍
[0002]当前用的比较多的搜索系统大多数是基于正则表达式、或者直接字符串比较(完全匹配)。正则表达式可以进行模糊匹配,但是效率很低,不适用在大数据、实时搜索系统。直接字符串匹配,虽然效率高点,但是不能进行模糊匹配,也不能进行相似匹配。
技术实现思路
[0003]为克服上述问题,本专利技术的目的是提供一种能够进行相似度匹配且效率高的基于哈希表的离散型高效模糊搜索方法。
[0004]本专利技术采用以下方案实现:一种基于哈希表的离散型高效模糊搜索方法,所述方法包括以下步骤:
[0005]步骤S1、加载源数据,对源数据进行分词和过滤;
[0006]步骤S2、建立哈希表;
[0007]步骤S3、将哈希表持久化保存;
[0008]步骤S4、加载源数据的哈希表;
[0009]步骤S5、用户输入查找内容,对查找的内容进行分词和过滤;
[0010]步骤S6、分词后,插入每个词的同义词或近义词;
[0011]步骤S7、在源数据的哈希表中搜索每个查找的词,统计每个词的频率和位置集合;
[0012]步骤S8、根据词的频率和位置计算匹配度,根据匹配度排序和输出结果。
[0013]进一步的,所述步骤S1进一步具体为:从数据库中加载源数据,其中包含数据ID和数据内容content字段,源数据的cont
【技术保护点】
【技术特征摘要】
1.一种基于哈希表的离散型高效模糊搜索方法,其特征在于,所述方法包括以下步骤:步骤S1、加载源数据,对源数据进行分词和过滤;步骤S2、建立哈希表;步骤S3、将哈希表持久化保存;步骤S4、加载源数据的哈希表;步骤S5、用户输入查找内容,对查找的内容进行分词和过滤;步骤S6、分词后,插入每个词的同义词或近义词;步骤S7、在源数据的哈希表中搜索每个查找的词,统计每个词的频率和位置集合;步骤S8、根据词的频率和位置计算匹配度,根据匹配度排序和输出结果。2.根据权利要求1所述的一种基于哈希表的离散型高效模糊搜索方法,其特征在于:所述步骤S1进一步具体为:从数据库中加载源数据,其中包含数据ID和数据内容content字段,源数据的content字段通过分词算法进行分词,根据词性过滤一些非关键词,得到了分词列表,用于后续进一步处理。3.根据权利要求1所述的一种基于哈希表的离散型高效模糊搜索方法,其特征在于:所述步骤S2进一步具体为:计算每个词的哈希值,统计每个词在源数据中的位置,生成位置列表,构建哈希表。4.根据权利要求1所述的一种基于哈希表的离散型高效模糊搜索方法,其特征在于:所述步骤S3进一步具体为:将哈希表转二进制数据流保存文件,便于后续直接加载使用。5.根据权利要求1所述的一种基于哈希表的离散型高效模糊搜索方法,其特征在于:所述步骤S4进一步具体为:从之前保存的文件中加载出源数据的哈希表。6.根据权利要求1所述的一种基于哈希表的离散型高效模糊搜索方法,其特征在于:所述步骤S5进一步具体为:用户在哈希表中输入需查找的内容,对查找的内容进行分词和过滤非关键的字、词和标点符号,生成分词列表。7.根据权利要求1所述的一种基于哈希表的离散型高效模糊搜索方法,其特征在于:所述步骤S6进一步具体为:下载扩展版同义词表,构建一个二维数组,所述二维数组的每一行为一个同义词列表,将每个分词在所述同义词列表中查找对应的同义词或近义词,并插入到分词列表中。8.根据权利要求1所述的一种基于哈希表的离散型高效模糊搜索方法,其特征在于:所述步骤S7进一步具体为:遍历分词列表,对每个分词求哈希值,通过哈希值直接定位对应的槽位,找出对应的源数据ID和分词所在源数据中的位置信息。9.根据权利要求1所述的一种基于哈希表的离散型高效模糊搜索方法,其特征在于:所述步骤S8进一步具体为:根据分词的位置离散程度计算匹配度分值,计算公式如下:其中:n:为要查找内容的分词列表的长度;max:求最大值函数;k:常数,这里等于5;min:求最小值函数;x
i
:第i个分词的位置列表;通过分词出现频率的维度计算匹配度分值,计算公式如下:其中:max:求最大值函数;len(X
i
):第i个分词的位置列表长度,即第i个分词出现的次数;k:常数,同位置离散程度公式中的k;将匹配分值转化成相似度,计算公式如下:
通过sim的相似度值,对查找的结果进行排序,并输出完成搜索过程。10.一种基于哈希表的离散型高效模糊搜索系统,其特征在于:包括数据处理模块、建立模块...
【专利技术属性】
技术研发人员:刘德建,陈高武,黄斌,张笛,姚鸿,王柟,陈军,宋诗莹,林琛,
申请(专利权)人:福建天晴数码有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。