一、文章信息
作者:蒋 竞 吕江枫 张 莉
单位:北京航空航天大学 计算机学院
期刊:软件学报
题目:中文软件问答社区主题分析研究
二、背景、目的、结论
背景:随着软件开发领域的蓬勃发展,新的技术、工具、平台和编程语言不断出现。Stack Overflow、开源中国等 软件问答社区积累了大量用户对于这些技术内容的讨论。近年来,一些学者对 Stack Overflow 开发人员问答内 容进行主题分析,了解开发者关心的技术内容及其发展趋势。现有工作主要研究 Stack Overflow 等英文软件 问答社区[缺少对于中文软件问答社区的主题分析,不清楚中国开发者关注的问答内容。
目的:通过对中文软件回答社区开展主题分析研究,可以指导开发者更好地了解技术动向,帮助管理者改进社区、吸引更多用户参与。
结论:前端开发进入缓慢发展时期 后端开发重点的转移 通用技术值得重视 最具讨论热度的开发工具:Spring 框架
三、结果与讨论
根据软件问答社区内容分析的研究目标,本文将研究工作具体分为4个研究问题.
研究问题1.用户在开源中国问答社区主要讨论的主题有哪些?
研究问题2.这些讨论的主题其热度随时间发生变化的趋势是什么样的?
研究问题3.这些讨论主题的回答情况如何?
研究问题4.用户对特定技术的兴趣是如何随时间发生变化的?
本文采用主题模型的方法来发现主题,基于LDA方法从问题数据中提取主题。
结果分析:
研究问题1.用户在开源中国问答社区主要讨论的主题有哪些?
根据分析方法,得出每一主题的关键词、占比、主题名称等数据,将结果按占比排序并进行展示.之后,根据研究问题2中的热度趋势分析,将每一个主题的热度趋势展示在表中,具体主题的列表见表2.
![](https://i-blog.csdnimg.cn/blog_migrate/f8804d1bf3be3c789dfef2a4cdd951b0.png)
20 个主题的总体分析结果上看,用户在开源中国问答社区上关心众多不同内容的技术主题,从日常开发 中会经常遇见的操作系统与软件开发问题,到分布式系统这样较为专业的主题.在这 20 个主题中,操作系统与软件安装主题的讨论占比最大。
将这些主题分为了6大类别,分别为:前端开发、后端开发、数据库、操作系统、通用技术和其他
![](https://i-blog.csdnimg.cn/blog_migrate/7f170d3936e77455faa56b57306fd854.png)
在这些类别中,前端类别主题的讨论占比最多。在单个主题中,操作系统与软件安装的讨论最多。
研究问题2.这些讨论的主题其热度随时间发生变化的趋势是什么样的?
采用类别热度计算方法,针对全体问题,统计了各个类别的热度趋势,如图2所示。由图2可知,前端开发、后端开发和通用技术类别热度较高,其中前端开发热度自2014年起呈下降趋势,后端开发类别自2013年~2016年热度呈上升趋势。
![](https://i-blog.csdnimg.cn/blog_migrate/e81168b9facc84322795a5f8ced37f37.png)
随后根据研究问题1中的6个类别,分别对每一类别中的主题热度趋势进行分析对比。
前端开发类别
![](https://i-blog.csdnimg.cn/blog_migrate/754a8c8396e3eb3e5b8212740787fe01.png)
由分析结果可知,前端开发的众多主题虽然在2015年之前趋势波动较大,无法分析,但在2015年之后,所有前端主题热度一致下降。这种整体趋势代表了整个前端领域的关注度的下降。
通用技术类别
![](https://i-blog.csdnimg.cn/blog_migrate/a6075fb66612cf309e49af77aad03d4b.png)
由分析结果可以看出,在开源中国问答社区上除技术学习主题之外,其他讨论主题的热度趋势变化基本不大.这与通用技术的定义是相符的,通用技术类别下的文件操作、用户安全、数据类型和函数与方法这4类问题由于通用性强,所以受到技术热点变化的影响较小.
后端开发类别
![](https://i-blog.csdnimg.cn/blog_migrate/1d6a8d7b4e8ec4643df6d7a0a235b35b.png)
由分析结果可知,后端开发类别中,项目部署的热度保持最高,该主题在2012年~2014年热度快速上涨,这与前端大部分主题热度的上涨是同步的。但是从2016年来出现下降趋势,也与前端大部分主题热度趋势相同。服务器配置主题的热度除了在2012年~2013年之间快速下降之外,其他时候热度先小幅上升,从2016年又小幅下降,总体上基本保持持平。说明开发者一直对服务器配置问题保持一定的关注,因为这基本上是后端开发要解决的基本问题。服务器配置主题与项目部署主题一样,从2016年以来出现下降趋势。后台数据主题与服务器配置主题趋势基本相同,从2016年以来出现下降趋势。
值得关注的是分布式系统主题以及系统设计主题。自2012年以来基本呈热度上升趋势。说明开发者的关注点逐渐从基础的后端开发(项目部署、服务器配置、后端数据传递)内容转移到了系统设计以及分布式系统这样的进阶内容。
数据库类别
![](https://i-blog.csdnimg.cn/blog_migrate/4cb6e4705738806788b4548d91d27024.png)
由分析结果可知,数据库类别下,数据库与SQL主题的热度在年线上呈上升趋势。关于数据库配置的热度从2013年起下降趋势明显。结果表明,在数据库方面,用户更加关心SQL语言的使用,而不是数据库本身的配置、连接问题。同时,也因为主流数据库版本更新速度较慢,几年前的问题很可能足够解决开发者们当前遇到的大部分数据库配置问题,所以数据库配置主题的热度总体上呈下降趋势。
操作系统类别
![](https://i-blog.csdnimg.cn/blog_migrate/deca8af013c2562c2613f466fd6bea1f.png)
由分析结果可知,操作系统类别下,操作系统与软件安装主题的热度在年线上呈下降趋势。操作系统调度主题的热度在2015年~2017年稍有提升。
其他类别
![](https://i-blog.csdnimg.cn/blog_migrate/159032861e395f031020f1ff6edb5125.png)
由分析结果可以看出,Spring类别的热度在近几年快速上升,从2012年~2018年,Spring 的热度上升超过1倍。项目开发者、技术学习者都可以考虑多在Spring相关技术上投入更多时间来学习。
通过这一研究问题,分析了不同类别下每一主题的热度变化趋势。总体上说,前端开发类别下主题的热度逐年下降,通用技术类别下主题的热度基本维持不变,后端开发类别下主题的热度变化不同,传统的项目部署、服务器配置热度逐年下降,而系统设计、分布式系统这样更新、更复杂的主题热度在逐年上升。
研究问题3.这些讨论主题的回答情况如何?
通过以下两个维度来分析主题的回答情况:(1)统计了主题下没有回答的问题所占的比例(零回答问题比例NP)。(2)在统计零回答问题比例的基础上,统计了主题下问题的平均浏览量。
根据上文的分析方法,得出每个问题的平均浏览数以及无回答的问题比例。将数据项按零回答问题比例加以排序的结果见表4。
![](https://i-blog.csdnimg.cn/blog_migrate/9d59ac5ab273ba18cc9d7b854ed51ab7.png)
由分析结果可知:数据展示(在表4中标粗展示)相关的问题拥有平均浏览数为974.74次,大于所有主题问题的平均浏览数 891.25 次,说明数据展示主题相对较热。同时,这类问题的没有回答的问题比例最大,有42.6%的问题没有回答。在数据展示话题相对较热的条件下,无回答的问题比例最大,可以认为这个主题的问题较难回答。
根据主题无回答的问题比例,本文发现数据展示、分布式系统、移动端开发、页面与界面和文件操作这5个主题有超过30%的问题没有得到回答。
对于数据类型主题,该主题的平均浏览量较低,但是零回答问题比例最低。该主题在用户关注不大的情况下,未问答的问题比例最少,说明这一主题的问题容易回答。
从类别角度上看,前端开发类别下主题都相对较难。
在这一研究问题中,本文通过对于每一个主题的回答情况进行分析和对比。数据展示主题的平均浏览数高,但是零回答问题比例最高;数据类型主题的平均浏览数较低,但是零回答问题比例最低。
研究问题4:一些关键技术的趋势分析
对于全部20个主题,根据主题词,挑选其中技术学习、服务器配置、移动端开发、数据库与SQL、操作系统与软件安装和前端编程主题,对它们进行了关键技术分析,具体每一个主题的分析结果如图9所示。
![](https://i-blog.csdnimg.cn/blog_migrate/587f65b2987094a29007f2fcaacb9c9e.png)
根据以上分析结果,可以得出如下结论:
(1)在技术学习主题中,Java的讨论热度占比仍高于Python。说明对于初学者来说,讨论Java 语言的热度要大于讨论Python的热度。这与编程语言热度排行榜是相符的,根据Tiobe 的编程语言排行榜,Java 语言的热度高于Python 语言的热度(TIOBE,https:/www.tiobe.com/tiobe-index).另外,越来越多的学校选择Java 作为教学语言,这可能也造成Java讨论热度更高。
(2)在服务器配置主题中,关于nginx服务器的讨论逐年上升而关于 apache 服务器的讨论逐年下降,尽管apache在全球网站中的使用比例超过nginx服务器的使用比例.但是根据 builtwith 上的统计数据,使用nginx的中国网站数量约是使用apache 的中国网站数量的1.25倍(BUILDWITH,https:/trend.builtwith.com/Web-Serverlnginx)。结合关键技术趋势分析结果可见,在中国开发者中,nginx服务器热度大于 apache服务器热度。
(3)在移动端开发的问题中,安卓开发的讨论热度遥遥领先于ios 开发的讨论热度,这与安卓手机的市场占有比例远远大于ios系统手机,同时安卓开发岗位多于ios开发岗位这两个事实相符。
(4)对于数据库与SQL主题,mysql 的热度明显高于oracle数据库的讨论热度.这与相关工作中对StackOverflow社区关键技术趋势对比的结论是一致的"。
(5)在操作系统与软件安装方面,虽然Linux 用户少于Windows用户,但在软件问答社区,关于Linux 的问题讨论热度仍多于关于Windows问题的讨论热度。
(6)最后,对于前端编程主题,用户讨论更多的是JavaScript而非HTML。
本文通过对开源中国问答社区的主题进行分析,从而对中国的软件开发行业发展现状可以有更深入的了解。本节总结本文研究得出的重要结果。下面是总结的4个重要结论:
前端开发进入缓慢发展时期
后端开发重点的转移
通用技术值得重视
最具讨论热度的开发工具:Spring 框架
四、文章好在哪里
研究的问题非常充分且关键,都有很好的研究意义,自己做的时候也要想清楚研究的目的。
获取了全部的有效数据,能保证在数据选择上不存在选择偏见。预处理阶段用了成熟的中文分词工具:jieba。可以尝试运用此软件进行预处理。
利用了LDA算法来进行主题分析,结果非常有效。
研究方法的思路可以学习,逻辑紧密。
每个研究问题都有对应的分析方法,能非常有效地的得出结论,而且都从整体和类别两个角度进行分析,很全面,如果做得到可以尝试。
————————————————
版权声明:本文为CSDN博主「szx6984」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/szx6984/article/details/128523268