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

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

文献发布时间:2023-06-19 12:18:04


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

技术领域

本申请涉及自然语言处理技术领域,尤其涉及一种相似度计算方法、装置、电子设备及存储介质。

背景技术

文本相似技术在搜索、推荐、FAQ等领域中有着广泛的应用。目前现有的深度学习文本相似度技术在实现文本相似度计算过程中通常会先通过获取词粒度的特征,进而在通过使用max-pooling(最大池化)或者mean-pooling(平均池化)的方式来得到整个文本的特征。然而,发明人发现,在使用max-pooling或者mean-pooling的方式来获取整个文本的特征时,信息丢失很严重,这导致采用该方式获得的整个文本的特征来计算两文本之间相似度时,计算结果存在较大误差,无法准确地计算出两文本之间的真实相似度。

发明内容

有鉴于此,本申请实施例提供了一种文本相似度计算方法、装置、电子设备及存储介质,可以获得文本的多样性特征,减少文本信息丢失,提高两个文本之间相似度计算的准确性。

本申请实施例的第一方面提供了一种文本相似度计算方法,包括:

获取需要进行相似度计算的两个文本;

利用高斯核函数对所述两个文本分别进行特征提取,获取所述两个文本各自对应的文本特征;

根据所述两个文本各自对应的文本特征,计算所述两个文本之间的文本相似度。

结合第一方面,在第一方面的第一种可能实现方式中,所述利用高斯核函数对所述两个文本分别进行特征提取,获取所述两个文本各自对应的文本特征的步骤,包括:

按照预设的特征维度对目标文本进行词特征提取处理,生成第一词特征集合,所述目标文本为所述需要进行相似度计算的两个文本中的任意一个文本;

采用预设的高斯核函数对所述第一词特征集合中的各个词特征进行高斯变换,获得与所述第一词特征集合对应的第二词特征集合;

分别按照所述第一词特征集合和所述第二词特征集合对所述目标文本进行池化处理,获得所述目标文本的第一文本特征因子和第二文本特征因子;

将所述第一文本特征因子和第二文本特征因子进行拼接处理,生成用于表征所述目标文本的文本特征。

结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,所述按照预设的特征维度对目标文本进行词特征提取处理,生成第一词特征集合的步骤之前,还包括:

通过初始化学习构建维度学习模型,以采用所述维度学习模型对所述目标文本进行词特征提取处理,其中,所述初始化学习包括随机初始化学习和先验知识初始化学习中的任意一种。

结合第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,所述采用所述维度学习模型对所述目标文本进行词特征提取处理的步骤,包括:

采用所述维度学习模型对所述目标文本进行分词预处理和词语过滤预处理,获得所述目标文本中具有实质意义的词语;

按照所述维度学习模型自学习获得的若干特征维度对所述具有实质意义的词语进行表征,获得所述具有实质意义的词语对应的词特征。

结合第一方面的第一种可能实现方式,在第一方面的第四种可能实现方式中,所述分别按照所述第一词特征集合和所述第二词特征集合对所述目标文本进行池化处理,获得所述目标文本的第一文本特征因子和第二文本特征因子的步骤,包括:

将目标词特征集合中的各词特征进行词嵌入处理,获得与所述目标词特征集合对应的词向量矩阵,所述目标词特征集合为所述第一词特征集合和所述第二词特征集合中的任意一个词特征集合;

通过池化处理对所述词向量矩阵进行降维,获得与所述目标词特征集合对应的文本特征因子。

结合第一方面的第四种可能实现方式,在第一方面的第五种可能实现方式中,所述通过池化处理对所述词向量矩阵进行降维,获得与所述目标词特征集合对应的文本特征因子的步骤中,所述池化处理包括以下至少一种:平均池化处理和最大池化处理。

结合第一方面的第一至五种可能实现方式中的任意一种,在第一方面的第六种可能实现方式中,所述采用预设的高斯核函数对所述第一词特征集合中的各个词特征进行高斯变换的步骤,包括采用以下关系式获取高斯变换后的词特征:

其中,exp表示为高斯核函数,W′

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

文本获取模块,用于获取需要进行相似度计算的两个文本;

特征提取模块,用于利用高斯核函数对所述两个文本分别进行特征提取,获取所述两个文本各自对应的文本特征;

相似度计算模块,用于根据所述两个文本各自对应的文本特征,计算所述两个文本之间的文本相似度。

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

本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的文本相似度计算方法的各步骤。

本申请实施例提供的一种文本相似度计算方法、装置、电子设备及存储介质,具有以下有益效果:

本申请所述方法通过利用高斯核函数,实现从多个不同的角度对文本进行特征提取,将从多个角度提取的特征进行整合获得该文本的文本特征,得到了文本的多样性特征,减少了文本的信息丢失,使得文本特征可以更为全面地表征文本。由此,采用本方法获得的表征整个文本的文本特征来计算两文本之间相似度时,可以大大地减少计算误差,准确地计算出两个文本之间的真实相似度。

附图说明

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

图1为本申请实施例提供的一种文本相似度计算方法的实现流程图;

图2为本申请实施例提供的文本相似度计算方法中提取文本特征的一种方法流程图;

图3为本申请实施例提供的文本相似度计算方法中获取词特征的一种方法流程示意图;

图4为本实施提供的文本相似度计算方法中获取文本特征因子的一种方法流程示意图;

图5为本申请实施例提供的一种文本相似度计算装置的基本结构框图;

图6为本申请实施例提供的一种电子设备的基本结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

请参阅图1,图1为本申请实施例提供的一种文本相似度计算方法的实现流程图。详述如下:

步骤S11:获取需要进行相似度计算的两个文本。

本实施例中,需要进行相似度计算的两个文本中记载有各自需要比对的文字信息,该两个文本可以通过文本获取装置获得,例如用户输入、机器扫描等。

步骤S12:利用高斯核函数对所述两个文本分别进行特征提取,获取所述两个文本各自对应的文本特征。

本实施例中,对于获得的每一个文本,利用多个不同的高斯核函数,实现从多个不同的角度对文本进行特征提取,将从多个角度提取的特征进行整合,获得该文本的文本特征。该获得的文本特征得到了多样性表征,可以全面地表征文本。示例性的,具体可以通过配置多组不同的均值参数和方差参数来获得多个不同的高斯核函数,其中,均值参数和方差参数由用户随机配置。对文本进行特征提取时,通过对文本进行分词和过滤无意义词语处理获得第一组表征文本的文本特征,然后利用不同的高斯核函数对该第一组表征文本的文本特征进行高斯变换处理,得到多组表征文本的文本特征。将该第一组表征文本的文本特征和通过高斯变换获得的多组表征文本的文本特征进行相加合并,即可获得从多个角度全面表征该文本的文本特征。

步骤S13:根据所述两个文本各自对应的文本特征,计算所述两个文本之间的文本相似度。

本实施例中,利用高斯函数分别获得两个文本的文本特征后,通过对该两个文本的文本特征分别进行向量化处理,得到该两个文本各自对应的特征向量。通过采用余弦相似度计算算法计算两个向量之间夹角的余弦值,即可获得该两个文本之间的文本相似度。其中,计算获得余弦值越大,表示该两个文本之间的相似度越高。

以上可以看出,本实施例提供的文本相似度计算方法通过利用高斯核函数,实现从多个不同的角度对文本进行特征提取,将从多个角度提取的特征进行整合获得该文本的文本特征。该文本特征可以呈现出文本的多样性表征,减少文本的信息丢失,使得文本特征更为全面地表征文本。由此,采用本方法获得的表征整个文本的文本特征来计算两文本之间相似度时,可以大大地减少计算误差,准确地计算出两个文本之间的真实相似度。

本申请的一些实施例中,请参阅图2,图2为本申请实施例提供的文本相似度计算方法中提取文本特征的一种方法流程图。详细如下:

步骤S21:按照预设的特征维度对目标文本进行词特征提取处理,生成第一词特征集合,所述目标文本为所述需要进行相似度计算的两个文本中的任意一个文本。

本实施例中,可以预先配置若干个特征维度,每个特征维度对应反映一种词语属性信息。特征维度可以包括但不限于词性维度、结构维度、句法维度等。从词性维度,可以反映一个词语的词性属性信息,例如确定一个词语是专有名词、关键名词、实体词、代词、动词还是疑问词等。从结构维度,可以根据词语所在的语句反映该词语的结构属性信息,例如确定一个词语是主语、谓语、状语还是宾语等。从句法维度,可以根据该词语所在的语句反映该词语所包含的句法信息,例如确定该词语反映出的语句句法是陈述句、疑问句、祈使句、感叹句、并列句还是复合句等。在本实施例中,可以识别目标文本中所包含的词语,按照该预先配置的若干个特征维度对这些从目标文本中识别到的词语逐一进行表征,得到各个词语对应的词特征。其中,词特征具体表示为含有所述预先配置的若干个特征维度的特征向量。

