CN109271487A - 一种相似文本分析方法 - Google Patents
一种相似文本分析方法 Download PDFInfo
- 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
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)对计算出的全部海明距离进行排序。
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)
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)
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平台的集团新闻数据预处理方法 |
-
2018
- 2018-09-29 CN CN201811144594.8A patent/CN109271487A/zh active Pending
Patent Citations (3)
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)
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 | |
US9740734B2 (en) | Group-by processing for data containing singleton groups | |
KR20130062889A (ko) | 데이터 압축 방법 및 시스템 | |
CN107291914A (zh) | 一种生成搜索引擎查询扩展词的方法及系统 | |
CN112115232A (zh) | 一种数据纠错方法、装置及服务器 | |
CN103593418A (zh) | 一种面向大数据的分布式主题发现方法及系统 | |
CN105512143A (zh) | 一种网页分类方法及装置 | |
US20180232461A1 (en) | Search processing method and device | |
US11853217B2 (en) | Multi-cache based digital output generation | |
CN108595437B (zh) | 文本查询纠错方法、装置、计算机设备和存储介质 | |
CN105404677A (zh) | 一种基于树形结构的检索方法 | |
CN111190873B (zh) | 一种用于云原生系统日志训练的日志模式提取方法及系统 | |
CN109670153B (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 |