CN109299291A - 一种基于卷积神经网络的问答社区标签推荐方法 - Google Patents
一种基于卷积神经网络的问答社区标签推荐方法 Download PDFInfo
- Publication number
- CN109299291A CN109299291A CN201811140397.9A CN201811140397A CN109299291A CN 109299291 A CN109299291 A CN 109299291A CN 201811140397 A CN201811140397 A CN 201811140397A CN 109299291 A CN109299291 A CN 109299291A
- Authority
- CN
- China
- Prior art keywords
- label
- convolutional neural
- neural networks
- ask
- test
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
Abstract
本发明涉及一种基于卷积神经网络的问答社区标签推荐方法,具体是涉及对问答社区中的问题数据集先进行数据预处理,再通过词嵌入建立矩阵,利用Mikilovo方法将训练集的矩阵变成三维矩阵,然后用卷积神经网络模型对三维矩阵进行训练,最后利用训练完成的模型对问答社区中的新问题进行标签推荐,是一种基于卷积神经网络的问答社区标签推荐方法。具有如下突出特点和优点:第一,引入卷积层,能对特征进行准确提取,可以进行更精准的匹配;第二,卷积神经网络处理大型图片的能力使得其可以处理较大的数据集;第三,卷积神经网络在图片处理中的迁移性,使得其用在标签推荐中也能有很好的迁移性。
Description
技术领域
本发明涉及一种基于卷积神经网络的问答社区标签推荐方法。
背景技术
随着互联网的快速发展,越来越多的IT爱好者在互联网上寻求帮助,分享经验,以及学习新技术知识,由此出现了各种开发者问答社区,像StackOverflow和Freeecode这样的软件信息站点可以为全世界的开发者提供信息共享和交流。
为了便于正确的分类和高效的搜索,开发者需要为他们的发布提供标签。然而,标签本质上是一个不协调的过程,不仅取决于开发者对自己帖子的理解,还取决于其他因素,包括开发者的英语技能和对现有帖子的了解。
因此,即使现有的标签已经足够,开发者也不断创建新的标签。最终的效果是,随着时间的推移,越来越多的标签具有严重的冗余性,并有更多的新标签发布,从而导致任何基于标签的算法效率和准确性都会降低。
目前国内外针对问答社区的标签推荐,有基于模糊集合理论,考虑了系统的动态演化的标签推荐方法,有包含多标签排名组件,基于相似度的排名组件和基于标签项的排名组件的标签推荐方法,还有基于贝叶斯推理组件和频率推理组件的标签推荐方法。
上述基于模糊集合理论和相似度排名及贝叶斯推理的方法存在以下不足:
(1)它们应用限制在相对较小的数据集中;
(2)它们是不可扩展的,并且不能够处理问答社区中的连续更新;
(3)它们的召回率和精度指标表现并不理想。
发明内容
本发明的目的在于针对目前问答社区标签推荐方面的不足,提供一种基于卷积神经网络的标签推荐方法,该方法对问答社区中的问题数据集先进行数据预处理,再通过建立词典生成句向量,然后用卷积神经网络模型对句向量进行训练,最后利用训练完成的模型对问答社区中的新问题进行标签推荐。
为了达到上述的目的,本发明的构思如下:首先使用scrapy框架从StackOverflow等问答社区上获取问题数据,并用脚本对数据进行清洗,然后对清洗后的数据建立词典并利用词典生成训练集矩阵,利用Mikilovo方法将训练集的矩阵变成三维矩阵,再用卷积神经网络模型对句向量进行训练以得到合适的模型参数,最后利用训练得到的模型新问题进行标签推荐。
根据以上构思,本发明采用的一个技术方案是:提供一种基于卷积神经网络的问答社区标签推荐方法,其特征在于:包括以下步骤:
步骤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.利用Mikilovo方法将训练集的矩阵t变成三维矩阵T;
步骤10、构建卷积神经网络模型TagCNN,包括卷积层、池化层和softmax层;
步骤11、对训练集T进行多轮迭代卷积神经网络训练;
步骤12、利用测试集对模型TagCNN进行测试,计算召回率准确率和F1-scorel来检验模型TagCNN的效果,调整参数,重复步骤7-10直到得一个合适的卷积神经网络模型TagCNN。
在上述的一种基于卷积神经网络的问答社区标签推荐方法,所述步骤4包括:
步骤4a、建立字典变量dict;
步骤4b、对于train中的每个词Wi来说,如果Wi没有出现在dict中,则将键值对{Wi:1}加入dict,如果Wi在dict中已存在,则对D中的Wi的值进行更新:{Wi:w+1};
步骤4c、对dict中的词dicti进行编号得到词典D。
在上述的一种基于卷积神经网络的问答社区标签推荐方法,所述步骤10包括:
步骤10a、建立卷积层,卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的目的是提取输入的不同特征,卷积运算包含一个滤波器f∈Rhk,它应用于h个单词的窗口以产生一个新的特征ci由单词xi:j+h-1通过ci=tanh(f·xi:i+h-1+b)生成,这里b∈R是一个偏置项,tanh是一个非线性双曲正切函数。这个滤波器应用于描述{x1:h;x2:h+1;…;xn-h+1:h}来生成特征映射c={c1;c2;…;cn-h+1};其中c∈Rn-h+1。
步骤10b、建立池化层,通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。TagCNN在特征映射上应用最大时间池操作并取最大值c′=max{c}作为与该特定滤波器对应的特征。该步骤是捕获每个功能地图的最重要的功能。池化过程自然处理变量描述长度。TagCNN使用多个不同窗口大小的过滤器来获取多个功能。这些特征形成了倒数第二层z=[c′1;c′2;…;c′n]
步骤10c、建立全连接层,把所有局部特征结合变成全局特征,用来计算最后每一类的得分。TagCNN使用softmax函数来计算标签的概率分布。,这里W是权重向量,B是完全连接层中的偏置项。前K个最高概率标签被推荐给软件对象。
在上述的一种基于卷积神经网络的问答社区标签推荐方法,所述步骤12包括:
步骤12a、计算召回率:对于测试集中的问题testi,其召回率Recall@ki计算方式如下,其中为模型推荐的标签,tagi为testi原有标签,topK为自定义推荐标签数。
整个测试集的召回率计算方式如下:
步骤12b、计算准确率:对于测试集中的问题testi,其召回率Precision@ki计算方式如下,其中为模型推荐的标签,tagi为testi原有标签,topK为自定义推荐标签数。
整个测试集的准确率计算方式如下:
步骤12c、计算F1-score:对于测试集中的问题testi,其F1-score@ki计算方式如下,
整个测试集的准确率计算方式如下:
步骤12d、调整模型参数,使得F1-score最大,召回率最高。
本发明的有益效果是:一种基于卷积神经网络的问答社区标签推荐方法与现有的技术相比较,具有如下突出特点和优点:第一,引入卷积层,能对特征进行准确提取,可以进行更精准的匹配;第二,卷积神经网络处理大型图片的能力使得其可以处理较大的数据集;第三,卷积神经网络在图片处理中的迁移性,使得其用在标签推荐中也能有很好的迁移性。
附图说明
图1是本发明中卷积神经网络的示意图。
具体实施方式
以下结合附图对本发明的实施例作进一步的说明。
1)给定软件对象oi,令xi∈Rk为描述的第i个单词对应的k维向量。长度n的描述表示为:
其中⊕是拼接算子,xi:i+j是指单词xi的拼接。xi,xi+1,…,xi+j。它可以用图1中的n*k矩阵向量表示。这些单词向量由Mikolov方法训练。
2)卷积运算包含一个滤波器f∈Rhk,它应用于h个单词的窗口以产生一个新的特征例如,特征ci由单词xi:j+h-1通过ci=tanh(f·xi:i+h-1+b)生成,这里b∈R是一个偏置项,tanh是一个非线性双曲正切函数。这个滤波器应用于描述{x1:h;x2:h+1;…;xn-h+1:h}来生成特征映射
c={c1;c2;…;cn-h+1};
其中c∈Rn-h+1。
3)TagCNN在特征映射上应用最大时间池操作并取最大值c′=max{c}作为与该特定滤波器对应的特征。该步骤是捕获每个功能地图的最重要的功能。池化过程自然处理变量描述长度。TagCNN使用多个不同窗口大小的过滤器来获取多个功能。例如,图1中的深色矩形和线描述了窗口大小为2的过滤器的特征提取过程,浅色矩形和线描述了窗口大小为3的过滤器的特征提取过程。这些特征形成了倒数第二层z=[c′1;c′2;…;c′n]。
4)图1中倒数第二层z被传递到完全连接的softmax层。TagCNN使用softmax函数来计算标签的概率分布。这里W是权重向量,B是完全连接层中的偏置项。前K个最高概率标签被推荐给软件对象oi。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (4)
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.利用Mikilovo方法将训练集的矩阵t变成三维矩阵T;
步骤10、构建卷积神经网络模型TagCNN,包括卷积层、池化层和softmax层;
步骤11、对训练集T进行多轮迭代卷积神经网络训练;
步骤12、利用测试集对模型TagCNN进行测试,计算召回率准确率和F1-scorel来检验模型TagCNN的效果,调整参数,重复步骤7-10直到得一个合适的卷积神经网络模型TagCNN。
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、建立卷积层,卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的;卷积运算的目的是提取输入的不同特征,卷积运算包含一个滤波器f∈Rhk,它应用于h个单词的窗口以产生一个新的特征ci由单词xi:j+h-1通过ci=tanh(f·xi:i+h-1+b)生成,这里b∈R是一个偏置项,tanh是一个非线性双曲正切函数;这个滤波器应用于描述{x1:h;x2:h+1;…;xn-h+1:h}来生成特征映射c={c1;c2;…;cn-h+1};其中c∈Rn-h+1;
步骤10b、建立池化层,通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征;TagCNN在特征映射上应用最大时间池操作并取最大值c′=max{c}作为与该特定滤波器对应的特征;该步骤是捕获每个功能地图的最重要的功能;池化过程自然处理变量描述长度;TagCNN使用多个不同窗口大小的过滤器来获取多个功能;这些特征形成了倒数第二层z=[c′1;c′2;…;c′n]
步骤10c、建立全连接层,把所有局部特征结合变成全局特征,用来计算最后每一类的得分;TagCNN使用softmax函数来计算标签的概率分布;,这里W是权重向量,B是完全连接层中的偏置项;前K个最高概率标签被推荐给软件对象。
4.根据权利要求1所述的一种基于卷积神经网络的问答社区标签推荐方法,其特征在于:所述步骤12包括:
步骤12a、计算召回率:对于测试集中的问题testi,其召回率Recall@ki计算方式如下,其中为模型推荐的标签,tagi为testi原有标签,topK为自定义推荐标签数;
整个测试集的召回率计算方式如下:
步骤12b、计算准确率:对于测试集中的问题testi,其召回率Precision@ki计算方式如下,其中为模型推荐的标签,tagi为testi原有标签,topK为自定义推荐标签数;
整个测试集的准确率计算方式如下:
步骤12c、计算F1-score:对于测试集中的问题testi,其F1-score@ki计算方式如下,
整个测试集的准确率计算方式如下:
步骤12d、调整模型参数,使得F1-score最大,召回率最高。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811140397.9A CN109299291B (zh) | 2018-09-28 | 2018-09-28 | 一种基于卷积神经网络的问答社区标签推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811140397.9A CN109299291B (zh) | 2018-09-28 | 2018-09-28 | 一种基于卷积神经网络的问答社区标签推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109299291A true CN109299291A (zh) | 2019-02-01 |
CN109299291B CN109299291B (zh) | 2022-04-29 |
Family
ID=65164888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811140397.9A Active CN109299291B (zh) | 2018-09-28 | 2018-09-28 | 一种基于卷积神经网络的问答社区标签推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109299291B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111882028A (zh) * | 2020-06-08 | 2020-11-03 | 北京大学深圳研究生院 | 用于卷积神经网络的卷积运算装置 |
CN112035649A (zh) * | 2020-09-02 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 问答模型处理方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631479A (zh) * | 2015-12-30 | 2016-06-01 | 中国科学院自动化研究所 | 基于非平衡学习的深度卷积网络图像标注方法及装置 |
CN106844741A (zh) * | 2017-02-13 | 2017-06-13 | 哈尔滨工业大学 | 一种面向特定领域的问题解答方法 |
US20170308790A1 (en) * | 2016-04-21 | 2017-10-26 | International Business Machines Corporation | Text classification by ranking with convolutional neural networks |
CN108021616A (zh) * | 2017-11-06 | 2018-05-11 | 大连理工大学 | 一种基于循环神经网络的社区问答专家推荐方法 |
CN108334499A (zh) * | 2018-02-08 | 2018-07-27 | 海南云江科技有限公司 | 一种文本标签标注设备、方法和计算设备 |
CN108399230A (zh) * | 2018-02-13 | 2018-08-14 | 上海大学 | 一种基于卷积神经网络的中文财经新闻文本分类方法 |
-
2018
- 2018-09-28 CN CN201811140397.9A patent/CN109299291B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631479A (zh) * | 2015-12-30 | 2016-06-01 | 中国科学院自动化研究所 | 基于非平衡学习的深度卷积网络图像标注方法及装置 |
US20170308790A1 (en) * | 2016-04-21 | 2017-10-26 | International Business Machines Corporation | Text classification by ranking with convolutional neural networks |
CN106844741A (zh) * | 2017-02-13 | 2017-06-13 | 哈尔滨工业大学 | 一种面向特定领域的问题解答方法 |
CN108021616A (zh) * | 2017-11-06 | 2018-05-11 | 大连理工大学 | 一种基于循环神经网络的社区问答专家推荐方法 |
CN108334499A (zh) * | 2018-02-08 | 2018-07-27 | 海南云江科技有限公司 | 一种文本标签标注设备、方法和计算设备 |
CN108399230A (zh) * | 2018-02-13 | 2018-08-14 | 上海大学 | 一种基于卷积神经网络的中文财经新闻文本分类方法 |
Non-Patent Citations (2)
Title |
---|
JIN LIU等: ""FastTagRec: fast tag recommendation for software information sites"", 《AUTOMATED SOFTWARE ENGINEERING》 * |
薛浩: ""在线问答社区推荐算法研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111882028A (zh) * | 2020-06-08 | 2020-11-03 | 北京大学深圳研究生院 | 用于卷积神经网络的卷积运算装置 |
CN112035649A (zh) * | 2020-09-02 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 问答模型处理方法、装置、计算机设备及存储介质 |
CN112035649B (zh) * | 2020-09-02 | 2023-11-17 | 腾讯科技(深圳)有限公司 | 问答模型处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109299291B (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2023065545A1 (zh) | 风险预测方法、装置、设备及存储介质 | |
Swathi et al. | An optimal deep learning-based LSTM for stock price prediction using twitter sentiment analysis | |
CN111078836B (zh) | 基于外部知识增强的机器阅读理解方法、系统、装置 | |
CN110472090B (zh) | 基于语义标签的图像检索方法以及相关装置、存储介质 | |
Gui et al. | Embedding learning with events in heterogeneous information networks | |
CN111881342A (zh) | 一种基于图孪生网络的推荐方法 | |
CN108874783A (zh) | 电力信息运维知识模型构建方法 | |
CN110674312B (zh) | 构建知识图谱方法、装置、介质及电子设备 | |
EP3138058A1 (en) | Method and apparatus for classifying object based on social networking service, and storage medium | |
CN109086463A (zh) | 一种基于区域卷积神经网络的问答社区标签推荐方法 | |
CN116010684A (zh) | 物品推荐方法、装置及存储介质 | |
CN106599194A (zh) | 标签确定方法及装置 | |
CN111582506A (zh) | 基于全局和局部标记关系的偏多标记学习方法 | |
Zhang et al. | Modeling the Homophily Effect between Links and Communities for Overlapping Community Detection. | |
CN114065048A (zh) | 基于多异构图图神经网络的物品推荐方法 | |
Pham et al. | Unsupervised training of Bayesian networks for data clustering | |
CN112364747A (zh) | 一种有限样本下的目标检测方法 | |
CN112131261A (zh) | 基于社区网络的社区查询方法、装置和计算机设备 | |
CN109299291A (zh) | 一种基于卷积神经网络的问答社区标签推荐方法 | |
CN115587192A (zh) | 关系信息抽取方法、设备及计算机可读存储介质 | |
CN115687760A (zh) | 一种基于图神经网络的用户学习兴趣标签预测方法 | |
CN115019342A (zh) | 一种基于类关系推理的濒危动物目标检测方法 | |
Shen et al. | A deep embedding model for co-occurrence learning | |
CN114219663A (zh) | 产品推荐方法、装置、计算机设备及存储介质 | |
Joppi et al. | POP: mining POtential Performance of new fashion products via webly cross-modal query expansion |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |