AI文章生成ブログの品質チェック手順|Claude Codeで半自動化する

※本記事にはプロモーション(広告・アフィリエイトリンク)を含みます。
AIで記事の草稿を自動生成できるようになると、次の壁として「品質チェックをどこまで自動化できるか」が出てくる。人手でゼロから書いた記事なら感覚で判断できることも、AIが生成したテキストは表面上の流暢さに引きずられて問題を見落としやすい。この記事では、AI生成ブログ記事に頻出する問題パターンと、それを拾うための具体的なチェック手順を説明する。
AI生成テキストに頻出する問題パターン
品質チェックの手順を組む前に、何を探すのかを把握しておく。AI生成テキストでよく見られる問題は次の4種類に整理できる。
1. ハルシネーション(事実の捏造)
統計数値・人名・製品仕様・日付などを、それらしく見える形で誤って生成する。「〇〇%のユーザーが」「2023年の調査によると」のような文は特に要注意で、出典が実在しないことがある。
2. 一人称の矛盾
「私が試したところ〜」という体験談が、実際にはプロンプトで渡した情報をそのまま言い換えただけになっているケース。読者から見れば体験談に見えるが、実態は推測にすぎない。
3. 水増し・冗長
同じ内容を言い換えて段落を増やす、「〜と言えるでしょう」「〜ではないでしょうか」で締めくくる段落が連続する、導入と結論だけで中身がないセクションが入る、といったパターン。
4. 検索意図とのずれ
「方法」を検索した読者に「〜とは何か」の解説だけを返す、手順を求めているのにメリット・デメリットの比較で終わる、といったずれが起きやすい。
品質チェックの4ステップ
ステップ1:事実確認(ファクトチェック)
数値・固有名詞・日付・仕様値が含まれる箇所をすべてリストアップし、一つひとつ検証する。
- 公式ドキュメントや一次情報源と照合できるものは照合する
- 照合できないものは削除するか「〜とされています(要確認)」に変える
- 「〜の調査によると」「〜%のユーザーが」という形の記述は、出典を明示できない限り削除する
この工程を省略すると、公開後に指摘されるリスクが残る。数値を含む段落は、コピーして検索エンジンで出典を探す習慣をつけるのが現実的だ。
ステップ2:構成・論理チェック
見出し構成だけを並べて読み、「問題 → 原因 → 解決策」または「手順1 → 手順2 → 結果確認」という流れになっているかを確認する。
Markdownファイルなら、見出し行だけを抽出するコマンドが使える。
grep '^##' draft.md
出力がそのまま目次になるので、読者の視点で読み返す。「このセクションが読者の疑問に答えているか」を各見出しに対して問う。
ステップ3:文体・表現チェック
水増し表現の代表的なパターンを正規表現でフラグする。
grep -n "いかがでしたか\|ではないでしょうか\|言えるでしょう\|重要です。\|大切です。" draft.md
マッチした行は書き直しか削除の候補。「重要です」「大切です」で段落を終わらせている箇所は、なぜ重要なのかを具体的に書くか、削除する。
ステップ4:SEOと読者体験のチェック
冒頭200字以内にターゲットキーワードが入っているか、最初のH2より前に「誰の何を解決するか」が明示されているかを確認する。
head -c 200 draft.md
検索から来た読者は最初の数行で「自分が探しているものか」を判断する。ここで答えが見えなければ離脱する可能性が高い。
Claude Code CLIを半自動チェックに使う
ブログ記事の草稿生成では、Claude Code CLIのclaude -pをPython subprocessから呼び出す方法を使っている。同じ仕組みで、品質チェックの観点をプロンプトに渡してフィードバックを取得できる。
import subprocess
import sys
def check_article_quality(draft_path: str) -> str:
with open(draft_path, encoding="utf-8") as f:
article = f.read()
prompt = f"""以下のブログ記事草稿を品質チェックしてください。
次の4点について、問題がある箇所を行番号と引用テキスト付きで箇条書きにしてください。
問題がなければ「問題なし」と返してください。
1. 出典なしの数値・統計・調査結果
2. 一人称の体験談として書かれているが推測にすぎない可能性がある箇所
3. 同じ内容の言い換えや水増しに見える段落
4. 検索意図(howto・手順)に答えていないセクション
---
{article}
"""
result = subprocess.run(
["claude", "-p", prompt],
capture_output=True,
text=True,
timeout=120,
)
if result.returncode != 0:
print(f"エラー: {result.stderr}", file=sys.stderr)
return ""
return result.stdout
if __name__ == "__main__":
feedback = check_article_quality("draft.md")
print(feedback)
このスクリプトを実行すると、標準出力に指摘箇所の一覧が返る。全指摘を機械的に直す必要はなく、「自分が意図してそう書いた箇所か」を判断する入り口として使う。
timeout=120 は環境によって調整が必要な場合がある。記事が長いとコンテキスト長の上限に引っかかることがあるため、セクションごとに分割して渡す方が安定する。
つまずきやすいポイント
チェックをAIに任せすぎると循環する
AIが生成した文章をAIがチェックすると、同じ視点で見るため問題をスルーする場合がある。特にハルシネーションの検出は、モデルが誤った情報をそれらしいと判断していた場合に見抜きにくい。数値・固有名詞のファクトチェックは必ず人手で行う。
「問題なし」が返ってきても過信しない
プロンプトの聞き方によってはすべてに「問題なし」と返す場合がある。チェックリスト形式で「各項目についてYes/Noと根拠を返せ」と指示する方が、見落としを減らしやすい。
CLIのバージョン差
claude -p はClaude Code CLIのバージョンによって挙動が変わる可能性がある。実行前に claude --version でバージョンを確認しておく。
チェック観点のまとめ
| チェック観点 | 確認内容 | 手段 |
|---|---|---|
| 事実性 | 数値・固有名詞の出典があるか | 手動で検索・照合 |
| 構成 | 見出しだけで流れが通るか | grep '^##' |
| 水増し | 典型的な曖昧表現の有無 | grep -n で正規表現 |
| 検索意図 | 冒頭200字でキーワード・解決策が見えるか | head -c 200 |
| AI総合 | 4観点をまとめてフラグ | claude -p + Python |
まとめ
AI生成ブログの品質チェックは、「ハルシネーション」「一人称の矛盾」「水増し」「検索意図のずれ」の4点を軸に組み立てると抜け漏れが減る。数値・固有名詞のファクトチェックだけは手動で行い、その他のチェックはClaude Code CLIを使って半自動化するのが現実的な落とし所だ。
まず grep '^##' draft.md で見出し構成を確認する習慣から始めてみてほしい。構成が整っていると、その後のチェック工程で修正候補を絞り込みやすくなる。
よくある質問
AI生成ブログ記事の品質チェックはどこから始めればいいですか?
まず `grep '^##' draft.md` で見出し構成だけを抽出して読み返すことから始めるのが効率的です。構成が正しければ、その後のチェックで指摘される問題が大幅に減ります。
Claude Code CLIで品質チェックを自動化できますか?
`claude -p` にチェック観点をプロンプトとして渡し、Python の subprocess で呼び出す形で半自動化できます。ただし数値・固有名詞のファクトチェックはモデルが誤りを見抜けない場合があるため、必ず手動で照合してください。
AIが生成した記事のハルシネーションはどう見つけますか?
数値・固有名詞・日付・調査結果が含まれる文をすべてリストアップし、一次情報源と照合します。出典が見つからないものは削除するか「〜とされています(要確認)」に変えるのが安全です。