1
1
# textlint-rule-no-doubled-joshi [ ![ Build Status] ( https://travis-ci.org/textlint-ja/textlint-rule-no-doubled-joshi.svg?branch=master )] ( https://travis-ci.org/textlint-ja/textlint-rule-no-doubled-joshi )
2
2
3
- 文中に同じ助詞が複数出てくるのをチェックする [ textlint] ( https://github.com/textlint/textlint " textlint " ) ルールです。
3
+ 1つの文中に同じ助詞が連続して出てくるのをチェックする [ textlint] ( https://github.com/textlint/textlint ) ルールです。
4
4
5
- 例)
5
+ 文中で同じ助詞が連続すると文章が読みにくくなります。
6
+
7
+ 例) ** で** という助詞が連続している
6
8
7
9
> 材料不足で代替素材で製品を作った。
8
10
9
- ** で** という助詞が一文で複数回でてきているのをチェックすることができます。
11
+ ** で** という助詞が1つの文中に連続して書かれているのをチェックすることができます。
12
+
13
+ ** OK** :
14
+
15
+ ```
16
+ 私は彼が好きだ
17
+ オブジェクトを返す関数を公開した
18
+ これがiPhone、これがAndroidです。
19
+ これがiPhone,これがAndroidです。
20
+ 言うのは簡単の法則。
21
+ ```
22
+
23
+ ** NG** :
24
+
25
+ ```
26
+ 私は彼は好きだ
27
+ 材料不足で代替素材で製品を作った。
28
+ 列車事故でバスで振り替え輸送を行った。
29
+ 法律案は十三日の衆議院本会議で賛成多数で可決され、参議院に送付されます
30
+ これは`obj.method`は何をしているかを示します。
31
+ これとあれとそれを持ってきて。
32
+ ```
10
33
11
34
12
35
## Installation
@@ -55,48 +78,65 @@ textlint --rule no-doubled-joshi README.md
55
78
" !" , // exclamation mark
56
79
" ?" , // (ja) 全角 question mark
57
80
" !" // (ja) 全角 exclamation mark
81
+ ],
82
+ " commaCharacters" : [
83
+ " 、" ,
84
+ " ," // 全角カンマ
58
85
]
59
86
}
60
87
}
61
88
}
62
89
```
63
90
64
- - ` min_interval ` (default: ` 1 ` ) : 助詞の最低間隔値
91
+ - ` min_interval ` : 助詞の最低間隔値
92
+ - Default: ` 1 `
93
+ - 指定した` min_interval ` 以内にある同じ助詞は連続しているとみなされます
65
94
- 指定した間隔値以下で同じ助詞が出現した場合エラーが出力されます
66
- - ` strict ` (default: ` false ` ) : 例外もエラーとするかどうか
95
+ - ` strict ` : 厳しくチェックするかどうか
96
+ - Default: ` false `
67
97
- 下記参照。例外としているものもエラーとするかどうか
68
- - ` allow ` (default: ` [] ` ) :複数回の出現を許す助詞
98
+ - false-positiveが発生しやすくなります
99
+ - ` allow ` : 複数回の出現を許す助詞
100
+ - Default: ` [] `
69
101
- 並立の助詞など、複数回出現しても無視する助詞を指定します
70
102
- 例) ` "も" ` を許可したい場合は ` { "allow": ["も"] } `
71
- - ` separatorCharacters ` (default: ` [".", ".", "。", "?", "!", "?", "!"] ` ) : 文の区切り文字として使用する文字の配列
103
+ - ` separatorCharacters ` : 文の区切り文字の配列
104
+ - Default: ` [".", ".", "。", "?", "!", "?", "!"] `
72
105
- ` separatorCharacters ` を設定するとデフォルト値は上書きされます
73
106
- ` 。 ` のみを文の区切り文字にしたい場合は。` { "separatorCharacters" : ["。"] } ` のように指定します
107
+ - ` commaCharacters ` : 句点となる文字の配列
108
+ - Default: ` ["、", ","] `
109
+ - 読点として認識する文字の配列を指定します
110
+ - 読点は間隔値を+1する効果があります
74
111
75
- ** min_interval ** について
112
+ ## 判定処理
76
113
77
- > 私 ** は ** 彼 ** は ** 好き
114
+ ある助詞(かつ品詞細分類)が、最低間隔値(距離)以内に連続して書かれている場合をエラーとして検出します
78
115
79
- この場合の、 ** は ** と ** は ** の間隔値は1
116
+ > 材料不足で代替素材で製品を作った。
80
117
81
- > 既存** の** 文と絵** の** 修正
118
+ この文中の助詞 ` で ` 同士の間隔値 は ` 1 ` となります。
119
+ デフォルトの最低間隔値(` min_interval ` )は` 1 ` となるなるため、このケースはエラーとして判定されます。
82
120
83
- この場合の、 ** の ** と ** の ** の間隔値は2( ** の ** の間に ** と ** がある)
121
+ > これはペンです。これは鉛筆です。
84
122
85
- ## 判定処理
123
+ この文は句点(` 。 ` )によって2つの文として認識されます。
124
+ そのため、それぞれの文では助詞` は ` は1度のみとなるためエラーとはなりません。
86
125
87
- ある助詞(かつ品詞細分類)が一致するものが、一定最低間隔値(距離)以下に書かれている場合を検出する 。
126
+ 句点は ` separatorCharacters ` オプションで指定できます 。
88
127
89
- [ 元ネタ ] ( https://github.com/redpen-cc/redpen/issues/460 " Doubled Joshi Validator · Issue #460 · redpen-cc/redpen ") は助詞が1文(センテンス)に2回以上でてきた際にエラーとしてる 。
128
+ このルールが助詞として認識するものは、次のサイトで確認できます 。
90
129
91
- 少し厳しすぎると感じたので、1文(センテンス)ではなく最低間隔値(距離)という概念を導入した
130
+ - [ kuromoji.js demo ] ( https://takuyaa.github.io/kuromoji.js/demo/tokenize.html " kuromoji.js demo ")
92
131
93
- > この書籍はJavaScriptのライブラリやツールにおけるプラグインアーキテクチャを見ていく事を目的としたものです
132
+ ### 句点での区切り
94
133
95
- この場合 "を" が最低間隔値2で並んでいるため、デフォルト設定ではエラーとしている 。
134
+ > これがiPhone、これがAndroidです 。
96
135
97
- 助詞にはどのようなものがあるかは次のサイトで確認できます。
136
+ 句点文字が助詞の間にある場合、間隔値は+1されます。
137
+ そのため、助詞` が ` の間隔値は` 2 ` となりデフォルトではエラーとなりません。
98
138
99
- - [ kuromoji.js demo ] ( http://takuyaa.github.io/kuromoji.js/demo/tokenize.html " kuromoji.js demo ")
139
+ 句点文字は ` commaCharacters ` オプションで指定できます。
100
140
101
141
## 例外
102
142
@@ -156,12 +196,6 @@ NG: 文字列**には**そこ**には***問題がある。
156
196
}
157
197
```
158
198
159
- ### "、"での区切り
160
-
161
- > 右がiPhone、左がAndroidです。
162
-
163
- "、"を間隔値+1としてカウントするため、上記の文章はデフォルトでは許容される。
164
-
165
199
## Tests
166
200
167
201
npm test
@@ -175,6 +209,7 @@ NG: 文字列**には**そこ**には***問題がある。
175
209
- [ 助詞の連続使用を避け分かりやすい文章を書こう! - 有限な時間の果てに] ( http://popoon.hatenablog.com/entry/2014/07/11/232057 " 助詞の連続使用を避け分かりやすい文章を書こう! - 有限な時間の果てに ")
176
210
- [ 作文入門] ( http://www.slideshare.net/takahi-i/ss-13429892 " 作文入門 ")
177
211
- [ 形態素解析ツールの品詞体系] ( http://www.unixuser.org/~euske/doc/postag/index.html#chasen " 形態素解析ツールの品詞体系 ")
212
+ - [ Redpenの実装] ( https://github.com/redpen-cc/redpen/issues/460 " Doubled Joshi Validator · Issue #460 · redpen-cc/redpen ")
178
213
179
214
## Related Libraries
180
215
0 commit comments