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

文档序号:28360314发布日期:2022-01-05 12:38阅读:77来源:国知局
文本相似度计算方法、装置、电子设备及存储介质与流程

1.本技术涉及人工智能技术领域,尤其涉及一种文本相似度计算方法、装置、电子设备及存储介质。


背景技术:

2.随着计算机技术的发展,许多业务需要使用计算机技术进行自然语言处理,例如搜索引擎、智能服务等。在进行自然语言处理时,通常会进行文本相似度的计算。而目前的计算方式往往计算准确性不高。因此,如何提供一种计算方法,提高文本相似度计算的准确性,成为了亟待解决的技术问题。


技术实现要素:

3.本技术实施例的主要目的在于提出一种文本相似度计算方法、装置、电子设备及存储介质,旨在提高文本相似度计算的准确性。
4.为实现上述目的,本技术实施例的第一方面提出了一种文本相似度计算方法,所述方法包括:
5.获取待计算的原始文本;
6.利用预先训练的文本分词模型对所述原始文本进行分词处理,得到多个文本词段;
7.利用预先训练的目标词库模型对每一所述文本词段进行位置识别,得到每一所述文本词段的目标位置;
8.根据所述目标位置对每一所述文本词段进行编码处理,得到文本词段向量;
9.将所述文本词段向量输入至预先训练的对比模型中,以使所述文本词段向量与所述对比模型中的参考词嵌入矩阵进行矩阵相乘,得到目标词嵌入向量;
10.对多个所述目标词嵌入向量进行相似度计算,得到每两个文本词段之间的相似度值。
11.在一些实施例,所述利用预先训练的目标词库模型对每一所述文本词段进行位置识别,得到每一所述文本词段的目标位置的步骤,包括:
12.利用所述目标词库模型中的预设函数对每一文本词段进行元素提取,得到每一文本词段的元素值;
13.根据所述元素值对所述文本词段进行位置识别,得到所述文本词段的目标位置。
14.在一些实施例,在利用预先训练的目标词库模型对每一所述文本词段进行位置识别,得到每一所述文本词段的目标位置的步骤之前,所述方法还包括预先训练所述目标词库模型,具体包括:
15.获取参考文本数据;
16.利用初始分词模型对所述参考文本数据进行分词处理,得到参考词段数据;
17.根据预设比例将所述参考词段数据划分为训练集、测试集和验证集;
18.利用所述训练集对所述初始模型进行训练,得到当前词库模型;
19.利用所述测试集和所述验证集对当前词库模型进行验证,得到所述目标词库模型。
20.在一些实施例,所述根据所述目标位置对每一所述文本词段进行编码处理,得到文本词段向量的步骤,包括:
21.根据所述目标位置,对每一文本词段进行归一化处理,得到标准词段;
22.对所述标准词段进行独热编码,得到文本词段向量。
23.在一些实施例,所述将所述文本词段向量输入至预先训练的对比模型中,以使所述文本词段向量与所述对比模型中的参考词嵌入矩阵进行矩阵相乘,得到目标词嵌入向量的步骤,包括:
24.将文本词段向量输入到所述对比模型中,以使所述文本词段向量与参考词嵌入矩阵进行矩阵相乘,得到多个基本词嵌入向量;
25.对所述基本词嵌入向量进行映射处理,得到目标词嵌入向量。
26.在一些实施例,在将所述文本词段向量输入至预先训练的对比模型中,以使所述文本词段向量与所述对比模型中的参考词嵌入矩阵进行矩阵相乘,得到目标词嵌入向量的步骤之前,所述方法还包括训练对比模型,具体包括:
27.获取样本数据;
28.对所述样本数据进行数据增强处理,得到正例对;
29.将所述正例对输入到所述对比学习模型;
30.通过所述对比学习模型的损失函数计算出所述正例对的第一相似度和负例对的第二相似度;
31.根据所述第一相似度和所述第二相似度对所述对比学习模型的损失函数进行优化,以更新所述对比学习模型。
32.在一些实施例,所述对多个所述目标词嵌入向量进行相似度计算,得到每两个文本词段之间的相似度值的步骤,包括:
33.利用余弦相似度算法对多个目标词嵌入向量进行相似度计算,得到每两个文本词段之间的相似度值。
34.为实现上述目的,本技术实施例的第二方面提出了一种文本相似度计算装置,所述装置包括:
35.文本获取模块,用于获取待计算的原始文本;
36.分词模块,用于利用预先训练的文本分词模型对所述原始文本进行分词处理,得到多个文本词段;
37.位置识别模块,用于利用预先训练的目标词库模型对每一所述文本词段进行位置识别,得到每一所述文本词段的目标位置;
38.编码模块,用于根据所述目标位置对每一所述文本词段进行编码处理,得到文本词段向量;
39.对比模块,用于将所述文本词段向量输入至预先训练的对比模型中,以使所述文本词段向量与所述对比模型中的参考词嵌入矩阵进行矩阵相乘,得到目标词嵌入向量;
40.相似度计算模块,用于对多个所述目标词嵌入向量进行相似度计算,得到每两个
文本词段之间的相似度值。
41.为实现上述目的,本技术实施例的第三方面提出了一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现上述第一方面所述的方法。
42.为实现上述目的,本技术实施例的第四方面提出了一种计算机可读存储介质,用于计算机可读存储,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面所述的方法。
43.本技术提出的文本相似度计算方法、装置、电子设备及存储介质,其通过获取待计算的原始文本,利用预先训练的文本分词模型对原始文本进行分词处理,得到多个文本词段,这一方式能够实现对原始文本的片段化处理,使得更为方便提取到所需要的文本词段;进而利用预先训练的目标词库模型对每一文本词段进行位置识别,得到每一文本词段的目标位置,能够较为准确地对每一文本词段进行位置识别。这样一来,便可进一步地根据目标位置对每一文本词段进行编码处理,得到文本词段向量,将文本词段向量输入至预先训练的对比模型中,使文本词段向量与对比模型中的参考词嵌入矩阵进行矩阵相乘,得到目标词嵌入向量,最后对多个目标词嵌入向量进行相似度计算,得到每两个文本词段之间的相似度值,通过对比模型能够有效地解决词段向量分布均匀的问题,从而提高相似度计算的准确性,该方法能够更为准确地确定文本词段之间的相关性。
附图说明
44.图1是本技术实施例提供的文本相似度计算方法的流程图;
45.图2是图1中的步骤s103的流程图;
46.图3是本技术实施例提供的文本相似度计算方法的另一流程图;
47.图4是图1中的步骤s104的流程图;
48.图5是图1中的步骤s105的流程图;
49.图6是本技术实施例提供的文本相似度计算方法的另一流程图;
50.图7是本技术实施例提供的文本相似度计算装置的结构示意图;
51.图8是本技术实施例提供的电子设备的硬件结构示意图。
具体实施方式
52.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
53.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
54.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,
不是旨在限制本技术。
55.首先,对本技术中涉及的若干名词进行解析:
56.人工智能(artificial intelligence,ai):是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学;人工智能是计算机科学的一个分支,人工智能企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能可以对人的意识、思维的信息过程的模拟。人工智能还是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
57.自然语言处理(natural language processing,nlp):nlp用计算机来处理、理解以及运用人类语言(如中文、英文等),nlp属于人工智能的一个分支,是计算机科学与语言学的交叉学科,又常被称为计算语言学。自然语言处理包括语法分析、语义分析、篇章理解等。自然语言处理常用于机器翻译、手写体和印刷体字符识别、语音识别及文语转换、信息检索、信息抽取与过滤、文本分类与聚类、舆情分析和观点挖掘等技术领域,它涉及与语言处理相关的数据挖掘、机器学习、知识获取、知识工程、人工智能研究和与语言计算相关的语言学研究等。
58.信息抽取(information extraction,ner):从自然语言文本中抽取指定类型的实体、关系、事件等事实信息,并形成结构化数据输出的文本处理技术。信息抽取是从文本数据中抽取特定信息的一种技术。文本数据是由一些具体的单位构成的,例如句子、段落、篇章,文本信息正是由一些小的具体的单位构成的,例如字、词、词组、句子、段落或是这些具体的单位的组合。抽取文本数据中的名词短语、人名、地名等都是文本信息抽取,当然,文本信息抽取技术所抽取的信息可以是各种类型的信息。
59.实体:指具有可区别性且独立存在的某种事物。如某一个人、某一个城市、某一种植物等、某一种商品等等。世界万物有具体事物组成,此指实体。实体是知识图谱中的最基本元素,不同的实体间存在不同的关系。
60.概念:某一类实体的集合。
61.语义类(概念):具有同种特性的实体构成的集合,如国家、民族、书籍、电脑等。概念主要指集合、类别、对象类型、事物的种类,例如人物、地理等。
62.自监督学习:自监督学习主要是利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。也就是说自监督学习的监督信息不是人工标注,而是算法在大规模无监督数据中自动构造监督信息,来进行监督学习或训练。
63.对比学习(contrastive learning)是自监督学习的一种,不需要依赖人工标注的类别标签信息,直接利用数据本身作为监督信息。对比学习是一种为深度学习模型描述相似和不同事物的任务的方法。利用对比学习方法,可以训练机器学习模型来区分相似和不同的图像。在图像领域的自监督学习分为两种类型:生成式自监督学习、判别式自监督学习。对比学习应用的是典型的判别式自监督学习。对比学习的核心要点是:通过自动构造相似实例和不相似实例,也就是正样本和负样本,学习将正样本和负样本在特征空间进行对比,使得相似的实例在特征空间中距离拉近,而不相似的实例在特征空间中的距离拉远,差
异性变大,通过这样的学习过程得到的模型表征就可以去执行下游任务,在较小的标记数据集上进行微调,从而实现无监督的模型学习过程。对比学习的指导原则是:通过自动构造相似实例和不相似实例,通过学习得到一个学习模型,利用这个模型,使得相似的实例在投影空间中比较接近,而可不相似的实例在投影空间中距离比较远。
64.嵌入(embedding):embedding是一种向量表征,是指用一个低维的向量表示一个物体,该物体可以是一个词,或是一个商品,或是一个电影等等;这个embedding向量的性质是能使距离相近的向量对应的物体有相近的含义,比如embedding(复仇者联盟)和embedding(钢铁侠)之间的距离就会很接近,但embedding(复仇者联盟)和embedding(乱世佳人)的距离就会远一些。embedding实质是一种映射,从语义空间到向量空间的映射,同时尽可能在向量空间保持原样本在语义空间的关系,如语义接近的两个词汇在向量空间中的位置也比较接近。embedding能够用低维向量对物体进行编码还能保留其含义,常应用于机器学习,在机器学习模型构建过程中,通过把物体编码为一个低维稠密向量再传给dnn,以提高效率。
65.batch(批量):batch大小(即批量大小)是一个超参数,用于定义在更新内部模型参数之前要处理的样本数,也就是在模型的内部参数更新之前控制训练样本的数量。训练数据集可以分为一个或多个batch,其中,当所有训练样本用于创建一个batch时,学习算法称为批量梯度下降;当批量是一个样本的大小时,学习算法称为随机梯度下降;当批量大小超过一个样本且小于训练数据集的大小时,学习算法称为小批量梯度下降。batch大小是在更新模型之前处理的多个样本。
66.数据增强:数据增强主要用来防止过拟合,用于dataset(数据集)较小时对数据集进行优化,通过数据增强,可以增加训练的数据量,提高模型的泛化能力,增加噪声数据,提升模型的鲁棒性。数据增强可以分为两类,离线增强和在线增强;其中,离线增强是直接对数据集进行处理,数据的数目会变成增强因子x原数据集的数目,离线增强常常用于数据集很小时;在线增强,主要用于获得batch数据之后,对这个batch的数据进行增强,如旋转、平移、翻折等相应的变化,由于有些数据集不能接受线性级别的增长,在线增强常用于较大数据集,很多机器学习框架已经支持了在线增强方式,并且可以使用gpu优化计算。
67.dropout(丢弃):dropout是一种防止模型过拟合的技术,是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃,从而可以让模型更鲁棒,因为它不会太依赖某些局部的特征(因为局部特征有可能被丢弃)。
68.mask(掩码、掩膜):mask是深度学习中的常见操作;简单而言,mask相当于在原始张量上盖上一层掩膜,从而屏蔽或选择一些特定元素,因此常用于构建张量的过滤器。线性激活函数relu(根据输出的正负区间进行简单粗暴的二分)、dropout机制(根据概率进行二分)都可以理解为泛化的mask操作。
69.encoder:编码,就是将输入序列转化成一个固定长度的向量;解码(decoder),就是将之前生成的固定向量再转化成输出序列;其中,输入序列可以是文字、语音、图像、视频;输出序列可以是文字、图像。
70.反向传播:反向传播的大致原理为:将训练集数据输入到神经网络的输入层,经过神经网络的隐藏层,最后达到神经网络的输出层并输出结果;由于神经网络的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向
传播,直至传播到输入层;在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛。
71.随着计算机技术的发展,许多业务需要使用计算机技术进行自然语言处理,例如搜索引擎、智能服务等。在进行自然语言处理时,通常会进行文本相似度的计算。而目前的计算方式往往计算准确性不高。因此,如何提供一种文本相似度计算方法,提高相似度计算的准确性,成为了亟待解决的技术问题。
72.基于此,本技术实施例提供一种文本相似度计算方法、装置、电子设备及存储介质,可以提高相似度计算的准确性。
73.本技术实施例提供的文本相似度计算方法、装置、电子设备及存储介质,具体通过如下实施例进行说明,首先描述本技术实施例中的文本相似度计算方法。
74.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
75.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
76.本技术实施例提供的文本相似度计算方法,涉及人工智能技术领域。本技术实施例提供的文本相似度计算方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现文本相似度计算方法的应用等,但并不局限于以上形式。
77.本技术可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
78.图1是本技术实施例提供的文本相似度计算方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤s101至步骤s106。
79.步骤s101,获取待计算的原始文本;
80.步骤s102,利用预先训练的文本分词模型对原始文本进行分词处理,得到多个文本词段;
81.步骤s103,利用预先训练的目标词库模型对每一文本词段进行位置识别,得到每一文本词段的目标位置;
82.步骤s104,根据目标位置对每一文本词段进行编码处理,得到文本词段向量;
83.步骤s105,将文本词段向量输入至预先训练的对比模型中,以使文本词段向量与对比模型中的参考词嵌入矩阵进行矩阵相乘,得到目标词嵌入向量;
84.步骤s106,对多个目标词嵌入向量进行相似度计算,得到每两个文本词段之间的相似度值。
85.在一些实施例的步骤s101中,可以通过编写网络爬虫,设置好数据源之后进行有目标性的爬取数据,得到待计算的原始文本。需要说明的是,该原始文本为自然语言文本。
86.在一些实施例的步骤s102中,预先训练的文本分词模型可以包括jieba分词器;也可以是其他分词软件,如hanlp等等。以jieba分词器作为文本分词模型为例进行说明,该步骤s102具体包括:
87.利用预先训练的jieba分词器对原始文本进行分词处理,得到文本词段。
88.具体地,在利用jieba分词器进行分词处理时,首先通过对照jieba分词器内的词典生成该原始文本对应的有向无环图,再根据预设的选择模式和词典寻找有向无环图上的最短路径,根据最短路径对该原始文本进行截取,或者直接对该原始文本进行截取,得到文本词段。
89.进一步地,对于不在词典中的文本词段,可以使用hmm(隐马尔科夫模型)进行新词发现。具体地,将字符在文本词段中的位置b、m、e、s作为隐藏状态,字符是观测状态,其中,b/m/e/s分别代表出现在词头、词中、词尾以及单字成词。使用词典文件分别存储字符之间的表现概率矩阵、初始概率向量和转移概率矩阵。再利用维特比算法对最大可能的隐藏状态进行求解,从而得到文本字段。
90.在另一些实施例的步骤s102中,还需要对文本词段进行词性标注处理,即根据预设的词性类别对文本词段进行词性标注,得到包含词性类别标签的文本词段,其中,预设的词性类别包括名称、动词、修饰词、形容词等等。
91.通过上述实施例的步骤s102能够实现对原始文本的分词处理,使得更为方便提取到所需要的文本词段。
92.请参阅图2,在一些实施例中,步骤s103可以包括但不限于包括步骤s201至步骤s202:
93.步骤s201,利用目标词库模型中的预设函数对每一文本词段进行元素提取,得到每一文本词段的元素值;
94.步骤s202,根据元素值对文本词段进行位置识别,得到文本词段的目标位置。
95.具体地,该目标词库模型可以为编码模型,包括至少一个编码器;另外,为了实现提取文本词段中的元素值,目标词库模型还预设有index函数。由于index函数可以返回表格或数组中的元素值。因此在步骤s201中通过数组形式的index函数对每一文本词段的元素值进行提取,得到文本词段的元素值。其中,文本词段的元素值包括文本词段的行号和列号的索引值。因而,通过index函数对文本词段的行号和列号进行搜索,能够对指定位置的文本词段进行获取。在步骤s202中,通过index函数对文本词段的行号和列号进行搜索,遍历原始文本中的每一文本字段,生成文本词段的位置序列表,该位置序列表能够反映出文
本字段与行号、列号(元素值)的对应关系。即实现了根据元素值确定文本词段的目标位置,从而能够较为准确地对每一文本词段进行位置识别。
96.需要说明的是,目标词库模型中还可以预设其他函数来对文本词段的元素值进行提取,不限于index函数。
97.请参阅图3,在一些实施例中,在步骤s103之前,该方法还包括预先训练目标词库模型,具体可以包括但不限于包括步骤s301至步骤s305:
98.步骤s301,获取参考文本数据;
99.步骤s302,利用初始分词模型对参考文本数据进行分词处理,得到参考词段数据;
100.步骤s303,根据预设比例将参考词段数据划分为训练集、测试集和验证集;
101.步骤s304,利用训练集对初始模型进行训练,得到当前词库模型;
102.步骤s305,利用测试集和验证集对当前词库模型进行验证,得到目标词库模型。
103.具体地,在步骤s301中,可以通过网络爬虫等方式获取参考文本数据;步骤s302中,初始分词模型可以为jieba分词器,利用jieba分词器对参考文本数据进行分词处理,得到参考词段数据。具体地对参考文本数据进行分词处理的过程与上述步骤s102中对原始文本进行分词处理的过程基本相同,此处不再赘述。
104.进而,可以执行步骤s303,以根据预设的比例将参考词段数据划分为训练集、验证集以及测试集。需要说明的是,预设比例可以根据实际需求进行设定,例如将这些参考词段数据按照7:2:1的比例划分为训练集、验证集和测试集,同时对这三个数据集的参考词段数据进行标注处理,得到含标签的参考词段数据。
105.具体地,在执行步骤s303之后,可以执行步骤s304,将训练集的参考词段数据输入到初始模型中,对初始模型进行模型训练,得到当前词库模型,其中,初始模型包括encoder编码器。
106.最后,执行步骤s305,将验证集的参考词段数据输入到当前词库模型中,观察验证集准确率收敛情况,同时监控当前词库模型是否发生过拟合现象,并调整当前词库模块的模型参数。进一步地,步骤s305包括:利用测试集和验证集对当前词库模型进行验证,得到最优词库模型,对最优词库模型进行优化处理,得到目标词库模型。在步骤s305中,通过比较不同时刻下的词库模型的综合指标map,选取map指标最高的当前词库模型作为最优词库模型,进而对最优词库模型进行优化处理,得到目标词库模型,,将目标词库模型用于对每一文本词段进行位置识别,得到每一文本词段的目标位置,能够提高识别精确度。
107.请参阅图4,在一些实施例中,步骤s104可以包括但不限于包括步骤s401至步骤s402:
108.步骤s401,根据目标位置,对每一文本词段进行归一化处理,得到标准词段;
109.步骤s402,对标准词段进行独热编码,得到文本词段向量。
110.具体地,目标位置为文本词段的index位置。在一些实施例的步骤s401中,根据每一文本词段的index位置,从原始文本中分别提取每一文本词段,将每一文本词段进行线性缩放至[

1,1],或者将每一文本词段都放缩至均值为0,方差为1,以实现对每一文本词段的归一化处理,得到标准词段。
[0111]
需要说明的是,独热编码即one

