发明内容
本发明提供一种相似文档的判定方法和装置,用以解决现有技术中无法较为准确的判断各文档是否相似,无法准确的判定出文档的相似度的问题。
本发明的一方面是提供一种相似文档的判定方法,包括:
对各文档进行分词处理,分别获取各文档中的各个关键词;
统计各文档中的各关键词在所归属的文档中的词频,根据各文档中各关键词的词频,确定各文档中的各关键词的权重;
根据各文档中的各关键词的权重,确定各文档中的各句子的权重;
确定各文档中的各句子的哈希值;
根据各文档中的各句子的权重和各句子的哈希值,确定各文档的向量空间;
根据各文档的向量空间,确定各文档与所有文档中的其他文档之间的夹角余弦值;
根据各文档与所有文档中的其他文档之间的夹角余弦值,确定各文档之间的相似度。
如上所述的方法中,所述对各文档进行分词处理,分别获取各文档中的各个关键词,包括:
对各文档进行分词处理,并对分词处理后得到的词进行词性标注,以获取各文档中的各个关键词,其中,所述关键词为文档中的名词和动词。
如上所述的方法中,所述统计各文档中的各关键词在所归属的文档中的词频,根据各文档中各关键词的词频,确定各文档中的各关键词的权重,包括:
统计各文档中的各关键词在所归属的文档中的词频;
确定各关键词在所归属的文档中的第一出现位置信息;
根据各文档中各关键词的第一出现位置信息,确定与第一出现位置信息对应的第一调整值;
根据各文档中的各关键词的第一调整值,调整各文档中各关键词的词频;
根据各文档中各关键词调整后的词频,以及预设的各关键词反文档频率(Inverse Document Frequency,简称idf)值,确定各文档中的各关键词的权重;
对各文档中的各关键词的权重进行归一化处理,得到各文档中各关键词归一化处理后的权重。
如上所述的方法中,所述根据各文档中的各关键词的权重,确定各文档中的各句子的权重,包括:
根据各文档中各关键词在所属句子中的出现次数,以及各关键词的权重,确定各文档中各句子的权重;
确定各关键词所属的句子,在句子所归属的文档中的第二出现位置信息;
根据各关键词所属的句子的第二出现位置信息,确定与第二出现位置信息对应的第二调整值;
根据各文档中的各句子的第二调整值,调整各文档中的各句子的权重;
对各文档中各句子调整后的权重,进行归一化处理,得到各文档中的各句子归一化处理后的权重。
如上所述的方法中,所述根据各文档中的各句子的权重和各句子的哈希值,确定各文档的向量空间,包括:
将具有相同哈希值的句子确定为相同的句子,将相同的句子的权重累加;
将各文档中各句子累加后的权重,映射至各文档中各句子的哈希值的向量空间中,得到各文档的向量空间。
本发明的另一方面是提供一种相似文档的判定装置,包括:
获取模块,用于对各文档进行分词处理,分别获取各文档中的各个关键词;
第一权重确定模块,用于统计各文档中的各关键词在所归属的文档中的词频,根据各文档中各关键词的词频,确定各文档中的各关键词的权重;
第二权重确定模块,用于根据各文档中的各关键词的权重,确定各文档中的各句子的权重;
哈希值确定模块,用于确定各文档中的各句子的哈希值;
向量确定模块,用于根据各文档中的各句子的权重和各句子的哈希值,确定各文档的向量空间;
计算模块,用于根据各文档的向量空间,确定各文档与所有文档中的其他文档之间的夹角余弦值;
判定模块,用于根据各文档与所有文档中的其他文档之间的夹角余弦值,确定各文档之间的相似度。
如上所述的装置中,所述获取模块,具体用于:
对各文档进行分词处理,并对分词处理后得到的词进行词性标注,以获取各文档中的各个关键词,其中,所述关键词为文档中的名词和动词。
如上所述的装置中,所述第一权重确定模块,包括:
统计子模块,用于统计各文档中的各关键词在所归属的文档中的词频;
第一位置确定子模块,用于确定各关键词在所归属的文档中的第一出现位置信息;
第一调整值确定子模块,用于根据各文档中各关键词的第一出现位置信息,确定与第一出现位置信息对应的第一调整值;
第一调整子模块,用于根据各文档中的各关键词的第一调整值,调整各文档中各关键词的词频;
第一权重确定子模块,用于根据各文档中各关键词调整后的词频,以及预设的各关键词idf值,确定各文档中的各关键词的权重;
第一归一化子模块,用于对各文档中的各关键词的权重进行归一化处理,得到各文档中各关键词归一化处理后的权重。
如上所述的装置中,所述第二权重确定模块,包括:
第二权重确定子模块,用于根据各文档中各关键词在所属句子中的出现次数,以及各关键词的权重,确定各文档中各句子的权重;
第二位置确定子模块,用于确定各关键词所属的句子,在句子所归属的文档中的第二出现位置信息;
第二调整值确定子模块,用于根据各关键词所属的句子的第二出现位置信息,确定与第二出现位置信息对应的第二调整值;
第二调整子模块,用于根据各文档中的各句子的第二调整值,调整各文档中的各句子的权重;
第二归一化子模块,用于对各文档中各句子调整后的权重,进行归一化处理,得到各文档中的各句子归一化处理后的权重。
如上所述的装置中,所述向量确定模块,具体用于:
将具有相同哈希值的句子确定为相同的句子,将相同的句子的权重累加;
将各文档中各句子累加后的权重,映射至各文档中各句子的哈希值的向量空间中,得到各文档的向量空间。
本实施例通过获取各文档中的各个关键词,通过统计各文档中各关键词的词频,可以确定各文档中的各关键词的权重;然后根据各文档中的各关键词的权重,确定出各文档中的各句子的权重;根据各文档中的各句子的权重,以及计算出的各文档的各句子的哈希值,去确定各文档的向量空间;对于所有文档中的两两文档进行向量空间的夹角余弦值的计算,进而确定出各文档与所有文档中的其他文档之间的夹角余弦值;当两两文档之间的夹角余弦值越大时,两篇文档的相似度越大,进而确定出各文档之间的相似度。从而基于文档中的各词语的权重、以及文档中的各句子的权重,综合考量各文档是否相似;根据各文档的向量空间,计算两两文档之间的夹角余弦值;当两篇文档的夹角余弦值大于等于预设夹角余弦值时,则确定两篇文档之间是相似的,当夹角余弦值越大,两篇文档的相似度越高;进而可以较为准确的判断各文档是否相似,准确的判定出文档的相似度。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的相似文档的判定方法的流程图,如图1所示,本实施例的方法包括:
步骤101、对各文档进行分词处理,分别获取各文档中的各个关键词。
在本实施例中,具体的,获取到各文档之后,对各文档分别进行分词处理,从而得到各文档中的词语。然后确定出各文档中的各个关键词,具体来说,可以按照预设的标准确定文档中哪些词或哪种词为关键词,或者可以确定文档中的名词、动词和形容词为文档的关键词。
举例来说,对于一篇文档,文档中具有多个句子,不同数量的句子构成了各个段落,一个句子中具有多次词语;对文档进行分词处理之后,可以获取该文档的关键词“聚类”、“图像”、“处理”、“阈值”等等。
步骤102、统计各文档中的各关键词在所归属的文档中的词频,根据各文档中各关键词的词频,确定各文档中的各关键词的权重。
在本实施例中,具体的,统计出一篇文档中的各关键词在该文档中的出现次数,关键词的出现次数为关键词的词频,对各文档分别进行关键词的词频统计,进而计算出各文档中的各关键词的词频。
然后根据各文档中的各关键词的词频,计算出各文档中的各关键词的权重;具体来说,可以将关键词的词频,作为关键词的权重;也可以将关键词的词频进行归一化处理之后,将归一化处理之后的词频作为关键词的权重;也可以对关键词的词频,进行预设算法的处理之后,将处理后的词频作为关键词的权重。
举例来说,对于一篇文档,该文档的关键词“聚类”、“图像”、“处理”、“阈值”;“聚类”的出现次数为50次,则“聚类”的词频为50,“聚类”的权重为0.2;“图像”的出现次数为100次,则“图像”的词频为100,“图像”的权重为0.5;“处理”的出现次数为30次,则“处理”的词频为30,“处理”的权重为0.1;“阈值”的出现次数为80次,则“阈值”的词频为80,“阈值”的权重为0.3。
步骤103、根据各文档中的各关键词的权重,确定各文档中的各句子的权重。
在本实施例中,具体的,各文档的各句子中具有关键词,不同的句子具有不同数量的关键词。可以将各文档中的各关键词的权重,与各关键词在所属句子中的出现次数,进行相乘求和,从而计算出各文档中的各句子的权重。
步骤104、确定各文档中的各句子的哈希值。
在本实施例中,具体的,可以采用中文名为消息摘要算法第五版(MessageDigest Algorithm MD5,简称MD5)方法,或者采用Murmurhash方法,计算出各文档中各句子的哈希值,即hash值。
具体来说,可以采用MD5或者采用Murmurhash方法,对于每一篇文档计算出一个各句子的哈希值的向量空间,从而每一篇文档具有一个哈希值的向量空间,其大小是较大的,为N维度的向量空间,N是正整数,可以是26维度的向量空间;每一个句子都具有一个哈希值。
步骤105、根据各文档中的各句子的权重和各句子的哈希值,确定各文档的向量空间。
在本实施例中,具体的,根据各文档中的每个句子都具有一个权重,同时具有一个哈希值,句子的哈希值代表了句子在哈希值的向量空间中的位置。
将各文档中的各句子的权重,根据各句子的哈希值,映射到各文档的哈希值的向量空间中去,从而可以构成具有了具体值的各文档的向量空间。各文档的向量空间的维度相同。
举例来说,文档中有5个句子,计算出各句子的哈希值,从而可以得到该文档的哈希值的向量空间[0,0,0,0,0],5个句子分别对应了该向量空间中的5个维度的位置;5个句子的权重为0.5、0.3、0.2、0.08、0.02,将5个句子的权重映射到该向量空间中,可以得到该文档的向量空间[0.5,0.3,0.2,0.08,0.02]。
步骤106、根据各文档的向量空间,确定各文档与所有文档中的其他文档之间的夹角余弦值。
在本实施例中,具体的,在得到了各文档的向量空间之后,对两两文档分别进行夹角余弦值的计算,从而可以得到一篇文档与所有文档中其他文档之间的夹角余弦值,进而确定出各文档与所有文档中的其他文档之间的夹角余弦值。
举例来说,对于某两篇文档,一篇文档的向量空间为(x1,x2,…xk,…xN),另一篇文档的向量空间为(y1,y2,…yk,…yN),从而可以计算出两篇文档的夹角余弦值为其中,k、N都是正整数。
步骤107、根据各文档与所有文档中的其他文档之间的夹角余弦值,确定各文档之间的相似度。
在本实施例中,具体的,各文档与所有文档中的其他文档之间的夹角余弦值,为各文档与所有文档中的其他文档之间相似度,即一篇文档D1与另一篇文档D2之间的夹角余弦值cosθ,为两篇文档之间的相似度Sim(D1,D2)。
具体来说,对于两篇文档,可以计算出两篇文档之间的夹角余弦值,当夹角余弦值越大,两篇文档的相似度越高;当夹角余弦值越小,两篇文档的相似度越低。可以设定一个预设夹角余弦值,当两篇文档的夹角余弦值大于等于预设夹角余弦值时,则确定两篇文档之间是相似的。依次类推,可以根据各文档与所有文档中的其他文档之间的夹角余弦值,确定出各文档之间的相似度,确定各文档之间是否相似。
本实施例通过获取各文档中的各个关键词,通过统计各文档中各关键词的词频,可以确定各文档中的各关键词的权重;然后根据各文档中的各关键词的权重,确定出各文档中的各句子的权重;根据各文档中的各句子的权重,以及计算出的各文档的各句子的哈希值,去确定各文档的向量空间;对于所有文档中的两两文档进行向量空间的夹角余弦值的计算,进而确定出各文档与所有文档中的其他文档之间的夹角余弦值;当两两文档之间的夹角余弦值越大时,两篇文档的相似度越大,进而确定出各文档之间的相似度。从而基于文档中的各词语的权重、以及文档中的各句子的权重,综合考量各文档是否相似;根据各文档的向量空间,计算两两文档之间的夹角余弦值;当两篇文档的夹角余弦值大于等于预设夹角余弦值时,则确定两篇文档之间是相似的,当夹角余弦值越大,两篇文档的相似度越高;进而可以较为准确的判断各文档是否相似,准确的判定出文档的相似度。
图2为本发明实施例二提供的相似文档的判定方法的流程图,如图2所示,在实施例一的基础上,本实施例的方法中,步骤101,具体包括:
对各文档进行分词处理,并对分词处理后得到的词进行词性标注,以获取各文档中的各个关键词,其中,关键词为文档中的名词和动词。
在本实施例中,具体的,各获取到的各文档进行分词处理,可以获取各位文档中的各个词;将对得到的各文档中的各个词进行词性识别和词性标注。对于一篇文档而言,文档中具有动词、名词、形容词、数词、代词、助词、连词、介词等等,对文档中的词进行词性标注。
形容词、代词、助词、连词、介词等等这些词性的词,对于判定文档的相似度不具有较大判定价值和判定意义,从而可以将各文档中的名词、动词,或者将各文档中的名词、动词、数词,作为各文档的关键词。进而对各文档中的词进行筛选,将各文档中的名词、动词,或者将各文档中的名词、动词、数词,作为各文档的各关键词。
步骤102,包括:
步骤1021、统计各文档中的各关键词在所归属的文档中的词频。
在本实施例中,具体的,计算出各文档中的各关键词,在各自归属的文档中的出现次数,关键词的出现次数为关键词的词频。对各文档分别进行关键词的词频统计,进而计算出各文档中的各关键词的词频。
步骤1022、确定各关键词在所归属的文档中的第一出现位置信息。
在本实施例中,具体的,对于各文档来说,确定各文档的各关键词在所归属的文档中的第一出现位置信息。第一出现位置信息包括了句首、句中、句尾,或者第一出现位置信息包括了段首、段中、段尾等等。
举例来说,对于一篇文档,文档具有关键词A,可以确定关键词A是出现在文档中的段首,或者确定出关键词A出现在所属句子的句中。
步骤1023、根据各文档中各关键词的第一出现位置信息,确定与第一出现位置信息对应的第一调整值。
在本实施例中,具体的,对于各关键词的第一出现位置信息,设置与第一出现位置信息对应的第一调整值。
举例来说,第一出现位置信息为句首,第一调整值为累加2;第一出现位置信息为句中,第一调整值为累加1;第一出现位置信息为句尾,第一调整值为累加0;第一出现位置信息为段首,第一调整值为累加3;第一出现位置信息为段中,第一调整值为累加2;第一出现位置信息为段尾,第一调整值为累加0。
步骤1024、根据各文档中的各关键词的第一调整值,调整各文档中各关键词的词频。
在本实施例中,具体的,根据步骤1023中设置的各关键词的第一调整值,调整各文档中各关键词的词频,从而使得各文档中各关键词的词频为关键词的出现次数与第一调整值的综合值。
举例来说,某一个关键词A,关键词A的词频为B,B为正整数,第一出现位置信息为句首,第一调整值为累加2,从而关键词A调整后的词频为B+2;第一出现位置信息为句中,第一调整值为累加1,从而关键词A调整后的词频为B+1;第一出现位置信息为句尾,第一调整值为累加0,从而关键词A调整后的词频为B。或者,某一个关键词A,关键词A的词频为B,第一出现位置信息为段首,第一调整值为累加3,从而关键词A调整后的词频为B+3;第一出现位置信息为段中,第一调整值为累加2,从而关键词A调整后的词频为B+2;第一出现位置信息为段尾,第一调整值为累加0,从而关键词A调整后的词频为B。
步骤1025、根据各文档中各关键词调整后的词频,以及预设的各关键词idf值,确定各文档中的各关键词的权重。
在本实施例中,具体的,对于各关键词,都统一设置了idf值。对于较为常见的词来说,它的idf值较低;对于不常见的词来说,它的idf值较高。
将各文档中各关键词调整后的词频,对应的乘以各关键词的idf值,可以得到各文档中的各关键词的权重。
举例来说,某一个关键词A,关键词A的词频为B,关键词A为一个常见词,从而它的idf值C较小,可以计算得到关键词A的权重为B*C。
步骤1026、对各文档中的各关键词的权重进行归一化处理,得到各文档中各关键词归一化处理后的权重。
在本实施例中,具体的,然后对于所有文档的各关键词的权重进行归一化处理,从而将所有关键词的权重设定在一个范围值内。进而得到各文档中各关键词归一化处理后的权重。
举例来说,将关键词的权重的值,归一化在0~1以内,或者归一化在0~100以内。
步骤103,包括:
步骤1031、根据各文档中各关键词在所属句子中的出现次数,以及各关键词的权重,确定各文档中各句子的权重。
在本实施例中,具体的,统计出各文档中的各关键词在所属句子中的出现次数;然后将各文档中的各关键词的权重,与各关键词在所属句子中的出现次数,进行相乘求和,从而计算出各文档中的各句子的权重。
对于一个句子来说,各关键词的数量越多,各关键词的权重之和越大,进而句子的权重也就越大。
举例来说,对于一个句子E,具有关键词A1、A2、A3,各关键词在该句子E中的出现次数为3次、2次、1次,从而可以得到该句子E的权重为A1×3+A2×2+A3×1。
步骤1032、确定各关键词所属的句子,在句子所归属的文档中的第二出现位置信息。
在本实施例中,具体的,确定出各文档中的各关键词的句子,在各自归属的文档中的第二出现位置信息。第二出现位置信息包括了段首、段中、段尾;即句子出现在文档的段首、句子出现在文档的段中、句子出现在文档的段尾。或者,第二出现位置信息包括了文档开始、文档中部、文档结尾;即句子出现在文档的开始、句子出现在文档的中部、句子出现在文档的结尾。
举例来说,对于一篇文档中某一个句子E,可以确定句子E是出现在文档中的段首。
步骤1033、根据各关键词所属的句子的第二出现位置信息,确定与第二出现位置信息对应的第二调整值。
在本实施例中,具体的,对于各关键词所属的句子的第二出现位置信息,设置与第二出现位置信息对应的第二调整值。
举例来说,第二出现位置信息为段首,第二调整值为1.5;第二出现位置信息为段中,第二调整值为1.2;第二出现位置信息为段尾,第二调整值为0.8;第二出现位置信息为文档开始,第二调整值为累加3;第二出现位置信息为文档中部,第二调整值为累加2;第二出现位置信息为文档结尾,第二调整值为累加0。
步骤1034、根据各文档中的各句子的第二调整值,调整各文档中的各句子的权重。
在本实施例中,具体的,根据步骤1033中设置的各句子的第二调整值,调整各文档中各句子的权重,从而得到各文档中各句子调整后的权重,句子调整后的权重为步骤1031中确定的句子的权重与第二调整值的综合值。
举例来说,某一个句子E,句子E的权重为F,第二出现位置信息为段首,第二调整值为1.5,句子E调整后的权重为F*1.5;第二出现位置信息为段中,第二调整值为1.2,句子E调整后的权重为F*1.2;第二出现位置信息为段尾,第二调整值为0.8,句子E调整后的权重为F*0.8;第二出现位置信息为文档开始,第二调整值为累加3,句子E调整后的权重为F+3;第二出现位置信息为文档中部,第二调整值为累加2,句子E调整后的权重为F+2;第二出现位置信息为文档结尾,第二调整值为累加0,句子E调整后的权重依然为F。
步骤1035、对各文档中各句子调整后的权重,进行归一化处理,得到各文档中的各句子归一化处理后的权重。
在本实施例中,具体的,然后对于所有文档的各句子调整后的权重进行归一化处理,从而将所有句子调整后的权重设定在一个范围值内。进而得到各文档中的各句子归一化处理后的权重。
举例来说,将句子调整后的权重的值,归一化在0~1以内,或者归一化在0~100以内。
本实施例通过将各文档中的名词、动词等作为关键词,进行关键词的词频的统计,从而保证去除掉那些意义较小的词性的词,进而提升计算方法的速度以及准确性;通过各文档中的各关键词的词频、各关键词的出现位置、各关键词的idf值,得到各文档中的各关键词的权重,对关键词进行了综合考量;并通过各文档中各关键词在所属句子中的出现次数,各关键词的权重,以及各句子的出现位置,确定各文档中的各句子的权重,也对各句子进行了综合考量。从而基于各关键词的词频、出现位置、idf值,综合得到各关键词的权重,基于各关键词在各句子中的出现次数、各关键词的权重、各句子的出现位置,综合得到各句子的权重,进而基于文档中的各词语的权重、以及文档中的各句子的权重,综合考量各文档是否相似,得到各文档向量空间;根据各文档的向量空间,计算两两文档之间的夹角余弦值;当两篇文档的夹角余弦值大于等于预设夹角余弦值时,则确定两篇文档之间是相似的,当夹角余弦值越大,两篇文档的相似度越高;进而可以较为准确的判断各文档是否相似,准确的判定出文档的相似度。
进一步的,在上述实施例的基础上,步骤105的具体实施方式,包括:
将具有相同哈希值的句子确定为相同的句子,将相同的句子的权重累加;
将各文档中各句子累加后的权重,映射至各文档中各句子的哈希值的向量空间中,得到各文档的向量空间。
在本实施方式中,具体的,各文档中的每个句子都具有一个权重,同时具有一个哈希值。句子的哈希值相同,则确定这些句子为相同的句子;然后将相同的句子的权重累加。同时,句子的哈希值还代表了句子在哈希值的向量空间中的位置。
将各文档中的各句子累加后的权重,根据各句子的哈希值,映射到各文档的哈希值的向量空间中去,从而可以构成具有了具体值的各文档的向量空间;各文档的向量空间的维度相同。
举例来说,文档中有5个句子,计算出各句子的哈希值,5个句子的哈希值分别为h1、h2、h3、h4、h5,并得到该文档的哈希值的向量空间[0,0,0,0,0],5个句子分别对应了该向量空间中的5个维度的位置;5个句子的权重为0.5、0.3、0.2、0.08、0.02;第一个句子的哈希值h1与第二句子的哈希值h2相同,则第一个句子与第二句子为相同句子,将第二句子的权重累加到第一句子的权重上,然后将5个句子的权重映射到该向量空间中,可以得到该文档的向量空间[0.8,0,0.2,0.08,0.02]。
本实施方式通过根据各句子的哈希值,确定具有相同哈希值的句子确定为相同的句子,然后将相同的句子的权重累加;从而可以准确的得到各文档中句子的权重,准确的得到各文档的向量空间。
图3为本发明实施例三提供的相似文档的判定装置的结构示意图,如图3所示,本实施例提供的装置,包括:
获取模块31,用于对各文档进行分词处理,分别获取各文档中的各个关键词;
第一权重确定模块32,用于统计各文档中的各关键词在所归属的文档中的词频,根据各文档中各关键词的词频,确定各文档中的各关键词的权重;
第二权重确定模块33,用于根据各文档中的各关键词的权重,确定各文档中的各句子的权重;
哈希值确定模块34,用于确定各文档中的各句子的哈希值;
向量确定模块35,用于根据各文档中的各句子的权重和各句子的哈希值,确定各文档的向量空间;
计算模块36,用于根据各文档的向量空间,确定各文档与所有文档中的其他文档之间的夹角余弦值;
判定模块37,用于根据各文档与所有文档中的其他文档之间的夹角余弦值,确定各文档之间的相似度。
本实施例的相似文档的判定装置可执行本发明实施例一提供的相似文档的判定方法,其实现原理相类似,此处不再赘述。
本实施例通过获取各文档中的各个关键词,通过统计各文档中各关键词的词频,可以确定各文档中的各关键词的权重;然后根据各文档中的各关键词的权重,确定出各文档中的各句子的权重;根据各文档中的各句子的权重,以及计算出的各文档的各句子的哈希值,去确定各文档的向量空间;对于所有文档中的两两文档进行向量空间的夹角余弦值的计算,进而确定出各文档与所有文档中的其他文档之间的夹角余弦值;当两两文档之间的夹角余弦值越大时,两篇文档的相似度越大,进而确定出各文档之间的相似度。从而基于文档中的各词语的权重、以及文档中的各句子的权重,综合考量各文档是否相似;根据各文档的向量空间,计算两两文档之间的夹角余弦值;当两篇文档的夹角余弦值大于等于预设夹角余弦值时,则确定两篇文档之间是相似的,当夹角余弦值越大,两篇文档的相似度越高;进而可以较为准确的判断各文档是否相似,准确的判定出文档的相似度。
图4为本发明实施例四提供的相似文档的判定装置的结构示意图,在实施例三的基础上,如图4所示,本实施例提供的装置中,获取模块31,具体用于:
对各文档进行分词处理,并对分词处理后得到的词进行词性标注,以获取各文档中的各个关键词,其中,关键词为文档中的名词和动词。
第一权重确定模块32,包括:
统计子模块321,用于统计各文档中的各关键词在所归属的文档中的词频;
第一位置确定子模块322,用于确定各关键词在所归属的文档中的第一出现位置信息;
第一调整值确定子模块323,用于根据各文档中各关键词的第一出现位置信息,确定与第一出现位置信息对应的第一调整值;
第一调整子模块324,用于根据各文档中的各关键词的第一调整值,调整各文档中各关键词的词频;
第一权重确定子模块325,用于根据各文档中各关键词调整后的词频,以及预设的各关键词idf值,确定各文档中的各关键词的权重;
第一归一化子模块326,用于对各文档中的各关键词的权重进行归一化处理,得到各文档中各关键词归一化处理后的权重。
第二权重确定模块33,包括:
第二权重确定子模块331,用于根据各文档中各关键词在所属句子中的出现次数,以及各关键词的权重,确定各文档中各句子的权重;
第二位置确定子模块332,用于确定各关键词所属的句子,在句子所归属的文档中的第二出现位置信息;
第二调整值确定子模块333,用于根据各关键词所属的句子的第二出现位置信息,确定与第二出现位置信息对应的第二调整值;
第二调整子模块334,用于根据各文档中的各句子的第二调整值,调整各文档中的各句子的权重;
第二归一化子模块335,用于对各文档中各句子调整后的权重,进行归一化处理,得到各文档中的各句子归一化处理后的权重。
向量确定模块35,具体用于:
将具有相同哈希值的句子确定为相同的句子,将相同的句子的权重累加;
将各文档中各句子累加后的权重,映射至各文档中各句子的哈希值的向量空间中,得到各文档的向量空间。
本实施例的相似文档的判定装置可执行本发明实施例二以及上述实施方式中提供的相似文档的判定方法,其实现原理相类似,此处不再赘述。
本实施例通过将各文档中的名词、动词等作为关键词,进行关键词的词频的统计,从而保证去除掉那些意义较小的词性的词,进而提升计算方法的速度以及准确性;通过各文档中的各关键词的词频、各关键词的出现位置、各关键词的idf值,得到各文档中的各关键词的权重,对关键词进行了综合考量;并通过各文档中各关键词在所属句子中的出现次数,各关键词的权重,以及各句子的出现位置,确定各文档中的各句子的权重,也对各句子进行了综合考量。从而基于各关键词的词频、出现位置、idf值,综合得到各关键词的权重,基于各关键词在各句子中的出现次数、各关键词的权重、各句子的出现位置,综合得到各句子的权重,进而基于文档中的各词语的权重、以及文档中的各句子的权重,综合考量各文档是否相似;通过根据各句子的哈希值,确定具有相同哈希值的句子确定为相同的句子,然后将相同的句子的权重累加,从而可以准确的得到各文档中句子的权重,准确的得到各文档的向量空间;根据各文档的向量空间,计算两两文档之间的夹角余弦值;当两篇文档的夹角余弦值大于等于预设夹角余弦值时,则确定两篇文档之间是相似的,当夹角余弦值越大,两篇文档的相似度越高;进而可以较为准确的判断各文档是否相似,准确的判定出文档的相似度。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。