CN107025218B - 一种文本去重方法和装置 - Google Patents

一种文本去重方法和装置 Download PDF

Info

Publication number
CN107025218B
CN107025218B CN201710225086.1A CN201710225086A CN107025218B CN 107025218 B CN107025218 B CN 107025218B CN 201710225086 A CN201710225086 A CN 201710225086A CN 107025218 B CN107025218 B CN 107025218B
Authority
CN
China
Prior art keywords
text
deduplicated
sub
string
deduplication
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.)
Active
Application number
CN201710225086.1A
Other languages
English (en)
Other versions
CN107025218A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710225086.1A priority Critical patent/CN107025218B/zh
Publication of CN107025218A publication Critical patent/CN107025218A/zh
Priority to PCT/CN2018/082107 priority patent/WO2018184588A1/zh
Priority to US16/441,669 priority patent/US11379422B2/en
Application granted granted Critical
Publication of CN107025218B publication Critical patent/CN107025218B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Abstract

本发明实施例公开了一种文本去重方法和装置;本发明实施例采用获取文本集合,该文本集合包括多个待去重文本,然后,针对每个待去重文本,从待去重文本中截取相应的子文本串,在该文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合,分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合,根据每种子文本串对应的去重后文本集合,获取该文本集合去重后的结果文本集合;该方案可以极大地降低去重过程中需要两两比较的文本数量,降低文本去重的时间复杂度,从而提高文本去重效率。

Description