hot编码,又称一位有效编码。其方法是使用n位状态寄存器来对n个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候只有一
位状态有效。
[0112]
在一些实施例的步骤s402中,通过独热编码可以将标准词段的长度表示为向量形式,得到多个文本词段向量。例如,假设某个原始文本由3个文本词段组成,通过前述步骤可以获得这3个文本词段的index位置。one

hot编码就是对每一文本词段使用长度为v的向量表示,这个v就是目标词库模型中与文本词段对应的字典词的个数。向量把原始文本中出现了文本词段的index位置标记为1,其他都为0,假设某个句子由3个文本词段组成,那么这个向量里就有3个1,这个1的位置可以和文本词段的index位置对应。
[0113]
通过上述实施例的步骤s104能够较为方便地根据目标位置对每一文本词段进行编码处理,得到文本词段向量,以通过该文本词段向量得到目标词嵌入向量。
[0114]
请参阅图5,在一些实施例中,步骤s105还可以包括但不限于包括步骤s501至步骤s502:
[0115]
步骤s501,将文本词段向量输入到对比模型中,以使文本词段向量与参考词嵌入矩阵进行矩阵相乘,得到多个基本词嵌入向量;
[0116]
步骤s502,对基本词嵌入向量进行映射处理,得到目标词嵌入向量。
[0117]
具体地,执行步骤s501,通过训练对比模型可以使得对比模型内的参考词嵌入矩阵的数值将被完全固定下来,对比模型的其他模型参数也被固定。因而,将文本词段向量输入到对比模型中,可以利用固定的参考词嵌入矩阵与每一文本词段向量进行矩阵相乘,得到基本词嵌入向量。
[0118]
进而,可以执行步骤s502,利用对比模型中固定的mlp网络对基本词嵌入向量进行映射处理,得到目标词嵌入向量。其中,mlp网络包括linear层、relu激活函数以及linear层。
[0119]
请参阅图6,在一些实施例,在步骤s105之前,该方法还包括训练对比模型,具体可以包括但不限于包括步骤s601至步骤s605:
[0120]
步骤s601,获取样本数据;
[0121]
步骤s602,对样本数据进行数据增强处理,得到正例对;
[0122]
步骤s603,将正例对输入到对比学习模型;
[0123]
步骤s604,通过对比学习模型的损失函数计算出正例对的第一相似度和负例对的第二相似度;
[0124]
步骤s605,根据第一相似度和第二相似度对对比学习模型的损失函数进行优化,以更新对比学习模型。
[0125]
具体地,首先将样本数据映射至嵌入空间、并对样本数据进行向量表示,从而可以得到初始嵌入数据(即初始embedding数据),该初始嵌入数据包括正样本数据和负样本数据。
[0126]
在一些实施例的步骤s602中,通过dropout mask机制对初始嵌入数据进行数据增强处理;本技术实施例通过dropout mask机制替换了传统的数据增强方法,即将同一个样本数据两次输入dropout编码器得到的两个向量作为对比学习的正例对,效果就足够好了,因为比如bert内部每次dropout都随机会生成一个不同的dropout mask,所以只需要将同一个样本数据(即本实施例的初始嵌入数据)输入至simcse模型两次,得到的两个向量就是应用两次不同dropout mask的结果了。可以理解的是,dropout mask,是一种网络模型的随
机,是对模型参数w的mask,起到防止过拟合的作用。
[0127]
在一个batch中,经过数据增强处理得到的数据(即第一向量和第二向量)是正例对,未经过数据增强的其他数据为负例对。本技术实施例中,可以将一个batch中的其中一部分初始嵌入数据经过数据增强处理得到正例对,另一部分初始嵌入数据作为负例对。
[0128]
在一些实施例中,通过随机采样dropout mask来生成正例对。
[0129]
在一些具体应用场景中,在进行对比学习的阶段,采用典型的batch内的对比学习方法,在batch内部进行数据增强处理,即将上述得到的完整的初始embedding数据进行数据增强处理,让正例的两个样本(第一样本数据和第二样本数据)有所差异。本技术实施例直接把dropout当作数据增强,即通过随机采样dropout mask来生成正例对,更具体地,将同一个样本重复两次输入到同一个带dropout编码器中(即相同的第一样本数据和第二样本数据分别输入至dropout编码器进行数据增强处理),从而可以得到两个不同的表示向量x(第一向量)和x

