同じ長さの文章を二本用意して gzip にかけると、決まり文句の多いほうが小さくなります。この種の圧縮は、直前までに出てきた並びと同じものを見つけて「何文字前のものを何文字ぶん繰り返す」という指示に置き換える仕組みを持っているので、繰り返しの多いテキストほど短い符号で表せる。文章の良し悪しを測っているわけではありません。測っているのは予測しやすさだけです。それでも、この数字は書き手にとって無関係ではない。
情報理論では、ある記号の自己情報量を、その生起確率 p に対して マイナス log p と定義します。確率が高いものほど情報量は小さい。日本語で「夢の」まで書かれたとき、次に来る語の分布はかなり偏ります。もし後続がほとんど一通りに決まるなら、続く数文字はほとんど何も運んでいない。ここで注意したいのは、情報量が小さいことは欠陥ではないという点です。予測できる部分があるからこそ、読者は全文を等しい注意で読まずに済む。楽譜の休符と同じで、密度の低い区間には配置の役割があります。
計算機の側から見ると、この五文字はもうひとつ扱いにくい性質を持っています。形態素解析器はこれを「夢」「の」「よう」「だ」といった単位に分割します。全文検索の索引は自立語を中心に作られるので、索引の上ではほぼ「夢」に還元される。ところが読者の側の処理単位は、単語ではなく連語です。この不一致は、検索の設計だけでなく、書き手が自分の癖を点検するときにも効いてきます。単語の頻度を数えても、決まり文句の反復は見えてこない。癖を見つけたければ、二語や三語の連なりの頻度を見るほうが早い。
日本語の全文検索には、単語に切らない索引の作り方もあります。文字を二つずつずらして登録していく方式で、この五文字なら、夢の、のよ、よう、うな、という四組が索引に入る。切れ目の判定をしなくて済むかわりに索引は大きくなりますが、切り方の失敗で語が丸ごと消えることがありません。連語をそのまま扱える点では、こちらのほうが読者の処理に近いと言えます。実務では二つの方式を併用することが多い——どちらか一方では、種類の違う取りこぼしが出るからです。原稿を点検するときの事情も同じで、単語に切ってから数えるか、切らずに並びのまま数えるかで、浮かび上がってくる癖が入れ替わります。
表層の並びと構造が食い違う例も、この付近には転がっています。「夢のような」と「夢のように」は、末尾の一字しか違いません。並べ替えも省略もなく、最後の一字を差し替えただけの関係です。それでも前者は名詞にかかり、後者は用言にかかる。プログラムの型で言えば、受け取れる引数の種類が違う別の関数です。文字の上での近さは、係り先の互換性を何も保証しない。編集距離で測れば一手、しかし型で見れば別物です。表記ゆれの吸収や類似語の提示を編集距離だけで組むと、この二つは同じものとして扱われます。距離が小さいことと、置き換えてよいことは、まったく別の判定なのです。推敲でこの二つを機械的に入れ替えると、係り先が宙に浮いた文が残ります。
最初の圧縮の話には続きがあります。gzip が過去の並びを探す範囲には上限があり、標準の設定では三十二キロバイトぶんの窓しか遡りません。それより前に同じ表現が出ていても参照先として使えないので、符号は縮まない。長編の原稿を一本のファイルとして食わせると、章をまたいだ反復の多くは窓の外へ落ちます。読者の側にも似た窓があるように思います。数ページ前の決まり文句は目につくのに、二百ページ前のものは照合されない。反復が咎められるのは反復そのもののせいではなく、窓の内側で二度目が起きたときです。だとすれば点検すべきは総数ではなく、隣り合う二つの間隔のほうだということになります。
配置の話に戻ります。圧縮率の高い表現は、地の文の中で読者の速度を上げる区間として機能します。問題は、それを山場に置いたときです。物語がもっとも情報を届けたい場所で、いちばん予測しやすい五文字が出てくる。読者の側では、そこだけ処理が軽くなり、結果として通り過ぎてしまう——いちばん止まってほしい場所で、いちばん速く読まれる。決まり文句を避けるべきかどうかという問いは、たいてい答えが出ません。かわりに、この五文字を使った箇所の位置を全部書き出して、山場との距離を見る。近すぎるものだけを書き換えれば足ります。判断の対象が表現の是非から座標に変わるので、書き手の好みが入り込む余地も減ります。