RedPenを使って技術文書を手軽に校正しよう

第3回 文書執筆で気をつける点とRedPenを利用した予防方法

この記事を読むのに必要な時間:およそ 6.5 分

表現に関する機能

RedPenは文書の表現に関する規約を強制する機能をいくつか提供します。

不正な表現

文書を書くときには同じ意味を持つ専門用語が複数使われるべきではありません。たとえば次の文には問題があります。

分散システムの各インスタンスには役割が付与される場合がある。付与される役割は予め設定ファイルで決められることが多いが,動的に変化する分散型システムも存在する。

上の例では分散システム分散型システムという同一の内容を示すふたつの専門用語が使用されています※1)⁠同一の意味を持つ複数の専門用語が存在すると読者に不安感をあたえるため,ひとつの表現に統一するのが望ましいです。

RedPenは不正な表現を検知する機能をいくつかInvalidWordInvalidExpressionSuggestExpression提供します。これらの機能はあらかじめ登録された単語や表現が文中に現れた際にエラーを出力します。

InvalidWord機能は不正な単語が現れた際にエラーを出力します。つまり,トークナイザ(形態素解析器)で抽出された単語にたいしてチェックします。英語やヨーロッパ系の言語の単語分割はスペースで区切るだけなので単純です。しかし日本語のように単語の区切りがあいまいな言語では,単語が誤って抽出されてしまうおそれがあります。そのため日本語のように明示的に単語が分かれていない言語では,InvalidWord機能が期待したとおりに動作しないおそれがあります。

対象文書が日本語の場合にはInvalidExpressionとSuggestExpressionが利用できます。両者はともに入力文に不正な(単語区切りされていない)表現が出現したときにエラーを出力します。SuggestExpressionはエラーの内容にこの表現を利用したほうが望ましいというサジェストが含まれます。SuggestExpressionでサジェストされる表現は設定に記述する必要あるので少々面倒です。通常はInvalidExpressionで十分でしょう。

InvalidExpressionは不正表現のデフォルト辞書を持ちます。デフォルト辞書が十分ない場合にはユーザは辞書を拡張できます。

注:
上記最後の文は3ページ目でも引用として登場します。

次の例は,InvalidExpressionに不正な表現"嘘でしょ","マジで"を追加した設定となります。

<validators>
    <validator name="InvalidExpression">
      <property name="嘘でしょ,マジで" >
    </validator>
</validators>
※1
仮に分散システムと分散型システムの性質が異なる場合でも両者がどう違うのかについて説明が必要になります。
省略形の利用

省略形("Let's" や "we'll")はフォーマルな技術文書や論文では使用してはなりません。RedPenは省略形の使用という問題にたいしてContraction機能を提供します。Contraction機能は英語文書内で省略形の単語が存在した場合にエラーを出力します。Contraction機能を追加した設定例は次の通りです。

<validators>
    <validator name="Contraction" />
</validators>

スペースに関する機能

英語文書では単語だけでなくシンボルの前後に半角スペースを入れます。英語だけでなく日本語文書でも,半角シンボルを利用する場合には半角スペースをシンボルの前後(主に後ろ)に入れる規約が一般的です。特殊シンボル(括弧やピリオド)の後に半角スペースがないと,フォントによって読みづらく感じることがあるためです。私も学生時代書いた文書は半角シンボルを利用していたため,シンボルの前後にスペースを入れてました。

RedPenはシンボルの前後スペースの規約を強制する機能,SpaceWithSymbolを提供します。しかし,デフォルトの日本語のシンボル設定は全角文字の利用を想定してます。そのためSpaceWithSymbolは日本語文書にたいしてエラーを出力しません。

ユーザが半角シンボルを利用し,SpaceWithSymbolを動作させるには文字設定を変更する必要があります。具体的にはsymbolブロックを追加してデフォルトの設定を上書きします。symbolブロックのアトリビュートbefore-space=trueはシンボルの前に半角スペースが必要であることを示します。同様にafter-space=trueはシンボルの後ろに半角スペースが必要なことを示します。

次の例では,いくつかのシンボルについて前後のスペースに関する設定を変更しています。

<redpen-conf lang="ja">
    <validators>
        <validator name="SpaceWithSymbol" />
    </validators>
    <symbols>
        <symbol name="FULL_STOP" value="." after-space="true"/>
        <symbol name="COMMA" value="," after-space="true"/>
        <symbol name="EXCLAMATION_MARK" value="!" after-space="true"/>
        <symbol name="QUESTION_MARK" value="?" after-space="true"/>
        <symbol name="LEFT_PARENTHESIS" value="(" before-space="true"/>
        <symbol name="RIGHT_PARENTHESIS" value=")" after-space="true"/>
    <symbols>
 </redpen-conf>

単語の複数回利用

同一の単語が一文の中で複数回使われていると,悪い印象をもたれるおそれがあります。たとえば以下の文は本稿の前節のために書かれた文です。残念ながら"設定"という単語が2回も利用され,少々冗長な印象を受けます。

日本語のデフォルトの設定では全角シンボルを利用する設定になっているので,SpaceWithSymbolは日本語文書にたいしてエラーを出力しません。

そこで,本稿の最終検査で次のように書きなおしました。

デフォルトの日本語のシンボル設定は全角文字の利用を想定してます。そのためSpaceWithSymbolは日本語文書にたいしてエラーを出力しません。

RedPenが提供するDoubledWord機能は1文に複数回単語が出現した際にはエラーを出力します。ただし文書の主題にあたるキーワードは1文で複数回利用されることは当然あります。

たとえば,本稿でもRedPenという単語が1文で2回現れている文が存在します。そこでDoubledWord機能は例外単語列をサポートしています。例外単語列に登録された単語は複数回出現してもエラーは出力されません。以下,本連載の第2回を執筆する際に使用したDoubledWord機能の設定例です。

<validator name="DoubledWord">
  <property name="list" value="redpen,文書,機能,文,長,シンボル"/>
</validator>

上の例では例外単語列に"redpen","文書"などの単語が追加されています。これらの単語は文書の主題ですので,1文で2回以上利用されることを許しました。

単語の連続使用

前節で解説したように1文で複数回同一単語が利用されていても,その単語が主トピックであったり助詞であれば問題ありません。しかし同一の単語が連続で現れた場合は,まちがいなく問題です。

そこでRedPenはDoubledWord機能とは別にSuccessiveWord機能を提供します。SuccessiveWord機能は,DoubledWord機能のデフォルト辞書やユーザが追加した例外列に存在する単語であってもエラーを出力します。実はこのSuccessiveWord機能は私のお気に入りで※2)⁠何度も助けてもらいました。

※2
ちょっとした変更の時にまちがえて助詞が連続してしまう誤りを,私はよくやってしまうのです。

著者プロフィール

伊藤敬彦(いとうたかひこ)

ソフトウェアエンジニア。専門はデータマイニングと情報検索だが,他にも色々やってみたいと感じている。