(第二向量),将第一向量与第二向量作为一个正例对<x,x

>。实际中,<x,x

>的句向量是不一样的,但是因为输入的句子是相同的,最后句向量的语义期望是相同的,因此作为正例对,让模型去拉近它们之间的距离。
[0130]
在一些实施例的步骤s604中,第一相似度和第二相似度均为余弦相似度,根据第一相似度和第二相似度对对比学习模型的损失函数进行优化,可以包括但不限于包括:
[0131]
将第一相似度最大化为第一数值和将第二相似度最小化为第一数值,以对损失函数进行优化;其中,第一相似度为损失函数的分子,第一相似度和第二相似度为损失函数的分母,第一数值取值为1,第二数值取值为0。该损失函数中,分子是对应正例对的第一相似度,分母是第一相似度以及所有负例对的第二相似度,然后将分子和分母构成的分子式值包装在

log()中,这样最大化分子且最小化分母,就能实现最小化损失函数。本色很实施例中,最小化损失函数infonce loss,就是最大化分子且最小化分母,也就是最大化正例对的第一相似度且最小化负例对的第二相似度,并对该损失函数进行最小化,实现对损失函数的优化。更具体地,损失函数为公式(1)所示:
[0132][0133]
其中,是f(x)的转置,f(x)是原样本,f(x
+
)是正例样本,f(x
j
)是单个负例样本,然后把负例样本全部累加起来,分母项包括一个正例样本,和n

