2013年6月アーカイブ

 前項で述べたように、学習辞書を作ってそれを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;

 まず学習辞書であるが、これはよくある文字読み取りの間違いをパターン化して一括検索・置換するもので、リストのかたちで保存できるから、再利用が可能である。この辞書の中身を充実させていけばいいのである。まず「検索」メニューから「検索・置換」を選択すると「検索・置換」ダイアログが表示されるので、検索したい文字列と置換したい文字列をそれぞれ入力する。ダイアログの右下にある「リスト置換」をクリックすると「置換リスト」が表示され、「追加」ボタンをクリックするとリストに登録される。必要な追加があれば、この作業を繰り返し、最大100組までの登録が可能である。右下の「リスト変更」ボタンをクリックして「名前を付けて保存」を選び、適当なファイル名をつければ、デフォルトでは「マイドキュメント」フォルダの「medeadrive」内の「e.Typist User Data」フォルダに「*.lst」の形式で保存され、呼び出すことができるようになる。このファイルは実体はタブ区切りのテキストデータなので、簡単に作成することもできる。
 ちなみにわたしがかつて紀伊國屋NetLibrary用に『宮本常一著作集』をOCRで読み取りしたときに作った「miyamoto.lst」という学習辞書(一括処理ファイル)が見つかったので、ご参考までに提示しておこう。これは古い活字を読み取るときによく起こる読み違いを拾い出したもので、あまり一般性がないので、あくまでも一例にすぎないことをくれぐれもお断りしておく。

=一 一二
劇軽 剽軽
:: ......
食ぺ 食べ
手ぱな 手ばな
むつかし むづかし
たぺ たべ
・:・ ......
ぺき べき
人聞 人間
 「
、 「 、「
、 一 、一
。 一 。一
。。
=ハ 一六
曲豆
、 『 、『
。 ( 。(
。 『 。『
胴子 舸子
仲問 仲間
一一
成皿
一っ 一つ
』 ( 』(
入月 八月
民聞 民間
祈疇 祈祷
村入 村人
仲聞 仲間
民問 民間
'
 『
飢謹 飢饉
まア まァ
ゃア ゃァ
はア はァ
なア なァ
一べん 一ぺん
豆殴 豆酘
庖瘡 疱瘡
年聞 年間
)

 左側が検索文字列、右側が置換文字列である。ご覧いただけばすぐわかるように、句読点やカッコ類の問題や単純な読み違え(たとえば「人間」を「人聞」とするなど)、さらにひとつの文字を分解して読んでしまう例(「豊」を「曲豆」と読むなど)があり、なかなかおもしろいが、笑ってもいられない。こういう間違いを集めておいて一括処理すれば、かなり手間が省けるのである。何パターンもリストを作っておいて使い分けるのもひとつの方法だろう。

 最近の著者の原稿はほとんどデータによるものが多くなったことはこれまでも何度も書いてきたが、とはいえ、書いた時期が古かったり、データ保存ができていなかったり、その他いろいろな事情があって、印刷されたものがあってもデータがない場合もけっこうあるのも事実である。本や雑誌などからデータを復元する必要があることもめずらしくないのである。
 こうした場合、以前だったら原稿をわざわざ入力し直すことが普通だったが、最近は市販されているOCRソフト(Optical Character Recognition:光学文字認識)も性能が良くなってきて、かなりの精度でテキストを取り出すことができるようになってきた。そこで今回は、こうした原稿からテキストデータを作成する方法を紹介しておきたい。この方法を使うことによって効率よくデータを取り出すことができるので、きわめて実用的だからである。
 まず、わたしが使っているOCRソフトはメディアドライブ社のe.Typistという市販ソフトである。ほかにはエプソン社の「読んde!!ココ」とかパナソニックの「読取革命」とかがあるが、最新情報では「読んde!!ココ」は開発終了したようである。以前、いろいろ使い勝手を比較してみたことがあるが、すくなくとも出版編集用にはこのe.Typistがいちばんいいのではないかという結論に達して導入した経緯がある。したがって、ここで紹介するのはこのソフトを使ったものであることをあらかじめことわっておきたい。もっとも、これもいろいろ問題がないわけではないので、不具合を一括処理するような後処理が必要で、言ってみれば、この後処理のテクニックがほんとうに使い物になるかどうかの目安となるのではないかと思う。
 以下に簡単に操作方法を書いておく。
 まずは読み取りたいページをスキャンして「jpeg」形式または「TIFF(Tagged Image File Format)」形式でファイル保存する。通常は「jpeg」形式で十分である。つぎにe.Typistを起動して「ファイル」メニューから「画像ファイルを開く」を選択し、読み込まれた画像ファイルの必要な文字部分をマウスで範囲選択する。つぎに「文字認識」をクリックすると、元の画像が左側に、読み取られた文字データが右側に現われる。さらに「ファイル」メニューから「OCR作業ファイルの保存」を選ぶと適当なファイル名をつけて保存できるし、同じように「テキスト─名前を付けて保存」を選択し適当なファイル名を付けてテキストを保存することができる。通常はこれを加工すればいいのだが、その前にOCR作業ファイルで画面を見ながら修正をすることもできる。作業ファイルの右側(読み取り側)で間違った文字を選択すると、それの変換候補の文字群が出てくるので、そこをクリックすれば変換できる。候補になければ入力すればいいのである。
 OCRソフトは文字を画像データとして判読するので、OCRならではの誤読がたくさん出てしまうのは避けがたい。これをひとつひとつ処理していくのでは、はなはだ非効率なので、一括処理をする方法を鍛えなければならない。それをOCR作業ファイル上で「学習辞書」を作って処理する方法と、テキストデータ上でマクロなどを作って一括処理する方法と、おおきく言って2種類ある。つぎにそれを説明しよう。

このアーカイブについて

このページには、2013年6月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2013年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。