一种文本相似度计算方法、装置、电子设备及存储介质
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种文本相似度计算方法、装置、电子设备及存储介质。
背景技术
目前,基于iOS平台或者基于Android平台的直播间应用程序发展迅速,深受用户喜爱。弹幕是直播平台一种非常流行的用于信息交流以及信息共享的表达方式,通过弹幕可以实现观众与主播之间的互动,有助于营造良好的直播氛围。
在机器人会话领域中,其中一个重要环节是找出与输入语句语义相似度最高的回复。同样,在直播间经常需要根据水友弹幕,计算与其相似度较高的回复,由机器人针对水友弹幕进行自动回复。目前,在直播间中通常采用TF-IDF(Term Frequency-InverseDocument Frequency,词频逆文本频率)算法计算两条弹幕之间的相似度,但是,TF-IDF算法的主要思想是基于词或者短语在文档集中出现的频率分布决定每篇文档的关键词,然后根据关键词在文档集中出现的次数构建词频向量,通过计算文档的词频向量之间的相似度确定文档之间的相似度,可见,TF-IDF算法仅考虑了文档中词的词频,或者说仅考虑了文档中词的重要程度。
因此,为了提高文本相似度计算精度,需要对现有相似度计算算法继续进行改进。
发明内容
本发明实施例提供一种文本相似度计算方法、装置、电子设备及存储介质,通过所述方法可提高文本相似度的计算精度。
为实现上述目的,本发明实施例采用如下技术方案:
第一方面,本发明实施例提供了一种文本相似度计算方法,所述方法包括:
基于word2vec空间向量模型计算两个待匹配文本句之间的语义相似度;
基于LDA(Latent Dirichlet Allocation,文档主题生成模型)计算所述两个待匹配文本句之间的主题相似度;
根据所述语义相似度和所述主题相似度确定所述两个待匹配文本句之间的综合相似度。
进一步的,所述基于word2vec空间向量模型计算两个待匹配文本句之间的语义相似度,包括:
将所述两个待匹配文本句在所述word2vec空间向量模型中做映射,分别得到所述两个待匹配文本句对应的文本向量;
基于所述文本向量计算所述两个待匹配文本句之间的语义相似度。
进一步的,所述基于所述文本向量计算所述两个待匹配文本句之间的语义相似度,包括:
按照如下公式计算所述两个待匹配文本句之间语义相似度:
其中,vecSim(A,B)表示待匹配文本句A与待匹配文本句B之间的语义相似度,
表示待匹配文本句A在word2vec空间向量模型中对应的文本向量,
表示待匹配文本句B在word2vec空间向量模型中对应的文本向量,n表示文本向量
和
的维度。
进一步的,在所述基于word2vec空间向量模型计算两个待匹配文本句之间的语义相似度之前,所述方法还包括:
收集目标领域的文本句,以形成针对所述目标领域的语料库;
以所述语料库中的文本句为训练数据,生成所述word2vec空间向量模型。
进一步的,所述基于文档主题生成模型LDA计算所述两个待匹配文本句之间的主题相似度,包括:
按照如下公式计算所述两个待匹配文本句之间的主题相似度:
其中,Sim
LDA(A,B)表示待匹配文本句A与待匹配文本句B之间的主题相似度,D
i表示LDA模型的主题集合中的第i个主题,
表示待匹配文本句A中的词V
i在主题为D
i下的分布概率,
表示待匹配文本句B中的词V
i在主题为D
i下的分布概率,L
A表示待匹配文本句A中词的总数,L
B表示待匹配文本句B中词的总数,m表示待匹配文本句A中的词与待匹配文本句B中的词组成的集合中词的总数。
进一步的,所述根据所述语义相似度和所述主题相似度确定所述两个待匹配文本句之间的综合相似度,包括:
按照如下公式计算所述两个待匹配文本句之间的综合相似度:
其中,SenSim(A,B)表示待匹配文本句A与待匹配文本句B之间的综合相似度,vecSim(A,B)表示待匹配文本句A与待匹配文本句B之间的语义相似度,Sim
LDA(A,B)表示待匹配文本句A与待匹配文本句B之间的主题相似度,
表示待匹配文本句A与待匹配文本句B之间的语义相似度对应的权重,
表示待匹配文本句A与待匹配文本句B之间的主题相似度对应的权重。
进一步的,在基于word2vec空间向量模型计算两个待匹配文本句之间的语义相似度之前,或者基于文档主题生成模型LDA计算所述两个待匹配文本句之间的主题相似度之前,所述方法还包括:
对所述两个待匹配文本句进行分词处理。
第二方面,本发明实施例提供了一种文本相似度计算装置,所述装置包括:
语义相似度计算模块,用于基于word2vec空间向量模型计算两个待匹配文本句之间的语义相似度;
主题相似度计算模块,用于基于文档主题生成模型LDA计算所述两个待匹配文本句之间的主题相似度;
综合相似度计算模块,用于根据所述语义相似度和所述主题相似度确定所述两个待匹配文本句之间的综合相似度。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的文本相似度计算方法。
第四方面,本发明实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时实现如上述第一方面所述的文本相似度计算方法。
本发明实施例提供的一种文本相似度计算方法,通过综合考虑待匹配文本句在向量空间的相似度以及待匹配文本句在LDA各主题下的相似度,提高了文本相似度的匹配精度,在机器人会话中,通过本发明实施例提供的文本相似度计算方法可提高答案的完整度以及答案与问题之间的相关度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。
图1为本发明实施例一提供的一种文本相似度计算方法流程示意图;
图2为本发明实施例二提供的一种文本相似度计算装置结构示意图;
图3为本发明实施例三提供的一种电子设备的结构示意图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一提供的一种文本相似度计算方法流程示意图。本实施例公开的文本相似度计算方法适用于机器人会话领域,从答案库中匹配出与输入语句语义相似度最高的答复语句,以针对输入语句进行自动回复,该场景下,所述输入语句即为待匹配文本句A,答案库中的任意语句为待匹配文本句B。本实施例公开的文本相似度计算方法还适用于在直播间中匹配出与水友弹幕相似度最高的语句,以使机器人自动对水友弹幕进行回复。所述文本相似度计算方法可以由文本相似度计算装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在终端中,例如服务器等。具体参见图1所示,该方法包括如下步骤:
110、基于word2vec空间向量模型计算两个待匹配文本句之间的语义相似度。
示例性的,所述基于word2vec空间向量模型计算两个待匹配文本句之间的语义相似度,包括:
将所述两个待匹配文本句在所述word2vec空间向量模型中做映射,分别得到所述两个待匹配文本句对应的文本向量;
基于所述文本向量计算所述两个待匹配文本句之间的语义相似度。
其中,所述word2vec空间向量模型具体指词与向量之间的对应关系,即利用向量的形式来表示每个词,所述向量中又包含了词与词之间的上下文关联属性,从而实现通过比较待匹配文本句对应的文本向量之间的相似度即可获知待匹配文本句之间的相似度。
所述word2vec空间向量模型通过对应领域的语料库预先训练完成,具体的,生成所述word2vec空间向量模型包括:
收集目标领域的文本句,以形成针对所述目标领域的语料库;
以所述语料库中的文本句为训练数据,生成所述word2vec空间向量模型。
所述目标领域例如可以是针对某个直播间发送的弹幕领域,每个直播间直播的视频内容不尽相同,因此针对每个直播间发送的弹幕内容不尽相同,但是针对同一个直播间发送的弹幕文本之间通常具有很多相似的内容,因此,针对同一个直播间发送的所有弹幕则可以作为该领域内的文本句,并可组成该领域内的语料库,然后将语料库中的所有文本句作为训练数据,对神经网络模型进行训练,获得word2vec空间向量模型。则该word2vec空间向量模型可用于对该领域内的文本句进行相似性匹配。
具体的,基于所述文本向量计算所述两个待匹配文本句之间的语义相似度,包括:
按照如下公式计算所述两个待匹配文本句之间的语义相似度:
其中,vecSim(A,B)表示待匹配文本句A与待匹配文本句B之间的语义相似度,
表示待匹配文本句A在word2vec空间向量模型中对应的文本向量,
表示待匹配文本句B在word2vec空间向量模型中对应的文本向量,n表示文本向量
和
的维度。
通过将待匹配文本句输入所述word2vec空间向量模型可得到待匹配文本句在空间向量中对应的文本向量。通过上述公式(1)可得到待匹配文本句在语义上的相似度。
120、基于文档主题生成模型LDA计算所述两个待匹配文本句之间的主题相似度。
示例性的,所述基于文档主题生成模型LDA计算所述两个待匹配文本句之间的主题相似度,包括:
按照如下公式计算所述两个待匹配文本句之间的主题相似度:
其中,Sim
LDA(A,B)表示待匹配文本句A与待匹配文本句B之间的主题相似度,D
i表示LDA模型的主题集合中的第i个主题,
表示待匹配文本句A中的词V
i在主题为D
i下的分布概率,
表示待匹配文本句B中的词V
i在主题为D
i下的分布概率,L
A表示待匹配文本句A中词的总数,L
B表示待匹配文本句B中词的总数,m表示待匹配文本句A中的词与待匹配文本句B中的词组成的集合中词的总数。
所述LDA模型是一种文档主题生成模型,也称为三层贝叶斯概率模块,包含词、主题和文档三层结构,是一种非监督机器学习技术,其原理为:认为每篇文档的每个词是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词”的过程得到,文档到主题服从多项式分布,主题到词服从多项式分布。所述LDA模型可以通过由针对目标领域收集的文本句组成的语料库进行训练得到。通过将待匹配文本句输入训练好的LDA模型即可得到待匹配文本句中的每个词在模型中每个主题下的分布概率。基于LDA的主题-词汇的概率分布,将待匹配文本句A和待匹配文本句B映射到各个主题下,计算基于每个主题下待匹配文本句A和待匹配文本句B的相似度,最终取相似度最高的主题概率分布。上述公式(2)可以反映待匹配文本句A和待匹配文本句B在不同场景(主题)下的相似度,结果相对比较客观。
130、根据所述语义相似度和所述主题相似度确定所述两个待匹配文本句之间的综合相似度。
示例性的,所述根据所述语义相似度和所述主题相似度确定所述两个待匹配文本句之间的综合相似度,包括:
按照如下公式计算所述两个待匹配文本句之间的综合相似度:
其中,SenSim(A,B)表示待匹配文本句A与待匹配文本句B之间的综合相似度,vecSim(A,B)表示待匹配文本句A与待匹配文本句B之间的语义相似度,Sim
LDA(A,B)表示待匹配文本句A与待匹配文本句B之间的主题相似度,
表示待匹配文本句A与待匹配文本句B之间的语义相似度对应的权重,
表示待匹配文本句A与待匹配文本句B之间的主题相似度对应的权重。
通常认为,两个待匹配文本句的主题相似度更能反映两者之间的关系,因此,主题相似度对应的权重
通常设置的较高一些,而语义相似度对应的权重
通常设置的较低一些,优选的,语义相似度对应的权重
可设置为0.4,主题相似度对应的权重可设置为0.6。在机器人会话领域,通过综合待匹配文本句A和待匹配文本句B在向量空间以及不同场景(主题)下的相似度,可从答案库中选取出相对准确、完整的答案回复集。
需要说明的是,步骤110与步骤120之间并不限定先后顺序,可优先执行步骤120,也可以优先执行步骤110,本实施以优先执行步骤110为例进行了说明,但是不是对步骤110与步骤120的执行顺序的限定。
进一步的,在基于word2vec空间向量模型计算两个待匹配文本句之间的语义相似度之前,或者基于文档主题生成模型LDA计算所述两个待匹配文本句之间的主题相似度之前,所述方法还包括:
对所述两个待匹配文本句进行分词处理,具体的,可利用python中的jieba分词工具对所述两个待匹配文本句进行分词处理,本实施例不再进行详细说明。
进一步的,对本实施例提供的一种文本相似度计算方法进行总结,所述方法主要包括如下步骤:
步骤1、预先准备一份对应领域的语料库,利用该语料库对word2vec以及LDA进行训练,分别得到word2vec空间向量模型和LDA模型。
步骤2、向word2vec空间向量模型输入待匹配文本句A和待匹配文本句B,利用word2vec模型,分别得到待匹配文本句A对应的文本向量
以及待匹配文本句B对应的文本向量
向LDA模型输入待匹配文本句A和待匹配文本句B,分别得到待匹配文本句A以及待匹配文本句B中的每个词在不同主题D
i下的分布概率
和
如果在主题D
i下不存在词V
i,则词V
i在主题D
i下的分布概率取值为1,如果在主题D
i下存在词V
i,则取对应概率。
步骤3、根据上述公式(1)计算待匹配文本句A与待匹配文本句B在空间向量中的语义相似度。
步骤4、根据上述公式(2)计算待匹配文本句A与待匹配文本句B在LDA下的主题相似度。
步骤5、根据上述公式(3)综合待匹配文本句A与待匹配文本句B的语义相似度以及主题相似度,得到待匹配文本句A与待匹配文本句B的最终匹配度。
举例说明上述计算过程:假设word2vec和LDA模型已经通过对应领域的语料库训练完成,待匹配文本句A=我想去北京读大学,待匹配文本句B=北京的大学真好玩,利用jieba分词工具对待匹配文本句A以及待匹配文本句B进行分词处理后得到:
待匹配文本句A=我想去北京读大学
待匹配文本句B=北京的大学真好玩
则待匹配文本句A中词的总数LA=5,待匹配文本句B中词的总数LB=5,待匹配文本句A中的词与待匹配文本句B中的词组成的集合为{我想去北京读大学的真好玩},集合中词的总数m=8。
将“待匹配文本句A=我想去北京读大学”、“待匹配文本句B=北京的大学真好玩”输入训练好的word2vec和LDA模型,得到待匹配文本句A在word2vec空间向量模型中对应的文本向量
待匹配文本句B在word2vec空间向量模型中对应的文本向量
待匹配文本句A中的词V
i在主题为D
i下的分布概率
待匹配文本句B中的词V
i在主题为D
i下的分布概率
将上述数据代入公式(1),计算待匹配文本句A与待匹配文本句B的语义相似度,假设计算结果为:
根据上述公式(2),假设在主题D
1下,待匹配文本句A与待匹配文本句B的相似度为:
在主题D
2下,待匹配文本句A与待匹配文本句B的相似度为:
因此,上述公式(2)的结果为Max{0.35,0.85}=0.85;
设置
根据上述公式(3)计算待匹配文本句A与待匹配文本句B的综合相似度为:
本实施例提供的一种文本相似度计算方法,通过综合考虑待匹配文本句在向量空间的相似度以及待匹配文本句在LDA各主题下的相似度,提高了文本相似度的匹配精度,在机器人会话中,通过本发明实施例提供的文本相似度计算方法可实现从答案库中选取出相对准确、完整的答案回复集,提高答案的完整度以及答案与问题之间的相关度。
实施例二
图2为本发明实施例二提供的一种文本相似度计算装置结构示意图。参见图2所示,所述装置包括:语义相似度计算模块210、主题相似度计算模块220和综合相似度计算模块230;
其中,语义相似度计算模块210用于基于word2vec空间向量模型计算两个待匹配文本句之间的语义相似度;
主题相似度计算模块220用于基于文档主题生成模型LDA计算所述两个待匹配文本句之间的主题相似度;
综合相似度计算模块230用于根据所述语义相似度和所述主题相似度确定所述两个待匹配文本句之间的综合相似度。
进一步的,语义相似度计算模块210包括:映射单元和计算单元,其中,所述映射单元用于将所述两个待匹配文本句在所述word2vec空间向量模型中做映射,分别得到所述两个待匹配文本句对应的文本向量;所述计算单元用于基于所述文本向量计算所述两个待匹配文本句之间的语义相似度。
进一步的,所述计算单元具体用于:按照如下公式计算所述两个待匹配文本句之间语义相似度:
其中,vecSim(A,B)表示待匹配文本句A与待匹配文本句B之间的语义相似度,
表示待匹配文本句A在word2vec空间向量模型中对应的文本向量,
表示待匹配文本句B在word2vec空间向量模型中对应的文本向量,n表示文本向量
和
的维度。
进一步的,所述装置还包括:收集模块,用于收集目标领域的文本句,以形成针对所述目标领域的语料库;生成模块,用于以所述语料库中的文本句为训练数据,生成所述word2vec空间向量模型。
进一步的,主题相似度计算模块220具体用于:
按照如下公式计算所述两个待匹配文本句之间的主题相似度:
其中,Sim
LDA(A,B)表示待匹配文本句A与待匹配文本句B之间的主题相似度,D
i表示LDA模型的主题集合中的第i个主题,
表示待匹配文本句A中的词V
i在主题为D
i下的分布概率,
表示待匹配文本句B中的词V
i在主题为D
i下的分布概率,L
A表示待匹配文本句A中词的总数,L
B表示待匹配文本句B中词的总数,m表示待匹配文本句A中的词与待匹配文本句B中的词组成的集合中词的总数。
进一步的,综合相似度计算模块230具体用于:按照如下公式计算所述两个待匹配文本句之间的综合相似度:
其中,SenSim(A,B)表示待匹配文本句A与待匹配文本句B之间的综合相似度,vecSim(A,B)表示待匹配文本句A与待匹配文本句B之间的语义相似度,Sim
LDA(A,B)表示待匹配文本句A与待匹配文本句B之间的主题相似度,
表示待匹配文本句A与待匹配文本句B之间的语义相似度对应的权重,
表示待匹配文本句A与待匹配文本句B之间的主题相似度对应的权重。
进一步的,所述装置还包括:处理模块,用于在基于word2vec空间向量模型计算两个待匹配文本句之间的语义相似度之前,或者基于文档主题生成模型LDA计算所述两个待匹配文本句之间的主题相似度之前,对所述两个待匹配文本句进行分词处理。
本实施例提供的一种文本相似度计算装置,通过综合考虑待匹配文本句在向量空间的相似度以及待匹配文本句在LDA各主题下的相似度,提高了文本相似度的匹配精度,在机器人会话中,通过本发明实施例提供的文本相似度计算方法可实现从答案库中选取出相对准确、完整的答案回复集,提高答案的完整度以及答案与问题之间的相关度。
实施例三
图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可包括显示屏等显示设备。
实施例四
本发明实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种文本相似度计算方法,该方法包括:
基于word2vec空间向量模型计算两个待匹配文本句之间的语义相似度;
基于文档主题生成模型LDA计算所述两个待匹配文本句之间的主题相似度;
根据所述语义相似度和所述主题相似度确定所述两个待匹配文本句之间的综合相似度。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的文本相似度计算相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,存储介质,或者网络设备等)执行本发明各个实施例所述的。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。