一种相似文本分析方法技术

技术编号:20221759 阅读:19 留言:0更新日期:2019-01-28 20:16
本发明专利技术特别涉及一种相似文本分析方法。该相似文本分析方法,包括simhash值计算过程和相似性比较过程两部分;使用simhash计算文本simhash值,并将取得的simhash值分组存储到数据库中;当需要对文本的相似度进行比较时,只需要用当前文本的simhash对库中其他文本的simhash进行海明距离计算,即可找到最相近的文本。该相似文本分析方法,解决了传统技术所存在的低效、计算结果存在延迟的问题;而且simhash搭配海明距离的计算方式与常见的文本距离计算方式不同,其hash值提前完成计算,避免了后续直接对文本数据的操作,提高了单次计算速度,且计算过程由之前离线定时计算改为了实时计算的方式,不在有计算结果延迟的问题,本身不需要对大数据组件进行依赖,降低了使用和维护的成本。

【技术实现步骤摘要】
一种相似文本分析方法
本专利技术涉及应用数据挖掘
,特别涉及一种相似文本分析方法。
技术介绍
在现今互联网信息行业中,非结构化数据(UnstructuredData)占据了全部数据的百分之70以上,其中有过半以上为文本数据。这些文本数据可能包括了网页、用户文档、网络实时资讯、新闻、微博等,如何高效的利用这些资源,是互联网数据挖掘领域常见的技术困难之一。文本相似性分析(Textsimilarityanalysis)是文本数据挖掘所包括的常用技术,其目的是通过算法对不同的长短文本进行解析、比较,计算出同一段文本与其他文本数据的相似程度。这项技术可用于资讯推荐、相似文章去重、文库检索等多种互联网应用场景。互联网行业中的文本数据一般来自用户的手动上传、网络爬虫的定期采集等,往往存在数据量较大、格式复杂、冗余内容较多以及更新频繁的特点。目前文本的相似性计算通常需要先对一篇文本文档进行格式解析,转换为通用的纯文本格式,之后再使用如Levenshtein,Difflib等距离计算算法将当前的文本与库中的每一个文本比较,最后将计算出的相似性距离排序,取出最相近的几个。此类算法实现不仅复杂,计算量较高,如果需要提升性能首先需要对算法进行改进。而且这种处理方式还存在以下不足:(1)计算量较大,维护成本高因为每次需要同数据库中的全部文本数据进行一次比较,实现这种过程往往需要通过大数据组件(如mapreduce、spark、tez)的分布式计算能力进行定期扫描和运行,当库中的数据逐渐增加后,对大数据集群环境的要求也会增加。(2)计算结果存在延迟较大的计算量需要占用更多时间,使得每次计算的间隔时间较长,一般根据数据量大小可能会达到每3天一次或每周1次,对于某些需要频繁更新文本数据管理系统,如实时资讯新闻、微博的推荐功能,这种延迟可能无法满足功能的需求。基于上述情况,本专利技术设计了一种相似文本分析方法。
技术实现思路
本专利技术为了弥补现有技术的缺陷,提供了一种简单高效的相似文本分析方法。本专利技术是通过如下技术方案实现的:一种相似文本分析方法,其特征在于:包括simhash值计算过程和相似性比较过程两部分;使用simhash计算文本simhash值,取得文本的simhash值,并将取得的simhash值分组存储到数据库中;当需要对文本的相似度进行比较时,只需要用当前文本的simhash对库中其他文本的simhash进行海明距离计算,即可找到最相近的文本。所述simhash值计算过程包括以下步骤:(1)对文本进行解析,根据格式提取出其中的纯文本内容;(2)使用文本关键词提取算法从文本中提取出关键词,并过滤包括停用词在内的错误关键词。(3)使用关键词生成simhash结果;(4)将取得的simhash值分组存储到数据库中。所述步骤(1)中,对任意数据源推送文本数据进行解析,删除其中格式信息,转换为纯文本数据。所述步骤(2)中,文本关键词提取算法采用TextRank算法。所述步骤(4)中,simhash值分组存储是将8字节simhash值拆分4个2字节的数组,并存储到数据库中。所述数据库中为包含2个主键的数据库表,分组后的simhash值分4次存储数据库表中。所述2个主键分别为分组simhash和完整simhash。所述相似性比较过程包括以下步骤:(1)从数据库中查找,获取当前文本数据对应的simhash值;(2)对当前的simhash值拆分为4组2字节分组simhash值,取出全部对应的完整simhash值;(3)用当前文本的simhash值与取出的每个完整simhash值做海明距离计算;(4)对计算出的全部海明距离进行排序。本专利技术的有益效果是:该相似文本分析方法,解决了传统技术所存在的低效、计算结果存在延迟的问题;而且simhash搭配海明距离的计算方式与常见的文本距离计算方式不同,其hash值提前完成计算,避免了后续直接对文本数据的操作,提高了单次计算速度,且计算过程由之前离线定时计算改为了实时计算的方式,不在有计算结果延迟的问题,本身不需要对大数据组件进行依赖,降低了使用和维护的成本。具体实施方式为了使本专利技术所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本专利技术进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。simhash是常用的文本去重hash算法之一,类似于md5、crc32等。原理是通过对文本数据提取的关键词做权重计算,最终将一篇大段的文本映射为仅8字节的hash值。其本身并不支持直接对文本进行相似性分析计算,但其产生的hash结果值可通过海明距离算法进行比对,从而计算出文本间的相似度。因为海明距离的计算所针对的是simhash的结果,并不是原有的文本数据,其计算量非常小,而且simhash结果可在取得文本数据后就提前计算取得。该相似文本分析方法,包括simhash值计算过程和相似性比较过程两部分;使用simhash计算文本simhash值,取得文本的simhash值,并将取得的simhash值分组存储到数据库中;当需要对文本的相似度进行比较时,只需要用当前文本的simhash对库中其他文本的simhash进行海明距离计算,即可找到最相近的文本。所述simhash值计算过程包括以下步骤:(1)对文本进行解析,根据格式提取出其中的纯文本内容;(2)使用文本关键词提取算法从文本中提取出关键词,并过滤包括停用词在内的错误关键词。(3)使用关键词生成simhash结果;(4)将取得的simhash值分组存储到数据库中。所述步骤(1)中,对任意数据源推送文本数据进行解析,删除其中格式信息,转换为纯文本数据。所述步骤(2)中,文本关键词提取算法采用TextRank算法。通过simhash计算过程已经取得文本的hash值,此时可以将hash值存储到需要数据库中。后续需要对相似度进行比较时,只需要用当前文本的simhash对库中其他文本的simhash进行海明距离计算,即可找到最相近的文本。因为simhash的结果为8字节的hash码,计算速度较快,且复杂性为常量级。但随着库中文本数据的不断增加,需要比较的hash值也会不断增长,从而降低每次计算的速度。simhash值为8字节的二进制数据,这一点同crc32的4字节、md5的16字节以及sha1的32字节相类似,但与这些hash算法不同的是,simhash是一种局部敏感哈希(LSH)算法,实施例如下:字符串“验证文本相似性”的md510011010110010011001100011101110110111001011101111000000010111001111100000110100101011101001010001001000000010111110001000101010字符串“验证文本相似性1”的md51011001010101011110111101000000111011000111101010100100011010110100111011010100101100100000000111100110100110011010110110111011字符串“验证文本相似性”的simhash1011100本文档来自技高网
...