示例性的,在本实施例中,可以预先通过初始化训练获得一个维学习模型,该维度学习模型通过初始化训练自学习若干个特征维度。训练好的维度训练模型可以得到各个特征维度所表征的含义,按照该维度学习模型自学习获得的特征维度来对目标文本进行词特征提取处理。其中,特征维度表征的含义包括但不限于词性维度的含义、结构维度的含义、句法维度的含义等。在本实施例中,维度学习模型的训练可以通过随机初始化和先验知识初始化两种初始化方式中的任意一种进行维度初始化处理,以使得维度学习模型通过模型自学习得到每个特征维度分别表征的含义。示例性的,采用随机初始化方式训练维度学习模型时,可以根据训练样本统计,学习到每个维度所表征的含义。随机初始化方式的学习结果随着样本的变化而变化,比较灵活。采用先验知识初始化方式训练维度学习模型时,需要预先对一些训练样本进行分析,抽取出可用于相似度计算的若干个维度{view1,view2,……,viewN},再从大量的训练样本中统计出能够表征维度的词{words-1,words-2,……,words-N},最后通过使用sum函数对维度进行初始化,学习到每个维度所表征的含义。

步骤S22:采用预设的高斯核函数对所述第一词特征集合中的各个词特征进行高斯变换,获得与所述第一词特征集合对应的第二词特征集合。

本实施例中,引入kernel(核函数)技术,通过预先配置高斯核函数,采用这些预设的高斯核函数对此前生成的第一词特征集合进行高斯变换,即可得到与该第一词特征集合对应的第二词特征集合。在本实施例中,假设预先配置K个高斯核函数,即可获得K个与第一词特征集合对应的第二词特征集合。无论是直接提取获得的第一词特征集合,还是采用高斯变换的方式获得的第二词特征集合,不同的词特征集合对应从不同的方面表征文本。由此,结合第一词特征集合和K个第二词特征集合,可以实现从K+1个方面计算出文本的文本特征,以实现对文本全面表征。

示例性,高斯核函数的预先配置具体是配置高斯核函数的均值参数和方差参数,通过随机配置多组不同的均值参数和方差参数即可获得多个不同的高斯核函数。需要说明的是,第一词特征集合为文本在某一角度上的表征,采用高斯核函数对第一词特征集合进行高斯变换,得到的第二词特征集合是文本在另一角度上的表征。第二词特征集合用于从与第一词特征集合不同的方面计算文本特征。高斯变换是为了获得文本的更多表征,可以减少文本信息的丢失。在本实施例中,采用高斯核函数对第一词特征集合中的各个词特征进行高斯变换处理来得到第二词特征集合,具体采用如下关系式进行计算:

其中,exp表示为高斯核函数,用于执行高斯变换处理,是以自然常数e为底的指数函数;W′

步骤S23:分别按照所述第一词特征集合和所述第二词特征集合对所述目标文本进行池化处理,获得所述目标文本的第一文本特征因子和第二文本特征因子。

本实施例中,获得第一词特征集合和第二词特征集合后,分别按照第一词特征集合和第二词特征集合对目标文本进行池化处理,对应获得该目标文本的第一文本特征因子和第二文本特征因子。该第一文本特征因子和第二文本特征因子分别从两个不同方面表征该目标文本。可以理解的是,如若配置有多个高斯核函数,则可对应获得多个不同的第二词特征集合,进而对应地,可得到多个不同的第二文本特征因子,每个第二文本特征因子都分别从目标文本的不同方面来表征文本。

步骤S24:将所述第一文本特征因子和第二文本特征因子进行拼接处理,生成用于表征所述目标文本的文本特征。

本实施例中,获得分别从文本多个方面表征文本的文本特征因子后,通过将这些文本特征因子进行拼接处理,使其生成为一个用于表征该文本的文本特征。在本实施例中,拼接处理的方式配置为Matlab矩阵拼接,其中,Matlab矩阵拼接包括横向拼接和纵向拼接,本实施例可以任意指定一个方向进行矩阵拼接。举例说明,假设获得的文本特征因子是一个100维的向量矩阵,而获得的文本特征因子的数量为3个,那么,可以横向拼接(或纵向拼接)得到一个300维的向量矩阵,这个300维的向量矩阵即为表征该目标文本的文本特征。

本申请的一些实施例中,请一并参阅图3,图3为本申请实施例提供的文本相似度计算方法中获取词特征的一种方法流程示意图。详细如下:

步骤S31:采用所述维度学习模型对所述目标文本进行分词预处理和词语过滤预处理,获得所述目标文本中具有实质意义的词语;

步骤S32:按照所述维度学习模型自学习获得的若干特征维度对所述具有实质意义的词语进行表征,获得所述具有实质意义的词语对应的词特征。

