CN111274808A - 文本检索方法、模型训练方法、文本检索装置及存储介质 - Google Patents
文本检索方法、模型训练方法、文本检索装置及存储介质 Download PDFInfo
- Publication number
- CN111274808A CN111274808A CN202010086368.XA CN202010086368A CN111274808A CN 111274808 A CN111274808 A CN 111274808A CN 202010086368 A CN202010086368 A CN 202010086368A CN 111274808 A CN111274808 A CN 111274808A
- Authority
- CN
- China
- Prior art keywords
- text
- word
- training
- vector
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012549 training Methods 0.000 title claims abstract description 241
- 238000000034 method Methods 0.000 title claims abstract description 84
- 239000013598 vector Substances 0.000 claims abstract description 233
- 230000011218 segmentation Effects 0.000 claims abstract description 17
- 230000009466 transformation Effects 0.000 claims description 42
- 230000004927 fusion Effects 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 19
- 238000012935 Averaging Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 12
- 238000004821 distillation Methods 0.000 claims description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 2
- 230000001902 propagating effect Effects 0.000 claims description 2
- 238000013527 convolutional neural network Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/355—Class or cluster creation or modification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书涉及一种文本检索方法包括:对接收的第一文本进行分词,得到至少一个词语;根据所述至少一个词语从知识库中召回至少一个第二文本;将所述至少一个词语输入经过训练的文本向量模型,得到所述第一文本的文本向量;根据所述第一文本的向量从所述知识库中召回至少一个第三文本;以及将所述至少一个第二文本和所述至少一个第三文本进行融合,得到文本检索结果。本说明书还提供了词权重模型和文本向量模型的训练方法、文本检索装置、电子设备以及计算机可读存储介质。
Description
技术领域
本说明书涉及自然语言处理技术领域,尤其涉及一种文本检索方法、模型训练方法、文本检索装置、电子设备以及计算机可读存储介质。
背景技术
文本检索(Text Retrieval)亦称为自然语言检索,是指根据文本内容,如文本所包含的词语、语意等对文本集合进行检索、分类、过滤等处理。文本检索与图像检索、声音检索、图片检索等都是信息检索的一部分。通常,文本检索的结果可以通过准确率和召回率这两大基本指标进行衡量。其中,准确率通常是指检索到的相关文档除以所有被检索到的文档得到的比率;召回率也称查全率,通常是指检索出的相关文档与相关文档总数的比率。因此,如何提高文本检索的准确率或召回率是文本检索需要解决的关键问题。
发明内容
有鉴于此,本说明书的实施例提出了一种文本检索方法,该方法可以包括:对接收的第一文本进行分词,得到至少一个词语;根据所述至少一个词语从知识库中召回至少一个第二文本;将所述至少一个词语输入经过训练的文本向量模型,得到所述第一文本的文本向量;根据所述第一文本的向量从所述知识库中召回至少一个第三文本;以及将所述至少一个第二文本和所述至少一个第三文本进行融合,得到文本检索结果。
在本说明书的实施例中,上述根据所述至少一个词语从知识库中召回至少一个第二文本可以包括:分别确定所述至少一个词语的词权重;根据所述至少一个词语的词权重从所述至少一个词语中确定至少一个关键词;以及根据所述至少一个关键词从知识库中召回至少一个第二文本。
在本说明书的实施例中,上述分别确定所述至少一个词语的词权重可以包括:将所述至少一个词语分别输入经过训练的词权重模型,得到所述至少一个词语的词权重。
在本说明书的实施例中,上述词权重模型可以包括:编码器以及线性变换层;其中,所述编码器分别对所述至少一个词语进行编码,得到所述至少一个词语的词向量;所述线性变换层分别将所述至少一个词语的词向量进行线性变换,得到所述至少一个词语的词权重。
在本说明书的实施例中,上述分别确定至少一个词语的词权重可以包括:根据词频-逆文本频率指数TF-IDF算法确定所述至少一个词语的词权重。
在本说明书的实施例中,上述将所述至少一个第二文本和所述至少一个第三文本进行融合可以包括:将所述至少一个第二文本和所述至少一个第三文本求并集,得到所述文本检索结果。
在本说明书的实施例中,上述将所述至少一个第二文本和所述至少一个第三文本进行融合可以包括:将所述至少一个第二文本和至少一个第三文本分别输入经过训练的文本向量模型,确定所述至少一个第二文本的文本向量和所述至少一个第三文本的文本向量;将所述至少一个第二文本的文本向量求平均,得到第二文本的平均向量,并对所述第二文本的平均向量进行线性变换,得到第二文本的平均权重;将所述至少一个第三文本的文本向量求平均,得到第三文本的平均向量,并对所述第三文本的平均向量进行线性变换,得到第三文本的平均权重;响应于所述第二文本的平均权重大于或等于所述第三文本的平均权重,确定所述至少一个第二文本为所述文本检索结果;以及响应于所述第二文本的平均权重值小于所述第三文本的平均权重,确定所述至少一个第三文本为所述文本检索结果。
本说明书的实施例提出了一种训练词权重模型的方法,该方法可以包括:
获取训练数据,所述训练数据包括多个训练文本以及每一个训练文本对应的已知输出;其中,每一个训练文本包括至少一个第二词语;所述已知输出为所述至少一个第二词语的词权重;
针对每个训练文本,将所述训练文本经分词后得到的至少一个第二词语输入所述编码器,根据编码器的参数的当前值生成所述至少一个第二词语的词向量;将所述至少一个第二词语的词向量输入线性变换层,根据所述线性变换层的参数的当前值生成所述至少一个第二词语的词权重,并将所述至少一个第二词语的词权重作为所述训练文本的预测输出;根据所述训练文本的预测输出和已知输出之间的误差确定一个梯度;将所述梯度反向传播给所述编码器和所述线性变换层以联合地调整所述编码器和所述线性变换层的参数的当前值。
本说明书的实施例提出了一种训练文本向量模型的方法,可以包括:
获取第二训练数据,所述第二训练数据包括多组训练文本对及每一个训练文本对对应的已知输出;其中,每一个训练文本对包括第一训练文本和第二训练文本;所述已知输出为所述第一训练文本和第二训练文本的匹配度;
针对每个训练文本对,将训练文本对的第一训练文本和第二训练文本分别输入文本向量模型,根据所述文本向量模型的参数的当前值生成所述第一训练文本对应的第一训练文本向量和第二训练文本对应的第二训练文本向量;根据所述第一训练文本向量和第二训练文本向量确定所述第一训练文本和第二训练文本的匹配度,将所述匹配度作为所述训练文本对的预测输出;根据所述训练文本对的预测输出和已知输出之间的误差确定一个梯度;将所述梯度反向传播给所述文本向量模型以调整所述文本向量模型的参数的当前值。
本说明书的实施例提出了一种训练文本向量模型的方法,可以包括:
获取第二训练数据,所述第二训练数据包括多组训练文本对及每一个训练文本对对应的已知输出;其中,每一个训练文本对包括第一训练文本和第二训练文本;所述已知输出为所述第一训练文本和第二训练文本的匹配度;
针对每个训练文本对,将所述训练文本对中的第一训练文本和第二训练文本分别输入BERT模型,根据所述BERT模型的参数的当前值生成所述第一训练文本对应的第一训练文本向量和第二训练文本对应的第一训练文本向量;根据所述第一训练文本向量和第二训练文本向量确定所述第一训练文本和第二训练文本的匹配度,将所述匹配度作为所述训练文本对的预测输出;根据所述训练文本对的预测输出和已知输出之间的误差确定一个梯度;将所述梯度反向传播给所述BERT模型以调整所述BERT模型的参数的当前值;
在所述BERT模型训练完成后,根据经过训练的BERT模型,使用模型蒸馏训练所述文本向量模型。
在本说明书的实施例中,上述文本向量模型可以包括CNN模型或LSTM模型。
本说明书的实施例提出了一种文本检索装置,该装置可以包括:
分词模块,用于对接收的第一文本进行分词,得到至少一个词语;
词语召回模块,用于根据所述至少一个词语从知识库中召回至少一个第二文本;
文本向量生成模块,用于将所述至少一个词语输入经过训练的文本向量模型,得到所述第一文本的文本向量;
向量召回模块,用于根据所述第一文本的向量从所述知识库中召回至少一个第三文本;以及
融合模块,用于将所述至少一个第二文本和所述至少一个第三文本进行融合,得到文本检索结果。
在本说明书的实施例中,上述词语召回模块包括:
词权重模型,用于将所述至少一个词语分别输入经过训练的词权重模型,得到所述至少一个词语的词权重;
关键词确定单元,用于根据所述至少一个词语的词权重从所述至少一个词语中确定至少一个关键词;以及
词语召回单元,用于根据所述至少一个关键词从知识库中召回至少一个第二文本。
在本说明书的实施例中,上述词权重模型包括:
编码器以及线性变换层;其中,
所述编码器分别对所述至少一个词语进行编码,得到所述至少一个词语的词向量;
所述线性变换层分别将所述至少一个词语的词向量进行线性变换,得到所述至少一个词语的词权重。
在本说明书的实施例中,上述词语召回模块包括:
词权重确定单元,用于根据词频-逆文本频率指数TF-IDF算法确定所述至少一个词语的词权重;
关键词确定单元,用于根据所述至少一个词语的词权重从所述至少一个词语中确定至少一个关键词;以及
词语召回单元,用于根据所述至少一个关键词从知识库中召回至少一个第二文本。
在本说明书的实施例中,上述融合模块包括:
并集单元,用于将所述至少一个第二文本和所述至少一个第三文本求并集,得到所述文本检索结果。
在本说明书的实施例中,上述融合模块包括:
经过训练的文本向量模型,用于对所述至少一个第二文本和至少一个第三文本分别进行编码,确定所述至少一个第二文本的文本向量和所述至少一个第三文本的文本向量;
文本平均权重确定模块,用于将所述至少一个第二文本的文本向量求平均,得到第二文本的平均向量,并对所述第二文本的平均向量进行线性变换,得到第二文本的平均权重;以及将所述至少一个第三文本的文本向量求平均,得到第三文本的平均向量,并对所述第三文本的平均向量进行线性变换,得到第三文本的平均权重;
文件检索结果确定单元,用于响应于所述第二文本的平均权重大于或等于所述第三文本的平均权重,确定所述至少一个第二文本为所述文本检索结果;以及响应于所述第二文本的平均权重值小于所述第三文本的平均权重,确定所述至少一个第三文本为所述文本检索结果。
本说明书的实施例还提供了一种电子设备,可以包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本说明书的实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行实现上述方法。
由此可以看出,通过上述文本检索方法和装置,可以在对用户输入的待检索文本进行分词后,一方面根据分词后的词语进行词语召回,另一方面确定待检索文本的向量并进行向量召回,从而将词语召回的文本检索方式与向量召回的文本检索方式进行结合,在能够检索到词语层面相关文本的基础之上,还可以检索到语义层面的相关文本,也即,在字词级别的文本召回基础之上增加了语义级别的文本召回,使得文本检索的结果更为全面,从而提高文本检索的召回率。
此外,在本说明书的实施例中,在进行词语召回的过程中,可以进一步确定每个词语的词权重,并根据每个词语的词权重从分词后的词语中提取出关键词,也即去除不重要的词语,最终利用关键词在知识库中进行文本检索,从而可以有效去除使用词语检索文本时不重要的词对于文本检索的干扰,减少无效的文本召回,使得检索结果更为准确,从而提高文本检索的准确率。并且,由于在确定每个词语的词权重时是利用的有监督的词权重模型实现的,这些模型是基于大量经过预先标注的数据集训练得到的,因此,所确定的词权重更为准确,从而进一步提高了文本检索的准确率。
进一步,在本说明书的实施例中,通过融合模型可以将词语召回和向量召回两种方式的召回结果进行融合,并保证检索结果中包含与用户输入的第一文本最为匹配的文本,也即包含文本检索的“最佳答案”。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例所述文本检索***100的结构示意图;
图2为本说明书一些实施例所述文本检索方法的流程示意图;
图3为本说明书一些实施例所述根据至少一个词语从知识库中召回至少一个第二文本的流程示意图;
图4为本说明书另一些实施例所述根据至少一个词语从知识库中召回至少一个第二文本的流程示意图;
图5为本说明书一些实施例所述的对至少一个第二文本和至少一个第三文本进行融合的方法流程示意图;
图6为本说明书实施例所述词权重模型的训练方法流程图;
图7显示了本说明书实施例所述的词权重模型的内部结构;
图8为本说明书实施例所述文本向量模型的训练方法流程图;
图9显示了本说明书实施例所述的文本向量模型的内部结构;
图10为本说明书实施例所述文本向量模型的另一种训练方法流程图;
图11显示了本说明书实施例所述的文本向量模型的内部结构;
图12为本说明书实施例所述融合模型的训练方法流程图;
图13显示了本说明书实施例所述的融合模型的内部结构;
图14显示了本说明书实施例所述的文本检索装置的内部结构。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本说明书进一步详细说明。
需要说明的是,除非另外定义,本说明书实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
图1显示了本说明书实施例所述文本检索***100的结构。如图1所示,上述文本检索***100可以包括:至少一个客户端102、服务器(亦可称为文本检索装置)104以及知识库106。
其中,上述客户端102用于为用户提供用户界面,接收用户输入的待检索文本,将上述待检索文本转发至服务器104,并向用户反馈从服务器104接收的针对上述待检索文本的检索结果。
上述服务器104用于接收来自客户端102的用户输入的待检索文本,对上述待检索文本进行一系列处理后,根据处理结果从知识库106召回一定数量文本,从这些文本中确定针对上述待检索文本的检索结果,并将确定的检索结果返回给客户端102。
上述知识库106用于存储预先设置好的大量的文本。通常,知识库106可以被视为一个存储文本的数据库或者数据集,其上存储的文本可以被视为文本检索的一个范围。这个检索的范围对所有的用户可以是相同的,也即不同的用户可以对应同一个知识库。此外,在本说明书的一些实施例中,由于不同的用户对于不同类型信息的关注度不同,因此,也可以为不同的用户设置不同的知识库,也就是说,对于相同的待检索文本,不同的用户从各自对应的知识库中检索到的文本可能是不同的。在本说明书的实施例中,将某个用户进行文本检索的这个范围称为知识库。
图2为本说明书一些实施例所述文本检索方法的流程示意图。该方法可以由图1中的服务器104执行。如图2所示,该方法可以包括:
在步骤202,对接收的第一文本进行分词,得到至少一个词语。
在本说明书的实施例中,上述第一文本可以是用户通过客户端102输入的待检索文本。上述第一文本例如可以是一个问题或者一句话等等。客户端102在接收到上述第一文本后将第一文本发送到服务器104在预先设定的知识库的范围内进行文本检索。
在本说明书的实施例中,可以采用多种方法对上述第一文本进行分词,例如,基于词典的分词方法、基于统计的分词方法、基于规则的分词方法、基于字标注的分词方法、以及基于理解的分词方法等。本说明书实施例所述的文本检索方案对所采用的具体的分词方法不作限定。
在步骤204,根据上述至少一个词语从知识库中召回至少一个第二文本。
在本说明书的实施例中,上述步骤204中的根据至少一个词语从知识库中召回至少一个第二文本可以采用多种方式实现。具体地,可以首先确定上述至少一个词语的词权重;然后,根据确定的词权重确定上述第一文本的关键词;最后,再利用确定的关键词进行文本召回。
图3显示了本说明书一些实施例所述的根据至少一个词语从知识库中召回至少一个第二文本的方法流程。如图3所示,该方法具体可以包括:
在步骤302,将上述至少一个词语分别输入经过训练的词权重模型,得到所述至少一个词语的词权重;
在步骤304,根据上述至少一个词语的词权重从上述至少一个词语中确定至少一个关键词;以及
在步骤306,根据上述至少一个关键词从知识库中召回至少一个第二文本。
在本说明书的实施例中,上述词权重模型可以包括:编码器以及线性变换层;其中,上述编码器分别对上述至少一个词语进行编码,得到上述至少一个词语的词向量;上述线性变换层分别将所述至少一个词语的词向量进行线性变换,得到所述至少一个词语的词权重。
具体地,上述编码器可以通过多种机器学习模型实现,例如可以由经过训练的BERT模型、卷积神经网络(CNN)模型或长短期记忆模型(LSTM)中的至少一种来实现。上述经过训练的编码器可以将经过分词得到的多个词语分别编码为多个词向量,并且具有比较好的性能。关于上述编码器的训练方法将在后文中进行详细描述。
在本说明书的实施例中,设置上述线性变换层的目的是使用一个数值来表征每个词语的词向量,且该数值可以表征该词语的重要程度。
在本说明书的一些实施例中,上述线性变换层可以为1×N或N×1的系数矩阵;其中,N为所述至少一个词语的词向量的维数。在这种情况下,上述经过训练的线性变换层可以对一个词向量进行线性变换从而得到一个实数值,并可以直接将该实数值作为该词语的词权重。
在本说明书的另一些实施例中,在上述系数矩阵的基础之上,上述线性变换层还可以进一步包括一个归一化单元,用于对上述实数值进行归一化从而得到取值范围在[0,1]的词权重。为了描述方便,在本说明书的实施例中可以将上述实数值称为词语的词权重数值。上述归一化单元可以采用多种方法实现,例如,可以利用S型生长曲线(Sigmoid)对所述至少一个词语对应的词权重数值进行归一化。经过上述归一化处理后,每个词语的词权重的取值范围都是[0,1]。这样,对于词语的重要程度可以更好的进行横向比较,因此,在实际应用中这样的词权重使用起来更为方便。
在本说明书的一些实施例中,当词语的词权重是一个实数值而没有经过归一化处理时,可以先利用上述至少一个词语的词权重的平均值确定一个关键词阈值,例如,该关键词阈值可以为上述至少一个词语的词权重的平均值。当一个词语的词权重大于或等于该关键词阈值时,则确定该词语为关键词。
在本说明书的另一些实施例中,当词语的词权重是经过归一化处理的取值范围是[0,1]的数值时,可以预先给定一个关键词阈值,例如0.5。当一个词语的词权重大于或等于该关键词阈值时,则确定该词语为关键词。
图4显示了本说明书一些实施例所述的根据至少一个词语从知识库中召回至少一个第二文本的方法流程。如图4所示,该方法具体可以包括:
在步骤402,根据词频-逆文本频率指数(TF-IDF)算法确定上述至少一个词语的词权重;
在步骤404,根据上述至少一个词语的词权重从上述至少一个词语中确定至少一个关键词;以及
在步骤406,根据上述至少一个关键词从知识库中召回至少一个第二文本。
在本说明书的实施例中,从上述图3和4可以看出,上述词语召回可以通过关键词匹配来实现。这是由于,在知识库中存储的文本都预先标注有该文本对应的一个或多个关键词,因此,在上述步骤306和406中,可以通过多种关键词匹配方法在上述知识库中找到关键词与上述第一文本的至少一个关键词匹配的多个文本,并根据预先设置的打分策略对搜索到的多个文本进行打分,并将分值最高的多个文本作为召回结果(也即第二文本)返回给客户端102。需要说明的是,上述返回的第二文本的个数也可以是预先设置的。本说明书的实施例对服务器104具体使用的关键词匹配方法不作限定。在本说明书的实施例中,将上述文本召回方式简称为词语召回。
需要说明的是,上述在知识库中存储的文本的关键词可以是预先标注好的,例如通过人工标注或者其他方式标注等等,当然也可以是通过本说明书给出的上述词权重模型预先确定知识库中各个文本的关键词并对文本进行标注。
从上述实施例可以看出,通过上述词语召回方法可以在对用户输入的待检索文本进行分词后,确定每个词语的词权重,并根据每个词语的词权重从分词后的词语中提取出关键词,也即去除不重要的词语,最终利用关键词在知识库中进行文本检索,从而可以有效去除使用词语检索文本时不重要的词对于文本检索的干扰,减少无效的文本召回,使得检索结果更为准确,从而提高文本检索的准确率。并且,由于本说明书的一些实施例在确定每个词语的词权重时是利用的有监督的词权重模型实现的,这些模型是基于大量经过预先标注的数据集训练得到的,因此,所确定的词权重更为准确,从而进一步提高了文本检索的准确率。
在步骤206,将上述至少一个词语输入经过训练的文本向量模型,得到所述第一文本的文本向量。
在本说明书的实施例中,上述文本向量模型可以通过多种机器学习模型实现,例如可以由经过训练的BERT模型、CNN模型或LSTM模型中的至少一种实现。
上述经过训练的文本向量模型可以将经过分词得到的多个词语编码为一个文本向量,并且具有比较好的性能。关于上述文本向量模型的训练方法将在后文中进行详细描述。
在步骤208,根据上述第一文本的向量从上述知识库中召回至少一个第三文本。
在本说明书的实施例中,上述知识库中存储的文本均已经提取了文本向量并且预先建立了向量索引,因此,在上述步骤208中,可以根据确定的第一文本的向量利用向量索引进行向量搜索从知识库存储的文本中找到文本向量与第一文本的文本向量匹配的多个文本,并根据预先设置的打分策略对搜索到的多个文本进行打分,并将分值最高的多个文本作为召回结果(也即第三文本)返回给客户端102。需要说明的是,上述返回的第三文本的个数也可以是预先设置的。对于利用向量索引进行向量搜索方法有很多种,例如,可以利用HNSW算法或利用Elasticsearch搜索引擎等等实现。本说明书的实施例对服务器104具体使用的利用向量索引进行向量搜索方法不作限定。在本说明书的实施例中,将上述步骤206-208所述的文本召回方式简称为向量召回。
需要说明的是,上述步骤204和步骤206-208可以是并列执行的两个过程,上述步骤标号的顺序并不代表执行上的先后顺序。
在步骤210,在获取了上述至少一个第二文本和至少一个第三文本之后,服务器104还可以对上述至少一个第二文本和至少一个第三文本进行融合,得到文本检索结果。
在本说明书的实施例中,上述融合也可以采用多种方法实现。
在本说明书的一些实施例中,服务器104可以将上述至少一个第二文本和上述至少一个第三文本求并集,也即进行去重处理,得到上述文本检索结果。
在本说明书的另一些实施例中,服务器104可以利用一个融合模型实现上述融合,具体的融合过程可以如图5所示,包括:
在步骤502,将上述至少一个第二文本和至少一个第三文本分别输入经过训练的文本向量模型,确定所述至少一个第二文本的文本向量和所述至少一个第三文本的文本向量。
在本说明书的实施例中,上述文本向量模型可以是上述步骤206所述的文本向量模型。
在步骤504,将上述至少一个第二文本的文本向量求平均,得到第二文本的平均向量,并对上述第二文本的平均向量进行线性变换,得到第二文本的平均权重。
在步骤506,将上述至少一个第三文本的文本向量求平均,得到第三文本的平均向量,并对上述第三文本的平均向量进行线性变换,得到第三文本的平均权重。
在步骤508,响应于上述第二文本的平均权重大于或等于上述第三文本的平均权重,将上述至少一个第二文本作为文本检索结果;以及响应于上述第二文本的平均权重值小于上述第三文本的平均权重,将上述至少一个第三文本作为文本检索结果。
在本说明书的实施例中,对上述第二文本的平均向量和第三文本的平均向量进行线性变换的操作可以通过一个经过训练的线性变换模型来实现。训练该线性变换模型的目标是令包含与上述第一文本最匹配的文本的一组文本的平均权重大于其他组文本的平均权重,也即包含“最佳答案”的文本的那组文本的平均权重最大,因此,通过上述方法可以根据第二文本和第三文本的平均权重选择平均权重更大的一组文本作为检索结果输出,从而可以保证该组文本中包括与上述第一文本最为匹配的文本,也即包含文本检索的“最佳答案”,从而确保用户可以获得最佳的文本检索结果。
由此可以看出,本说明书的上述实施例可以将词语召回的文本检索方式与向量召回的文本检索方式进行结合,能够检索到词语层面相关文本,还可以检索到语义层面的相关文本,也即,在字词级别的文本召回基础之上增加了语义级别的文本召回,使得文本检索的结果更为全面,从而提高文本检索的召回率。
进一步,如前所述,通过上述融合模型,可以保证检索结果中包含与上述第一文本最为匹配的文本,也即包含文本检索的“最佳答案”。
下面结合具体示例详细说明上述各个模型的训练方法。
图6显示了对本说明书实施例所述词权重模型进行训练的方法流程。如图6所示,该方法可以包括:
在步骤602,获取训练数据,所述训练数据包括多个训练文本以及每一个训练文本对应的已知输出,其中,每个训练文本包括至少一个第二词语;上述已知输出为上述至少一个第二词语的词权重。
在本说明书的实施例中,上述每个训练文本包括的第二词语均标注有重要度标签,该重要度标签标识该词语的重要程度。此时,上述已知输出可以具体为:上述至少一个第二词语的重要程度。
下面针对每个训练文本,分别执行如下的步骤604-610:
在步骤604,将所述训练文本包括的至少一个第二词语输入所述编码器,根据所述编码器的参数的当前值生成所述至少一个第二词语的词向量;
在步骤606,将所述至少一个第二词语的词向量输入所述线性变换层,根据所述线性变换层的参数的当前值生成所述至少一个第二词语的词权重,作为所述训练文本的预测输出;
在步骤608,根据所述训练文本的预测输出和已知输出之间的误差确定一个梯度;以及
在步骤610,将所述梯度反向传播给所述编码器和所述线性变换层以联合地调整所述编码器和所述线性变换层的参数的当前值。
如前所述,上述已知输出可以具体为:上述至少一个第二词语的重要程度,因此,当预测输出和上述已知输出不符时,将视为本次训练结果为一次“惩罚”,并据此调整模型参数的当前值;而当预测输出和上述已知输出相符时,将视为本次训练结果为一次“奖励”,并据此调整模型参数的当前值。
当训练达到预定的次数或者模型收敛时则可以结束上述训练过程。
图7显示了本说明书实施例所述的词权重模型的内部结构。如图7所示,该词权重模型可以包括:
输入层702,用于接收至少一个词语及其对应的已知输出。例如,在图6中,上述至少一个词语包括:“我的”、“钱”、“丢了”、“该”、“怎么办”以及“呢”六个词语,其中,“钱”和“丢了”是标注为重要的词语,具有较高的词权重。在图6中使用阴影框表示标注为重要的词语。
编码器704,用于将上述至少一个词语进行编码,输出上述至少一个词语的词向量。例如,图7所示的词向量1~词向量6。
线性变换层706,用于对上述至少一个词语的词向量进行线性变换,得到上述至少一个词语的词权重,作为预测输出。
例如,图7所示的词权重1~词权重6。
比较层708,用于根据所述预测输出和已知输出之间的误差确定一个梯度;并将所述梯度反向传播给所述编码器704和所述线性变换层706以调整所述编码器704和所述线性变换层706的参数的当前值。例如,在图7中,已知输出为词语“钱”和“丢了”的词权重应当大于“我的”、“该”、“怎么办”以及“呢”,因此,上述比较层708会将预测输出与该已知输出进行比较,并根据二者之间的误差联合调整编码器704和线性变换层706。
如前所述,上述编码器704可以通过BERT模型、CNN模型以及LSTM模型中的至少一种实现。而上述线性变换层706可以具体为一个1×N或N×1的系数矩阵,其中,N为上述词向量的维度。或者上述线性变换层706可以具体包括一个1×N或N×1的系数矩阵以及一个归一化单元。
可以看出,在训练完成后,上述词权重模型输出的词权重可以准确地表示该词语的重要程度。
图8显示了对本说明书实施例所述文本向量模型进行训练的方法流程。如图8所示,该方法可以包括:
在步骤802,获取第二训练数据,所述第二训练数据包括多组训练文本对及每一个训练文本对对应的已知输出。
在本说明书的实施例中,上述每个训练文本对均含有该训练文本对的匹配度标签。此时,上述已知输出可以具体为:模型输出的训练文本对的匹配度与该训练文本对的匹配度标签应当一致。也即,匹配度标签标识该训练文本对为匹配时,模型输出的训练文本对的匹配度应当大于预定的阈值;而匹配度标签标识该训练文本对为不匹配时,模型输出的训练文本对的匹配度应当小于或等于预定的阈值。
针对每个训练文本对,分别执行如下的步骤804-810:
在步骤804,将所述训练文本对中的第一训练文本和第二训练文本分别输入文本向量模型,根据所述文本向量模型的参数的当前值生成所述第一训练文本对应的第一训练文本向量和第二训练文本对应的第二训练文本向量;
在步骤806,根据所述第一训练文本向量和第二训练文本向量确定所述第一训练文本和第二训练文本的相关度,作为所述训练文本对的预测输出;
在步骤808,根据所述训练文本对的预测输出和已知输出之间的误差确定一个梯度;以及
在步骤810,将所述梯度反向传播给所述文本向量模型以调整所述文本向量模型的参数的当前值。
如前所述,上述已知输出可以具体为:模型输出的训练文本对的匹配度与该训练文本对的匹配度标签应当一致,因此,当预测输出和上述已知输出不符时,将视为本次训练结果为一次“惩罚”,并据此调整模型参数的当前值;而当预测输出和上述已知输出相符时,将视为本次训练结果为一次“奖励”,并据此调整模型参数的当前值。
当训练达到预定的次数或者模型收敛时则可以结束上述训练过程。
图9显示了本说明书实施例所述的文本向量模型的内部结构。如图9所示,该文本向量模型可以包括:
第二输入层902,用于接收一个文本对及其对应的已知输出。例如,在图9中,上述文本对中第一个文本为“我的钱丢了该怎么办呢”;第二个文本为“她的书包丢了该怎么办呢”:并且,该文本对的匹配度标签为不匹配。
第二编码器904,用于将上述文本对中的文本分别进行编码,输出两个文本向量。例如,图9所示的文本向量1和文本向量2。
匹配度计算层906,用于确定上述两个文本向量的匹配度,作为预测输出。
第二比较层908,用于根据所述预测输出和已知输出之间的误差确定一个梯度;并将所述梯度反向传播给所述编码器以调整所述编码器的参数的当前值。
例如,在图9中,已知输出为文本对“我的钱丢了该怎么办呢”和“她的书包丢了该怎么办呢”是不匹配的,因此,上述第二比较层908会将预测输出与该已知输出进行比较,并根据二者之间的误差联合调整第二编码器904。
如前所述,上述第二编码器904可以通过BERT模型、CNN模型以及LSTM模型中的至少一种实现。
可以看出,在训练完成后,上述文本向量模型可以将一个文本编码为一个文本向量,并且该文本向量可以准确地表达该文本的语义。
图10显示了对本说明书所述文本向量模型进行训练的另一种方法流程。如图10所示,该方法可以包括:
在步骤1002,获取第二训练数据,所述第二训练数据包括多组训练文本对及每一个训练文本对对应的已知输出;
针对每个训练文本对,执行如下步骤1004-1010:
在步骤1004,将所述训练文本对中的第一训练文本和第二训练文本分别输入BERT模型,根据所述BERT模型的参数的当前值生成所述第一训练文本对应的第一训练文本向量和第二训练文本对应的第一训练文本向量;
在步骤1006,根据所述第一训练文本向量和第二训练文本向量确定所述第一训练文本的文本向量和第二训练文本的文本向量的相关度,作为所述训练文本对的预测输出;
在步骤1008,根据所述训练文本对的预测输出和已知输出之间的误差确定一个梯度;
在步骤1010,将所述梯度反向传播给所述BERT模型以调整所述文本向量模型的参数的当前值。
上述步骤1002-1010的具体实现可以参考上述步骤802-810。
在步骤1012,在所述BERT模型训练完成后,根据经过训练的BERT模型,使用模型蒸馏方法训练文本向量模型。
在本说明书的实施例,上述文本向量模型可以由CNN模型或LSTM模型等相对简单的机器学习模型实现。
使用模型蒸馏的原因是由于BERT模型结构比较复杂,在使用过程中会消耗相对校多的资源且计算所需时间也比较长。为了在应用中快速地实现文本的向量化,可以仅应用上述BERT模型进行模型训练,并在BERT模型训练完成后,使用结构上相对简单且运算速度更快的CNN模型或LSTM模型通过模型蒸馏的方式快速学习已经完成训练的BERT模型。并在实际的应用中使用通过模型蒸馏方式进行训练的CNN模型或LSTM模型来对输入的文本进行编码得到文本向量,从而可以达到BERT模型的效果。具体而言,在模型蒸馏过程中,可以向CNN模型或LSTM模型和训练好的BERT模型输入同样的文本,然后,通过蒸馏学习方式利用CNN模型或LSTM模型输出的向量和BERT模型输出的向量之间的误差来调整CNN模型或LSTM模型参数,从而完成CNN模型或LSTM模型的训练。
图11本说明书实施例所述的文本向量模型的内部结构。如图11所示,除了上述第二输入层902、第二编码器904、匹配度计算层906以及第二比较层908之外,该文本向量模型还可以包括:文本向量模型910,用于通过模型蒸馏的方式学习上述编码器904。如前所述,上述第二编码器904可以为BERT模型,而上述文本向量模型910可以是CNN模型或LSTM模型。
在本说明书的实施例中,为了通过模型蒸馏的方式训练上述文本向量模型910,可以向文本向量模型910和训练好的BERT模型输入同样的文本,例如,“我的钱丢了该怎么办呢”;然后,通过蒸馏学习方式,根据文本向量模型910输出的文本向量(例如图11中的文本向量3)和BERT模型输出的文本向量(例如图11中的文本向量2)之间的误差来调整文本向量模型910的参数,从而完成文本向量模型910的训练。
图12显示了对本说明书所述融合模型进行训练的一种方法流程。如图12所示,该方法可以包括:
在步骤1202,获取第三训练数据,所述第三训练数据包括多对训练文本组以及每一对训练文本组对应的已知的输出;
在本说明书的实施例中,上述每一对训练文本组均包括至少两个训练文本组:第一训练文本组和第二训练文本组,并且在其中一个训练文本组中有一个文本标注有标签。此时,上述已知输出可以具体为:模型输出的包含有标签文本的训练文本组的平均权重应当大于其他训练文本组的平均权重。
针对每一对训练文本组,分别执行下述步骤1204-1214:
在步骤1204,将其中第一训练文本组和第二训练文本组分别输入经过训练的文本向量模型,确定所述第一训练文本组中每个训练文本的文本向量和所述第二训练文本组中每个训练文本的文本向量;
在步骤1206,将所述第一训练文本组中每个训练文本的文本向量求平均,得到第一训练文本组的平均向量;
在步骤1208,将所述第二训练文本组中每个训练文本的文本向量求平均,得到第二训练文本组的平均向量;
在步骤1210,将所述第一训练文本组的平均向量和所述第二训练文本组的平均向量分别输入一个线性变换模型,根据所述线性变换模型的参数的当前值生成第一训练文本组的平均权重和第二训练文本组的平均权重,作为这一对训练文本组的预测输出;
在步骤1212,根据所述预测输出和已知输出之间的误差确定一个梯度;
在步骤1214,将所述梯度反向传播给所述线性变换模型以调整所述线性变换模型的参数的当前值。
如前所述,上述已知输出可以具体为:模型输出的包含有标签文本的训练文本组的平均权重应当大于其他训练文本组的平均权重,因此,当预测输出和上述已知输出不符时,将视为本次训练结果为一次“惩罚”,并据此调整模型参数的当前值;而当预测输出和上述已知输出相符时,将视为本次训练结果为一次“奖励”,并据此调整模型参数的当前值。
当训练达到预定的次数或者模型收敛时则可以结束上述训练过程。
图13显示了本说明书实施例所述的融合模型的内部结构。如图13所示,该融合模型可以包括:
第三输入层1302,用于接收两个文本组及其对应的已知输出。例如,在图13中,上述文本组中第一文本组为词语召回的m个文本;第二文本组为向量召回的n个文本,并且,第一文本组中有一个文本标注有标签。
文本向量模型1304,用于将上述两个文本组中的文本分别进行编码,输出两组文本向量。
平均层1306,用于分别将上述两组文本向量求平均得到第一组文本平均文本向量和第二组文本平均文本向量。
第二线性编码模型1308,用于对上述确定上述第一组文本平均文本向量和第二组文本平均文本向量进行线性变换,得到两个文本组的平均权重,作为预测输出。
第三比较层1310,用于根据所述预测输出和已知输出之间的误差确定一个梯度;并将所述梯度反向传播给所述第二线性编码模型1308的参数的当前值。例如,在图13中,已知输出为:第一文本组的平均权重大于第二文本组的平均权重,因此,上述第三比较层1310会将预测输出与该已知输出进行比较,并根据二者之间的误差联合调整第二线性编码模型1308。
可以看出,在训练完成后,上述融合模型从多组召回结果中选择出一组包含“最佳答案”的召回结果。
对应上述方法,本说明书的实施例还给出了文本搜索装置,该装置的内部结构如图14所示,可以包括:
分词模块1402,用于对接收的第一文本进行分词,得到至少一个词语;
词语召回模块1404,用于根据所述至少一个词语从知识库中召回至少一个第二文本;
文本向量生成模块1406,用于将所述至少一个词语输入经过训练的文本向量模型,得到所述第一文本的文本向量;
向量召回模块1408,用于根据所述第一文本的向量从所述知识库中召回至少一个第三文本;以及
融合模块1410,用于将所述至少一个第二文本和所述至少一个第三文本进行融合,得到文本检索结果。
在本说明书的一些实施例中,上述词语召回模块包括:
词权重模型,用于将所述至少一个词语分别输入经过训练的词权重模型,得到所述至少一个词语的词权重;
关键词确定单元,用于根据所述至少一个词语的词权重从所述至少一个词语中确定至少一个关键词;以及
词语召回单元,用于根据所述至少一个关键词从知识库中召回至少一个第二文本。
在本说明书的实施例中,上述词权重模型包括:
编码器以及线性变换层;其中,
所述编码器分别对所述至少一个词语进行编码,得到所述至少一个词语的词向量;
所述线性变换层分别将所述至少一个词语的词向量进行线性变换,得到所述至少一个词语的词权重。
在本说明书的另一些实施例中,上述词语召回模块包括:
词权重确定单元,用于根据词频-逆文本频率指数TF-IDF算法确定所述至少一个词语的词权重;
关键词确定单元,用于根据所述至少一个词语的词权重从所述至少一个词语中确定至少一个关键词;以及
词语召回单元,用于根据所述至少一个关键词从知识库中召回至少一个第二文本。
在本说明书的一些实施例中,上述融合模块包括:
并集单元,用于将所述至少一个第二文本和所述至少一个第三文本求并集,得到所述文本检索结果。
在本说明书的另一些实施例中,上述融合模块包括:
经过训练的文本向量模型,用于对所述至少一个第二文本和至少一个第三文本分别进行编码,确定所述至少一个第二文本的文本向量和所述至少一个第三文本的文本向量;
文本平均权重确定模块,用于将所述至少一个第二文本的文本向量求平均,得到第二文本的平均向量,并对所述第二文本的平均向量进行线性变换,得到第二文本的平均权重;以及将所述至少一个第三文本的文本向量求平均,得到第三文本的平均向量,并对所述第三文本的平均向量进行线性变换,得到第三文本的平均权重;
文件检索结果确定单元,用于响应于所述第二文本的平均权重大于或等于所述第三文本的平均权重,确定所述至少一个第二文本为所述文本检索结果;以及响应于所述第二文本的平均权重值小于所述第三文本的平均权重,确定所述至少一个第三文本为所述文本检索结果。
此外,在本说明书的实施例中,上述文本搜索装置可以被视为一个电子设备,因此,该文本搜索装置可以包括:存储器1400、处理器1200、输入/输出接口1600、通信接口1800和总线2000。其中处理器1200、存储器1400、输入/输出接口1600和通信接口1800通过总线2000实现彼此之间在设备内部的通信连接。
存储器1300可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1400可以存储操作***和其他应用程序,还可以存储本说明书实施例提供的服务器的各个模块,例如上述分词模块1402、词语召回模块1404、文本向量生成模块1406、向量召回模块1408、以及融合模块1410,通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1400中,并由处理器1200来调用执行。
处理器1200可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
输入/输出接口1600用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1800用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中,通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线2000包括一通路,在设备的各个组件(例如处理器1200、存储器1400、输入/输出接口1600和通信接口1800)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1200、存储器1400、输入/输出接口1600、通信接口1800以及总线2000,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例以及计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本说明书的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本说明书难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本说明书难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本说明书的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本说明书的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本说明书。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本说明书的具体实施例对本说明书进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
上述对本说明书特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
Claims (19)
1.一种文本检索方法,所述方法包括:
对接收的第一文本进行分词,得到至少一个词语;
根据所述至少一个词语从知识库中召回至少一个第二文本;
将所述至少一个词语输入经过训练的文本向量模型,得到所述第一文本的文本向量;
根据所述第一文本的向量从所述知识库中召回至少一个第三文本;以及
将所述至少一个第二文本和所述至少一个第三文本进行融合,得到文本检索结果。
2.根据权利要求1所述的方法,其中,根据所述至少一个词语从知识库中召回至少一个第二文本包括:
分别确定所述至少一个词语的词权重;
根据所述至少一个词语的词权重从所述至少一个词语中确定至少一个关键词;以及
根据所述至少一个关键词从知识库中召回至少一个第二文本。
3.根据权利要求2所述的方法,其中,分别确定所述至少一个词语的词权重包括:将所述至少一个词语分别输入经过训练的词权重模型,得到所述至少一个词语的词权重。
4.根据权利要求3所述的方法,所述词权重模型包括:
编码器以及线性变换层;其中,
所述编码器分别对所述至少一个词语进行编码,得到所述至少一个词语的词向量;
所述线性变换层分别将所述至少一个词语的词向量进行线性变换,得到所述至少一个词语的词权重。
5.根据权利要求2所述的方法,其中,分别确定所述至少一个词语的词权重包括:根据词频-逆文本频率指数TF-IDF算法确定所述至少一个词语的词权重。
6.根据权利要求1所述的方法,所述将所述至少一个第二文本和所述至少一个第三文本进行融合包括:
将所述至少一个第二文本和所述至少一个第三文本求并集,得到所述文本检索结果。
7.根据权利要求1所述的方法,所述将所述至少一个第二文本和所述至少一个第三文本进行融合包括:
将所述至少一个第二文本和至少一个第三文本分别输入经过训练的文本向量模型,确定所述至少一个第二文本的文本向量和所述至少一个第三文本的文本向量;
将所述至少一个第二文本的文本向量求平均,得到第二文本的平均向量,并对所述第二文本的平均向量进行线性变换,得到第二文本的平均权重;
将所述至少一个第三文本的文本向量求平均,得到第三文本的平均向量,并对所述第三文本的平均向量进行线性变换,得到第三文本的平均权重;
响应于所述第二文本的平均权重大于或等于所述第三文本的平均权重,确定所述至少一个第二文本为所述文本检索结果;以及
响应于所述第二文本的平均权重值小于所述第三文本的平均权重,确定所述至少一个第三文本为所述文本检索结果。
8.一种训练词权重模型的方法,所述方法包括:
获取训练数据,所述训练数据包括多个训练文本以及每一个训练文本对应的已知输出;其中,每一个训练文本包括至少一个第二词语;所述已知输出为所述至少一个第二词语的词权重;
针对每个训练文本,
将所述至少一个第二词语输入编码器,根据所述编码器的参数的当前值生成所述至少一个第二词语的词向量;
将所述至少一个第二词语的词向量输入线性变换层,根据所述线性变换层的参数的当前值生成所述至少一个第二词语的词权重,并将所述至少一个第二词语的词权重作为所述训练文本的预测输出;
根据所述训练文本的预测输出和已知输出之间的误差确定一个梯度;
将所述梯度反向传播给所述编码器和所述线性变换层以联合地调整所述编码器和所述线性变换层的参数的当前值。
9.一种训练文本向量模型的方法,所述方法包括:
获取第二训练数据,所述第二训练数据包括多组训练文本对及每一个训练文本对对应的已知输出;其中,每一个训练文本对包括第一训练文本和第二训练文本;所述已知输出为所述第一训练文本和第二训练文本的匹配度;
针对每个训练文本对,
将所述训练文本对的第一训练文本和第二训练文本分别输入所述文本向量模型,根据所述文本向量模型的参数的当前值生成所述第一训练文本对应的第一训练文本向量和第二训练文本对应的第二训练文本向量;
根据所述第一训练文本向量和第二训练文本向量确定所述第一训练文本和第二训练文本的匹配度,将所述匹配度作为所述训练文本对的预测输出;
根据所述训练文本对的预测输出和已知输出之间的误差确定一个梯度;
将所述梯度反向传播给所述文本向量模型以调整所述文本向量模型的参数的当前值。
10.一种训练文本向量模型的方法,所述方法包括:
获取第二训练数据,所述第二训练数据包括多组训练文本对及每一个训练文本对对应的已知输出;其中,每一个训练文本对包括第一训练文本和第二训练文本;所述已知输出为所述第一训练文本和第二训练文本的匹配度;
针对每个训练文本对,
将所述训练文本对中的第一训练文本和第二训练文本分别输入BERT模型,根据所述BERT模型的参数的当前值生成所述第一训练文本对应的第一训练文本向量和第二训练文本对应的第一训练文本向量;
根据所述第一训练文本向量和第二训练文本向量确定所述第一训练文本和第二训练文本的匹配度,将所述匹配度作为所述训练文本对的预测输出;
根据所述训练文本对的预测输出和已知输出之间的误差确定一个梯度;
将所述梯度反向传播给所述BERT模型以调整所述BERT模型的参数的当前值;以及
在所述BERT模型训练完成后,根据经过训练的BERT模型,使用模型蒸馏训练所述文本向量模型。
11.根据权利要求10所述的方法,所述文本向量模型包括CNN模型或LSTM模型。
12.一种文本检索装置,所述装置包括:
分词模块,用于对接收的第一文本进行分词,得到至少一个词语;
词语召回模块,用于根据所述至少一个词语从知识库中召回至少一个第二文本;
文本向量生成模块,用于将所述至少一个词语输入经过训练的文本向量模型,得到所述第一文本的文本向量;
向量召回模块,用于根据所述第一文本的向量从所述知识库中召回至少一个第三文本;以及
融合模块,用于将所述至少一个第二文本和所述至少一个第三文本进行融合,得到文本检索结果。
13.根据权利要求12所述的装置,所述词语召回模块包括:
词权重模型,用于将所述至少一个词语分别输入经过训练的词权重模型,得到所述至少一个词语的词权重;
关键词确定单元,用于根据所述至少一个词语的词权重从所述至少一个词语中确定至少一个关键词;以及
词语召回单元,用于根据所述至少一个关键词从知识库中召回至少一个第二文本。
14.根据权利要求13所述的装置,所述词权重模型包括:
编码器以及线性变换层;其中,
所述编码器分别对所述至少一个词语进行编码,得到所述至少一个词语的词向量;
所述线性变换层分别将所述至少一个词语的词向量进行线性变换,得到所述至少一个词语的词权重。
15.根据权利要求12所述的装置,所述词语召回模块包括:
词权重确定单元,用于根据词频-逆文本频率指数TF-IDF算法确定所述至少一个词语的词权重;
关键词确定单元,用于根据所述至少一个词语的词权重从所述至少一个词语中确定至少一个关键词;以及
词语召回单元,用于根据所述至少一个关键词从知识库中召回至少一个第二文本。
16.根据权利要求12所述的装置,所述融合模块包括:
并集单元,用于将所述至少一个第二文本和所述至少一个第三文本求并集,得到所述文本检索结果。
17.根据权利要求12所述的装置,所述融合模块包括:
经过训练的文本向量模型,用于对所述至少一个第二文本和至少一个第三文本分别进行编码,确定所述至少一个第二文本的文本向量和所述至少一个第三文本的文本向量;
文本平均权重确定模块,用于将所述至少一个第二文本的文本向量求平均,得到第二文本的平均向量,并对所述第二文本的平均向量进行线性变换,得到第二文本的平均权重;以及将所述至少一个第三文本的文本向量求平均,得到第三文本的平均向量,并对所述第三文本的平均向量进行线性变换,得到第三文本的平均权重;
文件检索结果确定单元,用于响应于所述第二文本的平均权重大于或等于所述第三文本的平均权重,确定所述至少一个第二文本为所述文本检索结果;以及响应于所述第二文本的平均权重值小于所述第三文本的平均权重,确定所述至少一个第三文本为所述文本检索结果。
18.一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至11任意一项所述的方法。
19.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1至11任意一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010086368.XA CN111274808B (zh) | 2020-02-11 | 2020-02-11 | 文本检索方法、模型训练方法、文本检索装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010086368.XA CN111274808B (zh) | 2020-02-11 | 2020-02-11 | 文本检索方法、模型训练方法、文本检索装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274808A true CN111274808A (zh) | 2020-06-12 |
CN111274808B CN111274808B (zh) | 2023-07-04 |
Family
ID=70999205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010086368.XA Active CN111274808B (zh) | 2020-02-11 | 2020-02-11 | 文本检索方法、模型训练方法、文本检索装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274808B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360613A (zh) * | 2021-05-31 | 2021-09-07 | 维沃移动通信有限公司 | 文本处理方法、装置和电子设备 |
CN114398534A (zh) * | 2021-01-05 | 2022-04-26 | 上海邮电设计咨询研究院有限公司 | 事件聚类文本检索*** |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006309377A (ja) * | 2005-04-27 | 2006-11-09 | Seiko Epson Corp | 文書検索装置および文書検索方法ならびにそのプログラムと記録媒体 |
CN108733653A (zh) * | 2018-05-18 | 2018-11-02 | 华中科技大学 | 一种基于融合词性和语义信息的Skip-gram模型的情感分析方法 |
CN109582868A (zh) * | 2018-11-27 | 2019-04-05 | 湖南大学 | 基于词向量加权、支持向量回归和用户点击偏好的搜索推荐方法 |
CN109948036A (zh) * | 2017-11-15 | 2019-06-28 | 腾讯科技(深圳)有限公司 | 一种分词词项权重的计算方法和装置 |
CN110019670A (zh) * | 2017-10-31 | 2019-07-16 | 北京国双科技有限公司 | 一种文本检索方法及装置 |
CN110019668A (zh) * | 2017-10-31 | 2019-07-16 | 北京国双科技有限公司 | 一种文本检索方法及装置 |
US20190251084A1 (en) * | 2016-10-27 | 2019-08-15 | Huawei Technologies Co., Ltd. | Search method and apparatus |
CN110309278A (zh) * | 2019-05-23 | 2019-10-08 | 泰康保险集团股份有限公司 | 关键词检索方法、装置、介质及电子设备 |
CN110309267A (zh) * | 2019-07-08 | 2019-10-08 | 哈尔滨工业大学 | 基于预训练模型的语义检索方法和*** |
CN110516210A (zh) * | 2019-08-22 | 2019-11-29 | 北京影谱科技股份有限公司 | 文本相似度的计算方法和装置 |
US20190370273A1 (en) * | 2018-06-05 | 2019-12-05 | Sap Se | System, computer-implemented method and computer program product for information retrieval |
CN110704621A (zh) * | 2019-09-25 | 2020-01-17 | 北京大米科技有限公司 | 文本处理方法、装置及存储介质和电子设备 |
CN112256860A (zh) * | 2020-11-25 | 2021-01-22 | 携程计算机技术(上海)有限公司 | 客服对话内容的语义检索方法、***、设备及存储介质 |
-
2020
- 2020-02-11 CN CN202010086368.XA patent/CN111274808B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006309377A (ja) * | 2005-04-27 | 2006-11-09 | Seiko Epson Corp | 文書検索装置および文書検索方法ならびにそのプログラムと記録媒体 |
US20190251084A1 (en) * | 2016-10-27 | 2019-08-15 | Huawei Technologies Co., Ltd. | Search method and apparatus |
CN110019670A (zh) * | 2017-10-31 | 2019-07-16 | 北京国双科技有限公司 | 一种文本检索方法及装置 |
CN110019668A (zh) * | 2017-10-31 | 2019-07-16 | 北京国双科技有限公司 | 一种文本检索方法及装置 |
CN109948036A (zh) * | 2017-11-15 | 2019-06-28 | 腾讯科技(深圳)有限公司 | 一种分词词项权重的计算方法和装置 |
CN108733653A (zh) * | 2018-05-18 | 2018-11-02 | 华中科技大学 | 一种基于融合词性和语义信息的Skip-gram模型的情感分析方法 |
US20190370273A1 (en) * | 2018-06-05 | 2019-12-05 | Sap Se | System, computer-implemented method and computer program product for information retrieval |
CN109582868A (zh) * | 2018-11-27 | 2019-04-05 | 湖南大学 | 基于词向量加权、支持向量回归和用户点击偏好的搜索推荐方法 |
CN110309278A (zh) * | 2019-05-23 | 2019-10-08 | 泰康保险集团股份有限公司 | 关键词检索方法、装置、介质及电子设备 |
CN110309267A (zh) * | 2019-07-08 | 2019-10-08 | 哈尔滨工业大学 | 基于预训练模型的语义检索方法和*** |
CN110516210A (zh) * | 2019-08-22 | 2019-11-29 | 北京影谱科技股份有限公司 | 文本相似度的计算方法和装置 |
CN110704621A (zh) * | 2019-09-25 | 2020-01-17 | 北京大米科技有限公司 | 文本处理方法、装置及存储介质和电子设备 |
CN112256860A (zh) * | 2020-11-25 | 2021-01-22 | 携程计算机技术(上海)有限公司 | 客服对话内容的语义检索方法、***、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114398534A (zh) * | 2021-01-05 | 2022-04-26 | 上海邮电设计咨询研究院有限公司 | 事件聚类文本检索*** |
CN114398534B (zh) * | 2021-01-05 | 2023-09-12 | 上海邮电设计咨询研究院有限公司 | 事件聚类文本检索*** |
CN113360613A (zh) * | 2021-05-31 | 2021-09-07 | 维沃移动通信有限公司 | 文本处理方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111274808B (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11314806B2 (en) | Method for making music recommendations and related computing device, and medium thereof | |
CN110019732B (zh) | 一种智能问答方法以及相关装置 | |
CN111753167B (zh) | 搜索处理方法、装置、计算机设备和介质 | |
CN105975459B (zh) | 一种词项的权重标注方法和装置 | |
CN111309878B (zh) | 检索式问答方法、模型训练方法、服务器及存储介质 | |
CN112329460B (zh) | 文本的主题聚类方法、装置、设备及存储介质 | |
CN112632226B (zh) | 基于法律知识图谱的语义搜索方法、装置和电子设备 | |
CN110717038B (zh) | 对象分类方法及装置 | |
CN113806487B (zh) | 基于神经网络的语义搜索方法、装置、设备和存储介质 | |
CN113297360B (zh) | 基于弱监督学习和联合学习机制的法律问答方法及设备 | |
CN112632224B (zh) | 基于案例知识图谱的案件推荐方法、装置和电子设备 | |
CN113515589B (zh) | 数据推荐方法、装置、设备以及介质 | |
CN113407814B (zh) | 文本搜索方法、装置、可读介质及电子设备 | |
CN111078842A (zh) | 查询结果的确定方法、装置、服务器及存储介质 | |
CN111274808B (zh) | 文本检索方法、模型训练方法、文本检索装置及存储介质 | |
CN113535912B (zh) | 基于图卷积网络和注意力机制的文本关联方法及相关设备 | |
CN113591490B (zh) | 信息处理方法、装置和电子设备 | |
CN112396091B (zh) | 社交媒体图像流行度预测方法、***、存储介质及应用 | |
CN111414755A (zh) | 一种基于细粒度情感字典的网络情绪分析方法 | |
CN116186220A (zh) | 信息检索方法、问答处理方法、信息检索装置及*** | |
CN115952317A (zh) | 视频处理方法、装置、设备、介质及程序产品 | |
CN116049377A (zh) | 一种基于矩阵分解和crnn的上下文感知推荐***和方法 | |
CN113704466B (zh) | 基于迭代网络的文本多标签分类方法、装置及电子设备 | |
CN116821781A (zh) | 分类模型的训练方法、文本分析方法及相关设备 | |
CN115935195B (zh) | 文本匹配方法及装置、计算机可读存储介质、终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |