AIがコードを書いてくれた。見本のメモも、きれいに分類できた。
じゃあ、空っぽの行を渡したら? 同じ「牛乳」が3回出てきたら、勝手に1つにまとめない?
今回は、架空のメモを整理する小さなPythonコードをAIに作ってもらい、6種類の入力で動かしてみました。初回のコードは、決めておいた期待結果とすべて一致。ただ、そこで「何でもうまく整理できる」とは言えない理由もあります。
まず「どうなれば正解か」を決める
作るのは、行頭のラベルでメモを分ける関数です。
「買い物: 牛乳」は買い物へ。「学び: 星座を調べる」は学びへ。「創作: 雨の短編」は創作へ。ラベルのない「散歩する」は、その他へ入れます。
AIが毎回メモの意味を考える仕組みではなく、AIに書いてもらったコードが、決めた文字のルールで分ける試作です。
依頼するときに、次の扱いも指定しました。
- 前後の空白は取り除き、空っぽの行は捨てる。
- コロンは半角「:」と全角「:」の両方を受け付ける。
- ラベルだけで本文がない行も捨てる。
- 重複は消さず、分類ごとの順番も保つ。
- 知らないラベルや、途中にラベルがある文章は「その他」に残す。
- 渡した元のリストは書き換えない。
ここで迷いどころは、重複の扱いです。買い物一覧なら1つにまとめたいこともありそうですが、今回は「何回書いたかも残す」方を選びました。
「いい感じに整理して」だけでは、この選択が伝わりません。消してよいものと、残したいものを先に分けるのが、今回の出発点です。
普通の入力だけで終わらせない
コードを生成する前に、入力と期待結果を6ケース分保存しました。生成担当には仕様を渡し、コードができた後に別の実行工程で照合しています。
確認したのは、通常のメモ、空欄、重複、全角コロンと前後の空白、未知のラベルなど、そしてメモが1件もない場合です。各ケースでは分類結果に加え、元のリストが変わっていないことも見ました。
2026年10月7日、Codex内の生成担当に1回依頼し、手元のPython 3.12.14で実行。6ケースとも一致し、コードの修正は0回でした。生成担当の説明は「テスト・実行は行っていません」で、合格の根拠はその説明ではなく、後から保存した実行結果です。
空欄は、本当に空になった
空文字、半角スペース、タブ、全角スペースに加え、「買い物:」「学び: 」も入れました。
結果は4分類とも空のリスト。ラベルだけの行から、空っぽのメモが増えることはありませんでした。
「牛乳」は3回とも残った
渡した順番はこうです。
買い物: 牛乳買い物: 牛乳買い物: パン買い物: 牛乳
買い物の出力は、牛乳、牛乳、パン、牛乳。重複を残し、途中のパンもその位置に残りました。
これは「重複を残す方が正しい」という一般論ではありません。今回、先にそう決めたから、この結果を合格にしています。
似た書き方でも、扱いは変わる
「学び: 月を観察」は、学びに入りました。一方、「学び : 星座」は、その他へ入りました。
違いは、ラベルとコロンの間のスペースです。今回は行の前後の空白だけを取り除き、ラベルの途中は推測して直さない仕様にしています。
また、「日記に買い物: 牛乳と書く」は買い物に移らず、その他に残りました。文章の途中に同じ文字があるだけでは、ラベルとして扱わないためです。
ここを見て「そこも学びに入れてほしい」と思ったなら、コードの故障を疑う前に、期待するルールを変える必要があります。動いていることと、自分の使い方に合っていることは、別々に確かめたいところです。
自分で試すなら、この一言を足す
AIへコードを頼むときは、たとえば次のように伝えられます。
実装する前に、普通の入力・空欄・重複をどう扱うか整理してください。重複は今回は残します。各ケースについて、入力と期待する出力を対にしてください。
出てきた期待結果は、自分の用途と合うか確認します。その後、実行結果と並べれば、「動いたっぽい」で終わらずに済みます。
GitHubの公式ガイドでも、生成コードが意図を正しく反映しない可能性があるため、レビューとテストを勧めています。生成されたテスト自体も全ケースを網羅するとは限らない、という注意があります。今回はCopilotの性能を測ったものではなく、確認の考え方の参考にしました。
今回の6ケース合格は、この小さな関数と入力の範囲での結果です。大量データ、文字列以外の入力、ファイル読み込み、意味に基づく分類は確認していません。生成から保存までは約45秒でしたが、ツール操作と待ち時間を含むため、AIの速度比較や時短の根拠にはできません。
まずは、使いたいメモを3行だけ書く。普通の1行、空の1行、同じ内容のもう1行。それぞれどうなってほしいかを、コードより先に書いてみませんか。
参考にした一次情報
- GitHub:Responsible use of GitHub Copilot inline suggestions — 生成コードと生成テストのレビューに関する注意。
- Python:unittest — 期待値との一致を検査する考え方の参考。今回の小さな実験では専用の照合スクリプトを使用。
いずれも2026年10月7日確認。実験には架空のメモを使い、追加の有料APIや外部サービスへの接続は行っていません。
출처: note 원문
번역: Gemma 3(.44) 초벌 + 교정 검수
원문 보기 | 출처: note.com