ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

ScanSnap ManagerのPDFテキスト認識機能で検索可能なPDFにし、テキストデータを生成する

leave a comment »

Kindleは初期バージョンと第二世代のいわゆるKindle 2は英語以外のフォントが入っていないので、日本語のテキストファイルを読むことはできない。またファイル名も日本語では読めず、ファイルの一覧表示では日本語の文字は全て四角形、いわゆる「豆腐で表示される」というものになる。第三世代のKindle 3からは日本語を含め他国後フォントが入っているので日本語テキスト文書が読めファイル一覧も日本語で表示されるはずだが、俺はまだ実際に確認していない。Kindleも廉価版のKindle 4、従来のようなキーボード付きのKindle Kyeboard、カラー多機能型のKindle Fireとラインナップが充実しているので、日本語フォントの実際を試したいこともあり、新しいものが欲しくなる。

ところでKindleは日本語フォントの入っていない初期型、Kindle 2、そしてKindle DXでも、PDFファイルにすれば日本語の本も読むことができる。PDFはいわば文字が画像のように扱われているので、表示する機器の言語対応がどうであれ、ちゃんと表示することができるのだ。ある意味で書籍を電子化して読むためには、本をそのまま見ているかんじになるので、現時点ではPDFが最もよいと言えるのかもしれない。そして今後はXPSの普及に期待するのはもちろんだ。

しかし文庫本をPDF化したとき、ページ全体のサイズがKindle 2では少し面積が小さすぎる。したがって文庫本をPDF化してKindle 2で見ると、本来の文庫本の文字よりもさらに若干小さくなってしまうのだ。最近の文庫本は昔に比べてフォントを少し大きめにとっており、ある程度の解像度できちんとスキャンすれば、多少フォントが縮小されても読むのに支障があるほどではない。ちなみに俺はScanSnapで文庫本をスキャンするとき、300dpiの白黒二階調でPDF化している。いまのところこれがベストプラクティスだ。

しかし少し暗いところで本を読みたいときなど、Kindle 2では文字の大きさに不満がある。そこで最近はもっぱら大判のKindle DXを使うことが多い。Kindle 2のディスプレイサイズが6インチで600×800ピクセルであるのに対して、Kindle DXのディスプレイは9.7インチで824×1200ピクセルである。文庫本のPDFを9.7インチに表示すると、実に読みやすい。

しかしKindle DXにも不満はある。重いのだ。重い、といってもKindle DXは545gしかないのだが、Kindle 2は290gであり、やはりこの差は大きい。290gのKindle 2は片手で長く持っていても疲れを感じることがないが、Kindle DXを片手でずっと持っているとやぱり腕が疲れてくる。

そこで、やはり、文庫本をスキャンした後、文字を日本語テキスト化し、日本語フォントの入ったKindleで読むことを試したくなった。テキストにして機器が持っているフォントで表示させるようにすれば、文字の大きさを変えて読むことができるはずだからだ。

イメージスキャナで画像として取り込まれたものをテキスト化するには、いわゆるOCRという機能を持ったソフトウエアが必要である。OCRのソフトウエアはもうここ10年近く使ったことがないのだが、ScanSnapのイメージ取り込みソフト、ScanSnap Managerの設定を見ると「テキスト認識」という機能がある。これはドキュメントをスキャンしてPDFに保存するときに、文字をテキスト認識してPDFに埋め込み、いわゆる「透明テキスト付き」のPDFを生成できるようになるものだ。これを試してみた。

Scan_Snap_Setup_001

<Fig.1 : ScanSnap Managerのファイル形式オプション>

ScanSnap Managerのテキスト認識機能は「ファイル形式」オプションで設定する。「ファイル形式」タブを開き「テキスト認識の選択」で「検索可能なPDFにします」をチェックするよいのだが、このとき「テキスト認識には、非常に時間がかかる場合があります。」といったメッセージが表示される。OCR文字認識には時間がかかるのだ。

Scan_Snap_Setup_001_2

<Fig.2 : ScanSnap Managerで「検索可能なPDFにします」オプションをチェックする>

