ChatGPT回答の解析

出版日: 2024年1月19日

ChatGPT回答の解析

生成的AIは今日の最もハイプされているトピックです。

多くの人がこう言っているのを聞くでしょう:"GenAIは未来だ"。それを信じるべきでしょうか?それとも 数年前にメタバースがハイプされたのと同じように、それらの考え方は捨てるべきでしょうか?

プログラミングは、ChatGPTが他のプログラマーと同じようにコードを書けるように見えるため、危険な仕事のようです。例えば、ヒューマンの助けを借りてFlappy Birdのプログラムを書いているのが見られます。こちらをご覧ください。

実際のところ、プログラミングに関してはChatGPTはまだ幼い段階にあります。そして、最近ChatGPTに与えたコーディングタスクを使って、それを強調したいと思います:

ChatGPTへのコーディング依頼

別の記事の一環として、ウェブサイトの訪問者のデバイス(デスクトップ、モバイルなど)をどのように判別するかについて、ChatGPTに伝えるよう依頼しました。そして、それに対する以下の応答を提供してもらいました:

// デバイスタイプの検出
function detectDevice() {
    const isMobile = /iPhone|iPad|iPod|Android|Windows Phone/i.test(navigator.userAgent);
    const isTablet = /iPad|Android|Windows Phone/i.test(navigator.userAgent);
    
    if (isMobile) {
        return 'モバイル';
    } else if (isTablet) {
        return 'タブレット';
    } else {
        return 'デスクトップ';
    }
}

一般的なマネージャーはこの応答を見て、「見てください、GenAIがコードを書いています。これによって私たちのプログラマーははるかに効率的になります!やったね!」と思うでしょう。

しかし、あなたが私のウェブサイトを訪れている場合、次のように考える必要があります:"それほど簡単ではありません..." そんなに単純ではありません。

なぜでしょうか?

ChatGPTがコーディングにおいて不十分な理由

問題は、プログラミング言語が構文の面で自然言語よりもはるかに厳格であるということです。

例えば、挨拶する方法は複数あります:

  • こんにちは
  • こんばんは
  • おはよう
  • お元気
  • ご機嫌いかが

しかし、コーディングで特定の目的を達成するためには、限られた方法しかありません。エレガントで効率的なコードを書きたい場合、通常は1つの方法しかありません。例えば、Pythonではこれを「Pythonic」と呼びます。

2つの変数をPythonで足し合わせたいとします。Pythonではこれを2〜3通りしか行うことができません。

1. 即座に行う

a+b

2. その目的のための関数を作成する

def add(a,b):
    return a+b

3. 過剰:クラスを作成する

class Numbers:
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def add(self):
        return self.a + self.b


numbers = Numbers(10, 5)
numbers.add()

Pythonで加算する方法は3つまでしかありません。しかし、ChatGPTに2つの数を足すように要求する方法は1000通りあります:

  • 5と10を足してください
  • 5 + 10は何ですか
  • 私は10個の卵と5個の卵を持っています。それらを同じバスケットに入れた場合、合計はいくつですか?
  • ..

全ての卵を同じバスケットに入れないでください... 強いバスケットが1つある場合を除いて。

Danyel Koca

全てをまとめる

ChatGPTから得た応答に問題があるのは何でしょうか?

ChatGPTが提供したコードを2〜3分間見て、何が間違っているかを特定してみてください。

あなたが経験豊富なプログラマーでなくても、平均的なプログラマーであれば、Mobileの条件がTabletを包含していることに気付くでしょう。そのため、ChatGPTが提供したコードを使用してデバイスをタブレットとしてタグ付けする方法はありません。

これは構文エラーのみです。

コードを見るときに言うことはそれ以上にあります。例えば、「Android」と「Windows Phone」がタブレットに適しているかどうかを尋ねることができます。適していません!

愚かなChatGPT。少なくとも今のところは。

パニック!

結論

もしあなたがプログラマーなら、友達よ、安心してください。次の5年間は、あなたの仕事がどこにも行かないでしょう。

保証は次の5年間のみですが。

Happy hacking!

