CN114741088A - 一种基于用户评论和开发者智慧的App源代码链接方法 - Google Patents

一种基于用户评论和开发者智慧的App源代码链接方法 Download PDF

Info

Publication number
CN114741088A
CN114741088A CN202210393040.1A CN202210393040A CN114741088A CN 114741088 A CN114741088 A CN 114741088A CN 202210393040 A CN202210393040 A CN 202210393040A CN 114741088 A CN114741088 A CN 114741088A
Authority
CN
China
Prior art keywords
data
source code
app
user
developer
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.)
Pending
Application number
CN202210393040.1A
Other languages
English (en)
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.)
Tianjin University
Original Assignee
Tianjin 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 Tianjin University filed Critical Tianjin University
Priority to CN202210393040.1A priority Critical patent/CN114741088A/zh
Publication of CN114741088A publication Critical patent/CN114741088A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于用户评论和开发者智慧的App源代码链接方法,使用自然语言处理等相关技术,将划分版本后的用户评论和开发者群体智慧进行联系。采用基于BERT模型的意图分类和价值评论提取相结合的方法来识别重要用户反馈,通过引入GitHub中的Issue和Commit相关信息来缩小用户评论和源代码之间的语义差距,从而达到比现有方法更好的链接效果。本发明能够快速准确的为开发者提供有价值的用户反馈,并给出存在潜在修改可能的源代码集合,为App的持续发布提供指导性意见,提高开发者维护App的效率。为了了解该工具在实际使用过程中对开发者的帮助程度,该工具还设置了收集开发者反馈信息的功能,以便之后能更好地优化本发明的方法,不断提升效果。

Description

