掌桥专利:专业的专利平台
掌桥专利
首页

文本相似度计算方法、装置、设备及存储介质

文献发布时间:2023-06-19 10:54:12


文本相似度计算方法、装置、设备及存储介质

技术领域

本申请涉及计算机技术领域,具体而言,涉及一种文本相似度计算方法、装置、设备及存储介质。

背景技术

随着移动智能终端设备,社交网络的普及与发展,新闻摘要、微博博文、商品评论等短文本数据大量涌出(字符长度小于200的文本数据形式),如何在海量的短文本数据中挖掘出具有商业价值的信息成为现在众多中文自然语言处理研究学者的重点。中文使用人数多且词汇丰富,有灵活多样的词义表达,如果通过对新闻摘要的相似度比较进行聚类分析,提取热点话题或作为检索关键词,有助于用户快捷地了解到一些比较重要的新闻信息。

短文本具有字符数目较少,内容稀疏,语义信息丰富,表达形式多样的特点,因此,在机器翻译、情感分析、信息检索等人工智能领域,短文本发挥着巨大作用。现有的一些文本相似度计算方法存在文本特征表达局限,不够客观,且无法将深层次的词汇特征信息与整体语序结构建立有效关联。

发明内容

本申请实施例的目的在于提供一种文本相似度计算方法、装置、设备及存储介质,用以实现提高文本相似度计算的准确率。

本申请实施例第一方面提供了一种文本相似度计算方法,包括:获取第一文本和第二文本;分别对所述第一文本和所述第二文本进行分词,得到第一分词数组和第二分词数组;在词向量库中查找对应于所述第一分词数组的第一词向量序列,以及对应于所述第二分词数组的第二词向量序列;生成所述第一词向量序列和所述第二词向量序列的对齐距离矩阵;对所述对齐距离矩阵进行优化匹配计算,得到所述第一文本和所述第二文本的对齐距离;基于所述对齐距离,计算所述第一文本和所述第二文本的相似度。

于一实施例中,在所述获取第一文本和第二文本之前,还包括:获取预存语料数据;对所述预存语料数据进行文本分词处理;基于文本分词处理后的所述预存语料数据,进行词向量模型训练,构建词向量库。

于一实施例中,所述生成所述第一词向量序列和所述第二词向量序列的对齐距离矩阵,包括:获取所述第一词向量序列和所述第二词向量序列中的最大长度值;基于所述最大长度值,对所述第一词向量序列和所述第二词向量序列中较短的序列进行填充,得到长度相同的所述第一词向量序列和所述第二词向量序列;利用动态时间规整算法,计算所述对齐距离矩阵。

于一实施例中,所述对所述对齐距离矩阵进行优化匹配计算,得到所述第一文本和所述第二文本的对齐距离,包括:获取所述对齐距离矩阵每行每列的最小元素值;遍历所述对齐距离矩阵,将所述对齐距离矩阵中的每个元素减去所述元素所在行列的所述最小元素值,得到第一矩阵;基于所述第一矩阵中独立零元素的第一位置,生成第二矩阵,所述第二矩阵与所述对齐距离矩阵的行列数相同,所述第二矩阵中与所述第一位置相同的第二位置的元素为1,除所述第二位置以外的其他位置的元素为0;将所述对齐距离矩阵中对应于所述第二位置的元素相加,得到所述对齐距离。

于一实施例中,所述基于所述对齐距离,计算所述第一文本和所述第二文本的相似度,包括:获取所述第一矩阵中所述独立零元素的个数;根据所述独立零元素的个数和所述对齐距离,计算所述相似度。

