web-dev-qa-db-ja.com

PDF pythonからテーブルを抽出/識別する

テーブルの識別と抽出をサポートするオープンソースライブラリはありますか?

これは私が意味する:

  1. テーブル構造が存在することを識別する
  2. 内容からテーブルを分類する
  3. 便利な出力形式でテーブルからデータを抽出します。 JSON/CSVなど.

このトピックに関する同様の質問を調べたところ、次のことがわかりました。

  • PDFMiner これは問題3に対処しますが、ユーザーは各テーブルのテーブル構造が存在する場所をPDFMinerに指定する必要があるようです(間違っている場合は修正してください)
  • pdf-table-extract 問題1に対処しようとしますが、 To-Do リストに従って、現在は空白で区切られたテーブルを識別できません。私のPDFのすべてのテーブルは空白で区切られているため、これは問題です!

現在、PDFからテーブル構造を識別するための機械学習ソリューションの開発に多くの時間を費やさなければならないと考えています。したがって、他のアプローチも歓迎です!

42

あなたは間違いなく私の答えを見てください:

また、そこに含まれるすべてのリンクをご覧ください。

Tabula/TabulaPDF は、現在、PDFスクレイピングに使用できる最高のテーブル抽出ツールです。

35
Kurt Pfeifle

OCRライブラリ、バウンディングボックス、クラスタリングアルゴリズムを何時間も探索した後、私はあなたが泣きたいほど簡単な解決策を見つけました!

Linuxを使用していることを願っています。

pdftotext -layout NAME_OF_PDF.pdf

すごい!!

これで、すべての情報がNice列に並んだNiceテキストファイルが作成されました。csvなどにフォーマットするのは簡単です。

私がLinuxを愛しているのはこのような時代であり、これらの人たちはすべてに対するすばらしいソリューションを思いつき、それを無料で提供しています!

36
Ike

Kurt Pfeifleからの非常に有用な回答に加えたいと思います-TabulaのPythonラッパーがあり、これはこれまでのところ非常にうまくいくようです: https:// github .com/chezou/tabula-py

これにより、PDFテーブルがPandasデータフレームに変換されます。また、不規則なデータに非常に便利なX、Y座標で領域を設定することもできます。

16
Blodwyn Pig