OCRのデータを電書用のテキストに変換する

国立国会図書館のOCRデータをepub3のリフロー型電子書籍にするためにテキスト化する下準備の覚え書き、が今回のエントリ。
印刷書籍から電子書籍にする時のボトルネックが「改行」処理。OCRうんぬんだけじゃなくて、インデザなんかのデータも一緒。
(いわゆる「空行」の扱いなんかも面倒くさい)

画像の出典:ボブ・ショウ 著 ほか『去りにし日々、今ひとたびの幻』,サンリオ,1981.10. 国立国会図書館デジタルコレクション https://dl.ndl.go.jp/pid/12632736 (参照 2026-04-08)
↑ このページをOCRで出力したテキスト↓

「一行」の扱い。
OCRでテキスト化したものは印刷書籍の「見た目の一行」が、そのまんま。
印刷書籍は「版面」という箱に、決まったサイズの文字を流しこんで並べるので問題はない。でも、電子書籍は「版面」みたいな決まった大きさの箱はなくて、文字サイズも決まっていない。
なもんで、見た目の一行通りに並べると、下のテキスト画像のように、文字の長さと表示部分の長さの不一致で無駄な余白が出たり、折り返しが不自然になったりする。
印刷書籍は「表示行」(物理行、レイアウト行とも言われる)
→ 一行は見た目の一行。
電子書籍は「論理行」
→ 一行は「改行」で区切られる/終了する。
電子書籍では、表示部分の幅や高さとは関係なく、「文章」が完結したところまでで一行になる「論理行」が必要。
【表示行1】「なかなかいいアイディアじゃないか」つやつやと光る壁を見まわしながら言う。「だけど、ひ
【表示行2】とつ欠点があるな、ジョン。これではどんどん部屋が狭くなっていく。そのうちすっかり隙間が
【表示行3】なくなってしまうぞ」
↑という3行の表示行を一行の論理行にする↓
【論理行】「なかなかいいアイディアじゃないか」つやつやと光る壁を見まわしながら言う。「だけど、ひとつ欠点があるな、ジョン。これではどんどん部屋が狭くなっていく。そのうちすっかり隙間がなくなってしまうぞ」
うまいやり方、これで決まり! というのも思いついてなくて、データの表示行(1行の文字数43字)を一行ずつを見て
- 表示行の文字数いっぱいなら、次の表示行に繋っている
- 表示行の文字数より短かかったら、そこに「改行」が入る
ということで、期待したところで「改行」された論理行の一行になる。
(表示行の文字数と「文章」の文字数がたまたま同じだったら、改行されなきゃいけないところなのに繋がってしまう…これはもう目視確認するしかないかなあ)
もうひとつ「空行」問題がある。
データに「改行」がないんだから、当然「空行」など存在しない。
そのために、OCRが出力するデータはテキストだけじゃなくて、JSON、XML形式のものがある。
以下はXML形式。
<LINE TYPE="本文"
X="1178" Y="362" WIDTH="129" HEIGHT="5430" CONF="0.935" PRED_CHAR_CNT="1.000" ORDER="25" STRING="「なかなかいいアイディアじゃないか」つやつやと光る壁を見まわしながら言う。「だけど、ひ" />
JSONもXMLも「表示行」のX座標Y座標が入っているし、XMLの方には「TEXTBLOCK」というテキストの塊ごとに、そのエリアのサイズについての情報がある。
→ 最初のスクリーショットの赤囲み部分。
<SHAPE>
<POLYGON POINTS="6500,551,6500,5820,7038,5820,7038,551" />
</SHAPE>
エリア四隅「左上,左下、右下、右上」のXY座標
このX座標(タテ書きの場合)の間隔を見て「空行」を判断するしかない、ここが広ければ空行。
基本、見開き単位の一段組とすると、ひとつのXMLデータには2つのTEXTBLOCK。
TEXTBLOCKの数が2つ以上あったら、タイトルや空行が入ったページ、ということでwarningを出して注意喚起。元の画像やPDFを目視確認して手作業で空行を入れる。
以上で、コマンドライン一発で完成とはいかないけど、ある程度流れ作業にすることができた。
この手順で、電子書籍化したのが先日のエントリ。
『去りにし日々、今ひとたびの幻』の表紙絵
https://t2aki.doncha.net/?id=3078

もう少し納得いくものになったらホームページの方にコードを掲載しておこう。
それよりなにより、こんなのをSNSに投稿したら多くのリアクションいただく今のご時世。
次々と公共の資源を潰していってる政府だし、国立国会図書館といえど安心してられない、かも。
新自由主義?ネオリベだっけ?とかでいつ有料になるかわからないし、なんならKPIがどーたらいいだして閉鎖されたらかなわない。
今のうちに所蔵・公開してくれてる本をPDFでダウンロードだけしておこうと思う。
国立国会図書館の膨大で貴重なデータをぜひ! 活用させてもらいましょう!!

