PDFのテキスト抽出 vs. OCR:翻訳前に正しいアプローチを選ぶ方法
翻訳前にPDFの各ページを検証しましょう。既存テキストの保持、OCRの実行、あるいは誤ったテキスト層の置換をどう判断すべきか、混在ファイルの検証例をもとに解説します。

PDFに信頼性の高い機械可読テキストがすでに含まれている場合は、テキスト抽出を使用します。ページがテキストの画像のみで構成されている場合は、OCRを使用します。既存のテキスト層に誤りがある場合は、どちらのルールでも不十分です。抽出された単語と実際の紙面を見比べたうえで、その層を維持するか、置換するか、あるいはやり直すかを判断する必要があります。
その判断は翻訳の 前 に行う必要があります。ワークフローの段階で一度誤って入力された数量や名前、文章を、翻訳エンジンが復元することはできません。受け取った原文の通りにしか翻訳できないためです。
クイック判断チャート
ファイル単位ではなく、ページ単位で検証してください。1つのPDFの中に、デジタル生成されたタイトルページ、スキャンされた章、古いOCR処理が施された差し込みページが混在していることもあります。
| ページの構成要素 | 抽出結果 | 最初のアプローチ | 確認すべき点 |
|---|---|---|---|
| ボーンデジタル(電子作成)テキスト | ページ上に表示されている通りのテキスト | そのままテキストを抽出 | 文字、読み取り順序、見出し、リンク、および複数サンプルの確認 |
| ページ画像のみ | 空、またはほぼ空の出力 | そのページにOCRを実行 | 固有名詞、数字、段落、段組み、言語設定 |
| スキャン画像+正確な不可視テキスト | 画像と一致するテキスト | 通常はそのまま保持 | 代表的な文章および複雑なレイアウトの確認 |
| スキャン+不正確な不可視テキスト | 一見もっともらしいが間違っている単語や数値 | OCRレイヤーの差し替え、または再実行 | 既知の不具合箇所、その後に新規サンプル |
| 文字マッピングや順序が崩れたデジタルテキスト | 文字化けや読み取り順序の乱れ | OCRの前に原因を診断 | より適切な書き出しや抽出方法で構造を保持できるかどうか |
単語を選択できることは、テキストオブジェクトが存在している証拠にすぎません。そのテキストが見た目のページ内容と一致している証明にはならないのです。逆に、コピーに失敗したからといって、PDF全体が画像のみで構成されているとは限りません。
4ページの混在PDFによる検証
あらかじめ内容を把握した ダウンロード可能な4ページのPDF を作成しました。機密情報や第三者の文書は含まれていません。
- ボーンデジタル(電子作成)のページ
- 画像のみのページ
- 正確な不可視テキストレイヤーを持つ、スキャン風のページ
- 意図的に誤った不可視テキストレイヤーを持たせた、スキャン風のページ
各ページに対し、既存のPDFデータに対してPopplerの pdftotext を実行しました。それとは別に、ページを300 dpiでレンダリングし、その画像に対してTesseractを実行しました。いずれのテストの前にも、目視による正解データをあらかじめ確定させています。
| ページ | 既存のテキスト抽出 | レンダリング画像からのOCR | テスト結果に基づく推奨判断 |
|---|---|---|---|
| デジタルテキスト | 表示されている参照テキストと一致 | 同じく一致 | 既存のデジタルテキストを維持。この場合OCRの付加価値はありません |
| 画像のみ | 空(テキストなし) | 一致 | 機械可読なテキストが必要な場合はOCRが不可欠 |
| 正確な非表示OCRテキスト | 一致 | 一致 | この管理されたサンプルにおいて既存のレイヤーは合格 |
| 誤解を招く非表示OCRテキスト | 返却値: DX-4O7, 53 folios、および section 7.8 | 表示通りのテキストを返却: DX-407, 58 folios、および section 7.5 | 選択可能なレイヤーを信用すべきではありません |
ここで重要なのは、Tesseractが常に優れているというわけではない点です。このクリーンな英語のテストサンプルで成功したのは、判断基準を明確にするためにページを作成したからです。ノイズの多いスキャン、一般的でない文字体系、表、手書き文字、複雑なレイアウトなどでは、新規に実行したOCRでも別の形で失敗することがあります。
完全な ページごとの結果, 判定シート, 再現手順のメモ、および 生成ツール はフィクスチャに付属しています。2026年9月21日時点で記録されたバージョンは、Poppler pdftotext 26.08.0およびTesseract 5.5.3でした。
このテストが証明すること、そして証明しないこと
このテストが証明するのは、見た目には判読できる4ページであっても、翻訳前に3つの異なるアプローチが必要になり得るということです。また、検索可能なテキストであっても、もっともらしく見えながら実際の紙面と食い違っている場合があることも証明しています。
一方で、一般的なOCRの精度、リーダーのアクセシビリティ、表の復元力、多言語認識の精度、あるいはBookTranslatorのアップロード時の挙動を測定するものではありません。各ページはシンプルな構成であり、4ページ目のエラーは意図的に挿入されたもので、Tesseractが引き起こしたものではありません。
テキスト抽出とOCRが異なる処理である理由
テキスト抽出は、PDF内にすでに保存されているテキストオブジェクトを読み取ります。OCRは、ピクセルデータから文字を認識します。最新の pypdf抽出ガイド でも同様の境界線が引かれており、pypdfは既存のテキストレイヤーを読み取ることはできても、画像内の単語を認識することはできません。
この違いが重要なのは、デジタルPDFには、ラスタライズによって失われたり復元が難しくなったりする情報(文字エンコーディング、フォント情報、リンク、ベクターグラフィックス、その他のドキュメントオブジェクト)が含まれている可能性があるためです。pypdfは、デジタル生まれ(ボーンデジタル)のファイルに対してOCRを万能な解決策として扱うことを明確に否定しています。また、別の制約についても説明しています。PDFは通常、意味論的な段落、表、見出しとしてではなく、視覚的な配置のためにテキストを保存しているという点です。
したがって、事前確認(プリフライト)においては、次の2つの独立した問いを立てる必要があります。
- 文字は正確か? 抽出された人名、数値、句読点、見慣れない用語などを紙面と照合します。
- 構造は再利用可能か? 段落を丸ごと1つ読み通し、そのうえで段組、脚注、表、キャプション、ページの境界線を確認します。
文字が正確であっても順序が乱れていれば、翻訳のソースとしては破綻しています。
翻訳前のページ単位の事前確認手順
1. 原本を保持する
重要な文書である場合は、変更前のソースファイルを保管し、そのハッシュ値を記録しておきます。テストは必ずコピーに対して行ってください。不完全なテキストレイヤーを置き換えると、ベクターデータが統合されてしまったり、後で必要になる情報が失われたりする恐れがあります。
2. ページタイプを分類・把握する
先頭の1ページだけで判断してはいけません。タイトル周り、標準的な本文ページ、付録、表、図版、折り込みページ、そして写真撮影やコピー機でスキャンされたように見えるページをサンプリングします。
長大な文書の場合は、ページ範囲を記録しておきます。
| 範囲 | 確認されたタイプ | テスト箇所 | 結果 | 選択すべき処理ルート |
|---|---|---|---|---|
| 1–4 | デジタル版の前付け | タイトル、著者、版表示 | 一致 | テキスト抽出を維持 |
| 5–126 | スキャンページ | 1段落と2つの数値 | テキストなし | OCR |
| 127–133 | 検索可能な挿入ページ | 氏名、日付、表の行 | 2件の誤り | 既存のOCRを再実行して置き換え |
ダウンロード可能なCSVでも、検証データ用に同じパターンを採用しています。
3. 平易な文章だけでなく、認識が難しいトークンも比較する
一見自然に見える文章だけでは不十分な検証になります。次の要素も含めて確認してください。
- 人名
- 日付と数量
- 英数字が混在する識別子
- アクセント記号付きの文字や非ラテン文字のテキスト
- 改行をまたぐ文
- 脚注、図版、または2段組みの近くにある記述
テスト用サンプルの4ページ目は、一般的な単語の確認だけで済ませてしまうと問題なさそうに見えます。しかしエラーは、 O/0, 58/53、そして 7.5/7.8に集中しています。これらはまさに、翻訳後に参考文献や事実関係を損なわせる原因となるトークンです。
4. 不確実性を正直に分類する
判定結果は「サンプルの合格」「サンプルの不合格」「抽出可能なテキストなし」「未テスト」の4つに分類してください。「選択可能」は結果ではありません。「OCRが完了した」も同様です。
サンプリングには限界があります。3ページ合格したからといって、特にスキャン状態やレイアウトが混在するファイルの場合、400ページの書籍全体の品質が保証されるわけではありません。元の状態が変化する箇所ではサンプリング範囲を広げてください。
診断後にのみOCRmyPDFのモードを選択する
OCRmyPDFの現行ドキュメントには、すでにテキストが含まれているページに対するいくつかの動作が記載されています。これらは処理ルートの選択肢であり、品質を保証するものではありません。
- デフォルトの動作 は、ページに印刷可能テキストや隠しOCRレイヤーがすでにある場合、どちらが見つかったのかを確実に判別できないため処理を停止します。
- Skip text(テキストのスキップ) は、テキストを含むページを変更せずにそのままコピーし、その他のページにOCRを実行します。混在ファイルで既存のテキストが信頼できる場合にのみ有用です。
- Redo OCR(OCRの再実行) は、既存の非印刷OCRテキストを削除してページを再度認識しますが、印刷可能なベクターテキストは対象外とします。デジタルページと過去にOCR処理されたページが混在している場合に適していますが、過去の構成をすべて判別できるわけではありません。
- Force OCR(OCRの強制) は、ベクターコンテンツをラスタライズし、生成された画像にOCRを実行します。失敗したレイヤーを置き換えることはできますが、情報が損なわれ、インタラクティブなコンテンツがフラット化されてしまう可能性があります。
これらの仕様はOCRmyPDF 17.12.1の 既存テキストに関するエラーのドキュメントに基づいています。一括処理を実行する前に、インストールされているバージョンのドキュメントを確認してください。フラグ名だけでは、出力結果にしおり、タグ、リンク、フォーム、またはアクセシビリティ構造が維持されている証拠にはなりません。
今回のテスト用サンプルでは、テキストスキップを使用すると4ページ目の意図的に誤らせた隠しテキストがそのまま残ってしまいます。一括処理モードを選択する前に、コピー&比較による検証ステップが必要なのはそのためです。
よくある誤った判断
「テキストが選択できるならOCRはスキップする」
4ページ目がその誤りを証明しています。選択できるかどうかでわかるのはテキストが存在することだけであり、正確さはわかりません。
「念のためPDF全体にOCRをかける」
これにより、綺麗なデジタルページが劣化し、有用なPDFオブジェクトが破棄される可能性があります。また、意味的な読み順が自動的に修正されることもなく、確認が必要な箇所が増えてしまいます。
「より自然に見える出力を採用する」
この場面において「自然さ」は危険です。目に見える実際のページと必ず照合してください。言語モデルが識別子や数値を勝手に補正した結果を、正しい原本情報として扱ってはなりません。
「1ページが綺麗ならファイル全体も同じはず」
デジタル表紙の後にスキャンされた章が続く場合や、検索可能な書籍の中に画像のみの差し込みページがある場合など、混在型PDFは一般的です。ページ範囲ごとに対処方針を記録してください。
翻訳準備完了を判定するチェック基準
ファイルを翻訳ワークフローに投入する前に、以下の項目がすべて満たされていることを確認してください。
- すべてのページ範囲が、デジタル、画像のみ、または既存OCRのいずれかに分類されていること。
- 破損した既存レイヤーに対する代替手順が記録されていること。
- サンプリングしたページで、名前、数値、識別子、専門用語が原本と一致していること。
- 抽出されたソーステキストにおいて、段落や段組の順序が正しく読めること。
- 表、図、脚注、数式が検証されているか、別アセットとして明確に管理されていること。
- 翻訳後の比較検証用に、元のPDFが保持されていること。
テキストを含むPDFでエラーが発生する場合は、別途 コピペ診断ガイド を参照してください。ページが画像のみの場合は スキャンPDFワークフロー を、言語の選択が失敗原因の一部である場合は 複数言語混在OCRガイド をご覧ください。
検証済みのソースを翻訳し、出力を確認する
最終的な目的がドキュメント全体を他言語で読むことである場合は、検証済みのPDFを PDF翻訳ツールにアップロードしてください。スキャンされたページや画像主体のページに対しては、BookTranslatorのOCRモードが認識可能なコンテンツを抽出し、整った翻訳済みPDFを再構築します。ただし、元の正確なページレイアウト、フォント、サイズを完全に維持することや、既存のすべての隠しテキストレイヤーを修復することを保証するものではありません。
ページの一覧リストと元のファイルは手元に残しておきましょう。翻訳後は、固有名詞、数量、識別子、ページ網羅率、段落順、その他依拠している構造など、リスクの高い箇所のチェックを訳文側でも再度実施します。 PDF翻訳QAチェックリスト では、その最終受け入れ確認の手順を網羅しています。
基本となるルールはシンプルです。 すでに信頼できるものはテキスト抽出を行い、認識が必要なものだけをOCRで処理し、テキストレイヤーの置換は誤りであることが証明された場合にのみ行います。