一种基于用户评论和开发者智慧的App源代码链接方法
技术领域
本发明属于软件工程领域,尤其是一种基于用户评论和开发者智慧的App源代码链接方法。
背景技术
移动应用市场的持续火爆,为应用商店带来了大量的用户评论。这些评论能够描述用户在使用App时遇到的问题,通过分析这些用户评论的内在信息,开发者被驱动去改进自己开发的应用程序,主要表现为修复问题漏洞或增加新功能。有用的用户评论反映了用户人群的需求,蕴含着对App后续更新维护有价值的信息。然而,由于用户评论的随意性和无门槛性,也给应用商店带来了大量的无用评论,使得监控应用商店用户反馈的行为变得困难。开发者直接获取用户评论不但不能为开发者提供切实的好处,还会给开发者带来时间浪费的问题。
开发者除了可以从应用商店的用户评论中获得信息,还可以从开源软件托管平台中获得有用信息。在当前流行的社会化编程大背景下,互联网上存在众多的第三方开源源代码托管平台,如GitHub。开发者使用GitHub托管应用程序项目,并开放源代码,接受其他开发者的代码贡献,使用Issue来讨论开发过程中的问题,使用Commit将修改的代码进行提交。这些Issue和Commit中聚集着开发者们的群体智慧,包括语义级别的信息和源代码级别的信息,对未来App的更新维护具有一定的参考价值。
实际上,现有的源代码链接方法至少存在以下不足:
1、现有方法对于重要用户评论的识别表现一般,重要用户评论的生产量和准确率都偏低。
2、现有方法并没有解决源代码自然语言信息弱的问题,用户反馈和源代码之间还是存在一定的语义差距,对链接的准确性产生影响。
3、现有方法没有对用户评论的版本进行划分,而是直接把收集到的大量用户评论投入到实验,考虑到用户评论提出的某个问题可能在某个时间点已经被开发者解决,挖掘这部分用户评论反馈给开发者并没有意义。
发明内容
本发明的目的在于克服现有技术的不足,提出一种基于用户评论和开发者智慧的App源代码链接方法,从用户评论中挖掘有价值的用户反馈信息,同时考虑开发者群体智慧,建立从用户评论到潜在需要更改的源代码之间的链接,高效地为开发者提供代码修改建议,从而实现App的持续快速更新迭代。
本发明解决其技术问题是采取以下技术方案实现的:
一种基于用户评论和开发者智慧的App源代码链接方法,包括以下步骤:
步骤1、爬取数据信息,并对数据信息进行预处理;
步骤2、使用BERT模型对步骤1中预处理后的数据进行意图分类;
步骤3、对步骤2中上个版本意图分类后的数据提取价值评论;
步骤4、使用LDA对步骤3中的价值评论和步骤2中当前版本意图分类后的数据聚类主题;
步骤5、使用Issue数据中的文本对步骤4中的聚类主题进行语义丰富,使用Commit数据中的文本对源代码组件进行语义丰富;
步骤6、通过相似度计算,计算步骤5中语义丰富后的聚类主题和源代码组件之间的相似度,并通过潜在的源代码推荐算法进行源代码的链接。
而且,所述步骤1中爬取数据信息包括:从Fdroid开源平台中爬取App的数据信息;从Google Play中爬取用户评论信息;从GitHub中爬取Issue数据和Commit数据,并将爬取到的数据信息存入到数据库中。
而且,所述从Fdroid开源平台中爬取App的数据信息包括APP的概括描述、App的详细描述、App的GitHub地址和App的所属类别;
从Google Play中爬取用户评论信息包括评论所属APP、评论的点赞数、评论对APP的打分、评论的时间、评论的用户和评论的内容;
从GitHub中爬取的Issue数据包括Issue的GitHub地址、Issue的标题、Issue的状态、Issue的评论内容和Issue的记录时间;
从GitHub中爬取的Commit数据包括Commit的GitHub地址、Commit的提交说明、Commit的描述、Commit的提交者和Commit的记录时间。
而且,所述步骤1中预处理的具体实现方法为:通过NLTK技术的非英文过滤、去停用词、词性标注、单词纠正、词形还原和短文本移除对爬取的数据信息进行预处理。
而且,所述步骤2的的具体实现方法为:对步骤1预处理后的数据中的用户评论加上一个CLS标记符和SEP标记符,经过Embedding过程后得到预训练语言模型BERT的输入,调用预训练语言模型BERT,选取其输出中的CLS处特征向量,在预训练语言模型BERT前馈神经网络和softmax函数构成的分类层中进行分类,并返回用户评论所属各个类别的概率情况,选取概率值最大的选项作为其意图分类的结果,所述意图分类包括新功能请求、问题发现、信息提示、信息帮助和其他。
而且,所述步骤3的具体实现方法为:使用Sentence-BERT模型将步骤2预处理后数据中上个版本分类后的用户评论和Issue数据中的文本句向量化,然后通过余弦相似度来计算两者的相似度情况,提取价值评论;随着用户评论和Issue数据中的文本相似度阈值的逐步升高,与Issue数据中的文本产生链接对的用户评论数量逐步减少,同时价值词的数量逐步减少;在计算过程中比对不同相似度阈值下的单位价值词减少而变化的用户评论数量,动态选择最优的相似度阈值。
而且,所述步骤4的具体实现方法为:使用LDA对步骤3中的价值评论和步骤2预处理后数据中当前版本意图分类后的数据聚类主题,并结合PyLDAvis可视化和主题相关性指标来选择LDA的最优聚类主题数。
而且,所述步骤5的具体实现方法为:
使用Issue数据中的文本对用户评论聚类主题进行语义丰富:使用非对称骰子系数计算用户评论聚类主题与Issue数据中的文本之间的相似度:
Figure BDA0003597765910000031
其中,
Figure BDA0003597765910000032
为用户评论聚类主题a中包含的单词集合,
Figure BDA0003597765910000033
为Issue文本b中包含的单词集合,min函数的作用是对比两个单词集合中的单词数,设定相似度阈值,将相似度结果大于相似度阈值的链接视为有效链接,将各个有效链接中的两部分数据组合在一起成为丰富后的用户反馈信息;
使用Commit数据中的文本对源代码组件进行语义丰富:将与源代码有关联的Commit信息进行提取,并对源代码进行抽象语法树解析,将两者组合在一起即为丰富后的源代码组件,其中抽象语法树解析提取提取包名、类名、方法名、变量名以及注释。
而且,所述步骤6的具体实现方法为:使用加权的非对称骰子系数来计算语义丰富后的聚类主题和源代码组件之间的相似度:
Figure BDA0003597765910000034
其中,RFi为语义丰富后的用户评论聚类主题,RCj为语义丰富后的源代码组件,k为同时出现在RFi和RCj中的单词,df表示单词频率,
Figure BDA0003597765910000035
为RFi中包含的单词集合,
Figure BDA0003597765910000036
为RCj中包含的单词集合,min函数的作用是对比两个单词集合中的单词数,完成相似度计算后通过潜在的源代码推荐算法实现源代码的链接。
本发明的优点和积极效果是:
本发明使用自然语言处理等相关技术,将划分版本后的用户评论和开发者群体智慧进行联系。采用基于BERT模型的意图分类和价值评论提取相结合的方法来识别重要用户反馈,通过引入GitHub中的Issue和Commit相关信息来缩小用户评论和源代码之间的语义差距,从而达到比现有方法更好的链接效果。本发明能够快速准确的为开发者提供有价值的用户反馈,并给出存在潜在修改可能的源代码集合,为App的持续发布提供指导性意见,提高开发者维护App的效率。为了了解该工具在实际使用过程中对开发者的帮助程度,该工具还设置了收集开发者反馈信息的功能,以便之后能更好地优化本发明的方法,不断提升效果。
附图说明
图1为本发明的流程图;
图2为本发明基于BERT模型的意图分类流程图;
图3为本发明主题聚类的价值评论进行语义丰富的流程图;
图4为本发明源代码链接的算法逻辑图;
图5为本发明应用工具的效果展示图。
具体实施方式
以下结合附图对本发明做进一步详述。
一种基于用户评论和开发者智慧的App源代码链接方法,为了高效地从用户评论中挖掘出有价值的用户评论,并进一步定位到潜在需要修改的App源代码,从而帮助开发者更好地进行App的更新维护。本发明在考虑App版本划分后,结合用户评论和开发者智慧两个维度的内容来实现准确的用户反馈挖掘,从而为开发者提供修改建议,整个过程主要涉及自然语言处理和数据挖掘等技术,如图1所示,包括以下步骤:
步骤1、爬取数据信息,并对数据信息进行预处理。
如表1所示,爬取数据信息包括:从Fdroid开源平台中爬取App的数据信息;从Google Play中爬取用户评论信息;从GitHub中爬取Issue数据和Commit数据,并将爬取到的数据信息存入到数据库中。
其中,从Fdroid开源平台中爬取App的数据信息包括APP的概括描述、App的详细描述、App的GitHub地址和App的所属类别。
从Google Play中爬取用户评论信息包括评论所属APP、评论的点赞数、评论对APP的打分、评论的时间、评论的用户和评论的内容。
从GitHub中爬取的Issue数据包括Issue的GitHub地址、Issue的标题、Issue的状态、Issue的评论内容和Issue的记录时间。
从GitHub中爬取的Commit数据包括Commit的GitHub地址、Commit的提交说明、Commit的描述、Commit的提交者和Commit的记录时间。
表1各维度的重要信息字段
Figure BDA0003597765910000041
Figure BDA0003597765910000051
由于用户评价行为的非正式化,单词拼写比较随意,导致用户提交的评论包含大量的噪音数据,例如拼写错误词,缩略词,重复字母词等。这些噪音数据对从用户评论中提取偏好特征产生严重影响。因此需要对爬取的数据进行必要的数据预处理。本发明使用通过NLTK技术的非英文过滤、去停用词、词性标注、单词纠正、词形还原和短文本移除对爬取的数据信息进行预处理。
步骤2、使用BERT模型对步骤1中预处理后的数据进行意图分类。为了更好的帮助开发者了解用户对App的使用反馈。将用户评论意图分类为是新功能请求,问题发现,信息提示,信息帮助和其他。而新功能请求与问题发现与App的更新维护最为相关。现有方法对这两类用户评论的识别准确率在60%到70%之间。因此本发明使用特征抽取能力更强的预训练语言模型BERT对用户评论进行意图分类:
如图2所示,对步骤1预处理后的数据中的用户评论加上一个CLS标记符和SEP标记符,经过Embedding过程后(词嵌入、分割嵌入、位置嵌入以及求和操作)得到预训练语言模型BERT的输入,调用预训练语言模型BERT,选取其输出中的CLS处特征向量,在预训练语言模型BERT前馈神经网络和softmax函数构成的分类层中进行分类,并返回用户评论所属各个类别的概率情况,选取概率值最大的选项作为其意图分类的结果。
步骤3、对步骤2预处理数据中上个版本意图分类后的数据提取价值评论。当前版本的用户评论能为App之后的更新维护提供重要的信息。但在实际开发中,对于用户反馈的获取存在类似“冷启动”的问题。即在当前版本发布后,大多数App无法在短期内获得到足够多的用户评论,为了解决这一问题,在用户评论版本划分的基础上,选择从上个版本的用户评论中提取相关评论,从而补充当前版本的用户评论信息。
使用Sentence-BERT模型将步骤2预处理后数据中上个版本分类后的用户评论和Issue数据中的文本句向量化,然后通过余弦相似度来计算两者的相似度情况,提取价值评论;随着用户评论和Issue数据中的文本相似度阈值的逐步升高,与Issue数据中的文本产生链接对的用户评论数量逐步减少,同时价值词的数量逐步减少;在计算过程中比对不同相似度阈值下的单位价值词减少而变化的用户评论数量,动态选择最优的相似度阈值。
步骤4、使用LDA对步骤3中的价值评论和步骤2预处理后数据中当前版本意图分类后的数据聚类主题。实现更细粒度的特征提取,并结合PyLDAvis可视化和主题相关性指标来选择LDA的最优聚类主题数。
步骤5、使用Issue数据中的文本对步骤4中的聚类主题进行语义丰富,使用Commit数据中的文本对源代码组件进行语义丰富。
使用Issue数据中的文本对用户评论聚类主题进行语义丰富:使用非对称骰子系数计算用户评论聚类主题与Issue数据中的文本之间的相似度:
Figure BDA0003597765910000061
其中,
Figure BDA0003597765910000062
为用户评论聚类主题a中包含的单词集合,
Figure BDA0003597765910000063
为Issue文本b中包含的单词集合,min函数的作用是对比两个单词集合中的单词数,返回其中的较小值。设定相似度阈值为,将相似度结果大于0.3相似度阈值的链接视为有效链接,将各个有效链接中的两部分数据组合在一起成为丰富后的用户反馈信息(简称RF)。
使用Commit数据中的文本对源代码组件进行语义丰富:将与源代码有关联的Commit信息进行提取,并对源代码进行抽象语法树解析,将两者组合在一起即为丰富后的源代码组件(简称RC),其中抽象语法树解析提取提取包名、类名、方法名、变量名以及注释:
如图3所示,首先将源代码进行抽象语法树解析和数据预处理,得到源代码组件的词袋模型。然后将每个java源代码文件的文件名作为参数进行SQL语句的拼接。接着在数据库中查询具有相同java文件名的Commit文本,对查询出来的所有包括该java文件名的Commit文本进行语义信息(标题和详细描述的内容)的提取和数据预处理,得到Commit信息的词袋模型。最后将两者组合在一起。
步骤6、通过相似度计算,计算步骤5中语义丰富后的聚类主题和源代码组件之间的相似度,并通过潜在的源代码推荐算法进行源代码的链接。
为了更好地体现出高频单词的重要性,使用加权的非对称骰子系数来计算RF和RC之间的相似度:
Figure BDA0003597765910000064
其中,RFi为语义丰富后的用户评论聚类主题,RCj为语义丰富后的源代码组件,k为同时出现在RFi和RCj中的单词,df表示单词频率,
Figure BDA0003597765910000065
为RFi中包含的单词集合,
Figure BDA0003597765910000066
为RCj中包含的单词集合,min函数的作用是对比两个单词集合中的单词数,返回其中的较小值。
如图4所示,在完成相似度计算后,使用该算法实现用户评论定位到源代码的top-k链接推荐。
如图5所示,根据上述方法,设计了展示用户评论链接的源代码的应用工具,以直观的方式为开发者提供有价值的用户反馈和源代码修改建议。每条评论的上方都存在开发者反馈图标,开发者可以对该评论的价值做出判断,即该评论的出现是否对开发者产生帮助。缩略评论展开后显示完整的用户评论和用户评价时间。可能链接到的潜在源代码展开后显示该用户评论链接的潜在源代码集合,并收集开发者对推荐源代码的反馈,对其是否有用做出判断。此App的开发者作为受众,以更直观的方式协助开发者,提高其维护App的效率。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

