5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ChatGPT Plus Code Interpreter でスクレイピングと集計とグラフ化する(Qiita のへーしゃランキングを作成する)

Last updated at Posted at 2023-07-12

今回やりたかったこと

ChatGPT Plus Code Interpreter に慣れたい

※最終的なプロンプトの入力と出力の全文は本ページ下部に貼り付けてます。

作ったもの概要

Qiita のへーしゃ(ACCESS) organizations の Contributions ランキングを作成します。

具体的には以下の部分です。
https://qiita.com/organizations/access/members

Hiromi Sawada
@shiromi
184 Contributions
3 記事

image.png

プロンプトを2つ使用しています。

  • プロンプト1
    • 使用物: WebPilot プラグイン(URL を渡しその URL の情報を使うことが出来るようになるプラグイン)
    • やってること: Qiita URL 食わせて csv テキスト出力
      • 入力: Qiita URL(ACCESS Organization のメンバページ)
      • 出力: csv データ(テキスト)
    • シェア URL : https://chat.openai.com/share/c7dcb9ad-fa09-409f-9ca6-6cdef9010da9 // このシェア機能も地味に便利ですね!
  • プロンプト2

感想(得られた知見)

  • 便利、簡単、楽すぎる
  • もう一歩かゆいところに手届いてほしいと思った部分(近い将来対応してくれそうな気はする。。)
    • 現状これをやりたいときはプロンプトは2つに分ける必要ありなところ = Code Interpreter とプラグイン同時に使いたい
    • (Code Interpreter 無しでも)csv ファイルも吐き出してくれればいいのに
    • シェア機能ではグラフは表示してくれない。「Image output is not supported in a shared chat」と表示される
    • グラフは現状日本語は表示できないことがわかったw(渡邊裕貴さんのところが豆腐)

環境

  • ChatGPT(GPT-4)
  • Mac macOS 12.5.1

作成物スクリーンショット

プロンプト1の出力: csv データ

image.png

プロンプト2の出力: グラフ

注:Contributions Ranking の1位の「□□ □□」が本来「渡邊 裕貴」と表示したいところ

image.png

対応時間

1時間。
#数年前しこしこ GAS でスクレイピングと集計した数時間?数日?は何だったのか。。w

プロンプト

プロンプト1:開始

「GPT-4」 > 「Plugins」 > 「WebPilot」を選択して開始。

image.png

プロンプト1:入力

以下の URL から、アカウント名、  Contributions 数、記事数、のcsv データをテキストで頂戴。
もしファイル化できるならファイルで。

■URL
https://qiita.com/organizations/access/members
https://qiita.com/organizations/access/members?page=2
https://qiita.com/organizations/access/members?page=3
https://qiita.com/organizations/access/members?page=4

■例
Hiromi Sawada
@shiromi
184 Contributions
3 記事

プロンプト1:出力

