本发明涉及信息处理技术领域,尤其涉及一种文本相似度的计算方法以及相关设备。
背景技术:
在自然语言处理(naturallanguageprocessing,nlp)中,经常会涉及到如何度量两个文本的相似度问题。在诸如对话系统(dialogsystem)和信息检索(informationretrieval)等的问题中,如何度量句子或者短语之间的相似度尤为重要。文本相似度计算在信息检索、数据挖掘、机器翻译、文档复制检测等领域有着广泛的应用。
度量文本相似度一般是基于关键词匹配的传统方法,或者利用余弦显示度的方法,但是利用关键词匹配的传统方法,或者利用余弦相似度的方法度量精度不高。
技术实现要素:
本发明实施例提供了一种文本相似度的计算方法及相关设备,结合文本中分词的权重以及文本的分词向量综合计算文本对应的向量,并通过文本对应的向量计算文本之间的相似度,相较于传统的文本相似度算法而言,获得的精确度更高。
本发明实施例的第一方面提供了一种文本相似度的计算方法,包括:
获取至少两个文本,所述至少两个文本为待计算相似度的文本;
对所述至少两个文本分别进行分词得到所述至少两个文本对应的至少两个分词集合;
确定所述至少两个分词集合中每个分词的归一化后的权重;
确定所述至少两个分词集合中每个分词的词向量;
基于所述至少两个分词集合中每个分词的归一化后的权重以及所述至少两个分词集合中每个分词的词向量确定所述至少两个文本对应的至少两个文本向量;
根据所述至少两个文本向量计算所述至少两个文本中任意两个文本的相似度。
可选地,所述确定所述至少两个分词集合中每个分词的归一化后的权重包括:
通过如下公式确定所述至少两个分词集合中每个分词的归一化后的权重:
其中,wordheight(wordij)为所述至少两个文本中第i篇文本的第j个分词的归一化前权重,且
可选地,所述基于所述至少两个分词集合中每个分词的归一化后的权重以及所述至少两个分词集合中每个分词的词向量确定所述至少两个文本对应的至少两个文本向量包括:
通过如下公式确定所述至少两个文本对应的至少两个文本向量:
其中,
可选地,所述根据所述至少两个文本向量计算所述至少两个文本中任意两个文本的相似度包括:
根据所述至少两个文本向量通过如下公式计算所述至少两个文本中任意两个文本的相似度:
其中,da以及db为所述至少两个文本中的任意一个文本,
可选地,所述对所述至少两个文本分别进行分词得到所述至少两个文本对应的至少两个分词集合包括:
通过n-gram的方式对所述至少两个文本分别进行分词,以得到所述至少两个文本对应的至少两个分词集合。
本发明实施例第二方面提供了一种文本相似度的计算装置,包括:
获取单元,用于获取至少两个文本,所述至少两个文本为待计算相似度的文本;
分词单元,用于对所述至少两个文本分别进行分词得到所述至少两个文本对应的至少两个分词集合;
第一确定单元,用于确定所述至少两个分词集合中每个分词的归一化后的权重;
向量化处理单元,用于确定所述至少两个分词集合中每个分词的词向量;
第二确定单元,用于基于所述至少两个分词集合中每个分词的归一化后的权重以及所述至少两个分词集合中每个分词的词向量确定所述至少两个文本对应的至少两个文本向量;
计算单元,用于根据所述至少两个文本向量计算所述至少两个文本中任意两个文本的相似度。
可选地,所述第一确定单元具体用于:
通过如下公式确定所述至少两个分词集合中每个分词的归一化后的权重:
其中,wordheight(wordij)为所述至少两个文本中第i篇文本的第j个分词的归一化前权重,且
可选地,所述第二确定单元具体用于:
通过如下公式确定所述至少两个文本对应的至少两个文本向量:
其中,
可选地,所述计算单元具体用于:
根据所述至少两个文本向量通过如下公式计算所述至少两个文本中任意两个文本的相似度:
其中,da以及db为所述至少两个文本中的任意一个文本,
可选地,所述分词单元具体用于:
通过n-gram的方式对所述至少两个文本分别进行分词,以得到所述至少两个文本对应的至少两个分词集合。
本发明第三方面提供了一种电子设备,包括存储器、处理器,其特征在于,所述处理器用于执行存储器中存储的计算机管理类程序时实现如上述任意一项所述的文本相似度的计算方法的步骤。
本发明第四方面提供了一种计算机可读存储介质,其上存储有计算机管理类程序,其特征在于:所述计算机管理类程序被处理器执行时实现如上述任意一项所述的文本相似度的计算方法的步骤。
综上所述,可以看出,本发明提供的实施例中,在计算文本相似度的时候,结合文本中分词的权重以及文本的分词向量综合计算文本对应的向量,并通过文本对应的向量计算文本之间的相似度,相较于传统的文本相似度算法而言,获得的精确度更高。
附图说明
图1为本发明实施例提供的一种文本相似度的计算方法的流程示意图;
图2为本发明实施例提供的一种文本相似度的计算装置的实施例示意图;
图3为本发明实施例提供的一种文本相似度的计算装置的硬件结构示意图;
图4为本发明实施例提供的一种电子设备的实施例示意图;
图5为本发明实施例提供的一种计算机可读存储介质的实施例示意图。
具体实施方式
本发明实施例提供了一种文本相似度的计算方法及相关设备,结合文本中分词的权重以及文本的分词向量综合计算文本对应的向量,并通过文本对应的向量计算文本之间的相似度,相较于传统的文本相似度算法而言,获得的精确度更高。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
下面从文本相似度的计算装置的角度对文本相似度的计算方法进行说明,该文本相似度的计算装置可以为服务器,也可以为服务器中的服务单元。
请参阅图1,图1为本发明实施例提供的文本相似度的计算方法的一个实施例示意图,包括:
101、获取至少两个文本。
本实施例中,文本相似度的计算装置可以获取至少两个文本,其中,至少两个文本为待计算相似度的文本。此处具体不限定如何获取至少两个文本的方式,例如可以由用户输入,或者直接从数据库中获取,该至少两个文本例如可以是直播平台中的弹幕,也可以是其他的文本,例如用户的评论,具体不限定。
102、对至少两个文本分别进行分词得到至少两个文本对应的至少两个分词集合。
本实施例中,文本相似度的计算装置可以对至少两个文本分别进行分词以得到至少两个文本对应的至少两个分词集合。具体的可以通过n-gram(n-gram是大词汇连续语音识别中常用的一种语言模型)的方式对至少两个文本分别进行分词,以得到至少两个文本对应的至少两个分词集合,也就是说至少两个文本中的每个文本均对应一个分词集合。
需要说明的是,上述以通过n-gram的方式对至少两个文本分别进行分词,当然也还可以通过其他的方式进行分词,例如利用jieba进行分词,只要能对至少两个文本进行分词即可,具体不做限定。另外,在得到至少两个分词集合之后,还可以去除至少两个分词集合中的停用词,该停用词包括但不限于语气助词、副词、介词以及连接词等,如常见的“的”、“在”之类的停用词。
103、确定至少两个分词集合中每个分词的归一化后的权重。
本实施例中,文本相似度的计算装置可以通过如下公式确定至少两个分词集合中每个分词的归一化后的权重:
其中,wordheight(wordij)为至少两个文本中第i篇文本的第j个分词的归一前的权重,且
104、确定至少两个分词集合中每个分词的词向量。
本实施例中,文本相似度的计算装置可以通过word2vec对至少两个分词集合中的每个分词进行计算,得到至少两个分词集合中每个分词的词向量。当然也还可以通过其他的方式确定至少两个分词集合中每个分词的词向量,具体不做限定。
需要说明的是,通过步骤103可以确定至少两个分词集合中每个分词的归一化后的权重,通过步骤104可以确定至少两个分词集合中每个分词的词向量,然而这两个步骤之间并没有先后执行顺序的限制,可以先执行步骤103,也可以先执行步骤104,具体不做限定。
105、基于至少两个分词集合中每个分词的归一化后的权重以及至少两个分词集合中每个分词的词向量确定至少两个文本对应的至少两个文本向量。
本实施例中,文本相似度的计算装置在得到至少两个分词集合中每个分词的词向量以及每个分词的权重之后,可以通过如下公式确定至少两个文本对应的至少两个文本向量:
其中,
106、根据至少两个文本向量计算至少两个文本中任意两个文本的相似度。
本实施例中,可以根据至少两个文本向量通过如下公司计算至少两个文本中任意两个文本的相似度:
其中,da以及db为至少两个文本中的任意一个文本,
综上所述,可以看出,本发明提供的实施例中,在计算文本相似度的时候,结合文本中分词的权重以及文本的分词向量综合计算文本对应的向量,并通过文本对应的向量计算文本之间的相似度,相较于传统的文本相似度算法而言,获得的精确度更高。
下面结合具体例子,以两个输入弹幕a和输入弹幕b为例进行说明:
1、输入弹幕a=小姐姐歌声好听,很喜欢,弹幕b=人美声甜的小姐姐,歌声不错。
2、对输入弹幕a以及输入弹幕b分别进行分词得到各自的分词集合:
a=小姐姐人美声甜歌声好听喜欢;
b=人美声甜小姐姐歌声不错;
输入弹幕a的分词集合={小姐姐,人美声甜,歌声,好听,喜欢};
输入弹幕b的分词集合={人美声甜,小姐姐,歌声,不错};
得到两个分词集合的并集={小姐姐,人美声甜,歌声,好听,喜欢,不错}。
3、之后通过图1的步骤103中的公式计算两个分词集合中每个分词的归一化后的权重:
首先通过公式
之后根据如下公式对每个分词的权重进行归一化处理,
word(小姐姐)=2/2*2/6*0.35=0.116;
word(人美声甜)=2/2*2/6*0.25=0.083;
word(歌声)=2/2*2/6*0.15=0.05;
word(好听)=1/2*1/6*0.5=0.041;
word(喜欢)=1/2*1/6*0.65=0.054;
word(不错)=1/2*1/6*0.2=0.016。
4、通过word2vec对每个分词进行向量化处理,得到每个分词对应的词向量。
5、通经过每个分词的词向量以及每个分词归一化后的权重确定每个文本的文本向量。
6、通过
由此可以得到输入弹幕a和输入弹幕b的相似度为0.86。在计算文本相似度的时候,结合文本中分词的权重以及文本的分词向量综合计算文本对应的向量,并通过文本对应的向量计算文本之间的相似度,相较于传统的文本相似度算法而言,获得的精确度更高。
上面对本发明实施例中文本相似度的计算方法进行了描述,下面对本发明实施例中的文本相似度的计算装置进行描述。
请参阅图2,本发明实施例中文本相似度的计算装置的一个实施例,该文本相似度的计算装置包括:
获取单元201,用于获取至少两个文本,所述至少两个文本为待计算相似度的文本;
分词单元202,用于对所述至少两个文本分别进行分词得到所述至少两个文本对应的至少两个分词集合;
第一确定单元203,用于确定所述至少两个分词集合中每个分词的归一化后的权重;
向量化处理单元204,用于确定所述至少两个分词集合中每个分词的词向量;
第二确定单元205,用于基于所述至少两个分词集合中每个分词的归一化后的权重以及所述至少两个分词集合中每个分词的词向量确定所述至少两个文本对应的至少两个文本向量;
计算单元206,用于根据所述至少两个文本向量计算所述至少两个文本中任意两个文本的相似度。
可选地,所述第一确定单元203具体用于:
通过如下公式确定所述至少两个分词集合中每个分词的归一化后的权重:
其中,wordheight(wordij)为所述至少两个文本中第i篇文本的第j个分词的归一化前权重,且
可选地,所述第二确定单元205具体用于:
通过如下公式确定所述至少两个文本对应的至少两个文本向量:
其中,
可选地,所述计算单元206具体用于:
根据所述至少两个文本向量通过如下公式计算所述至少两个文本中任意两个文本的相似度:
其中,da以及db为所述至少两个文本中的任意一个文本,
可选地,所述分词单元202具体用于:
通过n-gram的方式对所述至少两个文本分别进行分词,以得到所述至少两个文本对应的至少两个分词集合。
上面图2从模块化功能实体的角度对本发明实施例中的文本相似度的计算装置进行了描述,下面从硬件处理的角度对本发明实施例中的文本相似度的计算装置进行详细描述,请参阅图3,本发明实施例中的文本相似度的计算装置300一个实施例,包括:
输入装置301、输出装置302、处理器303和存储器304(其中处理器303的数量可以一个或多个,图3中以一个处理器303为例)。在本发明的一些实施例中,输入装置301、输出装置502、处理器303和存储器304可通过总线或其它方式连接,其中,图3中以通过总线连接为例。
其中,通过调用存储器304存储的操作指令,处理器303,用于执行如下步骤:
获取至少两个文本,所述至少两个文本为待计算相似度的文本;
对所述至少两个文本分别进行分词得到所述至少两个文本对应的至少两个分词集合;
确定所述至少两个分词集合中每个分词的归一化后的权重;
确定所述至少两个分词集合中每个分词的词向量;
基于所述至少两个分词集合中每个分词的归一化后的权重以及所述至少两个分词集合中每个分词的词向量确定所述至少两个文本对应的至少两个文本向量;
根据所述至少两个文本向量计算所述至少两个文本中任意两个文本的相似度。
通过调用存储器304存储的操作指令,处理器303,还用于执行图1对应的实施例中的任一方式。
请参阅图4,图4为本发明实施例提供的电子设备的实施例示意图。
如图4所示,本发明实施例提供了一种电子设备,包括存储器410、处理器420及存储在存储器420上并可在处理器420上运行的计算机程序411,处理器420执行计算机程序411时实现以下步骤:
获取至少两个文本,所述至少两个文本为待计算相似度的文本;
对所述至少两个文本分别进行分词得到所述至少两个文本对应的至少两个分词集合;
确定所述至少两个分词集合中每个分词的归一化后的权重;
确定所述至少两个分词集合中每个分词的词向量;
基于所述至少两个分词集合中每个分词的归一化后的权重以及所述至少两个分词集合中每个分词的词向量确定所述至少两个文本对应的至少两个文本向量;
根据所述至少两个文本向量计算所述至少两个文本中任意两个文本的相似度。
在具体实施过程中,处理器420执行计算机程序411时,可以实现图1对应的实施例中任一实施方式。
由于本实施例所介绍的电子设备为实施本发明实施例中一种文本相似度的计算装置所采用的设备,故而基于本发明实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本发明实施例中的方法不再详细介绍,只要本领域所属技术人员实施本发明实施例中的方法所采用的设备,都属于本发明所欲保护的范围。
请参阅图5,图5为本发明实施例提供的一种计算机可读存储介质的实施例示意图。
如图5所示,本实施例提供了一种计算机可读存储介质500,其上存储有计算机程序511,该计算机程序511被处理器执行时实现如下步骤:
获取至少两个文本,所述至少两个文本为待计算相似度的文本;
对所述至少两个文本分别进行分词得到所述至少两个文本对应的至少两个分词集合;
确定所述至少两个分词集合中每个分词的归一化后的权重;
确定所述至少两个分词集合中每个分词的词向量;
基于所述至少两个分词集合中每个分词的归一化后的权重以及所述至少两个分词集合中每个分词的词向量确定所述至少两个文本对应的至少两个文本向量;
根据所述至少两个文本向量计算所述至少两个文本中任意两个文本的相似度。
在具体实施过程中,该计算机程序511被处理器执行时可以实现图1对应的实施例中任一实施方式。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,当计算机软件指令在处理设备上运行时,使得处理设备执行如图1对应实施例中的风电场数字化平台设计的方法中的流程。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修该,或者对其中部分技术特征进行等同替换;而这些修该或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。