紙の統計表をテキストデータ化する
ネ申Excelのルーツ・芸術・情報抽出
2021年12月3日＠2021年度「NDLデジタルライブラリーカフェ」
有本 寛（一橋大学）
arimotoy@ier.hit-u.ac.jp

自己紹介
 名前：有本 寛（一橋大学経済研究所）
 仕事：経済学者（開発経済学，経済史，農業経済学）● 現地フィールド調査でデータ収集の例● ベトナムで粗製肥料，マダガスカルで米流通● 歴史統計データを使った分析の例● 『帝国統計年鑑』の府県別データ● 官報の行旅死亡人公告データ（身長データの収集）

 好きなエディタ： vscode > emacs
 普段使っている言語：Stata, Python, R2

はじめに● 社会科学分野でも，統計データ分析の重要性が増している● 日本には，140年以上に渡る長期の政府統計がある● ただし，ごく近年まで紙媒体，よくて電子画像で提供．
● 電子画像の統計表を，Excelファイルにテキストデータ化したい● 手入力？ 膨大な時間と費用がかかる  21世紀なので機械で

1. どこまで機械的に統計表を情報抽出できるか紹介
2. その過程で出会った，元祖「ネ申Excel」を観賞する
3

● はじめに● OCRの活用と課題● ocrstatsの概要● 元祖ネ申Excelとの邂逅● 今後の課題と展望

4

OCRの活用と課題● OCR（optical character recognition：光学的文字認識）● 統計表をOCRする際のポイント
1. 文字（列）を正確に認識する
2. 文字（列）を正確な位置（セル）に配置する

5

B3

表レイアウト解析

AB

CD

E

F

G

H

1
2
3
4
56

統計表をOCRにかけた例

7

統計表をOCRにかけた例

JUST PDF4（！！）

8

統計表をOCRにかけた例（ocrstats）

9

● はじめに● OCRの活用と課題● ocrstatsの概要● 元祖ネ申Excelとの邂逅● 今後の課題と展望

10

ocrstatsの概要● 何？
● 統計表画像のテキストデータ化を体系的に支援するPythonツール● 大量の統計表を体系的にテキストデータ化することを想定● 特徴・要件● （1）一括処理， （2）定型工程の自動化， （３）外部OCRの活用● 実用的な精度で（とりあえず）動いて使えるものを作る● 使える外部ツールは躊躇なく，節操なく，なんでも使う• アノテーションツール，OCRエンジン

11

作業の流れ１．原画像スキャン

2. 画像補正• 見開き分割• 水平補正• 再結合

3．アノテーション• 統計表部分の特定• 統計表構成部位の特定• ラベルづけ

4．切り出し5．OCR処理• APIの実行• jsoncsv変換

6．表レイアウト解析• 統計表の行・列・セル構造の解析

7．出力• 文字列配置・整形• 誤認フィルタリング• Excel出力• 検証用画像出力

8．校正※青枠はocrstatsで自動処理

12

原画像

13

原画像（見開き分割→水平補正→再結合後）

14

表体のアノテーションと切り出し（クロッピング）

15OCR処理（文字認識）| json  csv

16

OCR処理ｓText: 5,723
Confidence: 1
bbox1.x: 444
bbox1.y: 235
bbox2.x: 559
bbox2.y: 235
bbox3.x: 559
bbox3.y: 277
bbox4.x: 444
bbox4.y: 277

235 bbox1
444

bbox4

5,723
bbox2

bbox3

17

表レイアウト解析（≒自動で罫線を引くこと）

18

表レイアウト解析1｜OCR処理をする

19

表レイアウト解析2｜モノクロ画像を作成

20

表レイアウト解析3｜水平・垂直投影プロファイル
水平投影プロファイル（projection profile）
行方向に，Y座標ごとに，白いピクセル数を数えて，ヒストグラムにする
改行で急減

21

表レイアウト解析4｜ヒストグラムの差分をとる

改行位置＝減少幅が大きい
ところ

