人間と同じ方法で、複雑なドキュメントを簡単に分割できます。
ドキュメントのチャンク化は、RAG システムの基盤となる困難なタスクです。 AI アプリケーションを成功させるには高品質の結果が不可欠ですが、ほとんどのオープンソース ライブラリは複雑なドキュメントを処理する能力に限界があります。
Open Parse は、ドキュメント レイアウトを視覚的に識別し、効果的にチャンク化できる柔軟で使いやすいライブラリを提供することで、このギャップを埋めるように設計されています。
テキスト分割では、ファイルを生のテキストに変換し、スライスします。
レイアウトパーサーのような素晴らしいライブラリがいくつかあります。
?視覚主導: Open-Parse は、単純なテキスト分割を超えて、文書を視覚的に分析して優れた LLM 入力を実現します。
✍️ マークダウンのサポート:見出し、太字、斜体を解析するための基本的なマークダウン サポート。
高精度テーブルのサポート:従来のツールを上回る精度でテーブルをクリーンなマークダウン形式に抽出します。
拡張可能:独自の後処理ステップを簡単に実装できます。
直感的:優れたエディターのサポート。どこもかしこも完成。デバッグにかかる時間が短縮されます。
簡単:使いやすく、学びやすいように設計されています。ドキュメントを読む時間が短縮されます。
import openparse
basic_doc_path = "./sample-docs/mobile-home-manual.pdf"
parser = openparse . DocumentParser ()
parsed_basic_doc = parser . parse ( basic_doc_path )
for node in parsed_basic_doc . nodes :
print ( node )
?こちらのサンプルノートブックをお試しください
ドキュメントのチャンク化は基本的に、類似したセマンティック ノードをグループ化することです。各ノードのテキストを埋め込むことで、類似性に基づいてノードをクラスター化できます。
from openparse import processing , DocumentParser
semantic_pipeline = processing . SemanticIngestionPipeline (
openai_api_key = OPEN_AI_KEY ,
model = "text-embedding-3-large" ,
min_tokens = 64 ,
max_tokens = 1024 ,
)
parser = DocumentParser (
processing_pipeline = semantic_pipeline ,
)
parsed_content = parser . parse ( basic_doc_path )
?サンプルノートはこちら
内部で pydantic を使用するため、結果をシリアル化できます。
parsed_content . dict ()
# or to convert to a valid json dict
parsed_content . json ()
Python 3.8+
PDF の処理:
テーブルの抽出:
pip install openparse
OCR サポートを有効にする:
PyMuPDF には、OCR 機能をサポートするすべてのロジックがすでに含まれています。ただし、Tesseract の言語サポート データも必要なので、Tesseract-OCR のインストールは依然として必要です。
言語サポート フォルダーの場所は、環境変数「TESSDATA_PREFIX」に保存するか、該当する関数のパラメーターとして伝達する必要があります。
したがって、OCR 機能を動作させるには、次のチェックリストを必ず完了してください。
Tesseractをインストールします。
Tesseract の言語サポート フォルダーを見つけます。通常、次の場所にあります。
Windows: C:/Program Files/Tesseract-OCR/tessdata
Unix システム: /usr/share/tesseract-ocr/5/tessdata
macOS (Homebrew 経由でインストール):
/opt/homebrew/share/tessdata
/opt/homebrew/Cellar/tesseract/<version>/share/tessdata/
環境変数 TESSDATA_PREFIX を設定します。
Windows: setx TESSDATA_PREFIX "C:/Program Files/Tesseract-OCR/tessdata"
Unix システム: declare -x TESSDATA_PREFIX=/usr/share/tesseract-ocr/5/tessdata
macOS (Homebrew 経由でインストール): export TESSDATA_PREFIX=$(brew --prefix tesseract)/share/tessdata
注: Windows システムでは、スクリプトを開始する前に、これを Python の外部で行う必要があります。 os.environ を操作するだけでは機能しません。
このリポジトリは、さまざまな深層学習モデルを使用してテーブルのコンテンツを解析するオプション機能を提供します。
pip install "openparse[ml]"
次に、モデルの重みをダウンロードします。
openparse-download
次のようにして解析を実行できます。
parser = openparse . DocumentParser (
table_args = {
"parsing_algorithm" : "unitable" ,
"min_table_confidence" : 0.8 ,
},
)
parsed_nodes = parser . parse ( pdf_path )
現在、すべてのテーブル検出にテーブル トランスフォーマーを使用していますが、そのパフォーマンスが標準以下であることに注意してください。これは、unitable の下流の結果に悪影響を及ぼします。より良いモデルをご存知の場合は、問題を開いてください。unitable チームは、これもすぐに追加する可能性があると述べています。
https://github.com/Filimoa/open-parse/tree/main/src/cookbooks
https://filimoa.github.io/open-parse/
あなたのユースケースには何か特別なものが必要ですか?手を差し伸べてください。