以下に、各ページから取得したデータをCSV形式でまとめました。ただし、一部のユーザーは記事数やContributions数が表示されていないため、その部分は空白としています。
Name,Account,Contributions,Posts
Hiromi Sawada,@shiromi,184,3
@bols_blue,@bols_blue,482,10
@aMasashiOgawa,@aMasashiOgawa,0,0
Kasumi Suzuki,@keigo1450,210,16
Nobuyuki Nakamura,@aNobuyukiNakamura,0,0
Naohiko Watanabe,@naohikowatanabe,1549,39
Seiji Urushihara,@aSeijiUrushihara,81,2
渡邊 裕貴,@magicant,11774,45
@ynakase,@ynakase,162,3
@aMasatoYui,@aMasatoYui,164,7
Kenta Koyama,@aKentaKoyama,583,8
Takayuki Morita,@aTakayukiMorita,26,2
Takayuki Toyoda,@TakayukiToyoda,7,1
Shinji Hoshino,@aShinjiHoshino,0,0
Takuya Kaneko,@aTakuyaKaneko,0,0
@asukamirai,@asukamirai,318,9
@akegashi,@akegashi,97,7
Ryo Kuroda,@aRyoKuroda,203,16
kyoichiro iizuka,@aKyoichiroIizuka,58,3
Daisuke Sakyo,@aDaisukeSakyo,58,2
Sumio Shingu,@ssingu,40,3
@aMasashiUmeda,@aMasashiUmeda,126,5
Katsuhiro Mihara,@aKatsuhiroMihara,264,11
Kentaro Tokutomi,@kenrota,57,6
@g0117736,@g0117736,143,5
Takaaki Seki,@SekiT,433,13
金井 祐輔,@YusukeKanai,26,2
Kaname Takano,@Momijinn,43,5
@hnishi,@hnishi,2687,68
@aTomoyaKubo,@aTomoyaKubo,76,3
@komitake,@komitake,354,27
@Giimo,@Giimo,0,0
@macotok,@macotok,1487,93
鷹松 直樹,@Naoki-Takamatsu,19,2
Kensuke Takahara,@KensukeTakahara,74,7
Soichi Ikebe,@aqua_ix,432,22
Nobuhisa Masaki,@aNobuhisaMasaki,5,1
sysadm ACCESS HQ,@access-hq-sysadm,0,0
松井 耕介,@matsui_685,136,2
@takao-arima,@takao-arima,0,0
@krmtmint,@krmtmint,0,0
Koki Ito,@kiito1000,58,6
@ttokit,@ttokit,11,1
@Yam3939,@Yam3939,58,7
@kokd,@kokd,0,0
kokada,@kokada420,22,6
@nube266,@nube266,11,3
Yuki Yoshida,@jyoppomu,60,4
@irisTa56,@irisTa56,105,11
高野 てん,@ten_takano,96,10
@aym,@aym,27,3
@yocidama,@yocidama,37,3
Keisuke IRII,@illypong,126,10
Akio Fujita,@aAkioFujita,0,0
XIUYU LIANG,@lxymopan,1,1
Ayaka Yamamoto,@aAyakaYamamoto,13,3
Yongjune Park,@yjpark,0,0
大槻 隼也,@Shunya-Otsuki,5,2
@rairaii,@rairaii,68,23
@B-SKY-Lab,@B-SKY-Lab,31,11
@fjtsh,@fjtsh,0,0

プロンプト2:開始

「GPT-4」 > 「Code Interpreter」を選択して開始。

image.png

プロンプト2:入力

以下の csv データから「Contributions 数」ランキング、「Posts」ランキングの2つ作って。グラフで。

