没有合适的资源?快使用搜索试试~ 我知道了~
⃝可在www.sciencedirect.com在线获取ScienceDirectICTExpress 6(2020)238www.elsevier.com/locate/icte基于Stack Overflow的编程语言分析Stefano Cagnoni,Lorenzo Cozzini,Gianfranco Lombardo,Monica Mordonini,AgostinoPoggi,Michele Tomaiuolo意大利帕尔马帕尔马大学工程与建筑系接收日期:2020年2月29日;接收日期:2020年5月29日;接受日期:2020年7月2日在线预订2020年摘要在开发软件工程项目时,选择最合适的编程语言是至关重要的一步。大多数时候,对可能的选项感到放心几乎与语言的技术特征一样重要。因此,值得分析的是情感因素在这个过程中所起的作用在这篇文章中,我们分析了2018年开发人员在Stack Overflow平台上表达的情绪趋势, 26种编程语言为此,我们提出了一个由远程监督训练的学习模型,并比较了两个不同的学习模型。 分类器架构。c2020年韩国通信与信息科学研究所(KICS)。出版社:Elsevier B.V.这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。关键词:编程语言;情感检测;机器学习1. 介绍选择合适的编程语言通常 这是软件开发流程中至关重要的一步。这种选择自然受到有关编程语言的优缺点的技术考虑的影响在解决利息问题上。最近出现的处理技术主题的社交网络使开发人员参与到关于编程语言的讨论中,在这些讨论中,严格的技术问题往往与更情绪化的个人观点相提并论。Stack Overflow是一个完全致力于开发人员的平台,也是发布关于软件工程的讨论以及问题和答案的最大网站之一。在软件工程中,情感和意见的重要性变得更加明显,如果考虑到它们与集体工作质量和个人生产力的密切关系[1,2]。在这项工作中,我们分析StackOver流。从情感分析的角度来看,∗ 通讯作者。电子邮件地址:stefano. unipr.it(S.Cagnoni),lorenzo.studenti.unipr.it(L.Cozzini),gianfranco. unipr.it(G.Lombardo),monica.mordonini@ unipr.it(M.Mordonini),agostino. unipr.it(A.Poggi),michele. unipr.it(M.Tomaiuolo)。同行评审由韩国通信和信息科学研究所(KICS)负责https://doi.org/10.1016/j.icte.2020.07.002以确定他们最常表达的情绪,并突出开发人员意见的趋势。为此,我们根据社交网络排名,选择了2018年最流行的26种编程,脚本和标记语言的Stack Overflow帖子,以动态分析用户对它们的看法。我们的分析基于我们收集的特定数据集,并使用基于远程监督的完全自动化过程进行标记。为了超越只考虑帖子的极性,这会阻止人们区分其中表达的情感的细微差别,我们的目标是检测Parrott模型的七种基本情感我们比较了一个三级分层分类器组成的四个专门的分类器组成的一个平面模型的七个输出分类器。我们的分析结果确定了帖子最常与积极情绪联系在一起的语言,提供了有趣的信息,补充了Stack Overflow每年发布的发展调查。本文的两个主要贡献是:(i)通过远程监督训练的模型,我们比较了两种可能的分类器架构;(ii)对开发人员表达的意见和情绪进行动态分析。2. 相关工作情感分析和意见挖掘分析人们2405-9595/2020韩国通信和信息科学研究所(KICS)。出版社:Elsevier B.V.这是一个开放的访问CC BY-NC-ND许可证下的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。S. 卡尼奥尼湖Cozzini,G.Lombardo等人/ICT Express 6(2020)238239书面文本。自然语言处理(NLP)的进展导致人们对这一主题越来越感兴趣,其中一些横向应用涉及学术界和工业界[4]。根据任务的性质,科学文献中提出了各种方法。例如,虽然情感分析本质上是一个二进制分类任务,但情感检测通常是一个多类或多标签任务。最近,社交媒体平台的广泛使用使这些任务在知识发现和衡量用户满意度方面也发挥了关键作用。比如说,在[5]中,作者对Twitter进行了情感分析,以了解流行音乐事件,使用分层分类器来区分用户表达的中性,积极和消极情绪在[6]中,通过检测七类情绪来研究Facebook上的患者社区,以检索与罕见疾病相关的情绪披露信息。在[7]中,该研究强调了:(i)对Stack Overflow讨论进行情感分析和意见挖掘的相关性,以及(ii)与技术职位的特定语言特征相关的问题。事实上,不同的写作风格和不同词典的使用使得在通用社交网络上训练的分类器很难在处理技术主题的网络数据上 表现良好[8]。最近,Cabrera等人[9]比较了两种不同的基于决策树的集成学习架构,以将Stack Overflow作为多标签分类任务进行情感分析,克服了小训练集带来的限制。有鉴于此,在这项工作中,我们将三级分层分类器与[10]中的多类上下文中的平面分类器进行了比较,使用远程监督[11]来标记训练集。具体来说,我们基于树结构帕罗特模型[ 3 ]第一级描述的六种主要情绪进行分类3. 方法用于情感分析的公共数据集通常包括在流行的社交网络上发布的内容。然而,在这些一般数据上训练的模型在应 用 于 专 业 主 题 时 表 现 不 佳 [12] , 特 别 是 在 像 StackOverflow这样的社交网络中技术性很强的时候。因此,分析这样的内容需要根据从同一平台收集的数据构建特定模型。构建一个大型数据集可能是一项艰巨的任务,需要一个专家小组标记数百个实例,以避免偏见和主观决策。然而,远程监督方法可以帮助以全自动的方式创建和优化大型数据集,并取得良好的效果[13]。在为这项工作构建数据集时,我们为每个帖子分配了以下七个标签之一:爱,喜悦,惊喜,悲伤,恐惧,愤怒或目标。 图 1说明了本项目中使用的数据分析工作流程的主要步骤,作为数据库中知识发现过程的自定义应用程序[14]。接下来的小节详细介绍了每个步骤:数据选择、预处理和转换、远程监控,Fig. 1. 数据分析工作流程。挖掘结果将在具体章节中讨论。为该分析开发的软件是用Python编写的,特别是使用了nltk和sklearn模块。所有的代码都是公开的,1还有一个带注释的数据集,包括6000个客观实例和每个基本情感的1000个实例。3.1. 数据选择整个Stack Overflow内容的转储定期发布。2转储可作为压缩文件,包括问题,答案和评论。在本研究中,分析了文件“stackoverflow.com-Posts.7z”。在下载时,文件大小约为70 GB(未压缩),包含2008年1月至2019年2月的6500多万个帖子。内容结构为XML文档,列出帖子及其所 有 相 关 字 段 , 包 括 : Id 、 PostTypeId 、AcceptedPosterId、ParentId、CreationDate、Body、Title、Tags、PosterCount、CommentCount。在这项研究中,我们分析了2018年发布的2415694篇帖子,这些帖子在所有月份几乎均匀分布。这些实例被过滤,只保留那些标记为与最流行的语言相关的实例。我们选择的语言是最受欢迎的,根据Stack Overflow进行的2018年开发人员调查,有超过10万名开发人员参与3:JavaScript,HTML,CSS,SQL,Java,Bash,Shell,Python,C#,PHP,C++,C,Typescript,Ruby,Swift,Assembly , Go , Job-C , Vb.net , R , Matlab , Vba ,Kotlin,Scala,Groovy,Perl。3.2. 数据预处理和转换预处理包括从文本中删除HTML标签,代码示例和标点符号,以及英语停用词,以将字典限制为常见的英语单词。最后,我们使用雪球算法来减少单词的词干形式。我们使用Word 2 Vec和Tf-Idf算法进行矢量化,1 http://sowide. 乌尼省it/datasets.2 https://archive. 或g/details/stackexchange。3 https://insights. statackoverflow. com/survey/2018/.240S. 卡尼奥尼湖Cozzini,G.Lombardo等人/ICT Express 6(2020)238D∈W←W←D←D{}D←D{}{}D←D{}联系我们D←D{}3.3. 远程监控算法1用于将帖子添加到训练数据集的伪代码。一曰: 函数ADDT OD ATASETS(post)2:股骨柄和股骨柄(后)3.For AllWordDo4:emot Parrott Stemmed Dict(word)5.如果emot,6:instance←post−word7:Dsubj←Dsubj{instance}表1图二. 扁平分类器。8:[emot][emot] 实例9:如果爱,快乐,惊喜然后10:pos pos实例11:否则情绪悲伤, 恐惧,愤怒12:neg neg实例13:如果结束14:返回15:如果结束16:结束17:obj objpost十八: end function如算法1所示,从预处理的数据自动创建第一原始数据集。每个帖子都根据帕罗特的情感本体中的特定关键词进行了注释。六种基本情绪中的每一种都与一系列术语相关联,这些术语对应于帕罗特本体论中的子情绪。这些术语被词干化,就像对数据集单词所做的那样事实上,情感和关键词的分类是从Parrott模型的主要情感开始建立的,创建了六组对应于它们的关键词。每一组都包含一个主要情绪和与之相关的次要和第三情绪。词干被用来匹配这个分类的关键字与分析的帖子中的单词。我们从分类中删除了一些术语,如“喜欢”,“渴望”和“满足”,以避免将其词干版本与其他没有任何情感内容的术语混淆。例如,我们将帖子中的每个单词与与情绪相关的单词进行了匹配。根据这些匹配,我们将帖子标注为客观或主观(第一级),积极或消极(第二级),最后,传达精确的情感(第三级)。在将后者添加到数据集之前,还从实例中删除了决定性的匹配,以避免引入方法偏差。作为额外的改进,包含具有对比极性的关键字的实例在大多数基础上进行注释。在这一阶段结束时,我们为每个班级收集了:喜悦,12059条帖子;爱,9101条;惊喜,1232条;恐惧,2139条;愤怒,1873条;悲伤,2738条;目标,307 988.总共有337130个帖子通过这一过程被注释为传达情感(或客观)。分类器的F-测度的比较分类器F-测度公寓,7班0.23分层,7类0.41分层,3类0.793.4. 数据挖掘我们首先考虑了以下分类算法:线性回归,逻辑回归,随机森林,朴素贝叶斯,梯度提升树,支持向量机与序列最小优化(SMO)。最后,我们选择了SMO,因为它一贯具有良好的准确性和效率。我们优化了每个分类器的特征集,然后根据信息增益标准对其进行排序原始数据集用于训练分类器并创建应用于原始数据集中每个实例的初始模型:我们去除了错误分类的实例或具有最低置信度的那些实例(即,离群值),从而产生性能更好的干净数据集[13]。我们比较了两种分类器架构。 第一个是基于一个单一的“平面”模型,区分7种可能的类别(六种主要情绪之一,或“目标”)。这个分类模型是在一个平衡的数据集上训练的,每个类有1000个实例(见图1)。 2)。另 一 个 是 三 层 的 “Model 1”, at the highest level, wastrained over a balanced dataset of 12在中间水平,极性(正或负) 分类为主观的帖子的数量由“模型2”确定,该模型使用6000个主观帖子(3000个正面帖子和3000个负面帖子)的平衡集合进行训练。在最低层次,“模型3”和“模型4”分别将三种积极情绪分类在一个分支上,将三种消极情绪分类在另一个分支上。每个模型都是使用3000个实例的特定平衡数据集进行训练的:1000个表达每种积极情绪的帖子(喜悦,爱。对于如表1所示,这两种架构具有非常不同的分类质量。我们使用F-测度(定义为精确率和召回率的调和平均值)对它们进行了S. 卡尼奥尼湖Cozzini,G.Lombardo等人/ICT Express 6(2020)238241=图三. 分层分类器。表2在我们的分析中最积极的语言(左);在Stack Overflow 2018调查中最受欢迎的语言(右)。图表1(our分析)积极情绪图表2(开发人员)调查)肯定答复1. MATLAB74.57%1. 锈百分之七十八点九2. R74.53%2. Kotlin百分之七十五点一3. Python72.22%3. Python68.0%4. Scala71.74%4. TypeScript67.0%5. SQL71.73%5. 去百分之六十五点六6. C71.65%6. Swift百分之六十五点一7. 组件71.36%7. JavaScript百分之六十一点九8. Bash70.08%8. C#语言百分之六十点四9. Perl69.62%9. F编号百分之五十九点六10. 壳69.17%10. Clojure百分之五十九点六它以完美的精确度和召回率达到其最佳值1(理想情况)。图四、 与Python和JavaScript相关的问题的情绪。4. 结果我们使用分层分类器来识别2018年在Stack Overflow上发布的关于最流行语言的所有帖子的情绪,如第3.1节所述。所有26种语言都被单独分析,往往显示出明显不同的轮廓。作为一个例子,图。4显示了与Python和JavaScript相关的问题相关的情绪,作为两种流行的动态语言之间的比 较 。 可 以 观 察 到 , 与 Python 相 关 的 帖 子 往 往 比 与Javascript相关的帖子更少表达愤怒,更频繁地表达惊讶。表2显示了这一分析的汇总结果。图表1(在左边)表示“最快乐”的语言列表,即,其中,大多数人都是问他的问题Fmeasure2·precision·recall查准率+查全率(一)根据我们的分析,这是一种积极的情绪。作为比较,图2(右侧)代表了最受欢迎的语言,分层分类器的准确性是平面分类器的两倍。 中间分类器在三个类别(客观、积极、消极)上达到0.79的F测量。对数据集的30/70分割进行了评价。由于类别的数量和任务的主观性,最低级别的分类不太准确:通常,甚至人类也不同意最合适的分类;此外,一条消息可能传达多种情绪。242S. 卡尼奥尼湖Cozzini,G.Lombardo等人/ICT Express 6(2020)238根据2018年开发者调查(见第3.1节)。这两个“图表”代表了不同的数据,对开发者来说都很有趣。情感分析显示了哪些语言与各种平台用户的积极帖子相关:专业开发人员,学生,任何对语言感兴趣的人。相反,StackOverflow的调查包括来自“正在使用该语言或技术进行开发并表示有兴趣继续开发它的开发人员”的回答因此,它们显示了特定社区的热情或承诺程度(例如,Rust开发人员),超过了对一种语言的一般感觉S. 卡尼奥尼湖Cozzini,G.Lombardo等人/ICT Express 6(2020)2382435. 结论这项工作表明,可以使用一个自动标记的训练集,使用远程监督方法获得,来训练一个能够准确识别开发人员在Stack Overflow关于编程语言的帖子中表达的情绪的模型。此外,它表明,使用一个分层模型,由多个分类器排列在不同的水平上给出了更好的结果比使用一个单一的平面分类器进行情感检测时。作为未来的扩展,这项工作还可以分析除了原始帖子之外的回复和评论这种情感分析方法似乎足够通用,可以应用于其他特定领域,与本研究中所讨论的不同。CRediT作者贡献声明调查,验证,写作-重新检视编辑. Lorenzo Cozzini:调查,软件,数据管理,可视化。Gianfranco Lombardo:研究,方法,写作-评论编辑。莫妮卡·莫多尼尼:调查,方法论,写作-评论编辑。Agostino Poggi:方法论,资源,写作- 审查编辑。Michele Tomaiuolo:概念化,方法论,监督,写作-原始草稿。竞合利益作者声明,他们没有已知的可能影响本文所报告工作引用[1] E. 古 兹 曼 湾Bruegge , Towards emotional awareness in softwaredevelopment teams,in:Proceedings of ESEC/FSE 2013,2013,pp.671-674.[2] M.R. Islam,M.F. Zibran,在软件工程中利用自动化情感分析,在:2017 IEEE/ACM第14届国际采矿软件库会议(MSR),IEEE,2017年,pp。203-214[3] W.G.帕罗特,《社会心理学中的情绪:基本读物》,心理学出版社,2001年。[4] B. Liu,情感分析与意见挖掘,Synth. Lect. 浪Technol. 5(1)(2012)1[5] P. Fornacciari,M. Mordonini,M. Tomaiuolo,Twitter上情绪分析的案例研究,在:WOA,2015,pp. 53比58[6] G. Lombardo,P. Fornacciari,M.莫尔多尼尼湖Sani,M.托马约洛, Facebook上支持团体分析的综合方法- 化脓性汗腺炎患者的病例,多媒体工具应用78(3)(2019)3321-3339。[7] N. Novielli,F. Calefato,F. Lanubile,社会程序员生态系统中情感检测的挑战,在:第七届社会软件工程国际研讨会论文集,2015年,pp. 33比40[8] F. Calefato,F. Lanubile,F.马约拉诺河Novielli,软件开发中的情感极性检测,Empir。软件。Eng.23(3)(2018)1352-1382.[9] 洛杉矶Cabrera-Diego,N.贝西斯岛Korkontzelos,使用多标签方法对堆栈溢出和jira中的情绪进行分类,Knowl。基于系统一百九十五[10] G. Angiani,S.Cagnoni,N.Chuzhikova,P.Fornacciari,M.莫多尼尼,M.用于检测情感的Tomaiuolo、Flat和分层分类器 在推文中,在:意大利人工智能协会会议,施普林格,2016年,pp. 51比64[11] A.去吧,R。巴亚尼湖Huang,使用远程监督的Twitter情感分类,CS224N项目报告,斯坦福大学1(12)(2009)2009。[12] P. Fornacciari,M. Mordonini,M. Tomaiuolo,Twitter上的社交网络和情感分析:走向联合方法,在:KDWeb,2015年,pp. 53比64[13] S. Cagnoni,P. Fornacciari,J. Kavaja,M. Mordonini,A. Poggi,A.Solimeo,M. Tomaiuolo,在Twitter上自动创建用于情感分析的大型和抛光训练集,在:机器学习,优化和大数据国际工作坊,Springer,2017年,第100页。146-157。[14] 联合Fayyad,G. Piatetsky-Shapiro,P. Smyth,从数据挖掘到数据库中的知识发现,AI Mag. 17(3)(1996)
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功