textlint-ja / textlint-rule-ja-no-redundant-expression

冗長な表現をチェックするtextlintルール
MIT License
27 stars 3 forks source link

「することが可能」の類似表現 #7

Closed shirayu closed 5 years ago

shirayu commented 5 years ago

「することが可能」の冗長性は,

等でも同様にあります. 現在はことが{可能, できる}にマッチしますが, こと + { が,は,も } + { できる,出来る,可能,不可能}にマッチするように拡充できると考えます.

昔書いた論文を思い出したのでissueとして立てます. 「こと」を含む可能形は https://hayashibe.jp/publications/NL224.pdf のp.3の表2参照

shirayu commented 5 years ago

残りは

の対応です.

また合わせて読点の挿入にも対応できればと思います.

「不」や「、」の挿入を既存のルールの記述に微修正することで対応できればよいのですが,なにか良い方法は無いでしょうか?

azu commented 5 years ago

「不」や「、」の挿入を既存のルールの記述に微修正することで対応できればよいのですが,なにか良い方法は無いでしょうか?

方法としては2種類ありますね。

どっちがいいかはちょっと悩みどころですね。 今のmorpheme-match-allは先頭から順番にマッチしかしてないので、読み飛ばし的なものがないですね。 (どこに処理を寄せるかの問題な感じですね)

Tokenベースの正規表現のようなDSLって確立されてない印象なんですよね。 Redpenはrulevalidator.mdという感じのtoken + RegExpの辞書定義をやっていますね(前者を発展させた方向はこれですね)

shirayu commented 5 years ago

ありがとうございます. 後者は手軽に対処できるのがメリットですが,辞書が大きくなっていくと遅くなりそうなのがデメリットですね. 例えば,することは、?不?可能 からだと4つのルールが生成されてしまいます.

azu commented 5 years ago

まあ、おそらく最終的には前者のパターンで実装することにはなる気はしています。 morpheme-matchがあんまり考えて作らたものじゃないので、これを拡張するか作り直すかですね。

そういえば、正規表現で大雑把にマッチ + Tokenベースで厳密チェック という趣旨のものを以前書いてたのを思い出しました。(これは辞書で表現するというよりは、コードでマッチングを書いていく方向かな)

shirayu commented 5 years ago

ひとまず,マッチしない場合はskipできるような仕組みを入れました https://github.com/azu/morpheme-match/pull/2