一种文本去重方法和装置
技术领域
本发明涉及计算机技术领域,具体涉及一种文本去重方法和装置。
背景技术
目前,在互联网中充斥着海量的文本,并且包含有大量的重复文本内容。如果在互联网中存在大量的重复文本,那么一方面降低了整体的文本质量,另一方面会浪费大量的存储资源。
为了节省存储资源,需要去除互联网中重复的文本内容。目前的文本去重方式为:将多个待去重文本进行两两比较,基于比较结果将重复的文本去除。然而,目前文本去重方式在由于需要将待重文本两两进行比较,在面对海量待去重文本时,会花费大量时间。因此,目前的文本去重方式的时间复杂度较高,会导致文本去重效率比较低。
发明内容
本发明实施例提供一种文本去重方法和装置,可以提高文本去重效率。
本发明实施例提供一种文本去重方法,包括:
获取文本集合,所述文本集合包括多个待去重文本;
针对每个待去重文本,从待去重文本中截取相应的子文本串;
在所述文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合;
分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合;
根据每种子文本串对应的去重后文本集合,获取所述文本集合去重后的结果文本集合。
相应的,本发明实施例还提供一种文本去重装置,包括:
文本获取单元,用于获取文本集合,所述文本集合包括多个待去重文本;
截取单元,用于针对每个待去重文本,从待去重文本中截取相应的子文本串;
确定单元,用于在所述文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合;
去重单元,用于分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合;
结果获取单元,用于根据每种子文本串对应的去重后文本集合,获取所述文本集合去重后的结果文本集合。
本发明实施例采用获取文本集合,该文本集合包括多个待去重文本,然后,针对每个待去重文本,从待去重文本中截取相应的子文本串,在该文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合,分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合,根据每种子文本串对应的去重后文本集合,获取该文本集合去重后的结果文本集合。该方案可以通过对具有相同子文本串的子文本集合进行文本去重处理,从而实现对整个文本集合的文本去重处理;其无需对整个文本集合中的文本进行两两比较去重,并可以将在全局上进行文本两两比较去重变为只需对同一子文本串下的文本进行去重,因此,可以极大地降低了去重过程中需要两两比较的文本数量,降低文本去重的时间复杂度,提高文本去重效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的文本去重方法的流程示意图;
图1b是本发明实施例提供的待去重文本的示意图;
图1c是本发明实施例提供的子文本串截取示意图;
图1d是本发明实施例提供的文本去重算法的示意图;
图2a是本发明实施例提供的文本去重方法的流程示意图;
图2b是本发明实施例提供的索引关键词下的文本去重示意图;
图3是本发明实施例提供的文本去重装置的结构示意图;
图4是本发明实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种文本去重方法和装置。以下将分别进行详细说明。
实施例一、
本实施例将从文本去重装置的角度进行描述,该文本去重装置具体可以集成在服务器,比如文本去重服务器等设备中。
一种文本去重方法,包括:获取文本集合,该文本集合包括多个待去重文本,然后,针对每个待去重文本,从待去重文本中截取相应的子文本串,在该文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合,分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合,根据每种子文本串对应的去重后文本集合,获取该文本集合去重后的结果文本集合。
如图1a所示,该文本去重方法的具体流程可以如下:
101、获取文本集合,该文本集合包括多个待去重文本。
其中,文本集合可以包含至少两个待去重文本,如包含待去重文本t1、待去重文本t2……待去重文本tn,n大于等于2,且为正整数。该待去重文本为需要进行文本去重的文本,该文本可以包括文字等内容。此外,该文本还可包含图片等。
本实施例的文本去重指的是:去除文本集合中相似或者相同的文本。本实施例去重方法基于这样一个事实:任意两个可判定的相似文本,必定在一个或多个子文本串上是完全一致的。
102、针对每个待去重文本,从待去重文本中截取相应的子文本串。
具体地,可以针对每个待去重文本,从待去重文本中截取相应的子文本串,得到每个待去重文本对应的文本串集合。
例如,针对去重文本t1、待去重文本t2……待去重文本tn,可以从待去重文本t1中截取相应的子文本串,得到t1对应的文本串集合W1;从待去重文本t2可以从待去重文本t2中截取相应的子文本串,得到t2对应的文本串集合W2;……可以从待去重文本tn中截取相应的子文本串,得到tn对应的文本串集合Wn。
其中,子文本串可以为字符串,该字符串可以由若干字符单元组成。该字符单元可以为单个字符,比如一个文字、字母或者符号等;此时,子文本串为由若干个字符组成的字符串。例如,参考图1b,该子文本串可以包括“随着新”。
该字符单元还可以由多个字符组成;比如,该字符单元可以为词组等。实际应用中该字符单元可以为对待去重文本进行分词处理得到的词组。例如,参考图1b,该子文本串可以包括“随着”、“新手机”、“发布”、“热潮”等。此时,步骤“针对每个待去重文本,从待去重文本中截取相应的子文本串”可以包括:
针对每个待去重文本,对待去重文本进行分词处理,得到相应的词组集合;
从词组集合中截取相应的子文本串。
例如,对待去重文本t1进行分词处理,得到t1对应的词组集合C1,从词组集合C1中截取相应的子文本串,得到t1对应的文本串集合W1;对待去重文本t2进行分词处理,得到t1对应的词组集合C2,从词组集合C2中截取相应的子文本串,得到t2对应的文本串集合W2;……对待去重文本tn进行分词处理,得到tn对应的词组集合Cn,从词组集合Cn中截取相应的子文本串,得到tn对应的文本串集合Wn。
可选地,为了减少截取的子文本串的数量,降低文本去重的时间复杂度,提高文本去重的效率,本实施例还可以去掉某些词组之后从剩下来的词组截取相应的子文本串。也即,步骤“从词组集合中截取相应的子文本串”可以包括:
按照预设词删除规则将相应的词组从词组集合中删除,得到删除后词组集合;
从删除后词组集合中截取相应的子文本串。
该预设词删除规则可以根据实际需求设定,比如,可以删除一些助词(如“的”)等。
此外,在一些实施方式中,该字符单元还可以为语句;比如,该字符单元可以为对待去重文本进行语句划分得到的语句。例如,参考图1b,该子文本串可以包括“随着新手机发出热潮的到来”等。
可选地,本实施例可以采用滑动截取的方式来截取子文本串;具体,步骤“针对每个待去重文本,从待去重文本中截取相应的子文本串”可以包括:
获取子文本串的截取长度;
针对每个待去重文本,根据该截取长度从待去重文本中滑动截取若干子文本串。
其中,子文本串的截取长度为需要截取的子文本串的长度。本实施例中子文本串的长度指的是:子文本串包含的字符单元数量。
具体地,当字符单元为单个字符时,那么子文本串的长度即为子文本串所包含的字符数量;比如,子文本串为“随着新”时,由于该子文本串包含3个字符,因此,该子文本串的长度为3,也即截取长度为3。
当字符单元为词组时,那么子文本串的长度即为子文本串所包含的词组数量;比如,子文本串为“随着新手机”时,由于该子文本串包含2个词组“随着”、“新手机”,因此,该子文本串的长度为2,也即截取长度为2。
本实施例中截取长度不能超过预设阈值,如果截取长度超过了该阈值,文本之间便不再会存在相同的子文本串,因而算法自始至终都不会去比较这两个文本,从而无法达到去重的目的,这个阈值便被定义为文本之间的最大可去重长度。
以t1和t2两个相似文本为例,在去重后,其中一个文本被去除;获取二者之间完全一致的最大连续子文本串,假设有k个,它们组成一个集合,将其定义为A={a1,a2,...,ak},这些子文本串的长度也对应一个集合L={l1,l2,...,lk};此时,则两个文本之间的最大可去重长度为:
Figure BDA0001264961880000061
在所有的全局文本上去重的话,相应的也有一个全局去重长度m(也即子文本串的截取长度),它表征了如果要将这部分全局文本中的相似文本进行去重的话,针对每一个文本需要选取一个合适的截取长度。一般来说,全局去重长度的选择跟去重率和算法的时间复杂度相关,实际选择的时候,都是去重率和时间复杂度的折中考虑。
本实施例中,如果全局去重长度选择的越小,文本的去重效果越好(去重率会增大),但相应的时间复杂度也越高。全局去重长度选择越大,相似文本去重的效果变差(部分相似文本不会得到比较),但时间复杂度会降低。这里的原因是:如果全局去重长度选择的较高,就会大于很多相似文本的最大可去重长度,因而这些相似文本便不再会判定为相似文本,去重率因而会下降,但也正是因为比较次数减少,时间复杂度会降低。相反,随着全局去重长度的减小,更多的相似文本会划分到同一个子文本串下,经过相似度计算之后,相应的相似文本也会被去除掉,因而全局的去重率会上升,由于比较次数增多,时间复杂度会增大。因此,在实际应用中,可以综合考虑去重率和时间复杂度来确定子文本串的截取长度。
本实施例可以通过样例文本集来确定全局去重长度m,此时,该全局去重长度为理论全局去重长度。比如,可以从真实文本中抽样出相似文本,得到相似文本集C,然后,根据相似文本集C确定全局去重长度m。经过多次实验表明,通常来说当m>=4(一般对应两个中文词或者4个文字),进行文本去重时,时间复杂度已经降低到可以接受的范围。
实际应用中,可以基于抽样计算得到的理论全局去重长度、以及文本之间最大可去重长度来确定文本串的截取长度。比如,当抽样计算得到的理论全局去重长度为4时,可以通过以下公式来计算实际全局去重长度m:
Figure BDA0001264961880000062
本实施例在获取截取长度后,可以将截取长度与待去重文本的长度进行比较,基于截取长度与待去重文本的长度大小关系来采用不同方式截取子文本串。具体地,步骤“根据该截取长度从待去重文本中滑动截取若干子文本串”可以包括:
当该待去重文本的长度大于或等于该截取长度时,根据该截取长度从待去重文本中滑动截取若干子文本串,该子文本串的长度等于该截取长度;
当该待去重文本的长度小于该截取长度时,将该待去重文本作为子文本串,即将截取整个待去重文本作为子文本串。
其中,该待去重文本的长度为待去重文本包含的字符单元的数量,比如,待去重文本包含的字符或者词组的数量。例如,当待去重文本包含80个词时,该待去重文本的长度即为80。
当该待去重文本的长度大于或等于该截取长度时,截取的子文本串的数量可以为待去重文本的长度与截取长度之差加1。
例如,假定某个待去重的文本t,其长度为n。定义S为截取的子文本串的集合即文本串集合,根据m和n的大小关系,有下列两种情况:
(1)、当n>=m时,可以按照m的大小截取出一文本子串的集合,该集合的大小为n-m+1,用符号表示为S={s1,s2,...,sn-m+1};
(2)、当n<m时,无法截取长度为m的子串,因此将整个文本作为一个整体加入到子串集合当中,因此有S={t}。
本实施例中滑动截取子文本串的过实现方式为:构建一长度为截取长度的滑动窗,然后,按照预定滑动方向和预定滑动长度在待去重文本中滑动该滑动窗以截取若干子文本串。也即步骤“根据该截取长度从待去重文本中滑动截取若干子文本串”可以包括:
根据截取长度创建一滑动窗,该滑动窗的长度等于该截取长度;
按照预定滑动方向和预定滑动长度在待去重文本中,滑动该滑动窗以截取若干子文本串。
本实施例中,预定滑动方向为滑动窗口在文本中滑动方向,其根据实际需求设定,比如,可以为文本第一个字符单元向文本最后一个字符单元的方向等。该预定滑动长度为滑动窗口每次滑动的长度或者步进,该长度为滑动窗口每次需要滑过的字符单元的数量。比如,当每次需要滑过1个字符单元时,该滑动长度即为1。
参考图1c,假设字符单元为单个字符,且截取长度为4时,文本t的长度为32大于4,因此,可以按照从文本头部到尾部的方向、以滑动长度为1来截取子文本串,分别为“随着新手”、“着新手机”、“新手机发”……。
103、在该文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合。
其中,子文本串对应的子文本集合包括具有该子文本串的待去重文本。比如,t1中子文本串s1对应的子文本集合包括所有具有子文本串s1的待去重文本,如当待去重文本t2、待去重文本t3、待去重文本t4均具有该子文本串s1时,那么s1对应的子文本集合包含t1、t2、t3、t4。
例如,假设去重文本t1、待去重文本t2、待去重文本t3的长度均为n,截取长度为m;此时针对去重文本t1、待去重文本t2、待去重文本t3分别截取子文本串后,可以得到t1对应的文本串集合W1{w11、w12、w13……w1(n-m+1)};t2对应的文本串集合W2{w21、w22、w13……w1(n-m+1)};t3对应的文本串集合W3{w31、w32、w33……w3(n-m+1)}。其中,文本串集合中每个子文本串由若干字符单元组成,其可以与截取长度相等。
本实施例中,可以确定具有w11的所有待去重文本,如当w11、w21、w31相同时,那么此时,便可以确定具有w11的待去重文本为t1、t2、t3;确定具有w12的所有待去重文本,如当w12、w22w32相同时,那么边可以确定具有w12的待去重文本为t1、t2、t3;确定具有w13的所有待去重文本……具有w1(n-m+1)的所有待去重文本、具有w22的所有待去重文本……具有w32的所有待去重文本;这样最后便可以得到各种不同的子文本串对应的子文本集合。
本实施例中,确具有相同子文本串的待去重文本的可以有多种,比如,为了提高具有相同子文本串的待去重文本的速度,以提高文本去重效率,本实施例可以采用倒排索引的方式来确定具有相同子文本串的待去重文本;具体地,步骤“在该文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合”可以包括:
针对每个待去重文本,建立待去重文本与其文本串集合内子文本串的倒排索引;
基于该倒排索引从该文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合。
其中,倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文本我们称为倒排索引文本,简称倒排文本(inverted file)。
本实施例中待去重文本与其文本串集合内子文本串的倒排索引可以:由文本集合内子文本串来确定待去重文本。该倒排索引可以包括多个索引条目或者索引对,每个索引条目或者索引对包括索引关键词及其对应的索引项,其中,索引关键词可以为子文本串,索引项可以为子文本串对应的待去重文本。因此,本实施例中建立待去重文本与其文本串集合内子文本串的倒排索引,即为建立表征子文本串与待去重文本之间的对应关系的索引对或者索引条目。具体地,步骤“针对每个待去重文本,建立待去重文本与其文本串集合内子文本串的倒排索引”可以包括:
针对每个待去重文本,将待去重文本对应的文本串集合内子文本串作为索引关键词,并将该待去重文本作为该索引关键词对应的索引对象;
将该索引关键词及其对应的索引对象组成相应的索引对,以得到待去重文本与其文本串集合内子文本串的倒排索引;
此时,步骤“基于该倒排索引从该文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合”可以包括:
从索引对中确定同一索引关键词下的索引对象,得到每种索引关键词下的对象集合,进而得到每种子文本串对应的子文本集合。
例如,在得到每一个待去重文本对应的文本串集合之后,可以针对每个文本t,遍历该文本对应的文本串集合中的子文本串,将该集合中的每一个子文本串作为key(即索引关键词),并将其对应的原始文本t作为对应value(即索引对象),然后组合成一个key-value对(即索引对),这样便可以得到该文本与文本串集合之间的倒排所有。当所有文本的文本串集合遍历结束后,便可以得到每一个文本与其对应的(如n-m+1个)子文本串的倒排索引。
例如,假设针对长度均为n的去重文本t1、待去重文本t2、待去重文本t3分别截取子文本串后,可以得到t1对应的文本串集合W1{w11、w12、w13……w1(n-m+1)};t2对应的文本串集合W2{w21、w22、w13……w1(n-m+1)};t3对应的文本串集合W3{w31、w32、w33……w3(n-m+1)}。之后,可以建立t1与文本串集合W1的倒排索引,具体地,遍历W1中的子文本串,将当前遍历到的子文本串w1i作为索引关键词key1i,并将t1作为索引对象value1,然后,组成索引对(key1i,value1),其中1≤i≤n,且为正整数。这样便可以得到索引对:(key11,value1)、(key12,value1)、……(key1i,value1)、……(key1n,value1)。同样遍历W2中的子文本串,将当前遍历到的子文本串w2i作为索引关键词key2i,并将t2作为索引对象value2,然后,组成索引对(key2i,value2).这样便可以得到(key21,value2)、(key22,value2)、……(key2i,value2)、……(key2n,value2)。同样还可以遍历W3中的子文本串,将当前遍历到的子文本串w3i作为索引关键词key3i,并将t3作为索引对象value3,然后,组成索引对(key3i,value3).这样便可以得到(key31,value3)、(key32,value3)、……(key3i,value3)、……(key3n,value3)。最后便可以得到t1与W1中子文本串的倒排索引、t2与W2中子文本串的倒排索引、t3与W3中子文本串的倒排索引。
在得到每个待去除文本与其文本串集合内子文本串的倒排索引之后,可以从各索引对中确定同一索引关键词下的索引对象,得到每种索引关键词下的对象集合,某种索引关键词下的对象集合包括索引关键词均为该种索引关键词的索引对象,比如key11下的子文本集合包括key为key1的value。由于索引关键词即为子文本串,索引对象即为待去重文本,那么每种索引关键词对应的对象集合即为每种子文本串对应的子文本集合。比如,在得到key-value对之后,可以按照索引key值的不同,将同一个索引key值下的所有文本(即索引对象value)进行聚合,得到索引key值下的文本集合。
例如,在得到t1与W1中子文本串的倒排索引、t2与W2中子文本串的倒排索引、t3与W3中子文本串的倒排索引之后,按照key的不同,可以确定不同key下的索引,然后聚合得到不同key下的对象集合,比如,当文本长度n=7、截取长度m=4时,如果key11、key21、key31相同时,那么可以确定key11下的对象集合为{t1、t2、t3};如果key12与key22相同,但与key32不同时,可以确定key12下的对象集合为{t1、t2}、key32下的对象集合为{t3};如果key13、key23、key34相同,那么可以确定key13下的对象集合为{t1、t2、t3};如果key14与key24不同、与key34相同,可以确定key14下的对象集合为{t1、t3}、key24下的对象集合为{t2}。
104、分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合。
在得到每种子文本串对应的子文本集合之后,可以针对每种子文本串,对其子文本集合中的待去重文本进行去重处理,从而实现文本集合的去除;如可以对其子文本集合中的待去重文本进行两两比较去重处理。
根据上述介绍,任意两个可判定的相似文本t1和t2,必定在一个或多个子文本串上是完全一致的。这些完全一致的最大连续子串组成了一个集合A={a1,a2,...,ak},针对t1和t2划分子文本串(如m-gram子串)的过程中,假定可以分别得到文本串集合A1和A2,不妨假设A中有一个子串为ai,它的长度|ai|大于全局去重长度m,那么一定可以将该子串ai划分为|ai|-m+1个子文本串(如m-gram子串),并且这些子文本串一定会既存在于A1中,也会存在于A2中。更进一步,t1和t2都会同时出现在以这|ai|-m+1个m-gram子串为key的倒排索引中。因此,通过对同一子文本串(或同一索引关键词)下的文本进行去重,可以实现在全局上对文本进行去重。
在去重时,可以针对每种子文本串对应的所有待去重文本进行两两比较去重。在具体实施时,可以通过动态维护一个结果集来实现同一子文本串下的文本两两比较去重。具体地,步骤“分别对每种子文本串对应的子文本集合进行文本去重处理”可以包括:
针对每种子文本串,从该种子文本串对应的子文本集合中选取一个待去重文本作为种子文本,并将种子文本添加到空的去重结果集合中;
遍历子文本集合中的待去重文本,并确定当遍历到的待去重文本、与去重结果集合中的文本是否为相似文本;
若否,则将当前遍历到的待去重文本添加至该去重结果集合中,并遍历该子文本集合中下一个待去重文本;
若是,则遍历该子文本集合中下一个待去重文本;
当遍历完子文本集合内所有文本时,将该去重结果集合作为该种子文本串对应的去重后文本集合。
本实施例可以对某种子文本串(即索引关键词)下的待去重文本进行两两对比去重的方式为:动态维护一个结果集,初始状态下随机从该子文本串(即该索引关键词)下的文本中选取一条作为种子文本,随后遍历该子文本串(即该索引关键词)的待去重文本,尝试将遍历到的每一条文本添加到结果集中。具体地文本添加的过程为:判断该遍历到的文本与结果集中的每一条文本是否为相似文本,果与结果集中某条文本是相似文本,则退出结果集的遍历,遍历下一条待去重文本;如果结果集中完全遍历仍未发现相似文本,则表明此次待去重文本和已知结果集中的文本没有任何重复,因此将该文本添加到结果集中,并遍历下一个待去重文本。
比如,在得到某个key1i下的对象集合{t1、t2、t3、t4}后,可以随机选取t3作为种子文本并添加到空的去重结果集合中,此时,去重结果集合为{t3},随后遍历key1i下的对象集合{t1、t2、t3、t4};当遍历到t1时,判断t1是否与去重结果集合中t3为相似文本,若否,则将t1添加到去重结果集合中,此时去重结果集合为{t1、t3},然后遍历t2;若是,则遍历t2。假设t1与t3不为相似文本,当遍历到t2时,如果t2与去重结果集合中t1、t3任一文本为相似文本,则遍历下一个文本t3,如果t2与去重结果集合中t1、t3任一文本不为相似文本,则将t2添加到去重结果集合中,此时去重结果集合为{t1、t2、t3};当遍历到t3,很明显t3与去重结果集合中t3为相同文本,此时,遍历t4,假设t2与去重结果集合中t1、t3中任一文本不为相似文本时,如果t4与去重结果集合中t1、t2、t3任一文本为相似文本,则遍历结束,如果t2与去重结果集合中t1、t2、t3中任一文本不为相似文本,则将t4添加到去重结果集合中,此时去重结果集合为{t1、t2、t3、t4},且结束遍历。最后当遍历结束后,可以将去重结果集作为该种子文本串对应的去重后文本集合。如,将去重结果集合为{t1、t2、t3、t4}作为key1i对应的去重后文本集合。
本实施例中,确定两个文本是否为相似文本的方式可以有多种,比如,可通过获取两个文本之间的相似度参数,基于相似度参数来确定是否为相似文本;也即步骤“确定当前遍历到的待去重文本、与去重结果集合中的文本是否为相似文本”可以包括:
获取当前遍历到的待去重文本与该去重结果集合中文本之间的相似度参数;
根据该相似度参数确定当遍历到的待去重文本与去重结果集合中的文本是否为相似文本。
其中,相似度参数可以包括:Jaccard相似度、编辑距离、汉明距离、语义距离等等。
编辑距离通常是指莱文斯坦距离,可以作为两个文本之间的相似性度量;它的定义是:给定两个字符串,它们之间的编辑距离便是将其中一个字符串转换为另一个字符串需要操作的最少次数,这里的操作被限定为三种:针对一个字符的插入、删除或者替换。
语义距离是从语义角度同样可以度量两个文本之间的相似性,而计算两个文本之间的语义距离需要用到一些诸如主题模型和Word2Vec等方法,基本方法都是将待比较的文本转化为语义层面的表现形式,从而通过各种距离表征方法计算得到两个文本之间的语义距离。
汉明距离可以基于simHash算法得到,simHash是一种局部敏感的Hash算法,其最大特点是对于相似的文本,相应simHash串也是相似的,也就是两个文本的simHash签名值的相似性直观的反映了原始文本的相似性,这便给文本去重带来了可能。待比较的文本经过simHash算法的映射之后,会得到一个01串,相似文本之间得到的01串只在少数几个位置上的0和1不一样,其他大多数位置上是完全一致的。为了表征原始文本的相似度,可以计算两个01串之间0或1不同的位置数量,得到的值便是汉明距离,用来表征simHash算法下两个文本之间的相似度,通常来说,越相似的文本,对应simHash指纹之间的汉明距离越小。
在实际应用中,该相似度参数可以为文本相似度,如Jaccard相似度。具体地,可以将待比较的文本进行分词,得到两个词组集合,然后,基于这两个词组集合获取文本相似度;也即步骤“获取当前遍历到的待去重文本与去重结果集合中文本之间的相似度参数”可以包括:
分别对当前遍历到的待去重文本、以及去重结果集合中文本进行分词组处理,得到当前遍历到的待去重文本对应的第一词组集合、以及去重结果集合中文本对应的第二词组集合;
根据该第一词组集合和该第二词组集合,获取当前遍历到的待去重文本以及去重结果集合中文本之间的文本相似度。
比如,可以获取第一词组集合和该第二词组集合的词组交集和并集,然后,基于交集和并集来获取文本相似度,具体地根据交集中词组的数量和并集中词组的数量计算文本相似度。例如,将待比较的文本进行分词,假定两个待比较的文本分词后的集合分别为A和B,那么按照Jaccard相似度的定义可以得到这两个文本的相似度:
Figure BDA0001264961880000141
在获取相似度参数之后,可以根据相似度参数值可以预设阈值的比较结果来确定两个比较的文本是否为相似文本,比如,当相似度参数值大于预设阈值时,则认定两个比较的文本是相似文本,反之,当相似度参数值不大于预设阈值时,则认定两个比较的文本不是相似文本。
例如,以相似度参数为Jaccard相似度为例,两个完全不一致的文本其Jaccard相似度为0,相反两个完全一样的文本其Jaccard相似度为1,因此Jaccard相似度是一个介于0和1之间的数,去重的时候,可以根据实际需要决定一个合适的阈值,大于该阈值的都将被判定为相似文本从而被去掉。
可选地,为减轻服务器去重计算压力,提高去重速度,本实施例可以采用并行的方式同时对多种子文本串的子文本集合进行去除处理。比如,可以采用多个不同的设备分别对相应的子文本串的子文本集合进行去重处理,然后,从多个不同的设备获取去除结果,进而得到文本集合去重后的结果文本集合。也即步骤“分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合”可以包括:
分别将每种子文本串对应的子文本集合发送至相应的设备,以便该设备对相应子文本串的子文本集合进行文本去重处理;
接收设备返回的相应子文本串的去重后文本集合,得到每种子文本串对应的去重后文本集合。
例如,将每个文本划分到对应的索引关键词之后,可以以每一个索引关键词作为key进行hash,并根据hash值将所有待去重文本分配到相应的机器节点,分布式集群中的每一个工作节点只需负责本机器下的去重工作,然后,接收个机器节点返回的去重结果。在每一个工作节点都完成去重工作之后,每一个索引关键词中留下的都是非重复文本,将这些文本重新汇聚到一起便组成了去重之后的结果集了。
105、根据每种子文本串对应的去重后文本集合,获取该文本集合去重后的结果文本集合。
在得到每种子文本串对应的去重后文本集合,即得到每种索引关键词下的去重后文本集合之后,可以对每种子文本串对应的去重后文本集合进行相同文本去重处理(多个相同文本只留一个文本),得到文本集合去重后的结果文本集合。比如,可以将每种子文本串对应的去重后文本集合进行聚合,得到初步结果文本集合,然后,对初步结果文本集合中相同的文本进行去重。
例如,key11的去重后文本集合为{t1、t2}、key23的去重后文本集合为{t1、t2、t3},那么由于两个集合中均存在t1、t2,此时便可以去除掉一个t1和t2,最终得到结果文本集合{t1、t2、t3}。
参考图1d,采用本发明实施例的文本去重方法对待去重文本t1、t2……tn进行去除的流程示意图。以字符单元为单个文字字符,且截取长度m=4为例,首先针对每个待去重文本,根据截取长度m从每个待去重文本中滑动截取子文本串,如从t1和t2中分别截取的子文本串为“BAT是”、“AT是中”、“T是中国”……等等;然后,确定具有相同子文本串的待去重文本,得到每种子文本串的子文本集合,如“BAT是”对应的子文本集合{t1、t2……}、“AT是中”对应的子文本集合{t1、t2……}、“T是中国”对应的子文本集合{t1、t2……}……。接着,可以并行地对每种子文本串的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合,如“BAT是”对应的去重后文本集合{t1、……}、“AT是中”对应的去重后文本集合{t1、……}、“T是中国”对应的去重后文本集合{t1、……}……最后,对每种子文本串对应的去重后文本集合进行聚合以及相同文本去除,得到去重后的结果文本集合如{t1、……},进而实现对文本去重。
由上可知,本发明实施例采用获取文本集合,该文本集合包括多个待去重文本,然后,针对每个待去重文本,从待去重文本中截取相应的子文本串,在该文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合,分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合,根据每种子文本串对应的去重后文本集合,获取该文本集合去重后的结果文本集合。该方案可以通过对具有相同子文本串的子文本集合进行文本去重处理,从而实现对整个文本集合的文本去重处理;其无需对整个文本集合中的文本进行两两比较去重,并可以将在全局上进行文本两两比较去重变为只需对同一子文本串下的文本进行去重,因此,可以极大地降低了去重过程中需要两两比较的文本数量,降低文本去重的时间复杂度,提高文本去重效率。
实施例二、
根据实施例一所描述的方法,以下将举例作进一步详细说明。
本发明实施例以文本去重装置集成在服务器中为例来介绍本发明提供的文本去重方法。
如图2a所示,一种文本去重方法,具体流程可以如下:
201、服务器获取文本集合,该文本集合包括多个待去重文本。
其中,文本集合可以包含至少两个待去重文本,如包含待去重文本t1、待去重文本t2……待去重文本tn,n大于等于2,且为正整数。该待去重文本为需要进行文本去重的文本,该文本可以包括文字等内容。此外,该文本还可包含图片等,。比如,该待去重文本可以为网页文本等。
202、服务器获取子文本串的截取长度。
其中,子文本串可以为字符串,该字符串可以由若干字符单元组成。该字符单元可以为单个字符,比如一个文字、字母或者符号等;此时,子文本串为由若干个字符组成的字符串。
该字符单元还可以由多个字符组成;比如,该字符单元可以为词组等。实际应用中该字符单元可以为对待去重文本进行分词处理得到的词组。
其中,子文本串的截取长度为需要截取的子文本串的长度。本实施例中子文本串的长度指的是:子文本串包含的字符单元数量。
具体地,当字符单元为单个字符如文字字符时,那么子文本串的长度即为子文本串所包含的字符数量;当字符单元为词组时,那么子文本串的长度即为子文本串所包含的词组数量。
可选地,本实施例可以综合考虑去重率和时间复杂度来确定一个合适的子文本串的截取长度,既能保证去重率和时间复杂度。实际应用中,可以基于抽样计算得到的理论全局去重长度、以及文本之间最大可去重长度来确定文本串的截取长度。比如,当抽样计算得到的理论全局去重长度为4时,可以通过以下公式来计算实际全局去重长度m:
Figure BDA0001264961880000171
其中,
Figure BDA0001264961880000172
为两个文本之间的最大可去重长度。
203、服务器针对每个待去重文本,根据该截取长度从待去重文本中滑动截取相应的子文本串,得到每个待去重文本对应的文本串集合。
比如,当该待去重文本的长度大于或等于该截取长度时,构建一长度为截取长度的滑动窗,然后,按照预定滑动方向和预定滑动长度在待去重文本中滑动该滑动窗以截取若干子文本串。
本实施例中,预定滑动方向为滑动窗口在文本中滑动方向,其根据实际需求设定,比如,可以为文本最后一个字符单元向文本的第一个字符单元方向等。该预定滑动长度为滑动窗口每次滑动的长度或者步进,该长度为滑动窗口每次需要滑过的字符单元的数量。比如,当每次需要滑过2个字符单元时,该滑动长度即为2。
例如,假定某个待去重的文本t,其长度为n,截取长度为m。定义S为截取的子文本串的集合即文本串集合,根据m和n的大小关系,有下列两种情况:
(1)、当n>=m时,可以按照m的大小滑动截取出一文本子串的集合,该集合的大小为n-m+1,用符号表示为S={s1,s2,...,sn-m+1};
(2)、当n<m时,无法截取长度为m的子串,因此将整个文本作为一个整体加入到子串集合当中,因此有S={t}。
例如,以截取长度为4为例,假设去重文本t1、待去重文本t2、待去重文本t3的长度分别为6、7、8;那么此时针对去重文本t1、待去重文本t2、待去重文本t3分别截取子文本串后,可以得到t1对应文本串集合S1{s1、s2、s3、……}、t2对应文本串集合S2{s1、s2、s3、s4、……}、t3对应文本串集合S3{s1、s2、s3、s4、s5、……}。其中,文本串集合S中的元素s为子文本串,其由若干字符单元组成,比如该s可以为多个单个字符或者词组组成,该s的长度等于截取长度。
204、服务器针对每个待去重文本,将待去重文本对应的文本串集合内子文本串作为索引关键词,将该待去重文本作为该索引关键词对应的索引对象,以及将该索引关键词及其对应的索引对象组成相应的索引对,得到待去重文本与其文本串集合内子文本串的倒排索引。
本实施例中待去重文本与其文本串集合内子文本串的倒排索引可以:由文本集合内子文本串来确定待去重文本。该倒排索引可以包括多个索引条目或者索引对,每个索引条目或者索引对包括索引关键词及其对应的索引项,其中,索引关键词可以为子文本串,索引项可以为子文本串对应的待去重文本。因此,本实施例中建立待去重文本与其文本串集合内子文本串的倒排索引,即为建立表征子文本串与待去重文本之间的对应关系的索引对或者索引条目。
例如,在得到每一个待去重文本对应的文本串集合之后,可以针对每个文本t,遍历该文本对应的文本串集合中的子文本串(即集合原始),将该集合中的每一个子文本串作为key(即索引关键词),并将其对应的原始文本t作为对应value(即索引对象),然后组合成一个key-value对(即索引对),这样便可以得到该文本与文本串集合之间的倒排所有。当所有文本的文本串集合遍历结束后,便可以得到每一个文本与其对应的(如n-m+1个)子文本串的倒排索引。
比如,得到t1对应文本串集合S1{s1、s2、s3、……}、t2对应文本串集合S1{s1、s2、s3、s4、……}、t3对应文本串集合S1{s1、s2、s3、s4、s5、……}之后,可以将S1中各元素作为索引关键词key,将t1作为索引对象value,然后,组成索引对(key1,value1)、(key2,value1)、(key3,value1)、……;同样可以将S2中各元素作为索引关键词key,将t2作为索引对象value,然后,组成索引对(key1,value2)、(key2,value2)、(key3,value2)、(key4,value2)……;可以将S3中各元素作为索引关键词key,将t3作为索引对象value,然后,组成索引对(key1,value3)、(key2,value3)、(key3,value3)、(key4,value3)、(key5,value3)……。
205、服务器从索引对中确定同一索引关键词下的索引对象,得到每种索引关键词下的子文本集合。
在得到每个待去除文本与其文本串集合内子文本串的倒排索引之后,可以从各索引对中确定同一索引关键词下的索引对象,得到每种索引关键词下的子文本集合,某种索引关键词下的子文本集合包括均索引关键词为该种索引关键词的索引对象,比如key1下的子文本集合包括key为key1的value。由于索引关键词即为子文本串,索引对象即为待去重文本,那么每种索引关键词对应的对象集合即为每种子文本串对应的子文本集合。比如,在得到key-value对之后,可以按照索引key值的不同,将同一个索引key值下的所有文本(即索引对象value)进行聚合,得到索引key值下的文本集合。
例如,可以获取key1下的子文本集合{t1、t2、t3、……}、key2下的子文本集合{t1、t2、t3、……}、key3下的子文本集合{t1、t2、t3、……}、key4下的子文本集合{t2、t3、……}、key5下的子文本集合{t3、……}。
206、服务器分别对每种索引关键词下的子文本集合进行文本去重处理,得到每种索引关键词下的去重后文本集合。
本实施例中可以并行地对每种索引关键词下的子文本集合进行文本去重处理。例如,服务器可以分别地对key1下的子文本集合{t1、t2、t3、……}、key2下的子文本集合{t1、t2、t3、……}、key3下的子文本集合{t1、t2、t3、……}、key4下的子文本集合{t2、t3、……}、key5下的子文本集合{t3、……}、……进行文本去重处理,得到key1下的去重后文本集合{t1、t2、……},key2下的去重后文本集合{t1、t2、……}、key3下的去重后文本集合{t1、t2、……}、key4下的去重后文本集合{t1、t2、……}、key5下的去重后文本集合{t3、……}、……。
本实施例,可以针对每种索引关键词下的所有待去重文本进行两两比较去重。在具体实施时,可以通过动态维护一个结果集来实现同一索引关键词下的文本两两比较去重。具体地,服务器针对每种索引关键词,从该索引关键词对应的子文本集合中选取一个待去重文本作为种子文本,并将种子文本添加到空的去重结果集合中,遍历子文本集合中的待去重文本,并确定当遍历到的待去重文本、与去重结果集合中的文本是否为相似文本,若否,则将当前遍历到的待去重文本添加至该去重结果集合中,并遍历该子文本集合中下一个待去重文本;若是,则遍历该子文本集合中下一个待去重文本;当遍历完子文本集合内所有文本时,将该去重结果集合作为该索引关键词下的去重后文本集合。
例如,以对key1下的去重后文本集合{t1、t2、t3……}进行文本去重为例,可以随机选取一个文本作为种子文本添加到去重结果集合中,如,选取t1为种子文本,那么此时去重结果集合为{t1},随后遍历key1下的子文本集合;当遍历到t1时,判断t1是否与去重结果集合中t1为相似文本,若是,则遍历下一个文本t2,这里很明显是相似文本,当遍历到t2时,判断t2是否与去重结果集合中t1为相似文本,若是,则遍历下一个文本t3,若否,则将t2添加到去重结果集合中,并接着遍历下一个文本t3,这里以t1和t2不相似为例,此时去重结果集合为{t1、t2},当遍历到t3时,如果t3和去重结果集合中t1、t2任一文本为相似文本,那么便遍历下一个文本,如果t3和去重结果集合中t1、t2任一文本不为相似文本时,将t3添加到去重结果集合中,以t2和t3为相似文本为例,此时,将保持去重结果集合不变,遍历下一个文本,……依次类推直到遍历完key1下的所有文本,最后,将去重结果集合作为索引关键词下的去重后文本集合{t1、t2、……}。
本实施例中,确定两个文本是否为相似文本的方式可以有多种,比如,可通过获取两个文本之间的相似度参数,基于相似度参数来确定是否为相似文本。以相似度参数为Jaccard相似度为例;可以将待比较的文本进行分词,得到两个词组集合,获取两个词组集合的词组交集和并集,然后,基于交集中词组的数量和并集中词组的数量计算Jaccard相似度。例如,将待比较的文本进行分词,假定两个待比较的文本分词后的集合分别为A和B,那么按照Jaccard相似度的定义可以得到这两个文本的相似度:
Figure BDA0001264961880000211
在获取相似度参数之后,可以根据相似度参数值可以预设阈值的比较结果来确定两个比较的文本是否为相似文本。例如,以相似度参数为Jaccard相似度为例,两个完全不一致的文本其Jaccard相似度为0,相反两个完全一样的文本其Jaccard相似度为1,因此Jaccard相似度是一个介于0和1之间的数,去重的时候,可以根据实际需要决定一个合适的阈值,大于该阈值的都将被判定为相似文本从而被去掉。
可选地,本实施例可以由服务器自己对每种索引关键词下的子文本集合进行文本去重处理,也可以将不同索引关键词下的子文本集合发送给不同的设备进行去重处理,然后,从各处理设备中获取去重结果,进而得到文本集合去重后的结果集合。
比如,为减轻服务器去重计算压力,提高去重速度,服务器可以按照索引关键词的不同,将每种索引关键词下的子文本集合发送至相应的设备,以便该设备对相应索引关键词的子文本集合进行文本去重处理;接收设备返回的相应索引关键词的去重后文本集合,得到每种子文本串对应的去重后文本集合。参考图2b,服务器可以将key1下的子文本集合{t1、t2、t3、……}发送给去重服务器1进行文本去重处理、将key2下的子文本集合{t1、t2、t3、……}发送给去重服务器2进行文本去重处理、将key3下的子文本集合{t1、t2、t3、……}发送给去重服务器3、将key4下的子文本集合{t2、t3、……}发送给去重服务器4进行文本去重处理、将key5下的子文本集合{t3、……}发送给去重服务器5进行文本去重处理。每个去重服务器在对索引关键词下的子文本集合进行文本去重之后,可得到索引关键词下的去重后文本集合,并将该去重后文本集合发送给服务器。
具体地,服务器可以对索引关键词key进行行hash,得到hash值,然后,根据该hash值将该索引关键词下的子文本集合发送至相应的机器节点,以进行文本去重处理。
207、服务器对每种索引关键词下的去重后文本集合进行聚合,得到文本集合去重后的结果集合。
本实施例中,服务器可以将每种索引关键词下的去重后文本集合进行汇聚,得到汇聚后文本集合,然后,去除汇聚后文本集合中重复的文本,得到文本去重后的结果集合。
例如,得到key1下的去重后文本集合{t1、t2、……},key2下的去重后文本集合{t1、t2、……}、key3下的去重后文本集合{t1、t2、……}、key4下的去重后文本集合{t1、t2、……}、key5下的去重后文本集合{t3、……}之后,可以对各去重后集合进行聚合,然后,去除相同重复的文本,得到文本去重后的结果集合{t1、t2、……}。
由上可知,本发明实施例可以通过划分子串,如通过m-gram划分子串,并建立索引的方法,将所有待比较的文本分别放到了m-gram子串数量大小的“桶”中,通过这种“分桶而治”的思想,极大的减少了需要两两比较的文本数量;;因为是从原始文本中截取的一段文本子串,只要选择的全局去重长度合适,能够极大程度上保证不同文本被分配到不同的索引下,理想情况下,如果某个索引下都是相似文本,此时该索引下去重的时间复杂度为O(n);因此,本发明实施例可以避免绝大多数的不相似文本之间的比较,只针对疑似的重复文本进行比较,降低算法的时间复杂度。另外,再加上算法的可并行扩展特性,可以使得整个的去重算法效率大幅度提高。
实施例三、
为了更好地实施以上方法,本发明实施例还提供文本去重装置,如图3所示,该文本去重装置包括:文本获取单元301、截取单元302、确定单元303、去重单元304和结果获取单元305,如下:
(1)文本获取单元301;
文本获取单元301,用于获取文本集合,该文本集合包括多个待去重文本。
其中,文本集合可以包含至少两个待去重文本,如包含待去重文本t1、待去重文本t2……待去重文本tn,n大于等于2,且为正整数。该待去重文本为需要进行文本去重的文本,该文本可以包括文字等内容。此外,该文本还可包含图片等。
本实施例的文本去重指的是:去除文本集合中相似或者相同的文本。本实施例去重方法基于这样一个事实:任意两个可判定的相似文本,必定在一个或多个子文本串上是完全一致的。
(2)截取单元302;
截取单元302,用于对每个待去重文本,从待去重文本中截取相应的子文本串。
比如,截取单元302,可以用于针对每个待去重文本,从待去重文本中截取相应的子文本串,得到每个待去重文本对应的文本串集合。
其中,该截取单元302可以包括:
长度获取子单元,用于获取子文本串的截取长度;
文本串截取子单元,用于针对每个待去重文本,根据该截取长度从待去重文本中滑动截取若干子文本串。
其中,子文本串可以为字符串,该字符串可以由若干字符单元组成。该字符单元可以为单个字符,比如一个文字、字母或者符号等;此时,子文本串为由若干个字符组成的字符串。该字符单元还可以由多个字符组成;比如,该字符单元可以为词组等。
比如,该文本串截取子单元,可以具体用于:
当该待去重文本的长度大于或等于该截取长度时,根据该截取长度从待去重文本中滑动截取若干子文本串,该子文本串的长度等于该截取长度;
当该待去重文本的长度小于该截取长度时,将该待去重文本作为子文本串。
(3)确定单元303;
确定单元303,用于在该文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合。
其中,子文本串对应的子文本集合包括具有该子文本串的待去重文本。比如,t1中子文本串s1对应的子文本集合包括所有具有子文本串s1的待去重文本,如当待去重文本t2、待去重文本t3、待去重文本t4均具有该子文本串s1时,那么s1对应的子文本集合包含t1、t2、t3、t4。
本实施例为了提高文本去重速度,可以基于倒排索引的方式来确定相同子文本串的待去重文本,也即,该确定单元303可以包括:
索引建立子单元,用于针对每个待去重文本,建立待去重文本与其文本串集合内子文本串的倒排索引;
确定子单元,用于基于该倒排索引从该文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合。
本实施例中待去重文本与其文本串集合内子文本串的倒排索引可以:由文本集合内子文本串来确定待去重文本。该倒排索引可以包括多个索引条目或者索引对,每个索引条目或者索引对包括索引关键词及其对应的索引项,其中,索引关键词可以为子文本串,索引项可以为子文本串对应的待去重文本。因此,本实施例中建立待去重文本与其文本串集合内子文本串的倒排索引,即为建立表征子文本串与待去重文本之间的对应关系的索引对或者索引条目。
具体地,该索引建立子单元,可以用于:
针对每个待去重文本,将待去重文本对应的文本串集合内子文本串作为索引关键词,并将该待去重文本作为该索引关键词对应的索引对象;
将该索引关键词及其对应的索引对象组成相应的索引对,以得到待去重文本与其文本串集合内子文本串的倒排索引。
此时,确定子单元,可以用于从索引对中确定同一索引关键词下的索引对象,得到每种索引关键词下的对象集合,进而得到每种子文本串对应的子文本集合。
在得到每个待去除文本与其文本串集合内子文本串的倒排索引之后,可以从各索引对中确定同一索引关键词下的索引对象,得到每种索引关键词下的对象集合,由于索引关键词即为子文本串,索引对象即为待去重文本,那么每种索引关键词对应的对象集合即为每种子文本串对应的子文本集合。
(4)去重单元304;
去重单元304,用于分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合。
为了提高去重效率,该去重单元304可以并行地对每种子文本串对应的子文本集合进行文本去重处理。
本实施例可以通过动态维护一结果集的方式来进行文本去重,具体地,本实施例可以对某种子文本串(即索引关键词)下的待去重文本进行两两对比去重的方式为:动态维护一个结果集,初始状态下随机从该子文本串(即该索引关键词)下的文本中选取一条作为种子文本,随后遍历该子文本串(即该索引关键词)的待去重文本,尝试将遍历到的每一条文本添加到结果集中。具体地文本添加的过程为:判断该遍历到的文本与结果集中的每一条文本是否为相似文本,果与结果集中某条文本是相似文本,则退出结果集的遍历,遍历下一条待去重文本;如果结果集中完全遍历仍未发现相似文本,则表明此次待去重文本和已知结果集中的文本没有任何重复,因此将该文本添加到结果集中,并遍历下一个待去重文本。也即,该去重单元304可以包括:
种子选取子单元,用于针对每种子文本串,从该种子文本串对应的子文本集合中选取一个待去重文本作为种子文本,并将种子文本添加到空的去重结果集合中;
遍历子单元,用于遍历子文本集合中的待去重文本,并确定当遍历到的待去重文本、与去重结果集合中的文本是否为相似文本;若是,则遍历该子文本集合中下一个待去重文本;若否,则将当前遍历到的待去重文本添加至该去重结果集合中,并遍历该子文本集合中下一个待去重文本;
文本集合获取子单元,用于当遍历完子文本集合内所有文本时,将该去重结果集合作为该种子文本串对应的去重后文本集合。
比如,该遍历子单元,用于:遍历子文本集合中的待去重文本,获取当前遍历到的待去重文本与该去重结果集合中文本之间的相似度参数,根据该相似度参数确定当遍历到的待去重文本与去重结果集合中的文本是否为相似文本。
其中,本实施例相似度参数可以有多种,可以根据实际需求选择,比如可用包括:Jaccard相似度、编辑距离、汉明距离、语义距离等等。当该相似度参数可以为文本相似度如Jaccard相似度时,该文本相似度的获取方式包括:
分别对当前遍历到的待去重文本、以及去重结果集合中文本进行分词组处理,得到当前遍历到的待去重文本对应的第一词组集合、以及去重结果集合中文本对应的第二词组集合;
根据该第一词组集合和该第二词组集合,获取当前遍历到的待去重文本以及去重结果集合中文本之间的文本相似度。
可选地,为提高去重计算速度,本实施例可以将不同子文本串的子文本集合发送给不同的设备进行去重,以实现并行去重,具体地,去重单元可以包括:
发送子单元,用于分别将每种子文本串对应的子文本集合发送至相应的设备,以便该设备对相应子文本串的子文本集合进行文本去重处理;
接收子单元,用于接收设备返回的相应子文本串的去重后文本集合,得到每种子文本串对应的去重后文本集合。
例如,将每个文本划分到对应的索引关键词之后,发送子单元可以以每一个索引关键词作为key进行hash,并根据hash值将所有待去重文本分配到相应的机器节点,分布式集群中的每一个工作节点只需负责本机器下的去重工作,然后,接收子单元接收个机器节点返回的去重结果。在每一个工作节点都完成去重工作之后,每一个索引关键词中留下的都是非重复文本,将这些文本重新汇聚到一起便组成了去重之后的结果集了。
(5)结果获取单元305;
结果获取单元305,用于根据每种子文本串对应的去重后文本集合,获取该文本集合去重后的结果文本集合。
比如,结果获取单元305,可以具体用于对每种子文本串对应的去重后文本集合进行相同文本去重处理(多个相同文本只留一个文本),得到文本集合去重后的结果文本集合。比如,可以将每种子文本串对应的去重后文本集合进行聚合,得到初步结果文本集合,然后,对初步结果文本集合中相同的文本进行去重。当然,聚合和相同文本去重可以同时进行。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
该文本去重装置具体可以集成在服务器等设备中。
由上可知,本发明实施例通过文本获取单元301获取文本集合,该文本集合包括多个待去重文本,然后,由截取单元302针对每个待去重文本,从待去重文本中截取相应的子文本串,由确定单元303在该文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合,由去重单元304分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合,由结果获取单元305根据每种子文本串对应的去重后文本集合,获取该文本集合去重后的结果文本集合。该方案可以通过对具有相同子文本串的子文本集合进行文本去重处理,从而实现对整个文本集合的文本去重处理;其无需对整个文本集合中的文本进行两两比较去重,并可以将在全局上进行文本两两比较去重变为只需对同一子文本串下的文本进行去重,因此,可以极大地降低了去重过程中需要两两比较的文本数量,降低文本去重的时间复杂度,提高文本去重效率。
实施例四、
相应的,本发明实施例还提供了一种服务器,如图4所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:
该服务器400可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、射频(Radio Frequency,RF)电路403、电源404、输入单元405、以及显示单元406等部件。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块。处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。
RF电路403可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器401处理。另外,将涉及上行的数据发送给基站。
服务器还包括给各个部件供电的电源404(比如电池)。优选的,电源可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源404还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元405,该输入单元405可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
该服务器还可包括显示单元406,该显示单元406可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元408可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。
具体在本实施例中,服务器中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取文本集合,该文本集合包括多个待去重文本,然后,针对每个待去重文本,从待去重文本中截取相应的子文本串,在该文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合,分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合,根据每种子文本串对应的去重后文本集合,获取该文本集合去重后的结果文本集合。
比如,针对每个待去重文本,分别从待去重文本中截取相应的子文本串,包括:
针对每个待去重文本,从待去重文本中截取相应的子文本串,得到每个待去重文本对应的文本串集合;
在所述文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合,包括:
针对每个待去重文本,建立待去重文本与其文本串集合内子文本串的倒排索引;
基于所述倒排索引从所述文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合。
又比如,其中,针对每个待去重文本,建立待去重文本与其文本串集合内子文本串的倒排索引,包括:
针对每个待去重文本,将待去重文本对应的文本串集合内子文本串作为索引关键词,并将该待去重文本作为所述索引关键词对应的索引对象;
将所述索引关键词及其对应的索引对象组成相应的索引对,以得到待去重文本与其文本串集合内子文本串的倒排索引;
此时,基于所述倒排索引从所述文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合,包括:
从索引对中确定同一索引关键词下的索引对象,得到每种索引关键词下的对象集合,进而得到每种子文本串对应的子文本集合。
具体的操作,可以参考前面文本去重方法实施例的详细描述。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的一种文本去重方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (16)

