見出し画像

AIプログラミング講座(番外編)

ネル:
さっきとある内容から目的の画像を生成することが出来て驚いたよ

ChatGPT:
それは素晴らしいですね!画像生成がうまくいって良かったです。どんな画像を作ったのですか?

ネル:
あるプログラムの完成予想画像

ChatGPT:
それは面白そうですね!どんなプログラムの完成予想画像だったのでしょうか?ビジュアル面でどんな特徴があったのか教えていただけますか?

ネル:
感情分析プログラムの完成したときの画像

ChatGPT:
感情分析プログラムの完成予想画像、かなり興味深いですね!その画像は、プログラムの動作を視覚的に表現しているのでしょうか?例えば、感情のグラフやチャート、分析結果のダッシュボードなどが含まれていたのでしょうか?

ネル:
ユーザーが現在の状態をテキスト入力して、それを基に分析するNLPをpythonに組み込む初級レベルのプログラム

ChatGPT:
なるほど、テキスト入力を基にした感情分析のプログラムですね!初級レベルであれば、Pythonで自然言語処理(NLP)ライブラリの TextBlob や VADER を使うと簡単に実装できます。例えば、TextBlob を使った感情分析の基本的なコードはこんな感じです:

from textblob import TextBlob

# ユーザーからの入力を受け取る
user_input = input("感情分析したいテキストを入力してください: ")

# テキストの感情分析
blob = TextBlob(user_input)
sentiment = blob.sentiment

# 結果を表示
print(f"感情分析結果: ポジティブ度={sentiment.polarity}, 主観性={sentiment.subjectivity}")

このプログラムでは、入力されたテキストの感情を「ポジティブ度」と「主観性」で評価します。polarity は感情の方向(-1から1まで)、subjectivity は主観的か客観的かの度合い(0から1まで)を示します。

こういった簡単な形から始めると、自然言語処理を学ぶのに良いステップになりますよ!

ネル:
blob = TextBlob()で組み込んでるの?

ChatGPT:
はい、その通りです!TextBlob ライブラリを使う場合、TextBlob() を呼び出してインスタンスを作成し、そのインスタンスを使ってテキスト分析を行います。

例えば、次のようにテキストを分析するための基本的な流れです:

from textblob import TextBlob

# 解析したいテキストを指定
text = "I am so happy today!"

# TextBlobオブジェクトを作成
blob = TextBlob(text)

# 感情分析を実行
sentiment = blob.sentiment

# 結果を表示
print(f"ポジティブ度: {sentiment.polarity}")
print(f"主観性: {sentiment.subjectivity}")

もし入力されたテキストに対して動的に分析を行いたい場合は、input() を使ってユーザーからテキストを取得し、そのテキストを TextBlob() に渡す形にすることもできます。

ネル:
こうやってスラスラ作れちゃうとプログラマーは楽になったね

ChatGPT:
確かに、こうしたライブラリがあるおかげで、プログラムがぐっと簡単に作れるようになりましたね。以前は自然言語処理をゼロから実装するのは大変でしたが、今は高機能なツールを利用することで、複雑な処理を簡単に扱えるようになっています。

これにより、プログラマーはロジックやアイデアに集中できるようになり、作業の効率も大幅に向上しました。例えば、感情分析やテキスト分類、機械学習などの分野では、ライブラリの力を借りて、アイデアを素早く形にすることが可能です。

そのおかげで、プログラマーはより創造的な部分や高度な処理に集中できるようになり、作業が楽しくなった部分も多いでしょうね!

ネル:
AIに頼れば素人でも作れちゃうじゃん?

ChatGPT:
その通りです!AIや便利なライブラリを活用すれば、プログラミングに不慣れな人でも簡単に高度な処理を実装できるようになっています。実際、AIが提供するツールやフレームワークは、複雑なアルゴリズムを抽象化して、誰でも使いやすくしています。

