จัดกลุ่มเอกสารที่ซับซ้อนได้อย่างง่ายดายในลักษณะเดียวกับที่มนุษย์ทำ
การแยกเอกสารเป็นชิ้นเป็นงานที่ท้าทายซึ่งเป็นรากฐานของระบบ RAG ผลลัพธ์คุณภาพสูงมีความสำคัญอย่างยิ่งต่อความสำเร็จของแอปพลิเคชัน AI แต่ไลบรารีโอเพ่นซอร์สส่วนใหญ่ยังมีข้อจำกัดในการจัดการเอกสารที่ซับซ้อน
Open Parse ได้รับการออกแบบมาเพื่อเติมเต็มช่องว่างนี้โดยจัดให้มีไลบรารี่ที่ยืดหยุ่นและใช้งานง่ายซึ่งมีความสามารถในการมองเห็นเค้าโครงเอกสารที่มองเห็นได้ชัดเจนและแบ่งเป็นชิ้น ๆ ได้อย่างมีประสิทธิภาพ
การแยกข้อความจะแปลงไฟล์เป็นข้อความดิบและแบ่งส่วน
มีไลบรารีที่ยอดเยี่ยมบางอย่างเช่นlayout-parser
- ขับเคลื่อนด้วยสายตา: Open-Parse วิเคราะห์เอกสารด้วยสายตาเพื่อการป้อนข้อมูล LLM ที่เหนือกว่า นอกเหนือไปจากการแยกข้อความที่ไร้เดียงสา
✍️ การสนับสนุน Markdown: การสนับสนุน Markdown ขั้นพื้นฐานสำหรับการแยกวิเคราะห์ส่วนหัว ตัวหนา และตัวเอียง
การสนับสนุนตารางความแม่นยำสูง: แยกตารางเป็นรูปแบบ Markdown ที่สะอาดตาด้วยความแม่นยำที่เหนือกว่าเครื่องมือแบบเดิม
ขยายได้: ใช้ขั้นตอนหลังการประมวลผลของคุณเองได้อย่างง่ายดาย
ใช้งานง่าย: รองรับโปรแกรมแก้ไขที่ยอดเยี่ยม สำเร็จทุกที่.. ใช้เวลาแก้ไขข้อบกพร่องน้อยลง
ง่าย: ออกแบบมาให้ใช้งานง่ายและเรียนรู้ ใช้เวลาอ่านเอกสารน้อยลง
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 ()
ไพธอน 3.8+
การจัดการกับ PDF:
การแยกตาราง:
pip install openparse
การเปิดใช้งานการสนับสนุน OCR :
PyMuPDF จะมีตรรกะทั้งหมดเพื่อรองรับฟังก์ชัน OCR อยู่แล้ว แต่ยังจำเป็นต้องมีข้อมูลสนับสนุนภาษาของ Tesseract ด้วย ดังนั้นจึงจำเป็นต้องมีการติดตั้ง Tesseract-OCR
ตำแหน่งโฟลเดอร์รองรับภาษาจะต้องสื่อสารผ่านการเก็บไว้ในตัวแปรสภาพแวดล้อม "TESSDATA_PREFIX" หรือเป็นพารามิเตอร์ในฟังก์ชันที่เกี่ยวข้อง
ดังนั้นสำหรับฟังก์ชัน OCR ที่ใช้งานได้ โปรดตรวจสอบให้แน่ใจว่าได้กรอกรายการตรวจสอบนี้แล้ว:
ติดตั้ง Tesseract.
ค้นหาโฟลเดอร์สนับสนุนภาษาของ Tesseract โดยทั่วไปคุณจะพบได้ที่นี่:
Windows: C:/Program Files/Tesseract-OCR/tessdata
ระบบยูนิกซ์: /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 )
โปรดทราบว่าขณะนี้เราใช้ตัวแปลงตารางสำหรับการตรวจจับตารางทั้งหมด และเราพบว่าประสิทธิภาพของตารางนั้นด้อยกว่า สิ่งนี้ส่งผลเสียต่อผลลัพธ์ดาวน์สตรีมของหน่วย หากคุณทราบถึงโมเดลที่ดีกว่า โปรดเปิดประเด็น - ทีมงานที่แยกส่วนได้กล่าวว่าพวกเขาอาจจะเพิ่มสิ่งนี้ในเร็วๆ นี้ด้วย
https://github.com/Filimoa/open-parse/tree/main/src/cookbooks
https://filimoa.github.io/open-parse/
กรณีการใช้งานของคุณต้องการอะไรเป็นพิเศษหรือไม่? เอื้อมมือออก