CN113377927A - 一种相似文档检测方法、装置、电子设备及存储介质 - Google Patents
一种相似文档检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113377927A CN113377927A CN202110720515.9A CN202110720515A CN113377927A CN 113377927 A CN113377927 A CN 113377927A CN 202110720515 A CN202110720515 A CN 202110720515A CN 113377927 A CN113377927 A CN 113377927A
- Authority
- CN
- China
- Prior art keywords
- document
- similarity
- word
- preset
- target
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 94
- 238000003860 storage Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000004364 calculation method Methods 0.000 claims description 91
- 238000000605 extraction Methods 0.000 claims description 24
- 230000011218 segmentation Effects 0.000 claims description 23
- 238000001914 filtration Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 239000013598 vector Substances 0.000 description 28
- 238000004422 calculation algorithm Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 238000009826 distribution Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 241000282472 Canis lupus familiaris Species 0.000 description 5
- 241000282326 Felis catus Species 0.000 description 5
- 239000000463 material Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000005065 mining Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 241000590419 Polygonia interrogationis Species 0.000 description 1
- 241000219000 Populus Species 0.000 description 1
- 241000209140 Triticum Species 0.000 description 1
- 235000021307 Triticum Nutrition 0.000 description 1
- 240000008042 Zea mays Species 0.000 description 1
- 235000005824 Zea mays ssp. parviglumis Nutrition 0.000 description 1
- 235000002017 Zea mays subsp mays Nutrition 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 235000005822 corn Nutrition 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- 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/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种相似文档检测方法,所述方法包括:确定目标文档和预设文档;计算所述目标文档和所述预设文档的语义相似度,在所述语义相似度大于预设值后计算所述目标文档和所述预设文档的字面相似度,根据所述语义相似度和/或所述字面相似度生成相似度检测结果;根据所述相似度检测结果判断所述目标文档是否为所述预设文档的相似文档。本申请能够提高相似文档的检测精准度和检测效率。本申请还公开了一种相似文档检测装置、一种电子设备及一种存储介质,具有以上有益效果。
Description
技术领域
本申请涉及文档处理技术领域,特别涉及一种相似文档检测方法、装置、一种电子设备及一种存储介质。
背景技术
相似文档检测是文档处理技术的一个重要分支,目前很多场景需要进行相似文档检测,例如在有保密安全业务要求的单位中需要对用户数据文件与已经确定的保密文件进行相似检查,以确定用户数据文件是否是一个保密文件;例如在论文抄袭检查过程中,需要计算新论文与已发表论文之间的相似程度,以确定新论文中是否有抄袭的内容。
相关技术中主要通过字面相似度判断两个文档是否相似,但是上述相似文档检测方式只对内容进行字面相似计算,只有字面相同的内容(短语、句子等)才会被认为是相同内容,只能检测字面相同内容,检测精准度和检测效率较低。
因此,如何提高相似文档的检测精准度和检测效率是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种相似文档检测方法、装置、一种电子设备及一种存储介质,能够提高相似文档的检测精准度和检测效率。
为解决上述技术问题,本申请提供一种相似文档检测方法,该相似文档检测方法包括:
确定目标文档和预设文档;
计算所述目标文档和所述预设文档的语义相似度,在所述语义相似度大于预设值后计算所述目标文档和所述预设文档的字面相似度,根据所述语义相似度和/或所述字面相似度生成相似度检测结果;
根据所述相似度检测结果判断所述目标文档是否为所述预设文档的相似文档。
可选的,计算所述目标文档和所述预设文档的语义相似度,在所述语义相似度大于预设值后计算所述目标文档和所述预设文档的字面相似度,根据所述语义相似度和/或所述字面相似度生成相似度检测结果,包括:
计算所述目标文档和所述预设文档的语义相似度;
若所述全文语义相似度大于第一预设值,则判断所述目标文档和所述预设文档的全文字面相似度是否大于第二预设值;若是,则判定相似度检测结果为全文相同;若否,则判定相似度检测结果为全文相似;
若所述全文语义相似度小于或等于第一预设值,则计算所述目标文档的文档分块和所述预设文档的文档分块的分块语义相似度;
若所述分块语义相似度大于第三预设值,则判断所述目标文档的文档分块和所述预设文档的文档分块的分块字面相似度是否大于第四预设值;若是,则判定相似度检测结果为部分文档相同;若否,则判定相似度检测结果为部分文档相似;
若所有所述分块语义相似度均小于或等于第三预设值,则判定相似度检测结果为文档不相似。
可选的,计算所述目标文档和所述预设文档的语义相似度,包括:
计算待对比文档内容的词语维度词移距离、句子维度词移距离和主题维度词移距离;其中,所述待对比文档内容为所述目标文档的全文和所述预设文档的全文,或所述目标文档的文档分块和所述预设文档的文档分块;
对所述词语维度词移距离、所述句子维度词移距离和所述主题维度词移距离进行加权计算,得到总体词移距离;
根据所述总体词移距离确定所述语义相似度;其中,所述总体词移距离与所述语义相似度负相关。
可选的,所述计算待对比文档内容的词语维度词移距离,包括:
对所述待对比文档内容进行分句操作;
在执行分句操作后的待对比文档内容中提取关键词得到关键词集;
将所述关键词集中权重排序前N位的关键词设置为目标关键词;其中,所述目标关键词包括动词和/或名词;
将所述待对比文档内容中与所述目标关键词相邻的名词和/或动词作为所述目标关键词的邻接词,根据所述目标关键词和所述邻接词生成上下文短语;
根据所述上下文短语计算所述待对比文档内容的所述词语维度词移距离。
可选的,所述计算待对比文档内容的句子维度词移距离,包括:
对所述待对比文档内容进行分句操作得到句子集,并在所述句子集中提取摘要句;
将所述待对比文档内容中与所述摘要句相邻的句子作为所述摘要句的邻接句,根据所述摘要句和所述邻接句生成窗口摘要;
根据所述窗口摘要计算所述待对比文档内容的所述句子维度词移距离。
可选的,所述计算待对比文档内容的主题维度词移距离,包括:
对所述待对比文档内容进行分句操作;
对执行分句操作后的待对比文档内容进行主题抽取得到主题集,并根据所述主题集中的词语生成主题词语集;
根据所述主题词语集算待对比文档内容的主题维度词移距离。
可选的,计算所述目标文档和所述预设文档的字面相似度,包括:
对待对比文档内容进行基于句子或词语的文档切分得到文档切分结果;其中,所述待对比文档内容为所述目标文档的全文和所述预设文档的全文,或所述目标文档的文档分块和所述预设文档的文档分块;
对所述文档切分结果进行文档过滤操作,并计算文档过滤后的文档切分结果的Simhash指纹;
根据所述Simhash指纹计算海明距离,并根据所述海明距离确定所述待对比文档内容的字面相似度。
本申请还提供了一种相似文档检测装置,该装置包括:
文档确定模块,用于确定目标文档和预设文档;
比对模块,用于计算所述目标文档和所述预设文档的语义相似度,在所述语义相似度大于预设值后计算所述目标文档和所述预设文档的字面相似度,根据所述语义相似度和/或所述字面相似度生成相似度检测结果;
相似文档判断模块,用于根据所述相似度检测结果判断所述目标文档是否为所述预设文档的相似文档。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述相似文档检测方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述相似文档检测方法执行的步骤。
本申请提供了一种相似文档检测方法,包括:确定目标文档和预设文档;计算所述目标文档和所述预设文档的语义相似度,在所述语义相似度大于预设值后计算所述目标文档和所述预设文档的字面相似度,根据所述语义相似度和/或所述字面相似度生成相似度检测结果;根据所述相似度检测结果判断所述目标文档是否为所述预设文档的相似文档。
本申请在确定目标文档和预设文档之后,先计算目标文档和预设文档的语义相似度,在语义相似度大于预设值后再计算目标文档和预设文档的字面相似度。即本申请对于符合语义相似度要求的内容进行字面相似度比对,对于不符合语义相似度要求的内容不进行字面相似度比对。本申请根据语义相似度和/或字面相似度生成相似度检测结果,进而根据相似度检测结果判断目标文档是否为所述预设文档的相似文档。在本申请所提供的方案中,通过语义相似度和字面相似度进行相似文档检测,提高了相似文件检测的精准度;本申请仅对通过语义相似度大于预设值的内容进行字面相似度比对,可以有效减少字面相似度比对的工作量。由此可见,本申请能够提高相似文档的检测精准度和检测效率。本申请同时还提供了一种相似文档检测装置、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种相似文档检测方法的流程图;
图2为本申请实施例所提供的一种结合字面和语义检测相似文件的方法的流程图;
图3为本申请实施例所提供的一种字面及语义相似决策的原理示意图;
图4为本申请实施例所提供的一种关键词语义相似度计算原理图;
图5为本申请实施例所提供的一种关键句语义相似度计算原理示意图;
图6为本申请实施例所提供的一种主体语义相似度计算原理示意图;
图7为本申请实施例所提供的一种字面相似计算方法的原理示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种相似文档检测方法的流程图。
具体步骤可以包括:
S101:确定目标文档和预设文档;
其中,在本步骤中先获取目标文档和预设文档,目标文档可以为实际获取的文档,预设文档可以为预先设置的文档,以便判断目标文档是否为预设文档的相似文档。本实施例可以根据方案的应用场景选取不同的目标文档和预设文档,例如在论文查重的应用场景中,目标文档可以为用户提交的论文,预设文档可以为数据库中的已发表的论文;在机密信息保护场景中,目标文档可以为用户向外界发送的邮件内容,预设文档可以为预先设置的机密信息。
S102:计算所述目标文档和所述预设文档的语义相似度,在所述语义相似度大于预设值后计算所述目标文档和所述预设文档的字面相似度,根据所述语义相似度和/或所述字面相似度生成相似度检测结果;
其中,本步骤建立在已经确定目标文档和预设文档的基础上,先对目标文档和预设文档进行语义相似度计算。在本实施例中可以计算目标文档与预设文档的全文语义相似度,也可以计算目标文档与预设文档的分块语义相似度。具体的在进行分块语义相似度计算的过程中,可以按照预设长度将目标文档预设文档划分为多个文档分块,然后将目标文档和预设文档对应的文档分块进行语义相似度比对。作为一种可行的实施方式,本实施例可以先进行全文语义相似度计算,若全文语义相似度符合相似度要求,则可以不进行分块语义相似度计算;若全文语义相似度不符合相似度要求,则可以进行分块语义相似度计算。相关技术中相似文档检测准确率低的原因是相关技术没有对内容(词语、短语、句子等)进行语义相似计算,从而导致语义相近内容也被看作不相同内容。本实施例通过对文档的语义相似度进行计算,提高了相似文档的检测精准度。
在计算所述目标文档和所述预设文档的语义相似度之后,可以得到以下语义相似度比对结果。语义相似度比对结果存在以下三种情况:全文相似、部分相似以及完全不相似。当语义相似度比对结果为全文相似或部分相似时,可以判定语义相似度大于预设值,可以执行计算目标文档和预设文档的字面相似度的操作;当语义相似度比对结果为完全不相似时,可以判定语义相似度小于或等于预设值,跳过执行计算目标文档和预设文档的字面相似度的操作,直接进入根据所述语义相似度生成相似度检测结果的方案。
可以理解的是,在计算目标文档和预设文档的字面相似度的过程中,本实施例仅对语义相似度大于预设值的文档内容进行字面相似度比对。例如,在将目标文档和预设文档进行语义相似度比对时,全文语义相似度小于预设值,则对目标文档和预设文档进行分块处理。其中,目标文档包括A和B两个文档分块,预设文档包括C和D两个文档分块,若A和C的语义相似度大于预设值,B和D的语义相似度不大于预设值,则仅对A和C进行字面相似度比对。
在得到语义相似度和字面相似度的基础上,本实施例可以根据所述语义相似度和/或所述字面相似度生成相似度检测结果。具体的,本实施例可以根据“计算所述目标文档和所述预设文档的语义相似度”这一操作的执行结果确定语义相似决策结果,可以根据“计算所述目标文档和所述预设文档的字面相似度”这一操作的执行结果确定字面相似决策结果,进而根据语义相似决策结果和字面相似决策结果确定生成相似度检测结果。
具体的,若语义相似决策结果为全文语义相似、字面相似决策结果为全文字面相似,则相似度检测结果为全文相同;若语义相似决策结果为全文语义相似、字面相似决策结果为全文字面不相似,则相似度检测结果为全文相似;若语义相似决策结果为部分语义相似、字面相似决策结果为部分字面相似,则相似度检测结果为部分文档相同;若语义相似决策结果为部分语义相似、字面相似决策结果为部分字面不相似,则相似度检测结果为部分文档相似;若语义相似决策结果为语义完全不相似,则相似度检测结果为文档不相似。本实施例中,“相同”表示字面形式一致;“相似”表示字面形式不一致,但是语义很相近;相同的内容一定相似,但是相似的内容不一定相同。
S103:根据所述相似度检测结果判断所述目标文档是否为所述预设文档的相似文档。
其中,本步骤建立在已经得到相似度检测结果的基础上,若相似度检测结果为全文相同和全文相似,则判定目标文档为预设文档的相似文档;若相似度检测结果为不相似,则判定目标文档不为预设文档的相似文档。
若相似度检测结果为部分相同和部分相似,则可以根据目标文档中与预设文档部分相同和部分相似的文档分块的比例判断目标文档是否为所述预设文档的相似文档。具体的,本实施例可以为根据预设公式计算目标文档的相似得分,预设公式为Q=a×A+b×B,Q为相似得分,a为第一系数,b为第二系数,a和b大于0,A为目标文档中与预设文档部分相同的文档分块的比例,B为目标文档中与预设文档部分相似的文档分块的比例。若Q大于预设得分,则判定目标文档为预设文档的相似文档;若Q不大于预设得分,则判定目标文档不为预设文档的相似文档。
本实施例在确定目标文档和预设文档之后,先计算目标文档和预设文档的语义相似度,在语义相似度大于预设值后再计算目标文档和预设文档的字面相似度。即本实施例对于符合语义相似度要求的内容进行字面相似度比对,对于不符合语义相似度要求的内容不进行字面相似度比对。本实施例根据语义相似度和/或字面相似度生成相似度检测结果,进而根据相似度检测结果判断目标文档是否为所述预设文档的相似文档。在本实施例所提供的方案中,通过语义相似度和字面相似度进行相似文档检测,提高了相似文件检测的精准度;本实施例仅对通过语义相似度大于预设值的内容进行字面相似度比对,可以有效减少字面相似度比对的工作量。由此可见,本实施例能够提高相似文档的检测精准度和检测效率。
作为对于图1对应实施例的进一步介绍,S102中可以使用词向量和词移距离计算语义相似情况,具体的可以先使用Word2vec计算文档的词向量。Word2vec一种深度学习模型,可以通过在大规模语料库上的训练,利用词语的上下文信息将一个词语表征为K维空间上的向量,向量空间上的距离可以用来表示词语语义上的相似度,语义越相似的词语在向量空间中的距离越近。比如“健身”和“运动”这两个词语通常会关联出现,这两个词语的上下文信息很相近,则训练得到的word2vec向量之间的余弦距离也很近。因此,word2vec技术能够被用来进行词语之间的语义相关性检测,这就避免了目前技术方案无法检测相近词和关联词的局限。
下面通过以下例子说明词向量的表示方式:
词语A=“信息安全”;
词语B=“数据保护”;
词语C=“动物园”;
这三个词语对应的Word2vec词向量表示分别为:
词语A的词向量:[0.646 227,-0.113 685,…,-0.083 449,0.282 224];
词语B的词向量:[0.579 001,0.099 916,…,-0.285 081,0.445 127];
词语C的词向量:[0.696 384,-0.474 865,…,0.120 395,-0.113 570]。
在上述举例中,词语A和词语B的词向量余弦夹角为0.667,词语A和词语C的词向量余弦夹角为0.241。可见,词语A与词语B之间的词向量余弦夹角要大于词语A与C之间的词向量余弦夹角,这也就反映了词语A“信息安全”与词语B“数据保护”语义更相关,使用场景更一致。
词移距离(Word Mover's Distance)是一种在词向量的基础上发展而来的用来衡量文档相似性的技术,克服了词向量基于单个词语计算相似而忽略了其他词语信息的缺点,特别适合于由多个词语构成的短语和句子相似度计算。词移距离技术包括以下优点:(1)效果出色:充分利用了词向量word2vec的领域迁移能力;(2)无监督:不依赖标注数据,没有冷启动问题;(3)模型简单:仅需要词向量的结果作为输入,没有任何超参数;(4)可解释性:将问题转化成线性规划,有全局最优解;(5)灵活性:可以人为干预词的重要性。
本实施例中目标文档与预设文档之间的语义相似度,可以看成将目标文档转化为预设文档所需要付出的总代价。在自然语言处理场景中,可以把目标文档与预设文档当做2个大小相同的仓库,词语就是仓库中的货物,词语之间的移动代价是词语的词向量余弦相似距离,那么目标文档与预设文档之间的相似度就是将目标文档中所有词语移动到预设文档中的移动代价总和的最小化。在词移距离模型中,通常把文档看成一个分布,类似仓库中每个仓库不同的货物量,比如使用归一化的词频特征,之后同样通过解最优化问题,得到的最小移动代价便是词移距离。
本实施例中基于词向量和词移距离计算语义相似度的方案如下:
步骤A1:分词并去掉停用词,得到词语集。
步骤A2:将词语集中的每个词语转换成Word2vec词向量表示。
步骤A3:给每个词语设计权重,这个权重反映了词语的语义重要程度,可以根据业务不同来设定,可以使用各个词语的词频来作为权重,可以把关键词的权重设置为很大,也可以所有词语使用相同的权重。
步骤A4:使用动态规划算法,找到目标文档中的每一个词语移动到预设文档的词语的最小转移代价,词语的词向量距离与权重相乘就是两个词之间的转移代价。如果两个词语义比较相近,移动代价小,则可以将目标文档的词语完全移动到预设文档中,如果语义差异较大,移动距离大,为了得到最小化的移动代价总和,可以选择少移动或者不移动。最后目标文档的所有词语都移动到预设文档中,这时全局的转移代价累加和是最小的,这时的全局转移代价累加和就是目标文档和预设文档之间的词移距离,体现了目标文档和预设文档之间的语义相似程度。
作为对于图1对应实施例的进一步介绍,S102还可以通过以下方式生成相似度检测结果,本实施例可以包括以下步骤:
步骤B1:计算所述目标文档和所述预设文档的语义相似度,判断语义相似度是否大于第一预设值;若是,则进入B2;若否,则进入B3。
步骤B2:若所述全文语义相似度大于第一预设值,则判断所述目标文档和所述预设文档的全文字面相似度是否大于第二预设值;若是,则判定相似度检测结果为全文相同;若否,则判定相似度检测结果为全文相似。
步骤B3:若所述全文语义相似度小于或等于第一预设值,则计算所述目标文档的文档分块和所述预设文档的文档分块的分块语义相似度,并判断分块语义相似度是否大于第三预设值;若是,则进入B4;若否,则进入B5。
其中,在计算分块语义相似度的语义相似度的过程中,目标文档和预设文档可以存在多个文档分块进行比对,本实施例可以将相似度最大值作为分块语义相似度。例如将目标文档的目标文档分块与预设文档的所有文档分块进行语义相似度计算,将预设文档中与预设文档语义最为相似的文档分块与目标文档分块的语义相似度,作为该目标文档分块的分块语义相似度。
步骤B4:若所述分块语义相似度大于第三预设值,则判断所述目标文档的文档分块和所述预设文档的文档分块的分块字面相似度是否大于第四预设值;若是,则判定相似度检测结果为部分文档相同;若否,则判定相似度检测结果为部分文档相似。
其中,若分块语义相似度大于第三预设值,本实施例可以对目标文档与预设文档中分块语义相似度大于第三预设值的文档分块进行分块字面相似度计算。
步骤B5:若所有所述分块语义相似度均小于或等于第三预设值,则判定相似度检测结果为文档不相似。
进一步的,在执行B1和B3的相关操作时,可以通过以下方式计算所述目标文档和所述预设文档的全文语义相似度或分块语义相似度;具体的,当待对比文档内容为目标文档的全文和预设文档的全文时,以下方式可以计算全文语义相似度;当待对比文档内容为目标文档的文档分块和预设文档的文档分块时,以下方式可以计算分块语义相似度,本实施例可以包括以下步骤:
步骤C1:计算待对比文档内容的词语维度词移距离、句子维度词移距离和主题维度词移距离;
步骤C2:对所述词语维度词移距离、所述句子维度词移距离和所述主题维度词移距离进行加权计算,得到总体词移距离;
步骤C3:根据所述总体词移距离确定所述语义相似度;
其中,所述总体词移距离与所述语义相似度负相关。
进一步的,本实施例还可以为词语维度词移距离、句子维度词移距离、主题维度词移距离分别设置语义相似阈值,当一个或多个维度的词移距离低于各自的语义相似阈值,就可以判定相应的输入(全文或分块内容)语义相似决策为“相似”。
进一步的,在执行B2和B4的相关操作时,可以通过以下方式计算所述目标文档和所述预设文档的字面相似度:对待对比文档内容进行基于句子或词语的文档切分得到文档切分结果;其中,所述待对比文档内容为所述目标文档的全文和所述预设文档的全文,或所述目标文档的文档分块和所述预设文档的文档分块;对所述文档切分结果进行文档过滤操作,并计算文档过滤后的文档切分结果的Simhash指纹;根据所述Simhash指纹计算海明距离,并根据所述海明距离确定所述待对比文档内容的字面相似度。
作为对于上述实施例的进一步介绍,所述计算待对比文档内容的词语维度词移距离的过程包括:对所述待对比文档内容进行分句操作;在执行分句操作后的待对比文档内容中提取关键词得到关键词集;将所述关键词集中权重排序前N位的关键词设置为目标关键词;其中,所述目标关键词包括动词和/或名词;将所述待对比文档内容中与所述目标关键词相邻的名词和/或动词作为所述目标关键词的邻接词,根据所述目标关键词和所述邻接词生成上下文短语;根据所述上下文短语计算所述待对比文档内容的所述词语维度词移距离。
当使用词向量和词移距离来进行语义相似计算时,为了降低计算量和非关键信息的干扰,本实施例可以不对目标文档和预设文档的所有词语逐一进行相似计算。由于自然语言中普遍存在一词多义的情况,相同的词语在不同的上下文中可能会表达截然不同的意思。本实施例提取了关键词上下文短语并对关键词上下文短语进行语义相似计算,根据对语言材料的统计分析,选取业务相关的关键词以及该词语的上下文中最近的名词或动词,两者组合在一起的关键词上下文短语具有很好的区分度,能够准确反映文档的关键信息,相似的两个文件,对应的关键词上下文短语的语义相似度也很高。例如短语“成都市发布政策”和“四川省公开报告”,这两个例子的关键词“发布”和“公开”并不相同,但是上下文短语的语义很相似;而不相似的文档,即使关键词可能完全相同,关键词上下文短语的语义相似度也不会高,例如“成都市发布政策”和“苹果发布手机”,这两个例子的关键词都是“发布”,但是上下文短语的语义差别很大。
关键词是指文档中带有关键信息或者重要信息的词语,可以使用公开的关键词提取算法,例如通过计算词语频率提取关键词的TF-IDF算法、通过词语共现关系提取关键词的TEXTRANK算法等,也可以根据业务要求制定专用的关键词提取规则,如将命名实体(xxx项目、xxx部门、xxx工程、代号xxx等)提取为关键词;或者将业务紧密相关的敏感词(业务特有动词、业务特有名词、姓名等)提取为关键词,为了提取出更有代表性的关键词,可以结合使用公开的关键词提取算法和专用的关键词提取规则。
对关键词上下文短语进行语义相似计算的过程如下:对文档内容进行分词并过滤停用词后,使用关键词提取算法或关键词提取规则提取出关键词;根据业务的要求,对关键词进行词性过滤,选取前N个动词或者名词作为关键词;以关键词作为窗口中心,选取该词语所在句子中最近相邻的上一个词语(名词或动词)和下一个词语(名词或动词),将选取出的词语和关键词组合在一起,这就是关键词上下文短语;将两个文档的关键词上下文短语分别组成集合,使用词移距离计算两个集合之间的语义距离,得到两个文档之间的词语维度词移距离;如果词语维度词移距离低于业务设定的阈值,则认为两个文档的词语在语义上很相似。
例如句子“为进一步贯彻落实《C市政府办公厅关于印发C市加快人工智能产业发展专项政策的通知》,市经信局、市财政局联合制订了《C市加快人工智能产业发展专项政策实施细则》”,如果选取的关键词是“制订”,对应的关键词上下文短语是“市财政局制订人工智能”。
示例如下:
关键动词上下文短语A“C市发布政策”;
关键动词上下文短语B“公安部公开报告”;
关键动词上下文短语C“苹果发布手机”;
上下文短语A和B的短语词移距离为3.167,上下文短语A和C的短语词移距离为3.936。从上例可以看出,如果只对关键词进行词移距离计算,短语A与短语C更接近,都有一个相同关键词“发布”,但是实际上短语A和短语B的场景更一致,都来自于政府部门政策、新闻等材料,通过对关键词上下文短语进行词移距离计算,短语A与短语B的词移距离更小,这准确的反映了真实情况。
作为对于上述实施例的进一步介绍,计算待对比文档内容的句子维度词移距离的过程可以包括:对所述待对比文档内容进行分句操作得到句子集,并在所述句子集中提取摘要句;将所述待对比文档内容中与所述摘要句相邻的句子作为所述摘要句的邻接句,根据所述摘要句和所述邻接句生成窗口摘要;根据所述窗口摘要计算所述待对比文档内容的所述句子维度词移距离。
句子通常比短语包含更多的语义,但是两个文档的相似计算无法对所有句子一一分别进行比较,一是计算量很大,二是大量非关键句会带来干扰。而摘要句是能够高度概括原文关键信息的句子,便于快速掌握原文关键内容,窗口摘要是摘要句及其上下相邻句子组成的句子组合,既包含了原文关键信息,又包含原文细节信息。为了得到更全面更准确的语义相似结果,本技术方案通过对文档进行自动摘要提取出摘要句,然后对摘要句为中心的窗口摘要进行语义相似计算。
自动摘要技术通过对多种文档资源(如书籍、文章、报告、论文以及电子邮件等)进行分析和运算生成简洁而有意义的文档摘要,分为生成式自动摘要和抽取式自动摘要两种类型。生成式自动摘要是让计算机对文档内容进行充分理解后再生成语法正确且能够概括原文主题的摘要句。因为生成式自动摘要依赖于复杂的自然语言理解和生成技术,目前的应用领域受限。抽取式自动摘要是通过计算文档中的句子,提取关键信息较多的原文句子形成摘要。目前,抽取式自动摘要技术是自动摘要技术方面的主流。
抽取式的主要方法如下。
(1)基于业务统计:统计词频、位置、关键词语等信息计算句子权值,选取权值高的句子作为文摘。
(2)基于图模型:构建拓扑结构图,对词句进行排序,如TextRank/LexRank。
(3)基于潜在语义:使用主题模型挖掘词句隐藏信息,如采用LDA、HMM。
(4)基于线路规划:将摘要问题转为线路规划,求全局最优解。
摘要句高度概括了文档关键内容,但是缺少了文档细节内容,比如关于漏洞挖掘和密码技术的两个不同文档的摘要句通常会强调信息安全的重要性,但是不会过多涉及漏洞挖掘和密码技术的细节,所以仅仅是对文档的摘要句进行相似性计算容易引入误差。通过对语言材料的统计分析,与摘要句相邻的上一个句子和下一个句子通常与该摘要句有很强的补充关系,会包含原文特有的细节信息,因此摘要句及相邻句子组成的窗口摘要具有很好的区分度,很适合用做两个文档的语义相似计算。本实施例可以使用公开的自动摘要算法提取摘要句,也可以根据业务特点来制定摘要句提取规则来提取摘要句,如包含有敏感词、专有名词等词语的句子,然后提取与摘要句相邻的上一个句子和下一个句子一起组成窗口摘要。
本实施例中,对窗口摘要进行语义相似计算的过程如下:使用自动摘要算法或者业务相关的摘要句提取规则提取出前N个摘要句;以提取出的摘要句为窗口中心,选取原文中与摘要句相邻的上一个句子和下一个句子,与摘要句一起组成窗口摘要;使用词移距离计算两个文档的窗口摘要之间的语义距离,得到两个文档的句子维度词移距离;如果句子维度词移距离低于业务设定的阈值,则认为两个文档的句子在语义上很相似。
作为对于上述实施例的进一步介绍,计算待对比文档内容的主题维度词移距离的过程包括:对所述待对比文档内容进行分句操作;对执行分句操作后的待对比文档内容进行主题抽取得到主题集,并根据所述主题集中的词语生成主题词语集;根据所述主题词语集算待对比文档内容的主题维度词移距离。
文档的主题是比句子更高层次的语义单位,是文档中具有相同词境的一组词语,高度概括了文档的主体内容,相似文档的主题在语义上是非常相似的,本技术方案通过使用LDA主题模型对两个输入(全文或分块内容)提取主题并进行语义相似计算从而判断两个输入(全文或分块内容)是否是语义相似内容。
主题可以被定义为“语料库中具有相同词境的词的集合”,比如说,主题模型可以将“健康”,“医生”,“病人”,“医院”集合成“医疗保健”主题,将“农场”,“玉米”,“小麦”集合成“农业”主题。主题模型是一个统计模型,用来抽离出一批文档中的主题。已知一篇文档的一个特定主题,则某些词会更可能出现在这篇文档,例如“狗”和“骨头”更有可能出现在一篇有关于狗的文档中,“猫”和“喵”更有可能出现在有关于猫的文档中。一般来说一篇文档都含有多个主题,这些主题之间所占比例有所不同,在特定的主题里边,有些词出现概率高,另外一些词出现概率低,假如一篇文档10%是有关猫90%有关狗,那么这篇文档“狗”或者与“狗”相关联的词出现的次数可能会是“猫”或者与“猫”相关联的词的9倍。
假设有一个文档集,里面有M个文档,对于第d个文档中会出现一堆单词,其中有一个词语是“周杰伦”,那么通过这个词语就可以理解为该文档的主题可能是“娱乐”,但是这个文档中还出现“姚明”,“孙杨”,“张继科”这些词语,此时该文档为“体育”主题的概率将大大上升,主题模型(Topic Model)就是要根据给定一篇文档,推断这个文档的主题是什么,并给出各个主题的概率大小是多少。主题模型能够识别在文档里的主题,并且挖掘语料里隐藏信息,并且在主题聚合、从非结构化文档中提取信息、特征选择等场景有广泛的用途。
LDA(隐含狄利克雷分布,Latent Dirichlet Allocation)由Blei,David M.、Ng,Andrew Y.、Jordan于2003年提出,用来推测文档的主题分布,是目前使用最广泛的主题模型。它可以将文档集中每篇文档的主题以概率分布的形式给出,从而通过分析一些文档抽取出它们的主题分布后,便可以根据主题分布进行主题聚类或文档分类。LDA是一种非监督机器学习技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。它采用了词袋(bag of words)的方法,这种方法将每一篇文档视为一个词频向量,从而将文档信息转化为了易于建模的数字信息。但是词袋方法没有考虑词与词之间的顺序,这简化了问题的复杂性,同时也为模型的改进提供了契机。每一篇文档代表了一些主题所构成的一个概率分布,而每一个主题又代表了很多词语所构成的一个概率分布。
下面通过在实际应用中的实施例说明上述实施例描述的流程。
请参见图2,图2为本申请实施例所提供的一种结合字面和语义检测相似文件的方法的流程图,本实施例对要进行相似计算的两个文档(如文档A、文档B)的全文和部分分别进行字面相似计算和语义相似计算,字面相似计算是为了计算两个文件有多少个相同句子或短语,语义相似计算是为了计算两个文件的语义相似程度,通过计算结果最终决定两个文件的相似关系,共有五种文件相似关系,分别是全文相同、全文相似、部分文档相同、部分文档相似和文档不相似。
请参见表1,表1为本实施例提供的相似关系对照表,可以根据相似关系对照表查询文档A和文档B的相似关系。
表1相似关系对照表
本技术方案分为两个相似计算阶段,分别是全文相似计算和分块相似计算,具体流程下:
步骤1、输入为两个需要进行相似计算的文件,如文件A和文件B;
步骤2、进入全文相似计算阶段
步骤3、对两个输入文件进行基于全文内容的语义相似计算,得到全文语义相似决策
步骤4、如果步骤3的全文语义相似决策为“相似”,则对两个输入文件进行基于全文内容的字面相似计算,得到全文字面相似决策
步骤5、如果步骤4的全文字面相似决策为“相似”,则表示两个输入文件的语义和字面都非常相似,可以认定两个输入文件为相同文件,即文件相似关系为“全文相同”
步骤6、如果步骤4的全文字面相似决策为“不相似”,则表示两个输入文件语义虽然相似,但是字面不相似,不能认为两个输入文件为相同文件,但是可以认定两个输入文件为相似文件,即文件相似关系为“全文相似”
步骤7、如果全文语义相似决策为“不相似”,则不需要再进行全文内容的字面相似计算,进入分块相似计算阶段。
步骤8、对两个文件进行分块,比如200个字节分为一块,每次各选取两个文件中的一个分块,对这两个分块的内容进行语义相似计算,得到分块语义相似决策。
步骤9、如果步骤8的分块语义相似决策为“相似”,则对这两个分块的内容进行字面相似计算,得到分块字面相似决策。
步骤10、如果步骤9的分块字面相似决策为“相似”,则表示这两个分块的内容语义和字面都非常相似,可以认定两个输入文件部分内容相同,即文件相似关系为“部分相同”。
步骤11、如果步骤9的分块字面相似决策为“不相似”,则表示这两个分块的内容语义虽然相似,但是字面不相似,不能认定两个输入文件部分内容相同,但是可以认定两个输入文件部分内容相似,即文件相似关系为“部分相似”。
步骤12、如果步骤9的分块语义相似决策为“不相似”,则不需要再进行字面相似计算。
步骤13、选取另外两个分块,重复步骤8,直到两个输入文件的所有分块一一完成相似计算。
步骤14、如果两个输入文件的所有分块都计算完毕,没有任何一对分块语义相似决策为“相似”,则表示两个输入文件语义和字面都不相似,即文件相似关系为“不相似”。
根据以上实施例可知,文件相似计算时先要进行语义相似计算,只有语义相似的内容才进行字面相似计算,如果语义都不相似就没有必要再进行字面相似计算了,这就避免了现有文件相似技术方案的不能检测语义相似内容和计算量大且耗时的缺点,而且通过对全文分块内容分别进行相似计算,不仅能检测全文相似情况,还能检测部分相似情况,适用的业务场景更广阔。
相应的,本实施例的技术方案分为两个模块,字面相似计算模块和语义相似计算模块,字面相似计算模块计算全文和分块内容的字面相似情况,输出全文字面相似决策和分块字面相似决策,语义相似计算模块计算全文和分块内容的语义相似情况,输出全文语义相似决策和分块语义相似决策。
请参见图3,图3为本申请实施例所提供的一种字面及语义相似决策的原理示意图,字面相似计算模块的核心是字面相似计算算法,对两部分输入内容(全文或分块内容)进行切分(根据业务要求可以切分成句子或者短语,切分得越小,计算量越大,所以通常都是切分为句子),并对每个句子或短语进行Simhash指纹计算和比较,最后根据相同句子或短语的多少得到字面相似决策,如果输入是两个文件的全文内容,则得到的字面相似决策是全文字面相似决策,表示两个文件的全文内容在字面上是否相同;如果输入是两个文档的分块内容,则得到的字面相似决策是分块字面相似决策,表示对应的两个分块内容在字面上是否相同。语义相似计算模块的核心是三个算法,分别是关键词语义相似算法、关键句语义相似算法、主题语义相似算法,三个算法分别对两部分输入内容(全文或分块内容)的关键词上下文短语、窗口摘要、主题词语集进行语义相似计算,得到词语维度词移距离、句子维度词移距离、主题维度词移距离,再将这三个词移距离通过加权公式计算得到总体词移距离,最后根据总体词移距离是否低于语义相似阈值得到语义相似决策,如果输入是两个文档的全文内容,则得到的语义相似决策是全文语义相似决策,表示两个文档的全文内容在语义上是否相似;如果输入是两个文档的分块内容,则得到的语义相似决策是分块语义相似决策,表示两个文档的部分内容在语义上是否相似。
上述加权公式可以为:总体词移距离=w1×词语维度词移距离+w2×句子维度词移距离+w3×主题维度词移距离,w1为词语维度词移距离的权重,w2为句子维度词移距离的权重,w3为主体维度词移距离的权重。
语义相似计算过程如下:为了得到准确的文件相似计算结果,不仅需要对两个文档进行字面相似计算,还需要对两个文档进行语义相似计算。在本实施例,设计了三个语义相似计算模块,分别是关键词语义相似计算模块、关键句语义相似计算模块、主题语义相似计算模块,通过这三个语义相似计算模块能够得到两个输入内容(全文内容或分块内容)在不同维度上的词移距离,最后使用加权公式将这三个维度的词移距离统一起来,得到一个总体词移距离,这个总体词移距离能够反映两个输入内容(全文内容或分块内容)的语义相似程度,总体词移距离越低,表示两个输入内容(全文内容或分块内容)在语义上的相似关系越强,可以根据业务要求设计一个语义相似阈值,如果总体词移距离(全文内容或者分块内容)低于这个阈值时,就可以判定语义相似决策(全文内容或分块内容)为“相似”。
请参见图4,图4为本申请实施例所提供的一种关键词语义相似度计算原理图,关键词携带了文档的关键信息,可以被用来进行文档之间的语义相似计算,但是因为自然语言的特点,同一个词语在不同的上下文可以表示不同的意思,所以单纯对关键词进行语义计算容易带来误差。经过对大量语言材料的分析,关键词上下文短语包含了更多的词语相关的场景细节信息,避免了一词多义带来的误差,所以本技术方案提取了关键词上下文短语并进行语义相似计算来得到词语维度的语义相似情况。
关键词语义相似算法的步骤如下:
(1)分词
对输入内容进行分句操作,一般根据句子结尾的标点符号是句号、问号、感叹号或省略号等进行句子分割,然后对句子进行分词和过滤操作。因为根据业务要求,可以忽略数量词、日期等词语的影响,所以可以进行去停用词和指定词性过滤操作处理完后得到词语集。
(2)提取关键词
提取关键词,如果没有业务上的特殊考虑,可以使用公开的关键词提取算法(如TextRank、Rake等算法),也可以根据业务要求制订专用的关键词提取规则,如将命名实体(xxx项目、xxx部门、xxx工程、代号xxx等)提取为关键词;或者将业务紧密相关的敏感词(业务特有动词、业务特有名词、姓名等)提取为关键词,为了取得更好的关键词提取范围,可以结合使用公开的关键词提取算法和专用的关键词提取规则来提取关键词。
(3)词性过滤
根据业务需要,对关键词集中的关键词进行词性过滤,只保留前N个词性为动词和名词的关键词语。
(4)生成关键词上下文短语
以过滤后的关键词语作为窗口中心,选取该关键词语最近的一个上文词语(名词或动词)和一个下文词语(名词或动词),选取出的词语和关键词一起组成关键词上下文短语。
(5)词移距离计算
计算两个文档的所有关键词上下文短语之间的词移距离,这就是两个文档的词语维度词移距离。
请参见图5,图5为本申请实施例所提供的一种关键句语义相似度计算原理示意图,关键句语义相似计算过程如下:
(1)分句
对输入内容进行分句操作,一般根据句子结尾的标点符号是句号、问号、感叹号或省略号等进行句子分割,得到句子集。
(2)自动摘要
可以使用公开的自动摘要算法(如LexRank算法)计算文档的摘要句,也可以根据业务的需要,制订专门的摘要句提取规则(如带有转折词并在文档特定位置的句子、包含某些特定词语的句子、在文档的某些特定位置的句子)。为了取得更准确的摘要句,通常将公开的自动摘要算法和业务专门的摘要句提取规则结合起来使用。
(3)生成窗口摘要
以步骤(2)中提取的摘要句为中心,选取相邻的上一个句子和下一个句子,合在一起组合成窗口摘要。
(4)对窗口摘要进行词移距离计算
计算两个文档的窗口摘要集之间的词移距离,这就是两个文档的句子维度词移距离。
请参见图6,图6为本申请实施例所提供的一种主体语义相似度计算原理示意图,关键句语义相似计算过程如下:
(1)分词
对输入内容进行分句操作,一般根据句子结尾的标点符号是句号、问号、感叹号或省略号等进行句子分割,然后对句子进行分词和过滤操作。
(2)LDA主题模型抽取主题
使用LDA主题模型算法对步骤(1)生成的词语集进行主题抽取,得到主题集。
(3)处理主题得到主题词语集
对步骤(2)生成的主题集进行处理,去除词语前面的权重值,只保留词语,得到主题词语集。
(4)对主题词语集进行词移距离计算
计算两个输入的主题词语集之间的词移距离,这就是两个输入的主题维度词移距离。
语义相似决策的过程如下:
当得到两个输入(全文或分块内容)之间的词语维度词移距离、句子维度词移距离、主题维度词移距离后,可以使用公式1来得到总体词移距离,即根据业务对不同维度的关注程度,对这三个词移距离分别乘以不同的权重系数后再相加,得到的和就是总体词移距离,这个总体词移距离表示了两个输入(全文或分块内容)在语义方面的相似关联程度,值越小,说明两个文档在语义上越相似。
总体词移距离=w1×词语维度词移距离+w2×句子维度词移距离+w3×主题维度词移距离。其中,权重系数w1,w2,w3可以根据业务对内容的关注重点来确定,如业务更关注重点句子的相似情况,则可以将句子维度词移距离的系数w2设置得高一些,通常可以将w1设置为2,w2设置为2,w3设置为1。
本实施例可以设置一个语义相似阈值,如果总体词移距离低于这个阈值,就可以认定输入的两部分内容(两个文件的全文内容或者分块内容)语义非常相似,对应的语义相似决策(全文语义相似决策、分块语义相似决策)就为“相似”。这个阈值是根据实际的业务数据情况得到的,首先收集一批业务上已经确定的相似文件,然后分别计算以每对相似文件的全文内容和分块内容作为输入,计算得到词语维度词移距离、句子维度词移距离、主题维度词移距离,并通过总体词移距离加权公式得到总体词移距离,最后取出所有总体词移距离集合中的众数或者中位数即可作为语义相似阈值,因为这个语义相似阈值是通过对现有相似文件的分析计算得到的,低于这个阈值就可以被认定为也是相似文件。
请参见图7,图7为本申请实施例所提供的一种字面相似计算方法的原理示意图,字面相似计算算法的步骤如下:
(1)切分
将输入内容以句子或者短语为单位进行切分,如果是切分为句子,通常是根据句尾符号来进行划分,以句号、问号、感叹号或省略号等结尾的文字可以被划分为一个句子;如果是切分为短语,可以根据业务要求切分为不同字数的短语,如五字短语、七字短语。
(2)分词
对每个句子或短语进行分词和过滤操作。通常根据业务要求,字面相似计算可以忽略数量词、日期、人称代词等词语的影响,所以可以进行去停用词和指定词性过滤操作,从而得到字面词语集。
(3)Simhash指纹计算
本实施例可以使用Simhash算法,对每个文档的字面词语集进行计算,得到每个文档对应的Simhash指纹。
(4)对Simhash指纹进行海明距离计算
每次各选取两个文件的一个句子的Simhash指纹,计算这两个Simhash指纹之间的海明距离,这个海明距离体现了两个句子的字面相似程度,值越小表示两个句子字面越相似,通常如果海明距离小于2,就可以断定对应的两个句子是相同句子。当两个文件的所有Simhash指纹都一一计算完毕后,如果相同句子的占比超过某一个百分比(如60%),就可以认定两个输入内容(文件或者分块)的字面相似决策是“相同”,反之,字面相似决策是“不相同”。
本实施例可以根据表1所示的关系确定文件相似程度,相比现有的只计算字面的文件相似计算技术方案,本实施例通过将文件相似计算划分为全文相似计算和分块相似计算两阶段,并在每个相似计算阶段结合使用字面相似计算和语义相似计算,只有语义相似的内容才需要进行字面相似计算,不仅解决了现有技术方案不能检测语义相似文件的局限,而且解决了现有技术方案计算量大耗时多的缺点,同时还能够检测部分相似内容,适用范围更广。
本实施例综合使用字面相似计算和语义相似计算来度量两个文档的相似关系,不仅能检测出字面相同内容,而且能检测出语义相似内容,得到的文件相似关系更准确。本实施例从全文内容和分块内容两个方面来度量两个文档的相似关系,能够检测出部分内容相同或相似,更符合真实的实际业务场景,使用范围更广,得到的文件相似关系更具有可解释性。本实施例使用关键词上下短语来衡量词语维度的语义相似关联,关键词上下文短语包含了关键词的使用场景,避免了一词多义,能够准确地反映词语维度的语义相似程度。本实施例使用窗口摘要来衡量句子维度的语义相似关联,窗口摘要既包含了关键句,又包含了相关的细节信息,能够准确地反映句子维度的语义相似程度。本实施例使用主题词语集来衡量主题维度的语义相似关联,主题词语集高度概括了文件的主要内容,能够准确地反映主题维度的语义相似程度本实施例使用加权公式将词语维词移距离、句子维度词移距离、主题维度词移距离统一成一个总体词移距离,总体词移距离综合考虑了文档的词语、句子、主题等不同维度的语义相似情况,并且能够通过加权系数调整不同的关注重点,能够准确地反映两个文档的语义相似程度。本实施例综合使用Simhash、词向量、词移距离、关键词提取算法、自动摘要算法、主题模型算法等多种业界主流先进技术,相似文档检测效果更佳。
本申请实施例还提供的一种相似文档检测装置,该装置可以包括:
文档确定模块,用于确定目标文档和预设文档;
比对模块,用于计算所述目标文档和所述预设文档的语义相似度,在所述语义相似度大于预设值后计算所述目标文档和所述预设文档的字面相似度,根据所述语义相似度和/或所述字面相似度生成相似度检测结果;
相似文档判断模块,用于根据所述相似度检测结果判断所述目标文档是否为所述预设文档的相似文档。
本实施例在确定目标文档和预设文档之后,先计算目标文档和预设文档的语义相似度,在语义相似度大于预设值后再计算目标文档和预设文档的字面相似度。即本实施例对于符合语义相似度要求的内容进行字面相似度比对,对于不符合语义相似度要求的内容不进行字面相似度比对。本实施例根据语义相似度和/或字面相似度生成相似度检测结果,进而根据相似度检测结果判断目标文档是否为所述预设文档的相似文档。在本实施例所提供的方案中,通过语义相似度和字面相似度进行相似文档检测,提高了相似文件检测的精准度;本实施例仅对通过语义相似度大于预设值的内容进行字面相似度比对,可以有效减少字面相似度比对的工作量。由此可见,本实施例能够提高相似文档的检测精准度和检测效率。
进一步的,比对模块用于计算所述目标文档和所述预设文档的语义相似度;还用于若所述全文语义相似度大于第一预设值,则判断所述目标文档和所述预设文档的全文字面相似度是否大于第二预设值;若是,则判定相似度检测结果为全文相同;若否,则判定相似度检测结果为全文相似;还用于若所述全文语义相似度小于或等于第一预设值,则计算所述目标文档的文档分块和所述预设文档的文档分块的分块语义相似度;还用于若所述分块语义相似度大于第三预设值,则判断所述目标文档的文档分块和所述预设文档的文档分块的分块字面相似度是否大于第四预设值;若是,则判定相似度检测结果为部分文档相同;若否,则判定相似度检测结果为部分文档相似;还用于若所有所述分块语义相似度均小于或等于第三预设值,则判定相似度检测结果为文档不相似。
进一步的,比对模块包括:
词移距离计算单元,用于计算待对比文档内容的词语维度词移距离、句子维度词移距离和主题维度词移距离;其中,所述待对比文档内容为所述目标文档的全文和所述预设文档的全文,或所述目标文档的文档分块和所述预设文档的文档分块;还用于对所述词语维度词移距离、所述句子维度词移距离和所述主题维度词移距离进行加权计算,得到总体词移距离;
语义相似度计算单元,用于根据所述总体词移距离确定所述语义相似度;其中,所述总体词移距离与所述语义相似度负相关。
进一步的,词移距离计算单元包括:
词语维度词移距离子单元,用于对所述待对比文档内容进行分句操作;还用于在执行分句操作后的待对比文档内容中提取关键词得到关键词集;还用于将所述关键词集中权重排序前N位的关键词设置为目标关键词;其中,所述目标关键词包括动词和/或名词;还用于将所述待对比文档内容中与所述目标关键词相邻的名词和/或动词作为所述目标关键词的邻接词,根据所述目标关键词和所述邻接词生成上下文短语;还用于根据所述上下文短语计算所述待对比文档内容的所述词语维度词移距离。
句子维度词移距离子单元,用于对所述待对比文档内容进行分句操作得到句子集,并在所述句子集中提取摘要句;还用于将所述待对比文档内容中与所述摘要句相邻的句子作为所述摘要句的邻接句,根据所述摘要句和所述邻接句生成窗口摘要;还用于根据所述窗口摘要计算所述待对比文档内容的所述句子维度词移距离。
主体维度词移距离子单元,用于对所述待对比文档内容进行分句操作;还用于对执行分句操作后的待对比文档内容进行主题抽取得到主题集,并根据所述主题集中的词语生成主题词语集;还用于根据所述主题词语集算待对比文档内容的主题维度词移距离。
进一步的,比对模块包括:
字面相似度计算单元,用于对待对比文档内容进行基于句子或词语的文档切分得到文档切分结果;其中,所述待对比文档内容为所述目标文档的全文和所述预设文档的全文,或所述目标文档的文档分块和所述预设文档的文档分块;还用于对所述文档切分结果进行文档过滤操作,并计算文档过滤后的文档切分结果的Simhash指纹;还用于根据所述Simhash指纹计算海明距离,并根据所述海明距离确定所述待对比文档内容的字面相似度。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种相似文档检测方法,其特征在于,包括:
确定目标文档和预设文档;
计算所述目标文档和所述预设文档的语义相似度,在所述语义相似度大于预设值后计算所述目标文档和所述预设文档的字面相似度,根据所述语义相似度和/或所述字面相似度生成相似度检测结果;
根据所述相似度检测结果判断所述目标文档是否为所述预设文档的相似文档。
2.根据权利要求1所述相似文档检测方法,其特征在于,计算所述目标文档和所述预设文档的语义相似度,在所述语义相似度大于预设值后计算所述目标文档和所述预设文档的字面相似度,根据所述语义相似度和/或所述字面相似度生成相似度检测结果,包括:
计算所述目标文档和所述预设文档的语义相似度;
若所述全文语义相似度大于第一预设值,则判断所述目标文档和所述预设文档的全文字面相似度是否大于第二预设值;若是,则判定相似度检测结果为全文相同;若否,则判定相似度检测结果为全文相似;
若所述全文语义相似度小于或等于第一预设值,则计算所述目标文档的文档分块和所述预设文档的文档分块的分块语义相似度;
若所述分块语义相似度大于第三预设值,则判断所述目标文档的文档分块和所述预设文档的文档分块的分块字面相似度是否大于第四预设值;若是,则判定相似度检测结果为部分文档相同;若否,则判定相似度检测结果为部分文档相似;
若所有所述分块语义相似度均小于或等于第三预设值,则判定相似度检测结果为文档不相似。
3.根据权利要求1所述文档相似度检测方法,其特征在于,计算所述目标文档和所述预设文档的语义相似度,包括:
计算待对比文档内容的词语维度词移距离、句子维度词移距离和主题维度词移距离;其中,所述待对比文档内容为所述目标文档的全文和所述预设文档的全文,或所述目标文档的文档分块和所述预设文档的文档分块;
对所述词语维度词移距离、所述句子维度词移距离和所述主题维度词移距离进行加权计算,得到总体词移距离;
根据所述总体词移距离确定所述语义相似度;其中,所述总体词移距离与所述语义相似度负相关。
4.根据权利要求3所述文档相似度检测方法,其特征在于,所述计算待对比文档内容的词语维度词移距离,包括:
对所述待对比文档内容进行分句操作;
在执行分句操作后的待对比文档内容中提取关键词得到关键词集;
将所述关键词集中权重排序前N位的关键词设置为目标关键词;其中,所述目标关键词包括动词和/或名词;
将所述待对比文档内容中与所述目标关键词相邻的名词和/或动词作为所述目标关键词的邻接词,根据所述目标关键词和所述邻接词生成上下文短语;
根据所述上下文短语计算所述待对比文档内容的所述词语维度词移距离。
5.根据权利要求3所述文档相似度检测方法,其特征在于,所述计算待对比文档内容的句子维度词移距离,包括:
对所述待对比文档内容进行分句操作得到句子集,并在所述句子集中提取摘要句;
将所述待对比文档内容中与所述摘要句相邻的句子作为所述摘要句的邻接句,根据所述摘要句和所述邻接句生成窗口摘要;
根据所述窗口摘要计算所述待对比文档内容的所述句子维度词移距离。
6.根据权利要求3所述文档相似度检测方法,其特征在于,所述计算待对比文档内容的主题维度词移距离,包括:
对所述待对比文档内容进行分句操作;
对执行分句操作后的待对比文档内容进行主题抽取得到主题集,并根据所述主题集中的词语生成主题词语集;
根据所述主题词语集算待对比文档内容的主题维度词移距离。
7.根据权利要求1所述文档相似度检测方法,其特征在于,计算所述目标文档和所述预设文档的字面相似度,包括:
对待对比文档内容进行基于句子或词语的文档切分得到文档切分结果;其中,所述待对比文档内容为所述目标文档的全文和所述预设文档的全文,或所述目标文档的文档分块和所述预设文档的文档分块;
对所述文档切分结果进行文档过滤操作,并计算文档过滤后的文档切分结果的Simhash指纹;
根据所述Simhash指纹计算海明距离,并根据所述海明距离确定所述待对比文档内容的字面相似度。
8.一种相似文档检测装置,其特征在于,包括:
文档确定模块,用于确定目标文档和预设文档;
比对模块,用于计算所述目标文档和所述预设文档的语义相似度,在所述语义相似度大于预设值后计算所述目标文档和所述预设文档的字面相似度,根据所述语义相似度和/或所述字面相似度生成相似度检测结果;
相似文档判断模块,用于根据所述相似度检测结果判断所述目标文档是否为所述预设文档的相似文档。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至7任一项所述相似文档检测方法的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至7任一项所述相似文档检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110720515.9A CN113377927A (zh) | 2021-06-28 | 2021-06-28 | 一种相似文档检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110720515.9A CN113377927A (zh) | 2021-06-28 | 2021-06-28 | 一种相似文档检测方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113377927A true CN113377927A (zh) | 2021-09-10 |
Family
ID=77579428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110720515.9A Pending CN113377927A (zh) | 2021-06-28 | 2021-06-28 | 一种相似文档检测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377927A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113792119A (zh) * | 2021-09-17 | 2021-12-14 | 平安科技(深圳)有限公司 | 一种文章原创度评价系统、方法、设备及介质 |
CN115114397A (zh) * | 2022-05-09 | 2022-09-27 | 泰康保险集团股份有限公司 | 年金信息更新方法、装置、电子设备、存储介质及程序 |
CN115329742A (zh) * | 2022-10-13 | 2022-11-11 | 深圳市大数据研究院 | 基于文本分析的科研项目产出评价验收方法及系统 |
CN115618843A (zh) * | 2022-12-19 | 2023-01-17 | 成方金融科技有限公司 | 文本检测方法、装置、电子设备及存储介质 |
CN115878759A (zh) * | 2023-01-05 | 2023-03-31 | 京华信息科技股份有限公司 | 一种文本查找方法、装置及存储介质 |
CN116431837A (zh) * | 2023-06-13 | 2023-07-14 | 杭州欧若数网科技有限公司 | 基于大型语言模型和图网络模型的文档检索方法和装置 |
CN116842138A (zh) * | 2023-07-24 | 2023-10-03 | 上海诚狐信息科技有限公司 | 基于文档的检索方法、装置、设备及存储介质 |
CN115114397B (zh) * | 2022-05-09 | 2024-05-31 | 泰康保险集团股份有限公司 | 年金信息更新方法、装置、电子设备、存储介质及程序 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656916A (zh) * | 2016-07-25 | 2018-02-02 | 长沙有干货网络技术有限公司 | 一种Simhash算法的海量文档反作弊技术方法 |
CN109344236A (zh) * | 2018-09-07 | 2019-02-15 | 暨南大学 | 一种基于多种特征的问题相似度计算方法 |
CN110222154A (zh) * | 2019-06-10 | 2019-09-10 | 武汉斗鱼鱼乐网络科技有限公司 | 基于文本及语义的相似度计算方法、服务器及存储介质 |
CN111061842A (zh) * | 2019-12-26 | 2020-04-24 | 上海众源网络有限公司 | 一种相似文本确定方法及装置 |
-
2021
- 2021-06-28 CN CN202110720515.9A patent/CN113377927A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107656916A (zh) * | 2016-07-25 | 2018-02-02 | 长沙有干货网络技术有限公司 | 一种Simhash算法的海量文档反作弊技术方法 |
CN109344236A (zh) * | 2018-09-07 | 2019-02-15 | 暨南大学 | 一种基于多种特征的问题相似度计算方法 |
CN110222154A (zh) * | 2019-06-10 | 2019-09-10 | 武汉斗鱼鱼乐网络科技有限公司 | 基于文本及语义的相似度计算方法、服务器及存储介质 |
CN111061842A (zh) * | 2019-12-26 | 2020-04-24 | 上海众源网络有限公司 | 一种相似文本确定方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113792119A (zh) * | 2021-09-17 | 2021-12-14 | 平安科技(深圳)有限公司 | 一种文章原创度评价系统、方法、设备及介质 |
CN115114397A (zh) * | 2022-05-09 | 2022-09-27 | 泰康保险集团股份有限公司 | 年金信息更新方法、装置、电子设备、存储介质及程序 |
CN115114397B (zh) * | 2022-05-09 | 2024-05-31 | 泰康保险集团股份有限公司 | 年金信息更新方法、装置、电子设备、存储介质及程序 |
CN115329742A (zh) * | 2022-10-13 | 2022-11-11 | 深圳市大数据研究院 | 基于文本分析的科研项目产出评价验收方法及系统 |
CN115618843A (zh) * | 2022-12-19 | 2023-01-17 | 成方金融科技有限公司 | 文本检测方法、装置、电子设备及存储介质 |
CN115878759A (zh) * | 2023-01-05 | 2023-03-31 | 京华信息科技股份有限公司 | 一种文本查找方法、装置及存储介质 |
CN116431837A (zh) * | 2023-06-13 | 2023-07-14 | 杭州欧若数网科技有限公司 | 基于大型语言模型和图网络模型的文档检索方法和装置 |
CN116431837B (zh) * | 2023-06-13 | 2023-08-22 | 杭州欧若数网科技有限公司 | 基于大型语言模型和图网络模型的文档检索方法和装置 |
CN116842138A (zh) * | 2023-07-24 | 2023-10-03 | 上海诚狐信息科技有限公司 | 基于文档的检索方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Abdi et al. | Machine learning-based multi-documents sentiment-oriented summarization using linguistic treatment | |
US9792277B2 (en) | System and method for determining the meaning of a document with respect to a concept | |
Nguyen et al. | Keyphrase extraction in scientific publications | |
CN113377927A (zh) | 一种相似文档检测方法、装置、电子设备及存储介质 | |
US20150120738A1 (en) | System and method for document classification based on semantic analysis of the document | |
Wang et al. | Automatic extraction of hierarchical relations from text | |
Saravanan et al. | Identification of rhetorical roles for segmentation and summarization of a legal judgment | |
Sarvabhotla et al. | Sentiment classification: a lexical similarity based approach for extracting subjectivity in documents | |
AU2014285073B2 (en) | Method and system for simplifying implicit rhetorical relation prediction in large scale annotated corpus | |
Okumura et al. | Semeval-2010 task: Japanese wsd | |
Yalcin et al. | An external plagiarism detection system based on part-of-speech (POS) tag n-grams and word embedding | |
CN108228612B (zh) | 一种提取网络事件关键词以及情绪倾向的方法及装置 | |
Kodelja et al. | Exploiting a more global context for event detection through bootstrapping | |
Alsallal et al. | Intrinsic plagiarism detection using latent semantic indexing and stylometry | |
Jayasiriwardene et al. | Keyword extraction from Tweets using NLP tools for collecting relevant news | |
Mutlu et al. | Enhanced sentence representation for extractive text summarization: Investigating the syntactic and semantic features and their contribution to sentence scoring | |
CN105701086B (zh) | 一种滑动窗口文献检测方法及系统 | |
Alami Merrouni et al. | EXABSUM: a new text summarization approach for generating extractive and abstractive summaries | |
Subha et al. | Quality factor assessment and text summarization of unambiguous natural language requirements | |
Medlock | Investigating classification for natural language processing tasks | |
Modaresi et al. | From phrases to keyphrases: An unsupervised fuzzy set approach to summarize news articles | |
Arif et al. | Word sense disambiguation for Urdu text by machine learning | |
Hadni et al. | Graph based representation for Arabic text categorization | |
Pinzhakova et al. | Feature Similarity-based Regression Models for Authorship Verification. | |
Thushara et al. | A graph-based model for keyword extraction and tagging of research documents |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210910 |