このブログは英語からChatGPTによって翻訳されました。不明な点がある場合は、お問い合わせページからご連絡ください。

コメントを残す

コメント

その他のブログ

SvelteとJavaScriptを使用してシンプルで動的なツールチップを作成する

2024/06/19

SvelteとJavaScriptを使用してシンプルで動的なツールチップを作成する

JavaScriptSvelteTooltip動的シンプルツールチップフロントエンド
JavaScriptを用いて東京都のインタラクティブな地図を作成する

2024/06/17

JavaScriptを用いて東京都のインタラクティブな地図を作成する

SvelteSVGJavaScriptTailwindインタラクティブな地図東京市区町村23区地図
Matplotlibで日本語文字化けを解決できる簡単な方法

2024/06/14

Matplotlibで日本語文字化けを解決できる簡単な方法

MatplotlibグラフチャートPython日本語文字化け問題バグ
書評 | トーキング・トゥ・ストレンジャーズ 「よく知らない人」について私たちが知っておくべきこと by マルコム・グラッドウェル

2024/06/13

書評 | トーキング・トゥ・ストレンジャーズ 「よく知らない人」について私たちが知っておくべきこと by マルコム・グラッドウェル

書評トーキング・トゥ・ストレンジャーズ「よく知らない人」について私たちが知っておくべきことマルコム・グラッドウェル
日本語で最もよく使われる3000字の漢字

2024/06/07

日本語で最もよく使われる3000字の漢字

3000よく使う準漢字使用回数漢字日本語漢字リスト漢字普及率日本語能力試験独学勉強単語
VSCodeでRegexを使用してReplaceする方法

2024/06/07

VSCodeでRegexを使用してReplaceする方法

VSCodeRegex検索置き換える条件付き置換FindReplaceConditional Replace
SvelteではReadable Storeを使用するな

2024/06/06

SvelteではReadable Storeを使用するな

SvelteReadableWritableステート管理ストアStore速度メモリファイルサイズ
GzipとPakoでデータを圧縮してWebサイトのローディング速度を上げる方法

2024/06/05

GzipとPakoでデータを圧縮してWebサイトのローディング速度を上げる方法

Gzip圧縮PakoWebサイトローディング速度SvelteKit
JavaScriptを使用してWebページ上でマウスが指している単語を特定する

2024/05/31

JavaScriptを使用してWebページ上でマウスが指している単語を特定する

JavascriptマウスPointerHoverWeb開発
SvelteとSVGを用いてインタラクティブな地図を作成する

2024/05/29

SvelteとSVGを用いてインタラクティブな地図を作成する

SvelteSVGインタラクティブな地図フロントエンド
書評 | Originals 誰もが「人と違うこと」ができる時代 by アダム・グラント & シェリル・サンドバーグ

2024/05/28

書評 | Originals 誰もが「人と違うこと」ができる時代 by アダム・グラント & シェリル・サンドバーグ

書評Originals誰もが「人と違うこと」ができる時代アダム・グラント & シェリル・サンドバーグ
Javascriptを使用して数独を解く方法

2024/05/27

Javascriptを使用して数独を解く方法

数独を解くアルゴリズムJavaScriptコーディング
ウェブサイトへのトラフィックを1か月で10倍に増やした方法

2024/05/26

ウェブサイトへのトラフィックを1か月で10倍に増やした方法

ウェブサイトへのトラフィック増加クリックインプレッションGoogle Search Console
人生はサイクリングに似ている

2024/05/24

人生はサイクリングに似ている

サイクリング人生哲学成功
JavaScriptでバックトラッキング・アルゴリズムを用いて完全な数独グリッドを生成する

2024/05/19

JavaScriptでバックトラッキング・アルゴリズムを用いて完全な数独グリッドを生成する

数独バックトラッキング・アルゴリズム完全なグリッドJavaScript
Tailwindが素晴らしい理由とWeb開発をいかに楽にするか

2024/05/16

Tailwindが素晴らしい理由とWeb開発をいかに楽にするか

Tailwind素晴らしいフロントエンドWeb開発
PythonとGitフックを使用してサイトマップを自動的に生成する

2024/05/15