1.一种文本去重方法,其特征在于,包括:
获取文本集合,所述文本集合包括多个待去重文本;
针对每个待去重文本,从待去重文本中截取相应的子文本串,得到每个待去重文本对应的文本串集合;
针对每个待去重文本,建立待去重文本与其文本串集合内子文本串的倒排索引;
基于所述倒排索引从所述文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合;
分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合;
根据每种子文本串对应的去重后文本集合,获取所述文本集合去重后的结果文本集合。
2.如权利要求1所述的文本去重方法,其特征在于,针对每个待去重文本,建立待去重文本与其文本串集合内子文本串的倒排索引,包括:
针对每个待去重文本,将待去重文本对应的文本串集合内子文本串作为索引关键词,并将该待去重文本作为所述索引关键词对应的索引对象;
将所述索引关键词及其对应的索引对象组成相应的索引对,以得到待去重文本与其文本串集合内子文本串的倒排索引;
基于所述倒排索引从所述文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合,包括:
从索引对中确定同一索引关键词下的索引对象,得到每种索引关键词下的对象集合,进而得到每种子文本串对应的子文本集合。
3.如权利要求1所述的文本去重方法,其特征在于,分别对每种子文本串对应的子文本集合进行文本去重处理,包括:
针对每种子文本串,从该种子文本串对应的子文本集合中选取一个待去重文本作为种子文本,并将种子文本添加到空的去重结果集合中;
遍历子文本集合中的待去重文本,并确定当遍历到的待去重文本、与去重结果集合中的文本是否为相似文本;
若否,则将当前遍历到的待去重文本添加至所述去重结果集合中,并遍历所述子文本集合中下一个待去重文本;
若是,则遍历所述子文本集合中下一个待去重文本;
当遍历完子文本集合内所有文本时,将所述去重结果集合作为该种子文本串对应的去重后文本集合。
4.如权利要求3所述的文本去重方法,其特征在于,确定当遍历到的待去重文本与去重结果集合中的文本是否为相似文本,包括:
获取当前遍历到的待去重文本与所述去重结果集合中文本之间的相似度参数;
根据所述相似度参数确定当遍历到的待去重文本与去重结果集合中的文本是否为相似文本。
5.如权利要求4所述的文本去重方法,其特征在于,获取当前遍历到的待去重文本与去重结果集合中文本之间的相似度参数,包括:
分别对当前遍历到的待去重文本、以及去重结果集合中文本进行分词组处理,得到当前遍历到的待去重文本对应的第一词组集合、以及去重结果集合中文本对应的第二词组集合;
根据所述第一词组集合和所述第二词组集合,获取当前遍历到的待去重文本以及去重结果集合中文本之间的文本相似度。
6.如权利要求1所述的文本去重方法,其特征在于,分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合,包括:
分别将每种子文本串对应的子文本集合发送至相应的设备,以便所述设备对相应子文本串的子文本集合进行文本去重处理;
接收设备返回的相应子文本串的去重后文本集合,得到每种子文本串对应的去重后文本集合。
7.如权利要求1-6任一项所述的文本去重方法,其特征在于,针对每个待去重文本,从待去重文本中截取相应的子文本串,包括:
获取子文本串的截取长度;
针对每个待去重文本,根据所述截取长度从待去重文本中滑动截取若干子文本串。
8.如权利要求7所述的文本去重方法,其特征在于,根据所述截取长度从待去重文本中滑动截取若干子文本串,包括:
当所述待去重文本的长度大于或等于所述截取长度时,根据所述截取长度从待去重文本中滑动截取若干子文本串,所述子文本串的长度等于所述截取长度;
当所述待去重文本的长度小于所述截取长度时,将所述待去重文本作为子文本串。
9.一种文本去重装置,其特征在于,包括:
文本获取单元,用于获取文本集合,所述文本集合包括多个待去重文本;
截取单元,用于针对每个待去重文本,从待去重文本中截取相应的子文本串,得到每个待去重文本对应的文本串集合;
确定单元,用于针对每个待去重文本,建立待去重文本与其文本串集合内子文本串的倒排索引;基于所述倒排索引从所述文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合;
去重单元,用于分别对每种子文本串对应的子文本集合进行文本去重处理,得到每种子文本串对应的去重后文本集合;
结果获取单元,用于根据每种子文本串对应的去重后文本集合,获取所述文本集合去重后的结果文本集合。
10.如权利要求9所述的文本去重装置,其特征在于,
所述确定单元,包括:
索引建立子单元,用于针对每个待去重文本,建立待去重文本与其文本串集合内子文本串的倒排索引;
确定子单元,用于基于所述倒排索引从所述文本集合中确定具有相同子文本串的待去重文本,得到每种子文本串对应的子文本集合。
11.如权利要求10所述的文本去重装置,其特征在于,所述索引建立子单元,用于:
针对每个待去重文本,将待去重文本对应的文本串集合内子文本串作为索引关键词,并将该待去重文本作为所述索引关键词对应的索引对象;
将所述索引关键词及其对应的索引对象组成相应的索引对,以得到待去重文本与其文本串集合内子文本串的倒排索引;
所述确定子单元,用于从索引对中确定同一索引关键词下的索引对象,得到每种索引关键词下的对象集合,进而得到每种子文本串对应的子文本集合。
12.如权利要求9所述的文本去重装置,其特征在于,所述去重单元,包括:
种子选取子单元,用于针对每种子文本串,从该种子文本串对应的子文本集合中选取一个待去重文本作为种子文本,并将种子文本添加到空的去重结果集合中;
遍历子单元,用于遍历子文本集合中的待去重文本,并确定当遍历到的待去重文本、与去重结果集合中的文本是否为相似文本;若是,则遍历所述子文本集合中下一个待去重文本;若否,则将当前遍历到的待去重文本添加至所述去重结果集合中,并遍历所述子文本集合中下一个待去重文本;
文本集合获取子单元,用于当遍历完子文本集合内所有文本时,将所述去重结果集合作为该种子文本串对应的去重后文本集合。
13.如权利要求12所述的文本去重装置,其特征在于,所述遍历子单元,用于:遍历子文本集合中的待去重文本,获取当前遍历到的待去重文本与所述去重结果集合中文本之间的相似度参数,根据所述相似度参数确定当遍历到的待去重文本与去重结果集合中的文本是否为相似文本。
14.如权利要求9所述的文本去重装置,其特征在于,所述去重单元,包括:
发送子单元,用于分别将每种子文本串对应的子文本集合发送至相应的设备,以便所述设备对相应子文本串的子文本集合进行文本去重处理;
接收子单元,用于接收设备返回的相应子文本串的去重后文本集合,得到每种子文本串对应的去重后文本集合。
15.一种计算机可读存储介质,其存储有用于文本去重的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-8任一项所述的方法。
16.一种服务器,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至8任一项所述的文本去重方法中的步骤。
CN201710225086.1A 2017-04-07 2017-04-07 一种文本去重方法和装置 Active CN107025218B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201710225086.1A CN107025218B (zh) 2017-04-07 2017-04-07 一种文本去重方法和装置
PCT/CN2018/082107 WO2018184588A1 (zh) 2017-04-07 2018-04-08 一种文本去重方法、装置和存储介质
US16/441,669 US11379422B2 (en) 2017-04-07 2019-06-14 Text deduplication method and apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710225086.1A CN107025218B (zh) 2017-04-07 2017-04-07 一种文本去重方法和装置

