CN109683946A - 一种基于代码克隆技术的用户评论推荐方法 - Google Patents

一种基于代码克隆技术的用户评论推荐方法 Download PDF

Info

Publication number
CN109683946A
CN109683946A CN201811521684.4A CN201811521684A CN109683946A CN 109683946 A CN109683946 A CN 109683946A CN 201811521684 A CN201811521684 A CN 201811521684A CN 109683946 A CN109683946 A CN 109683946A
Authority
CN
China
Prior art keywords
code
user comment
comment
user
collection
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
Application number
CN201811521684.4A
Other languages
English (en)
Other versions
CN109683946B (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.)
Nankai University
Original Assignee
Nankai University
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 Nankai University filed Critical Nankai University
Priority to CN201811521684.4A priority Critical patent/CN109683946B/zh
Publication of CN109683946A publication Critical patent/CN109683946A/zh
Application granted granted Critical
Publication of CN109683946B publication Critical patent/CN109683946B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0282Rating or review of business operators or products

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Finance (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Strategic Management (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种基于代码克隆技术的用户评论推荐方法,该方法结合代码克隆技术和用户评论推荐算法为新开发的软件或缺少用户评论的软件提供合理有效的评论。主要过程有:首先收集大量代码克隆数据,使用AST以及Word2Vec处理数据集中的代码对并将其表示为向量,基于向量进行CNN模型训练及保存;其次是用户评论阶段数据的收集及预处理,将用户基于插件输入的代码和用于评论推荐的代码组成代码对,采用代码克隆阶段相同的处理方法将代码对表示为向量;最后基于向量和保存的CNN模型进行相似度值的预测,最终为用户输入的代码段提供合理有效的用户评论。本发明解决了应用软件没有足够多有效用户评论的难题,为软件的进一步提升和改进提供更多有效的信息。

Description

一种基于代码克隆技术的用户评论推荐方法
技术领域
本发明属于用户评论推荐方法技术领域,具体涉及一种基于代码克隆技术的用户评论推荐方法,尤其适用于使用更多用户评论进行进一步改进和提升的应用。
背景技术
随着计算机技术的发展,人类社会的信息化、智能化程度普及,作为其核心的计算机软件被广泛应用在国民经济以及日常生活中。随着软件规模的不断扩大,近些年来基于用户评论进行软件功能的改进和提升得到了越来越多研究者的关注,相关工作侧重于如何利用评论内的基本信息为软件的改进和提升提供进一步更好的指导。然而,很多应用软件没有足够多的用户评论,缺乏用户评论的应用软件会阻碍软件工程技术领域的发展。
作为使用体验,用户评论在软件的版本更新和错误修复中发挥着关键性的作用。为了有效的利用用户评论,现仍有两方面基本的挑战亟待解决:一是并非所有的用户评论对开发者都是有价值的,事实上那些毫无价值的评论占据了很大的比例,并且在一定程度上增加了额外成本,毕竟,手动的从众多用户评论中选择有价值的评论显然是耗时且工作密集的。为了消除这种手动选择带来的负面影响,一个自动的用户评论推荐方法在一定程度上是非常有用的;二是并非所有的应用都有足够多的用户评论用于进一步的版本更新和错误修复,根据从免费的软件项目托管平台GitHub和Stack Overflow上的统计,如附图1所示,在所有软件项目中,用户评论数超过50的项目仅占15%,有限的用户评论难以提供可靠的信息来进行软件的进一步改进和提升。
传统的研究主要致力于解决第一类难题,一系列有效的用户评论排名和分类算法先后被提出。尽管第一类难题已经得到解决,但是第二种挑战还没有得到足够的关注。很多研究者都致力于用户评论的提纯而不是扩充,事实上没有足够的用户评论会严重影响开发者通过用户的真实体验来提高产品质量这一技术领域的发展。
发明内容
本发明目的是为新开发的应用软件或缺少用户评论的软件提供更多合理有效的用户评论,提出了一种结合代码克隆技术和用户评论排名算法进行评论推荐的方法。
本发明主要分为两阶段的发展历程,第一阶段是代码克隆阶段,其作用是训练CNN模型用于后期用户评论推荐,首先进行代码克隆阶段数据集的收集以及预处理,使用处理好的数据集进行CNN模型的训练;第二阶段是用户评论推荐阶段,其作用是基于前面代码克隆阶段训练好的CNN模型,为用户通过Eclipse插件输入的代码进行评论推荐,首先对用户评论推荐阶段的数据集进行收集以及预处理,去除无用的用户评论,其次将与用户输入代码相似度最高的前几个代码对应的用户评论通过插件推荐给用户。
本发明提供的基于代码克隆的用户评论推荐方法包括以下步骤:
步骤1、设计基于代码克隆的用户评论推荐方法的整体结构;
步骤2、代码克隆阶段数据的收集以及预处理;
步骤3、定义CNN模型,使用步骤2处理好的数据进行模型训练以及模型保存;
步骤4、基于步骤3训练好的CNN模型进行用户评论推荐。
本发明所述评论推荐方法的具体实现方法如下:
1、步骤1所述的用户评论推荐方法的整体结构如附图2所示,整体结构包括代码克隆数据集收集模块、AST结点提取及词向量转化模块、CNN模型训练及保存模块、用户评论数据集收集及预处理模块和用户评论推荐模块;代码克隆数据集收集模块用于代码克隆阶段数据集的收集;AST结点提取及词向量转化模块用于将代码克隆阶段和用户评论推荐阶段的代码对使用抽象语法树(AST)转化为AST结点,使用Word2Vec将AST结点最终转化为向量;CNN模型训练及保存模块用于CNN模型训练以及模型保存,保存的模型用于用户评论推荐模块进行用户评论推荐;用户评论数据集收集及预处理模块用于用户评论阶段数据集的收集以及预处理;用户评论推荐模块的作用是基于训练好的CNN模型进行用户评论的推荐。
2、步骤2所述的代码克隆阶段数据的收集是指使用一个已有的标记好是否为真假克隆对的大型数据集(BigCloneBench),Svajlenko等基于实现特定的功能创建了benchmark,并手动的将其标记为克隆对和非克隆对,在其网站上下载benchmark压缩包,使用PostgreSQL加载数据。BigCloneBench是在实现十个功能的基础上完成的,标记为Folder#2-#11,克隆对被标记为T1,T2,VST3(Very Strong Type 3),ST3(Strong Type 3),MT3(Moderately Type 3)以及WT3/4(Weak Type3or Type 4)。对于T1,T2,VST3,ST3其代码相似度值是70%-100%,对于MT3其相似度值是50%-70%,对于WT3/4其相似度值是0-50%。本发明将收集到的数据分为深度克隆(NT1)、浅克隆(NT2)和非克隆(NT3)三种类型,即标记T1-ST3为NT1,标记MT3和WT3/4为NT2,标记非克隆对为NT3。为了均衡训练集和测试集而后进行更好的模型训练,使用BigCloneBench中的Folder4作为训练集,其他Folder作为测试集,附图3给出了训练CNN模型使用训练集和测试集的具体分布情况。
预处理是首先使用AST抽象语法树将数据集中的源代码对进行语法解析,保留代码对的AST结点,其次使用Word2Vec构造语料库,进行词向量的转换,将用于训练CNN模型的AST结点使用Word2Vec转化为向量,作为CNN模型的输入。为了产生有效的代码对输入需要保留有用的代码信息包括词法标记、语句结构和语义信息等,Abstract Syntax Tree(AST)是一种抽象语法树,是源代码的抽象语法结构的树状表现形式,其保留源代码的语法结构等有用信息,本发明中的基于代码克隆的用户评论推荐方法首先使用抽象语法树将源代码对转化为AST结点,具体形式如附图5所示,其次使用基于skip-grams的Word2Vec将AST结点转化为向量作为CNN模型的输入,Word2Vec可以根据给定的语料库,通过优化后的训练模型快速有效的将一个词语表达成向量的形式,为自然语言处理领域的应用研究提供了新的工具,其优点是保留了文本的语法结构,skip-grams的目标是产生一个依据建立好的语料库将代码对转化为向量。
本发明使用基于skip-grams的Word2Vec来建立神经词嵌入,将AST结点转化为向量,用于后期CNN模型训练和预测。
3、步骤3所述定义CNN模型,使用步骤2训练好的数据进行模型训练以及模型保存的方法是:
将步骤2处理好的向量用作CNN模型的输入,其形式是m*d,m代表AST结点的个数,d代表每个AST结点被表示的向量的维度。通过定义一个卷积层、池化层、全连接层和输出层得到模型的基本架构,通过使用梯度下降法以及最小化loss值进行CNN模型的训练,最后对模型进行参数调节并保存最终模型,用于后期的评论推荐,最后将预测结果输出。
对于卷积层,本发明采用五种不同卷积核1,3,5,7,9,每种卷积核取200个,因为处理文本,单词是处理文本的最小粒度,为了保持单词的完整性,必须保证卷积核的宽和每个结点被表示的向量维度相同,每种卷积核是k*d,k代表卷积核的高即卷积核进行卷积时每次读取AST结点的个数,d代表卷积核的宽即每个AST结点被表示向量的维度,使用非线性激活函数对卷积后的结果进行非线性化处理;在池化层采用1-max pooling提取特征,通过全连接层将所有特征连接,最终通过输出层将得分值输出,附图6给出了CNN架构。在模型训练阶段,本发明将克隆数据分为三类NT1,NT2和NT3,在实际训练中将得分值设为0.825,0.495,0.165,最后使用均方差损失函数计算输出层得到的得分值与真实值之间的loss,通过梯度下降法以及最小化loss值得到最终的模型。
4、步骤4所述的基于步骤3训练好的CNN模型进行用户评论推荐的方法是:
首先收集用户评论推荐的数据集,本发明从GitHub、Stack Overflow上收集了带有很多用户评论的代码片段以及用户评论,用于评论推荐,具体形式如附图4所示。对于用户评论推荐,首先对数据集进行预处理,提取代码及其对应的用户评论,被用于做推荐的用户评论没有被标记为是否是有用信息,因此本发明采用半监督式支持向量机的方法过滤掉那些对软件进一步改进和提升毫无价值的评论,仅保留有用评论。对于用户通过Eclipse插件输入的代码片段,本发明将其与本地用来做推荐的数据集中的代码段组成代码对,采用与CNN数据预处理相同的方法,利用语法树提取AST结点,使用Word2Vec将每个AST结点表示为向量,将其送入训练好的CNN模型中预测相似度值,对所有代码对的相似度值进行排序,最终将相似度值较高的代码对应的评论推荐给用户。
本发明的优点和有益效果:
本发明提出了一种基于代码克隆的用户评论推荐方法,即结合代码克隆技术和用户评论排名方法来为新开发的软件或者缺少用户评论的软件提供更多合理有效的用户评论。作为使用体验,用户评论在软件的版本更新和错误恢复中发挥着关键性的作用,并非所有的软件工程都有足够多的用户评论用于进一步的版本更新和错误恢复,有限的用户评论难以提供可靠的信息来进行软件工程的进一步提升,阻碍了开发者通过用户的真实体验来提高他们产品质量这一技术领域的发展。因此扩充用户评论特别是有价值信息的用户评论对于软件的进一步改进和提升是非常有帮助的。本发明解决了应用软件没有足够多有效用户评论的难题,通过本发明可以为许多没有足够多评论或新开发的软件提供更多评论,提取用户评论中合理有效的信息,为软件的进一步提升和改进提供更多帮助。
附图说明
图1为各种平台软件项目和其评论的数据统计。
图2为基于代码克隆的用户评论推荐方法的整体框架。
图3为训练CNN模型时训练集测试集的分布。
图4为用户评论阶段数据的具体形式。
图5为代码片段生成的AST语法树。
图6为CNN架构。
图7为插件的推荐效果。
具体实施方式
实施例1:
下面结合附图和具体的实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并给予实施。
步骤1、设计基于代码克隆的用户评论推荐方法的整体结构;
根据本发明方法,实现基于代码克隆技术的用户评论推荐方法,整体结构如图2所示。本发明依据图2进行提供以下具体的实施例。
本发明所述整体结构包括代码克隆数据集收集模块、AST结点提取及词向量转化模块、CNN模型训练及保存模块、用户评论数据集收集及预处理模块和用户评论推荐模块。代码克隆数据集收集模块用于代码克隆阶段数据集的收集,具体是指收集足够多带有标记是否为克隆对的数据集(BigCloneBench)用作CNN模型训练,将收集到的数据分为深度克隆(NT1)、浅克隆(NT2)和非克隆(NT3)三种类型。AST结点提取及词向量转化模块用于将代码克隆阶段和用户评论推荐阶段的代码对使用抽象语法树(AST)转化为AST结点,使用Word2Vec将AST结点最终转化为向量。CNN模型训练及保存模块用于CNN模型训练以及模型保存,保存的模型用于用户评论推荐模块进行用户评论推荐。用户评论数据集收集及预处理模块用于用户评论阶段数据集的收集以及预处理,具体是首先从GitHub和StackOverflow开源代码托管平台上收集足够多带有用户评论的代码片段以及用户评论,对收集到的数据进行预处理并且提取代码和用户评论(Code Extraction&Preprocessing),去除用户评论中对软件进一步改进和提升无用的信息,最终将用户通过Eclipse插件输入的代码段(User Eclipse Input Code)与本地用于用户评论推荐的代码组成代码对。使用AST结点提取及词向量转化模块的抽象语法树(AST)从用户评论数据集收集及预处理模块处理好的代码对中提取AST结点,使用Word2Vec将AST结点转化为向量用于用户评论推荐模块用户评论推荐,用户评论推荐模块的作用是基于训练好的CNN模型进行用户评论的推荐,具体是使用CNN模型训练及保存模块训练好的CNN模型(Trained Model)进行相似度值的预测,接着对相似度值进行排序(Sources Ranking Result)并且把相似度值高的代码所对应的评论推荐给用户(Share Result)。
步骤2、代码克隆阶段数据的收集以及预处理;
对于代码克隆阶段的数据集,从BigCloneBench上面收集实现了十个功能(Folder#2-#11)的数据集,包括6000000个真克隆对和260000个假克隆对,将数据划分为如图2所示的三种类型NT1、NT2、NT3,然后将NT1、NT2、NT3中的每一个方法对转化为AST形式,代码片段以及转换后的AST的具体形式如附图5所示,使用Word2Vec将每个方法对对应的AST结点转化为400*64的矩阵,如图2中矩阵A(a11-amn)所示,其中400代表每一个克隆对中的AST结点数,64代表的是每一个AST结点使用Word2Vec转化的向量的维度,然后将400*64的矩阵A作为输入用于CNN模型的训练。
步骤3、定义CNN模型,使用步骤2处理好的数据进行模型训练以及模型保存;
对于CNN模型,其整体框架如图6所示,主要包括卷积层、池化层、全连接层、输出层。具体实施例如下:将AST结点使用Word2Vec转化为400*64的矩阵,卷积层使用五种不同的卷积核1*64、3*64、5*64、7*64、9*64,每种卷积核取200个,在卷积层选择”VALID”,即进行卷积时额外的窗口忽略不计,步长stride取1,卷积后得到400*1、398*1、396*1、394*1、392*1的矩阵各200个,接下来使用非线性激活函数处理卷积后的结果,对结果使用池化层进行处理,对于池化层分别使用400*1、398*1、396*1、394*1、392*1,五种不同的池化层窗口,即1-max pooling,步长stride取1,每种池化层窗口得到200个1*1的矩阵,然后使用全连接层处理池化后的矩阵得到1000*1的矩阵,使用1000*1的权重矩阵W和1*1的偏置矩阵得到最后的得分值,然后使用均方差损失函数计算损失值,使用梯度下降法,学习率取1e-3进行CNN模型的反向传播训练,最终将loss值基本保持稳定状态后,停止模型的训练并保存模型。
步骤4、基于步骤3训练好的CNN模型进行用户评论推荐。
在用户评论阶段,首先进行收集数据,如图2所示,从Stackoverflow和Github上收集如图3所示的代码以及带有的评论作为用户评论推荐数据集,从收集到的数据中提取代码及其对应的用户评论,将用户输入的代码(如图7中用户输入代码所示)和提取出的代码组成代码对,如图2中的(Code Pairs),使用代码克隆阶段相同的处理方法即用AST以及Word2Vec将代码对转化为400个AST结点,将每个结点表示为维度为64的向量,得到400*64的矩阵,如图2所示的矩阵(b11-bln),将向量放入训练好的CNN模型中进行结果预测,得到每一个代码对的相似度值,将所有的相似度值进行排序,提取前面几个相似度值高的代码对应的评论推荐给用户,具体的推荐效果如图7中的评论推荐所示。
通过以上步骤,一个具体的基于代码克隆的用户评论推荐方法可以得到实现。

Claims (5)

1.一种基于代码克隆技术的用户评论推荐方法,其特征包含以下步骤:
步骤1、设计基于代码克隆的用户评论推荐方法的整体结构;
步骤2、代码克隆阶段数据的收集以及预处理;
步骤3、定义CNN模型,使用步骤2处理好的数据进行模型训练以及模型保存;
步骤4、基于步骤3训练好的CNN模型进行用户评论推荐。
2.根据权利要求1所述一种基于代码克隆技术的用户评论推荐方法,其特征在于步骤1所述的整体结构包括代码克隆数据集收集模块、AST结点提取及词向量转化模块、CNN模型训练及保存模块、用户评论数据集收集及预处理模块和用户评论推荐模块,代码克隆数据集收集模块用于代码克隆阶段数据集的收集,AST结点提取及词向量转化模块用于将代码对使用抽象语法树(AST)转化为AST结点,使用Word2Vec将AST结点最终转化为向量,CNN模型训练及保存模块用于CNN模型训练以及模型保存,用户评论数据集收集及预处理模块用于用户评论阶段数据集的收集以及预处理,用户评论推荐模块的作用是基于训练好的CNN模型进行用户评论的推荐。
3.根据权利要求1所述的一种基于代码克隆技术的用户评论推荐方法,其特征在于步骤2所述的代码克隆阶段数据的收集以及预处理包括,首先是代码克隆数据集收集模块收集用于训练CNN模型的数据集,亦即收集足够多带有标记是否为克隆对的数据集(BigCloneBench)用做CNN模型训练;BigCloneBench是在实现十个功能的基础上完成的,标记为Folder#2-#11,克隆对被标记为T1,T2,VST3(Very Strong Type 3),ST3(Strong Type3),MT3(Moderately Type 3)以及WT3/4(Weak Type3 or Type 4),将收集到的数据分为深度克隆(NT1)、浅克隆(NT2)和非克隆(NT3)三种类型,为均衡训练集和测试集进行更好的模型训练,使用BigCloneBench中的Folder4作为训练集,其他Folder作为测试集;其次是AST结点提取及词向量转化模块即进行数据预处理,使用AST抽象语法树将数据集中的源代码对进行语法解析,保留代码对的AST结点,使用Word2Vec构造语料库进行词向量的转换,将用于训练CNN模型的AST结点使用Word2Vec转化为向量,作为CNN模型的输入;为产生有效的代码对输入需要保留有用的代码信息包括词法标记、语句结构和语义信息,AbstractSyntax Tree(AST)是一种抽象语法树,是源代码的抽象语法结构的树状表现形式,其保留源代码的语法结构的有用信息,所述的基于代码克隆的用户评论推荐方法使用抽象语法树将源代码对转化为AST结点,使用基于skip-grams的Word2Vec将AST结点转化为向量作为CNN模型的输入,基于skip-grams的Word2Vec来建立神经词嵌入,保留了文本的语法结构,skip-grams的目标是产生一个依据建立好的语料库将代码对转化为向量。
4.根据权利要求1所述一种基于代码克隆技术的用户评论推荐方法,其特征在于步骤3所述定义CNN模型,使用处理好的数据进行模型训练以及模型保存的方法是,将步骤2中代码克隆数据集收集模块和AST结点提取及词向量转化模块处理好的向量作为CNN模型训练及保存模块中CNN模型的输入,通过定义一个卷积层、池化层、全连接层和输出层得到模型的基本结构,通过使用梯度下降法以及最小化loss值进行CNN模型的训练,最后对模型进行参数调节并将最终的模型保存下来,用于后期的评论推荐。
5.根据权利要求3所述一种基于代码克隆技术的用户评论推荐方法,其特征在于步骤4所述的基于步骤3训练好的CNN模型进行用户评论推荐的方法是,首先是用户评论数据集收集及预处理模块收集用于评论推荐的数据集,从GitHub、StackOverflow上收集带有评论的代码片段,对数据集进行预处理,去除对软件改进和提升无帮助的用户评论;其次是构建Eclipse插件用于用户评论的推荐;最后对用户输入的数据进行预处理,将用户通过Eclipse插件输入的代码与用于评论推荐的代码组成代码对,对代码对使用权利要求3所述的AST抽象语法树进行语法解析以及使用Word2Vec进行词向量转换,将处理好的数据放入步骤3训练好的CNN模型中进行得分值的预测即用户评论推荐模块,通过得分值的排名最终将与用户输入代码相似度值高的代码所对应的评论推荐给用户。
CN201811521684.4A 2018-12-13 2018-12-13 一种基于代码克隆技术的用户评论推荐方法 Active CN109683946B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811521684.4A CN109683946B (zh) 2018-12-13 2018-12-13 一种基于代码克隆技术的用户评论推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811521684.4A CN109683946B (zh) 2018-12-13 2018-12-13 一种基于代码克隆技术的用户评论推荐方法

Publications (2)

Publication Number Publication Date
CN109683946A true CN109683946A (zh) 2019-04-26
CN109683946B CN109683946B (zh) 2021-12-03

Family

ID=66186716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811521684.4A Active CN109683946B (zh) 2018-12-13 2018-12-13 一种基于代码克隆技术的用户评论推荐方法

Country Status (1)

Country Link
CN (1) CN109683946B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110378486A (zh) * 2019-07-15 2019-10-25 出门问问信息科技有限公司 网络嵌入方法、装置、电子设备和存储介质
CN111723192A (zh) * 2020-06-19 2020-09-29 南开大学 代码推荐方法和装置
CN114064472A (zh) * 2021-11-12 2022-02-18 天津大学 基于代码表示的软件缺陷自动修复加速方法
US11262985B2 (en) 2020-03-10 2022-03-01 International Business Machines Corporation Pretraining utilizing software dependencies
US11500619B1 (en) 2021-05-24 2022-11-15 International Business Machines Corporation Indexing and accessing source code snippets contained in documents

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2280288A (en) * 1993-07-20 1995-01-25 Northern Telecom Ltd Code sequence detection.
CN101667194A (zh) * 2009-09-29 2010-03-10 北京大学 基于用户评论文本特征的自动摘要方法及其自动摘要系统
CN106462399A (zh) * 2014-06-30 2017-02-22 微软技术许可有限责任公司 代码推荐
US20170139816A1 (en) * 2015-11-17 2017-05-18 Alexey Sapozhnikov Computerized method and end-to-end "pilot as a service" system for controlling start-up/enterprise interactions
CN107291902A (zh) * 2017-06-23 2017-10-24 中国人民解放军国防科学技术大学 一种基于混合分类技术的大众贡献审阅自动标注方法
CN108196836A (zh) * 2018-01-31 2018-06-22 北京工业大学 基于ssm框架的企业内博客系统
CN108363695A (zh) * 2018-02-23 2018-08-03 西南交通大学 一种基于双向依赖语法树表征的用户评论属性抽取方法
CN108573411A (zh) * 2018-04-17 2018-09-25 重庆理工大学 基于用户评论的深度情感分析和多源推荐视图融合的混合推荐方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2280288A (en) * 1993-07-20 1995-01-25 Northern Telecom Ltd Code sequence detection.
CN101667194A (zh) * 2009-09-29 2010-03-10 北京大学 基于用户评论文本特征的自动摘要方法及其自动摘要系统
CN106462399A (zh) * 2014-06-30 2017-02-22 微软技术许可有限责任公司 代码推荐
US20170139816A1 (en) * 2015-11-17 2017-05-18 Alexey Sapozhnikov Computerized method and end-to-end "pilot as a service" system for controlling start-up/enterprise interactions
CN107291902A (zh) * 2017-06-23 2017-10-24 中国人民解放军国防科学技术大学 一种基于混合分类技术的大众贡献审阅自动标注方法
CN108196836A (zh) * 2018-01-31 2018-06-22 北京工业大学 基于ssm框架的企业内博客系统
CN108363695A (zh) * 2018-02-23 2018-08-03 西南交通大学 一种基于双向依赖语法树表征的用户评论属性抽取方法
CN108573411A (zh) * 2018-04-17 2018-09-25 重庆理工大学 基于用户评论的深度情感分析和多源推荐视图融合的混合推荐方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FREE356: "基于卷积神经网络的推荐算法", 《HTTPS://BLOG.CSDN.NET/FREE356/ARTICLE/DETAILS/79445476》 *
LI CHEN,GUANLIANG CHEN: "Recommender systems based on user reviews: the state of the art", 《SPRINGER SCIENCE+BUSINESS MEDIA DORDRECHT》 *
刘复星等: "基于深度学习的代码克隆检测技术研究", 《电脑知识与技术》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110378486A (zh) * 2019-07-15 2019-10-25 出门问问信息科技有限公司 网络嵌入方法、装置、电子设备和存储介质
CN110378486B (zh) * 2019-07-15 2021-12-03 出门问问信息科技有限公司 网络嵌入方法、装置、电子设备和存储介质
US11262985B2 (en) 2020-03-10 2022-03-01 International Business Machines Corporation Pretraining utilizing software dependencies
CN111723192A (zh) * 2020-06-19 2020-09-29 南开大学 代码推荐方法和装置
CN111723192B (zh) * 2020-06-19 2024-02-02 南开大学 代码推荐方法和装置
US11500619B1 (en) 2021-05-24 2022-11-15 International Business Machines Corporation Indexing and accessing source code snippets contained in documents
CN114064472A (zh) * 2021-11-12 2022-02-18 天津大学 基于代码表示的软件缺陷自动修复加速方法
CN114064472B (zh) * 2021-11-12 2024-04-09 天津大学 基于代码表示的软件缺陷自动修复加速方法

Also Published As

Publication number Publication date
CN109683946B (zh) 2021-12-03

Similar Documents

Publication Publication Date Title
CN109683946A (zh) 一种基于代码克隆技术的用户评论推荐方法
Haque et al. Improved automatic summarization of subroutines via attention to file context
CN112559556B (zh) 表格模式解析和序列掩码的语言模型预训练方法及系统
CN104834735B (zh) 一种基于词向量的文档摘要自动提取方法
CN109543181B (zh) 一种基于主动学习和深度学习相结合的命名实体模型和系统
CN103176963B (zh) 基于crf++汉语句义结构模型自动标注方法
CN110287481A (zh) 命名实体语料标注训练系统
CN110209822A (zh) 基于深度学习的学术领域数据相关性预测方法、计算机
CN109063164A (zh) 一种基于深度学习的智能问答方法
CN103207856A (zh) 一种本体概念及层次关系生成方法
CN110287489A (zh) 文本生成方法、装置、存储介质和电子设备
CN105740227B (zh) 一种求解中文分词中新词的遗传模拟退火方法
CN106021227A (zh) 一种基于状态转移与神经网络的汉语组块分析方法
CN113761893B (zh) 一种基于模式预训练的关系抽取方法
CN102646095B (zh) 一种基于网页分类信息的对象分类方法和系统
CN105677857B (zh) 一种关键词与营销落地页的精准匹配方法和装置
CN103324700A (zh) 一种基于Web信息的本体概念属性学习方法
CN109062894A (zh) 中文自然语言实体语义关系的自动辨识算法
CN112463424A (zh) 一种基于图的端到端程序修复方法
CN112000770A (zh) 面向智能问答的基于语义特征图的句子对语义匹配方法
CN108595165A (zh) 一种基于代码中间表示的代码补全方法、装置及存储介质
CN110162297A (zh) 一种源代码段自然语言描述自动生成方法及系统
CN105630772A (zh) 一种网页评论内容的抽取方法
CN108664464B (zh) 一种语义相关度的确定方法及确定装置
CN108536724A (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