一种软件问答社区中的技术标签推荐方法技术

技术编号:17468531 阅读:31 留言:0更新日期:2018-03-15 05:42
本发明专利技术首基于深度学习提出面向软件问答社区的标签推荐方法。该项方法包括:步骤1,预处理;步骤2,词义表示学习;步骤3,短语以及句子语义学习;步骤4,语义融合;在预处理前为训练阶段,所述训练阶段用于构造词典并保存模型的结构与权重;在预处理后为部署阶段,所述部署阶段则是对于新的问题,在转化成索引序列后,加载保存的模型以预测并推荐最有可能的K个标签,K为正整数。本发明专利技术可以提供软件问答社区中的问题资源管理、维护已有的标签系统的功能,并且为用户提供自动化的标签标注服务。针对现有的标签推荐技术存在的缺陷,本发明专利技术可以提高准确性以及效率,使得标签推荐在软件问答社区中能够更加实用。

【技术实现步骤摘要】
一种软件问答社区中的技术标签推荐方法
本专利技术涉及一种系统推荐方法,尤其涉及一种软件问答社区中的技术标签推荐方法。
技术介绍
软件问答社区是指专注于解决技术性问题以及软件开发的问答社区,例如全球影响力较大的StackOverflow社区。因其庞大的用户与资源量(超过五百万的用户数,千万级的问题、回答数),使得软件资源管理变得复杂。为了缓解这一问题,StackOverflow要求用户在提出问题时给出1~5个Tag,即技术性标签。而由于部分提问者对自己提出的技术问题缺乏足够的理解以及设置标签本身存在极大的自由度,使得这种Tag系统变得臃肿,违背了其初衷。因此,研究人员研究了自动化的标签(Tag)推荐方法,即用户在给出问题描述后,能够自动的把合适的标签推荐给用户的方法。现有技术中,面向软件问答社区的代表性标签推荐技术包括基于贝叶斯学习、Labeled-LDA以及信息检索的方法,分别称为TagCombine、EnTagRec以及TagMulRec。其中,TagCombine是研究人员首次提出的应用在互联网软件信息社区中的Tag推荐技术。该技术主要考虑了问题中的文本信息,包含三个不同组件:多标签排序、基于相似度计算以及基于标签-术语(tag-term)的排序组件。多标签排序是利用多项式朴素贝叶斯分类器来对问题进行分类的组件;基于相似度计算的组件是通过TF-IDF方法搜索相似的问题并推荐这些问题的标签;基于标签-术语的排序组件则是根据历史标记计算出问题中的术语与标签的亲和度,以此进行标签的排序,将这三个组件加权求和得到最终的推荐结果。EnTagRec方法包括两部分,分别是基于LabeledLDA的贝叶斯推断组件以及基于频率的推断组件。前者使用LabeledLDA的方法对问题进行多分类处理,后者则首先借助于StanfordNLP工具对问题描述进行词性标注以去除无关词语,然后使用激活扩散算法(spreadingactivationalgorithm)寻找相关的tag。相对于TagCombine,该方法在准确性方面有着大幅度的提升。TagMulRec专注于解决大规模的标签推荐问题,借助于Lucene,该项技术首先构造问题描述中的词语-文档的索引,然后通过计算相似度的方法搜索出相似的问题,将这些问题的标签作为候选集合。对于该集合,TagMulRec提出了一种简单的标签排序算法来推荐合适的标签。TagCombine技术由于在多标签排序时需要构建多个“一对多”的贝叶斯分类器,所以耗费大量时间。此外,其准确性相对于另外两项技术较低。EnTagRec技术受限于数据集的大小。原因在于其使用的LabeledLDA以及基于频率的推断方法复杂度高,训练所需要的时间随着数据集的大小急剧增加,因此不适用于百万级甚至几十万级的数据量的训练,这极大地限制了其应用范围,尤其是StackOverflow这种拥有海量软件问答资源的社区。TagMulRec技术的准确性不如EnTagRec,并且在推荐标签时需要实时搜索相似问题。在百万级的数据集上,即使依靠索引机制,其推荐所需要的时间也较长。总体来说,现有技术进行标签推荐时考虑了文本的统计信息,如词频等等,忽略了问题本身包含的语义信息,从而导致推荐的准确性低,耗费时间长。
技术实现思路
本专利技术首基于深度学习提出面向软件问答社区的标签推荐方法。该项方法包括:步骤1,预处理;步骤2,词义表示学习;步骤3,短语以及句子语义学习;步骤4,语义融合;在预处理前为训练阶段,所述训练阶段用于构造词典并保存模型的结构与权重;在预处理后为部署阶段,所述部署阶段则是对于新的问题,在转化成索引序列后,加载保存的模型以预测并推荐最有可能的K个标签,K为正整数。本专利技术可以提供软件问答社区中的问题资源管理、维护已有的标签系统的功能,并且为用户提供自动化的标签标注服务。针对现有的标签推荐技术存在的缺陷,本专利技术可以提高技术标签推荐的准确性以及效率,使得标签推荐在软件问答社区中能够更加实用。附图说明图1为本专利技术的整体流程图;图2为本专利技术中学习短语和句子语义的模型图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本方法的整体流程具体流程如图1所示,包括:步骤1,预处理;步骤2,词义表示学习;步骤3,短语以及句子语义学习;步骤4,语义融合。其中,训练阶段用于构造词典并保存模型的结构与权重;部署阶段则是对于新的问题,在转化成索引序列后,加载保存的模型以预测并推荐最有可能的K个标签,K为正整数。在训练阶段,首先从源数据中抽取出训练样本,即问题与Tag集合形成的元组。然后将其中的问题文本进行预处理,并且把单词对应的序列索引值记录保存下来,转化成整数索引序列。将这些序列作为Word2Vec的输入以训练词向量,并将这些预训练的词向量加载到模型的词向量模块中。同时,经过预处理后的问题与Tag作为模型参数训练的样本,也就是作为图中核心模块的输入。在训练结束后,保存该模型。在部署阶段,对于未知Tag的新问题,借助于保存的单词词典,形成对应的索引序列,然后加载训练好的核心模型,进行Tag的预测,得到对应的概率。最后将这些Tag按概率排序,取前k大的Tag作为推荐结果。在预处理中,首先在从StackOverflow获取源数据后,将其中的问题与标签数据提取出来,形成供训练的问题标签对。对于每个问题,去除其中的标点符号与HTML标签,并对诸如.Net等含有标点的技术关键词作转换处理,如转换成“dotNet”。然后对于问题中的代码数据,利用正则表达式过滤掉长度大于三个词的代码片段。接下来,经过预处理的问题信息用于构造词语-索引对应的词典,以将原始数据转化成固定长度的序列,即词的索引的序列,如[2,6,8…]。此长度由问题的平均长度决定,本方法取固定值200,约为平均长度的两倍。即限定每个问题的长度为200词,若不足200,则以0填充。在语义表示学习中,为了以向量的形式表示每个词的含义,本方法利用词嵌入(WordEmbedding)技术来训练从StackOverflow获取的海量软件开发问题的文本数据,以此充分学习出词语的精确语义表示。词嵌入的直观解释为:两个可相互替换的词有相似的向量表示。比如,在讨论Java相关问题时,其中的“class”和“object”均适用于句子“Thismethodinthe__extendsitsparentinJava”,因此他们的向量表示非常相近。本专利技术使用Skip-gram模型来训练词向量。该模型本质上是一个三层的神经网络,即输入层、隐藏层和输出层。首先,对于独热(one-hot)表示的输入xk,有相邻的词语y1,y2,…,yM,M为正整数,隐藏层与输入层之间的权重矩阵为W,则xk的向量表示为ek=Wkxk。θ为中间的参数。在训练时,使用最大似然准则,即最大化下式:其中的N为总的词数,条件概率使用softmax函数来计算,如下:这里D表示训练样本的词汇表。此外,考虑到训练的语料数量过大,本专利技术借助负采本文档来自技高网
...
一种软件问答社区中的技术标签推荐方法

