自動品質検査をすべて通過した記事を、確認者が読んでみると、なお何度も手直しが必要でした。数値や見出しの条件を満たしていても、内部の用語が説明なしに残り、タイトルと本文の重心もずれていたためです。
検査で問題を見つけることと、問題が実際に直ることは別でした。警告を記録するだけでは、最後に人が本文を読み、手作業で言い換える工程はなくなりません。そこで、検出から修正、再検証までを一続きにする方法を整理しました。
検出できても、修正されるとは限らない
記事生成では、数値や見出し数、重複などを確認する自動品質検査を使っています。さらに、内部で通じる表現が読者に伝わりにくい問題や、タイトルと本文の主題がずれる問題を見つける検査も追加しました。
ところが、これらの検査結果は記録されても、記事の合格・不合格を決める技術的な判定を止める仕組みではありませんでした。そのため、技術的な検査を通過した記事が確認者のもとへ進み、そこで内部用語を言い換える作業が発生します。
検出ルールを増やしても、直す経路がなければ、手作業は残ります。そこで必要になったのは、警告を本文の修正へつなぐ仕組みでした。
機械で直す部分と、AIに任せる部分を分ける
修正は、まず決定論的に処理できるものから試す設計にしました。たとえば、内部用語と読者向けの表現の対応が辞書に登録済みなら、AIを呼ばずに置き換えます。「外向けの自動処理」を「SNSへの自動投稿」とするような修正です。表現があらかじめ決まっているものまで生成AIに任せる必要はありません。
辞書にない用語や、タイトルと本文の重心のずれは、記事全体を書き直さず、問題のある箇所に絞って修正します。対象は問題のセクション最大3件とタイトル1枠まで、AIによる修正は最大2回までです。既存の局所修正経路を使い、数値を新たに作らないことや、変更量を抑えるためのガードも利用します。
タイトルと本文のずれも、両方を一度に大きく書き換えないようにしました。本文のどこにも主題語がなければタイトル側を直し、本文の後半には主題語があるなら冒頭側だけを直します。どこを修正すべきかを分けることで、記事全体を必要以上に揺らさないためです。
修正のたびに検査し、悪化したら戻す
局所修正を加えたあとには、数値・見出し数・意味上の重複などを確認する技術的な検査を必ず再実行します。修正前より問題が悪化した場合は、編集前の状態へ戻します。文章が読みやすくなったように見えても、事実の正確さを損なったなら採用しないためです。
この仕組みを整える過程では、曖昧な数量表現や「朝は作業し、その後も作業した」という作業ログ調の文章も課題になりました。時系列の言葉を機械的に削るだけでは、出来事のつながりまで壊すおそれがあります。そのため、重複文の除去のように安全に機械処理できる範囲と、意味を組み立て直す局所的なAI修正を分け、どちらの修正後にも同じ技術検査を通す形にしました。
また、作業ログ調の問題は記事全体で目立っていても、各セクションを個別に見ると警告条件に届かない場合がありました。実際に、記事全体では問題があるのに修正対象のセクションが0件になる状態をテスト用のデータで確認しています。この場合に限り、既存の検出に使う時間帯語や作業報告の動詞などのシグナルを使い、問題への寄与度が最も高いセクションを1件だけ修正対象に補います。記事全体での判定と、各セクションの判定の両方を見る必要がありました。
本文を組み立て直す経路にも注意する
もう一つ確認できたのは、本文のセクション配列の外側に後から追加する実績ログが、修正時に消える可能性です。いくつかの修正処理はセクションから本文を作り直すため、セクションに含まれないログは、その再構築に含まれません。既存の修正処理をテストしたところ、対策前のコードでは実績ログが本文から消えることを確認しました。
そこで、ログを一度だけ追加するのではなく、本文を保存する直前にいったん取り除き、最新の生成結果から組み立て直す形に変更しました。記事を生成・再生成・修正する各経路で、保存前にこの処理を通します。後付けデータを使う設計自体を変えず、本文を保存する全経路で同じ不変条件を保つ方法です。
分かったこと
自動品質検査は、ルールを追加するだけでは完結しません。警告を修正へつなぎ、修正後に再検証し、悪化したら戻すところまでを一つの流れとして設計する必要があります。
その際、機械的に直せる表現と、意味の組み立て直しが必要な表現を分けることも重要でした。安全な置換は決定論的に行い、それ以外は対象を絞ったAI修正に限定する。さらに、記事全体では問題があるのに個別のセクションでは検出できない場合や、本文の再構築で後付け情報が消える場合も考慮する必要があります。
検査を厳しくするだけでは、正確で読みやすい記事にはなりません。検出・局所修正・再検証をつなぎ、各処理を通っても守るべき条件が失われないかまで確かめることが、自動化を実際の手直し削減につなげる鍵でした。