在本实施例中,通过预先训练好的维度学习模型,先对文本进行分词预处理和词语过滤预处理,例如利用jieba、NLP等分词工具对目标文本进行分词,将目标文本切分成若干个词语,再将该若干个词语中的一些无实质意义的词语过滤掉,从而获得文本中具有实质意义的词语。基于预先训练好的维度学习模型,可以采用该维度学习模型中自学习获得的若干特征维度中预先配置的若干个特征维度来对这些具有实质意义的词语逐一进行表征处理,以实现用该维度学习模型中的若干特征维度来表征各具有实质意义的词语的含义,即获得各个具有实质意义的词语各自对应的词特征。示例性的,假设该维度学习模型自学习获得100个特征维度,通过按照维度学习模型自学习获得的若干特征维度对各具有实质意义的词语逐一进行表征,每个具有实质意义的词语可以获得一个对应的含有100个特征维度的词特征。在本实施例中,通过将各个具有实质意义的词语各自对应的词特征组合在一起,即可生成第一词特征集合。第一词特征集合中包含有文本中所有具有实质意义的词语对应的词特征。

本申请的一些实施例中,请参阅图4,图4为本实施提供的文本相似度计算方法中获取文本特征因子的一种方法流程示意图。详细如下:

步骤S41:将目标词特征集合中的各词特征进行词嵌入处理,获得与所述目标词特征集合对应的词向量矩阵,所述目标词特征集合为所述第一词特征集合和所述第二词特征集合中的任意一个词特征集合;

步骤S42:通过池化处理对所述词向量矩阵进行降维,获得与所述目标词特征集合对应的文本特征因子。

本实施例中,以此前获得的第一词特征集合和第二词特征集合中的任意一个词特征集合作为目标词特征集合,通过将目标词特征集合中的各个词特征进行词嵌入(embedding)处理,可以构建形成一个与该目标词特征集合对应的词向量矩阵。池化处理是通过对该形成的词向量矩阵进行特征降维,不断减少该词向量矩阵的数据空间,从而获得该词向量矩阵中与目标文本最相关的特征(或者说获得该词向量矩阵中最明显的特征),此时获得的特征即为与目标词特征集合对应的文本特征因子。池化处理采用的方式包括但不限于平均池化处理(mean-pooling)、最大池化处理(max-pooling)。具体地,假设词特征集合中各个词特征为100维,则按维进行平均值计算处理或最大值计算处理,例如,文本中包含有10个有意义的词语,即对应得到的词特征集合中包含有10个100维的词特征,对于文本而言,每1维都有10个值,对该10个值进行平均值计算处理或最大值取值处理即可获得该维的池化后的值,对每1维都进行计算处理后,可得到用于表征整个文本的一个100维的文本特征因子。

可以理解的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本申请的一些实施例中,请参阅图5,图5为本申请实施例提供的一种文本相似度计算装置的基本结构框图。本实施例中该装置包括的各单元用于执行上述方法实施例中的各步骤。具体请参阅上述方法实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。如图5所示,文本相似度计算装置包括:文本获取模块51、特征提取模块52以及相似度计算模块53。其中:所述文本获取模块51用于获取需要进行相似度计算的两个文本。所述特征提取模块52用于利用高斯核函数对所述两个文本分别进行特征提取,获取所述两个文本各自对应的文本特征。所述相似度计算模块53用于根据所述两个文本各自对应的文本特征,计算所述两个文本之间的文本相似度。

应当理解的是,上述文本相似度计算装置,与上述的文本相似度计算方法一一对应,此处不再赘述。

本申请的一些实施例中,请参阅图6,图6为本申请实施例提供的一种电子设备的基本结构框图。如图6所示,该实施例的电子设备6包括:处理器61、存储器62以及存储在所述存储器62中并可在所述处理器61上运行的计算机程序63,例如文本相似度计算方法的程序。处理器61执行所述计算机程序63时实现上述各个文本相似度计算方法各实施例中的步骤。或者,所述处理器61执行所述计算机程序63时实现上述文本相似度计算装置对应的实施例中各模块的功能。具体请参阅实施例中的相关描述,此处不赘述。

示例性的,所述计算机程序63可以被分割成一个或多个模块(单元),所述一个或者多个模块被存储在所述存储器62中,并由所述处理器61执行,以完成本申请。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序63在所述电子设备6中的执行过程。例如,所述计算机程序63可以被分割成获取模块、处理模块和执行模块,各模块具体功能如上所述。

所述转台设备可包括,但不仅限于,处理器61、存储器62。本领域技术人员可以理解,图6仅仅是电子设备6的示例,并不构成对电子设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述转台设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器61可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器62可以是所述电子设备6的内部存储单元,例如电子设备6的硬盘或内存。所述存储器62也可以是所述电子设备6的外部存储设备,例如所述电子设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器62还可以既包括所述电子设备6的内部存储单元也包括外部存储设备。所述存储器62用于存储所述计算机程序以及所述转台设备所需的其他程序和数据。所述存储器62还可以用于暂时地存储已经输出或者将要输出的数据。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。在本实施例中,所述计算机可读存储介质可以是非易失性,也可以是易失性。

本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

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

06120113240052