PythonとGitフックを使用してサイトマップを自動的に生成する

GitフックPythonサイトマップSvelteKit
書評 | Range (レンジ) 知識の「幅」が最強の武器になる by デイビッド・エプスタイン

2024/05/14

書評 | Range (レンジ) 知識の「幅」が最強の武器になる by デイビッド・エプスタイン

書評Range (レンジ)David Epstein (デイビッド・エプスタイン)知識の「幅」が最強の武器になる
SvelteとSvelteKitはなんですか?

2024/05/13

SvelteとSvelteKitはなんですか?

SvelteSvelteKitFront-endVite
SvelteKitで国際化(多言語化)

2024/05/12

SvelteKitで国際化(多言語化)

国際化多言語SvelteKitI18N
SvelteでCachingを用いてDeploy時間を短縮する方法

2024/05/11

SvelteでCachingを用いてDeploy時間を短縮する方法

SvelteEnhanced ImageCachingDeploy Time
SvelteとIntersection Oberverによるレイジーローディング

2024/05/10

SvelteとIntersection Oberverによるレイジーローディング

レイジーローディングウェブサイト速度の最適化SvelteIntersection Observer
遺伝的アルゴリズムで最適な株式ポートフォリオを作る方法

2024/05/10

遺伝的アルゴリズムで最適な株式ポートフォリオを作る方法

株式書状ポートフォリ最適化遺伝的アルゴリズムPython
Pythonを用いてShapeFileをSVGに変換できる方法

2024/05/09

Pythonを用いてShapeFileをSVGに変換できる方法

ShapeFileSVGPythonGeoJSON
Svelteの反応性:変数、バインディング、およびキー関数

2024/05/08

Svelteの反応性:変数、バインディング、およびキー関数

Svelte反応性バインディングキー関数
書評 | 孫子の兵法

2024/05/07

書評 | 孫子の兵法

書評The Art Of War (兵法)Sun Tzu (孫子)Thomas Cleary
スペシャリストは終了。ゼネラリスト万歳!

2024/05/06

スペシャリストは終了。ゼネラリスト万歳!

専門家ジェネラリストパラダイムシフトソフトウエア・エンジニアリング
トルコ人の有権者の投票行動をPythonでの分析

2024/05/03

トルコ人の有権者の投票行動をPythonでの分析

トルコ投票者年齢分析国家投票有権者行動分析
Seleniumを用いてトルコ投票データベースを作る方法

2024/05/01

Seleniumを用いてトルコ投票データベースを作る方法

PythonSeleniumWeb Scrapingトルコ国家投票
SvelteとTailwindを使用してInfinite Scrollできる方法

2024/04/30

SvelteとTailwindを使用してInfinite Scrollできる方法

SvelteTailwindInfinite ScrollFront-end
1年間以内で日本語を駆使できるようになるための方法

2024/04/29

1年間以内で日本語を駆使できるようになるための方法

日本語短時間言語学習日本語能力試験ビジネス日本語
SvelteとTailwindを用いたWebサイトテンプレート

2024/04/25

SvelteとTailwindを用いたWebサイトテンプレート

Web開発フロントエンドSvelteTailwind
怠惰なエンジニアとひどいデザイン

2024/01/29

怠惰なエンジニアとひどいデザイン

怠け者エンジニア質の悪い製品StarbucksSBI証券
偉大さについて

2024/01/28

偉大さについて

雄大さ人生の意味満足できる人生目的
MacBook で PDF を PNG に変換する

2024/01/28

MacBook で PDF を PNG に変換する

PDFPNGMacBookAutomator
2023年振り返り:24冊の読んだ本のまとめ

2023/12/31

2023年振り返り:24冊の読んだ本のまとめ

読書 2023振り返り
Python PILを使用して写真コラージュを作成する方法

2023/12/30

Python PILを使用して写真コラージュを作成する方法

PythonPIL画像処理コラージュ
ウェブサイトの訪問者のデバイスとブラウザを検出する方法

2024/01/09

ウェブサイトの訪問者のデバイスとブラウザを検出する方法

Javascript端末検知ブラウザ検知Website分析