Claims (9)

1.一种基于用户评论和开发者智慧的App源代码链接方法,其特征在于:包括以下步骤:
步骤1、爬取数据信息,并对数据信息进行预处理;
步骤2、使用BERT模型对步骤1中预处理后的数据进行意图分类;
步骤3、对步骤2预处理后数据中上个版本意图分类后的数据提取价值评论;
步骤4、使用LDA对步骤3中的价值评论和步骤2预处理后数据中当前版本意图分类后的数据聚类主题;
步骤5、使用Issue数据中的文本对步骤4中的聚类主题进行语义丰富,使用Commit数据中的文本对源代码组件进行语义丰富;
步骤6、通过相似度计算,计算步骤5中语义丰富后的聚类主题和源代码组件之间的相似度,并通过潜在的源代码推荐算法进行源代码的链接。
2.根据权利要求1所述的一种基于用户评论和开发者智慧的App源代码链接方法,其特征在于:所述步骤1中爬取数据信息包括:从Fdroid开源平台中爬取App的数据信息;从Google Play中爬取用户评论信息;从GitHub中爬取Issue数据和Commit数据,并将爬取到的数据信息存入到数据库中。
3.根据权利要求2所述的一种基于用户评论和开发者智慧的App源代码链接方法,其特征在于:所述从Fdroid开源平台中爬取App的数据信息包括APP的概括描述、App的详细描述、App的GitHub地址和App的所属类别;
从Google Play中爬取用户评论信息包括评论所属APP、评论的点赞数、评论对APP的打分、评论的时间、评论的用户和评论的内容;
从GitHub中爬取的Issue数据包括Issue的GitHub地址、Issue的标题、Issue的状态、Issue的评论内容和Issue的记录时间;
从GitHub中爬取的Commit数据包括Commit的GitHub地址、Commit的提交说明、Commit的描述、Commit的提交者和Commit的记录时间。
4.根据权利要求1所述的一种基于用户评论和开发者智慧的App源代码链接方法,其特征在于:所述步骤1中预处理的具体实现方法为:通过NLTK技术的非英文过滤、去停用词、词性标注、单词纠正、词形还原和短文本移除对爬取的数据信息进行预处理。
5.根据权利要求1所述的一种基于用户评论和开发者智慧的App源代码链接方法,其特征在于:所述步骤2的的具体实现方法为:对步骤1预处理后的数据中的用户评论加上一个CLS标记符和SEP标记符,经过Embedding过程后得到预训练语言模型BERT的输入,调用预训练语言模型BERT,选取其输出中的CLS处特征向量,在预训练语言模型BERT前馈神经网络和softmax函数构成的分类层中进行分类,并返回用户评论所属各个类别的概率情况,选取概率值最大的选项作为其意图分类的结果,所述意图分类包括新功能请求、问题发现、信息提示、信息帮助和其他。
6.根据权利要求1所述的一种基于用户评论和开发者智慧的App源代码链接方法,其特征在于:所述步骤3的具体实现方法为:使用Sentence-BERT模型将步骤2预处理后数据中上个版本分类后的用户评论和Issue数据中的文本句向量化,然后通过余弦相似度来计算两者的相似度情况,提取价值评论;随着用户评论和Issue数据中的文本相似度阈值的逐步升高,与Issue数据中的文本产生链接对的用户评论数量逐步减少,同时价值词的数量逐步减少;在计算过程中比对不同相似度阈值下的单位价值词减少而变化的用户评论数量,动态选择最优的相似度阈值。
7.根据权利要求1所述的一种基于用户评论和开发者智慧的App源代码链接方法,其特征在于:所述步骤4的具体实现方法为:使用LDA对步骤3中的价值评论和步骤2预处理后数据中当前版本意图分类后的数据聚类主题,并结合PyLDAvis可视化和主题相关性指标来选择LDA的最优聚类主题数。
8.根据权利要求1所述的一种基于用户评论和开发者智慧的App源代码链接方法,其特征在于:所述步骤5的具体实现方法为:
使用Issue数据中的文本对用户评论聚类主题进行语义丰富:使用非对称骰子系数计算用户评论聚类主题与Issue数据中的文本之间的相似度:
Figure FDA0003597765900000021
其中,
Figure FDA0003597765900000022
为用户评论聚类主题a中包含的单词集合,
Figure FDA0003597765900000023
为Issue文本b中包含的单词集合,min函数的作用是对比两个单词集合中的单词数,
设定相似度阈值,将相似度结果大于相似度阈值的链接视为有效链接,将各个有效链接中的两部分数据组合在一起成为丰富后的用户反馈信息;
使用Commit数据中的文本对源代码组件进行语义丰富:将与源代码有关联的Commit信息进行提取,并对源代码进行抽象语法树解析,将两者组合在一起即为丰富后的源代码组件,其中抽象语法树解析提取提取包名、类名、方法名、变量名以及注释。
9.根据权利要求1所述的一种基于用户评论和开发者智慧的App源代码链接方法,其特征在于:所述步骤6的具体实现方法为:使用加权的非对称骰子系数来计算语义丰富后的聚类主题和源代码组件之间的相似度:
Figure FDA0003597765900000024
其中,RFi为语义丰富后的用户评论聚类主题,RCj为语义丰富后的源代码组件,k为同时出现在RFi和RCj中的单词,df表示单词频率,
Figure FDA0003597765900000025
为RFi中包含的单词集合,
Figure FDA0003597765900000026
为RCj中包含的单词集合,min函数的作用是对比两个单词集合中的单词数,完成相似度计算后通过潜在的源代码推荐算法实现源代码的链接。
CN202210393040.1A 2022-04-15 2022-04-15 一种基于用户评论和开发者智慧的App源代码链接方法 Pending CN114741088A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210393040.1A CN114741088A (zh) 2022-04-15 2022-04-15 一种基于用户评论和开发者智慧的App源代码链接方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210393040.1A CN114741088A (zh) 2022-04-15 2022-04-15 一种基于用户评论和开发者智慧的App源代码链接方法