【技术保护点】
一种软件问答社区中的技术标签推荐方法,其特征在于,包括:步骤1,预处理;步骤2,词义表示学习;步骤3,短语以及句子语义学习;步骤4,语义融合;在预处理前为训练阶段,所述训练阶段用于构造词典并保存模型的结构与权重;在预处理后为部署阶段,所述部署阶段则是对于新的问题,在转化成索引序列后,加载保存的模型以预测并推荐最有可能的K个标签,所述K为正整数。

【技术特征摘要】
1.一种软件问答社区中的技术标签推荐方法,其特征在于,包括:步骤1,预处理;步骤2,词义表示学习;步骤3,短语以及句子语义学习;步骤4,语义融合;在预处理前为训练阶段,所述训练阶段用于构造词典并保存模型的结构与权重;在预处理后为部署阶段,所述部署阶段则是对于新的问题,在转化成索引序列后,加载保存的模型以预测并推荐最有可能的K个标签,所述K为正整数。2.如权利要求1所述的方法,其特征在于,在所述步骤1的预处理中,首先在获取源数据后,将其中的问题与标签数据提取出来,形成供训练的问题-标签对,对于每个问题,去除其中的标点符号与HTML标签,并对含有标点的技术关键词作转换处理,然后对于问题中的代码数据,利用正则表达式过滤掉长度大于三个词的代码片段,最后经过预处理的问题信息用于构造词语-索引对应的词典,以将原始数据转化成固定长度的序列,即词的索引的序列。3.如权利要求1所述的方法,其特征在于,在步骤2的词义表示学习中,利用使用Skip-gram模型来训练词向量,该模型本质上是一个三层的神经网络,即输入层、隐藏层和输出层;首先,对于独热表示的输入xk,有相邻的词语y1,y2,…,yM,隐藏层与输入层之间的权重矩阵为W,所述xk的向量表示为ek=Wkxk,θ表示中间的参数,在训练时使用最大似然准则,即最大化公式所述N,M为正整数,使用softmax函数来计算所述最大化公式中的条件概率,在训练结束后,便可以得到每个词的向量表示,用于进一步地语义提取。4.如权利要求1所述的方法,其特征在于,还包括,在步骤3的短语和句子语义学习中,首先将句子转化成语义矩阵,对于句子中的每个词,抽取对应的词向量,并将这些向量进行拼接,形成类似于图像处理中的图片格式,拼接的公式为k≤L,其中L为正整数,表示问题的长度,Q1:k表示用前K个词组成该矩阵;并将上文的文档矩阵转化成特...

【专利技术属性】
技术研发人员:孙海龙刘旭东张建田言飞
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1