Skip to content

textlint-ja/textlint-rule-ja-unnatural-alphabet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

textlint-rule-ja-unnatural-alphabet Actions Status: test

不自然なアルファベットを検知するtextlintルール。

IMEの入力ミスによるtypoを見つけるルールです。

{日本語}{アルファベット}{日本語}のように不自然な形でアルファベットが登場した場合をチェックしていないかをチェックしています。

Example

OK:

リリース
aiueo
This is pen.

NG:

リイr−ス
対応でkない

Install

Install with npm:

npm install textlint-rule-ja-unnatural-alphabet

Usage

Via .textlintrc(Recommended)

{
    "rules": {
        "ja-unnatural-alphabet": true
    }
}

Via CLI

textlint --rule ja-unnatural-alphabet README.md

Options

  • allow: string[]
    • 無視するアルファベットや単語の配列
    • デフォルト: ["a", "i", "u", "e", "o", "n", "/[A-Z]/"]
    • デフォルトでは母音とn、大文字のAからZを例外として取り除いている
    • "/正規表現/" のようなRegExp-like Stringもサポートしています
{
    // 無視するアルファベット
    // 例) ["r"]
    // デフォルトでは母音とn、大文字のアルファベットを除外
    // 単独の大文字のアルファベットは入力ミスでは発生しにくため
    "allow": [
        "a", "i", "u", "e", "o", "n",
        "/[A-Z]/"
    ],
    // ビルトインの典型例を除外するかどうか
    // 例) C言語
    "allowCommonCase": true
}

allow: string[]

allowオプションには、エラーとしたくない文字列またはRegExp-like Stringを指定できます。 RegExp-like String//で囲んだ正規表現ライクな文字列です。詳細は次を参照してください。

たとえば、アンドロイドnを購入するという文章は{日本語}{アルファベット}{日本語}のルールに該当するためエラーとなりますが、allowオプションではエラーを無視するように設定できます。

{
    // 無視する設定を追加
    "allow": [
        "アンドロイドn"
    ]
}

同様にRegExp-like Stringを使うことで、allowオプションに正規表現のような指定が可能です。

⚠️ RegExp-like Stringは文字列で正規表現リテラルを書くため、\dのような特殊文字は"\\d"とエスケープする必要があります。

次の設定はアンドロイド{アルファベット}は問題ないとしてエラーにしません。

{
    "allow": [
        // RegExp-like String は `/` と `/` で囲む
        "/アンドロイド[a-zA-Z]/"
    ]
}

参考文献

(3) 不自然なアルファベット

  • 1文字のみのアルファベットが日本語中に現れた場合に検出対象とする
  • 大文字は、略記号などを意識して入れている可能性がある
  • このミスでは母音(aiueo)は発生しないので除く
  • nも多くの場合には、となるため除く

CiNii 論文 -  日本語文章校正ツール"Chanterelle" : 入力ミス及び表記揺らぎについてより

Changelog

See Releases page.

Running tests

Install devDependencies and Run npm test:

npm i -d && npm test

Contributing

Pull requests and stars are always welcome.

For bugs and feature requests, please create an issue.

  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

Author

License

MIT © azu