1个负例样本;
[0134]
该损失函数表示的是样本n的损失(loss);该损失函数中,分子是正例对的相似度,分母是正例对以及所有负例对的相似度,然后将该值包装在

log()中,这样最大化分子且最小化分母,就能实现最小化损失函数。
[0135]
需要说明的是,正例对的相似度(第一相似度)与负例对的相似度(第二相似度)满足条件:
[0136]
score(f(x),f(x
+
))>>score(f(x),f(x

))
ꢀꢀꢀ
公式(2)
[0137]
通过上式可知,该方法需要满足:正例对的相似度大于或等于负例对的相似度,这里x
+
指的是与x相似的数据,即正样本对数据;这里x

指的是与x不相似的数据,即负样本对数据,f(x
+
)是正例样本,f(x

)是负例样本。
[0138]
进一步地,预设的度量函数为:
[0139][0140][0141]
其中,score是一个度量函数,用于评价两个特征之间的相似性。预设的度量函数为使用点积作为分数函数的函数。
[0142]
具体地,在一些实施例的步骤s605中,根据第一相似度和第二相似度对对比学习模型的损失函数进行优化,可以包括但不限于包括:
[0143]
根据损失函数进行反向传播,更新损失函数的损失参数,以对损失函数进行优化。
[0144]
本技术实施例,根据损失函数进行反向传播,以通过优化损失函数更新对比学习模型,更新对比学习模型的内部参数(也即损失参数)。可以理解的是,反向传播原理可以应用常规的反向传播原理,本技术实施例不做限定。
[0145]
在一些实施例中,步骤s106可以包括但不限于包括以下步骤:
[0146]
利用余弦相似度算法对多个目标词嵌入向量进行相似度计算,得到每两个文本词段之间的相似度值。
[0147]
具体地,在计算每两个文本词段之间的相似度值时,假设其中一个文本词段的目标嵌入向量为u,另一个文本词段的目标嵌入向量为v,则根据余弦相似度算法的公式(如公式5所示),计算这两个文本词段的相似度值。
[0148][0149]
本技术实施例通过获取待计算的原始文本,利用预先训练的文本分词模型对原始文本进行分词处理,得到多个文本词段,这一方式能够实现对原始文本的片段化处理,使得更为方便提取到所需要的文本词段;进而利用预先训练的目标词库模型对每一文本词段进行位置识别,得到每一文本词段的目标位置,能够较为准确地对每一文本词段进行位置识别。这样一来,便可进一步地根据目标位置对每一文本词段进行编码处理,得到文本词段向量,将文本词段向量输入至预先训练的对比模型中,使文本词段向量与对比模型中的参考词嵌入矩阵进行矩阵相乘,得到目标词嵌入向量,最后对多个目标词嵌入向量进行文本相似度计算,得到每两个文本词段之间的相似度值,通过对比模型能够有效地解决词段向量分布均匀的问题,从而提高相似度计算的准确性,该方法能够更为准确地确定文本词段之间的相关性。
[0150]
请参阅图7,本技术实施例还提供一种文本相似度计算装置,可以实现上述文本相似度计算方法,该装置包括:
[0151]
文本获取模块701,用于获取待计算的原始文本;
[0152]
分词模块705,用于利用预先训练的文本分词模型对原始文本进行分词处理,得到多个文本词段;
[0153]
位置识别模块703,用于利用预先训练的目标词库模型对每一文本词段进行位置识别,得到每一文本词段的目标位置;
[0154]
编码模块704,用于根据目标位置对每一文本词段进行编码处理,得到文本词段向量;
[0155]
对比模块705,用于将文本词段向量输入至预先训练的对比模型中,以使文本词段
向量与对比模型中的参考词嵌入矩阵进行矩阵相乘,得到目标词嵌入向量;
[0156]
相似度计算模块706,用于对多个目标词嵌入向量进行相似度计算,得到每两个文本词段之间的相似度值。
[0157]
该文本相似度计算装置的具体实施方式与上述文本相似度计算方法的具体实施例基本相同,在此不再赘述。
[0158]
本技术实施例还提供了一种电子设备,电子设备包括:存储器、处理器、存储在存储器上并可在处理器上运行的程序以及用于实现处理器和存储器之间的连接通信的数据总线,程序被处理器执行时实现上述文本相似度计算方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
[0159]
请参阅图8,图8示意了另一实施例的电子设备的硬件结构,电子设备包括:
[0160]
处理器801,可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术实施例所提供的技术方案;
[0161]
存储器802,可以采用只读存储器(readonlymemory,rom)、静态存储设备、动态存储设备或者随机存取存储器(randomaccessmemory,ram)等形式实现。存储器802可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器802中,并由处理器801来调用执行本技术实施例的文本相似度计算方法;
[0162]
输入/输出接口803,用于实现信息输入及输出;
[0163]
通信接口804,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信;和
[0164]
总线805,在设备的各个组件(例如处理器801、存储器802、输入/输出接口803和通信接口804)之间传输信息;
[0165]
其中处理器801、存储器802、输入/输出接口803和通信接口804通过总线805实现彼此之间在设备内部的通信连接。
[0166]
本技术实施例还提供了一种计算机可读存储介质,用于计算机可读存储,计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述文本相似度计算方法。
[0167]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0168]
本技术实施例描述的实施例是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
[0169]
本领域技术人员可以理解的是,图1

6中示出的技术方案并不构成对本技术实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
[0170]
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0171]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
[0172]
本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0173]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0174]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0175]
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0176]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0177]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例的方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介
质。
[0178]
以上参照附图说明了本技术实施例的优选实施例,并非因此局限本技术实施例的权利范围。本领域技术人员不脱离本技术实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本技术实施例的权利范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1