本申请实施例第二方面提供了一种文本相似度计算装置,包括:获取模块,用于获取第一文本和第二文本;分词模块,用于分别对所述第一文本和所述第二文本进行分词,得到第一分词数组和第二分词数组;查找模块,用于在词向量库中查找对应于所述第一分词数组的第一词向量序列,以及对应于所述第二分词数组的第二词向量序列;生成模块,用于生成所述第一词向量序列和所述第二词向量序列的对齐距离矩阵;匹配模块,用于对所述对齐距离矩阵进行优化匹配计算,得到所述第一文本和所述第二文本的对齐距离;计算模块,用于基于所述对齐距离,计算所述第一文本和所述第二文本的相似度。

于一实施例中,还包括:构建模块,用于获取预存语料数据,对所述预存语料数据进行文本分词处理,基于文本分词处理后的所述预存语料数据,进行词向量模型训练,构建词向量库。

于一实施例中,所述生成模块用于:获取所述第一词向量序列和所述第二词向量序列中的最大长度值;基于所述最大长度值,对所述第一词向量序列和所述第二词向量序列中较短的序列进行填充,得到长度相同的所述第一词向量序列和所述第二词向量序列;利用动态时间规整算法,计算所述对齐距离矩阵。

于一实施例中,所述匹配模块用于:获取所述对齐距离矩阵每行每列的最小元素值;遍历所述对齐距离矩阵,将所述对齐距离矩阵中的每个元素减去所述元素所在行列的所述最小元素值,得到第一矩阵;基于所述第一矩阵中独立零元素的第一位置,生成第二矩阵,所述第二矩阵与所述对齐距离矩阵的行列数相同,所述第二矩阵中与所述第一位置相同的第二位置的元素为1,除所述第二位置以外的其他位置的元素为0;将所述对齐距离矩阵中对应于所述第二位置的元素相加,得到所述对齐距离。

于一实施例中,所述计算模块用于:获取所述第一矩阵中所述独立零元素的个数;根据所述独立零元素的个数和所述对齐距离,计算所述相似度。

本申请实施例第三方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行本申请实施例第一方面及其任一实施例的方法。

本申请实施例第四方面提供了一种非暂态电子设备可读存储介质,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行本申请实施例第一方面及其任一实施例的方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请一实施例的电子设备的结构示意图;

图2为本申请一实施例的文本相似度计算方法的流程示意图;

图3为本申请一实施例的文本相似度计算装置的结构示意图。

附图标记:

100-电子设备,110-总线,120-处理器,130-存储器,300-文本相似度计算装置,310-获取模块,320-分词模块,330-查找模块,340-生成模块,350-匹配模块,360-计算模块,370-构建模块。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,并不表示排列序号,也不能理解为指示或暗示相对重要性。

在本申请的描述中,术语“包括”、“包含”等表示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、步骤、操作、元素、组件和/或其集合的存在或添加。

在本申请的描述中,除非另有明确的规定和限定,术语“安装”、“设置”、“设有”、“连接”、“配置为”应做广义理解。例如,可以是固定连接,也可以是可拆卸连接,或整体式构造;可以是机械连接,也可以是电连接;可以是直接相连,也可以是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

请参看图1,其为本申请一实施例的电子设备100的结构示意图,包括至少一个处理器120和存储器130,图1中以一个处理器为例。处理器120和存储器130通过总线110连接,存储器130存储有可被至少一个处理器120执行的指令,指令被至少一个处理器120执行,以使至少一个处理器120执行如下述实施例中的文本相似度计算方法。

于一实施例中,处理器120可以是通用处理器,包括但不限于中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等,还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器120是电子设备100的控制中心,利用各种接口和线路连接整个电子设备100的各个部分。处理器120可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。