Publications (1)

Publication Number Publication Date
CN114741088A true CN114741088A (zh) 2022-07-12

Family

ID=82281400

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210393040.1A Pending CN114741088A (zh) 2022-04-15 2022-04-15 一种基于用户评论和开发者智慧的App源代码链接方法

Country Status (1)

Country Link
CN (1) CN114741088A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115114900A (zh) * 2022-08-29 2022-09-27 北京达佳互联信息技术有限公司 文本评论关联方法、装置、电子设备、存储介质及产品

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115114900A (zh) * 2022-08-29 2022-09-27 北京达佳互联信息技术有限公司 文本评论关联方法、装置、电子设备、存储介质及产品

Similar Documents

Publication Publication Date Title
Lin et al. Traceability transformed: Generating more accurate links with pre-trained bert models
JP7282940B2 (ja) 電子記録の文脈検索のためのシステム及び方法
US9727637B2 (en) Retrieving text from a corpus of documents in an information handling system
US9317498B2 (en) Systems and methods for generating summaries of documents
US20170235841A1 (en) Enterprise search method and system
US20160196336A1 (en) Cognitive Interactive Search Based on Personalized User Model and Context
CN111767716B (zh) 企业多级行业信息的确定方法、装置及计算机设备
CN112800170A (zh) 问题的匹配方法及装置、问题的回复方法及装置
CN110276071B (zh) 一种文本匹配方法、装置、计算机设备及存储介质
CN104765769A (zh) 一种基于词矢量的短文本查询扩展及检索方法
WO2015084404A1 (en) Matching of an input document to documents in a document collection
CN113168499A (zh) 检索专利文档的方法
CN113196277A (zh) 用于检索自然语言文档的系统
CN112000802A (zh) 基于相似度集成的软件缺陷定位方法
CN111985212A (zh) 文本关键字识别方法、装置、计算机设备及可读存储介质
CN112711666B (zh) 期货标签抽取方法及装置
CN114741088A (zh) 一种基于用户评论和开发者智慧的App源代码链接方法
CN114792092B (zh) 一种基于语义增强的文本主题抽取方法及装置
Martin et al. Incremental evolution of fuzzy grammar fragments to enhance instance matching and text mining
Gupta et al. Tools of opinion mining
CN113868431A (zh) 面向金融知识图谱的关系抽取方法、装置及存储介质
CN114265931A (zh) 基于大数据文本挖掘的消费者政策感知分析方法及系统
JP6553557B2 (ja) 学習装置、映像検索装置、方法、及びプログラム
DeVille et al. Text as Data: Computational Methods of Understanding Written Expression Using SAS
Smrz et al. Information extraction in semantic wikis

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