当前位置: 首页 > 专利查询>武汉大学专利>正文

一种基于神经网络分类的软件信息站点快速标签推荐方法技术

技术编号:20546005 阅读:30 留言:0更新日期:2019-03-09 18:56
本发明专利技术涉及一种基于神经网络分类的软件信息站点快速标签推荐方法,具体是涉及对软件信息站点中的问题数据集先进行数据预处理,再通过建立词典生成句向量。在输入层中,提取句向量中用于表示软件元素的文本描述的n个n元特征。在隐藏层中,这些n元特征被转换为另一种表示方法并被平均以形成隐藏变量。最后,我们使用softmax函数来计算现有标签上的概率分布是一种基于神经网络分类的软件信息站点快速标签推荐方法,具有如下突出特点和优点:第一、构建一个基于单隐层神经网络的合适的框架;第二、利用文本等级约束来实现准确性和效率;第三、利用特征间的共享参数,避免大标签输出空间的局限性。

A Fast Label Recommendation Method for Software Information Sites Based on Neural Network Classification

The invention relates to a fast label recommendation method for software information sites based on neural network classification, in particular to data preprocessing for problem data sets in software information sites, and then sentence vectors are generated by establishing dictionaries. In the input layer, n N-element features are extracted from sentence vectors to represent the text description of software elements. In the hidden layer, these n-ary features are transformed into another representation and averaged to form hidden variables. Finally, we use the software Max function to calculate the probability distribution on the existing labels, which is a fast label recommendation method for software information sites based on neural network classification. It has the following outstanding characteristics and advantages: first, to construct an appropriate framework based on single hidden layer neural network; second, to achieve accuracy and efficiency by using text hierarchical constraints; third, to use features between. Share parameters to avoid the limitation of large label output space.