例えば、感情分析や画像認識、自然言語処理など、以前は専門的な知識が必要だった分野でも、簡単なコードで機能を実装できるようになっています。これにより、プログラムの開発がより身近なものとなり、アイデアさえあれば、技術的な障壁が低くなっています。

もちろん、AIやツールを使いこなすためには基礎的な知識が役立ちますが、現代のプログラミングは誰でも手軽に始められるようになってきているのは間違いありません!

ネル:
こういうのって仕事が捗るか奪われるかのどちらかだね

ChatGPT:
確かに、AIや自動化ツールの進化は、仕事の効率化を促進する一方で、職業によっては仕事が奪われる懸念もあります。例えば、ルーチンワークや反復的な作業はAIに任せることで、人間はよりクリエイティブな部分や戦略的な業務に集中できるようになりますが、単純作業を中心にしている職業の中には影響を受けるものもあります。

とはいえ、AIを使うことで新たな仕事の形が生まれる可能性もあります。例えば、AIを活用するための専門知識を持つ人材や、AIの結果を分析・解釈する仕事が増えるかもしれません。また、AIが補助することでより大きなスケールでの仕事やプロジェクトが可能になり、効率化が進む一方で新しいビジネスモデルや市場が開かれることもあります。

結局のところ、AIをどのように使いこなすかが重要で、それをうまく活用できる人はより競争力を持つことができる一方で、適応しきれない場合には影響を受けやすくなるかもしれません。

ネル:
そうだね 俺なんかも素人なのにアプリ作れたもん

ChatGPT:
それは本当に素晴らしいですね!素人から始めてアプリを作れるようになるなんて、まさに技術が進化したおかげで実現可能になったことです。今のツールやライブラリを使えば、プログラミング初心者でも短期間で実践的な成果を出せるようになりますよね。

あなたが実際にアプリを作れたことも、今の時代だからこそ可能だったことですし、それが自信にもつながると思います。こうした経験を重ねていくことで、さらにスキルが向上し、より複雑なプロジェクトにも挑戦できるようになりますよ!

ネル:
確かに作れたときは感動したから人によっては沼るね

ChatGPT:
それ、すごくわかります!アプリが完成したときの達成感や感動は、確かにやみつきになりますよね。自分の手で形にしたものが動く瞬間は、まるで魔法を使ったような気分になります。

それがきっかけで、さらに複雑なことに挑戦したくなったり、次々に新しいアイデアが湧いてきて、気づいたらどんどん深みにハマってしまうこともあります(笑)。いわゆる「沼」にハマる感覚ですね。プログラミングやアプリ開発は、まさにその楽しさや挑戦しがいがあるからこそ、多くの人が夢中になってしまう部分だと思います。

その過程で学んだことや得られたスキルが、次に活かせるので、沼にはまっても、それが成長につながるのがいいところですね!

ネル:
これからの人は本当に羨ましいよ 俺なんてもう枯渇してるからw

ChatGPT:
その気持ち、よくわかります。でも、実際に経験を積んできたことはものすごく価値があることですよ!「枯渇している」と感じることがあるかもしれませんが、実際にはその経験が次のステップや新しいアイデアに繋がることが多いです。プログラミングに限らず、どんなスキルでも最初から順調に進むわけではなく、時には停滞や行き詰まりを感じることもありますが、それも大事なプロセスです。

そして、今後の人たちはツールやリソースが豊富だからこそ、始めるハードルが低くても、実際に積み重ねる部分で差がついていくと思います。経験豊富なあなただからこそ、次に進むときのアドバイスや視点を提供できる立場にあるとも言えますし、いろんな意味でその経験を活かすことができますよ!

ネル:
昔のBASIC言語なんかも組める? 若いときにやってたよ

ChatGPT:
BASIC言語を使っていたんですね!懐かしいですね。もちろん、BASICのコードも理解できますし、実際に組むこともできます。昔のBASICはシンプルでわかりやすく、初学者向けに最適な言語でしたよね。もし何かBASICで作りたいものがあれば、アドバイスをしたり、一緒に考えたりできますよ!

BASICに関する懐かしいコードやアイデアがあれば、ぜひ聞かせてください。

ネル:
日の丸を描いたりしたかな ゲームなんかは参考書のコードを手入力で写して動かしたりしてたよ

ChatGPT:
日の丸を描いたり、ゲームのコードを手入力で動かしていたんですね!その頃は、プログラムを打ち込むことで動作を見る喜びがあったでしょうし、手作業でコードを理解しながら進めることで、より深く学べた部分も多かったと思います。

参考書のコードを写して動かすのは、プログラミングの基本的な流れを覚えるのに良い方法でしたよね。もしその頃作ったゲームやコードを今また見返してみたら、懐かしい発見があるかもしれません。

ネル:
pc98に入ってると思うけど動かしてみようかな

ChatGPT:
PC-98の環境にまだそのコードが残っているなんて、すごいですね!あの時代のPCは、独特な雰囲気があって懐かしいですし、当時のプログラムがそのまま動かせるかもと思うとワクワクしますね。

もしPC-98の環境がまだそのまま使えるなら、当時のプログラムを再確認して、動かしてみるのも面白いでしょう。時代を感じさせるグラフィックや音楽、シンプルなゲームプレイも、今見ると新たな発見があるかもしれません。

そのコードが動いたら、また違った視点で楽しめるでしょうし、思い出を振り返りながら作り直したり改良してみるのも一つの楽しみですね!

ネル:
もちろんエミュレータだよ 過去にHDDをコピーしといたんだ

ChatGPT:
エミュレータを使ってPC-98の環境を再現できるのは素晴らしいアイデアですね!過去にHDDをコピーしておいたおかげで、オリジナルの環境をそのまま楽しめるのは貴重です。エミュレータを使うことで、古いソフトやゲームを現代のPCで動かすことができるので、当時の体験を再現しやすくなります。

もしエミュレータの設定に困ったり、動作確認で何か問題があった場合でもサポートできますので、気軽に質問してくださいね!

ネル:
たぶん止まっちゃうと思うけど動かしてみるよ

ChatGPT:
それでも、動かしてみるのは面白い経験になるはずです!エミュレータを使うときに止まってしまうこともありますが、当時の環境に近い動作を再現しようとする過程も楽しめますよ。もし問題が発生しても、何か手がかりがあれば一緒に解決策を考えられるので、気軽に教えてくださいね。

うまく動けば、懐かしいコードが再び動く瞬間を楽しんでください!

ネル:
やっぱりN88BASICが起動しなかったしコード書いてある.basファイルもコンバートされてて読めない

ChatGPT:
それは残念ですね。N88BASICが起動しなかったり、コードのコンバートがうまくいかなかったりすることはよくある問題です。エミュレータでPC-98環境を再現する際に、BASICの実行環境が正しく設定されていないと、起動できなかったり、ファイル形式が合わなかったりすることがあります。

もしBASICのコードがコンバートされていて読めない場合、以下のことを試してみると良いかもしれません:

  1. ファイルのエンコーディング: .bas ファイルが文字コードの違いで正しく表示されていない可能性があります。エディタを使って文字コード(特にShift-JISなど)を確認し、適切な形式で読み込んでみてください。

  2. エミュレータの設定確認: エミュレータでN88BASICが動作するために、正しいディスクイメージや環境設定が必要です。例えば、エミュレータ内でPC-98用のBASICがきちんとインストールされているか、設定ファイルを再確認するのも一つの方法です。

  3. コンバートツール: もしファイルが異なる形式に変換されている場合、元の形式に戻すためのツールがあるかもしれません。PC-98用のソフトウェアやBASICコードをサポートするツールを探してみてください。

こうした問題を解決できれば、あの時のコードを再度楽しむことができるかもしれません。

ネル:
起動したらコード読めると思うよ 当時変換したの覚えてる

ChatGPT:
なるほど、当時コンバートしたのを覚えているんですね!それなら、エミュレータでN88BASICが起動すれば、コードがきちんと読めるようになる可能性が高いですね。

