CN109299291B - 一种基于卷积神经网络的问答社区标签推荐方法 - Google Patents

一种基于卷积神经网络的问答社区标签推荐方法 Download PDF

Info

Publication number
CN109299291B
CN109299291B CN201811140397.9A CN201811140397A CN109299291B CN 109299291 B CN109299291 B CN 109299291B CN 201811140397 A CN201811140397 A CN 201811140397A CN 109299291 B CN109299291 B CN 109299291B
Authority
CN
China
Prior art keywords
question
neural network
convolutional neural
tag
train
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.)
Active
Application number
CN201811140397.9A
Other languages
English (en)
Other versions
CN109299291A (zh
Inventor
刘进
周平义
储玮
崔晓晖
李兵
陈旭
施泽洋
彭新宇
赵发凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201811140397.9A priority Critical patent/CN109299291B/zh
Publication of CN109299291A publication Critical patent/CN109299291A/zh
Application granted granted Critical
Publication of CN109299291B publication Critical patent/CN109299291B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Electrically Operated Instructional Devices (AREA)

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计算方式如下,其中
Figure BDA0001815672840000031
为模型推荐的标签,tagi为testi原有标签,topK为自定义推荐标签数。
Figure BDA0001815672840000041
整个测试集的召回率计算方式如下:
Figure BDA0001815672840000042
步骤12b、计算准确率:对于测试集中的问题testi,其召回率Precision@ki计算方式如下,其中
Figure BDA0001815672840000043
为模型推荐的标签,tagi为testi原有标签,topK为自定义推荐标签数。
Figure BDA0001815672840000044
整个测试集的准确率计算方式如下:
Figure BDA0001815672840000045
步骤12c、计算F1-score:对于测试集中的问题testi,其F1-score@ki计算方式如下,
Figure BDA0001815672840000046
整个测试集的准确率计算方式如下:
Figure BDA0001815672840000047
步骤12d、调整模型参数,使得F1-score最大,召回率最高。
本发明的有益效果是:一种基于卷积神经网络的问答社区标签推荐方法与现有的技术相比较,具有如下突出特点和优点:第一,引入卷积层,能对特征进行准确提取,可以进行更精准的匹配;第二,卷积神经网络处理大型图片的能力使得其可以处理较大的数据集;第三,卷积神经网络在图片处理中的迁移性,使得其用在标签推荐中也能有很好的迁移性。
附图说明
图1是本发明中卷积神经网络的示意图。
具体实施方式
以下结合附图对本发明的实施例作进一步的说明。
1)给定软件对象oi,令xi∈Rk为描述的第i个单词对应的k维向量。长度n的描述表示为:
Figure BDA0001815672840000051
其中⊕是拼接算子,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函数来计算标签的概率分布。
Figure BDA0001815672840000052
这里W是权重向量,B是完全连接层中的偏置项。前K个最高概率标签被推荐给软件对象oi
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (3)

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.利用Mikolov方法将训练集的矩阵t变成三维矩阵T;
步骤10、构建卷积神经网络模型TagCNN,包括卷积层、池化层和softmax层;
步骤11、对训练集T进行多轮迭代卷积神经网络训练;
步骤12、利用测试集对模型TagCNN进行测试,计算召回率准确率和F1-score来检验模型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函数来计算标签的概率分布;
Figure FDA0003542842820000021
这里W是权重向量,B是完全连接层中的偏置项;前K个最高概率标签被推荐给软件对象。
CN201811140397.9A 2018-09-28 2018-09-28 一种基于卷积神经网络的问答社区标签推荐方法 Active CN109299291B (zh)

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 CN109299291A (zh) 2019-02-01
CN109299291B true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111882028B (zh) * 2020-06-08 2022-04-19 北京大学深圳研究生院 用于卷积神经网络的卷积运算装置
CN112035649B (zh) * 2020-09-02 2023-11-17 腾讯科技(深圳)有限公司 问答模型处理方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105631479A (zh) * 2015-12-30 2016-06-01 中国科学院自动化研究所 基于非平衡学习的深度卷积网络图像标注方法及装置
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 上海大学 一种基于卷积神经网络的中文财经新闻文本分类方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170308790A1 (en) * 2016-04-21 2017-10-26 International Business Machines Corporation Text classification by ranking with convolutional neural networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105631479A (zh) * 2015-12-30 2016-06-01 中国科学院自动化研究所 基于非平衡学习的深度卷积网络图像标注方法及装置
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)

* Cited by examiner, † Cited by third party
Title
"FastTagRec: fast tag recommendation for software information sites";Jin Liu等;《Automated Software Engineering》;20180702;第25卷(第4期);第675-701页 *
"在线问答社区推荐算法研究";薛浩;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180815;全文 *

Also Published As

Publication number Publication date
CN109299291A (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
CN109086463B (zh) 一种基于区域卷积神经网络的问答社区标签推荐方法
CN111444340A (zh) 文本分类和推荐方法、装置、设备及存储介质
CN111737476A (zh) 文本处理方法、装置、计算机可读存储介质及电子设备
CN114298158A (zh) 一种基于图文线性组合的多模态预训练方法
CN106569998A (zh) 一种基于Bi‑LSTM、CNN和CRF的文本命名实体识别方法
CN110188195B (zh) 一种基于深度学习的文本意图识别方法、装置及设备
CN112016601B (zh) 基于知识图谱增强小样本视觉分类的网络模型构建方法
JP6738769B2 (ja) 文ペア分類装置、文ペア分類学習装置、方法、及びプログラム
CN109446414A (zh) 一种基于神经网络分类的软件信息站点快速标签推荐方法
CN111291165A (zh) 训练词向量嵌入模型的方法及装置
CN107220368B (zh) 图像检索方法及装置
CN114091450B (zh) 一种基于图卷积网络的司法领域关系抽取方法和***
CN111898703A (zh) 多标签视频分类方法、模型训练方法、装置及介质
CN112749556B (zh) 多语言模型的训练方法和装置、存储介质和电子设备
CN104699797A (zh) 一种网页数据结构化解析方法和装置
CN109299291B (zh) 一种基于卷积神经网络的问答社区标签推荐方法
CN113821668A (zh) 数据分类识别方法、装置、设备及可读存储介质
CN114281984A (zh) 一种风险检测方法、装置、设备及计算机可读存储介质
CN111222399B (zh) 一种图像中的对象标识信息识别方法、装置及存储介质
CN109784404A (zh) 一种融合标签信息的多标签分类原型***及方法
CN109858031A (zh) 神经网络模型训练、上下文预测方法及装置
CN117807232A (zh) 商品分类方法、商品分类模型构建方法及装置
CN113361928A (zh) 一种基于异构图注意力网络的众包任务推荐方法
CN115422369B (zh) 基于改进TextRank的知识图谱补全方法和装置
CN117131933A (zh) 一种多模态知识图谱建立方法及应用

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