【技术实现步骤摘要】
一种基于神经网络分类的软件信息站点快速标签推荐方法
本专利技术涉及一种对软件信息站点的标签推荐方法,具体是涉及对软件信息站点中的问题数据集先进行数据预处理,再通过建立词典生成句向量。在输入层中,提取句向量中用于表示软件元素的文本描述的n个n元特征。在隐藏层中,这些n元特征被转换为另一种表示方法并被平均以形成隐藏变量。最后,我们使用softmax函数来计算现有标签上的概率分布是一种基于神经网络分类的软件信息站点快速标签推荐方法。
技术介绍
随着互联网的快速发展,越来越多的IT爱好者在互联网上寻求帮助,分享经验,以及学习新技术知识,由此出现了各种软件信息站点,像StackOverflow和Freeecode这样的软件信息站点可以为全世界的开发者提供信息共享和交流。为了便于正确的分类和高效的搜索,开发者需要为他们的发布提供标签。然而,标签本质上是一个不协调的过程,不仅取决于开发者对自己帖子的理解,还取决于其他因素,包括开发者的英语技能和对现有帖子的了解。因此,即使现有的标签已经足够,开发者也不断创建新的标签。最终的效果是,随着时间的推移,越来越多的标签具有严重的冗余性,并有更多的新标签发布,从而导致任何基于标签的算法效率和准确性都会降低。目前国内外针对软件信息站点的标签推荐,有基于模糊集合理论,考虑了系统的动态演化的标签推荐方法,有包含多标签排名组件,基于相似度的排名组件和基于标签项的排名组件的标签推荐方法,还有基于贝叶斯推理组件和频率推理组件的标签推荐方法。上述基于模糊集合理论和相似度排名及贝叶斯推理的方法存在以下不足:(1)它们应用限制在相对较小的数据集中;(2)它们是不可扩展的,并且不能够处理问答社区中的连续更新;(3)它们的召回率和精度指标表现并不理想。
技术实现思路
本专利技术的目的在于针对目前软件信息站点标签推荐方面的不足,提供一种基于神经网络分类的软件信息站点快速标签推荐方法,快速标签推荐方法的整体标签推荐架构由三层组成:输入层,隐藏层和输出层。在输入层中,提取句向量中用于表示软件元素的文本描述的n个n元特征。在隐藏层中,这些n元特征被转换为另一种表示方法并被平均以形成隐藏变量。最后,我们使用softmax函数来计算现有标签上的概率分布。为了达到上述的目的,本专利技术的构思如下:首先使用scrapy框架从StackOverflow等软件信息站点上获取问题数据,并用脚本对数据进行清洗。在输入层中,存在用于表示软件元素的文本描述的n个n元特征(f1,...,fN),文本描述中的特征可以是文本中的一个词。在隐藏层中,这些n元特征(f1,...,fN)被转换为(x1,...,xN)并被平均以形成隐藏变量Xh。最后,我们使用softmax函数来计算现有标签上的概率分布。根据以上构思,本专利技术采用的一个技术方案是:提供一种基于神经网络分类的软件信息站点快速标签推荐方法,其特征在于:包括以下步骤:步骤1、使用scrapy框架从软件信息站点上获取问题数据集和标签集;步骤2、对每条问题数据进行数据清洗,去除问题中的标点符号,多余空格和代码,只留下单词,并将单词全部转化为小写,得到清洗后的数据集data;步骤3、将数据集data分为规模为n的训练集train和规模为的m测试集test;步骤4、对训练集train建立词典D:步骤5、标签集大小为s_tag,trainj建立长度为s_tag的向量tagj,将tagj中trainj的标签在标签集中的对应位置的元素置1,其余元素置0;步骤6、构建输入层:给定trainj文本描述,快速标签推荐方法构造n-gram特征(f1,...,fN);对于每个n元特征fi,特征向量fti可以通过使用查找表TL获得;借助于权重矩阵A的共享参数,最终获得用于表示输入层中的文本描述的ngram特征向量(x1,...,xN);步骤7、构建隐藏层:在隐藏层中,计算n-gram特征向量(x1,...,xN)的平均值以使用以下等式获得隐藏变量Xh:Xh用于表示隐藏层中的文本描述;步骤8:构造输出层:输出层对应于二叉树;叶节点表示软件信息站点中的标签;叶节点的权重代表其标签的频率;叶节点数为k,非叶节点数为(k-1);步骤9、对训练集T进行多轮迭代神经网络训练;步骤10、利用测试集对模型进行测试,计算召回率准确率和F1-scorel来检验模型的效果,调整参数,重复步骤9直到得一个合适的神经网络模型;在上述的一种基于神经网络分类的软件信息站点快速标签推荐方法,所述步骤4具体包括:步骤4a、建立字典变量dict;步骤4b、对于train中的每个词Wi来说,如果Wi没有出现在dict中,则将键值对{Wi:1}加入dict,如果Wi在dict中已存在,则对D中的Wi的值进行更新:{Wi:w+1};步骤4c、对dict中的词dicti进行编号得到词典D;在上述的一种基于神经网络分类的软件信息站点快速标签推荐方法,所述步骤6具体包括:步骤6a、本方法使用n-gram作为附加功能来捕获关于本地词序的部分信息;首先构造查找表TL以存储n-gram的m维特征向量;查找表的大小理论上是|D|n,其中|D|是词典D的大小;步骤6b、扫描软件信息站点,并且对软件信息站点中出现的所有n-gram元素,在TL中被分配了一个m维特征向量;对于TL中的每个n-gram,随机地初始化m维特征向量并且可以由index(n-gram)=hashcode(n-gram)定位一个n-gram;本方法步骤6c、构造一个共享权重矩阵A;n-gram特征fi的特征向量xi可以通过以下等式获得:xi=A×TL(hashcode(fi))∈Rm;在上述的一种基于神经网络分类的软件信息站点快速标签推荐方法,所述步骤8基于以下定义:1)pt表示从根节点到对应于标签t的叶节点的路径;2)lt表示路径pt中的节点的数量;3)表示路径pt中的lt节点;是根节点,是标签t对应的叶节点;4)表示标签t的霍夫曼编码;编码由lt-1位组成;表示路径pt中第i个节点的编码;根节点没有编码;5)表示路径pt中的非叶节点的向量;表示路径pt中第i个非叶节点的向量;步骤8具体包括:步骤8a、基于哈夫曼树,首先构造标签的概率分布p(t|Xh)(Xh∈Rn);对于叶节点t,路径pt中分支的数量为lt-1;路径中的每个分支都可以看作是二元分类过程;对于每个非叶子节点,我们需要指定左右子节点的类别;除了根节点之外,霍夫曼树中的每个节点都对应一个0或1的霍夫曼码;本方法中,编码为0的节点被定义为正类,否则定义为负类;该关系在以下公式中定义:根据softmax函数,节点被分类为正类的概率可以通过以下公式来计算:其中θ是一个节点的向量;节点被分类为负类的概率是步骤8b、对于软件信息站点中的每个标签t,存在从根到叶的路径pt;在霍夫曼树;路径上有lt-1个分支;由于每一个分支都可以看作是一个二元分类过程,每一个分类产生一个概率我们可以通过概率的乘积得到p(t|Xh),以下公式描述了这种关系:其中的可由以下两个公式求得:对于标签为oi.t的每个样本oi.d,我们对样本做如下处理:;该公式可以可以通过p(t|Xh)公式转换为以下公式:以上公式是该模型的目标函数;我们可以通过使用随机梯度下降和线性衰减学本文档来自技高网
...

【技术保护点】
1.一种基于神经网络分类的软件信息站点快速标签推荐方法,其特征在于:包括以下步骤:步骤1、使用scrapy框架从软件信息站点上获取问题数据集和标签集;步骤2、对每条问题数据进行数据清洗,去除问题中的标点符号,多余空格和代码,只留下单词,并将单词全部转化为小写,得到清洗后的数据集data;步骤3、将数据集data分为规模为n的训练集train和规模为的m测试集test;步骤4、对训练集train建立词典D:步骤5、标签集大小为s_tag,trainj建立长度为s_tag的向量tagj,将tagj中trainj的标签在标签集中的对应位置的元素置1,其余元素置0;步骤6、构建输入层:给定trainj文本描述,快速标签推荐方法构造n‑gram特征(f1,...,fN);对于每个n元特征fi,特征向量fti可以通过使用查找表TL获得;借助于权重矩阵A的共享参数,最终获得用于表示输入层中的文本描述的ngram特征向量(x1,...,xN);步骤7、构建隐藏层:在隐藏层中,计算n‑gram特征向量(x1,...,xN)的平均值以使用以下等式获得隐藏变量Xh:

【技术特征摘要】
1.一种基于神经网络分类的软件信息站点快速标签推荐方法,其特征在于:包括以下步骤:步骤1、使用scrapy框架从软件信息站点上获取问题数据集和标签集;步骤2、对每条问题数据进行数据清洗,去除问题中的标点符号,多余空格和代码,只留下单词,并将单词全部转化为小写,得到清洗后的数据集data;步骤3、将数据集data分为规模为n的训练集train和规模为的m测试集test;步骤4、对训练集train建立词典D:步骤5、标签集大小为s_tag,trainj建立长度为s_tag的向量tagj,将tagj中trainj的标签在标签集中的对应位置的元素置1,其余元素置0;步骤6、构建输入层:给定trainj文本描述,快速标签推荐方法构造n-gram特征(f1,...,fN);对于每个n元特征fi,特征向量fti可以通过使用查找表TL获得;借助于权重矩阵A的共享参数,最终获得用于表示输入层中的文本描述的ngram特征向量(x1,...,xN);步骤7、构建隐藏层:在隐藏层中,计算n-gram特征向量(x1,...,xN)的平均值以使用以下等式获得隐藏变量Xh:Xh用于表示隐藏层中的文本描述;步骤8:构造输出层:输出层对应于二叉树;叶节点表示软件信息站点中的标签;叶节点的权重代表其标签的频率;叶节点数为k,非叶节点数为(k-1);步骤9、对训练集T进行多轮迭代神经网络训练;步骤10、利用测试集对模型进行测试,计算召回率准确率和F1-scorel来检验模型的效果,调整参数,重复步骤9直到得一个合适的神经网络模型。2.根据权利要求1所述的一种基于神经网络分类的软件信息站点快速标签推荐方法,其特征在于:所述步骤4具体包括:步骤4a、建立字典变量dict;步骤4b、对于train中的每个词Wi来说,如果Wi没有出现在dict中,则将键值对{Wi:1}加入dict,如果Wi在dict中已存在,则对D中的Wi的值进行更新:{Wi:w+1};步骤4c、对dict中的词dicti进行编号得到词典D。3.根据权利要求1所述的一种基于神经网络分类的软件信息站点快速标签推荐方法,其特征在于:所述步骤6具体包括:步骤6a、本方法使用n-gram作为附加功能来捕获关于本地词序的部分信息;首先构造查找表TL以存储n-gram的m维特征向量;查找表的大小理论上是|D|n,其中|D|是词典D的大小;步骤6b、扫描软件信息站点,并且对软件信息站点中出现的所有n-gram元素,在TL中被分配了一个m维特征向量;对于TL中的每个n-gram,随机地初始化m维特征向量并且可以由index(n-gram)=hashcode(n-gram)定位一个n-gram;本方法步骤6c、构造一个共享权重矩阵A;n-gram特征fi的特征向量xi可以通过以下等式获...

【专利技术属性】
技术研发人员:刘进周平义储玮崔晓晖李兵陈旭施泽洋彭新宇赵发凯
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北,42

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

1