22

表レイアウト解析5｜ピーク検出・改行位置の特定

ピーク間の幅：Bboxの高さ以上

23

表レイアウト解析6｜文字列の配置

各boundingboxの重心が含まれるセルに配置

24

統計表（Excel形式）と検証用画像の出力

25

校正

26

● はじめに● OCRの活用と課題● ocrstatsの概要● 元祖ネ申Excelとの邂逅● 今後の課題と展望

27

主なエラーのパターン

文字列範囲の認識不良
認識漏れ

28

表側は「縦読み」してしまう

そのままだと「縦読み」してしまう

29

表頭の入れ子構造は難しい

30

ネ申Excelとは● 「紙へ印刷することを前提に、セルの結合や罫線機能などをフルに使い、見栄えを優先して作ったExcelファイル」1)● 機械処理が難しく，データとしての再利用性が低い
2)••1) https://atmarkit.itmedia.co.jp/ait/articles/1612/26/news032.html
2) https://oku.edu.mie-u.ac.jp/~okumura/SSS2013slide.pdf

31総務省のガイドライン
 総務省（２０２０）「統計表における機械判読可能なデータ作成に関する表記方法について」*
データ・項目の取扱い

1セル1データとなっているか（1-2）
数値データは数値属性とし、文字列を含まないこと（1-3）
セルの結合をしていないか（1-4）
スペースや改行等で体裁を整えていないか（1-5）
項目名等を省略していないか（1-6）
オブジェクトを使用していないか（1-8）
データの単位を記載しているか（1-9）

ガイドラインのNG項目が，約100年前の政府統計書でことごとく確認できる↓

表の構成の取扱い

データが分断されていないか（2-1）
1シートに複数の表が揭載されていないか（2-2）
「統計表における機械判読可能なデータ作成に関する表記方法」令和2年12月18日統計企画会議申合せ「ネ申Excel」のルーツは100年遡れる！

* https://www.soumu.go.jp/menu_news/s-news/01toukatsu01_02000186.html

32数値・文字列・単位の混在，オブジェクトの利用

33セル内改行

横書き

縦書き34

入れ子構造35

均等割り付け36

表側の省略37

レイアウト解析の難しさ

1ページに複数の表見開きでページをまたぐ

表側だけ左ページ

38

表の分断

39

粗密の妙40

あえて，ネ申Excelを擁護 そこに美を見出す● 高度な活版印刷技術，ヒューマンな誤植，罫線を多用した様式美 データの利用可能性？
● そんなことすんの，一部のマニアックな学者とかデータ屋だけ● 大多数は，集計された，見やすい「表」がほしい● ネ申Excelは「見やすい表」として，100年以上の伝統と合理性，美を兼備
41認識範囲不良は短冊切り出しで改善

垂直罫線で短冊型に画像を切り出し 42表側水平罫線で画像を短冊切り出し（表体画像の表レイアウト解析で特定した改行座標情報を使う）

43

● はじめに● OCRの活用と課題● ocrstatsの概要● 元祖ネ申Excelとの邂逅● 今後の課題と展望

44

現状・課題・展望 現状● ocrstatsで，そこそこの精度の自動テキストデータ化を実現● 現在， 『日本帝国統計年鑑』のテキストデータ化進行中 課題
1. レイアウト解析の自動化● 画像レイアウト解析（表の検出） ＋ 表構成部位解析（表頭，表側，表体）

2. 表頭・表側の処理
3. OCRの改善：活字，旧字，「統計表」データセットの機械学習
45

セマンティクスの利用

46

現状・課題・展望
 今後の展望● テキストデータ化する統計表の拡大● 『日本帝国統計年鑑』，各省庁統計表，府県統計書など● （政府）統計レポジトリの作成● 統計の目録，メタデータ，電子画像，テキストデータ，作業情報の集約化● クラウドソーシング型プロジェクトの展開？
● 校正をクラウドソーシング（例：「みんなで翻刻 https://honkoku.org/ 」）

47