前項で述べたように、学習辞書を作ってそれをe.Typistの作業ファイル上で走らせれば、ある程度までの修正は実現できる。
しかし、この学習辞書はひとつのファイルごとに100組しか作れないし、そもそも単純置換だから効率が悪い。これを高性能テキストエディタでマクロを作れば大量の一括修正ができるし、タグ付き正規表現を使うことによってより効率よく修正ができる。たとえば前項の例で言えば、「間」を「問」や「聞」と読み違えることが多いので、これを「\([入期空時月中仲人年民林]\)[問聞]→\1間」という検索・置換のセットを作るだけで11×2=22通りの間違いパターンを一括修正できるわけだ。句読点間のアキなどを削除するには「(全角スペース)\([「『(]\)→\1」とか「\([」』)]\)(全角スペース)→\1」などのセットで処理できる。正規表現についてはここではくわしく説明しないが、こうした置換セットをいくつも束ねてファイルにしたものがマクロファイルと呼ばれるものであって、これらは読み間違いをさらに発見したらそのつど増補していけば、精度はどんどん上がっていくはずである。
最終的にはさまざまな誤読があるので、マクロ処理だけですべて解決するわけではないが、こうした操作をあらかじめほどこしてしまえば、相当程度の修正ができるはずである。理論上は簡単だが、これは経験の集積がものをいうので、当面は99%の修正率をめざすことにして、以下に秀丸エディタを例にして作ったマクロを紹介しておこう。これはまったくの製作途上のものであるので、いまのところ精度はまだかなり低いものであることをお断りしておく。
//。のあとの改行を段落の終りと見なして次行の行頭にスペースを入れる(注:段落中に句点があり、カッコ類がくる場合も改行されてしまう欠点がある。)
replaceallfast "。\\n","。\n ",inselect,regular;
//ページの終りマークを削除する(注:e.Typistの場合、原稿のページ区切りに「[End of Page ......」という文字列が入るので削除するコマンド。)
replaceallfast "---------------------[End of Page \\f[0-9]+\\f\\]---------------------","",inselect,regular;
//不要な改行コードを一括削除する(注:原稿の一行ごとに強制改行が入るのを削除するコマンド。)
replaceallfast "\\n\\f[^ 「『]\\f","\\1",inselect,regular;
//単純置換
replaceallfast "!","!",inselect,regular;
replaceallfast "\\?","?",inselect,regular;
replaceallfast "\\(","(",inselect,regular;
replaceallfast "\\)",")",inselect,regular;
replaceallfast "...","......",inselect,regular;
replaceallfast "ぢ","ち★",inselect,regular;
replaceallfast " "," ",inselect,regular;
replaceallfast "、、","、",inselect,regular;
replaceallfast "[・、]兄","え★",inselect,regular;
replaceallfast "完壁","完璧",inselect,regular;
replaceallfast "揚\\f[合所]\\f","場\\1",inselect,regular;
replaceallfast "\\f[あかだ]\\fつ\\f[たて]\\f","\\1っ\\3",inselect,regular;
replaceallfast "\\f[しち]\\fや\\f[なる]\\f","\\1ゃ\\3★",inselect,regular;
replaceallfast "\\f[入期空時月中仲人年民林]\\f聞","\\1間★",inselect,regular;
replaceallfast " \\f[「『(]\\f","\\1",inselect,regular;
replaceallfast "\\f[」』)]\\f ","\\1",inselect,regular;
replaceallfast "曲豆","豊",inselect,regular;
replaceallfast "[→「]\\f[人方]\\f ","一\\1",inselect,regular;
replaceallfast "1","ー★",inselect,regular;
コメントする