RedPenでお手軽文書校正

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存

こんにちは。 リスペクトの木村です。

最近はプログラマでも、公私を問わず文章を書くという機会が増えてきています。
各種マニュアルやドキュメントはもちろん、最近では会社や個人の技術ブログを書いているという人も多いでしょう。

その中で気になるのは文章校正です。
文章によっては量が多く時間がかかる上、専門用語が多いため他部署に依頼するという事も中々難しいかと思います。

そこで、今回はRedPenを利用したお手軽な文章校正について紹介します。

今回の環境

  • Windows 7
  • Java(JRE) 1.8.0_91
  • RedPen 1.5.5

RedPenとは

lint的な機能を一般的な文章でも利用する事ができるオープンソースのソフトウェアです。

特徴としては下記のような感じです。

  • 柔軟な設定
    • 環境毎の細かい規約への対応が可能です。
  • 言語非依存
    • 英語や日本語などをサポートしています。
  • マークアップやLaTeXサポート
    • MarkdownやAsciiDocもそのまま利用可能です。
  • コマンドでの実行
  • JavaやJavaScriptによる機能拡張

一見するとコマンドからの利用のみに見えますが、redpen-serverを利用する事でブラウザやREST API経由での利用が可能です。

インストール

まずはここから本体をダウンロードして解凍します。 5/12時点では1.6.0がありますが、今回は1.5.5を利用します。

その後、コマンドプロンプトやPowerShellでbin/redpen -vを実行してバージョン番号が表示されれば利用可能な状態です。
実行時に、環境によっては下記のエラーが表示される場合があります。

Error: JAVA_HOME is not defined. Can not start RedPen

その場合は、メッセージに沿ってJAVA_HOMEの環境変数にインストール済みのJREへのパスを通して、再度実行してみてください。

ちなみに

インストールしなくてもこちらのデモ画面から試す事もできます。

起動する

先ほどredpenを起動した要領で、bin/redpen-serverでサーバを起動します。
Windowsの場合はstarting RedPen server [Ctrl-C to stop]...と表示されていれば起動完了です。
この状態でhttp://localhost:8080へアクセスすると下記のような画面が表示されます。

redpen_001

もし8080番以外へ変更する場合は、bin/redpen-server.batset REDPEN_PORT=8080の部分を希望するポート番号に変更します。

試しに使ってみる

表示されている画面では、緑枠に文章を入力すると赤枠に結果が表示されます。
左側では各種オプションが設定でき、デフォルトでは全てオンです。

最初は英語の例文が表示されていますが、上部のExamplesから様々な例文に切り替えられます。

redpen_002

試しに「JAPANESE MARKDOWN」を選ぶと日本語の例文に切り替わり、何件かエラーが表示されます。

redpen_003

エラーを解決するよう調整してみると、すぐにエラーが消えて無くなります。

redpen_004
(わかりにくいのですが、「サーバー」を「サーバ」に直したので、No.12のエラーが消えています。)

オプションを調整する

上記のようにオプションは全て有効です。
ですが、これだと使いにくいのでドキュメントやエラーの内容を参考に適切な値に調整します。
調整に使用する文章は、過去自分で利用した文章があれば良さそうです。

…という訳で、今までの記事をそのまま入れてみると大量のエラーとなりました。

redpen_005

この状態を元に、オプションの有効無効を切り替えたり引数を調整して自分好みにカスタマイズします。
複数文章があれば尚良しなので、様々な文章で試してみましょう。

様々なオプションを試し、今の所しっくりきているのは下記の設定です。

機能名 チェック内容 プロパティ
CommaNumber 1文で使用されるカンマの数がmax_numを越えていないかチェック max_num=3(最大3つ)
DoubleNegative 二重否定を利用していないかチェック
JapaneseStyle 「ですます調」と「である調」が混在していないかチェック
KatakanaEndHyphen JISでのカタカナ長音表記に従っているかチェック
KatakanaSpellCheck カタカナ単語のスペリングをチェック
Okurigana 送り仮名が一般的な用法と異なっていないかチェック
SectionLength 節で利用している単語の数がmax_numを越えていないかチェック max_num=1500(最大1,500個)
SentenceLength 各文の長さがmax_len以上になっていないかチェック max_len=150(最大1500文字)
SpaceBeginningOfSentence 文の間に半角スペースが存在しているかチェック
SuccessiveWord 同一の単語が連続して使われていないかチェック
WordNumber 一文で利用している単語の数がmax_numを越えていないかチェック max_num=60(最大60個)

(Okuriganaだけドキュメントに載ってませんでした…。)

コマンドやAPIでチェックする時に使用する設定用XMLファイルのように書くと、次のようになります。

<redpen-conf lang="ja">
   <validators>
      <validator name="CommaNumber">
         <property name="max_num" value="3">
      </validator>
      <validator name="DoubleNegative" />
      <validator name="JapaneseStyle" />
      <validator name="KatakanaEndHyphen" />
      <validator name="KatakanaSpellCheck" />
      <validator name="Okurigana" />
      <validator name="SectionLength">
         <property name="max_num" value="1500">
      </validator>
      <validator name="SentenceLength">
         <property name="max_len" value="150">
      </validator>
      <validator name="SpaceBeginningOfSentence" />
      <validator name="SuccessiveWord" />
      <validator name="WordNumber">
         <property name="max_num" value="60">
      </validator>
   </validators>
</redpen-conf>

特に、SectionLengthSentenceLengthについては個人差もありこれが最適とは限らないので、試行錯誤してみる事をおすすめします。

使ってみて気付いた所

Markdownに対応しているのは良いのですが、ここのリファレンスの書き方に沿っている必要があるようです。
そのため、引用とかテーブル表示と言った方言が含まれているとエラー表示がややこしくなります。
予め除外しておけば良いのですが、それだと自動でチェックをするような時は大変かもしれません。

また、バリデーション同士も相性(?)があるようです。
例えばHankakuKanaSpaceBeginningOfSentenceSpaceBetweenAlphabeticalWordを同時に有効にすると、半角スペースを入れた途端に「半角カナが存在する」というエラーが返ってきます。

おわりに

以上、ここまでがRedPenの紹介と簡単な使い方でした。
RedPenを使うとレビュー前にチェックしておく事で細かい所の間違いに気付く事ができます。 また、ルールを統一しておく事で誰が書いても読みやすい内容になるかと思います。

この記事もRedPenを使いつつ書きましたが、ただひたすら書くのではなく文章の長さを意識しながら書くようになりました。
見落としがちな書き間違えも見つけられましたので、効率よくかつある程度見やすく書けたのではないかと思います。
設定については定期的な見直しも必要そうですが、どんどん厳しめの設定にしてみるというのもアリな感じです。

ルールの細かい設定は必要ですが、今回紹介したようにブラウザからでもチェックできます。
環境さえ用意すれば誰でも使う事ができるので、是非お試しください。

現場からは以上です。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存