テキスト認識オプションで「検索可能なPDFにします」をチェックすると、対象言語の選択と対象ページが先頭ページのみなのか全ページなのかを選択できる。

Scan_Snap_Setup_004

<Fig.3 : ScanSnap Managerで検索可能なPDFにしますオプションをチェックした>

対象言語は「日本語」、対象ページは「全ページ」でスキャンする。文庫本を裁断し、150ページ分つまり75枚をScanSnapの給紙トレイに装填しスキャンをはじめる。

まずページ全部が読み込まれてスキャンし、画像として取り込まれる。このスキャンには2分6秒かかった。ちなみに「検索可能なPDFにします」オプションをチェックしないでスキャンすると2分5秒であり、画像スキャンにかかる時間はほぼ同じだ。

スキャンが終われば引き続いてテキスト認識が行われる。

Scan_Snap_Setup_005

<Fig.4 : ScanSnap Managerでテキスト認識を実行している(その1)>

Scan_Snap_Setup_007

<Fig.5 : ScanSnap Managerでテキスト認識を実行している(その2)>

Scan_Snap_Setup_008

<Fig.6 : ScanSnap Managerでテキスト認識を実行している(その3)>

このテキスト認識プロセスは結構時間がかかる。150ページの認識にかかった時間は6分8秒だった。単純にPDF化するだけなら2分5秒でよかったので、ほぼ3倍の時間がかかったことになる。

同じ本を「検索可能なPDFにします」オプションをチェックしないでスキャンとチェックしてスキャンの両方をやってみた。「検索可能なPDFにします」オプションをチェックするとOCR認識されたテキストがPDFに埋め込まれるので、ファイルサイズは少し大きくなる。

Scan_Snap_Setup_009_mid_640_480

<Fig.7 : ScanSnap Managerで「検索可能なPDFにします」オプションをチェックする、しないでPDF化したファイル>

一冊の本を150ページずつスキャンした結果、ファイルサイズは次のようになった。

1ページから150ページ
テキスト認識なし 6,728KB
テキスト認識あり 6,903KB
151ページから300ページ
テキスト認識なし 6,587KB
テキスト認識あり 6,757KB
301ページから450ページ
テキスト認識なし 6,517KB
テキスト認識あり 6,687KB
451ページから最後のページ
テキスト認識なし 3,845KB
テキスト認識あり 3,949KB

さてこのテキスト認識はどの程度のものだろうか。テキストファイルにして保存し、もとの本と比べてみる。すると明らかにおかしい部分がすぐにみつかる。たとえばつぎのようなところだ。

アンドリュー・クラヴァン「秘密の友人」のPDF_005

<Fig.8 : ScanSnap Managerでテキスト認識をしてテキスト形式で保存した>

メモ帳でフォントを22ポイントにし、読みやすくして表示する。「ぷたじやき」とはなんだろう。意味がとおらないのでPDF化したもとの文庫本をチェックする。すると次のようなものだった。

アンドリュー・クラヴァン「秘密の友人」のPDF_001_mid_640_480

<Fig.9 : もとの文庫本のPDF画面(1)>

アンドリュー・クラヴァン「秘密の友人」のPDF_004_mid_640_480

<Fig.10 : もとの文庫本のPDF画面(2)>

テキスト認識された「ぷたじやき」というのは「蓋(ぶた)」と「邪気(じゃき)」のふりがなが認識されたものだった。つまりScanSnap Managerのテキスト認識機能では、本文にふりがながあったとき、それをそのまま文として認識してしまうのだ。

つまり書籍のスキャンにおけるテキスト認識のOCRについては、単に印刷された活字を正確にテキストに変換するというだけでなく、レイアウトも分析して本文だけをテキストにするという処理が必要なのである。

書籍を画像としてPDF化することは簡単だ。しかしテキスト認識のOCR処理は奥が深いことがわかるだろう。ここではScanSnap Managerの付加機能を使ってテキスト認識してみたが、OCR専用のソフトウエアも試してみたくなった。よい方法がみつかったら、またここにレポートする。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。