CN115017279A - 基于文本语义匹配的Stack Overflow相关问答检索方法 - Google Patents
基于文本语义匹配的Stack Overflow相关问答检索方法 Download PDFInfo
- Publication number
- CN115017279A CN115017279A CN202210513871.8A CN202210513871A CN115017279A CN 115017279 A CN115017279 A CN 115017279A CN 202210513871 A CN202210513871 A CN 202210513871A CN 115017279 A CN115017279 A CN 115017279A
- Authority
- CN
- China
- Prior art keywords
- vector
- query
- answer
- text
- question
- 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.)
- Pending
Links
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/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- 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/31—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于文本语义匹配的Stack Overflow相关问答检索方法,包括:利用Stack Overflow的问答数据集构建语料库并训练词向量;构建并训练一个文本语义匹配的深度模型,深度模型包括:词向量层、BiLSTM、交互注意力矩阵、多角度融合、池化层、多层次卷积结构和全连接层;基于深度模型预测查询和候选问答的语义相关性的大小将候选问答排序,排序后的候选问答作为检索结果。本发明基于文本语义匹配检索编程论坛Stack Overflow上的相关问答,使用交互注意力矩阵、多角度融合、池化层来深化BiLSTM的特征提取,同时利用多层次卷积结构从另一个角度丰富BiLSTM的特征提取,可提取到多种的文本语义匹配信息,进一步提升Stack Overflow相关问答的检索性能。
Description
技术领域
本发明涉及自然语言处理的技术领域,尤其是指一种基于文本语义匹配的StackOverflow相关问答检索方法。
背景技术
基于社区的编程问答论坛Stack Overflow为开发者提供了与编程相关的问答与讨论的空间,开发者可以通过查询、浏览和发帖等方式获取自己所需的编程相关知识。作为世界上最受欢迎的编程论坛之一,Stack Overflow已经积累了大量的编程问答,其中不乏高质量的问题与回答。由于发帖提问需要耗费时间等待他人的回答,因此开发者会先将问题的语句描述为文本,在检索框中输入文本,检索已有的相关问答,利用现有的问答解决当前面临的编程问题,该用于检索的问题就是查询。
在已有的相关问答检索技术中,官方提供的问答检索基于查询和候选问答的文本之间的重叠词。由于每个人对问题的表述不同,加上编程词汇呈现出多样性的表现形式,该检索方式存在词汇鸿沟的问题,因此基于文本语义匹配的方法是更好的选择。目前针对Stack Overflow编程论坛的语义匹配方法更多聚焦于重复问题检测,判断两个问答的语义是否等价。一方面,开发者为解决当前面临的编程问题,通常需要浏览多个相关问答的知识;另一方面,该技术基于分类方法,更偏向于论坛中已有的问答之间的识别,而输出相关问答排序列表的检索方法更符合实际场景。此外,少数针对Stack Overflow编程论坛的相关问答检索方法,仅基于自然语言处理技术采用单一的卷积神经网络或循环神经网络结构;仅依靠卷积神经网络只能提取文本序列的局部特征,并且无法感知文本的上下文语境;仅依靠循环神经网络则会因文本长度的限制抛弃局部特征,同时由于其时间序列的计算特性,多层循环结构与长文本序列将导致时间开销增大。
发明内容
本发明的目的在于克服现有技术的缺点与应用场景的不足,提出了一种基于文本语义匹配的Stack Overflow相关问答检索方法,能够基于编程问答论坛中的查询的文本,在可接受的时间开销内,根据查询与候选问答的文本之间的语义相关性,为开发者提供贴合实际应用场景的候选问答列表。
为实现上述目的,本发明所提供的技术方案为:基于文本语义匹配的StackOverflow相关问答检索方法,包括以下步骤:
1)获取Stack Overflow的问答数据集,并对问答数据集的文本进行预处理,包括清洗文本、分词、移除停用词和低频词以及词干化;将预处理后的问答数据集的文本构建成语料库,基于语料库训练词向量;将预处理后的问答数据集的文本构建成查询和候选问答的文本对,并把查询和候选问答的文本对按比例划分为训练集和测试集;
2)构建一个文本语义匹配的深度模型,利用步骤1)所述的训练集对构建的深度模型进行训练,得到最优模型;其中,所述的深度模型基于双向长短期记忆网络BiLSTM进行改进,其情况为:基于步骤1)所训练的词向量构造的词向量层,将查询和候选问答的文本对转换为查询向量与候选问答向量;采用BiLSTM将查询向量和候选问答向量转换为查询的上下文向量与候选问答的上下文向量;在BiLSTM后计算查询的上下文向量和候选问答的上下文向量之间的交互注意力矩阵,利用交互注意力矩阵分别获取查询的语义交互向量和候选问答的语义交互向量,这一步目的是提取语义交互特征,促进查询和候选问答的文本对之间的语义信息交流;采用多角度融合,以几种不同的计算方式把查询和候选问答各自的上下文向量和语义交互向量进行融合,得到查询的融合向量和候选问答的融合向量;采用池化层,以进一步突出多角度融合的效果,利用最大池化和平均池化从查询的融合向量和候选问答的融合向量提取查询的序列匹配向量和候选问答的序列匹配向量;采用多层次卷积结构,以丰富特征提取,多层次卷积结构根据BiLSTM生成的查询的上下文向量与候选问答的上下文向量来提取查询的卷积匹配向量和候选问答的卷积匹配向量;结合查询的序列匹配向量、候选问答的序列匹配向量、查询的卷积匹配向量和候选问答的卷积匹配向量,采用一个多层的全连接层进行语义相关性的预测;
3)利用步骤2)得到的最优模型,预测步骤1)所述的测试集的查询和候选问答的文本对之间的语义相关性,根据相关性的大小排列候选问答,排序后的列表作为检索结果。
进一步,在步骤1)中,对于问答数据集的文本预处理,构建语料库并训练向量,构建查询和候选问答的文本对,执行以下操作:
1.1)获取Stack Overflow的问答数据集,对问答数据集的文本进行预处理;首先清洗文本:利用正则表达式去除文本中的超文本标签、代码片段、域名、标点符号和数字,将文本中的英文字母小写化;然后基于文本的单词之间的空格对文本进行分词;移除文本中常见的英文停用词,根据设定的阈值移除文本中词频低于阈值的单词;基于Porter算法将文本中的单词进行词干化处理;
1.2)将预处理后的问答数据集的文本构建成语料库;基于语料库采用词向量算法来训练词向量;
1.3)将预处理后的问答数据集的文本构建成查询和候选问答的文本对{Q,C},其中每个查询的文本对应多个候选问答的文本,并把查询和候选问答的文本对按比例划分为训练集和测试集。
进一步,所述步骤2)包括以下步骤:
2.1)构建一个文本语义匹配的深度模型;
2.2)深度模型的输入为查询和候选问答的文本对{Q,C};为了将输入的文本对转换成向量以方便深度模型进一步处理,利用步骤1)所训练的词向量的参数构建词向量层,用词向量层将查询和候选问答的文本对{Q,C}转换为查询词向量q={qi},i=1,2,...,N和候选问答词向量c={cj},j=1,2,...,M,其中qi和cj是查询和候选问答的文本中第i个和第j个词的词向量,N和M是查询和候选问答的文本的长度;
2.2)为了将查询词向量和候选词向量中的每个单词与前后的文本联系起来,采用BiLSTM在查询词向量q和候选问答词向量c的前向和后向共两个方向上依次提取查询和候选问答的上下文特征,获得查询的上下文向量和候选问答的上下文向量其中和是查询和候选问答的第i个和第j个词的上下文向量:
式中,符号→和←分别代表BiLSTM的前向操作和后向操作;
2.3)为促进查询和候选问答之间的语义相关性的特征,对于BiLSTM获得查询的上下文向量和候选问答的上下文向量基于交互注意力机制,采用向量间的点乘算法计算和之间的交互注意力矩阵为实数集,交互注意力矩阵E中第i行、第j列的值为eij,eij表示查询的文本中第i个单词与候选问答的文本中第j个单词之间的注意力权重得分,注意力权重得分的高低代表语义相关性的大小;
式中,先利用softmax函数对注意力权重得分eij进行归一化,eiu表示对eij从E的列方向上进行加权归一化,此时eiu的下标u从1变化到M,euj表示对eij从E的行方向上进行加权归一化,此时euj的下标u从1变化到N;并基于BiLSTM的隐藏单元维度d将归一化之后的权重乘以使注意力权重得分的梯度更加稳健,再将得到的结果与查询的上下文向量和候选问答的上下文向量进行加权求和;其中,表示查询的文本中第i个单词与候选问答的文本的所有单词之间的语义交互向量,表示候选问答的文本中第j个单词与查询的文本的所有单词之间的语义交互向量;
2.4)为获取语义匹配特征,对查询和候选问答分别执行多角度融合;
将查询和候选问答各自的上下文向量和语义交互向量以拼接、相减、相乘的方式进行融合,具体为:将上下文向量、语义交互向量、上下文向量与语义交互向量相减的结果、上下文向量与语义交互向量相乘的结果拼接在一起,获得融合向量,其中,对于上下文向量与语义交互向量相减的结果、上下文向量与语义交互向量相乘的结果,还要输入到一个单层的全连接网络以丰富非线性特征的提取,然后再和上下文向量、语义交互向量进行拼接;详情如公式所示:
式中,hq和hc分别表示查询的融合向量和候选问答的融合向量,concat()为连接操作,F1、F2、F3、F4为单层的全连接网络,-为向量的元素之间的相减,⊙为向量的元素之间的相乘;
2.5)为进一步突出上述多角度融合的特征提取效果,对查询的融合向量hq和候选问答的融合向量hc执行平均池化AvePool和最大池化MaxPool,将hq和hc进行平均池化和最大池化得到的结果分别进行拼接,得到查询的序列匹配向量Vq和候选问答的序列匹配向量Vc:
Vq=concat(AvePool(hq),MaxPool(hq))
Vc=concat(AvePool(hc),MaxPool(hc))
2.6)为丰富特征提取,在执行步骤2.3)-2.5)的同时,增加一个多层次卷积结构对BiLSTM获得的查询上下文向量和候选问答的上下文向量进行处理;多层次卷积结构含B个分支,每个分支对输入到多层次卷积结构的向量执行s层具有不同大小的卷积核的Conv1d卷积操作,第i个分支的卷积特征为bi,i=1,2,...,B,将所有B个分支的卷积特征输入到B个单层的全连接网络中,拼接各个分支的结果获得查询的中间向量pq和候选问答的中间向量pc:
pq=concat(G1(b1);...;Gi(bi);...;GB(bB))
pc=concat(G1(b1);...;Gi(bi);...;GB(bB))
式中,Gi表示第i个分支对应的单层的全连接网络;
在多层次卷积结构的最后,对pq和pc执行平均池化和最大池化,并将平均池化和最大池化的结果进行拼接,得到整查询的卷积匹配向量Cq和候选问答的匹配向量Cc:
Cq=concat(AvePool(pq),MaxPool(pq))
Cc=concat(AvePool(pc),MaxPool(pc))
2.7)基于查询的序列匹配向量Vq、候选问答的序列匹配向量Vc、查询的卷积匹配向量Cq和候选问答的匹配向量Cc,使用一个包含两层全连接网络的全连接层进行最终的语义相关性的预测:
y=FC2(FC1(concat(Vq,Cq,Vc,Cc)))
式中,FC1和FC2分别表示第一层全连接网络与第二层全连接网络,y为深度模型预测出的查询和候选问答的文本对{Q,C}之间的语义相关性;
2.8)根据步骤1)所述的训练集对深度模型进行训练,根据梯度下降算法来优化深度模型的参数,将训练集迭代数十个轮次之后得到最优模型。
进一步,在步骤3)中,利用步骤2)训练出的最优模型,预测步骤1)所述的测试集的查询与候选问答的文本对之间的语义相关性,然后根据相关性的大小排列候选问答,排序后的列表作为检索结果,此时与查询相关的候选问答将排在列表前端。
本发明与现有技术相比,具有如下优点与有益效果:
1、本发明基于Stack Overflow的问答数据构建语料库并训练词向量,相比于常规的文本语料库所训练的词向量,强化了编程术语之间的语义关联,有利于BiLSTM的上下文特征提取。
2、本发明利用多角度融合处理查询和候选问答的上下文向量与语义交互向量,一是多种的计算方式丰富了特征提取,二是平均池化和最大池化能够保留基本特征的同时突出显著特征,提升特征提取的效果。
3、本发明基于BiLSTM提取的上下文向量,利用多层次卷积结构提取卷积匹配向量,能够提升查询和候选问答的文本中短语的模式匹配;同时,多层次卷积结构设置多个不同卷积核的卷积分支,尽可能全面地提取了可能存在的短语模式。
4、本发明方法基于文本语义匹配,克服了在编程问答论坛中的相关问答检索面临的词汇鸿沟的困境。
5、本发明结合BiLSTM和多层次卷积结构进行文本语义匹配,丰富了特征提取的角度,并且利用交互注意力矩阵、多角度融合和池化层进一步深化了BiLSTM提取的上下文向量,相比单一的卷积神经网络或循环神经网络的方法提高了检索精度。
附图说明
图1为本发明提出的文本语义匹配的深度模型的网络结构示意图。
图2为本发明所使用的多层次卷积结构的示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
本实施例公开了一种基于文本语义匹配的Stack Overflow相关问答检索方法,采用了Siamese网络作为模型的基础框架,即在模型整体框架上利用对称且部分参数共享的神经网络模块对输入的查询和候选问答对进行处理,其具体实施步骤如下:
1)获取Stack Overflow的相关问答数据集,对问答数据集的文本进行预处理;首先清洗文本:利用正则表达式去除文本中的超文本标签、代码片段、域名、标点符号、数字,将文本中的英文字母小写化;然后基于文本的单词之间的空格对文本进行分词;根据NLTK的英文停用词表移除文本中常见的英文停用词,将词频的阈值设置为5,移除文本中词频低于阈值的单词;基于Porter算法将文本中的单词进行词干化处理;
将预处理后的问答数据集的文本构建成语料库;基于语料库,采用Word2vec的Skip-gram算法训练向量维度为300的词向量W2V-SE,训练完成后保存词向量W2V-SE的参数。
同时,将预处理后的问答数据集的文本构建成查询和候选问答的文本对{Q,C},其中每个查询的文本对应多个候选问答的文本,并把查询和候选问答的文本对按8:2的比例划分为训练集和测试集。
2)构建并训练一个文本语义匹配的深度模型,模型结构见图1所示,具体实施如下:
2.1)将训练集中的查询和候选问答的文本对{Q,C}作为模型的输入;利用W2V-SE的参数构建词向量层,利用词向量层将{Q,C}转换为查询词向量q={qi},i=1,2,...,N和候选问答词向量c={cj},j=1,2,...,M,其中qi和cj是查询和候选问答的文本中第i个和第j个词的词向量表示,N和M是查询和候选问答的文本的长度;
2.2)为了将查询词向量和候选词向量中的每个单词与前后的文本联系起来,采用BiLSTM在查询词向量q和候选问答词向量c的前向和后向共两个方向上依次提取查询和候选问答的上下文特征,获得查询的上下文向量和候选问答的上下文向量其中和是查询和候选问答的第i个和第j个词的上下文向量:
式中,符号→和←分别代表BiLSTM的前向操作和后向操作;
2.3)为促进查询和候选问答之间的语义相关性的特征,对于BiLSTM获得查询的上下文向量和候选问答的上下文向量基于交互注意力机制,采用向量间的点乘算法计算和之间的交互注意力矩阵为实数集,交互注意力矩阵E中第i行、第j列的值为eij,eij表示查询的文本中第i个单词与候选问答的文本中第j个单词之间的注意力权重得分,注意力权重得分的高低代表语义相关性的大小;
式中,先利用softmax函数对注意力权重得分eij进行归一化,eiu表示对eij从E的列方向上进行加权归一化,此时eiu的下标u从1变化到M,euj表示对eij从E的行方向上进行加权归一化,此时euj的下标u从1变化到N;并基于BiLSTM的隐藏单元维度d将归一化之后的权重乘以使注意力权重得分的梯度更加稳健,再将得到的结果与查询的上下文向量和候选问答的上下文向量进行加权求和;具体的,表示查询的文本中第i个单词与候选问答的文本的所有单词之间的语义交互向量,表示候选问答的文本中第j个单词与查询的文本的所有单词之间的语义交互向量;
2.4)为获取语义匹配特征,对查询和候选问答分别执行多角度融合;
将查询和候选问答各自的上下文向量和语义交互向量以拼接、相减、相乘的方式进行融合,具体为:将上下文向量、语义交互向量、上下文向量与语义交互向量相减的结果、上下文向量与语义交互向量相乘的结果拼接在一起,获得融合向量,其中,对于上下文向量与语义交互向量相减的结果、上下文向量与语义交互向量相乘的结果,还要输入到一个单层的全连接网络以丰富非线性特征的提取,然后再和上下文向量、语义交互向量进行拼接;详情如公式所示:
式中,hq和hc分别表示查询的融合向量和候选问答的融合向量,concat()为连接操作,F1,F2,F3,F4为单层的全连接网络,-为向量的元素之间的相减,⊙为向量的元素之间的相乘;
2.5)为进一步突出上述多角度融合的特征提取效果,对查询的融合向量hq和候选问答的融合向量hc执行平均池化AvePool和最大池化MaxPool,将hq和hc进行平均池化和最大池化得到的结果分别进行拼接,得到查询的序列匹配向量Vq和候选问答的序列匹配向量Vc:
Vq=concat(AvePool(hq),MaxPool(hq))
Vc=concat(AvePool(hc),MaxPool(hc))
2.6)为丰富特征提取,在执行步骤2.3)-2.5)的同时,增加一个多层次卷积结构对BiLSTM获得的查询上下文向量和候选问答的上下文向量进行处理;如图2所示,多层次卷积结构含3个分支,分支1、分支2、分支3在第一层对输入到多层次卷积结构的向量执行Conv1d卷积操作,随后分支1在第二层不执行操作,而分支2、分支3在第二层执行Conv1d卷积操作,图2中的K=1、K=3、K=5分别表示该处的Conv1d卷积操作的卷积核的大小为1、3、5;3个分支的卷积特征分别为b1,b2,b3,将3个分支的卷积特征分别输入到各自的单层的全连接网络G1,G2,G3,拼接各个分支的结果获得查询的中间向量pq和候选问答的中间向量pc:
pq=concat(G1(b1);...;Gi(bi);...;GB(bB))
pc=concat(G1(b1);...;Gi(bi);...;GB(bB))
式中,Gi表示分支i对应的单层的全连接网络;
在多层次卷积结构的最后,对pq和pc执行平均池化和最大池化,并将平均池化和最大池化的结果进行拼接,得到整查询的卷积匹配向量Cq和候选问答的匹配向量Cc:
Cq=concat(AvePool(pq),MaxPool(pq))
Cc=concat(AvePool(pc),MaxPool(pc))
2.7)基于查询的序列匹配向量Vq、候选问答的序列匹配向量Vc、查询的卷积匹配向量Cq和候选问答的匹配向量Cc,使用一个包含两层全连接网络的全连接层进行最终的语义相关性的预测:
y=FC2(FC1(concat(Vq,Cq,Vc,Cc)))
式中,FC1和FC2分别表示第一层全连接网络与第二层全连接网络,y为深度模型预测出的查询和候选问答的文本对{Q,C}之间的语义相关性;
2.8)根据步骤1)所述的训练集对深度模型进行训练,训练过程中,使用交叉熵作为损失函数,采用Adam作为优化器,初始学习率设为0.0003,梯度裁剪的阈值设为5,迭代的次数设为30次,每个训练批次的大小为256,BiLSTM的隐藏单元维度设为256,根据梯度下降算法来优化深度模型的参数,当损失函数计算出来的损失值不再下降之后,认为深度模型训练至最优,保存参数后得到最优模型。
3)利用步骤2)得到的最优模型去预测步骤1)所述的测试集的查询与候选问答的文本对之间的语义相关性,然后根据相关性的大小排列候选问答,排序后的列表作为检索结果,此时与查询相关的候选问答将排在列表前端。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (4)
1.基于文本语义匹配的Stack Overflow相关问答检索方法,其特征在于,包括以下步骤:
1)获取Stack Overflow的问答数据集,并对问答数据集的文本进行预处理,包括清洗文本、分词、移除停用词和低频词以及词干化;将预处理后的问答数据集的文本构建成语料库,基于语料库训练词向量;将预处理后的问答数据集的文本构建成查询和候选问答的文本对,并把查询和候选问答的文本对按比例划分为训练集和测试集;
2)构建一个文本语义匹配的深度模型,利用步骤1)所述的训练集对构建的深度模型进行训练,得到最优模型;其中,所述的深度模型基于双向长短期记忆网络BiLSTM进行改进,其情况为:基于步骤1)所训练的词向量构造的词向量层,将查询和候选问答的文本对转换为查询向量与候选问答向量;采用BiLSTM将查询向量和候选问答向量转换为查询的上下文向量与候选问答的上下文向量;在BiLSTM后计算查询的上下文向量和候选问答的上下文向量之间的交互注意力矩阵,利用交互注意力矩阵分别获取查询的语义交互向量和候选问答的语义交互向量,这一步目的是提取语义交互特征,促进查询和候选问答的文本对之间的语义信息交流;采用多角度融合,以几种不同的计算方式把查询和候选问答各自的上下文向量和语义交互向量进行融合,得到查询的融合向量和候选问答的融合向量;采用池化层,以进一步突出多角度融合的效果,利用最大池化和平均池化从查询的融合向量和候选问答的融合向量提取查询的序列匹配向量和候选问答的序列匹配向量;采用多层次卷积结构,以丰富特征提取,多层次卷积结构根据BiLSTM生成的查询的上下文向量与候选问答的上下文向量来提取查询的卷积匹配向量和候选问答的卷积匹配向量;结合查询的序列匹配向量、候选问答的序列匹配向量、查询的卷积匹配向量和候选问答的卷积匹配向量,采用一个多层的全连接层进行语义相关性的预测;
3)利用步骤2)得到的最优模型,预测步骤1)所述的测试集的查询和候选问答的文本对之间的语义相关性,根据相关性的大小排列候选问答,排序后的列表作为检索结果。
2.根据权利要求1所述的基于文本语义匹配的Stack Overflow相关问答检索方法,其特征在于,在步骤1)中,对于问答数据集的文本预处理,构建语料库并训练向量,构建查询和候选问答的文本对,执行以下操作:
1.1)获取Stack Overflow的问答数据集,对问答数据集的文本进行预处理;首先清洗文本:利用正则表达式去除文本中的超文本标签、代码片段、域名、标点符号和数字,将文本中的英文字母小写化;然后基于文本的单词之间的空格对文本进行分词;移除文本中常见的英文停用词,根据设定的阈值移除文本中词频低于阈值的单词;基于Porter算法将文本中的单词进行词干化处理;
1.2)将预处理后的问答数据集的文本构建成语料库;基于语料库采用词向量算法来训练词向量;
1.3)将预处理后的问答数据集的文本构建成查询和候选问答的文本对{Q,C},其中每个查询的文本对应多个候选问答的文本,并把查询和候选问答的文本对按比例划分为训练集和测试集。
3.根据权利要求1所述的基于文本语义匹配的Stack Overflow相关问答检索方法,其特征在于,所述步骤2)包括以下步骤:
2.1)构建一个文本语义匹配的深度模型;
2.2)深度模型的输入为查询和候选问答的文本对{Q,C};为了将输入的文本对转换成向量以方便深度模型进一步处理,利用步骤1)所训练的词向量的参数构建词向量层,用词向量层将查询和候选问答的文本对{Q,C}转换为查询词向量q={qi},i=1,2,...,N和候选问答词向量c={cj},j=1,2,...,M,其中qi和cj是查询和候选问答的文本中第i个和第j个词的词向量,N和M是查询和候选问答的文本的长度;
2.2)为了将查询词向量和候选词向量中的每个单词与前后的文本联系起来,采用BiLSTM在查询词向量q和候选问答词向量c的前向和后向共两个方向上依次提取查询和候选问答的上下文特征,获得查询的上下文向量和候选问答的上下文向量其中和是查询和候选问答的第i个和第j个词的上下文向量:
式中,符号→和←分别代表BiLSTM的前向操作和后向操作;
2.3)为促进查询和候选问答之间的语义相关性的特征,对于BiLSTM获得查询的上下文向量和候选问答的上下文向量基于交互注意力机制,采用向量间的点乘算法计算和之间的交互注意力矩阵 为实数集,交互注意力矩阵E中第i行、第j列的值为eij,eij表示查询的文本中第i个单词与候选问答的文本中第j个单词之间的注意力权重得分,注意力权重得分的高低代表语义相关性的大小;
式中,先利用softmax函数对注意力权重得分eij进行归一化,eiu表示对eij从E的列方向上进行加权归一化,此时eiu的下标u从1变化到M,euj表示对eij从E的行方向上进行加权归一化,此时euj的下标u从1变化到N;并基于BiLSTM的隐藏单元维度d将归一化之后的权重乘以使注意力权重得分的梯度更加稳健,再将得到的结果与查询的上下文向量和候选问答的上下文向量进行加权求和;其中,表示查询的文本中第i个单词与候选问答的文本的所有单词之间的语义交互向量,表示候选问答的文本中第j个单词与查询的文本的所有单词之间的语义交互向量;
2.4)为获取语义匹配特征,对查询和候选问答分别执行多角度融合;
将查询和候选问答各自的上下文向量和语义交互向量以拼接、相减、相乘的方式进行融合,具体为:将上下文向量、语义交互向量、上下文向量与语义交互向量相减的结果、上下文向量与语义交互向量相乘的结果拼接在一起,获得融合向量,其中,对于上下文向量与语义交互向量相减的结果、上下文向量与语义交互向量相乘的结果,还要输入到一个单层的全连接网络以丰富非线性特征的提取,然后再和上下文向量、语义交互向量进行拼接;详情如公式所示:
式中,hq和hc分别表示查询的融合向量和候选问答的融合向量,concat()为连接操作,F1、F2、F3、F4为单层的全连接网络,-为向量的元素之间的相减,⊙为向量的元素之间的相乘;
2.5)为进一步突出上述多角度融合的特征提取效果,对查询的融合向量hq和候选问答的融合向量hc执行平均池化AvePool和最大池化MaxPool,将hq和hc进行平均池化和最大池化得到的结果分别进行拼接,得到查询的序列匹配向量Vq和候选问答的序列匹配向量Vc:
Vq=concat(AvePool(hq),MaxPool(hq))
Vc=concat(AvePool(hc),MaxPool(hc))
2.6)为丰富特征提取,在执行步骤2.3)-2.5)的同时,增加一个多层次卷积结构对BiLSTM获得的查询上下文向量和候选问答的上下文向量进行处理;多层次卷积结构含B个分支,每个分支对输入到多层次卷积结构的向量执行s层具有不同大小的卷积核的Conv1d卷积操作,第i个分支的卷积特征为bi,i=1,2,...,B,将所有B个分支的卷积特征输入到B个单层的全连接网络中,拼接各个分支的结果获得查询的中间向量pq和候选问答的中间向量pc:
pq=concat(G1(b1);...;Gi(bi);...;GB(bB))
pc=concat(G1(b1);...;Gi(bi);...;GB(bB))
式中,Gi表示第i个分支对应的单层的全连接网络;
在多层次卷积结构的最后,对pq和pc执行平均池化和最大池化,并将平均池化和最大池化的结果进行拼接,得到整查询的卷积匹配向量Cq和候选问答的匹配向量Cc:
Cq=concat(AvePool(pq),MaxPool(pq))
Cc=concat(AvePool(pc),MaxPool(pc))
2.7)基于查询的序列匹配向量Vq、候选问答的序列匹配向量Vc、查询的卷积匹配向量Cq和候选问答的匹配向量Cc,使用一个包含两层全连接网络的全连接层进行最终的语义相关性的预测:
y=FC2(FC1(concat(Vq,Cq,Vc,Cc)))
式中,FC1和FC2分别表示第一层全连接网络与第二层全连接网络,y为深度模型预测出的查询和候选问答的文本对{Q,C}之间的语义相关性;
2.8)根据步骤1)所述的训练集对深度模型进行训练,根据梯度下降算法来优化深度模型的参数,将训练集迭代数十个轮次之后得到最优模型。
4.根据权利要求1所述的基于文本语义匹配的Stack Overflow相关问答检索方法,其特征在于,在步骤3)中,利用步骤2)训练出的最优模型,预测步骤1)所述的测试集的查询与候选问答的文本对之间的语义相关性,然后根据相关性的大小排列候选问答,排序后的列表作为检索结果,此时与查询相关的候选问答将排在列表前端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210513871.8A CN115017279A (zh) | 2022-05-12 | 2022-05-12 | 基于文本语义匹配的Stack Overflow相关问答检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210513871.8A CN115017279A (zh) | 2022-05-12 | 2022-05-12 | 基于文本语义匹配的Stack Overflow相关问答检索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115017279A true CN115017279A (zh) | 2022-09-06 |
Family
ID=83068516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210513871.8A Pending CN115017279A (zh) | 2022-05-12 | 2022-05-12 | 基于文本语义匹配的Stack Overflow相关问答检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115017279A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171413A (zh) * | 2023-09-07 | 2023-12-05 | 滨州八爪鱼网络科技有限公司 | 用于数字藏品管理的数据处理系统及其方法 |
CN117931881A (zh) * | 2024-03-15 | 2024-04-26 | 四川鑫正工程项目管理咨询有限公司 | 一种工程造价查询管理方法 |
CN117931881B (zh) * | 2024-03-15 | 2024-05-24 | 四川鑫正工程项目管理咨询有限公司 | 一种工程造价查询管理方法 |
-
2022
- 2022-05-12 CN CN202210513871.8A patent/CN115017279A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171413A (zh) * | 2023-09-07 | 2023-12-05 | 滨州八爪鱼网络科技有限公司 | 用于数字藏品管理的数据处理系统及其方法 |
CN117171413B (zh) * | 2023-09-07 | 2024-03-08 | 滨州八爪鱼网络科技有限公司 | 用于数字藏品管理的数据处理系统及其方法 |
CN117931881A (zh) * | 2024-03-15 | 2024-04-26 | 四川鑫正工程项目管理咨询有限公司 | 一种工程造价查询管理方法 |
CN117931881B (zh) * | 2024-03-15 | 2024-05-24 | 四川鑫正工程项目管理咨询有限公司 | 一种工程造价查询管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110298037B (zh) | 基于增强注意力机制的卷积神经网络匹配的文本识别方法 | |
CN110083705B (zh) | 一种用于目标情感分类的多跳注意力深度模型、方法、存储介质和终端 | |
CN111241294B (zh) | 基于依赖解析和关键词的图卷积网络的关系抽取方法 | |
CN109766544B (zh) | 基于lda和词向量的文档关键词抽取方法和装置 | |
CN111259127B (zh) | 一种基于迁移学习句向量的长文本答案选择方法 | |
CN111291188B (zh) | 一种智能信息抽取方法及系统 | |
CN111831789B (zh) | 一种基于多层语义特征提取结构的问答文本匹配方法 | |
CN113297364B (zh) | 一种面向对话系统中的自然语言理解方法及装置 | |
CN112818694A (zh) | 一种基于规则和改进预训练模型的命名实体识别方法 | |
CN111274794B (zh) | 一种基于传递的同义词扩展方法 | |
CN109271524B (zh) | 知识库问答系统中的实体链接方法 | |
CN111738007A (zh) | 一种基于序列生成对抗网络的中文命名实体识别数据增强算法 | |
CN111221962A (zh) | 一种基于新词扩展与复杂句式扩展的文本情感分析方法 | |
CN116304066B (zh) | 一种基于提示学习的异质信息网络节点分类方法 | |
CN113569001A (zh) | 文本处理方法、装置、计算机设备及计算机可读存储介质 | |
CN113761890A (zh) | 一种基于bert上下文感知的多层级语义信息检索方法 | |
CN114818717A (zh) | 融合词汇和句法信息的中文命名实体识别方法及系统 | |
CN115310448A (zh) | 一种基于bert和字词向量结合的中文命名实体识别方法 | |
CN111159345A (zh) | 一种中文知识库答案获取方法及其装置 | |
CN111581364B (zh) | 一种面向医疗领域的中文智能问答短文本相似度计算方法 | |
CN110750642A (zh) | 一种基于cnn的中文关系分类方法及系统 | |
CN112214989A (zh) | 一种基于bert的汉语句子简化方法 | |
CN116010553A (zh) | 一种基于双路编码和精确匹配信号的观点检索系统 | |
CN114356990A (zh) | 基于迁移学习的基地命名实体识别系统及方法 | |
CN115017279A (zh) | 基于文本语义匹配的Stack Overflow相关问答检索方法 |
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 |