于一实施例中,存储器130可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,包括但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),静态随机存取存储器(Static Random Access Memory,简称SRAM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(ElectricErasable Programmable Read-Only Memory,EEPROM)等。

图1所示的电子设备100的结构仅为示意,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

如图2所示,其为本申请一实施例的文本相似度计算方法的流程示意图,该方法可由图1所示的电子设备100来执行,以实现提高短文本相似度计算的准确率。该方法包括如下步骤:

步骤210:获取第一文本和第二文本。

在上述步骤中,第一文本和第二文本均为短文本,短文本是一种字符长度小于200的文本数据形式。

于一实施例中,在获取第一文本和第二文本之前,还可以包括:获取预存语料数据;对预存语料数据进行文本分词处理;基于文本分词处理后的预存语料数据,进行词向量模型训练,构建词向量库。

在上述步骤中,预存语料数据可以是新闻语料,可以使用jieba工具对预存语料数据进行文本分词处理,采用Word2vec对预存语料数据进行训练学习,构建词向量库。Word2vec是来源于Google开发的词向量计算模型,其利用深度学习的思想,可以从大规模的文本数据中自动学习词语数据的本质信息。词向量模型的训练可以基于CBOW模型(Continuous Bag-of-Words Model,连续词袋模型)。

步骤220:分别对第一文本和第二文本进行分词,得到第一分词数组和第二分词数组。

在上述步骤中,使用jieba工具对第一文本进行分词,得到第一分词数组,对第二文本进行分词,得到第二分词数组。

步骤230:在词向量库中查找对应于第一分词数组的第一词向量序列,以及对应于第二分词数组的第二词向量序列。

在上述步骤中,根据第一分词数组,在词向量库中检索得到第一词向量序列,根据第二分词数组,在词向量库中检索得到第二词向量序列。

步骤240:生成第一词向量序列和第二词向量序列的对齐距离矩阵。

在上述步骤中,可以通过DTW(Dynamic Time Warping,动态时间规整)算法计算第一词向量序列和第二词向量序列的元素间的对齐距离,形成一个对齐距离矩阵。

于一实施例中,生成第一词向量序列和第二词向量序列的对齐距离矩阵可以包括:获取第一词向量序列和第二词向量序列中的最大长度值;基于最大长度值,对第一词向量序列和第二词向量序列中较短的序列进行填充,得到长度相同的第一词向量序列和第二词向量序列;利用动态时间规整算法,计算对齐距离矩阵。

在上述步骤中,为了使生成的对齐距离矩阵的行列数保持一致,可以对第一词向量序列和第二词向量序列进行定量分析,按照两者中的最大长度值,对较短的词向量序列进行填充,使得填充后的第一词向量序列和第二词向量序列长度保持一致,从而使根据DTW算法计算得到的对齐距离矩阵为一个方阵。

步骤250:对对齐距离矩阵进行优化匹配计算,得到第一文本和第二文本的对齐距离。

在上述步骤中,可以采用匈牙利算法,对生成的对齐距离矩阵进行行列最优化匹配,挑选出每行每列中最小的对齐距离,然后进行累加运算。

于一实施例中,对对齐距离矩阵进行优化匹配计算,得到第一文本和第二文本的对齐距离可以包括:获取对齐距离矩阵每行每列的最小元素值;遍历对齐距离矩阵,将对齐距离矩阵中的每个元素减去元素所在行列的最小元素值,得到第一矩阵;基于第一矩阵中独立零元素的第一位置,生成第二矩阵,第二矩阵与对齐距离矩阵的行列数相同,第二矩阵中与第一位置相同的第二位置的元素为1,除第二位置以外的其他位置的元素为0;将对齐距离矩阵中对应于第二位置的元素相加,得到对齐距离。

例如,第一文本为“湖南政府今年将加强文明建设”,第二文本为“今年湖南政府重点加强文明建设”,利用DTW算法得到的对齐距离矩阵W可以表示为:

可以将对齐距离矩阵W中的每一行减去各行的最小元素值,所得矩阵的每一列再减去当前各列的最小元素值,得到第一矩阵,也可以将对齐距离矩阵W中的每一列减去各列的最小元素值,所得矩阵的每一行再减去当前各行的最小元素值,得到第一矩阵。在第一矩阵中寻找独立零元素,独立零元素是指矩阵中处在不同行不同列的零元素,将独立零元素的位置标记为第一位置。生成一个与对齐距离矩阵W的行列数相同的零矩阵,将该零矩阵中与第一位置相同的位置标记为第二位置,将第二位置的元素替换为1,得到第二矩阵W2。

接上述例子,第二矩阵W2可以表示为:

将对齐距离矩阵W中对应于第二位置的元素相加,得到对齐距离,上述例子中,第一文本和第二文本的对齐距离d=0+0+0+0.4895+0+0+0=0.4895。

于一实施例中,获取对齐距离矩阵每行每列的最小元素值之后,可以比较行列中最小元素的总数目,以数目小的一方开始遍历,从而更快速的获得含独立零元素的第一矩阵。

步骤260:基于对齐距离,计算第一文本和第二文本的相似度。

在上述步骤中,第一文本和第二文本的对齐距离越小,则第一文本和第二文本的相似度越高。

于一实施例中,基于对齐距离,计算第一文本和第二文本的相似度,可以包括:获取第一矩阵中独立零元素的个数;根据独立零元素的个数和对齐距离,计算相似度。

在上述步骤中,第一文本和第二文本的相似度可以采用以下公式计算:

其中,Sim(s

本申请的文本相似度计算方法可以根据语序的凌乱程度,对语义相近的短文本进行良好的相似度等级划分,对一般场景下的短文本,能够进行合理有效的相似度计算。

如图3所示,其为本申请一实施例的文本相似度计算装置300的结构示意图,该装置可应用于图1所示的电子设备100,包括:获取模块310、分词模块320、查找模块330、生成模块340、匹配模块350和计算模块360。各个模块的原理关系如下:

获取模块310,用于获取第一文本和第二文本。

分词模块320,用于分别对第一文本和第二文本进行分词,得到第一分词数组和第二分词数组。

查找模块330,用于在词向量库中查找对应于第一分词数组的第一词向量序列,以及对应于第二分词数组的第二词向量序列。

生成模块340,用于生成第一词向量序列和第二词向量序列的对齐距离矩阵。

匹配模块350,用于对对齐距离矩阵进行优化匹配计算,得到第一文本和第二文本的对齐距离。

计算模块360,用于基于对齐距离,计算第一文本和第二文本的相似度。

于一实施例中,文本相似度计算装置300还包括:构建模块370,用于获取预存语料数据,对预存语料数据进行文本分词处理,基于文本分词处理后的预存语料数据,进行词向量模型训练,构建词向量库。

于一实施例中,生成模块340用于:获取第一词向量序列和第二词向量序列中的最大长度值;基于最大长度值,对第一词向量序列和第二词向量序列中较短的序列进行填充,得到长度相同的第一词向量序列和第二词向量序列;利用动态时间规整算法,计算对齐距离矩阵。

于一实施例中,匹配模块350用于:获取对齐距离矩阵每行每列的最小元素值;遍历对齐距离矩阵,将对齐距离矩阵中的每个元素减去元素所在行列的最小元素值,得到第一矩阵;基于第一矩阵中独立零元素的第一位置,生成第二矩阵,第二矩阵与对齐距离矩阵的行列数相同,第二矩阵中与第一位置相同的第二位置的元素为1,除第二位置以外的其他位置的元素为0;将对齐距离矩阵中对应于第二位置的元素相加,得到对齐距离。

于一实施例中,计算模块360用于:获取第一矩阵中独立零元素的个数;根据独立零元素的个数和对齐距离,计算相似度。

上述文本相似度计算装置300的详细描述,请参见上述实施例中相关方法步骤的描述。

本发明实施例还提供了一种电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。

在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。

在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。以上仅为本申请的优选实施例而已,仅用于说明本申请的技术方案,并不用于限制本申请。对于本技术领域的普通技术人员而言,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种文本相似度计算方法、装置、设备及存储介质
  • 一种文本相似度的计算方法、装置、设备和存储介质
技术分类

06120112721935