文中に同じ助詞が複数出てくるのをチェックするtextlintルール
JavaScript
Latest commit 4de3c24 Jan 3, 2017 @azu azu 3.4.0

README.md

textlint-rule-no-doubled-joshi Build Status

文中に同じ助詞が複数出てくるのをチェックするtextlintルールです。

例)

材料不足で代替素材で製品を作った。

という助詞が一文で複数回でてきているのをチェックすることができます。

Installation

npm install textlint-rule-no-doubled-joshi

Require: textlint 5.0 >=

Dependencies

Usage

Via .textlintrc(推奨)

{
    "rules": {
        "no-doubled-joshi": {
            "min_interval" : 1,
            "strict": false,
            "allow": []
        }
    }
}

Via CLI

textlint --rule no-doubled-joshi README.md

Options

.textlintrc options.

{
    "rules": {
        "no-doubled-joshi": {
            // 助詞のtoken同士の距離が2以下ならエラー
            "min_interval" : 2,
            // 例外を許可するかどうか
            "strict": false,
            // 助詞のうち「も」「や」は複数回の出現を許す
            "allow": ["",""],
            // 文区切り文字の配列
            "separatorChars": ["",,"?","!","",""]
        }
    }
}
  • min_interval(default: 1) : 助詞の最低間隔値
    • 指定した間隔値以下で同じ助詞が出現した場合エラーが出力されます。
  • strict(default: false) :例外もエラーとするかどうか
    • 下記参照。例外としているものもエラーとするかどうか
  • allow(default: []) :複数回の出現を許す助詞
    • 並立の助詞など、複数回出現しても無視する助詞を指定します。
  • separatorChars(default: ["。","?","!","?","!"]) : 文の区切り文字として使用する文字の配列
    • ピリオドや全角ピリオドを句点とする文章を評価するときは明示的に指定します。

好き

この場合の、の間隔値は1

既存文と絵修正

この場合の、の間隔値は2(の間にがある)

判定処理

ある助詞(かつ品詞細分類)が一致するものが、一定最低間隔値(距離)以下に書かれている場合を検出する。

元ネタは助詞が1文(センテンス)に2回以上でてきた際にエラーとしてる。

少し厳しすぎると感じたので、1文(センテンス)ではなく最低間隔値(距離)という概念を導入した

この書籍はJavaScriptのライブラリやツールにおけるプラグインアーキテクチャを見ていく事を目的としたものです

この場合 "を" が最低間隔値2で並んでいるため、デフォルト設定ではエラーとしている。

助詞にはどのようなものがあるかは次のサイトで確認できます。

例外

以下の項目については、曖昧性があるため助詞が連続していてもデフォルトではエラーとして扱わない。

設定が { strict: true } ならばエラーとするが、デフォルトでは{ strict: false } となっている。

助詞:連体化 "の"

"の" の重なりは例外として許可する。

助詞:格助詞 "を"

オブジェクトを返す関数を公開する

"を" の重なりは例外として許可する。

接続助詞:"て"

試しいただい

接続助詞 "て" の重なりは例外として許可する。

その他の助詞

その他の助詞も例外として扱いたい場合は allow オプションを利用する。

デフォルトでは次の文はエラーとなる。

太字強調同じように無視されます。

オプションで"allow": ["も"]を指定することで、を例として扱うことができる。

{
    "rules": {
        "no-doubled-joshi": {
            // 助詞のうち「も」は複数回の出現を許す
            "allow": [""]
        }
    }
}

"、"での区切り

右がiPhone、左がAndroidです。

"、"を間隔値+1としてカウントするため、上記の文章はデフォルトでは許容される。

Tests

npm test

Reference

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

License

MIT