一种不需要标注数据的短文本搜索相似长文本方法与流程

文档序号:33154904发布日期:2023-02-03 23:32阅读:43来源:国知局
一种不需要标注数据的短文本搜索相似长文本方法与流程

1.本发明属于自然语言搜索处理技术领域,具体涉及一种不需要标注数据的短文本搜索相似长文本方法。


背景技术:

2.文本搜索是指应用程序接收用户输入文本,并向使用者返回搜索结果的过程。一般包括文本与文本之间的搜索、图片与文本之间的搜索推荐等。而短文本搜索长文本这样的任务在推荐搜索、聊天机器人、知识问答等领域中应用场景中意义重大。基于深度学习的短文本搜索长文本已经逐渐成为业界的主流,但是数据标注耗费大量的人力资源,同时繁琐的标注工作降低人们的幸福感,而且目前相关技术中提供的分词+全文检索的搜索方案,难以为用户提供较好的反馈,这成为有监督深度学习短文本搜索长文本的痛点和难点。本发明提出了一种不需要标注数据的短文本搜索长文本技术方案有效的解决了这一问题。


技术实现要素:

3.本发明提供一种不需要标注数据的短文本搜索相似长文本的技术方案,至少在一定程度上克服了相关技术中的有监督方案初期难以标注数据的技术问题。本发明的其他特性和优势将通过以下的详细描述变得清晰,或部分通过具体实施进行说明。
4.本发明提出了一种不需要标注数据的短文本搜索长文本技术方案,具体包括如下步骤:步骤1,文本数据处理:将数据进行相对应的处理,以保证数据不受其它额外特征的影响;具体的,文本数据中存在各种各样的不符合标准文本的噪音文本,例如文本中存在html标签、空白文本、重复多个字词、大小写不统一,对一些常见的噪音进行处理,包括但不限于过滤html标签、大小写统一、文本编码格式统一、空白字符去除、删除重复字符,将噪音文本处理成比较干净的文本数据;步骤2,关键词抽取:依据自定义算法或三方工具对数据中的每条文本进行关键词抽取的操作,以得到每个文本的关键词列表;例如现有一系列文本即多个文本,使用jieba分词工具对每个文本进行分词形成一个个词语,统计各个词语的词频,词语在文本中的出现频率,计算idf逆文档频率,进行统计存储,当出现新的文本时,依旧进行分词,统计词频,再与事先统计好的idf值计算tfidf值,分值较高则为该文本关键词,取多个,即可得到关键词列表;步骤3,分句并筛选短句:将每条数据按照自定义标点符号进行分割,得到一个个短句,再将短句中存在关键词的短句筛选出来作为输入短文本集合;本案中规定长文本为不经分句的每条数据,即原文本数据,短文本即对原文本数据按标点符号进行分割的每个句子,特别的,对于文本数据中没有标点符号可供分句时,则短文本和长文本都为该条数据文本;步骤4,生成关系对:将步骤3中的每条文本的短句集合依次与对应的长文本建立
一一对应的映射关系,做为模型输入源;步骤5,文本编码表示:将步骤4中的输入源的长短文本分别输入长文本编码器和短文本编码器,具体的,长文本编码器和短文本编码器按照约定,都采用相同结构的gmlp编码器结构,即采用6层相同的block块,每个块包括多头自注意力层、归一化残差连接层、前馈神经网络层和归一化残差连接层,最终通过这样的长短文本编码器分别得到长短文本的文本语义编码表示;步骤6,训练模型:将步骤5中的长短文本编码表示输入模型,根据已设定好的网络结构和损失函数优化等进行模型训练;步骤7,文本预测:将用户输入的短文本通过短文本编码器做语义表示,经过模型搜索最相似的长文本,最终得到输出结果。
5.本发明的技术方案,具有如下优点:不需要标注数据即可进行深度学习短文本搜索长文本模型的训练,解决了项目前期因数据匮乏,需要大量标注人员进行标注,导致的效率低下等问题。
6.短文本搜索长文本技术广泛应用于知识检索领域,比如现在有一批人工智能领域的相关技术文章 ,当用户输入一段人工智能领域的一小段知识,能够推荐相关的人工智能领域的技术文本,从而能够方便用户快速掌握自己所需要的知识。本发明提出了一种不需要标注数据的短文本搜索相似长文本的技术方案,即根据一批未进行标注的原始长文本,进行分句、关键词提取、建立长短句映射关系、长短句关系对作为输入源;长短句关系对分别进行长文本编码和短文本编码,分别得到文本特征表示;模型学习,利用对比学习clip手段,使得一个批次训练数据存在长短句映射关系的余弦相似度最大,否则尽量小,不存在长短句映射关系的余弦相似度最小,每次保存模型后,将数据打乱,增大负样本出现的概率。本发明创新点主要体现在:将关键词抽取和基于clip架构的对比学习技术结合,实现了一种完全无需对用户数据进行标注就可以实现基于深度学习语义表示的搜索模式,同时采用gmlp作为文本编码器,可以有效的用于知识检索。
附图说明
7.图1为本发明的整体网络结构架构图;图2为gmlp文本编码器使用流程。
具体实施方案
8.下面将结合附图1和2对本发明的技术方案做进一步说明。
9.本发明提出了一种不需要标注数据的短文本搜索长文本技术方案,具体包括如下步骤:步骤1,文本数据处理:将数据进行相对应的处理,以保证数据不受其它额外特征的影响;具体的,文本数据中存在各种各样的不符合标准文本的噪音文本,例如文本中存在html标签、空白文本、重复多个字词、大小写不统一,对一些常见的噪音进行处理,包括但不限于过滤html标签、大小写统一、文本编码格式统一、空白字符去除、删除重复字符,将噪音文本处理成比较干净的文本数据;步骤2,关键词抽取:依据自定义算法或三方工具对数据中的每条文本进行关键词
抽取的操作,以得到每个文本的关键词列表;例如现有一系列文本即多个文本,使用jieba分词工具对每个文本进行分词形成一个个词语,统计各个词语的词频,词语在文本中的出现频率,计算idf逆文档频率,进行统计存储,当出现新的文本时,依旧进行分词,统计词频,再与事先统计好的idf值计算tfidf值,分值较高则为该文本关键词,取多个,即可得到关键词列表;步骤3,分句并筛选短句:将每条数据按照自定义标点符号进行分割,得到一个个短句,再将短句中存在关键词的短句筛选出来作为输入短文本集合;本案中规定长文本为不经分句的每条数据,即原文本数据,短文本即对原文本数据按标点符号进行分割的每个句子,特别的,对于文本数据中没有标点符号可供分句时,则短文本和长文本都为该条数据文本;步骤4,生成关系对:将步骤3中的每条文本的短句集合依次与对应的长文本建立一一对应的映射关系,做为模型输入源;步骤5,文本编码表示:将步骤4中的输入源的长短文本分别输入长文本编码器和短文本编码器,具体的,长文本编码器和短文本编码器按照约定,都采用相同结构的gmlp编码器结构,即采用6层相同的block块,每个块包括多头自注意力层、归一化残差连接层、前馈神经网络层和归一化残差连接层,最终通过这样的长短文本编码器分别得到长短文本的文本语义编码表示;步骤6,训练模型:将步骤5中的长短文本编码表示输入模型,根据已设定好的网络结构和损失函数优化等进行模型训练;步骤7,文本预测:将用户输入的短文本通过短文本编码器做语义表示,经过模型搜索最相似的长文本,最终得到输出结果。
10.在步骤1中,所述相对应的操作具体方法为:将数据文本进行大小写统一、文本编码格式统一、空白字符去除操作对文本进行降噪处理,免去这些特征对后续结果的影响。
11.在步骤2中,所述关键词抽取具体方法为:使用tf-idf算法计算每个文本中的词的重要程度(tf为词频,idf为所有文档的逆文档频率,tf-idf则为两项乘积),按重要程度排序,选取一定数量的关键词作为该条文本候选关键词集合。
12.在步骤3中,所述分句具体操作为:预先定义好的分割符,即相关标点符号,一般取句号、感叹号、分号等,以这些作为分隔符对文本进行分句操作,特别地,当文本中没有标点符号作为分隔符时,则使用原始文本作为分句后的结果;所述筛选短句具体操作为:将步骤2中的关键词列表作为基准,依次判断短句中是否存在相关关键词,若有则保留该短句,否则去除该条不相关的短句,从而获得最终的短句集合。
13.在步骤4中,所述生成关系对具体操作为:设每条文本为x,x分句后的的短句列表为[x1,x2,x3,...,xn],则该条文本生成的关系对即为(x1,x)、(x2,x)、(x3,x)等短文本长文本的关系对,每一条文本都进行相关操作,最终得到一系列的短文本-长文本关系对,来作为编码前的文本输入源。
[0014]
在步骤5中,所述文本编码表示具体操作为:将关系对中的长文本和短文本经过初始文本嵌入操作,即文本向量化,分别输入两个文本编码器,分别为长文本编码器和短文本编码器,两个文本编码器都是用gmlp网络结构来进行编码表示,此时数据维度大小分别为[batch_size, max_len_long, d_model],[batch_size, max_len_short, d_model];让数
据经过多层gmlp特征提取器得到输出表示,此时数据维度大小分别为[batch_size, max_len_long, d_model],[batch_size, max_len_short, d_model];然后将输出表示的第一个token的向量作为文本编码器整体的语义表示(取第一个,是因为经过gmlp架构的编码器后,输出向量的第一个token的向量表示通常可以作为文本整体的语义表示来使用;也因为以此来消除一个维度的表示对于后续张量计算来说更加方便),此时输出向量的维度变为了[batch_size, d_model],再将第二个维度,同时除以该维度的2范数(2范数用以向量归一化),最终得到长短文本对应的文本语义表示。。参数说明:batch_size为批量文本数量;max_len_long为所设定的输入长文本编码器模型的最大文本序列长度;max_len_short为所设定的输入短文本编码器模型的最大文本序列长度;d_model为文本特征表示的维度。
[0015]
在步骤6中,所述具体操作方法为:通过步骤5得到的长短文本语义表示向量维度均为[batch_size,d_model],将短文本的文本语义表示维度不变,长文本语义表示维度进行转置,则长文本语义表示维度变为[d_model,batch_size],此时将长短文本语义表示向量进行张量相乘计算,得到维度为[batch_size,batch_size]的张量,这个张量的对角线元素即为短文本和对应的长文本之间的余弦相似度,而模型优化目标就是使得对角线元素的值每一个都最大,其他位置的值都最小。(对角线元素,则是正样本的相似度,非对角线元素,就是所谓负样本的相似度,即是一个关系对的样本就是正样本),模型的损失函数使用堆成的交叉熵损失函数,通过这样的目标和损失函数,来通过数据进行模型训练,最终得到模型参数。
[0016]
在步骤7中,根据权利要求1所述方法,其特征在于:在步骤s6中,所述具体操作方法为:通过步骤s5得到的长短文本语义表示向量维度均为[batch_size,d_model],将短文本的文本语义表示张量大小为[d_model,batch_size]通过faiss搜索工具搜索最相似的相似度最高的语义向量,并取出该向量对应索引的对应长文本,即完成短文本搜索长文本任务。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1