一种基于改进的文本指纹算法的短文本集合相似度比较方法及系统技术方案

技术编号:24170211 阅读:32 留言:0更新日期:2020-05-16 02:42
本发明专利技术涉及一种基于改进的文本指纹算法的短文本集合相似度比较方法及系统,首先对每个文本进行分词处理,得到各个文本的单词集合;接着将每个文本的单词集合进行停用词过滤;然后对每个文本,动态设置K值,对停用词过滤后的单词集合提取K‑shingle,得到各个文本的K‑Shingle集合;最后根据各个文本的K‑Shingle集合计算两个文本之间的相似度。本发明专利技术能够提能够提高接口协议文本相似度比较的准确性。

【技术实现步骤摘要】
一种基于改进的文本指纹算法的短文本集合相似度比较方法及系统
本专利技术涉及计算机文本信息处理
,特别是一种基于改进的文本指纹算法的短文本集合相似度比较方法及系统。
技术介绍
互联网时代网络上充斥着大量重复的内容与信息,无论对于搜索引擎的去重与过滤,媒体平台的去重与防盗版等,都需要高效,准确地对大量文本信息进行相似度比较。现有典型的文本去重方法采用指纹算法,即先对文本进行分词,然后计算文档的TF-IDF,根据TF-IDF排序,提取排序靠前的几个词作为特征词,利用HASH函数或别的规则为每个文本构造一个指纹,来作为该文本的标识,可以依据该指纹判断文本信息的重复度。现有的常见的文本指纹算法有:1、Simhash算法:Simhash是google用来处理海量文本去重的算法,同时也是一种基于LSH(localitysensitivehashing局部敏感哈希)的算法。局部敏感哈希可以将相似的字符串hash得到相似的hash值,使得相似项会比不相似项更可能的hash到一个桶中,hash到同一个桶中的文档间成为候选对。这样就可以以接近线性的时间去解决相似性判断和去重问题。simhash算法通过计算每个特征(关键词)的哈希值,并最终合并成一个特征值即指纹。2、K-Shingle算法:K-Shingle的核心思想是将文件相似性问题转换为集合的相似性问题。一篇文档可以看成是一个字符串,文档的k-shingle为在该文档中长度为k的所有子串,任意一篇文档都可以表示为k-shingles的集合。对于一段文本,分词向量为[w1,w2,w3,w4,…wn],设k=3,那么该文本的shingle向量表示为[(w1,w2,w3),(w2,w3,w4),(w3,w4,w5),……(wn-2,wn-1,wn)],计算两个文本的shingle向量的相似度(jarccard系数)来判断文本是否重复。然而,Simhash算法效率较高,比较适用于对于长文本,但是simhash算法没有考虑去重的粒度以及词的顺序,面对高精度时可能会带来准确度问题,尤其是对短文本的误报率较高。K-Shingle算法准确度较高,但是由于k-shingle算法的shingle向量空间巨大(特别是k特别大时),相比而言更加耗费资源。
技术实现思路
有鉴于此,本专利技术的目的是提出一种基于改进的文本指纹算法的短文本集合相似度比较方法及系统,能够提高接口协议文本相似度比较的准确性。本专利技术采用以下方案实现:一种基于改进的文本指纹算法的短文本集合相似度比较方法,具体包括以下步骤:对每个文本进行分词处理,得到各个文本的单词集合;将每个文本的单词集合进行停用词过滤;对每个文本,动态设置K值,对停用词过滤后的单词集合提取K-shingle,得到各个文本的K-Shingle集合;根据各个文本的K-Shingle集合计算两个文本之间的相似度。进一步地,所述对每个文本进行分词处理,得到各个文本的单词集合具体为:以中文单词为最小分词单位,对预处理后的短文本集合中的每个文本进行分词处理,得到每个文本的单词集合。进一步地,所述动态设置K值,对停用词过滤后的单词集合提取K-shingle,具体为,设单词集合中的单词个数为M,从K=1至K=M进行Shingle提取,并且将所有的结果合并为一个集合,即为该文本的K-Shingle集合。进一步地,所述根据各个文本的K-Shingle集合计算两个文本之间的相似度具体包括以下步骤:步骤S1:将所有文本的K-Shingle集合中的K-shingle互异值构成一个大小为N的词组库;用one-hot的方式对每篇文本进行编码,分别得到一个长度为N的特征向量,当词组库中的第n个K-shingle在文档中出现时,该文档特征向量的第n个元素为1,否则为0;步骤S2:计算两个文本的特征向量之间的Jaccard相似度,并与预设的相似度阈值进行比较,以此判定两个文本是否相似。本专利技术还提供了一种基于改进的文本指纹算法的短文本集合相似度比较系统,包括存储器、处理器以及存储处所述存储器上并能够在所述处理器上运行的计算机程序,当所述处理器执行该计算机程序时,实现如上文所述的方法步骤。本专利技术还提供了一种计算机可读存储介质,其上存储有能够被处理器运行的计算机程序,处理器在运行该计算机程序时,实现如上文所述的方法步骤。与现有技术相比,本专利技术有以下有益效果:本专利技术不采用固定的K值,而是将K取值为从1…M(M为文本的单词总数量),从而避免了K取值的问题。同时,在文本数量可控的情况下,能够提高相似度比较的准确性。附图说明图1为本专利技术实施例的方法流程示意图。具体实施方式下面结合附图及实施例对本专利技术做进一步说明。应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。本实施例主要解决在针对接口协议去重比较,或类似的特定的使用场景下,基于接口协议文本的特殊性,如何选择一种合适的文本指纹算法,实现高效、准确的接口协议相似度比较。接口协议文本的特点在于,它们是一些短文本的集合,每个短文本的长度一般不会超过10个字符,因此需要考虑这些文本特点,对现有算法进行改进优化出适合的算法。如图1所示,本实施例提供了一种基于改进的文本指纹算法的短文本集合相似度比较方法,具体包括以下步骤:对每个文本进行分词处理,得到各个文本的单词集合;将每个文本的单词集合进行停用词过滤;对每个文本,动态设置K值,对停用词过滤后的单词集合提取K-shingle,得到各个文本的K-Shingle集合;根据各个文本的K-Shingle集合计算两个文本之间的相似度。在本实施例中,所述对每个文本进行分词处理,得到各个文本的单词集合具体为:以中文单词为最小分词单位,对预处理后的短文本集合中的每个文本进行分词处理,得到每个文本的单词集合。如接口协议原始文本集合为:{{用户的手机号码},{归属地市},{产品编码},{受理类型},{生效时间},{失效时间},{是否要下发短信通知}}则分词处理后的结果为:{{用户的手机号码},{归属地市},{产品编码},{受理类型},{生效时间},{失效时间},{是否要下发短信通知}}。其中,所述预处理具体为:读取文档数据集,根据需求,对文档中的标点、空白、特殊字符、中英文、简繁体等字符进行清洗和整理。其中,将分词后的单词集合进行停用词本文档来自技高网
...

