🔍

ChatGPT Data Analysisで社内ニコニコカレンダーシステムの利用状況を解析した

2023/12/25に公開

本記事はFusic Advent Calendar 2023 シリーズ1の25日目の記事です。恐れ多くもアンカーを務めさせていただきます💪

2022年末にChatGPTが登場し、2023年は我々のお仕事においてもChatGPTを活用する場面が着実に増えました。そんな1年を締めくくる記事なので、この記事でもChatGPTに触れたいと思います。

Advanced Data Analysis

ChatGPT Plusを申し込むと利用できる機能の1つに「Advanced Data Analysis」という機能があります。通常のChatGPTと比べて以下のような違いがあります。

  • ファイルのアップロードが可能
  • 自然言語での指示内容を元にPythonコードを生成・実行してくれる

つまり、自分でPythonコードを書かなくても、アップロードしたCSVファイルの内容を解析してグラフ化する、といったことができてしまうのです。

もちろん、解析に使用したPythonプログラムも併せて確認できます。「Pythonやpandasの使い方を学ばないとな...」と思いつつ、具体的なアクションを起こさないまま1〜2年が経過した私にとって大変ありがたい機能です。

社内ニコニコカレンダーシステムNicoleの利用状況を解析する

弊社ではNicoleという社内ニコニコカレンダーシステムを運用しています。社員は日々の気分を良い・普通・悪いの3段階で入力します。

気分に加えて一言メッセージを入力できる点が特徴です。これがあることで、単なるニコニコカレンダーではなく「1日1回だけ呟ける社内限定のX(旧:Twitter)」のような使われ方をしています。

Nicoleは私が開発・運用していて、「どうすれば入力数が増えるのか」「入力される内容は年々どのように変化しているのか」はずっと気になっていました。そこで、Advanced Data Analysisを使うことで、利用状況を解析してみることにしました。

下準備

まずは解析対象のデータを取得します。NicoleはバックエンドがRuby on Railsで作られており、データベースにはPostgreSQLを使用しているので、次のようなコマンドを入力することで指定したテーブルをCSVファイルにExportできます。

$ bin/rails db

# ここからPostgreSQL Client
$ \COPY nikos TO ./nikos.csv DELIMITER ',' CSV HEADER;
$ \COPY users TO ./users.csv DELIMITER ',' CSV HEADER;

Exportしたままのデータだと個人情報や機密情報が含まれていたり、enumの値をChatGPTに説明する必要があったり、タイムゾーンが不明瞭でデータ分析がしづらかったりという問題があったので、別途スクリプトを書いて下処理をしています。

最終的にCSVファイル内の情報はこういった形になりました。

nikos
    id   mood       date  user_id  message_len
 0   1   良い  2019-11-01        1           77
 1   2   良い  2019-11-01       33            9
 2   3   普通  2019-10-31       33            5
 3   4   良い  2019-11-01       13            9
 4   5   普通  2019-11-01       25           17

users
    id   status    joined_on
 0  33    在籍中   2018-01-16
 1 104    在籍中   2022-04-01
 2   7    在籍中   2009-04-01
 3   1    退職済          不明
 4  63    在籍中   2020-05-01

これらのファイルをアップロードして、以下のようなプロンプトを入力すれば準備完了です。

解析1: 利用状況を可視化する

最初にNicoleの利用状況を可視化していきます。

すごい、8割の社員が使ってくれていることがわかりますね🙌

自分の感覚値だと、Nicoleは月曜日が一番盛り上がっている気がします。その理由は土日に何かしら充実した時間を過ごしてそれを社内に共有したい人が多くいるから、と推測していました。そこで、曜日別の入力数をグラフ化してみます。

発生したエラーをある程度自己解決してくれるところもAdvanced Data Analysisのすごいところです。最終的に出力されたグラフはこんな感じでした。

なんと、月曜日が一番盛り上がっているという前提が既に思い込みでした😅

解析2: 社員別の入力状況を可視化する

せっかくなので、社員別の利用状況をもう少し可視化してみます。

31, 33, 57のユーザーが突出して高いですね。ちなみに33は自分です。そもそも、2023年の営業日は何日間あったのかも確認してみます。

というわけでTOP3のユーザーは、営業日にはほぼ必ず気分を入力してくれていることになります。ご利用ありがとうございます🙇‍♀

もう一つの気づきとして、最近入社した社員ほどより多くの気分を入力してくれていることがわかります。

これは入社時のオリエンテーションでNicoleというシステムがあることをお伝えする運用になっていることや、新入社員自身が積極的にコミュニケーションパスを増やしたいと思ってNicoleを利用していることに起因しているものと考えています👍

解析3: 気分の内容を可視化する

最後に、入力された気分の内容を可視化してみます。

細かく指示することで余計なエラーを回避しようとしたのですが、回避できていませんでした。再度指示することで文字化けを解消します。

結果のグラフがこちらです。

Nicoleは「社内の気分のバロメーター」を謳っているので、もう少し顕著な傾向が見えてくるかと期待していたのですが、特筆するほどの傾向は見られませんでした。

まとめ

ChatGPT PlusのAdvanced Data Analysisを活用することで、Pythonのコードを1文字も書くことなく、データの可視化ができました。私は普段IoTクラウドエンジニアとして、センサー等から収集したデータの可視化を行うシステムを開発していますが、数年以内には可視化自体は大した価値ではなくなっているかもしれません。

また、データの加工や解析という作業自体も同様に価値が薄れていくのではないか?と危機感を抱きました。「今どんな課題があり裏付けるためにどんなデータが必要か」「それを出力するためにはどんなプロンプトを入力すべきか」を考えられる人の需要が高まっていくのかもしれません。

いずれにせよ、簡単にデータを可視化できる時代が来たということ自体は喜ばしいことなので、積極的に活用していきたいですね💪

それでは、皆さん良いクリスマスを🎄🎅

GitHubで編集を提案
Fusic 技術ブログ

Discussion