一种文本相似度计算方法、装置、电子设备及存储介质与流程

文档序号:16755096发布日期:2019-01-29 17:16阅读:137来源:国知局
一种文本相似度计算方法、装置、电子设备及存储介质与流程

本发明实施例涉及数据处理技术领域,尤其涉及一种文本相似度计算方法、装置、电子设备及存储介质。



背景技术:

目前,基于ios平台或者基于android平台的直播间应用程序发展迅速,深受用户喜爱。弹幕是直播平台一种非常流行的用于信息交流以及信息共享的表达方式,通过弹幕可以实现观众与主播之间的互动,有助于营造良好的直播氛围。

在机器人会话领域中,其中一个重要环节是找出与输入语句语义相似度最高的回复。同样,在直播间经常需要根据水友弹幕,计算与其相似度较高的回复,由机器人针对水友弹幕进行自动回复。目前,在直播间中通常采用tf-idf(termfrequency-inversedocumentfrequency,词频逆文本频率)算法计算两条弹幕之间的相似度,但是,tf-idf算法的主要思想是基于词或者短语在文档集中出现的频率分布决定每篇文档的关键词,然后根据关键词在文档集中出现的次数构建词频向量,通过计算文档的词频向量之间的相似度确定文档之间的相似度,可见,tf-idf算法仅考虑了文档中词的词频,或者说仅考虑了文档中词的重要程度。

因此,为了提高文本相似度计算精度,需要对现有相似度计算算法继续进行改进。



技术实现要素:

本发明实施例提供一种文本相似度计算方法、装置、电子设备及存储介质,通过所述方法可提高文本相似度的计算精度。

为实现上述目的,本发明实施例采用如下技术方案:

第一方面,本发明实施例提供了一种文本相似度计算方法,所述方法包括:

根据两个待匹配文本句中相同词的个数、每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的句型相似度;

根据每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的语义相似度;

根据所述句型相似度和所述语义相似度确定所述两个待匹配文本句的综合相似度。

进一步的,所述根据两个待匹配文本句中相同词的个数、每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的句型相似度,包括:

按照如下公式计算所述两个待匹配文本句的句型相似度:

其中,wordsim(a,b)表示待匹配文本句a与待匹配文本句b的句型相似度,la表示待匹配文本句a中词的总数,lb表示待匹配文本句b中词的总数,wk表示待匹配文本句a与待匹配文本句b中相同词出现的次数,若所述相同词在待匹配文本句a中出现的次数与在待匹配文本句b中出现的次数不同,则取较小值,k表示待匹配文本句a与待匹配文本句b中相同词的个数,xi表示待匹配文本句a中的第i个词出现的次数,hi表示待匹配文本句a中的第i个词的词性权重,yj表示待匹配文本句b中的第j个词出现的次数,hj表示待匹配文本句b中的第j个词的词性权重。

进一步的,所述根据每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的语义相似度,包括:

按照如下公式计算所述两个待匹配文本句的语义相似度:

其中,la表示待匹配文本句a中词的总数,lb表示待匹配文本句b中词的总数,xi表示待匹配文本句a中的第i个词出现的次数,hi表示待匹配文本句a中的第i个词的词性权重,yj表示待匹配文本句b中的第j个词出现的次数,hj表示待匹配文本句b中的第j个词的词性权重。

进一步的,所述根据所述句型相似度和所述语义相似度确定所述两个待匹配文本句的综合相似度,包括:

按照如下公式计算所述两个待匹配文本句的综合相似度:

其中,sensim(a,b)表示待匹配文本句a与待匹配文本句b的综合相似度,wordsim(a,b)表示待匹配文本句a与待匹配文本句b的句型相似度,semanticsim(a,b)表示待匹配文本句a与待匹配文本句b的语义相似度,为句型相似度对应的权重,为语义相似度对应的权重。

进一步的,所述根据两个待匹配文本句中相同词的个数、每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的句型相似度;或者根据每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的语义相似度之前,所述方法还包括:

对所述两个待匹配文本句进行分词以及词性标注处理。

进一步的,所述对所述两个待匹配文本句进行分词以及词性标注处理,包括:

利用python中的jieba分词工具对所述两个待匹配文本句进行分词以及词性标注处理。

第二方面,本发明实施例提供了一种文本相似度计算装置,所述装置包括:

句型相似度计算模块,用于根据两个待匹配文本句中相同词的个数、每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的句型相似度;

语义相似度计算模块,用于根据每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的语义相似度;