【技术保护点】
1.一种相似文本分析方法,其特征在于:包括simhash值计算过程和相似性比较过程两部分;使用simhash计算文本simhash值,取得文本的simhash值,并将取得的simhash值分组存储到数据库中;当需要对文本的相似度进行比较时,只需要用当前文本的simhash对库中其他文本的simhash进行海明距离计算,即可找到最相近的文本。

【技术特征摘要】
1.一种相似文本分析方法,其特征在于:包括simhash值计算过程和相似性比较过程两部分;使用simhash计算文本simhash值,取得文本的simhash值,并将取得的simhash值分组存储到数据库中;当需要对文本的相似度进行比较时,只需要用当前文本的simhash对库中其他文本的simhash进行海明距离计算,即可找到最相近的文本。2.根据权利要求1所述的相似文本分析方法,其特征在于:所述simhash值计算过程包括以下步骤:(1)对文本进行解析,根据格式提取出其中的纯文本内容;(2)使用文本关键词提取算法从文本中提取出关键词,并过滤包括停用词在内的错误关键词。(3)使用关键词生成simhash结果;(4)将取得的simhash值分组存储到数据库中。3.根据权利要求2所述的相似文本分析方法,其特征在于:所述步骤(1)中,对任意数据源推送文本数据进行解析,删除其中格式信息,转换为纯文本数据。4.根据权利要求2所述的相似文本分析方法,其特...

【专利技术属性】
技术研发人员:解一豪胡晓庆周庆勇
申请(专利权)人:浪潮软件股份有限公司
类型:发明
国别省市:山东,37

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

1