OCR for Linux
先日 (1) を書いたザウアーブルッフ(ザウエルブルッフ)の件を書き続けるために、いくつか資料を用意していた。ほとんどは英語で書かれた医学史専攻の研究者による論文なのだけど、ザウアーブルッフの伝記として世に出ているもので数少ない日本語の文献がふたつあって、そのうちのひとつがこれである:
『危ない医者たち』: ロバート・ヤングソン,イアン・ショット 著,北村 美都穂 訳,青土社 ,1997.
しかし、この本の訳がもうひどいったらない。訳者の北村氏は既に鬼籍に入られているとのことだが、イギリス人の英語を日本語にし切れていないのが見え見えのひどい文章である。あまりにひどいので、ロンドンの Robinson 社から出ている原著 "Medical Blunders" のペーパーバックを取り寄せていたのだが、先日ようやく送られてきた。
ザウアーブルッフに関する記述はだいたい14ページ位の量なのだけど、僕は医学系の研究者ではないので、たとえば "oesophagus"(食道 esophagus)なんて単語が出てくると、さすがに首を捻ることになる。こういうときには、Emacs 上で英語の文章をテキストとして開いて書き換えるように訳して、不明な単語は sdic + 英辞郎で確認する、という作業をすると間違いが少なくていいのだけど、そうなると、このペーパーバックの文章を電子化する作業が必要になってくるわけだ。
14ページだから、本気でやっていれば手で打ち込めない量ではない。しかし、さすがにこれは楽をしたいところだ……しかし、これだけのために全ページをスキャンして OCR にかけるというのも面倒な話である。それに手元にはフラットヘッドスキャナ(後記:これは間違い。フラットベッドスキャナ Flatbed Scanner が正しい)があるだけなので……うーん、どうしようか、と考えたのだった。
実は、フリーの OCR ソフトがないわけでもない。日本語の場合は、もう公開されていないけれど、かつては SmartOCR Lite Edition というのがあって、これは結構皆さん重宝されていたようだ。まあ、スキャンの手間もあるし、日本語で OCR が必要になるなら、外部業者にスキャン依頼した方が楽かもしれない。
では英語の場合は、というと、これが Linux で動くフリーのものが複数種存在する。今回は GNU Ocrad で作業を行うことにする。
まず、14ページの文書をスキャナで読み込み、pbm,pgm,ppm,pnm のいずれかの形式でセーブしておいて、
ocrad -F utf8 foo.pgm > foo.txtなどとすれば良い。標準出力に出てくるので、シェルスクリプトなどで大量のファイルを処理することも容易である。
で、さっそく変換してみると……うーん。変換精度が今一つ、という感じである。ペーパーバックなので紙質が悪くて画像にノイズが多いというのもあるのだけど、辞書チェックをがっつりかけているわけでもないようなので、それが大きいかもしれない。まあ、とりあえず全て電子化する作業を終えたけれど、校正するのがこれから一苦労、ということになりそうなので、ABBYY FineReader Engine CLI for Linux の trial version をこれから試してみようか、と思案中である。