综合相似度计算模块,用于根据所述句型相似度和所述语义相似度确定所述两个待匹配文本句的综合相似度。

第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的文本相似度计算方法。

第四方面,本发明实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时实现如上述第一方面所述的文本相似度计算方法。

本发明实施例提供的一种文本相似度计算方法,通过根据两个待匹配文本句中相同词的个数、每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的句型相似度;根据每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的语义相似度;根据所述句型相似度和所述语义相似度确定所述两个待匹配文本句的综合相似度的技术手段,提高了文本相似度的计算精度,进而提高了相似文本的匹配准确度。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。

图1为本发明实施例一提供的一种文本相似度计算方法流程示意图;

图2为本发明实施例二提供的一种文本相似度计算装置结构示意图;

图3为本发明实施例三提供的一种电子设备的结构示意图。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

图1为本发明实施例一提供的一种文本相似度计算方法流程示意图。本实施例公开的文本相似度计算方法适用于机器人会话领域,从语料库中匹配出与输入语句语义相似度最高的答复语句,以针对输入语句自动进行回复,该场景下,所述输入语句即为待匹配文本句a,语料库中的任意语句为待匹配文本句b。本实施例公开的文本相似度计算方法还适用于在直播间中匹配出与水友弹幕相似度最高的语句,以使机器人自动对水友弹幕进行回复。所述文本相似度计算方法可以由文本相似度计算装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在终端中,例如服务器等。具体参见图1所示,该方法包括如下步骤:

110、根据两个待匹配文本句中相同词的个数、每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的句型相似度。

其中,所述两个待匹配文本句中相同词的个数指:

例如所述两个待匹配文本句分别为:文本句a=我想去北京读大学;文本句b=北京的大学真好玩;通过对文本句a和文本句b进行分词以及词性标注处理后,得到:

a=我/n想去/adv北京/n读/v大学/n

b=北京/n的/adv大学/n真/adj好玩/adj

则文本句a与文本句b中相同的词为:北京和大学,文本句a与文本句b中相同词的个数为2。文本句a中的每个词在文本句a中出现的次数分别为:词“我”出现的次数为1,词“想去”出现的次数为1,词“北京”出现的次数为1,词“读”出现的次数为1,词“大学”出现的次数为1;文本句b中的每个词在文本句b中出现的次数分别为:词“北京”出现的次数为1,词“的”出现的次数为1,词“大学”出现的次数为1,词“真”出现的次数为1,词“好玩”出现的次数为1。

所述词性具体包括:名词、动词、疑问词、形容词以及副词等。两个文本句中对应词的词性一定程度上反应了两个文本句的相似性,因此,在本实施例中考虑了词性对文本句的影响,对于不同词性的词设置不同的权重,以突出本文句的含义。所述词性权重可结合具体的业务场景进行设置,通常,句子中的名词和动词能表达句子的大部分语义,即名词和动词在句子中表示的含义相对较重,因此,可将名词和动词对应的词性权重设置的相对较高,而将其他词性的权重设置的相对较低。优选的,当具体的业务场景为:待匹配文本句是在基于直播间平台发送的弹幕文本,则名词和动词的词性权重可设置为0.35,形容词、副词以及定语等的词性权重可设置为0.15。

若两个待匹配文本句中包含的相同词的个数越多,相同词在两个待匹配文本句中出现的次数越多,则该两个文本句越相似。本实施例充分利用了文本句的这一特性,同时结合待匹配文本句中每个词的词性,突出每个待匹配文本句的句子含义,构建了根据两个待匹配文本句中相同词的个数、每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的句型相似度的公式。

具体的,根据两个待匹配文本句中相同词的个数、每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的句型相似度的公式为:

其中,wordsim(a,b)表示待匹配文本句a与待匹配文本句b的句型相似度,la表示待匹配文本句a中词的总数,lb表示待匹配文本句b中词的总数,wk表示待匹配文本句a与待匹配文本句b中相同词出现的次数,若所述相同词在待匹配文本句a中出现的次数与在待匹配文本句b中出现的次数不同,则取较小值,k表示待匹配文本句a与待匹配文本句b中相同词的个数,xi表示待匹配文本句a中的第i个词出现的次数,hi表示待匹配文本句a中的第i个词的词性权重,yj表示待匹配文本句b中的第j个词出现的次数,hj表示待匹配文本句b中的第j个词的词性权重。

继续以上述举例为例说明上述公式(1)中每个量的含义。

假设所述两个待匹配文本句分别为:文本句a=我想去北京读大学;文本句b=北京的大学真好玩;通过对文本句a和文本句b进行分词以及词性标注处理后,得到:

a=我/n想去/adv北京/n读/v大学/n

b=北京/n的/adv大学/n真/adj好玩/adj

则待匹配文本句a中词的总数la=5,待匹配文本句b中词的总数lb=5,待匹配文本句a与待匹配文本句b中的相同词为“北京”和“大学”,即文本句a与文本句b中相同词的个数为2,即k=2,相同词“北京”在文本句a中出现的次数为1,在文本句b中出现的次数也为1,因此,文本句a与文本句b中相同词“北京”出现的次数为1;相同词“大学”在文本句a出现的次数为1,在文本句b中出现的次数也为1,因此,文本句a与文本句b中相同词“大学”出现的次数为1,即wk={1,1};文本句a中的每个词在文本句a中出现的次数分别为:词“我”出现的次数为1,词“想去”出现的次数为1,词“北京”出现的次数为1,词“读”出现的次数为1,词“大学”出现的次数为1,因此,xi={1,1,1,1,1};文本句a中的第1个词“我”的词性权重为0.35,第2个词“想去”的词性权重为0.15,第3个词“北京”的词性权重为0.35,第4个词“读”的词性权重为0.35,第5个词“大学”的词性权重为0.15,因此,hi={0.35,0.15,0.35,0.35,0.15};按照同样的统计规则,yj={1,1,1,1,1},hj={0.35,0.15,0.15,0.15,0.35}。

将上述数据代入公式(2)即可得到文本句a与文本句b的句型相似度:

120、根据每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的语义相似度。

具体的,按照如下公式根据每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的语义相似度:

其中,la表示待匹配文本句a中词的总数,lb表示待匹配文本句b中词的总数,xi表示待匹配文本句a中的第i个词出现的次数,hi表示待匹配文本句a中的第i个词的词性权重,yj表示待匹配文本句b中的第j个词出现的次数,hj表示待匹配文本句b中的第j个词的词性权重。

继续利用上述举例中的数据,将其代入公式(2)中,得到文本句a与文本句b的语义相似度:

需要说明的是,步骤110与步骤120之间并不限定先后顺序,可优先执行步骤120,也可以优先执行步骤110,本实施以优先执行步骤110为例进行了说明,但是不是对步骤110与步骤120的执行顺序的限定。

进一步的,所述根据两个待匹配文本句中相同词的个数、每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的句型相似度;或者根据每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的语义相似度之前,所述方法还包括:

对所述两个待匹配文本句进行分词以及词性标注处理,具体的,可利用python中的jieba分词工具对所述两个文本进行分词以及词性标注处理,本实施例不再进行详细说明。

130、根据所述句型相似度和所述语义相似度确定所述两个待匹配文本句的综合相似度。

示例性的,所述根据所述句型相似度和所述语义相似度确定所述两个待匹配文本句的综合相似度,包括:

按照如下公式计算所述两个待匹配文本句的综合相似度:

其中,sensim(a,b)表示待匹配文本句a与待匹配文本句b的综合相似度,wordsim(a,b)表示待匹配文本句a与待匹配文本句b的句型相似度,semanticsim(a,b)表示待匹配文本句a与待匹配文本句b的语义相似度,为句型相似度对应的权重,为语义相似度对应的权重,通常认为两个待匹配文本的语义相似度的重要程度更高,因此语义相似度对应的权重应设置的较高一些,句型相似度对应的权重应设置的较低一些,具体的权重取值可根据业务经验进行设置,本实施例在由机器人对针对直播间发送的水友弹幕自动进行回复的业务场景中,语义相似度对应的权重设置为0.75,句型相似度对应的权重设置为0.25,该数值是在本业务场景中最恰当的值,在其他业务场景中可根据多次计算试验进行调整。

继续利用上述举例中的数据,将其代入公式(3)中,得到文本句a与文本句b的综合相似度:

以上举例是为了说明公式的计算过程,所以相关量的取值比较随意,其不代表文本相似度计算的真实数据。

本实施例提供的一种文本相似度计算方法,结合了语法语义的处理,同时考虑了词性对句子的影响,通过设置不同的词性权重,突出了句子的含义,最后综合考虑文本句的句型相似度以及语义相似度的重要程度,通过设置对应的权重,可计算得到一个比较合理的相似度评分,可计算出与输入文本最合适的候选答案集合,由机器人自动对输入文本进行回复,有效提高了候选答案与输入文本的相关度,提高了文本相似度的计算精度。

实施例二

图2为本发明实施例二提供的一种文本相似度计算装置结构示意图。参见图2所示,所述装置包括:句型相似度计算模块210、语义相似度计算模块220和综合相似度计算模块230;

其中,句型相似度计算模块210用于根据两个待匹配文本句中相同词的个数、每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的句型相似度;

语义相似度计算模块220用于根据每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的语义相似度;

综合相似度计算模块230用于根据所述句型相似度和所述语义相似度确定所述两个待匹配文本句的综合相似度。

进一步的,句型相似度计算模块210具体用于按照如下公式计算所述两个待匹配文本句的句型相似度:

其中,wordsim(a,b)表示待匹配文本句a与待匹配文本句b的句型相似度,la表示待匹配文本句a中词的总数,lb表示待匹配文本句b中词的总数,wk表示待匹配文本句a与待匹配文本句b中相同词出现的次数,若所述相同词在待匹配文本句a中出现的次数与在待匹配文本句b中出现的次数不同,则取较小值,k表示待匹配文本句a与待匹配文本句b中相同词的个数,xi表示待匹配文本句a中的第i个词出现的次数,hi表示待匹配文本句a中的第i个词的词性权重,yj表示待匹配文本句b中的第j个词出现的次数,hj表示待匹配文本句b中的第j个词的词性权重。

进一步的,语义相似度计算模块220具体用于按照如下公式计算所述两个待匹配文本句的语义相似度:

其中,la表示待匹配文本句a中词的总数,lb表示待匹配文本句b中词的总数,xi表示待匹配文本句a中的第i个词出现的次数,hi表示待匹配文本句a中的第i个词的词性权重,yj表示待匹配文本句b中的第j个词出现的次数,hj表示待匹配文本句b中的第j个词的词性权重。

进一步的,综合相似度计算模块230具体用于按照如下公式计算所述两个待匹配文本句的综合相似度:

其中,sensim(a,b)表示待匹配文本句a与待匹配文本句b的综合相似度,wordsim(a,b)表示待匹配文本句a与待匹配文本句b的句型相似度,semanticsim(a,b)表示待匹配文本句a与待匹配文本句b的语义相似度,为句型相似度对应的权重,为语义相似度对应的权重。

进一步的,所述装置还包括:处理模块,用于在所述根据两个待匹配文本句中相同词的个数、每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的句型相似度;或者根据每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的语义相似度之前,对所述两个待匹配文本句进行分词以及词性标注处理。

进一步的,所述处理模块具体用于:利用python中的jieba分词工具对所述两个待匹配文本句进行分词以及词性标注处理。

本实施例提供的一种文本相似度计算装置,结合了语法语义的处理,同时考虑了词性对句子的影响,通过设置不同的词性权重,突出了句子的含义,最后综合考虑文本句的句型相似度以及语义相似度的重要程度,通过设置对应的权重,可计算得到一个比较合理的相似度评分,可计算出与输入文本最合适的候选答案集合,由机器人自动对输入文本进行回复,有效提高了候选答案与输入文本的相关度,提高了文本相似度的计算精度。

实施例三

图3为本发明实施例三提供的一种电子设备的结构示意图。如图3所示,该电子设备包括:处理器670、存储器671及存储在存储器671上并可在处理器670上运行的计算机程序;其中,处理器670的数量可以是一个或多个,图3中以一个处理器670为例;处理器670执行所述计算机程序时实现如上述实施例一中所述的文本相似度计算方法。如图3所示,所述电子设备还可以包括输入装置672和输出装置673。处理器670、存储器671、输入装置672和输出装置673可以通过总线或其他方式连接,图3中以通过总线连接为例。

存储器671作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中文本相似度计算装置/模块(例如,文本相似度计算装置中的句型相似度计算模块210、语义相似度计算模块220和综合相似度计算模块230等)。处理器670通过运行存储在存储器671中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的文本相似度计算方法。

存储器671可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器671可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器671可进一步包括相对于处理器670远程设置的存储器,这些远程存储器可以通过网络连接至电子设备/存储介质。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置672可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置673可包括显示屏等显示设备。

实施例四

本发明实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种文本相似度计算方法,该方法包括:

根据两个待匹配文本句中相同词的个数、每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的句型相似度;

根据每个词在每个待匹配文本句中出现的次数以及所述每个词的词性权重计算所述两个待匹配文本句的语义相似度;

根据所述句型相似度和所述语义相似度确定所述两个待匹配文本句的综合相似度。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的文本相似度计算相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,存储介质,或者网络设备等)执行本发明各个实施例所述的。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1