52

問題
できれば python を使用してテキストを検索することにより、ドキュメントのタイプ (たとえば、訴状、通信文、召喚状など) を判断しようとしています。すべての PDF は検索可能ですが、Python で解析し、スクリプトを適用して検索する解決策は見つかりませんでした (最初にテキスト ファイルに変換することはできませんが、n 個のドキュメントに対してリソースを大量に消費する可能性があります)。

これまで
に私が行ったことは、pypdf、pdfminer、adobe pdf ドキュメント、およびここで見つけた質問を調べたことです (ただし、この問題を直接解決するものはないようです)。PDFminer は最も可能性が高いようですが、ドキュメントを読んだ後、どこから始めればよいかさえわかりません。

ページ単位、行単位、またはドキュメント全体のいずれかで、PDF テキストを読むための簡単で効果的な方法はありますか? または他の回避策はありますか?

4

11 に答える 11

50

これは PDF マイニングと呼ばれ、次の理由から非常に困難です。

  • PDF は、解析するためではなく、印刷するために設計されたドキュメント形式です。PDF ドキュメント内では、テキストは特定の順序ではなく (印刷に順序が重要でない限り)、ほとんどの場合、元のテキスト構造が失われます (文字は単語としてグループ化されず、単語は文でグループ化されない可能性があり、順序はそれらは紙に配置されることが多く、ランダムです)。
  • PDF を生成するソフトウェアはたくさんありますが、その多くは欠陥のあるものです。

PDFminer などのツールは、ヒューリスティックを使用して、ページ内の位置に基づいて文字と単語を再度グループ化します。インターフェイスがかなり低レベルであることには同意しますが、解決しようとしている問題がわかっている場合はより理にかなっています (最終的に重要なのは、文字/単語/行が隣人からどれだけ近くにある必要があるかを選択することです)。段落の一部と見なされます)。

非常に優れた OCR を持っている場合は、各ページの画像を生成して OCR に供給するという (時間とコンピューターの処理能力の点で) 高価な代替手段があります。

つまり、私の答えはノーです。PDF ファイルからテキストを抽出するための単純で効果的な方法はありません。文書の構造が既知の場合、ルールを微調整して良い結果を得ることができますが、それは常にギャンブルです。 .

私は本当に間違っていることを証明したいと思います。

[アップデート]

答えは変わっていませんが、最近私は 2 つのプロジェクトに関与しました。そのうちの 1 つは、コンピューター ビジョンを使用して、スキャンした病院のフォームからデータを抽出することです。もう 1 つは、裁判所の記録からデータを抽出します。私が学んだことは次のとおりです。

  1. コンピューター ビジョンは、2018 年にはごくわずかな人間の手の届くところまで来ています。すでに分類済みのドキュメントの良いサンプルがある場合は、OpenCV または SciKit-Image を使用して特徴を抽出し、機械学習分類子をトレーニングしてドキュメントの種類を判断できます。

  2. 分析している PDF が「検索可能」である場合、pdftotextのようなソフトウェアとベイジアン フィルター (スパムの分類に使用されるのと同じ種類のアルゴリズム) を使用して、すべてのテキストを非常に遠くまで抽出することができます。

そのため、PDF ファイルからテキストを抽出するための信頼できる効果的な方法はありませんが、当面の問題 (ドキュメント タイプの分類) を解決するためには必要ないかもしれません。

于 2013-06-14T00:52:40.733 に答える
17

私が働いている会社のために、PDFを処理用のデータ(請求書、決済、スキャンされたチケットなど)に変換するための広範なシステムを作成しました.@Paulo Scardineは正しいです.これを行うための完全に信頼できる簡単な方法はありません. . とはいえ、最も速く、最も信頼性が高く、負荷が最も少ない方法は、 xpdfツール セットのpdftotext一部であるを使用することです。このツールは、検索可能な PDF を、Python で読み取って解析できるテキスト ファイルにすばやく変換します。ヒント:引数を使用します。ところで、すべての PDF が検索可能というわけではなく、テキストを含むものだけが検索可能です。一部の PDF には、テキストがまったくない画像のみが含まれています。-layout

于 2013-06-14T01:07:30.010 に答える
5

@Paulo PDFデータマイニングは大きな苦痛です。pdftotextしかし、ここで無料で入手できる Xpdf スイートの一部である場合は、成功する可能性があります。

http://www.foolabs.com/xpdf/download.html

単一のキーワードだけを探している場合は、これで十分です。

pdftotextコマンド ライン ユーティリティですが、非常に簡単に使用できます。これにより、作業しやすいテキスト ファイルが提供されます。

于 2013-06-14T01:02:50.270 に答える