Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

textlint-rule-no-doubled-joshi

Package Overview
Dependencies
Maintainers
5
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

textlint-rule-no-doubled-joshi

textlint rule check doubled joshi

  • 5.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
39K
increased by1.49%
Maintainers
5
Weekly downloads
 
Created
Source

textlint-rule-no-doubled-joshi Actions Status: test

1つの文中に同じ助詞が連続して出てくるのをチェックするtextlintルールです。

文中で同じ助詞が連続すると文章が読みにくくなります。

例) という助詞が連続している

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

という助詞が1つの文中に連続して書かれているのをチェックすることができます。

OK:

私は彼が好きだ
オブジェクトを返す関数を公開した
これがiPhone、これがAndroidです。
これがiPhone,これがAndroidです。
言うのは簡単の法則。

NG:

私は彼は好きだ
材料不足で代替素材で製品を作った。
列車事故でバスで振り替え輸送を行った。
法律案は十三日の衆議院本会議で賛成多数で可決され、参議院に送付されます
これは`obj.method`は何をしているかを示します。
これとあれとそれを持ってきて。

Installation

npm install textlint-rule-no-doubled-joshi

Usage

Via .textlintrc(推奨)

{
    "rules": {
        "no-doubled-joshi": true
    }
}

Via CLI

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

Options

.textlintrc options.

{
    "rules": {
        "no-doubled-joshi": {
            // 助詞のtoken同士の間隔値が1以下ならエラーにする
            // 間隔値は1から開始されます
            "min_interval" : 1,
            // 例外を許可するかどうか
            "strict": false,
            // 助詞のうち「も」「や」は複数回の出現を許す
            "allow": ["も","や"],
            // 文の区切り文字となる配列
            "separatorCharacters": [
                ".", // period
                ".", // (ja) 全角period
                "。", // (ja) 句点
                "?", // question mark
                "!", //  exclamation mark
                "?", // (ja) 全角 question mark
                "!" // (ja) 全角 exclamation mark
            ],
            "commaCharacters": [
                "、",
                "," // 全角カンマ
            ]
        }
    }
}
  • min_interval: 助詞の最低間隔値
    • Default: 1
    • 指定したmin_interval以内にある同じ助詞は連続しているとみなされます
    • 指定した間隔値以下で同じ助詞が出現した場合エラーが出力されます
  • strict: 厳しくチェックするかどうか
    • Default: false
    • 下記参照。例外としているものもエラーとするかどうか
    • trueにすると誤検知が発生しやすくなります
  • allow: 複数回の出現を許す助詞
    • Default: []
    • 並立の助詞など、複数回出現しても無視する助詞を指定します
    • 例) "も"を許可したい場合は { "allow": ["も"] }
  • separatorCharacters: 文の区切り文字の配列
    • Default: [".", ".", "。", "?", "!", "?", "!"]
    • separatorCharactersを設定するとデフォルト値は上書きされます
    • のみを文の区切り文字にしたい場合は。{ "separatorCharacters" : ["。"] }のように指定します
  • commaCharacters: 句点となる文字の配列
    • Default: ["、", ","]
    • 読点として認識する文字の配列を指定します
    • 読点は間隔値を+1する効果があります

対応方法

修正方法としては、次のようなものがあります。

  • 助詞の書き間違いなので、別の助詞に置き換える
    • 例) 私は彼は好きだ私は彼が好きだ
  • 複数のことを1つの文で書いている可能性があるため、助詞が連続している文を分割する
  • 助詞で無理やり文を繋げている可能性があるので、文の中で順番を入れ替える
  • 助詞が不要なら削除して、文を簡潔にする
    • "実際に" などのように強調的な言葉を削除することで、助詞が不要になる可能性があります
    • 技術文書では簡潔な文章を心がけることが多いため、強調的な単語自体を削除することもあります

また、allowオプションで、特定の助詞が連続して出てくることを許可できます。

文自体を直す余地がない場合は、コメントなどを使ってエラーを無視してください。

判定処理

ある助詞(かつ品詞細分類)が、最低間隔値(距離)以内に連続して書かれている場合をエラーとして検出します

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

この文中の助詞 同士の間隔値 は 1 となります。 デフォルトの最低間隔値(min_interval)は1となるなるため、このケースはエラーとして判定されます。

これはペンです。これは鉛筆です。

この文は句点()によって2つの文として認識されます。 そのため、それぞれの文中での助詞は1度のみの出現となりエラーとはなりません。

句点となる文字列は separatorCharacters オプションで指定できます。

このルールが助詞として認識するものは、次のサイトで確認できます。

読点での区切り

これがiPhone、これがAndroidです。

読点文字()が助詞の間にある場合、間隔値は+1されます。 そのため、助詞の間隔値は2となりデフォルトではエラーとなりません。

読点文字は commaCharacters オプションで指定できます。

カッコでの区切り

次のescapeHTML関数はタグ関数です(詳細は文字列の章を参照)

括弧(())が助詞の間にある場合、間隔値は+1されます。 そのため、この例の助詞の間隔値は2となりデフォルトではエラーとなりません。

括弧記号はkuromoji.jsで定義されている記号を元に判定しています。

例外

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

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

助詞:連体化 "の"

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

助詞:格助詞 "を"

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

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

接続助詞:"て"

試しいただい

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

並立助詞

登ったり降りたりする

並立助詞(たり)が連続するのは、意図した助詞の使い方であるため許可します。

〜かどうか

これにするかどうか**検討する

このような場合、助詞()が連続していますが、"〜かどうか"表現は一般的であるため許可します。

📝 次のように書き換えることで、連続していない形にすることもできます。

これにするかを検討する

連語(助詞)

連語は一つの助詞の塊として認識します。

OK: 文字列の長さを正確**に**測る**には**ある程度の妥協が必要になります。
NG: 文字列**には**そこ**には***問題がある。

その他の助詞

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

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

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

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

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

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

Keywords

FAQs

Package last updated on 06 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc