技術書典5のサークル情報をワンライナーで集計してみた
2018/10/8(月・祝)に開催される「技術書典5」まであと一週間。
ということで、サークル情報として登録されている内容を集計してみました。
ワンライナーなので手軽に実行できます。
事前準備
まずはサークル情報を取得します。
以下のURLからJSON形式で取得できる様子なのでcurlコマンドで取得、ファイルに保存しておきます。
$ curl "https://techbookfest.org/api/circle?eventID=tbf05&visibility=site&limit=500&onlyAdoption=true" > tbf5.json
さらに、JSONの処理用にjqコマンドを、形態素解析用にmecabコマンドをダウンロードしておきます。
Macの場合、Homebrewを使うと簡単です。
$ brew install jq
$ brew install mecab mecab-ipadic
集計する
まずはジャンルを集計してみます。
jqコマンドでJSONからジャンルを抽出し、sortとuniqで集計できます。
$ cat tbf5.json | jq '.list[].genre' | sort | uniq -c
50 "hardware"
44 "other"
347 "software"
30 "technology"
やはりソフトウェア関係が多いですね。
次に、サークルの申込区分で集計してみます。
こちらも同じくjqコマンドでJSONから申込区分を抽出し、sortとuniqで集計。
$ cat tbf5.json | jq '.list[].eventExhibitCourse.name' | sort | uniq -c
408 "一般"
1 "運営"
53 "パトロン"
9 "スポンサー"
パトロンで登録しているサークルさん、意外と多い印象でしょうか。
さらに、ジャンル詳細に登録されているキーワードで集計してみます。
文章で登録されているので、MeCabを使って形態素解析します。
jqコマンドでサークル詳細を抽出し、MeCabで一般名詞と固有名詞に分類されたキーワードだけをgrepで選択、awkでキーワードだけを抽出します。
登場した数で並べ替えて上位を表示してみると、以下のようになりました。
$ cat tbf5.json | jq '.list[].genreFreeFormat' | mecab | grep -e '名詞,一般' -e '名詞,固有名詞' | awk '{print $1}' | sort | uniq -c | sort -r -n | head -40
143 本
133 技術
42 Web
34 言語
29 エンジニア
29 同人
29 内容
27 ソフトウェア
27 ゲーム
27 電子
25 機械
25 新刊
23 Android
22 ロボット
22 アプリ
21 方法
20 書籍
20 人
20 iOS
19 情報
19 Unity
18 既刊
17 アプリケーション
17 作り方
17 ツール
16 セキュリティ
16 JavaScript
15 ノウハウ
15 コード
15 典
15 C
14 js
13 ハードウェア
13 システム
13 インフラ
13 環境
13 手順
13 Linux
13 CSS
12 ネットワーク
やはりWeb系が多いのが特徴ですね。
キーワードに合致するサークル一覧を抽出
上記で見つけたキーワードでも構いませんし、他に知りたいキーワードがあれば、それを指定して抜き出せばサークル一覧を表示できます。
例えば、「機械学習」で検索するには以下のコマンドを実行します。
$ cat tbf5.json | jq '.list[] | .spaces[0] + "," + .name + ": " + .genreFreeFormat' | grep '機械学習'
「フリーランス」に興味がある方は以下でどうぞ。
$ cat tbf5.json | jq '.list[] | .spaces[0] + "," + .name + ": " + .genreFreeFormat' | grep 'フリーランス'
これを実行すると、私の出展するサークルも表示されます。
以下のような内容で頒布しますので、ぜひサークルチェックしてみてください。
この記事が気に入ったらサポートをしてみませんか?