Publications (2)

Publication Number Publication Date
CN107025218A CN107025218A (zh) 2017-08-08
CN107025218B true CN107025218B (zh) 2021-03-02

Family

ID=59528006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710225086.1A Active CN107025218B (zh) 2017-04-07 2017-04-07 一种文本去重方法和装置

Country Status (3)

Country Link
US (1) US11379422B2 (zh)
CN (1) CN107025218B (zh)
WO (1) WO2018184588A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025218B (zh) 2017-04-07 2021-03-02 腾讯科技(深圳)有限公司 一种文本去重方法和装置
CN107832381A (zh) * 2017-10-30 2018-03-23 北京大数元科技发展有限公司 一种从互联网采集的政府采购中标公告判重方法及系统
CN110610450B (zh) * 2018-06-15 2023-05-05 伊姆西Ip控股有限责任公司 数据处理方法、电子设备和计算机可读存储介质
CN110866407B (zh) * 2018-08-17 2024-03-01 阿里巴巴集团控股有限公司 确定互译文本及文本间相似度分析方法、装置及设备
CN110110080A (zh) * 2019-03-29 2019-08-09 平安科技(深圳)有限公司 文本分类模型训练方法、装置、计算机设备及存储介质
CN110309446A (zh) * 2019-04-26 2019-10-08 深圳市赛为智能股份有限公司 文本内容快速去重方法、装置、计算机设备及存储介质
CN110134768B (zh) * 2019-05-13 2023-05-26 腾讯科技(深圳)有限公司 文本的处理方法、装置、设备及存储介质
CN112889021B (zh) * 2019-07-23 2023-11-28 华为技术有限公司 重复数据删除的设备、系统和方法
CN110737748B (zh) * 2019-09-27 2023-08-08 成都数联铭品科技有限公司 一种文本去重方法及系统
CN110765756B (zh) * 2019-10-29 2023-12-01 北京齐尔布莱特科技有限公司 一种文本处理方法、装置、计算设备及介质
CN111079399B (zh) * 2019-11-13 2024-04-05 广州酷旅旅行社有限公司 图文数据处理方法、装置、计算机设备和存储介质
CN111079424A (zh) * 2019-11-15 2020-04-28 泰康保险集团股份有限公司 一种信息审核方法和装置
CN110941598A (zh) * 2019-12-02 2020-03-31 北京锐安科技有限公司 一种数据去重方法、装置、终端及存储介质
CN111143744B (zh) * 2019-12-26 2023-10-13 杭州安恒信息技术股份有限公司 一种web资产检测的方法、装置、设备及可读存储介质
CN112420025A (zh) * 2020-11-09 2021-02-26 国网山东省电力公司临沂供电公司 一种用于电力调度的智能语音识别转化方法及系统
CN112733537A (zh) * 2020-12-31 2021-04-30 平安科技(深圳)有限公司 文本去重方法、装置、电子设备及计算机可读存储介质
CN115455950B (zh) * 2022-09-27 2023-06-16 中科雨辰科技有限公司 一种获取文本的数据处理系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799647A (zh) * 2012-06-30 2012-11-28 华为技术有限公司 网页去重方法和设备
CN102831127A (zh) * 2011-06-17 2012-12-19 阿里巴巴集团控股有限公司 重复数据处理方法、装置及系统
WO2013108745A1 (ja) * 2012-01-16 2013-07-25 日本電気株式会社 ストレージ装置、その制御方法、及びプログラム
CN103970722A (zh) * 2014-05-07 2014-08-06 江苏金智教育信息技术有限公司 一种文本内容去重的方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615209B1 (en) * 2000-02-22 2003-09-02 Google, Inc. Detecting query-specific duplicate documents
US7734627B1 (en) * 2003-06-17 2010-06-08 Google Inc. Document similarity detection
US7433869B2 (en) * 2005-07-01 2008-10-07 Ebrary, Inc. Method and apparatus for document clustering and document sketching
US8391614B2 (en) * 2006-01-25 2013-03-05 Equivio Ltd. Determining near duplicate “noisy” data objects
CN101620616A (zh) * 2009-05-07 2010-01-06 北京理工大学 一种基于小世界特性的中文近似网页去重方法
US8719236B2 (en) * 2012-08-23 2014-05-06 Microsoft Corporation Selecting candidate rows for deduplication
US9129046B2 (en) * 2013-02-25 2015-09-08 4medica, Inc. Systems and methods for managing a master patient index including duplicate record detection
CN104636319B (zh) * 2013-11-11 2018-09-28 腾讯科技(北京)有限公司 一种文本去重方法和装置
CN107025218B (zh) * 2017-04-07 2021-03-02 腾讯科技(深圳)有限公司 一种文本去重方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831127A (zh) * 2011-06-17 2012-12-19 阿里巴巴集团控股有限公司 重复数据处理方法、装置及系统
WO2013108745A1 (ja) * 2012-01-16 2013-07-25 日本電気株式会社 ストレージ装置、その制御方法、及びプログラム
CN102799647A (zh) * 2012-06-30 2012-11-28 华为技术有限公司 网页去重方法和设备
CN103970722A (zh) * 2014-05-07 2014-08-06 江苏金智教育信息技术有限公司 一种文本内容去重的方法

