簡単そうで難しいPDFからのテキスト抽出

PDFテキスト抽出の基本、問題点、実践的解決策 セミナーを聞いた。

アンテナハウス ウェビナーのご案内

資料もα版入手方法も公開されてる。


メモ:

- 前半はPDF内のテキストの仕組み。
- 後半は、テキスト抽出アプリ(PDF Advanced Extractor α版)の紹介

 

----


PDF は2つのタイプある

ボーンデジタルPDF

- PDF書き出しなどで作成したもの。
- フォントが文字データ
- 本日はこっち

 

電子化PDF

- 紙のスキャン
- 文字ば画像

たいていのボーンデジタルPDFはテキスト抽出できる

- OCRと違って文字コードの誤認識がない


# フォント,文字, グリフ
- 文字の形を表す絵(グリフ)

 

# PDFのテキスト表示
- PDFのテキストは文字描画
- 文字は、コンテントストリーム内に情報がある
- フォントは、フォントストリーム内
- 上記組み合わせで表示(印刷)
- ISO-32000-1で決められた仕組み

- プログラマーから見たPDFファイル

www.antenna.co.jp

 

# PDF表示の仕組み

- フォント情報+行頭座標+文字(識別子+位置調整)
- 改行文字はない。
- 行頭位置がずれる。


- 埋め込みは、フォントのグリフ情報
- ToUnicode 12 R にユニコードへの変換情報

- この辺りの仕様はPDF作成アプリによって異なる。
- 上記例はアンテナハウス版。

 

# 情報処理における文字とテキストデータとは

符号化文字集合Unicodeが一般的
Unicodeを端末で利用するときの符号化方式はUTF-8UTF-16など。

日本には独自にJIS:X0213がある

 

# PDFテキスト抽出の内部処理

- PDFのテキストはコンテントストリームにある識別子の並び
- 1:PDF内の文字識別子の並びをUnicodeのテキストデータに変換。
- 2:ページ上で文字が表示される位置を考慮しながら、テキストの流れを作る。(さきの例では改行コードは存在しない。

 

# PDFからテキストを取り出すには

たいていは下記手順:
1. PDFを表示
2. コピー
3. メモ帳などにペースト

※ この手順の問題を下記:

 

# コピペの問題
- 期待通りになっていない

 

## 1:順番
- 例えば、見た目の表示順(段落順)と違う。(DTPアプリなどでは多い)
- シンプル(に見える)広報などでも段落順が見た目と異なる。

 

## 2:文の配置とテキストの順序がうまく対応しない
- 例えば、2段組みの文書がつながってしまう等


## 3:文字間の空き、改行の扱い
- 和文と欧文の間の空白文字は(PDF内には)存在しない。PDFの表示オペレーター(Tj/TJ)のパラメーターで調整が行われている。改行も同様。
- 空白や改行はリーダーが(推測して)入れている。

 

## 4:不要な文字の抽出
- 文字が2重に出る。(最近のAdobe Readerはでにくくなった)
- 表示されていない文字が取得される
- PDF内の設定では非表示だが、コピペだと取得してしまう
- 不要なヘッダー/フッターの抽出(無視したい)

 

## 5:文字コードを取得できない

- PDFのテキストを正しい標準文字コードに変換できない
- カスタム化/ユーザー定義など
- グリフがアウトライン化されていても取得できない

 

# コピペは問題多い
- そもそも(PDFにとって)抽出は想定外
- 簡単そうで難しい

 

上記1から4の課題解決を提案

 

# アンテナハウス:開発中

PDF-Advanced Extractor(α版)
テキスト抽出

さきの課題1-4を解決する。
5は未対応

 

## テキスト枠を自動認識
## テキスト枠の編集
## テキスト枠の抽出順序の変更
- 既定値は作成順
## 指定漏れチェック
## 抽出範囲指定
- ヘッダー/フッター/柱を無視したり

## 画像保存

## HTMLタグ付き保存
8種類のタグ付け


## デモ

改行文字の挿入など可能。


## QA
- 現状ルビは除外(未対応)
- 表は? (未対応:将来はやりたい)
- 価格:未定
- PDF内に改行は存在する?>しない。(座標となる)
- ローカル/オンライン?>デスクトップアプリ
- 罫線は難しい? > 現状は対応なし(テキスト抽出をメインにしている)
- PDF内のEPSは?
- 段落の自動判別
- PDFの文字化けを解消する方法
- 中断/再開>可能
- サイズ制限:ない。大きなファイルも開けるはず。ただし遅い。
- マルチPDF対応:未対応
- 英語技術書:翻訳連携あるといいね
- タグ付きPDFのタグ抽出は?>未対応
- HTML出力は画像も含む?>はい。
- API操作はできる?>現在はない。
- 数式対応は?>現在は難しそう