CN109271487A - 一种相似文本分析方法 - Google Patents

一种相似文本分析方法 Download PDF

Info

Publication number
CN109271487A
CN109271487A CN201811144594.8A CN201811144594A CN109271487A CN 109271487 A CN109271487 A CN 109271487A CN 201811144594 A CN201811144594 A CN 201811144594A CN 109271487 A CN109271487 A CN 109271487A
Authority
CN
China
Prior art keywords
text
simhash
value
analysis method
similar
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811144594.8A
Other languages
English (en)
Inventor
解豪
解一豪
胡晓庆
周庆勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Co Ltd
Original Assignee
Inspur Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Software Co Ltd filed Critical Inspur Software Co Ltd
Priority to CN201811144594.8A priority Critical patent/CN109271487A/zh
Publication of CN109271487A publication Critical patent/CN109271487A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种相似文本分析方法
技术领域
本发明涉及应用数据挖掘技术领域,特别涉及一种相似文本分析方法。
背景技术
在现今互联网信息行业中,非结构化数据(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)算法,实施例如下:
字符串“验证文本相似性”的md5
10011010110010011001100011101110110111001011101111000000010111001111100000110100101011101001010001001000000010111110001000101010
字符串“验证文本相似性1”的md5
1011001010101011110111101000000111011000111101010100100011010110100111011010100101100100000000111100110100110011010110110111011
字符串“验证文本相似性”的simhash
1011100101000100010010101101001010111001011010000011110101001100
字符串“验证文本相似性1”的simhash
1011100101000100010110101101001010111001011010000011110101001100
从实施例中可以看出,md5的hash值即使只差一位也会完全不同,而simhash则不会,其中仅有一个0、1的差别,根据这一特点采用对simhash结果分组的方式进行存储可减少其比对的次数。
将simhash应用于实际环境时,需要在所述步骤(4)中,将8字节simhash值拆分4个2字节的数组,实现simhash值的分组存储。
原simhash值
1101010011001001000110001000010001011100110100001011000011100110
拆分后
1101010011001001,0001100010000100,0101110011010000,1011000011100110
所述数据库中为包含2个主键的数据库表,分组后的simhash值分4次存储数据库表中。
所述2个主键分别为分组simhash和完整simhash。
表1存储数据库表
所述相似性比较过程包括以下步骤:
(1)从数据库中查找,获取当前文本数据对应的simhash值;
(2)对当前的simhash值拆分为4组2字节分组simhash值,取出全部对应的完整simhash值;
(3)用当前文本的simhash值与取出的每个完整simhash值做海明距离计算;
(4)对计算出的全部海明距离进行排序。
该相似文本分析方法,解决了传统技术所存在的低效、计算结果存在延迟的问题;而且simhash搭配海明距离的计算方式与常见的文本距离计算方式不同,其hash值提前完成计算,避免了后续直接对文本数据的操作,提高了单次计算速度,且计算过程由之前离线定时计算改为了实时计算的方式,不在有计算结果延迟的问题,本身不需要对大数据组件进行依赖,降低了使用和维护的成本。

Claims (8)

1.一种相似文本分析方法,其特征在于:包括simhash值计算过程和相似性比较过程两部分;使用simhash计算文本simhash值,取得文本的simhash值,并将取得的simhash值分组存储到数据库中;当需要对文本的相似度进行比较时,只需要用当前文本的simhash对库中其他文本的simhash进行海明距离计算,即可找到最相近的文本。
2.根据权利要求1所述的相似文本分析方法,其特征在于:所述simhash值计算过程包括以下步骤:
(1)对文本进行解析,根据格式提取出其中的纯文本内容;
(2)使用文本关键词提取算法从文本中提取出关键词,并过滤包括停用词在内的错误关键词。
(3)使用关键词生成simhash结果;
(4)将取得的simhash值分组存储到数据库中。
3.根据权利要求2所述的相似文本分析方法,其特征在于:所述步骤(1)中,对任意数据源推送文本数据进行解析,删除其中格式信息,转换为纯文本数据。
4.根据权利要求2所述的相似文本分析方法,其特征在于:所述步骤(2)中,文本关键词提取算法采用Text Rank算法。
5.根据权利要求2所述的相似文本分析方法,其特征在于:所述步骤(4)中,simhash值分组存储是将8字节simhash值拆分4个2字节的数组,并存储到数据库中。
6.根据权利要求5所述的相似文本分析方法,其特征在于:所述数据库中为包含2个主键的数据库表,分组后的simhash值分4次存储数据库表中。
7.根据权利要求6所述的相似文本分析方法,其特征在于:所述2个主键分别为分组simhash和完整simhash。
8.根据权利要求1所述的相似文本分析方法,其特征在于:所述相似性比较过程包括以下步骤:
(1)从数据库中查找,获取当前文本数据对应的simhash值;
(2)对当前的simhash值拆分为4组2字节分组simhash值,取出全部对应的完整simhash值;
(3)用当前文本的simhash值与取出的每个完整simhash值做海明距离计算;
(4)对计算出的全部海明距离进行排序。
CN201811144594.8A 2018-09-29 2018-09-29 一种相似文本分析方法 Pending CN109271487A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811144594.8A CN109271487A (zh) 2018-09-29 2018-09-29 一种相似文本分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811144594.8A CN109271487A (zh) 2018-09-29 2018-09-29 一种相似文本分析方法

Publications (1)

Publication Number Publication Date
CN109271487A true CN109271487A (zh) 2019-01-25

Family

ID=65198818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811144594.8A Pending CN109271487A (zh) 2018-09-29 2018-09-29 一种相似文本分析方法

