2018年Qiita流行語大賞

## はじめに
こんにちは。
前回作成したQiita記事データセットを用いて、2018年Qiitaで最も流行ったものは何かを調べてみました。

[Qiitaの投稿記事からデータセット作った - Qiita](https://qiita.com/dcm_chida/items/687654685dc434bdc9d4)

## やったこと
- 記事のタイトルを抽出し、mecab（[neologd](https://github.com/neologd/mecab-ipadic-neologd)）を利用して分解
- 投稿年ごとに出現頻度、前年度比増加率が高い固有名詞をランキング
- ベスト３を流行語として勝手に選出


## 選定方法・ルール
- ”流行語” = 前年からの出現頻度の増加率が最も高い単語
- 固有名詞であること
    - ◯ Python、Vue.js...
    - × ファイル、インストール...
- 過去に大賞🥇に選出されたものは殿堂入りとして除外
- 大文字、小文字の表記ブレは同一とみなす、それ以外（スペルミス、辞書にないもの）は無視
    - ”windows”と”Windows”は一緒
    - "windows10"と"Win10"は別もの

## 2018年Qiita流行語大賞

早速ですが結果発表です👏

---
### 第３位🥉 「Django」
第３位は[Django](https://docs.djangoproject.com/ja/2.1/)でした。ここ二、三年は機械学習関連でPythonユーザが増加していますが、その影響がWebフレームワークの世界にも出ているようです。

[Stack Overflow Trends](https://insights.stackoverflow.com/trends?tags=kubernetes%2Cdocker)で主要なWebフレームワークを適当に調べてみました。フロントエンドはAngular、Reactが多く、バックエンドはDjango、Laravelが多いようです。

![web-dev-trend.png](https://qiita-image-store.s3.amazonaws.com/0/319677/0b0e9179-6a97-896a-ef1c-41ae4f415af8.png)


QiitaでDjangoが急伸してきたのは確かですが、絶対数で言えば依然としてRailsが最大勢力です。やはり日本語のドキュメントが充実していると強いようですね。[^d]

[^d]: Qiitaで人気のVue.jsも日本語のドキュメントが充実している

[どれ使うべき？3大WebフレームワークRails・Django・Laravelを徹底比較してみた - paiza開発日誌](https://paiza.hatenablog.com/entry/2018/05/07/paizacloud_web_application_frameworks)


---

### 第２位🥈 「AWS」
第２位は**AWS**。個人的にはAWSはブッチギリで多いというか、過去に大賞獲ってるだろ…と思っていましたが、実際にはそこそこでした。

ただし、タイトルには出ていませんが、

「DyanmoDBを使って〇〇する」
「サーバレスで△△するベストプラクティス」
「CloudfrontとS3で××してみた」

のようなAWS関連の記事は大量にあります。「S3」や「EC2」などわざわざAWSを付けなくても十分通じるからね…
AWSはサービスが多様化が進んでいるのが裏目に出て「AWS」という単語そのものは使われなくなってしまったようです。

ついでに「AWS」と抱き合わせでよく使われる単語の出現回数も調べてみました。

<img width="1143" alt="aws-2nd.png" src="https://qiita-image-store.s3.amazonaws.com/0/319677/18bdfe39-db8c-82f2-e635-d10df2a97fec.png">

![](./chida_img/aws-2nd.png)

確かにAWS CLIはAWSを取っちゃうとダメですね。

---
### 第１位🥇 「C++」
年間大賞は **C++** でした[^chu]！わーわー🎉🎉🎉







え… **C++！！！？？？？**

![cpp3.png](https://qiita-image-store.s3.amazonaws.com/0/319677/d14f9b30-86a1-9f9a-c396-a1cf0c9ed6b1.png)



「JavaScriptとPythonのユーザが多いこのQiitaでC++!?」と思ったあなた…わかります。

「C++？みんなガチ過ぎてコワい」

「今どきRustでしょ」

「C++こそ至高」

「今さらC++って…なんかもう流行語って感じしないんだけど。」

いろんな意見があると思います。とは言え、流行ったかどうかは別にして、2018年タイトルに「C++」を含む投稿が増加しているのは紛れも無い事実です。

何となく直感ベースですが、

- C++17の登場
- IoT
- 画像認識(YOLO/OpenCV)

などなど、それなりに増加する要因はありそうです。2018はC++リバイバルの年だったと言ってもいいでしょう。


というわけで、「Qiitaの記事タイトルで今年一番流行った単語」はC++でした。

[^chu]: 単純な数だけみるとPythonが一位ですが、再選になってしまうため除外しています。

---

本家の流行語大賞っぽく受賞者も勝手に選んでみました。

| 順位|受賞語|前年度比増加数|総いいね数|TOP記事|TOP記事いいね数|受賞者|
|---|---|---|---:|---|---|---|
|🥇|C++|+ 783件|2,659| [C++完全理解ガイド Rev1.4.00 - Qiita](https://qiita.com/_EnumHack/items/b5672ac9be86584a6629)|597|[@_EnumHack](https://qiita.com/_EnumHack)|
|🥈|AWS|+ 356件|13,962 |[GitHub に AWS キーペアを上げると抜かれるってほんと？？？試してみよー！ - Qiita](https://qiita.com/saitotak/items/813ac6c2057ac64d5fef)|1872|[@saitotak](https://qiita.com/saitotak)|
|🥉|Django|+ 244件|3,564|[[Python] Djangoチュートリアル - 汎用業務Webアプリを最速で作る - Qiita](https://qiita.com/okoppe8/items/54eb105c9c94c0960f14)|370|[@okoppe8](https://qiita.com/okoppe8)|

※ 総いいね数：流行語が含まれる記事一つ一つのいいね数の合計値

## 参考データ

### 出現頻度ランキング



|  |2018|2017|2016|2015|2014|2013|2012|2011|
|---|---|---|---|---|---|---|---|---|
|1|Python|Python|Python|Rails|Ruby|Ruby|Ruby|Backbone|
|2|js|Rails|API|Ruby|Swift|PHP|Rails|Ruby|
|3|Docker|Docker|Docker|Swift|Rails|Git|Git|Rails|
|4|Rails|API|PHP|PHP|Mac|Rails|PHP|Qiita|
|5|AWS|Mac|Rails|Mac|PHP|Mac|Mac|Git|
|6|PHP|js|Mac|js|Android|Android|JavaScript|JavaScript|
|7|API|PHP|Ruby|Docker|js|JavaScript|js|http://|
|8|Mac|AWS|Swift|Android|git|CentOS|Vim|PHP|
|9|C++|Windows|AWS|Python|CentOS|MySQL|Emacs|Python|
|10|Ruby|Android|Windows|Unity|iOS|Python|API|js|

「文字列」や「アプリ」などもランクインしていましたが、固有名詞と言い難いため除外しています。



### 前年比投稿増加数ランキング


|  |2018|2017|2016|2015|2014|2013|2012|2011|
|---|---|---|---|---|---|---|---|---|
|1|Python|Python|**Python**|**Unity**|**Swift**|Ruby|**Ruby**|-|
|2|**C++**|**Vue**|API|Docker|Ruby|**PHP**|Rails|-|
|3|Vue|Visual Studio|Docker|Python|Mac|Git|Git|-|
|4|js|js|AWS|C++|Rails|Mac|PHP|-|
|5|AWS|WPF|TensorFlow|AWS|js|CentOS|Mac|-|
|6|Django|Kotlin|Ubuntu|API|Android|Android|Vim|-|
|7|Flutter|Go|Windows|PHP|Docker|Rails|JavaScript|-|
|8|WEB|Laravel|CSS|js|CentOS|Python|Emacs|-|
|9|Kubernetes|Azure|Bot|Linux|API|MySQL|js|-|
|10|Google|Mastodon|Mac|Rails|iOS|JavaScript|MySQL|-|

再選なしでその年最も投稿数が増えたものを太字にしています。また、本来なら2018の第２位は　「js」ですが、「Vue.js」とセットで使われることが多いため除外しました。

Unity(2015)とかSwift(2014)とかそれなりに流行語っぽいものが選ばれていますね。

## メモ

### Qiitaの夜明け
2011年の一位はBackbone.jsでした。そもそもの記事数が少ないので何とも言えませんが…。

ちなみにQiitaの最古の記事は[RubyでFizzBuzz - Qiita](https://qiita.com/yaotti/items/68f6ee99a35a15ed8074)でした。
Increments株式会社の創業者の海野さん（[@yaotti](https://qiita.com/yaotti)）の記事ですね。

### Pythonの躍進
2012年-2013年がディープラーニングのブレイクスルーと言われていますが、QiitaでPythonが覇権を握るのは2016年になってからでした。TensorFlowも増加率では5位にランクインしています。
2013年-2015年のQiitaではSwiftやAndroidなどが上位に来ており、スマホのアプリ開発が盛んだったようです。

主要なキーワードの出現頻度をグラフにしてみます。


<img width="1143" alt="trend_white.png" src="https://qiita-image-store.s3.amazonaws.com/0/319677/f220cd5a-760d-9e3a-9c81-3fe8b7695755.png">



ここ二、三年のPythonの上がり方が尋常じゃないですね…ぶっちぎり

### つまづいたポイント
- タイトルに含まれる空白文字への対応
    - Qiitaのタイトルには```\t```や```\r```が含まれています。```s = ''.join(s.split())```によって解決。[^strip]
[^strip]: 文字列メソッドの```strip()```では両端の空白文字しか除去してくれません。

- 表記ブレ(Railsとrailsなど)の対応
    - 基本的に全て```str.lower()```で小文字にして集計することで解決。GoogleとGCEなど略語にされる場合はどうしようもないので、特に対応しませんでした。


## おわりに
今回の選出方法では「多くの人に使われた」という評価が出来ていないような気がします。
いいね数やコメント数で重み付けをしてもよかったかなぁ…と思いますがそれはまた来年。