新人ライターとベテランで指摘の強さを変える:7層のルール合成

入って3ヶ月のライターと、10年書いている人に、同じ校正結果を見せる。これがうまくいかないことは、たぶん想像がつくと思います。

新人には一文の長さも冗長表現も全部出したほうがいい。癖が抜けます。ベテランに同じものを出すと、指摘の9割が「分かっていて書いている」箇所になる。そして人は、ノイズが9割の警告を見なくなります。

校正ツールが編集部に定着しない理由は、精度よりここにあることが多い。サイトに1つのルールしか持てない設計だと、この差を表現する方法がありません。

目次

ルールは1枚ではなく、重ね合わせ

ルール合成のレイヤーを、サイト共通から投稿単位まで弱い順に示した図

日本語校正マネージャーでは、適用されるルールを7つのレイヤーの合成結果として決めています。弱い順に並べるとこうです。

順位(弱→強)レイヤー
1サイト共通
2ユーザー権限
3投稿タイプ
4タグ
5カテゴリ
6ライター(ユーザー)
7投稿単位

各レイヤーには「プロファイル」を割り当てます。プロファイルはルールの束で、そのレイヤーでどのルールをどう扱うかを書いたもの。

重要なのは、上のレイヤーが下を丸ごと置き換えるのではないことです。上書きされるのは、そのプロファイルが言及しているルールだけ。言及していないルールは下の結果がそのまま残ります。

ライター用のプロファイルに「長文ルールを無効」とだけ書いてあれば、変わるのは長文ルールだけ。表記ゆれも禁止語も、サイト共通の設定が生き続けます。ライターごとに全ルールを書き直す必要がない、というのがこの方式の実用上のポイントです。

上書きできるのは3つだけ

各レイヤーが上書きできる3項目(有効・無効/重要度/パラメータ)を示した図

各レイヤーが変えられるのは、次の3つに限っています。

  1. 有効か無効か
  2. 重要度(Error / Warning / Info / Suggestion)
  3. ルール固有のパラメータ(一文の上限文字数、読点の上限数、同じ語尾の連続数など)

3つに絞ったのは設計上の判断です。初期の仕様には「強度」という概念があって、ルールごとに厳しさを段階で持たせるつもりでした。これは廃止しました。強度を上げると何が変わるのかを説明できなかったからです。閾値が変わるのか、重要度が上がるのか、検出範囲が広がるのか、実装のたびに解釈が揺れる。

合成結果を人が説明できないと、設定は運用に乗りません。 「なぜこの記事でこの指摘が出たのか」に毎回答えられる状態を保つほうを優先して、上書きの自由度を落としました。

組み方の例

具体的に見たほうが早いと思います。

  • サイト共通:標準メディア文体(8種類のルールを全部有効・すべてWarning)
  • カテゴリ「ニュース」:文体の混在をErrorに上げる
  • カテゴリ「コラム」:冗長表現を無効にする
  • ライター「Aさん(新人)」:一文の上限を80文字から60文字に下げる
  • ライター「Bさん(ベテラン)」:長文と冗長表現を無効にする

Aさんがニュースカテゴリの記事を書くと、こうなります。

ルール結果由来
表記ゆれ有効・Warningサイト共通
文体有効・Errorカテゴリ(ニュース)
長文有効・Warning・上限60文字ライター(Aさん)
冗長表現有効・Warningサイト共通

Bさんが同じニュース記事を書けば、長文と冗長表現が消えて、文体のErrorだけが残ります。

コラムカテゴリで冗長表現を無効にしていても、Aさんが書くときにはどうなるか。この例ではAさんのプロファイルが冗長表現に言及していないので、カテゴリの設定(無効)がそのまま残ります。ライターのレイヤーが強いのは、そのライターが言及したルールについてだけです。

順位は動かせない

レイヤーの順位は固定で、設定では変えられません。「うちはカテゴリよりライターを優先したい」といった調整はできない仕様です。

数値の優先度という項目はありますが、これは同じレイヤーの中で複数のプロファイルが当たったときのタイブレーク専用です。レイヤーをまたいだ順位を覆すことはできません。

