GROBID ライブラリ: インストールと使用

1.Grobidのインストールと使用
(1) グロビッドの紹介

公式ドキュメント:はじめに - GROBID Documentation

GROBID (または GROBID) は、書誌データの生成です。

GROBID は、未加工のドキュメント (PDF など) を構造化された XML/TEI でエンコードされたドキュメントに抽出、解析、および再構築するための機械学習ライブラリであり、特に技術的および科学的な出版物に焦点を当てています。最初の開発は 2008 年に趣味で始めました。2011 年に、このツールはオープン ソースとして利用できるようになりました。GROBID に関する作業は、サイド プロジェクトとして開始されて以来安定しており、継続することが期待されています。

(2) プログラムのインストール

GROBIDのインストール - GROBID Documentation

プログラムのインストールには、以下の操作を行います。

GitHub grobid と入力して、リリース バージョンをダウンロードします

ここに画像の説明を挿入

解凍が完了したら、解凍したファイルのディレクトリを入力します

ここに画像の説明を挿入

コマンド ラインで gradlew clean install と入力します。

ここに画像の説明を挿入

JAVA_HOME パス無効チェック後に検出されたセミコロンの存在

セミコロンを削除した後、問題は解決しました。

ここに画像の説明を挿入

関連する jar ファイルの自動インストールを開始します。

インストールが完了すると、プロンプトが表示されます

ここに画像の説明を挿入

(3) コマンド実行

操作方法はドキュメントにあるGROBIDサービス - GROBID Documentation

コマンド ラインで gradlew run と入力して、プログラムの実行を開始します。

ここに画像の説明を挿入

100% ロードする必要はありません プログレス バーが動かない場合は、ブラウザーに移動して API をテストします

デフォルトのポートは http://localhost:8070/ です

入力すると、次のインターフェイスが表示されます。

ここに画像の説明を挿入

(4) Webでの利用

インターフェイスは比較的シンプルで、PDF を例にとると、PDF をアップロードし、そのヘッダー情報を解析して通常の結果を生成しました。

ここに画像の説明を挿入

2. Grobid 呼び出し: PDF バッチ処理
(1) APIスクリプト取得

Web を使用して PDF を直接解析したくない場合は、API を介して呼び出す必要があります。

実際、開発者からもAPIの利用が提唱されていますが、やはりWeb側ではバッチ処理ができません。

それでは、何万ものPDFファイルを扱うのは非効率です。

ここに画像の説明を挿入

公式 Web サイトには、Python Java Node.js を含む 3 種類の API 呼び出しインターフェイスが用意されています。私は Python を使用することにしました。

ここからプロジェクト ファイルをダウンロードします https://github.com/kermitt2/grobid-client-python

ここに画像の説明を挿入

解凍すると、複数のpyファイルがあります

ここに画像の説明を挿入

そしていくつかのテストケース

それが提供するreadme.mdファイルを読み、次のように要約します

  • この Python クライアントは、ファイル システムの特定のディレクトリにある一連の PDF を同時に処理したり、結果を特定の出力ディレクトリに書き込んだり、別の Python プログラムから呼び出すことができます。
  • このクライアントを使用するには、まずコマンド ラインで gradlew run を実行し、Web ポートを正常に開く必要があります。
  • このクライアントを使用するために他の依存ライブラリは必要ありませんが、python3.5 以上が必要です。
(2) 呼び出し方法

公式ドキュメントでクライアントを使用する方法は 2 つあります。


1. コマンドライン

cmd コマンド ライン環境に入る

ここに画像の説明を挿入

Python クライアントへのパス

cd grobid_client_python

環境を初期化する

python3 setup.py install

解析コマンドを実行するには、入力パス、出力パス、および解析方法を指定する必要があります。

grobid_client.py --input C:/Users/*/Desktop/in --output C:/Users/*/Desktop/out processFulltextDocument

2.python脚本

または、次のコードを直接実行します (パッケージとパッケージの相対位置に注意してください)。

resources/in の下にあるすべての pdf ファイルを読み取ることができます

resources/out に対応する xml ファイルを生成します。

from grobid_client.grobid_client import GrobidClient

if __name__ == "__main__":
    client = GrobidClient(config_path="./config.json")
    client.process("processFulltextDocument", "resources/in", output="resources/out/", consolidate_citations=True, tei_coordinates=True, force=True)
3.BAD_INPUT_DATA] PDF から XML への変換が次のエラー コードで失敗しました: 99 エラーの理由
(1) エラーの原因

Windows システムを使用して Web ターミナルにアクセスすると、次のエラーが発生します。

ここに画像の説明を挿入

github でクエリを実行し、公式ドキュメントを 1 時間読み直したところ、プログラムが Windows プラットフォームをサポートしていないことがわかりました。

プログラムの開発者は、コミュニティの議論で、3 つのプラットフォームをサポートすることは彼らにとって負担が大きすぎると述べました。

公式文書:

Windows related issues
Grobid is developed and tested on Linux. macOS is also supported, although some components might behave slighly different due to the natural incompatibility of Apple with the rest of the world and the availability on some proprietary fonts on this platform.

Windows, unfortunately, is currently not anymore supported, due to lack of experience and time constraints. We recommend Windows users to use the Grobid Docker image (documented here) and call the system via API using one of the various grobid clients.

Windows相关问题

Grobid是在Linux上开发和测试的。macOS也被支持,尽管由于苹果与世界其他地方的自然不兼容以及该平台上的一些专有字体的可用性,一些组件的行为可能略有不同。

不幸的是,由于缺乏经验和时间限制,目前不再支持Windows。我们建议Windows用户使用Grobid Docker映像(这里有文档),并使用各种Grobid客户端之一通过API调用系统。

開発者は次のように答えました。

サイト リンク: [ BAD_INPUT_DATA ] PDF から XML への変換がエラー コード 99 で失敗しました · 問題 #166 · kermitt2/grobid · GitHub

grobid is not supported to work on Windows. Unfortunately three platforms are too many for us, I recommend you to run it using docker.

grobid不支持在Windows上工作。不幸的是,三个平台对我们来说太多了,我建议您使用docker运行它。
(2) 解決策の提案

1.アップルコンピュータを買う

2. Docker / VMware Workstation などのプログラムで Linux などの仮想環境を構築する

ブログ投稿GROBID ライブラリを参照してください: PDF から XML への変換がエラー コードで失敗しました: 99 エラー解決

3. PDF を抽出して解析できる同様の機能を備えた機械学習ライブラリを探します。

おすすめ

転載: blog.csdn.net/yt266666/article/details/127452708