Also Published As

Publication number Publication date
US20190294588A1 (en) 2019-09-26
US11379422B2 (en) 2022-07-05
WO2018184588A1 (zh) 2018-10-11
CN107025218A (zh) 2017-08-08

Similar Documents

Publication Publication Date Title
CN107025218B (zh) 一种文本去重方法和装置
US11263262B2 (en) Indexing a dataset based on dataset tags and an ontology
US7433869B2 (en) Method and apparatus for document clustering and document sketching
US9311823B2 (en) Caching natural language questions and results in a question and answer system
CN108595517B (zh) 一种大规模文档相似性检测方法
US9275110B2 (en) Disk-based hash join process
US10552378B2 (en) Dividing a dataset into sub-datasets having a subset of values of an attribute of the dataset
US11294920B2 (en) Method and apparatus for accessing time series data in memory
CN107368527B (zh) 基于数据流的多属性索引方法
JP2017512338A (ja) 第一クラスデータベース要素としての半構造データの実装
CN110941598A (zh) 一种数据去重方法、装置、终端及存储介质
US11216474B2 (en) Statistical processing of natural language queries of data sets
US10685031B2 (en) Dynamic hash partitioning for large-scale database management systems
US9262511B2 (en) System and method for indexing streams containing unstructured text data
CN106599091B (zh) 基于键值存储的rdf图结构存储和索引方法
WO2018097846A1 (en) Edge store designs for graph databases
CN105354251A (zh) 电力系统中基于Hadoop的电力云数据管理索引方法
CN102867049A (zh) 一种基于单词查找树实现的汉语拼音快速分词方法
US8370363B2 (en) Hybrid neighborhood graph search for scalable visual indexing
CN112667636B (zh) 索引建立方法、装置及存储介质
US11520763B2 (en) Automated optimization for in-memory data structures of column store databases
CN104778200A (zh) 一种结合历史数据的异构处理大数据检索的方法
US10902036B2 (en) Intersection algorithm-based search method and system, and storage medium
US20170270127A1 (en) Category-based full-text searching
Kumar et al. Differential Evolution based bucket indexed data deduplication for big data storage

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
GR01 Patent grant
GR01 Patent grant