【技术保护点】
1.一种基于改进的文本指纹算法的短文本集合相似度比较方法,其特征在于,包括以下步骤:/n对每个文本进行分词处理,得到各个文本的单词集合;/n将每个文本的单词集合进行停用词过滤;/n对每个文本,动态设置K值,对停用词过滤后的单词集合提取K-shingle,得到各个文本的K-Shingle集合;/n根据各个文本的K-Shingle集合计算两个文本之间的相似度。/n

【技术特征摘要】
1.一种基于改进的文本指纹算法的短文本集合相似度比较方法,其特征在于,包括以下步骤:
对每个文本进行分词处理,得到各个文本的单词集合;
将每个文本的单词集合进行停用词过滤;
对每个文本,动态设置K值,对停用词过滤后的单词集合提取K-shingle,得到各个文本的K-Shingle集合;
根据各个文本的K-Shingle集合计算两个文本之间的相似度。


2.根据权利要求1所述的一种基于改进的文本指纹算法的短文本集合相似度比较方法,其特征在于,所述对每个文本进行分词处理,得到各个文本的单词集合具体为:以中文单词为最小分词单位,对预处理后的短文本集合中的每个文本进行分词处理,得到每个文本的单词集合。


3.根据权利要求1所述的一种基于改进的文本指纹算法的短文本集合相似度比较方法,其特征在于,所述动态设置K值,对停用词过滤后的单词集合提取K-shingle,具体为,设单词集合中的单词个数为M,从K=1至K=M进行Shingle提取,并且将所有的结果合并为一个集合,即为该文本的K-Shingle集合。

【专利技术属性】
技术研发人员:邱平
申请(专利权)人:福建福诺移动通信技术有限公司
类型:发明
国别省市:福建;35

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

1