はじめに
ChatGPT先生とペアプログラミングをしてみました!
ChatGPT先生にコーディングを担当してもらい、私は指示とコードの実行を担当しました。
この記事はその時の備忘録になります。
開発環境
Python3.10
miniconda
今回のゴール
ChatGPT先生に「やりたいこと」を伝えて、エラー無く動作するコードを生成してもらうを目標にしました。
各種パッケージの妥当性やパラメータ等の最適化はせずに、最後まで一通り動くコードを作ることをゴールとしています。
やりたいこと
独自のマッチングツールを作ることを夢見ながら、
データマッチングのアルゴリズムで使うであろう「日本語の形態素解析」そして「単語のクラスタリング」を実装してみることにしました。
今回用いるサンプルデータは、とある複数人の「趣味」に関する日本語の文字列情報で、「趣味」情報を単語に分解した上でクラスタリングしてみたいと思います。
指示者として、やりたいことをできるだけ詳細に言語化できるように、必要なツールや今回実装する処理の流れについては事前にGoogle先生を使って少し勉強しました。
参考
-
形態素解析
与えられた文を意味を持つ最小単位に文字を分割し、品詞などの情報を付与する処理です。 -
クラスタリング
ある集団に対して、規則性や共通項を見つけて分類・グルーピングする手法です。 -
以下の記事でもっとわかりやすく詳しく書かれています!
ペアプロ開始!
まずは、ChatGPT先生に今回のペアプロの役割を伝えました。
ChatGPT先生からとっても心強い回答が返ってきたので、
今回のテーマの形態素解析で利用するPythonのパッケージについて相談してみました。
すると...ChatGPT先生は3つも候補を出してくれました!!
ChatGPT先生に提案してもらったパッケージがcondaでインストール可能か、現在の自分の環境でconda searchしたところ...
パッケージ名 | インストール可否 |
---|---|
MeCab | × |
SudachiPy | × |
Janome | ○ |
え、、、Janomeしかcondaでインストールできない。。。
ChatGPT先生の嘘に騙されるところでした...orz
気を取り直して、今回は「Janome」を利用することにしました!
ここからコーディングです!
ChatGPT先生に実装してもらうために、やりたいことを伝えてみました。
まずは、形態素解析と単語のベクトル化までの実装をお願いしてみました。
すると、ほんの数秒でChatGPT先生から必要なパッケージと、サンプルコードが返ってきました。
(ChatGPT先生のコーディングスピードが早い!ステキ!!!!)
ChatGPT先生にコードを実行するために必要なパッケージをインストールし、
ChatGPT先生に作ってもらったコードを実行してみると...
とりあえず、ChatGPT先生にエラー報告し、解決できるか聞いてみました。
言われた通り、コードを修正して実行してみると...
エラーなく、想定通りの結果が出力されました!!!
今回の「やりたいこと」の半分は達成しました!
ラストスパートです!!!
最後に、ベクトル化したデータをクラスタリングし、散布図で描画するところまでChatGPT先生に実装してもらいます。
さっき作ってもらったコードの続きで実装するように伝えてみました。
作ってもらったコードをコピペして実行したところ...
またまたエラーが出ました。。。。orz
(エラー内容は省略しますが、トライアンドエラーの繰り返しでまさにペアプロやってる感、感じました...!!)
エラー内容をChatGPT先生に報告し、数秒で返ってきた修正コードを実行すると...
クラスタリング結果を散布図で表示することが出来ました。目標達成です!
ちなみに...追加要望も伝えると、文句を言わずに数秒でコードを修正してくれました。
最後にChatGPT先生に感謝を伝えてペアプロ終了です。
ChatGPT先生は最後まで丁寧で心強い言葉をかけてくれました!
感想
初めてのChatGPT先生とのペアプロでしたが、「やりたいこと」をChatGPT先生にコーディングしてもらうことが出来ました!
ChatGPT先生は堂々と嘘をつく(知識がないと先生の嘘が見破れないほど自然な回答をくれる)ので、知識をつけて嘘を見破れるようになるか、確認&検証をすることが大事だと改めて感じました。
「やりたいこと」が言語化できればほんの数秒でコード実装できるので、今後も積極的にChatGPT先生とペアプロしようと思います!