Python
Slack
分析

Slackのログ(JSON形式)をCSVに変換させた


Slackのログ(JSON形式)をCSVに変換した


やりたいこと


  • Slackの活動数やユーザー間のつながりを分析したい


    • 発言数、リアクション数、リアクション・被リアクション関係、メンション関係など



  • データはJSONの階層形式なので、分析しやすいようにCSVに変換する


DLできるデータ


  • 詳しくは Slack からエクスポートしたデータの読み方 参照

  • Slackのログはパブリックチャンネルであれば全期間出せる


    • 設定と権限>データのインポート/エクスポート でいける



  • ログ


    • channnel.json:チャンネル一覧

    • users.json:ユーザー一覧

    • チャンネル名フォルダ下にログが存在する日付ごとのファイルがある


      • 2018-01-01.json

      • 2018-01-02.json






やりたいことをもとに見たいデータの形を考える


  • 今回は汎用的に分析できるように、RDBライクなデータにする


    • チャンネル一覧

    • ユーザー一覧

    • メッセージ一覧

    • リアクション一覧:リアクションされたユーザー、リアクションしたユーザー、絵文字

    • メンション一覧:メンションしたユーザー、メンション先ユーザー



  • リアクション、メンションはメッセージと1:N関係


出力するとこんな感じ


メッセージ

channel_id
talk_id
talk_user
text

C5XXXXXXX
XX1
U9XXXXXXX

<@U8YYYYYYY>こんにちは

C5XXXXXXX
XX2
U8YYYYYYY
帰りたい

C5XXXXXXX
XX3
U9XXXXXXX
しごおわ


リアクション

channel_id
talk_id
talk_user
reaction_user
emoji

C5XXXXXXX
XX1
U9XXXXXXX
U8YYYYYYY
ok_woman

C5XXXXXXX
XX1
U9XXXXXXX
U7ZZZZZZZ
iine

C5XXXXXXX
XX2
U8YYYYYYY
U9XXXXXXX
wakaru

C5XXXXXXX
XX2
U9XXXXXXX
U7ZZZZZZZ
otukare


メンション

channel_id
talk_id
talk_user
mention_user

C5XXXXXXX
XX1
U9XXXXXXX
U8YYYYYYY

こうしておくことで人気絵文字とかリアクション・被リアクション関係、メンション・被メンション関係などを分析しやすくなる!


ソースコード

Pythonで作ったぞい

https://github.com/yakipudding/slack-analytics