AI News HubLIVE
站内改写2 分で読了

ありとあらゆるPDFエディタを試した結果、ChatGPTに優れたものを作らせた

妻が黄色い楽譜PDFから背景色を除去する必要に迫られ、直接AIで処理すると内容が変わるリスクがあるため、ChatGPTに決定論的なPythonスクリプトを生成させて安全に処理する方法を紹介。非決定論的なAIと決定論的なプログラミングの対比と実践的な教訓を述べる。

ソースZDNet AI

最近、妻のDeniseが教会の聖歌隊に参加し、新しい曲を練習する必要がありました。楽譜は文庫本ほどの大きさの黄色い紙に印刷されており、彼女はそれをスキャンしてPDFにし、黄色い背景を除去して、8.5x11インチの用紙に拡大印刷したいと考えていました。そうすれば老眼鏡なしでも見られます。また、PlayScore 2という楽譜を再生して一緒に歌えるアプリにも取り込みたいと考えていましたが、黄色い背景がアプリの認識に影響するのではないかと心配していました。

最初はPhotoshopで黄色を除去しようとしましたが、画像ごとにスライダーの設定が異なり、面倒で時間がかかりました。そこでChatGPTを勧めました。DeniseはChatGPT Plusアカウントを持っていたので、良い選択肢に思えました。

私はいくつかテストを行い、「黄色い背景を白に置き換えたダウンロード可能なPDFを返して」などのプロンプトを与えました。ChatGPTは確かに処理を行いましたが、結果のPDFを微妙に変更していました。Deniseは、ChatGPTが音符や歌詞などの原曲を変更してしまい、間違った練習をすることを恐れました。ChatGPTなどのAIは「非決定論的」であり、同じ入力を与えても毎回異なる結果を返す可能性があります。彼女は絶対に変更を加えない決定論的なツールを求めていました。

Pythonならそれができます。私はハーバード大学のPythonプログラミング認定資格の最終課題で、Photoshop風の画像変換をバッチ処理できるツールを作成した経験があり、Pythonに必要なライブラリがあることを知っていました。しかし、当時は多忙でプログラムを書く時間がありませんでした。そこでChatGPTにPythonスクリプトを生成してもらうことにしました。

「JPEGを受け取り、灰色または黒でないピクセルをすべて白に設定して、元のファイル名に-decolor.jpgを付けて保存するPythonスクリプトを書いてください。わずかに色味のあるグレーも許容し、色付き背景上の黒いテキストが黒く表示されるようにしてください。PDFの場合は複数ページにも対応してください。」というプロンプトを与え、夕食の準備をしている間に実行しました。

最初のバージョンではライブラリのインストールが必要でしたが、その後は問題なく動作しました。コマンドラインから実行するだけで、PDFの背景色を除去した新しいファイルを出力します。このスクリプトは私のGitHubリポジトリで公開しています。

実演のため、著作権フリーの楽譜としてニューヨーク公共図書館のウェブサイトからジャズの巨匠ファッツ・ウォーラーの楽曲を取得しました。スクリプトは黄色い背景を完全に除去し、音符や文字を保持しました。

この経験からいくつかの教訓が得られました。AIを非決定論的な処理に使う必要はなく、決定論的なアルゴリズムに基づくプログラムを生成させることができます。また、複雑なUIを作成する必要はなく、シンプルなコマンドラインツールで十分です。AIに対して要件を明確にし、試行錯誤しながら改善することが重要です。そしてPythonは多様なライブラリを持ち、迅速な開発に適しています。

問題を素早く解決したいなら、ChatGPTにプログラムを書かせてみてください。私の場合、妻に使えるツールを提供でき、同時に他の家事もこなせました。AIが元のファイルを微妙に変更することを懸念して直接使うのを避けた経験はありますか?コメントでお知らせください。