[发明专利]一种基于区域卷积神经网络的问答社区标签推荐方法有效
申请号: | 201811139465.X | 申请日: | 2018-09-28 |
公开(公告)号: | CN109086463B | 公开(公告)日: | 2022-04-29 |
发明(设计)人: | 刘进;周平义;储玮;李兵;崔晓晖;陈旭;施泽洋;彭新宇;赵发凯 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F16/35 | 分类号: | G06F16/35;G06F16/9535;G06N3/04 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 鲁力 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 区域 卷积 神经网络 问答 社区 标签 推荐 方法 | ||
1.一种基于区域卷积神经网络的问答社区标签推荐方法,其特征在于:包括以下步骤:
步骤1、使用scrapy框架从问答社区上获取问题数据集和标签集;
步骤2、对每条问题数据进行数据清洗,去除问题中的标点符号,多余空格和代码,只留下单词,并将单词全部转化为小写,得到清洗后的数据集data;
步骤3、将数据集data分为规模为n的训练集train和规模为m的测试集test;
步骤4、对训练集train建立词典D:
步骤5、对训练集train中的每一个问题数据建立句向量,对于第j个问题中的第i个单词Wij将其用Wij在词典D中的编号来代替,采样如下:
trainj=[1,2,11,32,35,25,68,37,…,66,89]
步骤6、标签集大小为s_tag,对trainj建立长度为s_tag的向量tagj,将tagj中trainj的标签在标签集中的对应位置的元素置1,其余元素置0,将tagj中的元素追加到trainj的最后;
步骤7、由训练集train句向量可以得到对应的n*k矩阵,其中k为最长的问题的大小与s_tag之和;
步骤8、对训练集train进行打乱顺序得到训练集t:
步骤9.利用Mikilov方法将训练集t变成三维矩阵T;
步骤10、构建卷积神经网络模型TagRCNN,包括双向循环结构卷积层、池化层和softmax层;
步骤11、对训练集T进行多轮迭代卷积神经网络训练;
步骤12、利用测试集对模型TagRCNN进行测试,计算召回率准确率和F1-score来检验模型TagRCNN的效果,调整参数,重复步骤7-10直至得到一个最终卷积神经网络模型TagRCNN。
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所述的一种基于区域卷积神经网络的问答社区标签推荐方法,其特征在于:所述步骤10具体包括
步骤10a、对域矩阵T中的每个句子oi中的单词Wi,其对应的词嵌入向量为e(Wi),其对应的左右上下文Cl(Wi)和Cr(Wi)可以由Wi-1的词嵌入和左右上下文表示,公式如下:
Cl(Wi)=f(WlCl(Wi)+Wsle(Wi-1))
Cr(Wi)=f(WrCr(Wi+1)+Wsre(Wi+1))
其中Wl是将当前隐藏层转换为下一个隐藏层的矩阵,Wsl是用于将当前单词语义与下一个单词的上下文进行组合的矩阵,f是非线性激活数;
步骤10b、单词Wi的表示xi由单词Wi以及Wi的左右上下文组成,如下所示:
xi=[Cl(Wi):e(Wi):Cr(Wi)]
步骤10c:对xi应用tanh线性激活函数得到结果yi:
其中W(2)是将第二层隐藏层转换为下一个隐藏层的矩阵,b(2)是第二层隐藏层的偏置;
步骤10d、将作为第三层最大池化层的输入,选取中最大的元素作为输出:
步骤10e、将最大池化层的输出经过输出层的处理,得到最终的输出结果
步骤10f、用softmax函数处理从而得到标签的概率分布Pi,前K个概率最高的标签被推荐给问题oi,其中概率分布的计算公式如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811139465.X/1.html,转载请声明来源钻瓜专利网。