pd3f-core
ทดลองใช้งานด้วยความระมัดระวัง
pd3f-core
เป็นแพ็คเกจ Python เพื่อ สร้าง ข้อความต่อเนื่อง ต้นฉบับจาก PDF ด้วยโมเดลภาษา pd3f-core
ถือว่า PDF ของคุณเป็นแบบข้อความหรือ OCRd อยู่แล้ว pd3f-core
เป็นหัวใจสำคัญของ pd3f: ไปป์ไลน์การแยกข้อความที่ใช้ Docker เต็มรูปแบบ (รวมถึง OCR)
pd3f-core
ใช้ Parsr เพื่อแบ่งไฟล์ PDF ออกเป็นบรรทัดและย่อหน้าเป็นครั้งแรก จากนั้นจะใช้แพ็คเกจ Python dehyphen เพื่อสร้างย่อหน้าใหม่ด้วยวิธีที่น่าจะเป็นไปได้มากที่สุด ความน่าจะเป็นได้มาจากการคำนวณความฉงนสนเท่ห์ด้วยแบบจำลองภาษาตามตัวละครของ Flair ยัติภังค์ที่ไม่จำเป็นจะถูกลบออก ช่องว่างหรือบรรทัดใหม่จะถูกเก็บหรือปล่อย ขึ้นอยู่กับคำที่ล้อมรอบ
ได้รับการพัฒนาสำหรับภาษาเยอรมันเป็นหลัก แต่ควรทำงานร่วมกับภาษาอื่นด้วย โครงการยังอยู่ในช่วงเริ่มต้น คาดว่าจะมีขอบหยาบและการเปลี่ยนแปลงอย่างรวดเร็ว
เอกสาร API ของ pd3f-core: https://pd3f.github.io/pd3f-core/index.html
เอกสารประกอบของ pd3f (the ): https://pd3f.com/docs/
ตรวจสอบว่าสามารถรวมสองบรรทัดได้โดยลบยัติภังค์ ('-')
ตัดสินใจระหว่างการเพิ่มช่องว่างแบบธรรมดา (' ') หรือขึ้นบรรทัดใหม่ ('n') เมื่อรวมบรรทัด
ตรวจสอบว่าสามารถเข้าร่วมย่อหน้าสุดท้ายของหน้าและย่อหน้าแรกของหน้าถัดไปได้หรือไม่
ในการเข้าร่วมย่อหน้า (และย้อนกลับตัวแบ่งหน้า) ให้ตรวจหาเชิงอรรถและแปลงเป็นอ้างอิงท้ายเรื่อง ในตอนนี้ เชิงอรรถจะถูกดึงไปที่ท้ายไฟล์
หากส่วนหัวหรือส่วนท้ายเหมือนกันทุกหน้า ให้แสดงเพียงครั้งเดียว ส่วนหัวจะถูกดึงไปที่จุดเริ่มต้นของเอกสารและส่วนท้ายไปยังจุดสิ้นสุด มีการใช้ฮิวริสติกบางอย่างที่ยึดตามความคล้ายคลึงกันของส่วนท้าย (ระยะห่างของ Jaccard สำหรับข้อความ และเปรียบเทียบรูปร่างที่ทับซ้อนกัน)
pip install pd3f
หรือ
poetry add pd3f
เริ่มต้นอินสแตนซ์ Parsr ท้องถิ่น:
docker-compose up
(คุณอาจใช้ช่องสัญญาณอินสแตนซ์ Parsr ระยะไกล (สคริปต์) หรือเลือกที่อยู่ระยะไกล)
from pd3f import extract
text , tables = extract ( file_path , tables = False , experimental = False , force_gpu = False , lang = "multi" , fast = False , parsr_location = "localhost:3001" )
คำอธิบายของพารามิเตอร์ในเอกสาร: https://pd3f.github.io/pd3f-core/export.html#pd3f.export.extract
การใช้ CUDA ช่วยเพิ่มความเร็วในการประเมินด้วย Flair แต่คุณต้องมี GPU (แพง) คุณต้องตั้งค่า GPU ด้วย CUDA นี่คือคำแนะนำสำหรับ Ubuntu 18.04
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
(ตัวอย่าง)pd3f-core
พร้อมบทกวี: poetry add pd3f
Poetry ตระหนักดีว่ามันทำงานภายใน conda virtual env ดังนั้นมันจึงไม่สร้างอันใหม่ เนื่องจากการตั้งค่า CUDA นั้นยาก ให้ติดตั้งด้วยวิธีที่ง่ายที่สุด (ด้วย conda)
หัวใจของ pd3f-core
คือเอาต์พุต JSON ของ Parsr ความคิดเห็นบางส่วนเกี่ยวกับวิธีการและเหตุผลในการเลือกบางสิ่ง เอกสารของ Parsr เกี่ยวกับโมดูลต่างๆ
Parsr มีหลายโมดูลสำหรับแบ่งย่อหน้าเป็นบางประเภท พวกเขามีการตรวจจับรายการเช่นเดียวกับการตรวจจับส่วนหัว จากประสบการณ์ของฉัน ความแม่นยำต่ำเกินไปสำหรับทั้งคู่ ดังนั้นเราจึงไม่ได้ใช้มันในตอนนี้ นอกจากนี้ยังหมายความว่าข้อความที่แยกออกมา (เอาต์พุต) ทั้งหมดเป็นแบบเรียบๆ (ไม่มีส่วนหัว มีการจัดรูปแบบที่แตกต่างกัน ฯลฯ)
เราเปิดใช้งาน Drawing + Image Detection เพราะเราอาจต้องเข้าใจว่าย่อหน้าใดตามหลังอีกย่อหน้า ซึ่งอาจเป็นประโยชน์เมื่อต้องตัดสินใจว่าจะรวมย่อหน้าหรือไม่ แต่จะหลุดเมื่อเปิดใช้งานการตั้งค่าแบบ fast
ในเอาต์พุต JSON คือฟิลด์ pageNumber
สิ่งนี้มาจากโมดูลการตรวจจับหน้า ดังนั้น pageNumber
จึงได้มาจากส่วนหัว/ส่วนท้ายของแต่ละหน้า ดังนั้นจึงอาจแตกต่างจากดัชนีในอาร์เรย์หน้า อย่าส่งต่อ pageNumber
ในเอาต์พุต JSON
มีการใช้ words-to-line-new
เช่นนี้ ไม่มีข้อผิดพลาดแต่ความแม่นยำจะลดลงหากนำไปใช้เป็นอย่างอื่น
" words-to-line-new " ,
[
" reading-order-detection " ,
อย่าทำ OCR ด้วย Parsr เพราะผลลัพธ์จะแย่กว่า OCRmyPDF (เพราะอย่างหลังใช้การประมวลผลภาพล่วงหน้า)
ติดตั้งและใช้บทกวี
ใบอนุญาตสาธารณะทั่วไปของ Affero 3.0