■csv 
Name,Account,Contributions,Posts
Hiromi Sawada,@shiromi,184,3
@bols_blue,@bols_blue,482,10
@aMasashiOgawa,@aMasashiOgawa,0,0
Kasumi Suzuki,@keigo1450,210,16
Nobuyuki Nakamura,@aNobuyukiNakamura,0,0
Naohiko Watanabe,@naohikowatanabe,1549,39
Seiji Urushihara,@aSeijiUrushihara,81,2
渡邊 裕貴,@magicant,11774,45
@ynakase,@ynakase,162,3
@aMasatoYui,@aMasatoYui,164,7
Kenta Koyama,@aKentaKoyama,583,8
Takayuki Morita,@aTakayukiMorita,26,2
Takayuki Toyoda,@TakayukiToyoda,7,1
Shinji Hoshino,@aShinjiHoshino,0,0
Takuya Kaneko,@aTakuyaKaneko,0,0
@asukamirai,@asukamirai,318,9
@akegashi,@akegashi,97,7
Ryo Kuroda,@aRyoKuroda,203,16
kyoichiro iizuka,@aKyoichiroIizuka,58,3
Daisuke Sakyo,@aDaisukeSakyo,58,2
Sumio Shingu,@ssingu,40,3
@aMasashiUmeda,@aMasashiUmeda,126,5
Katsuhiro Mihara,@aKatsuhiroMihara,264,11
Kentaro Tokutomi,@kenrota,57,6
@g0117736,@g0117736,143,5
Takaaki Seki,@SekiT,433,13
金井 祐輔,@YusukeKanai,26,2
Kaname Takano,@Momijinn,43,5
@hnishi,@hnishi,2687,68
@aTomoyaKubo,@aTomoyaKubo,76,3
@komitake,@komitake,354,27
@Giimo,@Giimo,0,0
@macotok,@macotok,1487,93
鷹松 直樹,@Naoki-Takamatsu,19,2
Kensuke Takahara,@KensukeTakahara,74,7
Soichi Ikebe,@aqua_ix,432,22
Nobuhisa Masaki,@aNobuhisaMasaki,5,1
sysadm ACCESS HQ,@access-hq-sysadm,0,0
松井 耕介,@matsui_685,136,2
@takao-arima,@takao-arima,0,0
@krmtmint,@krmtmint,0,0
Koki Ito,@kiito1000,58,6
@ttokit,@ttokit,11,1
@Yam3939,@Yam3939,58,7
@kokd,@kokd,0,0
kokada,@kokada420,22,6
@nube266,@nube266,11,3
Yuki Yoshida,@jyoppomu,60,4
@irisTa56,@irisTa56,105,11
高野 てん,@ten_takano,96,10
@aym,@aym,27,3
@yocidama,@yocidama,37,3
Keisuke IRII,@illypong,126,10
Akio Fujita,@aAkioFujita,0,0
XIUYU LIANG,@lxymopan,1,1
Ayaka Yamamoto,@aAyakaYamamoto,13,3
Yongjune Park,@yjpark,0,0
大槻 隼也,@Shunya-Otsuki,5,2
@rairaii,@rairaii,68,23
@B-SKY-Lab,@B-SKY-Lab,31,11
@fjtsh,@fjtsh,0,0

プロンプト2:出力

まずは、このテキストデータをpandasのDataFrameに変換しましょう。その後、「Contributions」と「Posts」でソートされたランキングを作成します。最後に、それぞれのランキングを棒グラフで表示します。

Finished working
Show work

以下の表は、「Contributions」数と「Posts」数でソートされた上位5人のランキングです。

Contributions ランキング(上位5人)
Name	Account	Contributions	Posts
渡邊 裕貴	@magicant	11774	45
@hnishi	@hnishi	2687	68
Naohiko Watanabe	@naohikowatanabe	1549	39
@macotok	@macotok	1487	93
Kenta Koyama	@aKentaKoyama	583	8

Posts ランキング(上位5人)
Name	Account	Contributions	Posts
@macotok	@macotok	1487	93
@hnishi	@hnishi	2687	68
渡邊 裕貴	@magicant	11774	45
Naohiko Watanabe	@naohikowatanabe	1549	39
@komitake	@komitake	354	27
次に、これらのランキングをグラフで表示しましょう。ランキングの上位10人について描画します。

以下に、上位10人による「Contributions」数と「Posts」数のランキングを棒グラフで示します。

「Contributions」数ランキング:

「Posts」数ランキング:

これらのグラフは、個々のユーザーがどれだけの「Contributions」を行い、「Posts」を作成したかを比較するのに役立ちます。渡邊 裕貴さん(@magicant)は「Contributions」で圧倒的なリードを保っていますが、「Posts」では@macotokさんが最も多く投稿しています。

image.png

image.png

その後

一日経ったらプロンプトからグラフ消えちゃってました。。。

当初は、

以下に、上位10人による「Contributions」数と「Posts」数のランキングを棒グラフで示します。
「Contributions」数ランキング:

の下にグラフがありましたが、一日後はグラフは消え、以下のアラートダイアログが表示されるようになりました。

This code interpreter (beta) chat has timed out. You may continue the conversation, but previous files, links, and code blocks below may not work as expected.

// 簡易翻訳
このコード・インタープリタ(ベータ)チャットはタイムアウトしました。会話を続けることはできますが、以下のファイル、リンク、コードブロックは期待通りに動作しないかもしれません。

image.png

image.png

しかし、もう一度作ってとお願いすると作成してくれました。
どうやら内部的には最初からやり直している様子。

image.png

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?