固定にしたのは、順位を可変にすると合成の結果が誰にも読めなくなるからです。記事に紐づくカテゴリが3つ、タグが5つ、ライターが1人、投稿タイプが1つ。この組み合わせで最終的にどのルールがどう効くかを、順位まで可変にした状態で説明するのは無理があります。

なお、同じレイヤーで複数当たった場合(記事が3つのカテゴリに属しているなど)は、全部がマージ対象です。優先度の低いものから順に重ねていきます。ひとつだけ選んで残りを捨てる、という挙動にはしていません。

緩められないルールは別枠

順位の外にあるものが一つあります。強制ルールです。

これはレイヤーではなくルール側の属性で、有効にすると合成の最後に適用されます。どのレイヤーが何を書いていても、最後に上書きされて元に戻る。有効・無効も重要度もパラメータも、ルール定義の値で固定されます。

会社名やサービス名の正式表記、法務上使えない表現、PR表記の注記。ライターの裁量で外させたくないものはここに置きます。禁止語の運用については薬機法・景表法の記事に詳しく書きました。

どこに割り当てられるか

プロファイルを割り当てられる対象は7種類です。

サイト全体 / 投稿タイプ / カテゴリ / タグ / ユーザー権限 / ユーザー / 個別投稿。

1つの対象につき、プロファイルは1つです。カテゴリ「美容」に2つのプロファイルを当てることはできません。当てたいなら、両方の内容を含むプロファイルを作ることになります。ここも、合成が読める状態を保つための制約です。

投稿単位のレイヤー(最上位)でできることは2つに絞ってあります。

  • この投稿に適用するプロファイルを差し替える
  • この投稿の校正を無効にする

個別の指摘を消したいときは、プロファイルではなく無視設定を使います。この指摘のみ/この投稿のみ/このライターのみ/このカテゴリのみ/このルールを一時停止、の5段階。ライター(投稿者・寄稿者)が使えるのは前の2つだけで、サイト全体に効く無視は編集者以上に限っています。

結果を目で見られるようにする

割り当て画面の実効プロファイルのプレビュー結果。各ルールの重要度と由来レイヤーが並ぶ表
レイヤー合成の結果が読めなくなるのを防ぐ3つの制約を示した図

ここまで読んで「設定が複雑では」と思ったなら、その感覚は正しいです。7層あって、ルール単位でマージされて、強制ルールが最後に来る。頭の中で追うのは無理があります。

なので、割り当ての管理画面に実効プロファイルのプレビューを置いてあります。任意の投稿・任意のユーザーを指定すると、その条件で最終的に効くルール一覧が出る。各ルールがどのレイヤー由来で今の値になっているかまで表示されます。

この画面は後付けではありません。この仕様にしたのは、レイヤー方式を採る時点で、合成結果を説明できる手段がなければ運用が破綻すると分かっていたからです。

「なぜこの指摘が出たのか」「なぜこの指摘が出ないのか」に、設定画面を見せながら答えられる。これがないと、レイヤーは便利な機能ではなく謎の挙動になります。

現行バージョンにない条件分岐

割り当ての条件として使えるのは、上の7種類だけです。

  • 「下書きのときだけ厳しくする」といったステータス条件
  • 「特定のキーワードを含む記事だけ」といった本文条件
  • 「アフィリエイトリンクがある記事だけ」といった構造条件

こうした条件付きルールは現行バージョンにありません。カテゴリ・タグ・投稿タイプ・ライター・権限で表現できる範囲でカバーする設計です。多くのケースはカテゴリかタグを一つ足せば表現できるので、まずはそちらで運用する想定になります。

最初から凝った設定にしない

運用の順番として、いきなり7層を使い切ろうとしないほうがいいです。

有効化した直後は、同梱の既定プロファイル「標準メディア文体」がサイト全体に1つ割り当たっているだけの状態です。すべてWarningで、公開ブロックなし。まずこの1枚で1〜2週間動かして、指摘の傾向を見る。

そのうえで、特定のライターに指摘が集中している、特定のカテゴリだけ文体がぶれている、といったパターンが見えてから、そこにだけレイヤーを足す。設定が先で運用が後になると、誰も理解していない7層構造が残ります。

編集フロー全体への組み込み方はこちらの記事に、プロファイルと割り当ての管理画面は日本語校正マネージャーの製品ページから確認できます。

目次