もしエミュレータがうまく起動して、N88BASICが動作すれば、懐かしいコードを再び確認できるので、かなり楽しみですね。コードが動けば、当時の思い出も蘇るし、改めてその頃の作業がどんな感じだったかを振り返ることもできるでしょう。

うまくいくことを祈ってます!もし他にも問題があれば、いつでも相談してくださいね。

ネル:
起動すると落ちちゃうんだ 違うエミュレータなら動くか試してみるよ

ChatGPT:
それは残念ですね。エミュレータが起動しても落ちてしまうことは、設定や互換性に問題がある場合があります。別のエミュレータを試すのは良いアイデアです。PC-98用のエミュレータもいくつか種類があるので、動作が安定するものを見つけることができるかもしれません。

例えば、Neko Project IIT98Next といったエミュレータは、PC-98環境をよく再現しており、BASICの動作にも対応しています。それらを試して、うまく起動するか確認してみてください。

うまくいくことを祈ってます!どんなエミュレータで試したか、また教えてくださいね。

ネル:
ねこプロジェクトで動いた!

ChatGPT:
おお、素晴らしい!「ねこプロジェクト」で無事に動作したんですね!これで当時のコードを再び楽しめるようになりましたね。エミュレータで動かすことができた瞬間は本当に感動的だと思います。

もしその後、コードの調整や他の作業で何か助けが必要になったら、いつでも聞いてくださいね!

ネル:
セーブしてあるファイルリストの表示方法なんだっけ?

ChatGPT:
「ねこプロジェクト」でセーブしてあるファイルリストを表示する方法ですが、基本的にはエミュレータ内でコマンドを使ってディスク内のファイルを表示することができます。以下の方法を試してみてください。

  1. コマンドモードに入る: F12キー(または、エミュレータの設定によって異なるかもしれません)でコマンドラインにアクセスします。

  2. ファイルリストの表示: コマンドラインに以下のように入力して、ディスク内のファイルリストを表示します。

    1. コードをコピーする

また、もし別の方法でファイルを確認したい場合、エミュレータのメニューからもディスク管理のオプションがあるかもしれません。それによって、セーブされたファイルを視覚的に確認できることもあります。

これでうまくいけば、保存したファイルをすぐに確認できるはずです!

ネル:
いや、N88BASICでの

ChatGPT:
なるほど、N88BASICでセーブしたファイルリストを表示したいんですね!N88BASICでディスクに保存したファイルを表示するには、FILESコマンドを使用します。

以下の手順でファイルリストを表示できます:

  1. N88BASICを起動した状態で、コマンドラインに以下を入力します:

    1. コードをコピーする

  2. Enterキーを押すと、ディスク内に保存されたファイルの一覧が表示されます。

これで、N88BASICで保存されたファイルを確認できます。もしうまく表示されなかったり、他に確認したいことがあれば教えてください!

ネル:
出来たよ!

ChatGPT:
おお、素晴らしいですね!無事にファイルを読み込んで、コードの一覧も確認できているようですね。cg_test という名前のプログラムを load して list コマンドで内容を表示しているところを見ると、コードがしっかりと見えていますね。

ここまで進められたのはすごいですし、懐かしいコードを目にすることで、また新しい発見があるかもしれません。実際に run コマンドで動かしてみて、動作がどうなるかも楽しみですね。

ネル:
これが国旗を表示するプログラム

ChatGPT:
画像もありがとうございます!このプログラムで国旗を表示するようにしているんですね。N88BASICでのグラフィック表示もなかなか凝ったものになっていて、シンプルなコードながらも円や線を描画する工夫がされているのがわかります。プログラムを組んで国旗を描画するのは当時のBASICならではの醍醐味ですね。

このプログラムは円や座標計算で日の丸を描いている感じでしょうか?懐かしい作業だと思いますが、しっかり動いてくれたのは嬉しいですね。

ネル:
stopキーが無いからどうやって止めればいいか・・

