PDFは、ビジネスドキュメントで最もよく使用されるデータ形式のXNUMXつです。 多くの企業や組織は、これらのPDFドキュメントを作成して読み取るためにさまざまなツールに依存しています。
ただし、PDFから特定の/重要なデータを選択的に抽出することは困難です。
ここで、JSON(Javascript Object Notation)が登場します。
これは、情報交換で最も愛されているデータ形式のXNUMXつです。 特にWebアプリケーションに関しては、ほとんどのデータはAPIを介してJSONを使用して通信されます。 DBクエリ.
このブログ投稿では、次のことを確認します。
- Nanonetsが複雑なビジネスPDFドキュメントから構造化されたJSONファイルへの複雑なデータ変換を自動化する方法。
- Python、Linux、JavaScript モジュールを使用して PDF を JSON に変換するためのいくつかの無料のオープンソース技術。
- 表や特定のテキスト文字列などのPDFから特定の/複雑なデータを抽出する方法。
- PDFをJSONに変換するプロセスを自動化するのに役立つカスタムワークフロー。
PDF ドキュメントから特定のデータを抽出して JSON に変換したいですか?チェックアウト ナノネットAPI あらゆる種類の技術文書から PDF から JSON へのバッチ変換を自動化します。
Nanonets自動PDFからJSONへのコンバーター
- ユーザー登録 100ページのクレジットを提供するNanonetsの無料プランの場合– クレジットカードは必要ありません.
- ビジネスPDFファイルのバッチを追加します
- Nanonetsは、さまざまな種類のドキュメント(請求書、領収書、運転免許証、パスポート、テーブル)からフィールドを自動キャプチャします。
- NanonetsのAIをトレーニングして、あらゆる種類のドキュメントから関心のあるデータフィールドだけを検出/キャプチャすることもできます。
- 抽出されたデータを確認し、JSON出力としてエクスポートします
- NanonetsをERPソフトウェアのホストと統合することもできます– 通話をスケジュールする AIの専門家と協力して、ユースケースを試してみてください。
- ご確認ください> OCR API PDF から JSON へのワークフローを自動化する
したい データをキャプチャする PDFドキュメントから、JSON、csv、または Excel? Nanonetsがどのように役立つかをご覧ください。
PDFからJSONへの変換の必要性
ほとんどすべての企業は、情報共有のためにドキュメントに依存しています。 これらには、書類、請求書、納税申告書、領収書、医療報告書などがあります。
これらのドキュメントは、PDFとして共有/受信されることがよくあります。
ただし、重要な情報を検索したり、すべての重要な情報を分析して保存するダッシュボードを作成したりする場合は、これらのPDFから手動でデータを収集するのは困難な作業になる可能性があります。
PDFが電子的に生成されている場合は、情報をコピーしてデータソースに貼り付けることができます。 そうでなければ、私たちはしなければならないかもしれません OCRを使用する 情報を抽出するための機械学習技術。
また、PDFのデータは整理されておらず、直接機械で読み取ることもできません。 したがって、手動で情報を検索する必要がある場合があります。
しかし、JSONに関しては、すべてがキーと値のペアで編成されています。 これが例です。
{
"company_name": "Company Name",
"Invoice_date": "Date ",
"Invoice_total":"$0.00",
"Invoice_line_items: "",
"Invoice_tax": ""
}
上記のJSON形式を見ることができれば、データはより整理されており、この情報をWeb上でより便利に共有することもできます。 これが、PDFからJSONへのデータのエクスポートが多くの企業にとって重要である理由です。
JSON に伴うビジネス上の利点
JSONデータ形式には、企業にとってPDFよりも多くの利点があります。
- JSONの方が速い:JSON構文は使いやすいです。 JSONデータを解析しようとするときはいつでも、PDFや他のデータ形式と比較すると実行がはるかに高速です。 これは、構文が軽量で、応答をすばやく実行するためです。
- もっと読みやすい:JSONデータはより読みやすくなります。 キーと値を使用した簡単なデータマッピングがあります。 したがって、何かを検索したり、PDFからデータを整理したりする場合は、JSONの方が便利です。 さらに、JSONはデータのネストをサポートしているため、テーブルのデータをより効率的に保存できます。
- 便利なスキーマ: JSONは、ほとんどのオペレーティングシステムとプログラミング言語で共通です。 したがって、ビジネスを自動化するソフトウェアまたはWebアプリケーションを構築している場合は、JSONが適切なデータ形式である必要があります。 また、ほとんどのWebブラウザーはJSON形式をサポートしています。 したがって、サードパーティのソフトウェアを使用してJSONデータを読み取るために追加の作業を行う必要はありません。
- 簡単な共有: JSON は、大きなテーブルやテキストなど、あらゆるサイズのデータを共有するための最適なツールです。これは、JSON がデータを配列に保存するため、データ転送によりアクセスしやすくなるからです。 このため、JSON は Web API および Web 開発にとって優れたファイル形式です。
次のセクションでは、PDFをJSON形式に変換するときに直面する可能性のあるいくつかの課題を見てみましょう。
Nanonetsには多くの興味深いものがあります ユースケース これにより、業績を最適化し、コストを節約し、成長を促進することができます。 詳細 Nanonetsのユースケースを製品にどのように適用できるか。
PDFからJSONへの変換に関する課題
PDFからJSONにエクスポートする際のいくつかの課題を見てみましょう。
- フォントの検出:人々はPDFドキュメント内で異なるフォント、色、および配置を使用します。 したがって、パーサーがこれらを読むのは本当に難しいです。 また、これをエクスポートするときに、パーサーがデータを抽出した後、すべての情報がJSON形式で正しくマップされるように特定のルールを定義する必要があります。 このような場合、正規表現は、特定のテキストを選択し、それをJSON形式の正しいキーにエクスポートするために広く使用されています。
- スキャンしたドキュメントからのテキストの検出: 前述のように、PDFが電子的に生成されない場合は、OCRを使用する必要があり、OCRを選択することが重要です。 多くのユーザーがtesseractのようなオープンソースツールを試していますが、独自の制限があります。 たとえば、テキストが不適切にキャプチャされたり、キャプチャ時に位置がずれたりすると、正八胞体が機能しない可能性があり、他のツールを選択するとコストがかかる可能性があります。
- テーブルの識別:ほとんどのビジネスドキュメントには表形式の情報が含まれており、PDFドキュメントからこれらのテーブルを決定してJSONに変換することは困難な作業です。 電子的に作成されたPDFドキュメントからテーブルを抽出するのに役立つPythonとJavaに基づくライブラリがいくつかあります。
- スキャンした PDF からのテーブルの識別: PDFをスキャンすると、ほとんどのパッケージが機能しません。 この場合、tesseractのようなオープンソースのOCRを選択すると、テキストが抽出される可能性がありますが、すべてのテーブル形式が失われる可能性があります。 したがって、間違った形式のアウトラインアイテムを選択するのは困難です。 ここで、機械学習とディープラーニングベースのアルゴリズムを使用する必要があります。 いくつかの一般的なアルゴリズムはCNNに基づいており、これらのアルゴリズムを改善するために多くの研究が行われています。
以下は、ドキュメントからのテーブル抽出の問題を解決するいくつかの研究論文です。
次のセクションでは、PDF からデータを解析して JSON ファイルを生成する方法を見てみましょう。
PDFからのデータの解析とPythonおよびLinuxを使用したJSONファイルの生成
開発者の経験があれば、PDFの解析は複雑な作業ではありません。
まず、PDFファイルにテキストデータが含まれているか、スキャンされた画像で構成されているかを確認する必要があります。 テキストが返されない場合は、テキストデータを抽出できるかどうか、またはファイルをOCRライブラリにパイプできるかどうかを確認する必要があります。
これは、Pythonライブラリを使用するか、一部のLinuxコマンドラインユーティリティに依存することで実現できます。
Pdfテキスト 電子PDFを解析するための最も人気のあるライブラリのXNUMXつです。 これを使用して、すべてのPDFデータをテキスト形式に変換してからJSON形式にプッシュすることができます。
これが私たちがどのように使うことができるかについてのいくつかの指示です pdftotext
LinuxマシンでPDFを解析します。
まず、コマンドライン ツールをインストールします。
sudo apt-get install poppler-utils
次に、 pdftotext
コマンドを実行して、PDF ファイルのソース パスと宛先テキスト ファイルの場所を追加します。
pdftotext {PDF-file} {text-file}
これにより、PDFファイルからすべての読み取り可能なテキストを抽出できるはずです。
JSONファイルを生成するには、テキストを解析して関連するキーと値のペアにエクスポートできるデータに基づいて、スクリプトを再度作成する必要があります。
これは、Pythonで作成した単純な変換スクリプトの例です。 .txt
JSON形式のファイル。
import json
filename = 'data.txt'
dict1 = {}
with open(filename) as fh:
for line in fh:
command, description = line.strip().split(None, 1)
dict1[command] = description.strip()
# creating json file
# the JSON file is named as test1
out_file = open("test1.json", "w")
json.dump(dict1, out_file, indent = 4, sort_keys = False)
out_file.close()
テキスト ファイル内のデータを次のように考えます。
invoice_id #234
invoice_name Invoice from AWS
invoice_total $345
ここでは、最初に組み込みのJSONライブラリをインポートしました。 ここで、テキストファイルのすべてのキーと値のペアを格納するための辞書データ型を作成します。 次に、ファイル内のすべての行を繰り返し処理し、コマンド、説明にストリップして、作成された辞書に保存します。 最後に、新しいJSONファイルを作成して使用します json.dump
並べ替えとインデントを含む特定の構成で辞書をJSONファイルにダンプするメソッド。
ただし、PDFのデータは、例のように整理されていません。 したがって、複雑なテキスト フォーマットを処理するには、カスタム パイプラインとスクリプトを使用する必要がある場合があります。 そのような場合、次のようなツール ナノネット 次のセクションでは、Nanonetsがこの問題をはるかに簡単な方法で解決する方法についても見ていきます。
その前に、node.js を使用して PDF を JSON に変換するもう XNUMX つのライブラリを見てみましょう。
pdf2json
Node.jsの PDFを解析してバイナリ形式からJSON形式に変換するモジュール。 それはで構築されています pdf.js インタラクティブなフォーム要素とブラウザの外部で解析するテキストコンテンツで拡張します。
このモジュールを使用してJSONファイルを解析する例を次に示します。
まず、必ず npm
インストーラーを作成し、次のコマンドを使用してモジュールをインストールします。
npm install pdf2json
次に、ノードサーバーで、次のスニペットを使用して、 pdf2json そして、pdf を JSON にエクスポートします。
let fs = require('fs'),
PDFParser = require("pdf2json");
let pdfParser = new PDFParser();
pdfParser.on("pdfParser_dataError", errData => console.error(errData.parserError) );
pdfParser.on("pdfParser_dataReady", pdfData => {
fs.writeFile("./pdf2json/test/F1040EZ.json", JSON.stringify(pdfData));
});
pdfParser.loadPDF("./pdf2json/test/pdf/fd/form/F1040EZ.pdf");
上記のコード スニペットは、モジュールの JSON ファイルの例を使用して JSON ファイルにエクスポートします。これは、 ./test/target/
プロジェクト内のフォルダ。 B
以下に、モジュールがJSONファイルをエクスポートする方法のスクリーンショットを示します。
テーブル内のPDFを解析する場合、これらのライブラリは機能しない可能性があります。
表形式のデータをJSONに抽出するには、OCRと機械学習のアルゴリズムを活用する必要があります。 Nanonetsは、以下に示すようにそれを実行します。
PDF から JSON へのカスタマイズされたデータ変換
場合によっては、ビジネスドキュメントからデータを抽出するときに、カスタマイズが必要になることがあります。 たとえば、特定のページまたはテーブルのみが必要な場合、直接実行することはできません。 この場合、パーサーに追加のルールを提供する必要があるかもしれませんが、これも時間がかかります。 しかし、ほとんどの人が必要とするカスタマイズとアクションをどのように実行できるかを見てみましょう。
以下は、PDFからJSONへの変換のカスタマイズに必要なアクションの一部です。
- PDFから特定のテキストまたはページのみを抽出します
- PDFドキュメントからすべてのテーブルを抽出します
- PDFの特定のテーブルから特定の列を抽出します
- JSONにエクスポートする前にPDFからテキストをフィルタリングする
- PDF から抽出したデータに基づいてネストされた JSON を作成する
- データに基づいてJSON構造をフォーマットする
- 抽出後、JSONの特定のフィールドの値を作成、削除、更新します
これらは、さまざまな方法でデータを保存するために、またはアプリケーションのAPIを構築する場合に必要となることが多いアクションの一部です。 これらをどのように達成できるか見てみましょう。
特定のテキストの抽出:PDFでは、正規表現を使用して特定のテキストを抽出できます。 たとえば、正規表現を使用してすべてのメールと電話番号が必要な場合、それらを選択できます。 PDFがスキャン形式の場合、PDFのレイアウトを理解できる深層学習アルゴリズムでトレーニングし、トレーニングデータに付けられた座標と注釈に基づいてフィールドを抽出する必要があります。 ドキュメント レイアウトを理解してテキストを抽出するための最も一般的なオープン ソース リポジトリの XNUMX つは LayoutML であり、カスタム テキスト抽出用の BERT モデルでトレーニングされます。 ただし、テキスト抽出の精度を高めるには、十分なデータが必要です。
テーブルのカスタマイズ: 説明したように、テーブルは、CamelotやTabula-pyなどのライブラリを使用するか、OCRと深層学習ベースのアルゴリズムを使用して抽出できます。 ただし、カスタマイズには、パンダなどのライブラリを使用する必要があります。 これにより、テーブルからデータを作成、更新、およびシリアル化できます。 これは、データフレームと呼ばれるカスタムデータ型を使用します。これは、テーブルデータの操作とカスタマイズに広く使用されています。 パンダを使用する他の利点には、抽出プロセス中に特定の数学操作を実行できるカスタム関数を作成することが含まれます。
JSONデータのフォーマット:PDFをJSONにエクスポートした後、キーと値のペアであるよりカスタマイズ可能なデータ型があるため、PDFのフォーマットは簡単な作業です。 簡単なスクリプトを開発するか、オンラインツールを使用してこれらのキーと値のペアを検索し、フォーマットすることができます。 フォーマットの最も一般的なパラメータには、インデント、区切り文字、並べ替えキー、循環チェック、データチェックなどがあります。 JSONがAPIとして使用されている場合は、Postmanまたは任意のブラウザ拡張機能を使用してデータをフォーマットし、APIとやり取りできます。
PDFドキュメントから情報を抽出し、それらをJSON形式に変換したいですか? Nanonetsをチェックして、PDFドキュメントからJSONへの情報のエクスポートを自動化します。