观察 Stack Overflow 趋势的新姿势: 看标签的综合浏览量 | 数盟

TensorFlow 真的比 Git 更受关注吗?

根据 Stack Overflow 的趋势统计工具,网站中打上 tensorflow 标签的问题现在比 git 的更受欢迎:

那这个数据是否有什么意义?虽然 tensorflow 获得了更多的关注,但 git 是开发者中最流行的开发工具之一 —— 无论是否在机器学习技术社区内。事实证明,这个趋势工具可以衡量每个标签下面的新问题数量,但这只是反映现象的一半情况。如果我们可以比较每个标签获得的网页浏览量百分比和问题的百分比:

上图:’git’ 在 Stack Overflow 上的浏览量百分比,比较对象是 ‘tensorflow’;下图:Stack Overflow 上每个标签的新问题百分比。可以看到,’git’ 获得的新问题数量在减少,但拥有更高的页面浏览量。

所以发生了什么事?不妨看回图表,即使 tensorflow 标签下的问题每个季度都会创建得更多,但 git 标签下的问题获得的浏览数至少是 tensorflow 标签的 6 倍。

我们可以看看 .net vs firebase、c++ vs r 以及 .net vs typescript 的类似趋势:

这些图表显示,在 ‘.net’ vs ‘firebase’,’c++’ vs ‘r’ 和 ‘.net’ vs ‘typescript’ 中,其中一种技术获得了更多的浏览量,而另一种获得了更多的新问题数量。

因此你可以在这里看到,衡量新问题的数量只能反映一半的现象。如果你是 Stack Overflow 博客的粉丝,你会发现即使他们在很多地方都用到了这个页面浏览量的百分比。

所以结论就是,要观察 Stack Overflow 上相关技术的趋势不能单看一个指标,或许某种技术在某个指标下的分数很高,但这只能反映这种指标下的现象,要做到综合评估,就需要综合看待各项指标。像上面的情况,关于新技术的问题数量肯定是会不断增加的,但不能表明比较老的技术就呈现“疲软”的状态,因为浏览它们的用户依旧有很多,问题少的原因可能是绝大部分的问题都有答案了。相对而言,新技术仍处于“踩坑-填坑”阶段,自然就会产生更多的新问题。

其他有趣的比较

top 5 标签:Java, JavaScript, Python, C#, Android, PHP

Java 和 JavaScript 一直都是更受关注的标签 —— 但 JavaScript 标签每季度都会有更多的新问题。

Python 标签的问题数量正在快速赶上!不过与 JavaScript 相比,它仍然少得多,但 Python 标签的页面浏览量比 Java 和 JavaScript 要多。

就页面浏览量而言,C# 也是排在前面的标签,不过 C# 标签的问题数量未能排在前五。另一方面,PHP 标签的问题数量十分多,不过它的页面浏览量也没能排在前五。

JavaScript 框架:AngularJS vs Angular, React, Vue

如果 angularjs 正在死亡,谁将会替代它的位置?毫无疑问将会是 angular!你可以通过问题数量和浏览量明显看到新标签是如何接替旧标签的。

reactjs 一直处在上升的趋势。

vue.js 比其他替代方案更受大家关注,但仍有很长的路要走。

机器学习

TensorFlow 和 Kera 几乎占了机器学习领域的大多数问题,以及关注度。

PyTorch 和 MxNet 几乎无人问津。Caffe 在 2017 年表现强劲,但最近它的数据表现也逐渐滑落。

即将崛起的语言:Swift, Go, Haskell, Kotlin, Rust

明显可以看到,Swift 的数据表现可谓是甩其他的一条街。

Go 标签的浏览量明显比问题数量要高。

Kotlin 是增长得最快的。

Haskell 和 Rust:两者都保持着稳定的发展趋势

相关代码

获取每季度的页面浏览量(Pageviews)

#standardSQL

WITH historic_views AS (  SELECT *, ‘201703’ q  FROM fh-bigquery.stackoverflow_archive.201703_posts_questions

  UNION ALL

  SELECT *, ‘201706’ q

  FROM fh-bigquery.stackoverflow_archive.201706_posts_questions

  UNION ALL

  SELECT *,  ‘201709’ q

  FROM fh-bigquery.stackoverflow_archive.201709_posts_questions

  UNION ALL

  SELECT *, ‘201712’ q

  FROM fh-bigquery.stackoverflow_archive.201712_posts_questions

  UNION ALL

  SELECT *, ‘201803’ q

  FROM fh-bigquery.stackoverflow_archive.201803_posts_questions

  UNION ALL

  SELECT *, ‘201806’ q

  FROM fh-bigquery.stackoverflow_archive.201806_posts_questions ), top_tags AS (    SELECT value FROM UNNEST((       SELECT APPROX_TOP_COUNT(tags, 5000)top

       FROM fh-bigquery.stackoverflow_archive.201803_posts_questions

       WHERE NOT tags LIKE ‘%|%’))    WHERE count > 10), views_per_tag AS (  SELECT tag, COUNTIF(DATE(creation_date) BETWEEN DATE_SUB(PARSE_DATE(‘%Y%m’,  q), INTERVAL 3 MONTH) AND PARSE_DATE(‘%Y%m’,  q)) questions

    , SUM(view_count) views_cum, PARSE_DATE(‘%Y%m’,  q) q  FROM historic_views, UNNEST(SPLIT(tags, ‘|’)) tag  GROUP BY tag, q

), views_per_q AS (  SELECT *, views_cum – LAG(views_cum, 1) OVER(PARTITION BY tag ORDER BY q) views  FROM views_per_tag

), percents AS (  SELECT *

    , 100*views/SUM(views) OVER(PARTITION BY q) views_percent

    , 100*questions/SUM(questions) OVER(PARTITION BY q) questions_percent  FROM views_per_q  WHERE views IS NOT null

  AND tag IN (SELECT value FROM top_tags)

)SELECT *FROM percents

值得注意的趋势差异

#standardSQL

WITH toptags AS (

  SELECT *

  FROM fh-bigquery.stackoverflow.201806_stacko_tags_views

  WHERE q=’2018-06-01′

  AND tag NOT IN (‘string’, ‘git’, ‘sql’)

  AND views_percent>0.05

)

SELECT a.tag, b.tag btag, a.views_percent – b.views_percent

FROM toptags a

JOIN toptags b

ON a.tag!=b.tag

AND a.views_percent>b.views_percent

AND a.questions_percent< b.questions_percent

ORDER by 3 DESC

参考:

https://towardsdatascience.com/these-are-the-real-stack-overflow-trends-use-the-pageviews-c439903cd1a

声明:文章收集于网络,如有侵权,请联系小编及时处理,谢谢!

注:转载文章均来自于公开网络,仅供学习使用,不会用于任何商业用途,如果侵犯到原作者的权益,请您与我们联系删除或者授权事宜,联系邮箱:contact@dataunion.org。转载数盟网站文章请注明原文章作者,否则产生的任何版权纠纷与数盟无关。
期待你一针见血的评论,Come on!

不用想啦,马上 "登录"  发表自已的想法.