CN109213972A - 确定文档相似度的方法、装置、设备和计算机存储介质 - Google Patents
确定文档相似度的方法、装置、设备和计算机存储介质 Download PDFInfo
- Publication number
- CN109213972A CN109213972A CN201710547017.2A CN201710547017A CN109213972A CN 109213972 A CN109213972 A CN 109213972A CN 201710547017 A CN201710547017 A CN 201710547017A CN 109213972 A CN109213972 A CN 109213972A
- Authority
- CN
- China
- Prior art keywords
- document
- compared
- documents
- word
- similarity
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 239000013598 vector Substances 0.000 claims abstract description 240
- 230000011218 segmentation Effects 0.000 claims abstract description 82
- 238000012545 processing Methods 0.000 claims abstract description 60
- 238000010276 construction Methods 0.000 claims description 48
- 238000004364 calculation method Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 101150060512 SPATA6 gene Proteins 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种确定文档相似度的方法、装置、设备和计算机存储介质,其中方法包括:预先根据参考文档集构建有词语对应表;对至少两个待比较文档进行分词处理后,得到待比较文档中的各词语;将各待比较文档中的词语在所述词语对应表中查询,以构建待比较文档的特征向量;通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度。本发明能够降低大规模文档相似度的耗时。
Description
【技术领域】
本发明涉及计算机应用技术领域,特别涉及一种确定文档相似度的方法、装置、设备和计算机存储介质。
【背景技术】
随着信息爆炸时代的来临,网络上文档数量急剧上升,呈海量趋势。无论在文档去重还是文档推荐等场景中,都会涉及到文档相似度的计算。现有文档相似度计算方式通常是基于两两比较的文档,构建各文档的特征向量,然后通过两文档的特征向量之间的相似度来计算两文档之间的相似度。由于其特征向量的构建是基于两个文档的,因此,需要针对文档两两构建特征向量并进行相似度计算,若存在数量巨大的文档需要进行比较,则耗时巨大。
例如,在搜索引擎中,需要针对新爬取的文档判断爬取的历史文档中是否已经存在新爬取的文档。若新爬取的文档数量为m,爬取的历史文档数量为n,两两比较就需要执行m×n次,即执行m×n次文本特征向量构建和相似度计算。若m为6万,n为60万,则需要计算约1万小时,耗时巨大。
【发明内容】
有鉴于此,本发明提供了一种确定文档相似度的方法、装置、设备和计算机存储介质,以便于降低大规模文档相似度的耗时。
具体技术方案如下:
本发明提供了一种确定文档相似度的方法,预先根据参考文档集构建有词语对应表;该方法包括:
分别对至少两个待比较文档进行分词处理,得到各待比较文档中的词语;
将各待比较文档中的词语在所述词语对应表中查询,以构建待比较文档的特征向量;
通过计算各待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度。
根据本发明一具体实施方式,所述词语对应表的构建包括:
将参考文档集中各文档进行分词处理;
将分词处理后得到的词语进行汇总,得到词语对应表,记录该词语对应表中各词语的索引信息。
根据本发明一具体实施方式,所述将各待比较文档中的词语在所述词语对应表中查询,以构建待比较文档的特征包括:
从所述词语对应表中查询得到各待比较文档中词语对应的索引信息;
利用得到的索引信息,构建各待比较文档的特征向量。
根据本发明一具体实施方式,所述将参考文档集进行分词处理包括:
通过多个计算节点并行对所述参考文档集中的各文档进行分词处理。
根据本发明一具体实施方式,在从所述词语对应表中查询得到各待比较文档中词语对应的索引信息时,针对待比较文档中的各词语分别执行:
判断该词语是否存在于所述词语对应表中,如果是,则获取该词语在所述词语对应表中的索引信息;
否则,判断该词语是否存在于临时对应表中,如果否,则将该词语记录于临时对应表中,记录并获取该词语在临时对应表中的索引信息;如果是,则获取该词语在临时对应表中的索引信息;
其中临时对应表和词语对应表中的索引信息不重叠。
根据本发明一具体实施方式,在从所述词语对应表中查询得到各待比较文档中词语对应的索引信息时,针对待比较文档中的各词语分别执行:
判断该词语是否存在于所述词语对应表中,如果是,则获取该词语在所述词语对应表中的索引信息;
否则,丢弃该词语。
根据本发明一具体实施方式,在利用得到的索引信息,构建待比较文档的特征向量时,针对待比较文档中各词语分别执行:
将获取的词语的索引信息作为该词语在所述待比较文档的特征向量中的维度号;
依据该词语在所述待比较文档中的出现次数,确定该词语在所述待比较文档的特征向量中的分量值。
根据本发明一具体实施方式,所述通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度包括:
计算待比较文档的特征向量之间的余弦相似度,将得到的相似度值作为待比较文档之间的相似度。
根据本发明一具体实施方式,在利用得到的索引信息,构建待比较文档的特征向量时,针对待比较文档中各词语分别执行:
将获取的词语的索引信息作为该词语在所述待比较文档的特征向量中的维度号;
将指示该词语在所述待比较文档中出现的值,作为该词语在所述待比较文档的特征向量中的分量值。
根据本发明一具体实施方式,所述通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度包括:
计算待比较文档的特征向量之间的Jaccard相似度,将得到的相似度值作为待比较文档之间的相似度。
根据本发明一具体实施方式,所述利用得到的索引信息,构建待比较文档的特征向量包括:
将所述待比较文档中各词语的索引信息作为特征值,将各词语在所述待比较文档中的出现次数作为对应特征值的权重,以构成所述待比较文档的特征集合;
将所述待比较文档的特征集合进行Simhash处理,将得到的F位签名作为所述待比较文档的特征向量,F为预设的正整数。
根据本发明一具体实施方式,所述通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度包括:
计算待比较文档的特征向量之间的海明距离;
利用计算得到的海明距离,确定待比较文档之间的相似度。
根据本发明一具体实施方式,若存在大规模数量的待比较文档,则采用多个计算节点并行对各待比较文档构建特征向量。
根据本发明一具体实施方式,在构建待比较文档的特征向量之前,进一步包括:
判断是否已经构建有所述待比较文档的特征向量,如果是,则转至执行所述通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度;否则,继续执行所述构建待比较文档的特征向量。
根据本发明一具体实施方式,将非参考文档集中的文档作为其中一个待比较文档,逐一将参考文档集中的各文档作为另一个待比较文档;
利用待比较文档之间的相似度,确定所述参考文档集合中与所述非参考文档集中的文档相似度最高的K个文档,其中所述K为预设的正整数。
根据本发明一具体实施方式,所述非参考文档集包括:搜索引擎新爬取到的文档,所述参考文档集包括搜索引擎爬取到的历史文档;或者,
所述非参考文档集包括:用户当前浏览的新闻文档,所述参考文档集包括历史新闻文档。
本发明还提供了一种确定文档相似度的装置,该装置包括:
对应表生成单元,用于预先根据参考文档集构建词语对应表;
第二分词单元,用于分别对至少两个待比较文档进行分词处理,得到各待比较文档中的词语;
向量构建单元,用于将各待比较文档中的词语在所述词语对应表中查询,以构建待比较文档的特征向量;
相似度计算单元,用于通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度。
根据本发明一具体实施方式,该装置还包括:
第一分词单元,用于将参考文档集进行分词处理;
对应表生成单元具体用于,将所述第一分词单元分词得到的词语进行汇总,构成词语对应表,并记录该词语对应表中各词语的索引信息。
根据本发明一具体实施方式,所述向量构建单元,具体用于:
从所述词语对应表中查询得到各待比较文档中词语对应的索引信息;
利用得到的索引信息,构建各待比较文档的特征向量。
根据本发明一具体实施方式,所述第一分词单元具体用于:通过多个计算节点并行对所述参考文档集中的各文档进行分词处理。
根据本发明一具体实施方式,所述向量构建单元在从所述词语对应表中查询得到各待比较文档中词语对应的索引信息时,针对待比较文档中的各词语分别执行:
判断该词语是否存在于所述词语对应表中,如果是,则获取该词语在所述词语对应表中的索引信息;
否则,判断该词语是否存在于临时对应表中,如果否,则将该词语记录于临时对应表中,记录并获取该词语在临时对应表中的索引信息;如果是,则获取该词语在临时对应表中的索引信息;
其中临时对应表和词语对应表中的索引信息不重叠。
根据本发明一具体实施方式,所述向量构建单元在从所述词语对应表中查询得到各待比较文档中词语对应的索引信息时,针对待比较文档中的各词语分别执行:
判断该词语是否存在于所述词语对应表中,如果是,则获取该词语在所述词语对应表中的索引信息;
否则,丢弃该词语。
根据本发明一具体实施方式,所述向量构建单元在利用得到的索引信息上,构建待比较文档的特征向量时,针对待比较文档中各词语分别执行:
将获取的词语的索引信息作为该词语在所述待比较文档的特征向量中的维度号;
依据该词语在所述待比较文档中的出现次数,确定该词语在所述待比较文档的特征向量中的分量值。
根据本发明一具体实施方式,所述相似度计算单元,具体用于:计算待比较文档的特征向量之间的余弦相似度,将得到的相似度值作为待比较文档之间的相似度。
根据本发明一具体实施方式,所述向量构建单元在利用得到的索引信息,构建待比较文档的特征向量时,针对待比较文档中各词语分别执行:
将获取的词语的索引信息作为该词语在所述待比较文档的特征向量中的维度号;
将指示该词语在所述待比较文档中出现的值,作为该词语在所述待比较文档的特征向量中的分量值。
根据本发明一具体实施方式,所述相似度计算单元,具体用于:计算待比较文档的特征向量之间的Jaccard相似度,将得到的相似度值作为待比较文档之间的相似度。
根据本发明一具体实施方式,所述向量构建单元在利用得到的索引信息,构建待比较文档的特征向量时,具体执行:
将所述待比较文档中各词语的索引信息作为特征值,将各词语在所述待比较文档中的出现次数作为对应特征值的权重,以构成所述待比较文档的特征集合;
将所述待比较文档的特征集合进行Simhash处理,将得到的F位签名作为所述待比较文档的特征向量,F为预设的正整数。
根据本发明一具体实施方式,所述相似度计算单元,具体用于:计算待比较文档的特征向量之间的海明距离;利用计算得到的海明距离,确定待比较文档之间的相似度。
根据本发明一具体实施方式,该装置将非参考文档集中的文档作为其中一个待比较文档,逐一将参考文档集中的各文档作为另一个待比较文档;
该装置还包括:
文档确定单元,用于利用待比较文档之间的相似度,确定所述参考文档集合中与所述目标文档相似度最高的K个文档,其中所述K为预设的正整数。
根据本发明一具体实施方式,所述非参考文档集包括:搜索引擎新爬取到的文档,所述参考文档集包括搜索引擎爬取到的历史文档;或者,
所述非参考文档集包括:用户当前浏览的新闻文档,所述参考文档集包括历史新闻文档。
本发明还提供了一种确定文档相似度的方法,预先根据参考文档集构建有词语对应表,并构建有各参考文档集中各参考文档的特征向量,其中参考文档的特征向量是对参考文档进行分词处理后,将得到的词语在所述词语对应表中查询后构建的;该方法包括:
对非参考文档集的目标文档进行分词处理,得到目标文档中的词语;
将目标文档中的词语在所述词语对应表中查询,以构建目标文档的特征向量;
通过计算目标文档的特征向量与参考文档的特征向量之间的相似度,确定目标文档与参考文档之间的相似度。
根据本发明一具体实施方式,构建文档的特征向量包括:从所述词语对应表中查询文档中各词语对应的索引信息;利用得到的索引信息,构建文档的特征向量;
所述文档包括参考文档或目标文档。
根据本发明一具体实施方式,在从所述词语对应表中查询文档中各词语对应的索引信息时,针对文档中各词语分别执行:
判断该词语是否存在于所述词语对应表中,如果是,则获取该词语在所述词语对应表中的索引信息;
否则,判断该词语是否存在于临时对应表中,如果否,则将该词语记录于临时对应表中,记录并获取该词语在临时对应表中的索引信息;如果是,则获取该词语在临时对应表中的索引信息;
其中临时对应表和词语对应表中的索引信息不重叠。
根据本发明一具体实施方式,在利用得到的索引信息,构建文档的特征向量时,针对文档中各词语分别执行:
将获取的词语的索引信息作为该词语在文档的特征向量中的维度号;
依据该词语在文档中的出现次数,确定该词语在文档的特征向量中的分量值。
根据本发明一具体实施方式,所述通过计算目标文档的特征向量与参考文档的特征向量之间的相似度,确定目标文档与参考文档之间的相似度包括:
计算目标文档的特征向量与参考文档的特征向量之间的余弦相似度,将得到的相似度值作为目标文档与参考文档之间的相似度。
根据本发明一具体实施方式,在利用得到的索引信息,构建文档的特征向量时,针对文档中各词语分别执行:
将获取的词语的索引信息作为该词语在文档的特征向量中的维度号;
将指示该词语在文档中出现的值,作为该词语在文档的特征向量中的分量值。
根据本发明一具体实施方式,所述通过计算目标文档的特征向量与参考文档的特征向量之间的相似度,确定目标文档与参考文档之间的相似度包括:
计算目标文档的特征向量与参考文档的特征向量之间的Jaccard相似度,将得到的相似度值作为目标文档与参考文档之间的相似度。
根据本发明一具体实施方式,在利用得到的索引信息,构建文档的特征向量时,针对文档中各词语分别执行:
将文档中各词语的索引信息作为特征值,将各词语在文档中的出现次数作为对应特征值的权重,以构成文档的特征集合;
将文档的特征集合进行Simhash处理,将得到的F位签名作为文档的特征向量,F为预设的正整数。
根据本发明一具体实施方式,所述通过计算目标文档的特征向量与参考文档的特征向量之间的相似度,确定目标文档与参考文档之间的相似度包括:
计算目标文档的特征向量与参考文档的特征向量之间的海明距离;
利用计算得到的海明距离,确定目标文档与参考文档之间的相似度。
根据本发明一具体实施方式,所述非参考文档集包括:搜索引擎新爬取到的文档,所述参考文档集包括搜索引擎爬取到的历史文档;或者,
所述非参考文档集包括:用户当前浏览的新闻文档,所述参考文档集包括历史新闻文档。
本发明还提供了一种确定文档相似度的装置,该装置包括:
第一分词单元,用于将参考文档集进行分词处理;
对应表生成单元,用于将所述第一分词单元分词得到的词语进行汇总,构成词语对应表;
向量构建单元,用于将各参考文档的词语在所述词语对应表中查询,以构建各参考文档的特征向量;
第二分词单元,用于对非参考文档集的目标文档进行分词处理,得到目标文档中的词语;
所述向量构建单元,还用于将目标文档中的词语在所述词语对应表中查询,以构建目标文档的特征向量;
相似度计算单元,用于通过计算目标文档的特征向量与参考文档的特征向量之间的相似度,确定目标文档与参考文档之间的相似度。
本发明还提供了一种设备,包括
存储器,包括一个或者多个程序;
一个或者多个处理器,耦合到所述存储器,执行所述一个或者多个程序,以实现上述方法中执行的操作。
本发明还提供了一种计算机存储介质,所述计算机存储介质被编码有计算机程序,所述程序在被一个或多个计算机执行时,使得所述一个或多个计算机执行上述方法中执行的操作。
由以上技术方案可以看出,本发明基于参考文档集形成词语对应表,所有待比较文档的特征向量都基于该词语对应表构建,只要参考组文档不发生变化,所有待比较文档的特征向量均只需要进行一次构建,就可以用于待比较文档的所有相似度计算。相比较现有技术中需要两两待比较文档分别构建特征向量的方式,大大降低了计算量。当用于大规模文档的相似度计算时,能够很大程度的减少耗时。
【附图说明】
图1为本发明实施例提供的主要方法流程图;
图2为本发明实施例提供的对参考文档集进行处理的示意图;
图3为本发明实施例提供的对目标组文档集合进行处理的示意图;
图4为本发明实施例提供的计算文档相似度的示意图;
图5为本发明实施例提供的装置结构图;
图6为本发明实施例提供的设备结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明的核心思想在于,大规模文档进行相似度比较时,使其均基于统一的基础构建各文档的特征向量。在本发明实施例中,该“基础”为基于参考文档集形成的词语对应表。参考文档集可以是已具有一定规模的文档集合,例如在搜索引擎爬取文档的场景下,参考文档集可以是搜索引擎爬取到的历史文档,即已爬取到的具有一定规模的文档集合。再例如,在新闻类应用场景下,参考文档集可以是历史新闻文档,即已经存在的具有一定规模的新闻文档集合。下面集合实施例对本发明提供的方法进行详述。
图1为本发明实施例提供的主要方法流程图,如图1所示,该方法可以包括以下步骤:
在101中,将参考文档集进行分词处理。
本步骤中,基于分词词典对参考文档集中各文档分别进行分词处理,对于分词后得到的各词语可以进一步基于停用词表进行去除停用词,以及去除标点符号等预处理。
参考文档集中文档数量较大,可能是万级别、几十万级别、甚至是百万千万级别。为了加快对参考文档集的分词处理速度,可以通过多个计算节点并行对参考文档集中的各文档进行分词处理。例如采用L个计算节点,将参考文档集中的各文档分配给L个计算节点,使得L个计算节点分别被分配到尽量平均数量的文档,然后分别并行地对分配到的文档进行分词处理。L为预设的正整数,其取值可以根据计算节点的计算能力、参考文档集的文档数量等因素综合确定。
在102中,将分词得到的词语进行汇总,构成词语对应表,并记录各词语在词语对应表中的索引号。
将参考文档集中所有文档进行分词处理后得到的结果进行汇总,去除其中重复的词语,构成词语对应表。
然后,为词语对应表中的每个词语构建索引信息,在本发明实施例中均以索引号为例进行描述,即为词语对应表中的每个词语指定索引值,并进行记录。其中,在为词语对应表中的每个词语指定索引值时,并不限于词语的特定排序,即词语对应表中的各词语可以按照任意的方式进行排序,只要最终各词语在词语对应表中的索引值唯一即可。
在103中,对至少两个待比较文档进行分词处理后,得到待比较文档中的各词语。
本发明实施例中涉及的待比较文档指的是需要进行相似度比较的文档。根据具体应用场景不同,待比较文档也不同。待比较文档可以均是参考文档集中的文档,或者也可以均是非参考文档集中的文档,再或者,也可以一个是参考文档集中的文档,另一个是非参考文档集中的文档。
作为一个典型的场景,可以将目标文档(非参考文档集中的文档)作为其中一个待比较文档,逐一将参考文档集中的各文档作为另一个待比较文档。这种场景可以用于在参考文档集中查找目标文档的相似文档,例如确定参考文档集合中与目标文档相似度最高的K个文档,其中K为预设的正整数。后续将会结合具体实施例对该场景进行详述。
在104中,获取待比较文档中各词语在词语对应表中的索引号。
由于待比较文档并不一定是参考文档,因此待比较文档中可能会存在词语对应表中不存在的词语。本步骤中,可以采用但不限于以下两种索引获取方式:
第一种索引获取方式:针对待比较文档中的各词语可以分别执行以下处理:
首先判断该词语是否存在于词语对应表,如果是,则获取该词语在词语对应表中的索引号;否则丢弃该词语。
第二种索引获取方式:针对待比较文档中的各词语分别执行以下处理:
首先判断该词语是否存在于词语对应表,如果是,获取该词语在词语对应表中的索引号。
如果不存在于词语对应表,则判断该词语是否存在于临时对应表,该临时对应表是用于记录词语对应表中不存在的词语的,如果也不存在于临时对应表,则将该词语记录于临时对应表,记录并获取该词语在临时对应表中的索引号用于后续特征向量的构建。如果存在于临时对应表,则获取该词语在临时对应表中的索引号用于后续特征向量的构建。
需要说明的是,临时对应表中各词语的索引号与词语对应表中的索引号不重叠,可以接续词语对应表中的索引号为临时对应表中的词语赋予索引号。例如词语对应表中的索引号为0~5000,那么临时对应表中的索引号可以从5001开始接续。
在105中,利用获取的各词语的索引号,构建待比较文档的特征向量。
本步骤中,可以根据步骤106中采用不同的相似度确定方式可以采用不同的特征向量确定方式。主要的构建方式包括但不限于以下三种:
构建方式一:
可以针对待比较文档中各词语分别执行:将词语的索引号(步骤104中获取的该词语的索引号)作为该词语在待比较文档的特征向量中的维度号,依据该词语在待比较文档中的出现次数,确定该词语在待比较文档的特征向量中的分量值。例如,若词语对应表中存在Q个词语,那么所有待比较文档的特征向量最终都是Q维的向量。待比较文档中各词语在词语对应表中的索引号就是各词语分别在待比较文档的特征向量中的维度号,可以将出现次数作为对应分量值。当然除了出现次数(出现频率)之外,还可以结合其他因素来确定分量值,例如出现次数可以结合倒文档率即利用词语的tf-idf来确定词语在特征向量中的分量值。
构建方式二:
可以针对待比较文档中各词语分别执行:将词语的索引号(步骤104中获取的该词语的索引号)作为该词语在待比较文档的特征向量中的维度号;将指示该词语在待比较文档中出现的值,作为该词语在待比较文档的特征向量中的分量值。例如,若词语对应表中存在Q个词语,那么所有待比较文档的特征向量最终都是Q维的向量。待比较文档中各词语在词语对应表中的索引号就是各词语分别在待比较文档的特征向量中的维度号,该词语对应的分量值可以取1,表明该词语在待比较文档出现。
构建方式一和构建方式二优选第一种索引获取方式。
构建方式三:
除了上述两种构建特征向量的方式之外,还可以采用simhash方式构建特征向量。具体地,可以将待比较文档中各词语的索引号(步骤104中获取的该词语的索引号)作为特征值,将各词语在待比较文档中的出现次数作为对应特征值的权重,以构成待比较文档的特征集合;然后将待比较文档的特征集合进行Simhash处理,将得到的F位签名作为待比较文档的特征向量,F为预设的正整数。
Simhash是google提出的一种哈希处理方式,其能够将特征集合中的各特征进行哈希处理,然后结合各特征的权重对得到的各哈希序列穿进行累加、降维等处理后,最终得到一定bit位数的签名。鉴于Simhash算法为已有技术,在此本发明仅对该算法进行利用,因此对Simhash算法本身不做详述。
构建方式三优选第二种索引获取方式。
在106中,通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度。
针对步骤105中的方式一,本步骤可以采用诸如余弦相似度、欧式距离等方式,例如计算待比较文档的特征向量之间的余弦相似度,将得到的相似度值作为待比较文档之间的相似度。
针对步骤105中的方式二,本步骤可以采用诸如Jaccard相似度、Dice相似度的方式,例如计算待比较文档的特征向量之间的Jaccard相似度,将得到的相似度值作为待比较文档之间的相似度。
针对步骤105中的方式三,本步骤可以采用诸如海明距离等方式。例如计算待比较文档的特征向量之间的海明距离,利用得到的海明距离,确定待比较文档之间的相似度。
这些都是目标比较常见的相似度算法,在此不做详述。
下面结合实施例对采用上述方法的一种典型应用场景进行描述。存在两种集合:目标组文档集合和参考文档集,需要逐一计算目标组文档集合中包含的目标文档和参考文档集中包含的参考组文档之间的文档相似度。例如,搜索引擎爬取网络中的文档,对于新爬取到的文档需要判断爬取到的历史文档中是否已经存在,这种情况下,可以将新爬取到的文档可以作为目标文档构成目标组文档集合,历史文档作为参考文档集。
主要包括三个过程:
第一个过程是对参考文档集进行处理,如图2所示。将参考文档集分配给L个计算节点并行进行分词处理,将各参考文档的词语进行汇总,得到词语对应表,并记录各词语在词语对应表中的索引号。然后L个计算节点再并行地针对各参考文档分别构建对应的特征向量,即基于参考文档的分词结果,利用各词语在词语对应表中的索引号(因为词语对应表是由参考文档集构建的,因此参考文档中各词语一定存在于词语对应表中,即一定能够在词语对应表中存在对应索引号),构建各参考文档的特征向量,特征向量的构建过程参见上面实施例所述的过程。
由于各参考文档的特征向量均是基于统一的基础,因此只要词语对应表不发生变化,则各参考文档的特征向量不会发生变化。因此各计算节点构建各参考文档的特征向量后,存储各参考文档的特征向量,以便在后续计算各文档之间相似度时,直接读取已构建的各参考文档的特征向量即可。
第二个过程是对目标组文档集合进行处理,如图3所示。将目标组文档集合分配给L个计算节点并行进行分词处理。在构建各目标文档的特征向量时,针对目标文档的各词语分别执行:若该词语存在于词语对应表,则获取该词语在词语对应表中的索引号;若该词语不存在于词语对应表但存在于临时对应表,则获取该词语在临时对应表中的索引号;若该词语不存在于词语对应表也不存在于临时对应表,则将该词语记录于临时对应表,分配并记录该词语在临时对应表中的索引号,将该索引号作为获取的该词语的索引号。然后利用获取的各词语的索引号,构建目标文档的特征向量。
特征向量的构建方式与参考文档的构建方式保持一致。例如,对参考文档和目标文档均采用上述方式一,或者对参考文档和目标文档均采用上述方式二,或者对参考文档和目标文档均采用上述方式三。
第三个过程,分别计算目标组文档集合中各目标文档与参考文档集中各参考文档之间的相似度,分别针对各目标文档确定与其相似度最高的K个参考文档。在计算相似度时,可以将任务分配给多个计算节点并行计算各目标文档与各参考文档之间的相似度,并针对目标文档确定与其相似度最高的K个参考文档,如图4所示。其中每个计算节点可以直接读取第一个过程和第二过程中已经得到的各参考文档的特征向量以及各目标文档的特征向量,从而加速了相似度的计算并缩短耗时。
经过试验,对于目标组文档数目n为6万,参考组文档数目m为60万的规模,采用本发明实施例提供的方式可将耗时由原来的万小时级别,缩短为几十小时级别,甚至几小时级别。
以上是对本发明所提供的方法进行的详细描述,下面对结合实施例本发明提供的装置进行详述。图5为本发明实施例提供的装置结构图,如图5所示,该装置可以包括:对应表生成单元02、第二分词单元03、向量构建单元04和相似度计算单元05,还可以进一步包括第一分词单元01、文档确定单元06。各组成单元的主要功能如下:
对应表生成单元02用于预先根据参考文档集构建词语对应表。
第一分词单元01负责将参考文档集进行分词处理。具体地,第一分词单元01可以基于分词词典对参考文档集中各文档分别进行分词处理,对于分词后得到的各词语可以进一步基于停用词表进行去除停用词,以及去除标点符号等预处理。
参考文档集中文档数量较大,可能是万级别、几十万级别、甚至是百万千万级别。为了加快对参考文档集的分词处理速度,第一分词单元01可以通过多个计算节点并行对参考文档集中的各文档进行分词处理。例如采用L个计算节点,将参考文档集中的各文档分配给L个计算节点,使得L个计算节点分别被分配到尽量平均数量的文档,然后分别并行地对分配到的文档进行分词处理。L为预设的正整数,其取值可以根据计算节点的计算能力、参考文档集的文档数量等因素综合确定。
具体地,对应表生成单元02负责将第一分词单元01分词得到的词语进行汇总,构成词语对应表,并记录各词语在词语对应表中的索引信息。
上述第一分词单元01和对应表生成单元02可以预先完成对词语对应表的构建。
第二分词单元03负责对至少两个待比较文档进行分词处理后,得到待比较文档中的各词语。其分词方式与第一分词单元01相同,不再赘述。另外,第一分词单元01和第二分词单元03可以分别独立设置,也可以设置为一个分词单元实现。
向量构建单元04负责从词语对应表中查询得到各待比较文档中词语对应的索引信息;利用得到的索引信息,构建待比较文档的特征向量。
由于待比较文档并不一定是参考文档,因此待比较文档中可能会存在词语对应表中不存在的词语。向量构建单元04在获取待比较文档中各词语在词语对应表中的索引信息时,可以采用但不限于以下两种索引获取方式:
第一种索引获取方式:针对待比较文档中的各词语可以分别执行以下处理:
首先判断该词语是否存在于词语对应表,如果是,则获取该词语在词语对应表中的索引信息;否则丢弃该词语。
第二种索引获取方式:可以针对待比较文档中的各词语分别执行:
判断该词语是否存在于词语对应表中,如果是,则获取该词语在词语对应表中的索引信息;否则,判断该词语是否存在于临时对应表中,如果否,则将该词语记录于临时对应表中,记录并获取该词语在临时对应表中的索引信息;如果是,则获取该词语在临时对应表中的索引信息;其中临时对应表和词语对应表中的索引信息不重叠,可以接续词语对应表中的索引信息为临时对应表中的词语赋予索引信息。
另外,向量构建单元04构建特征向量所采用的方式可以包括但不限于以下三种:
构建方式一:
可以针对待比较文档中各词语分别执行:将获取的词语的索引信息作为该词语在待比较文档的特征向量中的维度号,依据该词语在待比较文档中的出现次数,确定该词语在待比较文档的特征向量中的分量值。
构建方式二:
可以针对待比较文档中各词语分别执行:将词语的索引信息作为该词语在待比较文档的特征向量中的维度号;将指示该词语在待比较文档中出现的值,作为该词语在待比较文档的特征向量中的分量值。
构建方式一和构建方式二优选第一种索引获取方式。
构建方式三:
除了上述两种构建特征向量的方式之外,还可以采用simhash方式构建特征向量。具体地,可以将待比较文档中各词语的索引信息作为特征值,将各词语在待比较文档中的出现次数作为对应特征值的权重,以构成待比较文档的特征集合;然后将待比较文档的特征集合进行Simhash处理,将得到的F位签名作为待比较文档的特征向量,F为预设的正整数。
构建方式三优选第二种索引获取方式。
相似度计算单元05负责通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度。
针对上述方式一所述的特征向量的构建方式,相似度计算单元05可以计算待比较文档的特征向量之间的余弦相似度,将得到的相似度值作为待比较文档之间的相似度。
针对上述方式二所述的特征向量的构建方式,相似度计算单元05可以计算待比较文档的特征向量之间的Jaccard相似度,将得到的相似度值作为待比较文档之间的相似度。
针对上述方式三所述的特征向量的构建方式,相似度计算单元05可以计算待比较文档的特征向量之间的海明距离;利用计算得到的海明距离,确定待比较文档之间的相似度。
另外,若待比较文档的数量较大,为了提高效率,上述第二分词单元03和向量构建单元04可以分别由多个计算节点构成,由多个计算节点并行对各待比较文档进行分词处理和构建特征向量。
本发明实施例中涉及的待比较文档指的是需要进行相似度比较的文档。根据具体应用场景不同,待比较文档也不同。待比较文档可以均是参考文档集中的文档,或者也可以均是非参考文档集中的文档,再或者,也可以一个是参考文档集中的文档,另一个是非参考文档集中的文档。
作为一个典型的场景,可以将目标文档(非参考文档集中的文档)作为其中一个待比较文档,逐一将参考文档集中的各文档作为另一个待比较文档。这种场景可以用于在参考文档集中查找目标文档的相似文档,例如文档确定单元06确定参考文档集合中与目标文档相似度最高的K个文档,其中K为预设的正整数。
因为有可能待比较文档之一是参考文档,已经针对参考文档构建了特征向量,该特征向量可以预先保存并供相似度计算时直接采用,而不必重复构建。因此第二分词单元03在对待比较文档进行分词处理之前,可以首先判断是否已经构建有待比较文档的特征向量,如果是,则触发相似度计算单元05执行通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度;否则,继续执行对待比较文档进行分词处理。
图6示例性地示出了根据各种实施例的示例设备600。设备600可包括一个或多个处理器602,系统控制逻辑601耦合于至少一个处理器602,非易失性存储器(non-volatilememory,NMV)/存储器604耦合于系统控制逻辑601,网络接口606耦合于系统控制逻辑601。
处理器602可包括一个或多个单核处理器或多核处理器。处理器602可包括任何一般用途处理器或专用处理器(如图像处理器、应用处理器基带处理器等)的组合。
一个实施例中的系统控制逻辑601,可包括任何适当的接口控制器,以提供到处理器602中的至少一个的任何合适的接口,和/或提供到与系统控制逻辑601通信的任何合适的设备或组件的任何合适的接口。
一个实施例中的系统控制逻辑601,可包括一个或多个内存控制器,以提供到系统内存603的接口。系统内存603用来加载以及存储数据和/或指令。例如,对应设备600,在一个实施例中,系统内存603可包括任何合适的易失性存储器。
NVM/存储器604可包括一个或多个有形的非暂时的计算机可读介质,用于存储数据和/或指令。例如,NVM/存储器604可包括任何合适的非易失性存储装置,如一个或多个硬盘(hard disk device,HDD),一个或多个光盘(compactdisk,CD),和/或一个或多个数字通用盘(digital versatile disk,DVD)。
NVM/存储器604可包括存储资源,该存储资源物理上是该系统所安装的或者可以被访问的设备的一部分,但不一定是设备的一部分。例如,NVM/存储器604可经由网络接口606被网络访问。
系统内存603以及NVM/存储器604可分别包括临时的或持久的指令610的副本。指令610可包括当由处理器602中的至少一个执行时导致设备600实现图1~图4描述的方法之一或组合的指令。各实施例中,指令610或硬件、固件,和/或软件组件可另外地/可替换地被置于系统控制逻辑601,网络接口606和/或处理器602。
网络接口606可包括一个接收器来为设备600提供无线接口来与一个或多个网络和/或任何合适的设备进行通信。网络接口606可包括任何合适的硬件和/或固件。网络接口606可包括多个天线来提供多输入多输出无线接口。在一个实施例中,网络接口606可包括一个网络适配器、一个无线网络适配器、一个电话调制解调器,和/或无线调制解调器。
在一个实施例中,处理器602中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑一起封装。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑一起封装以形成系统级封装。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在相同的管芯上。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在相同的管芯上以形成系统芯片。
设备600可进一步包括输入/输出装置605。输入/输出装置605可包括用户接口旨在使用户与设备600进行交互,可包括外围组件接口,其被设计为使得外围组件能够与系统交互,和/或,可包括传感器,旨在确定环境条件和/或有关设备600的位置信息。
下面列举两个本发明所适用的应用场景:
应用场景一:
搜索引擎需要定期爬取网络文档,对于新爬取到的文档需要从历史文档中判断是否存在重复的文档,即是否历史文档中已经存在该新爬取到的文档,如果是,则需要进行去重处理,即丢弃该新爬取到的文档。
对于这种应用场景,在本发明实施例中,可以将搜索引擎爬取到的历史文档作为参考文档,构成参考文档集。然后针对参考文档集确定词语对应表,并基于词语对应表构建各参考文档的特征向量进行存储以备后续相似度计算时使用。将搜索引擎新爬取到的文档作为目标文档,构成目标组文档,利用已经生成的词语对应表,生成各目标文档的特征向量。然后逐一针对各目标文档计算目标文档的特征向量与各参考文档的特征向量之间的相似度,以此确定目标文档与各参考文档之间的相似度,依据相似度来进行判重。例如若参考文档集中存在参考文档与某目标文档之间的相似度达到预设的阈值,例如99%,则可以认为搜索引擎已经爬取到的历史文档中已经存在上述的某目标文档(即某个新爬取到的文档),该目标文档不再进行存储。
应用场景二:
用户在使用新闻类APP过程中,当用户在浏览某个新闻文档时,可以针对用户当前浏览的新闻文档,确定在历史新闻文档中是否存在与该新闻文档相似的新闻文档,可以将相似的新闻文档作为属于同一专题的新闻推荐给用户。
对于这种应用场景,在本发明实施例中,可以将历史新闻文档作为参考文档集,针对参考文档集确定词语对应表,并基于词语对应表构建各参考文档的特征向量进行存储以备后续相似度计算时使用。将用户当前浏览的新闻文档作为目标文档,利用已经生成的词语对应表,生成目标文档的特征向量。然后分别计算该目标文档与各参考文档之间的相似度,确定出相似度最高的K个参考文档(历史新闻文档)作为推荐给用户的文档,其中K值可以根据界面状况、用户浏览习惯等设置,例如K取3,即将历史新闻文档中与用户当前浏览的新闻文档最相似的3个文档推荐给用户。
由以上描述可以看出,本发明提供的方法、装置、设备和计算机存储介质可以具备以下优点:
1)本发明基于参考文档集形成词语对应表,所有待比较文档的特征向量都基于该词语对应表构建,只要参考组文档不发生变化,所有待比较文档的特征向量均只需要进行一次构建,就可以用于待比较文档的所有相似度计算。相比较现有技术中需要两两待比较文档分别构建特征向量的方式,大大降低了计算量。当用于大规模文档的相似度计算时,能够很大程度的减少耗时。
2)正是基于统一的词语对应表进行待比较文档的特征向量构建,可以使得多个计算节点能够并行执行大规模文档的特征向量构建,从而进一步缩小耗时。
3)文档的特征向量利用文档中各词语在词语对应表中的索引号构建,这种更高效的稀疏表示方式,能够降低文档特征向量的存储量,同时提高相似度的计算速度。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (43)
1.一种确定文档相似度的方法,其特征在于,预先根据参考文档集构建有词语对应表;该方法包括:
分别对至少两个待比较文档进行分词处理,得到各待比较文档中的词语;
将各待比较文档中的词语在所述词语对应表中查询,以构建待比较文档的特征向量;
通过计算各待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度。
2.根据权利要求1所述的方法,其特征在于,所述词语对应表的构建包括:
将参考文档集中各文档进行分词处理;
将分词处理后得到的词语进行汇总,得到词语对应表,记录该词语对应表中各词语的索引信息。
3.根据权利要求2所述的方法,其特征在于,所述将各待比较文档中的词语在所述词语对应表中查询,以构建待比较文档的特征包括:
从所述词语对应表中查询得到各待比较文档中词语对应的索引信息;
利用得到的索引信息,构建各待比较文档的特征向量。
4.根据权利要求2所述的方法,其特征在于,所述将参考文档集进行分词处理包括:
通过多个计算节点并行对所述参考文档集中的各文档进行分词处理。
5.根据权利要求3所述的方法,其特征在于,在从所述词语对应表中查询得到各待比较文档中词语对应的索引信息时,针对待比较文档中的各词语分别执行:
判断该词语是否存在于所述词语对应表中,如果是,则获取该词语在所述词语对应表中的索引信息;
否则,判断该词语是否存在于临时对应表中,如果否,则将该词语记录于临时对应表中,记录并获取该词语在临时对应表中的索引信息;如果是,则获取该词语在临时对应表中的索引信息;
其中临时对应表和词语对应表中的索引信息不重叠。
6.根据权利要求3所述的方法,其特征在于,在从所述词语对应表中查询得到各待比较文档中词语对应的索引信息时,针对待比较文档中的各词语分别执行:
判断该词语是否存在于所述词语对应表中,如果是,则获取该词语在所述词语对应表中的索引信息;
否则,丢弃该词语。
7.根据权利要求3所述的方法,其特征在于,在利用得到的索引信息,构建待比较文档的特征向量时,针对待比较文档中各词语分别执行:
将获取的词语的索引信息作为该词语在所述待比较文档的特征向量中的维度号;
依据该词语在所述待比较文档中的出现次数,确定该词语在所述待比较文档的特征向量中的分量值。
8.根据权利要求7所述的方法,其特征在于,所述通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度包括:
计算待比较文档的特征向量之间的余弦相似度,将得到的相似度值作为待比较文档之间的相似度。
9.根据权利要求3所述的方法,其特征在于,在利用得到的索引信息,构建待比较文档的特征向量时,针对待比较文档中各词语分别执行:
将获取的词语的索引信息作为该词语在所述待比较文档的特征向量中的维度号;
将指示该词语在所述待比较文档中出现的值,作为该词语在所述待比较文档的特征向量中的分量值。
10.根据权利要求9所述的方法,其特征在于,所述通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度包括:
计算待比较文档的特征向量之间的Jaccard相似度,将得到的相似度值作为待比较文档之间的相似度。
11.根据权利要求3所述的方法,其特征在于,所述利用得到的索引信息,构建待比较文档的特征向量包括:
将所述待比较文档中各词语的索引信息作为特征值,将各词语在所述待比较文档中的出现次数作为对应特征值的权重,以构成所述待比较文档的特征集合;
将所述待比较文档的特征集合进行Simhash处理,将得到的F位签名作为所述待比较文档的特征向量,F为预设的正整数。
12.根据权利要求11所述的方法,其特征在于,所述通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度包括:
计算待比较文档的特征向量之间的海明距离;
利用计算得到的海明距离,确定待比较文档之间的相似度。
13.根据权利要求1所述的方法,其特征在于,若存在大规模数量的待比较文档,则采用多个计算节点并行对各待比较文档构建特征向量。
14.根据权利要求1所述的方法,其特征在于,在构建待比较文档的特征向量之前,进一步包括:
判断是否已经构建有所述待比较文档的特征向量,如果是,则转至执行所述通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度;否则,继续执行所述构建待比较文档的特征向量。
15.根据权利要求1所述的方法,其特征在于,将非参考文档集中的文档作为其中一个待比较文档,逐一将参考文档集中的各文档作为另一个待比较文档;
利用待比较文档之间的相似度,确定所述参考文档集合中与所述非参考文档集中的文档相似度最高的K个文档,其中所述K为预设的正整数。
16.根据权利要求15所述的方法,其特征在于,所述非参考文档集包括:搜索引擎新爬取到的文档,所述参考文档集包括搜索引擎爬取到的历史文档;或者,
所述非参考文档集包括:用户当前浏览的新闻文档,所述参考文档集包括历史新闻文档。
17.一种确定文档相似度的装置,其特征在于,该装置包括:
对应表生成单元,用于预先根据参考文档集构建词语对应表;
第二分词单元,用于分别对至少两个待比较文档进行分词处理,得到各待比较文档中的词语;
向量构建单元,用于将各待比较文档中的词语在所述词语对应表中查询,以构建待比较文档的特征向量;
相似度计算单元,用于通过计算待比较文档的特征向量之间的相似度,确定待比较文档之间的相似度。
18.根据权利要求17所述的装置,其特征在于,该装置还包括:
第一分词单元,用于将参考文档集进行分词处理;
对应表生成单元具体用于,将所述第一分词单元分词得到的词语进行汇总,构成词语对应表,并记录该词语对应表中各词语的索引信息。
19.根据权利要求18所述的装置,其特征在于,所述向量构建单元,具体用于:
从所述词语对应表中查询得到各待比较文档中词语对应的索引信息;
利用得到的索引信息,构建各待比较文档的特征向量。
20.根据权利要求18所述的装置,其特征在于,所述第一分词单元具体用于:通过多个计算节点并行对所述参考文档集中的各文档进行分词处理。
21.根据权利要求19所述的装置,其特征在于,所述向量构建单元在从所述词语对应表中查询得到各待比较文档中词语对应的索引信息时,针对待比较文档中的各词语分别执行:
判断该词语是否存在于所述词语对应表中,如果是,则获取该词语在所述词语对应表中的索引信息;
否则,判断该词语是否存在于临时对应表中,如果否,则将该词语记录于临时对应表中,记录并获取该词语在临时对应表中的索引信息;如果是,则获取该词语在临时对应表中的索引信息;
其中临时对应表和词语对应表中的索引信息不重叠。
22.根据权利要求19所述的装置,其特征在于,所述向量构建单元在从所述词语对应表中查询得到各待比较文档中词语对应的索引信息时,针对待比较文档中的各词语分别执行:
判断该词语是否存在于所述词语对应表中,如果是,则获取该词语在所述词语对应表中的索引信息;
否则,丢弃该词语。
23.根据权利要求19所述的装置,其特征在于,所述向量构建单元在利用得到的索引信息上,构建待比较文档的特征向量时,针对待比较文档中各词语分别执行:
将获取的词语的索引信息作为该词语在所述待比较文档的特征向量中的维度号;
依据该词语在所述待比较文档中的出现次数,确定该词语在所述待比较文档的特征向量中的分量值。
24.根据权利要求23所述的装置,其特征在于,所述相似度计算单元,具体用于:计算待比较文档的特征向量之间的余弦相似度,将得到的相似度值作为待比较文档之间的相似度。
25.根据权利要求19所述的装置,其特征在于,所述向量构建单元在利用得到的索引信息,构建待比较文档的特征向量时,针对待比较文档中各词语分别执行:
将获取的词语的索引信息作为该词语在所述待比较文档的特征向量中的维度号;
将指示该词语在所述待比较文档中出现的值,作为该词语在所述待比较文档的特征向量中的分量值。
26.根据权利要求25所述的装置,其特征在于,所述相似度计算单元,具体用于:计算待比较文档的特征向量之间的Jaccard相似度,将得到的相似度值作为待比较文档之间的相似度。
27.根据权利要求19所述的装置,其特征在于,所述向量构建单元在利用得到的索引信息,构建待比较文档的特征向量时,具体执行:
将所述待比较文档中各词语的索引信息作为特征值,将各词语在所述待比较文档中的出现次数作为对应特征值的权重,以构成所述待比较文档的特征集合;
将所述待比较文档的特征集合进行Simhash处理,将得到的F位签名作为所述待比较文档的特征向量,F为预设的正整数。
28.根据权利要求27所述的装置,其特征在于,所述相似度计算单元,具体用于:计算待比较文档的特征向量之间的海明距离;利用计算得到的海明距离,确定待比较文档之间的相似度。
29.根据权利要求17所述的装置,其特征在于,该装置将非参考文档集中的文档作为其中一个待比较文档,逐一将参考文档集中的各文档作为另一个待比较文档;
该装置还包括:
文档确定单元,用于利用待比较文档之间的相似度,确定所述参考文档集合中与所述目标文档相似度最高的K个文档,其中所述K为预设的正整数。
30.根据权利要求29所述的装置,其特征在于,所述非参考文档集包括:搜索引擎新爬取到的文档,所述参考文档集包括搜索引擎爬取到的历史文档;或者,
所述非参考文档集包括:用户当前浏览的新闻文档,所述参考文档集包括历史新闻文档。
31.一种确定文档相似度的方法,其特征在于,预先根据参考文档集构建有词语对应表,并构建有各参考文档集中各参考文档的特征向量,其中参考文档的特征向量是对参考文档进行分词处理后,将得到的词语在所述词语对应表中查询后构建的;该方法包括:
对非参考文档集的目标文档进行分词处理,得到目标文档中的词语;
将目标文档中的词语在所述词语对应表中查询,以构建目标文档的特征向量;
通过计算目标文档的特征向量与参考文档的特征向量之间的相似度,确定目标文档与参考文档之间的相似度。
32.根据权利要求31所述的方法,其特征在于,构建文档的特征向量包括:从所述词语对应表中查询文档中各词语对应的索引信息;利用得到的索引信息,构建文档的特征向量;
所述文档包括参考文档或目标文档。
33.根据权利要求32所述的方法,其特征在于,在从所述词语对应表中查询文档中各词语对应的索引信息时,针对文档中各词语分别执行:
判断该词语是否存在于所述词语对应表中,如果是,则获取该词语在所述词语对应表中的索引信息;
否则,判断该词语是否存在于临时对应表中,如果否,则将该词语记录于临时对应表中,记录并获取该词语在临时对应表中的索引信息;如果是,则获取该词语在临时对应表中的索引信息;
其中临时对应表和词语对应表中的索引信息不重叠。
34.根据权利要求32所述的方法,其特征在于,在利用得到的索引信息,构建文档的特征向量时,针对文档中各词语分别执行:
将获取的词语的索引信息作为该词语在文档的特征向量中的维度号;
依据该词语在文档中的出现次数,确定该词语在文档的特征向量中的分量值。
35.根据权利要求34所述的方法,其特征在于,所述通过计算目标文档的特征向量与参考文档的特征向量之间的相似度,确定目标文档与参考文档之间的相似度包括:
计算目标文档的特征向量与参考文档的特征向量之间的余弦相似度,将得到的相似度值作为目标文档与参考文档之间的相似度。
36.根据权利要求32所述的方法,其特征在于,在利用得到的索引信息,构建文档的特征向量时,针对文档中各词语分别执行:
将获取的词语的索引信息作为该词语在文档的特征向量中的维度号;
将指示该词语在文档中出现的值,作为该词语在文档的特征向量中的分量值。
37.根据权利要求36所述的方法,其特征在于,所述通过计算目标文档的特征向量与参考文档的特征向量之间的相似度,确定目标文档与参考文档之间的相似度包括:
计算目标文档的特征向量与参考文档的特征向量之间的Jaccard相似度,将得到的相似度值作为目标文档与参考文档之间的相似度。
38.根据权利要求32所述的方法,其特征在于,在利用得到的索引信息,构建文档的特征向量时,针对文档中各词语分别执行:
将文档中各词语的索引信息作为特征值,将各词语在文档中的出现次数作为对应特征值的权重,以构成文档的特征集合;
将文档的特征集合进行Simhash处理,将得到的F位签名作为文档的特征向量,F为预设的正整数。
39.根据权利要求38所述的方法,其特征在于,所述通过计算目标文档的特征向量与参考文档的特征向量之间的相似度,确定目标文档与参考文档之间的相似度包括:
计算目标文档的特征向量与参考文档的特征向量之间的海明距离;
利用计算得到的海明距离,确定目标文档与参考文档之间的相似度。
40.根据权利要求31所述的方法,其特征在于,所述非参考文档集包括:搜索引擎新爬取到的文档,所述参考文档集包括搜索引擎爬取到的历史文档;或者,
所述非参考文档集包括:用户当前浏览的新闻文档,所述参考文档集包括历史新闻文档。
41.一种确定文档相似度的装置,其特征在于,该装置包括:
第一分词单元,用于将参考文档集进行分词处理;
对应表生成单元,用于将所述第一分词单元分词得到的词语进行汇总,构成词语对应表;
向量构建单元,用于将各参考文档的词语在所述词语对应表中查询,以构建各参考文档的特征向量;
第二分词单元,用于对非参考文档集的目标文档进行分词处理,得到目标文档中的词语;
所述向量构建单元,还用于将目标文档中的词语在所述词语对应表中查询,以构建目标文档的特征向量;
相似度计算单元,用于通过计算目标文档的特征向量与参考文档的特征向量之间的相似度,确定目标文档与参考文档之间的相似度。
42.一种设备,包括
存储器,包括一个或者多个程序;
一个或者多个处理器,耦合到所述存储器,执行所述一个或者多个程序,以实现如权利要求1至16、31至40中任一权项所述方法中执行的操作。
43.一种计算机存储介质,所述计算机存储介质被编码有计算机程序,所述程序在被一个或多个计算机执行时,使得所述一个或多个计算机执行如权利要求1至16、31至40中任一权项所述方法中执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710547017.2A CN109213972B (zh) | 2017-07-06 | 2017-07-06 | 确定文档相似度的方法、装置、设备和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710547017.2A CN109213972B (zh) | 2017-07-06 | 2017-07-06 | 确定文档相似度的方法、装置、设备和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109213972A true CN109213972A (zh) | 2019-01-15 |
CN109213972B CN109213972B (zh) | 2023-04-07 |
Family
ID=64992870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710547017.2A Active CN109213972B (zh) | 2017-07-06 | 2017-07-06 | 确定文档相似度的方法、装置、设备和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109213972B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933648A (zh) * | 2019-02-28 | 2019-06-25 | 北京学之途网络科技有限公司 | 一种真实用户评论的区分方法和区分装置 |
CN112163409A (zh) * | 2020-09-23 | 2021-01-01 | 平安直通咨询有限公司上海分公司 | 一种相似文档检测方法、系统、终端设备及计算机可读存储介质 |
CN114445207A (zh) * | 2022-04-11 | 2022-05-06 | 广东企数标普科技有限公司 | 基于数字人民币的税务管理系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130191391A1 (en) * | 2008-06-27 | 2013-07-25 | Cbs Interactive, Inc. | Personalization engine for building a dynamic classification dictionary |
CN103823848A (zh) * | 2014-02-11 | 2014-05-28 | 浙江大学 | 一种基于lda和vsm的中草药相似文献的推荐方法 |
CN104679728A (zh) * | 2015-02-06 | 2015-06-03 | 中国农业大学 | 一种文本相似度检测方法 |
CN106250526A (zh) * | 2016-08-05 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 一种基于内容及用户行为的文本类推荐方法和装置 |
-
2017
- 2017-07-06 CN CN201710547017.2A patent/CN109213972B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130191391A1 (en) * | 2008-06-27 | 2013-07-25 | Cbs Interactive, Inc. | Personalization engine for building a dynamic classification dictionary |
CN103823848A (zh) * | 2014-02-11 | 2014-05-28 | 浙江大学 | 一种基于lda和vsm的中草药相似文献的推荐方法 |
CN104679728A (zh) * | 2015-02-06 | 2015-06-03 | 中国农业大学 | 一种文本相似度检测方法 |
CN106250526A (zh) * | 2016-08-05 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 一种基于内容及用户行为的文本类推荐方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933648A (zh) * | 2019-02-28 | 2019-06-25 | 北京学之途网络科技有限公司 | 一种真实用户评论的区分方法和区分装置 |
CN112163409A (zh) * | 2020-09-23 | 2021-01-01 | 平安直通咨询有限公司上海分公司 | 一种相似文档检测方法、系统、终端设备及计算机可读存储介质 |
CN114445207A (zh) * | 2022-04-11 | 2022-05-06 | 广东企数标普科技有限公司 | 基于数字人民币的税务管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109213972B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10452691B2 (en) | Method and apparatus for generating search results using inverted index | |
US11048966B2 (en) | Method and device for comparing similarities of high dimensional features of images | |
CA2822900C (en) | Filtering queried data on data stores | |
CN102725755B (zh) | 文件访问方法及系统 | |
US8468146B2 (en) | System and method for creating search index on cloud database | |
US8706711B2 (en) | Descriptor storage and searches of k-dimensional trees | |
EP2721477A1 (en) | Processing repetitive data | |
US10346496B2 (en) | Information category obtaining method and apparatus | |
CN107704202B (zh) | 一种数据快速读写的方法和装置 | |
CN109213972B (zh) | 确定文档相似度的方法、装置、设备和计算机存储介质 | |
WO2017095413A1 (en) | Incremental automatic update of ranked neighbor lists based on k-th nearest neighbors | |
JP2011524583A (ja) | 改良された画像認識用の支援装置 | |
CN109739854A (zh) | 一种数据存储方法及装置 | |
WO2017095439A1 (en) | Incremental clustering of a data stream via an orthogonal transform based indexing | |
US20160321345A1 (en) | Chain understanding in search | |
CN110083731B (zh) | 图像检索方法、装置、计算机设备及存储介质 | |
US11361195B2 (en) | Incremental update of a neighbor graph via an orthogonal transform based indexing | |
KR101780534B1 (ko) | 이미지 기반 검색을 위한 맵리듀스 기반의 이미지 특징 추출 방법 및 시스템 | |
WO2022007596A1 (zh) | 图像检索系统、方法和装置 | |
CN113918807A (zh) | 数据推荐方法、装置、计算设备及计算机可读存储介质 | |
Yin et al. | Content‐Based Image Retrial Based on Hadoop | |
US10268912B2 (en) | Offline, hybrid and hybrid with offline image recognition | |
KR101592670B1 (ko) | 인덱스를 이용하는 데이터 검색 장치 및 이를 이용하는 방법 | |
CN110968267B (zh) | 数据管理方法、装置、服务器及系统 | |
CN105718485B (zh) | 一种将数据录入数据库的方法及装置 |
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 |