🤔

人間もプログラムも避けるべき「否定形」という名の呪い

に公開

なぜ、私たちもAIも「否定形」が苦手なのか

私たちの仕事は、コードを書くことだけではありません。
「伝える」こと、そして「理解する」こと。
そこには、まるで呪文のような言葉の力が宿っているように感じます。

私自身、かつては「それ、ちょっと分かりづらいんですよね」という上司からの言葉に、何度も頭を抱えてきました。どうすればいいのか分からず、試行錯誤を繰り返す日々。その経験から、私は人間もプログラムも苦手とする、「否定形」という名の呪いについて深く考えるようになりました。


「〜ではない」がもたらす認知負荷

心理学や認知科学の観点から見ると、人間は 「肯定的な情報」を直接的に処理することに長けている そうです。
たとえば、「赤い車を描いてください」と言われれば、脳は即座に「赤い車」というイメージを作り出します。でも、「赤い車を描かないでください」と言われると、まず「赤い車」を一度想像し、その上で「それをしない」という追加のステップを踏む必要があります。この二段階の処理が認知負荷となり、誤解やミスの原因になることがあるのです。

この現象は、私たちの日常的なコミュニケーションにも潜んでいます。「〜は良くないですね」という否定的な指摘は、受け手に対して「じゃあ、どうすればいいんだろう?」という、解決策を自分で探させる負担をかけてしまいます。そして、その空白を埋めるための推測と試行錯誤が、チーム全体の生産性を鈍らせてしまうことにつながります。


プログラミングの世界における「否定」の代償

この非効率性は、コンピュータの世界にも共通しています。
特に正規表現は、その典型的な例でしょう。
肯定的なパターン(例:abc)を一致させる処理は比較的単純ですが、否定先読み(例:a(?!b)c)のように、「〜ではない」という条件を含める場合、プログラムはまず肯定的なパターンを試行し、その後に否定の条件を満たしているか確認するという、より複雑な処理を実行します。これにより、計算量が増加し、パフォーマンスが低下することがあります。

また、近年の生成AIも同様です。
AIは膨大なデータから「何であるか」という肯定的なパターンを学習しています。
「猫を描かないでください」と指示すると、AIはまず学習した「猫」のパターンを呼び出した上で、それを抑制しようと試みるため、意図せず猫の要素が残ってしまうなどの出力のブレが生じやすいのです。


いますぐできる「肯定形」への言い換え術 🗣️💡

「否定形」の呪いから解放されるためには、私たちは何をすればいいのでしょうか?それは、「否定形」を「肯定形」に変換する練習をすることです。

1. 目的から考える

「〜は分かりづらい」という指摘を受けた場合、その背後にある「目的」を掘り下げます。

  • ❌ 否定形:「このコード、読みにくいですね」
  • ⭕️ 肯定形:「このコード、処理の流れがすぐにわかるようにしたいです。

2. 具体的なアクションを添える

ただ肯定するだけでなく、具体的なアクションを付け加えます。

  • ❌ 否定形:「タスクの粒度が細かすぎないか?」
  • ⭕️ 肯定形:「タスクの粒度を1日で完了できるサイズにしてみましょう。」

3. チームでルールを共有する

「肯定形ルール」をチームで共有し、共通認識を持つことも効果的です。例えば、GitHubのプルリクエストコメントで「指摘は改善提案として肯定形で書く」といったルールを設けるだけで、建設的な議論が生まれやすくなります。


結論:肯定形で未来を描く

人間、プログラム、AI。それぞれ異なる仕組みで動いていますが、「〜である」という明確な肯定形を処理することに最適化されているという点では共通しています。
否定形は、受け手に対して「答え」ではなく「空白」を与え、その空白を埋めるための追加の思考や計算を強いるため、認知負荷や処理コストを高めてしまいます。

「何が問題か」ではなく、「どうすれば良くなるか」。
「〜は良くない」ではなく、「〜という状態を目指しましょう」。

言葉の選び方を変えるだけで、私たちは未来をより明確に描き、前向きな行動を促すことができると信じています。

Discussion