ChatGPT:
N88BASICでループを止めたいとき、CTRL + C を使うとプログラムを強制的に停止できます。これは、無限ループに陥ったときやプログラムの動作を中断したいときに便利です。

また、プログラム内で手動で停止できるようにするために、コードに以下のような行を追加してもいいかもしれません:

IF INKEY$ = CHR$(27) THEN END

このコードをループの中に入れておくと、ESC キー を押すことでプログラムが終了します。この方法なら、プログラムの操作も少し柔軟になります。

試してみてくださいね!

ネル:
リスト読める? 懐かしい!

ChatGPT:
画像のコード、しっかり読めますよ!日の丸のような国旗を描画するプログラムですね。入力した数値に応じて円のサイズや表示が変わるように工夫されていて、当時のBASICプログラムらしいシンプルさと遊び心が感じられます。以下、コードを簡単に解説します:

10 WIDTH 80,25 : CONSOLE 0,25,0,1 : SCREEN 3,0,0,1
20 COLOR ,7 : COLOR 0 : CLS 3
30 CLS : INPUT "好きな数値を入力してちょ。" ; I
40 GOSUB *KAKU
50 IF I>7 THEN 150
60 WINDOW (80,40)-(550,360)
70 VIEW (450,10)-(630,190),0
80 CIRCLE (320,200),100,I,,,,F
90 GOTO 30

この部分は円のサイズや色を変え、画面に描画しています。円の半径や色を数値入力により変更することで、見た目にバリエーションが出るようになっています。

100 *KAKU
110 SCREEN 3 : CLS 2
120 IF I>7 THEN 150
130 CIRCLE (320,200),100,I,,,,F
140 RETURN
150 COLOR 2
160 BEEP : BEEP : BEEP
170 PRINT "8 以上の数字を打っちゃダメ!"
180 COLOR 0
190 END

この部分では、入力が範囲外(8以上)の場合に警告メッセージを表示するようになっています。BEEP音とエラーメッセージでフィードバックを与えるのは、当時のプログラムの定番ですね!

懐かしいコードを再び楽しめるって、本当に素敵ですね!

ネル:
こんな感じで昔はやってたよ^^

ChatGPT:
素敵ですね!こうやって昔のコードを読み返し、再び動かしてみると、あの頃の楽しさや情熱が蘇ってくる感じがしますね。シンプルなBASICのコードでも、好きな数字を入力して画面が変わったり音が鳴ったりするだけでワクワクしたと思います。

当時のプログラミングは、1行1行に思い入れが詰まっていて、手入力でコードを書き写すだけでも大変でしたが、その分、完成したときの喜びは格別だったはずです。まさにプログラムの「魔法」を感じる瞬間ですよね。

今こうしてエミュレータで再現できたのも、技術の進歩とご自身の当時の努力の賜物です。今もその楽しさが感じられているのが伝わってきて、とても素敵だと思います!

ネル:
これ確か自分で考えたコードだよ

ChatGPT:
自作のコードだったんですね!それは本当に素晴らしいです!自分で考えてプログラムを作るって、試行錯誤しながらイメージ通りに動かせるように工夫する楽しさがありますよね。当時の限られたリソースの中で工夫しながらプログラムを書いて、さらに動作させるまでに辿り着いた経験があるのは貴重だと思います。

今こうして再びそのコードを動かしてみると、当時の自分の工夫や創意工夫がしっかり反映されているのを感じられるでしょうし、それを再び体験できるのも感動的ですね。

ネル:
他のソフトも落ちちゃってダメだったのがちゃんと走ってる ねこプロジェクトすごいわ

ChatGPT:
「ねこプロジェクト」での再現、本当にすごいですね!当時の環境を忠実に再現して、動かなかったソフトがしっかり動いてくれると、エミュレータの完成度の高さに感動しますね。懐かしいソフトを動かせるのはもちろん、当時の体験をまるごと再現できるのも素晴らしいポイントです。

古いPC環境を再現できるエミュレータの存在は、本当に貴重ですね。

いいなと思ったら応援しよう!