SNS 等で文書を書くと、よく「お前の書く文章は誤字脱字が多い」とよく言われます。
おそらく私にはそのような特殊能力があるのかと思いますが、ブログだと見ている人から「お前誤字脱字多い」とはなかなか言われず、自分で気づかない限りは、誤字脱字のままかと思います。

この問題を解決するため、RedPen 1.9 ドキュメントルールを確認したところ、 RedPen には、SuggestExpression ルールがあり、語句を辞書として作成すれば、文言の統一はできそうですのでオレオレ辞書を作成して使用してみます。


SuggestExpressionオレオレ辞書の INPUT にする情報

オレオレ辞書の INPUT になりそうなものを調べたところ以下が見つかりました。


SuggestExpression制約

辞書内の文字列として正規表現は使用できないので、使用するのは諦めます。
正規表現で定義できなくても、表記揺れの統一は十分できると思います。


オレオレ辞書の作り方

オレオレ辞書の作成手順を記載します。

1. 辞書の選択、一次加工

azu/technical-word-rules: JavaScript 中心の IT 技術用語の Lint 用辞書リンクのある http://azu.github.io/technical-word-rules/all.json INPUT として使用し、python スクリプトで一次加工をしました。
一次加工の方針は以下の通りです。

  • 単純に文字列に変換可能な正規表現は文字列に置き換える。

  • 文字列組み合わせが定義された正規表現は、組み合わせパターン数でファイルサイズが大きくなってしまったため、変換を諦めた。

  • パラメータ $1含む文字列は、後で手動で変換を行うため、ファイル上であらかじめ分類しておく。

  • 期待値の末尾が 終わる文字列は、ルール KatakanaEndHyphen 競合する可能性があるので、ファイル上あらかじめ分類しておく

作成したスクリプトと、出力ファイルは、all.json から RedPen の SuggestExpression ルールの辞書ファイルを作成する
UP しましたのでそちらをご確認ください。1

2. 出力ファイルを手作業で編集

出力されたファイルを手で編集しました。
以下の作業を実施しています。

  • パラメータ $1含む文字列をざっくり変換。

  • ルール KatakanaEndHyphen競合しそうな行の除去、対象の文字列を KatakanaEndHyphen除外文字列として定義する。

  • 期待値が、使うべきではない<wbr>言葉なので<wbr>修正してください となる文字列を、InvalidExpression ルールの 辞書として定義する。

  • 除去しきれなかった正規表現を除去。

  • 編集した結果をソートして、重複する表現を除去。

最終的に出来上がった辞書ファイルは、all.json を一次加工後に、手作業で変換した RedPen の辞書ファイル UP しました。


使ってみた感想

2文字、3文字 の語句は文脈で変換して欲しい場合と、変換して欲しくない場合があります。
実際に使用して、細かいところを調整していきたいと思います。

以上です。


  1. 自信を持って、ひどいと言えるスクリプトです。 

コメント