一种文本相似度计算方法、装置及服务器
技术领域
本申请涉及自然语言处理技术领域,尤其涉及一种文本相似度计算方法、装置及服务器。
背景技术
相似度计算用于衡量对象之间的相似程度。在自然语言处理技术领域,相似度计算一个基础性运算,被广泛应用于数据挖掘、数据分类、信息检索和信息采集等技术场景中。文本相似度计算是自然语言处理技术领域中常涉及到的相似度计算类型,通过计算不同文本之间的相似度能够实现对大规模的文本语料进行聚类分析、文本匹配或去重处理等。
现有技术中的文本相似度计算方法主要包括余弦相似度、编辑距离和基于神经网络语言模型的相似度计算方法。其中,余弦相似度方法对文本进行分词,并根据分词结果构造文本的特征向量,将特征向量之间的余弦相似度作为文本相似度;编辑距离是指两个文本之间,由一个转成另一个所需的最少编辑操作次数,许可的编辑操作包括将文本中的一个字符替换成另一个字符,插入一个字符或删除一个字符,最少编辑操作次数越少,则文本相似度越高;而神经网络语言模型的贡献是解决了传统的通过特征词向量计算文本相似度时出现的维度灾难问题。
与一些外文语言不同,在中文语言中,语法和语义的表达较多地依赖语序而实现。因此,在计算中文文本相似度的时候,除了要考虑文本内容以外,还要考虑语序对语义的影响。但是,现有技术的文本相似度方法无论是构造特征向量还是计算编辑距离,都仅仅是计算文本在字符内容上的相似度,没有或很少地考虑到语序对语法和语义的影响,这就导致了现有技术中的文本相似度计算方法对依赖语序的中文语言的处理能力较弱,计算中文文本相似度的准确度还不够理想。
发明内容
为了解决现有技术中存在的问题,本申请实施例提供了一种文本相似度计算方法、装置及服务器。
第一方面,本申请实施例提供了一种文本相似度计算方法,包括:
获取待比较的两个文本中词义相同的共有成分;
获取所述共有成分在每个文本中的前接成分和后接成分;其中,所述前接成分为文本中,与所述共有成分相邻的前一个词;所述后接成分为文本中,与所述共有成分相邻的后一个词;
获取每个共有成分在每个文本中出现的次数T1和T2,以及,获取每个共有成分在两个文本中相同前接成分的数量C1相同后接成分的数量C2;
根据所述T1和T2,以及所述C1和C2,计算每个共有成分对文本相似度的贡献度;
根据对共有成分预设的权重和所述贡献度,计算两个文本的文本相似度。
第二方面,本申请实施例提供了一种文本相似度计算装置,包括:
第一获取单元,用于获取待比较的两个文本中词义相同的共有成分;
第二获取单元,用于获取所述共有成分在每个文本中的前接成分和后接成分;其中,所述前接成分为文本中,与所述共有成分相邻的前一个词;所述后接成分为文本中,与所述共有成分相邻的后一个词;
第三获取单元,用于获取每个共有成分在每个文本中出现的次数T1和T2,以及,获取每个共有成分在两个文本中相同前接成分的数量C1相同后接成分的数量C2;
第一计算单元,用于根据所述T1和T2,以及所述C1和C2,计算每个共有成分对文本相似度的贡献度;
第二计算单元,用于根据对共有成分预设的权重和所述贡献度,计算两个文本的文本相似度。
第三方面,本申请实施例提供了一种服务器,包括:
存储器和处理器;
所述存储器用于存储分类的已知同义词,以及,用于存储所述处理器可执行的程序;
所述处理器被配置为执行以下程序步骤:
获取待比较的两个文本中词义相同的共有成分;
获取所述共有成分在每个文本中的前接成分和后接成分;其中,所述前接成分为文本中,与所述共有成分相邻的前一个词;所述后接成分为文本中,与所述共有成分相邻的后一个词;
获取每个共有成分在每个文本中出现的次数T1和T2,以及,获取每个共有成分在两个文本中相同前接成分的数量C1相同后接成分的数量C2;
根据所述T1和T2,以及所述C1和C2,计算每个共有成分对文本相似度的贡献度;
根据对共有成分预设的权重和所述贡献度,计算两个文本的文本相似度。
由以上技术方案可知,本申请实施例提供了一种文本相似度计算方法、装置及服务器。在计算文本相似度时,考虑到文本内容对相似度的影响,获取两个文本词义相同的共有成分;考虑到语序对相似度的影响,获取了共有成分在每个文本中的前接成分,并根据每个共有成分在每个文本中出现的次数T1和T2,以及每个共有成分在两个文本中相同前接成分的数量C1和相同后接成分的数量C2,然后,综合文本内容对相似度的影响和语序对相似度的影响,根据T1和T2、以及C1和C2得到每个共有成分对文本相似度的贡献度;最后,根据对共有成分预设的权重和相似度,计算文本相似度。从而,解决了现有技术中由于无法处理文本语序,导致计算中文文本相似度的准确度不理想的问题。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种文本相似度计算方法的流程图;
图2为本申请实施例提供的一种文本相似度计算方法步骤S110的流程图;
图3为本申请实施例提供的一种文本相似度计算方法步骤S112的流程图;
图4为本申请实施例提供的另一种文本相似度计算方法步骤S110的流程图;
图5为本申请实施例提供的另一种文本相似度计算方法的流程图;
图6为本申请实施例提供的一种文本相似度计算装置的结构框图;
图7为本申请实施例提供的一种服务器的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
实施例一
为了解决现有技术中的文本相似度计算方法对依赖语序的中文语言的处理能力较弱,无法很好地处理语序问题,导致计算中文文本相似度的准确率不够理想的问题,本申请实施例提供了一种文本相似度计算方法。
图1为本申请实施例提供的一种文本相似度计算方法的流程图。
如图1所示,所述方法包括以下步骤:
步骤S110,获取待比较的两个文本中词义相同的共有成分。
本申请中,共有成分是指两个文本中具有相同词义的词或词组。共有成分可以相同的词或词组,也可以是同义词;也就是说,只要分别存在于两个文本中的两个词或词组在文本中的词义相同,那么,这两个词或词组就是两个文本的共有成分,两个文本具体可以是两个句子。
例如,句子1为:它和我们一起,走进了移动互联网世界。
句子2为:去中心化技术,将为我们打开一个全新的互联网世界。
这两个句子中,都存在“我们”和“互联网世界”,因此“我们”和“互联网世界”均属于共有成分。
例如:句子1为:请输入查询密码以查询您的额度。
句子2为:您尾号为2333的信用卡的信用额度为10000元。
在这两个句子中,句子1中的“额度”和句子2中的“信用额度”表达的意义相同,因此“额度”和“信用额度”作为同义词,属于共同有成分。
此外,一些句子中,常会将一些组织机构的名称、专有名词等用英文缩写的方式表示,例如下表中的情况:
中文词汇 |
英文缩写 |
世界贸易组织 |
WTO |
美国国家航空航天局 |
NASA |
中国男子职业篮球联赛 |
CBA |
当中文的句子中出现英文缩写时,会影响到文本相似度的判断。例如,如果使用现有技术的余弦相似度的方法计算文本相似度,“世界贸易组织”构造的特征向量与“WTO”构造的特征向量是不一样的,从而导致计算出的文本相似度不准确。本申请中,将中文词汇和它们的英文缩写作为同义词,当它们出现在两个待比较的句子中时,会被当作共有成分处理,从而,解决了中文句子中出现英文缩写时,影响文本相似度判断的问题。
可见,本申请根据词和词组的词义提出了共有成分的概念,使文本相似度的计算思路从现有技术的基于字面内容(例如:对文本分词,将分词作为特征向量的维度,构造特征向量)的计算方式上升到基于本申请的基于词义的计算方式,从而,使本申请技术方案的文本相似度计算结果更能够真实地反映句子之间的相似程度。
图2为本申请实施例提供的一种文本相似度计算方法步骤S110的流程图。
如图2所示,在一种可选择的实施方式中,步骤S110可以包括以下步骤:
步骤S111,根据词义对已知同义词建设同义词分类表,以及,对每个分类下的同义词统一设置词权重;当所述同义词为共有成分时,所述词权重为共有成分的权重。
本申请中,同义词分类表实现了根据词义对同义词进行分类。示例地,将已知同义词进行了如下分类:
已知同义词 |
词权重 |
额度;信用额度;固定额度;贷记额度 |
3 |
期望;期待;愿望;意愿 |
1 |
世界贸易组织;WTO |
1 |
…… |
…… |
需要补充说明的是,本领域技术人员在本申请示出的同义词分类表分类体系和词权重设置方式的启示下,根据文本分类实际应用的业务领域(例如:教育领域、金融领域、科技领域等),收集不同领域特征的同义词。然后,根据每个分类的已知同义词在预设业务领域的辨识度,对每个分类下的同义词统一设置所述词权重,当分类词表中的同义词作为待比较文本中的共有成分时,该词权重就是共有成分的权重。
步骤S112,以已知同义词为最小分词单位,对待比较的文本进行分词。
现有技术在进行文本相似度计算时,会通过拆字或切分最小词的方式对文本进行分词,以便生成文本的字特征向量或词特征向量。现有技术的分词方式在应用到英文等以单词为最小组成要素的文本句子中,能够很好地将每个单词切分,从的得到每个单词的词特征向量。但是,对于中文文本来说,两个或两个以上字或词常用来表达一个词义,此时,如果使用现有技术的分词方法,会导致文本中表达某个词义的词或词组被切分成多个字或词,从而使文本中原有的词义在分词的过程中丢失,导致最终计算得到的文本相似度不准确。
本申请为了避免分词过程中的词义丢失,以已知同义词作为最小分词单位,对待处理文本进行分词。
示例地,某文本中含有“信用额度”,如果使用现有技术的分词方法进行分词,会得到“信/用/额/度/”或“信用/额度”,而使用本申请的步骤S112的分词方法会将“信用额度”整体分成一个分词,从而避免词义丢失。
图3为本申请实施例提供的一种文本相似度计算方法步骤S112的流程图。
如图3所示,在一种可选择的实施方式中,步骤S112包括以下步骤:
步骤S1121,将同义词分类表中的已知同义词加入到分词底表中。
在步骤S1121中,创建一个分词底表,并将同义词分类表中的已知同义词加入到分词底表中。
步骤S1122,以分词底表作为分词词典,对待比较的文本进行分词。
在步骤S1122中,以分词底表作为分词词典,对待比较的文本进行分词,当待比较的文本中包含分词词典里的已知同义词时,将已知同义词作为一个分词切分,使已知同义词作为最小的分词单位,从而避免待比较文本中的已知同义词被拆分导致的词义损失。对于文本中非已知同义词的内容,可使用现有技术中的常规分词方法进行分词。
需要补充说明的是,当分词底表中同时出现了“信用额度”和“额度”这样的具有包含关系的已知同义词时,如果待比较文本中存在内容“您当前的信用额度为”,那么,本申请将会倾向以词长更长的“信用额度”为最小分词单位将待处理文本分成“您/当前/的/信用额度/为”,而不会被分成“您/当前/的/信用/额度/为”,从而保证在分词过程中不损失词义。
步骤S113,根据同义词分类表,遍历分词结果,获取两个待比较的文本的共有成分。
本申请根据同义词分类表,遍历分词结果,如果两个待比较的文本中存在相同的词或词组或者存在一对词义相同的已知同义词,那么这个相同的词或词组或者这对已知同义词就是两个待比较文本的共有成分。
示例地,为了清楚地说明本申请实施例的技术方案,以英文字母表示文本内容,每个英文字母表示一个词或词组,那么,示出句子1和句子2分别为:
句子1:abcdefa
句子2:baadfabcea
则:句子1中包含的共有成分为:a a b c d
句子2中包含的共有成分为:a a a b b c c d
步骤S120,获取所述共有成分在每个文本中的前接成分和后接成分;其中,所述前接成分为文本中,与所述共有成分相邻的前一个词;所述后接成分为文本中,与所述共有成分相邻的后一个词。
本申请除了根据句子中的共有成分计算文本相似度之外,还考虑到中文语言中,语法和语义的表达较多地依赖语序而实现的特点,将语序也作为文本相似度计算的一个计算依据。
因此,本申请在步骤S120中,获取共有成分在每个文本中的前接成分和后接成分。
例如,句子1为:它和我们一起,走进了移动互联网世界。
句子2为:去中心化技术,将为我们打开一个全新的互联网世界。
其中,共有成分为“互联网世界”;“互联网世界”在句子1中的前接成分为“移动”,且为句子中的最后一个词,因此,“互联网世界”在句子1中的后接成分定义为“句后”(当共有成分为句子中的第一个词时,其前接成分为“句前”);同理,“互联网世界”在句子2中的前接成分为“全新的”,后接成分为“句后”。
在一个句子中,前接成分、共有成分和后接成分形成了句子中以共有成分为中心的局部语序,如果两个句子有多个共有成分,那么,本申请在步骤S120中通过获取共有成分的前接成分和后接成分就会得到多个局部语序。从而,在文本相似度计算中,就能够综合共有成分和局部语序对文本相似度带来的影响,更加准确地计算出待比较文本的文本相似度。
示例地,为了清楚地说明本申请实施例的技术方案,以英文字母表示文本内容,每个英文字母表示一个词或词组,那么,示出句子1和句子2分别为:
句子1:abcdefa
句子2:baadfabcea
则:句子1中包含的共有成分为:a a b c d
句子2中包含的共有成分为:a a b b c c d
获取共有成分在每个文本中的前接成分和后接成分的结果如下:
句子1:
共有成分 |
前接成分 |
后接成分 |
a |
句前 |
b |
a |
f |
句后 |
b |
a |
c |
c |
b |
d |
d |
c |
e |
句子2:
步骤S130,获取每个共有成分在每个文本中出现的次数T1和T2,以及,获取每个共有成分在两个文本中相同前接成分的数量C1相同后接成分的数量C2。
在步骤S130中,获取的T1和T2、C1和C2将作为计算文本相似度所使用的计算参数。其中,T1和T2为共有成分在每个文本中出现的次数,T1和T2的值影到共有成分对两个待比较文本的相似度所起到的贡献。当T1和T2的值接近时,共有成分对文本相似度的贡献较大。当T1和T2的数值相差较大时,说明两个待比较文本的内容差异较大,此时,共有成分对文本相似度的贡献较小,也就是说,即使两个待比较文本存在共有成分,由于两个待比较文本的内容差异较大,相似度也不会很高。
此外,C1和C2的值也会影响到共有成分对两个待比较文本的相似度所起到的贡献。C1和C2的值越高,说明两个待比较文本的相同语序就越多,共有成分对文本相似度起到的贡献就越大。
示例地,为了清楚地说明本申请实施例的技术方案,以英文字母表示文本内容,每个英文字母表示一个词或词组,那么,示出句子1和句子2分别为:
句子1:abcdefa
句子2:baadfabcea
则:句子1中包含的共有成分为:a a b c d
句子2中包含的共有成分为:a a a b b c c d
从句子1和句子2中获取的共有成分在每个文本中的前接成分和后接成分的结果如参见步骤S120的示例中的表格所示。
从句子1和句子2可以看出,在句子1中,共有成分a共出现两次,因此,共有成分a的T1值为2;在句子2中,共有成分a共出现两次,因此,共有成分a的T2值为2。按照上述方法获取的每个共有成分在句子1和句子2中出现的次数T1和T2如下:
共有成分 |
T1 |
T2 |
a |
2 |
3 |
b |
1 |
2 |
c |
1 |
2 |
d |
1 |
1 |
在句子1中,共有成分a的前接成分为“句前”和f,后接成分为b和“句后”;在句子2中,共有成分a的前接成分为c、f和e,后接成分为d、b和“句后”。可见,句子1和句子2中存在一个相同的前接成分f,因此,C1=1;句子1和句子2中存在相同的后接成分b和“句后”,共有两个,因此,C2=2。
在句子1中,共有成分b的前接成分为a,后接成分为c;在句子2中,共有成分b的前接成分为“句前”和a,后接成分为c。可见,句子1和句子2中存在一个相同的前接成分a,因此,C1=1;句子1和句子2中存在一个相同的后接成分c,因此,C2=1。
在句子1中,共有成分c的前接成分为b,后接成分为d;在句子2中,共有成分c的前接成分为b,后接成分为a和e。可见,句子1和句子2中存在一个相同的前接成分b,因此,C1=1;句子1和句子2中不存在相同的后接成分,因此,C2=0。
在句子1中,共有成分d的前接成分为c,后接成分为e;在句子2中,共有成分d的前接成分为a,后接成分为f。可见,句子1和句子2中不存在相同的前接成分,因此,C1=0;句子1和句子2中不存在相同的后接成分,因此,C2=0。
步骤S140,根据所述T1和T2,以及所述C1和C2,计算每个共有成分对文本相似度的贡献度。
根据在步骤S130中示出的T1和T2、C1和C2对共有成分对文本相似度贡献的影响,将T1和T2、C1和C2将作为计算文本相似度所使用的计算参数,计算出每个共有成分对每个文本相似度的贡献度。
本申请中的贡献度,结合了待处理文本中共有成分出现的次数和待处理文本的局部语序,能够从文本内容和语序上综合地反映出共有成分对文本相似度的贡献。从而,如果在计算文本相似度时,将本申请提供的贡献度作为文本相似度的计算参数,所得到的文本相似度计算结果会更加准确。
在一种可选择的实施方式中,计算每个共有成分对文本相似度的贡献度可使用以下公式:
其中,S为贡献度;Q1为前接成分和后接成分的贡献系数,Q2为所述共有成分的贡献系数,Q1+Q2=1;Tmin为T1和T2中的最小值。
前接成分、共有成分和后接成分,构成了文本中的局部语序。考虑到在中文文本中,语序会对文本的语义产生影响,本申请将语序对文本语义的影响作为一项计算参数,因此,定义了前接成分和后接成分对贡献度的贡献系数Q1。考虑到文本内容对语义的影响,定一个共有成分对贡献度的贡献系数Q2。
本申请中的贡献度S的计算公式由两部分组成,第一部分:表示了共有成分所在位置的局部语序产生的贡献度,第二部分:Q2×Tmin表示了共有成分在文本内容上产生的贡献度。因此,本申请中的贡献度是综合了语序和文本内容而产生的参数,能够同时体现语序和文本内容对文本相似度的贡献。
本申请中,对于Q1和Q2的取值,本领域技术人员可以根据实际应用本申请技术方案的需求来确定。例如:如果用户希望贡献度S能够平衡地提点语序和内容对文本相似度的贡献,那么,本领域技术人员可设置Q1=Q2=0.5;如果用户希望贡献度S能够较多地体现出语序对文本相似度的贡献,那么可设置Q1>Q2,甚至在极端情况下,如果希望贡献度S完全体现语序对文本相似度的贡献,可设置Q1=1,Q2=0;如果用户希望贡献度S能够较多地体现出文本内容对文本相似度的贡献,那么可设置Q1<Q2,甚至在极端情况下,如果希望贡献度S完全体现文本内容对文本相似度的贡献,可设置Q1=0,Q2=1。
示例地,在步骤S130的示例中得到了以下参数:
共有成分 |
T1 |
T2 |
C1 |
C2 |
a |
2 |
3 |
1 |
2 |
b |
1 |
2 |
1 |
1 |
c |
1 |
2 |
1 |
0 |
d |
1 |
1 |
0 |
0 |
取Q1=Q2=0.5,根据上述参数计算每个共有成分对文本相似度的贡献度:
共有成分a的贡献度Sa:
共有成分b的贡献度Sb:
共有成分c的贡献度Sc:
共有成分d的贡献度Sd:
步骤S150,根据对共有成分预设的权重和所述贡献度,计算两个文本的文本相似度。
本申请中,考虑到在一个特定的应用领域中,不同的词或词组对对文本语义的贡献程度不同,对共有成分设置了不同的权重。例如,对“信用卡”“信用额度”“额度”“信用贷款”等具有领域特征的词或词组设置高于1的权重;对其他不具有领域特征的词或词组设置权重为1,这样,就可以凸出具有领域特征的共有成分对文本相似度的作用,提高计算文本相似度的准确性。
本申请根据预设的共有成分的权重和贡献度,计算文本相似度。共有成分数量越多、权重越高、贡献度越高,所计算出的文本相似度的值就越高。
在一种可选择的实施方式中,计算文本相似度可以使用以下公式:
其中,SIM(A1,A2)为两个文本A1和A2的文本相似度;S1~Sn为两个文本A1和A2的第1个~第n个共有成分的贡献度;W1~Wn为两个文本A1和A2的第1个~第n个共有成分的权重;N1为文本A1中包含的分词的数量,N2为文本A2中包含的分词的数量。
在上述公式中,分子部分的S1×W1+S2×W2+…+Sn×Wn体现的是共有成分对文本相似度的正向作用,当共有成分的数量越多、贡献度越大、权重越大时,共有成分对文本相似度的正向作用就越强,分子就越大。分母部分的体现的是文本长度对文本相似度的反向作用,当分子部分的值一定时,N1和N2的值越大,说明共有成分在文本中的比例越小,文本相似度越低,N1和N2的差值越大,共有成分在文本中的比例越小,文本相似度越低。
示例地,在步骤S140的示例中获得的贡献度的基础上,计算示例的句子1和句子2的文本相似度SIM(1,2):
其中,共有成分a、b、c、d预设的权重分别为:Wa=1、Wb=2、Wc=2、Wd=1;
句子1的长度N1=7,句子2的长度N2=10。
则:
图4为本申请实施例提供的另一种文本相似度计算方法步骤S110的流程图。
如图4所示,在一种可选择的实施方式中,步骤S110在图2示出的步骤S111~S113的基础上,在步骤S113之前,还包括:
步骤S114,去除分词结果中的停用词和/或非中文字符。
在文本中,有时会包含一些对语义没有贡献的成分。例如:句尾的语气助词“了”“的”;文本中的标点符号等,本申请可将这些成分定义为停用词,在步骤S113之前,将停用词从分词结果中去除,从而缩短待比较文本的长度,提高遍历分词结果,提高获取共有成分的效率;此外,通过去除停用词也能够消除在后续计算文本相似度的过程中,停用词对相似度计算准确率的干扰,提高文本相似度计算的准确率。
在一些严格要求中文语境的文本相似度计算的应用场景中,还可以在步骤S113之前,根据实际需求去除文本中的非中文字符,同样可以缩短待比较文本的长度,提高遍历分词结果,提高获取共有成分的效率。以及,后续计算文本相似度的过程中,提高文本相似度计算的准确率。
图5为本申请实施例提供的另一种文本相似度计算方法的流程图。
如图5所示,在一种可选择的实施方式中,所述方法在图1示出的步骤S110-S150的基础上,在步骤S150之后还包括以下步骤:
步骤S160,分析所述相似度是否高于预设阈值。
当需要根据文本相似度的计算结果,进一步地从待比较文本中获取相似文本时,可设置一个用于区分相似文本和非相似文本的预设阈值。当两个文本的文本相似度高于预设阈值时,则认为两个文本为相似文本;反之,当两个文本的相似度低于预设阈值时,则认为两个文本为非相似文本。
步骤S170,如果高于预设阈值,将两个待处理的文本标记为相似文本。
在步骤S170中,如果计算得到文本相似度高于预设阈值,则将两个待处理的文本标记为相似文本,并可将以标记的相似文本进行分类,生成文本分类库。实现对文本的批量管理。
由以上技术方案可知,本申请实施例提供了一种文本相似度计算方法,在计算文本相似度时,考虑到文本内容对相似度的影响,获取两个文本词义相同的共有成分;考虑到语序对相似度的影响,获取共有成分在每个文本中的前接成分,并根据每个共有成分在每个文本中出现的次数T1和T2,以及每个共有成分在两个文本中相同前接成分的数量C1和相同后接成分的数量C2;然后,综合文本内容对相似度的影响和语序对相似度的影响,根据T1和T2、以及C1和C2得到每个共有成分对文本相似度的贡献度;最后,根据对共有成分预设的权重和相似度,计算文本相似度。从而,解决了现有技术中由于无法处理文本语序,导致计算中文文本相似度的准确度不理想的问题。
实施例二
本申请实施例提供了一种文本相似度计算装置。
图6为本申请实施例提供的一种文本相似度计算装置的结构框图。
如图6所示,所述装置包括:
第一获取单元210,用于获取待比较的两个文本中词义相同的共有成分;
第二获取单元220,用于获取所述共有成分在每个文本中的前接成分和后接成分;其中,所述前接成分为文本中,与所述共有成分相邻的前一个词;所述后接成分为文本中,与所述共有成分相邻的后一个词;
第三获取单元230,用于获取每个共有成分在每个文本中出现的次数T1和T2,以及,获取每个共有成分在两个文本中相同前接成分的数量C1相同后接成分的数量C2;
第一计算单元240,用于根据所述T1和T2,以及所述C1和C2,计算每个共有成分对文本相似度的贡献度;
第二计算单元250,用于根据对共有成分预设的权重和所述贡献度,计算两个文本的文本相似度。
由以上技术方案可知,本申请实施例提供了一种文本相似度计算装置,在计算文本相似度时,考虑到文本内容对相似度的影响,获取两个文本词义相同的共有成分;考虑到语序对相似度的影响,获取共有成分在每个文本中的前接成分,并根据每个共有成分在每个文本中出现的次数T1和T2,以及每个共有成分在两个文本中相同前接成分的数量C1和相同后接成分的数量C2;然后,综合文本内容对相似度的影响和语序对相似度的影响,根据T1和T2、以及C1和C2得到每个共有成分对文本相似度的贡献度;最后,根据对共有成分预设的权重和相似度,计算文本相似度。从而,解决了现有技术中由于无法处理文本语序,导致计算中文文本相似度的准确度不理想的问题。
实施例三
本申请实施例提供了一种服务器。
图7为本申请实施例提供的一种服务器的结构框图。
如图7所示,所述服务器包括:
存储器310和处理器320;
所述存储器310用于分类存储已知同义词,以及,用于存储所述处理器可执行的程序;
所述处理器320被配置为执行以下程序步骤:
获取待比较的两个文本中词义相同的共有成分;
获取所述共有成分在每个文本中的前接成分和后接成分;其中,所述前接成分为文本中,与所述共有成分相邻的前一个词;所述后接成分为文本中,与所述共有成分相邻的后一个词;
获取每个共有成分在每个文本中出现的次数T1和T2,以及,获取每个共有成分在两个文本中相同前接成分的数量C1相同后接成分的数量C2;
根据所述T1和T2,以及所述C1和C2,计算每个共有成分对文本相似度的贡献度;
根据对共有成分预设的权重和所述贡献度,计算两个文本的文本相似度。
由以上技术方案可知,本申请实施例提供了一种服务器,在计算文本相似度时,考虑到文本内容对相似度的影响,获取两个文本词义相同的共有成分;考虑到语序对相似度的影响,获取共有成分在每个文本中的前接成分,并根据每个共有成分在每个文本中出现的次数T1和T2,以及每个共有成分在两个文本中相同前接成分的数量C1和相同后接成分的数量C2;然后,综合文本内容对相似度的影响和语序对相似度的影响,根据T1和T2、以及C1和C2得到每个共有成分对文本相似度的贡献度;最后,根据对共有成分预设的权重和相似度,计算文本相似度。从而,解决了现有技术中由于无法处理文本语序,导致计算中文文本相似度的准确度不理想的问题。
本申请还可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、可穿戴设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。