[发明专利]一种快速检索相似字符串的方法及系统有效
申请号: | 201710558849.4 | 申请日: | 2017-07-11 |
公开(公告)号: | CN109241124B | 公开(公告)日: | 2023-03-10 |
发明(设计)人: | 李光曦 | 申请(专利权)人: | 沪江教育科技(上海)股份有限公司 |
主分类号: | G06F16/2458 | 分类号: | G06F16/2458;G06F16/901 |
代理公司: | 上海硕力知识产权代理事务所(普通合伙) 31251 | 代理人: | 郭桂峰 |
地址: | 201203 上海市浦东*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 快速 检索 相似 字符串 方法 系统 | ||
本申请提供一种快速检索相似字符串的方法及系统,其中,所述方法包括:读取已有的预设数量的文本条目,并针对每条文本条目,将所述文本条目拆分为若干词组,并为每个词组分配对应的权重值;基于分配的权重值,对拆分后的词组进行哈希运算,以得到所述文本条目对应的第一哈希字符串;对所述第一哈希字符串进行塌缩处理,以得到长度符合指定条件的第二哈希字符串;对所述第二哈希字符串建立前缀树,并基于所述前缀树从所述已有的预设数量的文本条目中检索出与目标字符串相似的字符串。本申请提供的技术方案,能够极大提高字符串检索的速度。
技术领域#
本申请涉及信息处理技术领域,特别涉及一种快速检索相似字符串的方法及系统。
背景技术#
在当前的信息处理技术领域中,经常需要在海量的文本条目中查询与目标字符串相似的字符串,现有的算法是对目标字符串与海量的文本条目中的每个字符串计算编辑距离,并将编辑距离小于某个阈值的所有字符串列为相似的字符串。
现有技术中的这种方法时间复杂度极高,在数十万文本条目的情况下往往性能无法到达商用要求。除需要进行对比的文本条目数外,现有算法的时间复杂度还与所有文本条目的字符串平均长度相关,无法应用到如今大数据量的场景中。
发明内容#
本申请实施方式的目的在于提供一种快速检索相似字符串的方法及系统,能够极大提高字符串检索的速度。
为实现上述目的,本申请一方面提供一种快速检索相似字符串的方法,所述方法包括:
读取已有的预设数量的文本条目,并针对每条文本条目,将所述文本条目拆分为若干词组,并为每个词组分配对应的权重值;
基于分配的权重值,对拆分后的词组进行哈希运算,以得到所述文本条目对应的第一哈希字符串;
对所述第一哈希字符串进行塌缩处理,以得到长度符合指定条件的第二哈希字符串;
对所述第二哈希字符串建立前缀树,并基于所述前缀树从所述已有的预设数量的文本条目中检索出与目标字符串相似的字符串。
在本实施方式中,为每个词组分配对应的权重值包括:
根据当前词组与所述文本条目的关联性,为所述当前词组分配对应的权重值;其中,所述关联性越高,对应的权重值则越大。
在本实施方式中,对拆分后的词组进行哈希运算包括:
利用SimHash算法,对拆分后的词组及其对应的权重值进行处理,以得到所述文本条目对应的第一哈希字符串。
在本实施方式中,对所述第一哈希字符串进行塌缩处理包括:
按照固定间隔将所述第一哈希字符串拆分为多个子字符串,并为拆分得到的各个子字符串分配同样的权重值;
利用SimHash算法,对拆分后的子字符串及其对应的权重值进行处理,以得到所述第一哈希字符串对应的第三哈希字符串;
如果需要,对所述第三哈希字符串进行裁剪,以使得裁剪后的第二哈希字符串的长度小于所述第一哈希字符串的长度,并且所述第二哈希字符串与所述第一哈希字符串之间的对应关系不被割裂。
在本实施方式中,检索出与目标字符串相似的字符串包括:
将所述目标字符串拆分为若干词组,并为每个词组分配对应的权重值;
利用SimHash算法,对拆分后的词组及其对应的权重值进行处理,以得到所述目标字符串对应的第四哈希字符串;
对所述第四哈希字符串进行塌缩处理,以得到长度小于所述第四哈希字符串的第五哈希字符串;
在所述前缀树中对所述第五哈希字符串进行检索,以得到第一结果集合;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于沪江教育科技(上海)股份有限公司,未经沪江教育科技(上海)股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710558849.4/2.html,转载请声明来源钻瓜专利网。