PDF からテキストをコピーしてワード プロセッサに貼り付けると、不要な改行が多く含まれるテキストが作成されることがよくあります。元の PDF の各行は、貼り付けられた出力では個別の段落になります。 PDF ページ上で 5 行を占めていた段落が、5 つの切り離されたテキストの塊として貼り付けられます。段落境界を考慮したPDF から Text 抽出を行うには、PDF がテキストを保存する方法を理解し、個々のテキスト行から段落を再構成する抽出ツールを使用する必要があります。
PDF ファイルには、テキストがページ上に配置された文字として保存されます。 PDF の内部データ モデルには段落の概念が存在しません。文字は特定の座標に配置され、テキスト行間の垂直方向のギャップに暗黙的に改行が挿入されます。単純に文字を順番に読み取り、垂直方向のギャップごとに改行を挿入する抽出ツールでは、断片化された出力が生成され、貼り付けられた PDF テキストの操作が非常にイライラします。
WukongPDF の PDF データの抽出 ツールは、テキスト抽出中に段落構造を保持し、編集可能なクリーンな出力を生成します。

PDF テキスト抽出で不要な改行が追加される理由
5 行にわたる PDF 段落を考えてみましょう。 PDF の内部では、それぞれ異なる垂直座標に配置された 5 つの個別のテキスト オブジェクトが保存されます。単純な抽出ツールは各テキスト オブジェクトを読み取り、その後に改行を追加します。その結果、ハードリターンで区切られた 5 行のテキストが作成され、ワード プロセッサではそれぞれが独立した段落として扱われます。テキストをリフローするには、手動で行を結合し直す必要があります。
より優れた抽出ツールは、テキスト行間の垂直方向の間隔を分析することで段落境界を検出します。段落内の行には一貫した行間隔があります。段落間の間隔が大きくなったり、次の行のインデントなどの追加のスペースが含まれる場合があります。このツールは、一定の間隔で行を段落にグループ化し、境界に単一の段落区切りを挿入します。 PDF 形式 の認識により、使用可能なテキスト抽出と断片化された出力が区別されます。
PDF を Word に変換してみる
インストールは必要ありません。ブラウザで直接動作します。
Adobe Acrobat Pro を使用したクリーン テキストの抽出
Acrobat Pro の Word へのエクスポート機能には段落検出が含まれています。 [ファイル]、[エクスポート]、[Microsoft Word]、[Word ドキュメント] の順に移動します。エクスポート設定で、「フローテキストを保持」にチェックを入れて段落構造を保持します。 Acrobat はテキストのレイアウトを分析し、段落を再構築します。出力 DOCX ファイルには、不要な改行のないきれいな段落が含まれている必要があります。
エクスポートされた DOCX を開き、改行アーティファクトをスキャンします。複雑なレイアウトにより段落検出が混乱するため、表、箇条書きリスト、または列を含む段落でも問題が発生する可能性があります。これらの領域については、破線を手動で結合し、段落構造が元の PDF と一致していることを確認します。 Acrobat のエクスポートでは、段落の 80 ~ 90% が正しく処理されます。残りのエッジケースには手動による注意が必要です。
クリーンアップを使用したコピー&ペースト方法
短いドキュメントの場合、最も早い方法は、PDF からテキストをコピーし、プレーン テキスト エディターに貼り付けて、手動でクリーンアップすることです。 PDF 内のすべてのテキストを選択し、コピーしてメモ帳または同様のエディタに貼り付けます。テキストの各行の後に不要な改行が表示されます。検索と置換を使用すると、段落の境界を示す二重改行を保持しながら単一の改行を削除できます。
ほとんどのテキスト エディタでは、単一の改行を検索してスペースに置き換え、次に連続する 2 つの改行を検索して単一の改行に置き換えます。これにより、段落区切りを維持しながら段落内の行が結合されます。手動による方法は、約 5 ページまでのドキュメントに有効です。それを超えると、検索と置換のアプローチは退屈になり、エラーが発生しやすくなります。
Python と pdfplumber を使用したプログラムによる抽出
Python の pdfplumber ライブラリは、テキスト抽出をきめ細かく制御できます。特定のページ領域からテキストを抽出し、表を検出し、段落構造を保持できます。基本的な抽出スクリプトは PDF を開き、ページを反復処理して、page.extract_text() を呼び出します。ライブラリのデフォルト設定では、単純なレイアウトの段落検出が適切に行われます。
ドキュメントのワークフローに関しては、複雑なレイアウトの場合、pdfplumber を使用して抽出戦略を指定できます。 extract_text メソッドは、ライブラリが文字を単語と行にグループ化する方法を制御する文字と単語の間隔のしきい値のパラメーターを受け入れます。テキストが密集した学術論文や行間が可変のマーケティング資料など、特殊なタイポグラフィを使用した文書の場合は、これらのしきい値を調整します。
| メソッド | 出力品質 | 最適な用途 |
|---|---|---|
| Acrobat による Word へのエクスポート | 良好、段落構造は維持されています | シンプルなレイアウト、少数のテーブル |
| クリーンアップ付きのコピー&ペースト | 変数、手作業が必要 | 短い文書、簡単な抜粋 |
| Python + pdfplumber | 優れた完全な制御 | バッチ処理、複雑なドキュメント |
業務用途のための抽出されたテキストの後処理
抽出後、テキストを使用する前に品質チェックを実行します。一般的なアーティファクトを検索します。たとえば、単一スペースであるべき二重スペース、削除する必要がある行末のハイフン、単一の段落にマージされた番号付きリスト項目などです。 5 分間のクリーンアップ パスにより、これらのアーティファクトが捕捉され、元の PDF と同じくらいスムーズに読み取れるテキストが生成されます。
ドキュメント ワークフローに関しては、同様の形式の PDF から繰り返し抽出する場合は、すべての抽出に同じクリーンアップ ルールを適用する後処理スクリプトを構築します。スクリプトは、ハイフンの削除、スペースの正規化、リストの検出を自動的に処理します。数回の抽出サイクルの後、スクリプトは特定のドキュメント形式に合わせて調整され、手動介入なしでクリーン テキストが生成されます。
PDF からのきれいな段落テキストの抽出は、適切なツールと、特殊なケースでは手動によるクリーンアップが必要になる可能性があるという現実的な予想を使用すれば実現できます。手動で再入力する場合と比較して、自動抽出によって節約される時間は、抽出ワークフローの設定における少額の投資で正当化されます。
抽出された段落を結合するときに元の書式を保持する
きれいな段落テキストを抽出した後、元の PDF から太字や斜体などの書式設定を再適用することができます。 Acrobat で Word にエクスポートすると、基本的な書式設定が保持されます。プログラムによる抽出の場合、pdfplumber または PyMuPDF は、太字、斜体、フォント サイズのメタデータを含むフォント情報を含むテキストを抽出できます。
抽出されたフォント メタデータから書式設定されたテキストを再構築するには、フォント属性を出力書式にマッピングする処理が必要です。太字と斜体のタグを含む Markdown または HTML を生成するスクリプトは、オリジナルの視覚的な階層を保持しながら、任意のテキスト エディターで編集可能な書式設定されたバージョンを生成します。
一般的なワークフローでは、自然言語処理パイプライン用にテキストを抽出するときに、段落再構成の品質が下流モデルのパフォーマンスに直接影響します。きれいな段落では、より優れたトレーニング データが生成されます。アーティファクト改行を含む断片化されたテキストによりノイズが発生し、モデルの精度が低下します。
アーカイブ テキスト抽出の場合、抽出されたテキストは元の PDF と一緒に保存する必要があります。テキスト ファイルは、遠い将来 PDF レンダリング ソフトウェアが利用できなくなったとしても、形式に依存しないバージョンで読み取れるように提供されます。
実際には、テキスト抽出の良し悪しの違いは、スクリーン リーダーでテキストを読み上げたときに最も顕著に現れます。自然な文の流れを持つきれいな段落は、人間の話し言葉のように聞こえます。アーティファクトが途切れた断片化されたテキストは途切れ途切れでバラバラに聞こえます。
テキスト抽出の精度は、ソース文書の書式設定を練習し、慣れることで向上します。同じソフトウェアで作成された文書からテキストを抽出した後、特徴的なアーティファクトを学習し、それに応じて設定や後処理ルールを調整できます。
実用的な観点から見ると、実際には、PDF テキスト抽出ワークフローには、抽出されたテキストの単語数をサンプル ページからの手動カウントと比較する検証ステップが含まれる必要があります。不一致は、調査が必要な抽出の問題を示しています。
ドキュメント処理では、数式や科学表記法を含むドキュメントの場合、標準的なテキスト抽出では表記法を正しくキャプチャできないことがよくあります。数式の書式設定をより正確に処理する、特殊な STEM 抽出ツールが存在します。
特に非 ASCII 文字を含むドキュメントの場合は、抽出されたテキストのエンコードを検証する必要があります。 UTF-8 出力では、すべての文字セットが保持されます。 ASCII 出力では、英語以外のスクリプトの文字が自動的に削除されたり、破損したりする場合があります。
OCR 処理されたスキャンされた PDF から抽出されたテキストには、各単語の OCR 信頼レベルが含まれます。信頼性の高い単語は一般に正確です。信頼性の低い単語は、元のページ画像と照合して検証する必要があります。
複数の PDF からのバッチ テキスト抽出には、各入力ファイルとその抽出された出力をリストしたマニフェスト ファイルが含まれている必要があります。マニフェストを使用すると、手動でファイルを管理することなく、抽出されたテキスト コーパスをプログラムで処理できます。
時間が経つにつれて、検索エンジンのインデックス作成用にテキストを抽出するときに、抽出された出力にドキュメントのメタデータが含まれるようになります。タイトル、作成者、作成日は、抽出されたテキストが検索インデックスに追加されるときに検索の関連性を向上させるコンテキストを提供します。
ほとんどのツールでは、パスワードで保護された PDF からテキストを抽出するには、抽出ツールにパスワードを入力する必要があります。自動抽出パイプラインには、パスワードが平文で公開されない安全な資格情報ストレージが必要です。
ドキュメント ライブラリ内のサンプル ドキュメントからの定期的なテキスト抽出テストにより、回帰が監視されます。抽出品質の変化は、PDF 生成ソフトウェアが更新され、テキストの生成方法が異なることを示している可能性があります。
PDF からのクリーン テキスト抽出は、コンテンツの再利用、アクセシビリティの修復、翻訳、検索インデックス作成、データ分析など、多数の下流タスクをサポートする基本的なスキルです。これらの各タスクは、抽出されたテキストの品質によって異なります。ソースでの抽出品質に投資すると、下流のすべてのアプリケーションの成果が向上します。
PDF からクリーンなテキストを抽出することは、コンテンツを再利用するための基本的なスキルです。抽出されたテキストは、アーティファクト改行がなくなると、追加のクリーンアップを行わずに、翻訳、アクセシビリティ ツール、検索インデックス、および新しいドキュメントに流し込むことができます。抽出の品質が下流のすべての品質を決定します。
PDF を Word に変換してみる
インストールは必要ありません。ブラウザで直接動作します。
