工程・動作名詞を詰め込んだ読みにくい四漢字表現を検出する textlint ルールです。
このルールは「存在しない熟語」や「文法エラー」を断定しません。実装設計の方針をまとめる のように、二つの動作名詞を連結した語が後続の名詞にかかり、読者が関係を取りにくい構造をレビュー対象として報告します。
対象は、ちょうど 4 文字の漢字列だけです。5 文字以上の漢字連続は、既存の textlint-rule-max-kanji-continuous-len に任せる想定です。
デフォルトでは、次の条件が揃った場合だけ報告します。
- 4 漢字列である
- allow に入っていない
- 前半 2 字と後半 2 字がどちらも
kuromojinでサ変接続名詞として扱われる - 前半 2 字と後半 2 字がどちらも工程・動作名詞リストに含まれる
- 直後に
の方針、の計画、の予定が続く
たとえば 実装設計の方針 は、実装 と 設計 の二つの工程名が連結されたまま 方針 にかかっています。実装の設計方針、実装方針と設計方針、設計と実装の方針 のように関係を補うと読みやすくなる可能性があります。
一方で、概念深化 のような clean な 2+2 造語はデフォルトでは報告しません。この種の判定は通常の複合名詞との区別が難しく、false positive が増えやすいため、このルールでは扱いません。
次のような表現は報告されます。二つの工程・動作名詞が連結されたまま後続名詞にかかっており、どの関係を表すのかが取りにくいためです。
実装設計の方針をまとめる。
設計実装の計画を作る。
開発運用の予定を確認する。次のような表現は報告されません。関係が補われている、単独の通常表現である、またはこのルールの対象外だからです。
実装の設計方針をまとめる。
実装方針と設計方針をまとめる。
設計と実装の方針をまとめる。
開発と運用の予定を確認する。
開発後の運用予定を確認する。
開発から運用までの予定を確認する。
設定変更の方法を説明する。
動作確認の方法を説明する。
概念深化を強調している。開発運用の予定 は、開発と運用の予定、開発後の運用予定、開発から運用までの予定 のように、意図に合わせて関係を補えます。設定変更の方法 や 動作確認の方法 は、設定を変更する、動作を確認する と読めるため報告しません。概念深化 のような造語らしい 2+2 表現も、現在のルールでは扱いません。
この方針は、日本語の複合名詞では名詞連続が生産的に作られ、構成要素間の関係や構造の曖昧さが問題になる、という複合名詞解析の研究を参考にしています。
詳細な検討は 熟語・四漢字複合語チェックの難しさと手法 にまとめています。
参考:
- https://cir.nii.ac.jp/crid/1570572702172799744
- https://arxiv.org/abs/cmp-lg/9412008
- https://www.cl.c.titech.ac.jp/_media/publication/601.pdf
- https://www.jstage.jst.go.jp/article/jnlp1994/12/3/12_3_19/_pdf/-char/ja
npm install textlint-rule-no-ambiguous-process-noun-chain{
"rules": {
"no-ambiguous-process-noun-chain": true
}
}{
"rules": {
"no-ambiguous-process-noun-chain": {
"allow": ["実装設計"],
"relationNouns": ["方針", "計画", "予定"],
"processNouns": ["設計", "実装", "開発", "運用", "保守", "検証", "評価", "分析"]
}
}
}許可する四漢字表現の配列です。
実装設計の方針 の 方針 のように、直前の動作名詞連結を受ける名詞です。デフォルトは ["方針", "計画", "予定"] です。
実装 や 設計 のように、互いに並ぶと工程の列挙にも見えやすい動作名詞です。デフォルトは ["設計", "実装", "開発", "運用", "保守", "検証", "評価", "分析"] です。