日本語の執筆と推敲を支援するAgent Skill「natural-japanese」に、v1.4.0で読解負荷レーンが加わりました。起動方法は lint.py --reading-load。長すぎる一文や埋もれた列挙など、読み流すと見落としやすい箇所を機械で拾います。

この機能で面白いのは、読みやすさを自然度スコアへ混ぜなかった点です。長文だからAI生成とは限らないし、AIらしくない文が読みやすいとも限りません。分類と推敲を別の仕事として扱う設計になっています。

「AIかどうか」から「直すと読みやすいか」へ

natural-japaneseは以前、文長や読点密度、二重否定、漢字比率など14候補をコーパスで調べ、実装推奨0件としていました。ただし、当時の採否基準は人間とAIを見分けられるかどうかです。たとえば長文のAI検出率が1.0%でも、それが示すのは「長い文はAIの証拠にならない」ことまで。読みやすさの評価ではありません。

読解負荷レーンは基準を「指摘に沿って直した文が、原文より読みやすくなるか」に置き直しました。出力はすべて info で、合否も点数も出しません。既存のlint結果や --baseline の差分比較からも切り離され、フラグを付けなければ従来の出力は変わらない仕組みです。

5つの検出器は、判断ではなく見落としを減らす

検出対象は、一文が長すぎる sentence_too_long、文章に埋もれた列挙を探す buried_list、二重否定の double_negative、7字以上の漢字列を拾う kanji_run、格助詞「の」の連鎖を探す no_chain の5つです。一文の既定値は90字超ですが、エッセイでは110字へ緩められています。

単純に閾値を置いただけではありません。当初の「読点が4個以上」という検出は241文書の62%で反応し、実物を確かめると、問題の中心は読点の数ではなく列挙が一文に埋もれていることでした。そこで名詞句の並びを見る buried_list へ作り替えています。漢字列から固有名詞を除き、二重否定から「〜ないと動かない」のような条件表現を外す調整も入りました。

校正値は便利だが、文章の優劣には使えない

校正には、ほぼAI生成の241文書・9,889文と、人間が書いた技術記事10本・379文が使われました。指摘密度は前者が1,000文あたり145件、後者が37件です。ただし文書の種類も内容の密度も違うため、この約4倍の差をそのまま書き手の差とはみなせません。レポート自身も、測っているのは「AIらしさ」や「文章の下手さ」ではなく、一文に詰め込まれた内容の密度に近いと説明しています。

限界も残ります。buried_list は括弧内の列挙を誤認することがあり、動詞の連用形で並ぶ手順やリンク記法を挟む列挙は取り逃します。人間執筆側のサンプルも10本と小さく、「直すと読みやすくなるか」の判定は複数人で検証されていません。

だから、このレーンは自動修正の根拠より、長い原稿を見直す順番を作る道具として使うのが合っています。指摘を全部消すのではなく、まず該当箇所を読み、文の呼吸として残すか、分割や箇条書きへ直すかを選ぶ。機械に任せる範囲を「見落とさず指す」までに留めたところが、この更新の核です。

参考