#きっかけ
このQiitaでは、年間数多くの記事が投稿されていますが、2018年は、どのような話題が一番多かったのでしょうか?
ちょっと興味があったので、Python関連記事1つ1つ付けられている「タグ」に注目し、python + seleniumでスクレイピングによるタグ(キーワード)を集計するプログラムを作ってみました。
※ 正確には、2018/12/24現在で過去10,000件のデータを参照しましたので、正確に2018/1/1からのデータではありません。
#使用したプログラムのコードについて
プログラムのコードについては、スクレイピングプログラムの作り方というテーマで動画化して udemyで無料公開していますので、ぜひ御覧ください。
Google Chromeの検証機能で「CSSセレクタ」を参照し、Seleniumで指定する方法などがわかると思います。
【夢月流】Pythonスクレイピング入門~Webスクレイピングプログラムを素早く作るコツを教えます~
#プログラムの内容
基本的に以下のようにSeleniumで画面遷移を行っています。
- Qiita初期画面(未ログイン状態)
- 上記状態からログインGoogle連携で、メールアドレスとパスワードを入力)
- Python記事一覧画面
この最後のPython記事一覧画面において、最新投稿分から順次過去投稿分に遡って、1つ1つ付けられているタグの種類と、その出現個数を数えています。
記事一覧は各ページ20記事があり、500ページに渡って調査したので、合計10,000個の記事について調べました。
#その結果は・・・
pythonタグを含めて、合計3661個のタグが付けられていました。
そのうち、出現回数が10未満のものが、3312個となっており、かなりバラツキがあります。
##Pythonタグと一緒に付けられたタグで、出現回数の多いのは?
出現回数の多い上位100タグは下記のとおりでした。
(1位のPythonは、Python記事のみ対象にしたので、タグ出現回数は当然10000回です。)
上位は、機械学習、DeepLearningなどAI関係がやはり多いですよね。
No | タグ名 | 出現回数 |
---|---|---|
1 | Python | 10000 |
2 | Python3 | 1390 |
3 | 機械学習 | 813 |
4 | DeepLearning | 575 |
5 | Django | 458 |
6 | pandas | 416 |
7 | TensorFlow | 366 |
8 | Keras | 365 |
9 | numpy | 318 |
10 | matplotlib | 289 |
11 | Jupyter | 267 |
12 | RaspberryPi | 253 |
13 | MachineLearning | 249 |
14 | AWS | 238 |
15 | Anaconda | 219 |
16 | OpenCV | 218 |
17 | Flask | 212 |
18 | 初心者 | 208 |
19 | 自然言語処理 | 189 |
20 | docker | 185 |
21 | データ分析 | 173 |
22 | scikit-learn | 168 |
23 | lambda | 148 |
24 | ディープラーニング | 136 |
25 | スクレイピング | 133 |
26 | Chainer | 123 |
27 | JavaScript | 117 |
28 | pip | 115 |
29 | Kaggle | 114 |
30 | 数学 | 111 |
31 | pyenv | 105 |
32 | Mac | 104 |
33 | Selenium | 103 |
34 | 101 | |
35 | PyTorch | 98 |
36 | 画像処理 | 92 |
37 | AI | 89 |
38 | python2.7 | 84 |
39 | Ruby | 81 |
40 | mecab | 78 |
41 | Ubuntu | 78 |
42 | Windows | 76 |
43 | 強化学習 | 72 |
44 | IoT | 72 |
45 | Slack | 72 |
46 | ProjectEuler | 71 |
47 | R | 70 |
48 | api | 68 |
49 | Heroku | 66 |
50 | Pycharm | 66 |
51 | colaboratory | 65 |
52 | BeautifulSoup | 65 |
53 | 深層学習 | 64 |
54 | 統計学 | 64 |
55 | TwitterAPI | 64 |
56 | Java | 61 |
57 | GoogleColaboratory | 60 |
58 | C++ | 60 |
59 | 最適化 | 59 |
60 | Jupyter-notebook | 58 |
61 | Pipenv | 56 |
62 | CNN | 55 |
63 | GoogleCloudPlatform | 55 |
64 | データサイエンス | 54 |
65 | scipy | 52 |
66 | Azure | 52 |
67 | JSON | 52 |
68 | Excel | 50 |
69 | 数値計算 | 50 |
70 | 環境構築 | 50 |
71 | 競技プログラミング | 49 |
72 | MySQL | 49 |
73 | 人工知能 | 49 |
74 | maya | 47 |
75 | Linux | 47 |
76 | Windows10 | 46 |
77 | Django2.0 | 45 |
78 | VSCode | 44 |
79 | ROS | 44 |
80 | GitHub | 44 |
81 | Tkinter | 43 |
82 | gcp | 43 |
83 | 備忘録 | 42 |
84 | 入門 | 42 |
85 | linebot | 42 |
86 | seaborn | 40 |
87 | NLP | 39 |
88 | Ansible | 39 |
89 | C | 39 |
90 | pygame | 39 |
91 | word2vec | 38 |
92 | HTML | 38 |
93 | アルゴリズム | 38 |
94 | virtualenv | 38 |
95 | C# | 36 |
96 | 画像認識 | 36 |
97 | Scrapy | 36 |
98 | AtCoder | 36 |
99 | bottle | 35 |
100 | Stan | 35 |
#まとめ
「MachineLearning」と「機械学習」は同意、「DeepLearning」と「ディープラーニング」は同意など、とかにするという処理を加えれば、もう少し違った結果になりそうです。
また2019年6月末ぐらいに、タグ出現回数がどう変わるのか、確認してみたいと思います。