OCR認識後のテキストを「整形」する(1) | 特許翻訳 A to Z

特許翻訳 A to Z

1992年5月から、フリーランスで特許翻訳者をしています。

産業翻訳者のためのパソコン活用術 > ワイルドカード検索・置換
復刻シリーズです。

 

2000年代前半頃の記事から復刻させていますので、現在の環境で利用する場合は、事前にテストをしてください。

 

------------------

 

たとえば、5行ごとに行番号の入った英文があるとします。
OCRのプログラムには、どこが本文で、どこが行番号なのか、区別がつきません。
すべて、「文字」として扱われます。

このため、OCRでテキスト化した文字を選択すると、下の画像のようになります。



そのままコピーしてWordやエディタなどに貼り付けると、どうなるでしょう。



行番号の数字(画像中で赤字表記)が、文の中に混じってしまいます。
その上、もともとあったはずのタブ(黄色のハイライト位置)まで、落ちてしまいました。
タブはともかくとして、数字の混入は、困りますよね。

この数字を消したいときに、どうするか。
Wordのワイルドカード機能を使えば、簡単です。



検索する文字列には、
 

   ^13<([12350]{1,2})
 

と入れてあります。末尾の「)」の後ろに、見えませんが半角スペースが1つあります。

置換後の文字列は、半角スペース1つです。
(上の画像は、わかりやすいようカーソル位置に縦棒が入る形で取得しましたが、文字として縦棒を入れてあるわけではありません。)

そしてオプションの「ワイルドカードを使用する」にチェックをつけて、置換を実行します。
一括置換だと行番号以外のものがあったときに怖いという人は、「次を置換」でひとつずつ目視確認した上で置換すればよいと思います。

検索する文字列の意味は、

^13 = 改行
< = 単語の先頭
([12350]{1,2}) = 半角1、2、3、5、0のうち任意の1文字または2文字

です。
使用したデータに含まれる行番号が5、10、15、20、25、30、35でしたので、このように書きました。

もし、45まであるなら、
^13([123450]{1,2}) 
とすればよいでしょう。

単語の先頭を示す文字は、なくても構いません。ある意味での保険的な位置付けです。

改行記号を使っているのは、OCRテキストが各行末に改行を入れてくるからです。
置換後の文字列を半角スペース1つにすることで、この改行が消えます。

行番号だけを消して改行は残したいのなら、置換後の文字列は改行コード1つ(^13)にします。