Country Status (1)

Country Link
CN (1) CN109271487A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297879A (zh) * 2019-05-15 2019-10-01 平安科技(深圳)有限公司 一种基于大数据的数据去重的方法、装置及存储介质
CN110309279A (zh) * 2019-05-23 2019-10-08 平安国际智慧城市科技股份有限公司 基于语言模型的话语训练方法、装置及计算机设备
CN110738020A (zh) * 2019-10-25 2020-01-31 重庆誉存大数据科技有限公司 一种基于spark的批量方法
CN111143744A (zh) * 2019-12-26 2020-05-12 杭州安恒信息技术股份有限公司 一种web资产检测的方法、装置、设备及可读存储介质
CN113129056A (zh) * 2021-04-15 2021-07-16 微梦创科网络科技(中国)有限公司 一种控制广告投放频次的方法及系统
CN113407495A (zh) * 2021-06-29 2021-09-17 北京鼎普科技股份有限公司 一种基于simhash的文件相似度判定方法及系统
CN116226681A (zh) * 2023-02-22 2023-06-06 北京麦克斯泰科技有限公司 一种文本相似性判定方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120284270A1 (en) * 2011-05-04 2012-11-08 Nhn Corporation Method and device to detect similar documents
CN103123618A (zh) * 2011-11-21 2013-05-29 北京新媒传信科技有限公司 文本相似度获取方法和装置
CN107315809A (zh) * 2017-06-27 2017-11-03 山东浪潮通软信息科技有限公司 一种基于Spark平台的集团新闻数据预处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120284270A1 (en) * 2011-05-04 2012-11-08 Nhn Corporation Method and device to detect similar documents
CN103123618A (zh) * 2011-11-21 2013-05-29 北京新媒传信科技有限公司 文本相似度获取方法和装置
CN107315809A (zh) * 2017-06-27 2017-11-03 山东浪潮通软信息科技有限公司 一种基于Spark平台的集团新闻数据预处理方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297879A (zh) * 2019-05-15 2019-10-01 平安科技(深圳)有限公司 一种基于大数据的数据去重的方法、装置及存储介质
WO2020228182A1 (zh) * 2019-05-15 2020-11-19 平安科技(深圳)有限公司 基于大数据的数据去重的方法、装置、设备及存储介质
CN110297879B (zh) * 2019-05-15 2023-05-30 平安科技(深圳)有限公司 一种基于大数据的数据去重的方法、装置及存储介质
CN110309279A (zh) * 2019-05-23 2019-10-08 平安国际智慧城市科技股份有限公司 基于语言模型的话语训练方法、装置及计算机设备
CN110738020A (zh) * 2019-10-25 2020-01-31 重庆誉存大数据科技有限公司 一种基于spark的批量方法
CN111143744A (zh) * 2019-12-26 2020-05-12 杭州安恒信息技术股份有限公司 一种web资产检测的方法、装置、设备及可读存储介质
CN111143744B (zh) * 2019-12-26 2023-10-13 杭州安恒信息技术股份有限公司 一种web资产检测的方法、装置、设备及可读存储介质
CN113129056A (zh) * 2021-04-15 2021-07-16 微梦创科网络科技(中国)有限公司 一种控制广告投放频次的方法及系统
CN113407495A (zh) * 2021-06-29 2021-09-17 北京鼎普科技股份有限公司 一种基于simhash的文件相似度判定方法及系统
CN116226681A (zh) * 2023-02-22 2023-06-06 北京麦克斯泰科技有限公司 一种文本相似性判定方法、装置、计算机设备和存储介质
CN116226681B (zh) * 2023-02-22 2023-11-28 北京麦克斯泰科技有限公司 一种文本相似性判定方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN109271487A (zh) 一种相似文本分析方法
US8175875B1 (en) Efficient indexing of documents with similar content
CN108573045B (zh) 一种基于多阶指纹的比对矩阵相似度检索方法
US8244767B2 (en) Composite locality sensitive hash based processing of documents
CN107153647B (zh) 进行数据压缩的方法、装置、系统和计算机程序产品
EP2742446B1 (en) A system and method to store video fingerprints on distributed nodes in cloud systems
KR20130062889A (ko) 데이터 압축 방법 및 시스템
US9740734B2 (en) Group-by processing for data containing singleton groups
CN103593418A (zh) 一种面向大数据的分布式主题发现方法及系统
CN112115232A (zh) 一种数据纠错方法、装置及服务器
CN101079024A (zh) 一种专业词表动态生成系统和方法
CN105512143A (zh) 一种网页分类方法及装置
US20180232461A1 (en) Search processing method and device
US20240095170A1 (en) Multi-cache based digital output generation
CN111190873B (zh) 一种用于云原生系统日志训练的日志模式提取方法及系统
CN105404677A (zh) 一种基于树形结构的检索方法
CN109670153B (zh) 一种相似帖子的确定方法、装置、存储介质及终端
CN108595437B (zh) 文本查询纠错方法、装置、计算机设备和存储介质
CN109815475B (zh) 文本匹配方法、装置、计算设备及系统
CN116822491A (zh) 日志解析方法及装置、设备、存储介质
CN113420219A (zh) 用于查询信息纠错的方法、装置、电子设备及可读存储介质
JP6291435B2 (ja) プログラムおよびクラスタシステム
CN111639099A (zh) 全文索引方法及系统
Kelec et al. One approach for full-text search of files in MongoDB based systems
Mohammadi et al. Multi-reference Cosine: A New Approach to Text Similarity Measurement in Large Collections

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20190125

RJ01 Rejection of invention patent application after publication