web-dev-qa-db-ja.com

高度なPDFを使用した解析Python(テーブルなしのテキストの抽出など):ベストライブラリとは?

PDFライブラリを探しています。これにより、PDFドキュメントからテキストを抽出できます。PyPDFを見て、これを抽出できます。 PDFドキュメントからのテキスト。これに関する問題は、ドキュメント内にテーブルがある場合、テーブル内のテキストがドキュメントの残りのテキストとインラインで抽出されることです。これは、有用ではなく、文字化けして見えるテキストのセクションを生成するため、問題になる可能性があります(たとえば、多数の数字が一緒につぶされます)。

私はもう少し高度なものを探しています。 PDFドキュメント、除外任意のテーブルと特別なフォーマットからテキストを抽出したい。これを行うライブラリはありますか?または強制されますか?これらのセクションを取り除くために出力テキストにいくつかの後処理を行うには?

79
Mike Cialowicz

PDFMiner 、他のPDF Pythonのパーサーもご覧ください。

PDFMinerで特に興味深いのは、テキストパーツを抽出する際にテキストパーツを再グループ化する方法を制御できることです。行、単語、文字などの間のスペースを指定することでこれを行います。したがって、これを微調整することで、必要なものを実現できます(ドキュメントのばらつきによって異なります)。 PDFMinerは、ページ内のテキストの場所を提供することもできます。また、オブジェクトIDなどでデータを抽出できます。 PDFMinerを掘り下げて、クリエイティブになりましょう!

しかし、PDFではテキストは連続ではなく、ページ内に絶対に配置された多数の小さな文字グループから作成されているため、問題を解決するのは本当に簡単ではありません。 PDFの焦点は、レイアウトをそのまま維持することです。コンテンツ指向ではなく、プレゼンテーション指向です。

57
Etienne

視覚的に類似したPDFは、作成方法によって構造が大きく異なるため、これを解決するのは難しい問題です。最悪の場合、ライブラリは基本的にOCRのように振る舞う必要があります。一方、PDFには、テーブルや図を簡単に削除するための十分な構造とメタデータが含まれている可能性があり、ライブラリはこれらを利用して調整できます。

さまざまなPDFの問題を解決するオープンソースツールはないと確信していますが、あなたが求めていることを正確に実行すると主張する商用ソフトウェアを聞いたことを覚えています。グーグル中にあなたがそれらに遭遇するだろうと確信しています。

0
akaihola