今回は、
文書執筆に関する書籍
文書を書く上で気をつける点
英語でも決定版と言える本があります。
今回解説するトピックの多くは文書執筆に関する書籍で共通して記載されている内容です。
文書の執筆で気をつける点とRedPenの設定
本節では、
長さに関する規約
RedPenは長さに関する規約を強制する機能をいくつか提供しています。
文長
文書執筆に関する本にすべてに共通して述べられているのは文は短くという点です。私が文書の校正をお手伝いするときには、
文長をおさえるために、
<validators>
<validator name="SentenceLength>
<property name="max_len" value="120"/>
</validator>
</validators>
文以外の長さ
RedPenでは文長以外に節、
カンマの数
カンマは適切なタイミングで付与すると読者が文を理解するのに役立ちますが、
シンボルの統一
句読点や括弧などの利用するシンボルが統一されていないと、
これらシンボルの統一のために、
シンボル設定の変更
デフォルトの設定を上書きしてシンボルの非統一を検知してみましょう。必要な記述は利用するシンボルと使用してはいけないシンボル
<redpen-conf lang="ja">
<validators>
<validator name="InvalidSymbol" />
</validators>
<symbols>
<symbol name="FULL_STOP" value="." invalid_chars="。."/>
</symbols>
</redpen-conf>
上の例をみるとわかるように、
スペルチェック
RedPenは単語のスペルチェックに関する機能をいくつか提供しています。
カタカナ
カタカナ単語のスペリングに関してRedPenはふたつの機能を提供しています。ひとつはKatakanaSpellCheck機能です。KataKanaSpellCheckはカタカナ単語のスペリングを検査します。もうひとつはKatakanaEndHyphen機能で、
例えば、
RedPenでスペルチェックに関する機能を追加する設定は次の通りです。
<validators>
<validator name="KatakanaSpellCheck" />
<validator name="KatakanaEndHyphen" />
</validators>
英語
RedPenはカタカナ以外に英単語のスペルチェック機能
Spelling機能は辞書をベースにスペルチェックをおこないます。そのため辞書に収録されていないような専門用語が出現するとエラーとなってしまうおそれがあります。そのような場合にはlistプロパティに例外の単語列
Spelling機能とエクセプションリストの例は次の通りです。
<validators>
<validator name="Spelling">
<property name="list" value="Hadoop,SVM"/>
</validator>
</validators>
上の例ではHadoopとSVMが例外単語として登録されています。
表現に関する機能
RedPenは文書の表現に関する規約を強制する機能をいくつか提供します。
不正な表現
文書を書くときには同じ意味を持つ専門用語が複数使われるべきではありません。たとえば次の文には問題があります。
分散システムの各インスタンスには役割が付与される場合がある。付与される役割は予め設定ファイルで決められることが多いが、動的に変化する分散型システムも存在する。
上の例では分散システムと分散型システムという同一の内容を示すふたつの専門用語が使用されています
RedPenは不正な表現を検知する機能をいくつか
InvalidWord機能は不正な単語が現れた際にエラーを出力します。つまり、
対象文書が日本語の場合にはInvalidExpressionとSuggestExpressionが利用できます。両者はともに入力文に不正な
InvalidExpressionは不正表現のデフォルト辞書を持ちます。デフォルト辞書が十分ない場合にはユーザは辞書を拡張できます。
- 注:
- 上記最後の文は3ページ目でも引用として登場します。
<validators>
<validator name="InvalidExpression">
<property name="嘘でしょ,マジで" >
</validator>
</validators>
省略形の利用
省略形
<validators>
<validator name="Contraction" />
</validators>
スペースに関する機能
英語文書では単語だけでなくシンボルの前後に半角スペースを入れます。英語だけでなく日本語文書でも、
RedPenはシンボルの前後スペースの規約を強制する機能、
ユーザが半角シンボルを利用し、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>
単語の複数回利用
同一の単語が一文の中で複数回使われていると、
日本語のデフォルトの設定では全角シンボルを利用する設定になっているので、SpaceWithSymbolは日本語文書にたいしてエラーを出力しません。
そこで、
デフォルトの日本語のシンボル設定は全角文字の利用を想定してます。そのためSpaceWithSymbolは日本語文書にたいしてエラーを出力しません。
RedPenが提供するDoubledWord機能は1文に複数回単語が出現した際にはエラーを出力します。ただし文書の主題にあたるキーワードは1文で複数回利用されることは当然あります。
たとえば、
<validator name="DoubledWord">
<property name="list" value="redpen,文書,機能,文,長,シンボル"/>
</validator>
上の例では例外単語列に"redpen"、
単語の連続使用
前節で解説したように1文で複数回同一単語が利用されていても、
そこでRedPenはDoubledWord機能とは別にSuccessiveWord機能を提供します。SuccessiveWord機能は、
類似節
プログラムでは同じようなコードブロックを複数回書いているときには、
長い文書を書くと、
これは類似する節をひとつにマージするシグナルといえます。RedPenではDuplicatedSection機能を提供しています。DuplicatedSection機能は著しく似た内容をもつ節ペアを検出してくれます。DuplicatedSection機能からエラーが報告された場合、
英語の文末
英語の文末で気をつけないといけないにクォーテーションマークとピリオドの位置があります。アメリカ英語の文末規約では、
In this article, we'll call a computer server that works as a member of a cluster an "instance."
RedPenで文末の表現を検査するにはEndOfSentenceをvalidatorsに追加します。
<validators>
<validator name="EndOfSentence" />
</validators>
日本語文書内のアルファベット単語
日本語文書でも外来単語を記述する際に、
たとえば、
分散処理システム Hadoop は大量のデータを処理できる。
半角スペースをアルファベット単語の前後に入れる、
この問題にたいしてRedPenはSpaceBetweenAlphabeticalWord機能を提供します。設定にSpaceBetweenAlphabeticalWordを追加すると、
この記事の執筆に使用したRedPenの設定
今回の記事の原稿ももちろんRedPenで検査をしています。その際利用したRedPenの設定ファイルは次の通りです。
<redpen-conf lang="ja">
<validators>
<validator name="SentenceLength">
<property name="max_len" value="100"/>
</validator>
<validator name="InvalidSymbol" />
<validator name="CommaNumber" />
<validator name="InvalidExpression">
<property name="list" value="文章,プログラマ,検査ツール,幾つか,合わせて,対して,ポイント"/>
</validator>
<validator name="KatakanaEndHyphen"/>
<validator name="KatakanaSpellCheck"/>
<validator name="SectionLength">
<property name="max_num" value="1500"/>
</validator>
<validator name="ParagraphNumber">
<property name="max_num" value="10"/>
</validator>
<validator name="DoubledWord">
<property name="list" value="redpen,文書,機能,文,長,シンボル"/>
</validator>
<validator name="SymbolWithSpace" />
<validator name="SuccessiveWord" />
<!-- <validator name="SpaceBetweenAlphabeticalWord" /> -->
</validators>
</redpen-conf>
SpaceBetweenAlphabeticalWordがコメントアウトされているのは、
また、
実は今回の最終稿でも20件ほどのエラーが報告されています。たとえば、
デフォルト辞書が十分ない場合にはユーザは辞書を拡張できます。
単語"辞書"が1文に2回出現しています。表現を変更することも考えたのですが、
将来的にRedPenに指定した箇所のエラーを抑制する仕組みを導入したいと考えています。利用のイメージとしては、
現状対応できていない箇所と今後の機能追加
現在提供されている機能は、
とはいえ除々にではありますが、
- 日本語の調
日本語文書では大きく分けてふたつの調、
(ですます調とである調) が存在します。どちらを使っても問題ないのですが、 混じってしまうと悪い印象を与えます。本機能は文末の表現が混じってしまう場合にエラーを報告します。 - 語順
(品詞、 単語) - 品詞や単語の連続で不的確なものを検出します。たとえば、
"動詞"+"を (格助詞) "という語順はあきらかな誤りです。本機能は明らかな誤りとなる語順をルールとして登録しておき、 出現した際にエラーを出力します。