ข้อมูลเบื้องต้นเกี่ยวกับการดึงข้อมูลจาก PDF: เครื่องมือและเทคนิค
เผยแพร่แล้ว: 2024-03-21ในโลกที่ขับเคลื่อนด้วยข้อมูลในปัจจุบัน ความสามารถในการดึงข้อมูลจากเอกสาร PDF ได้อย่างมีประสิทธิภาพเป็นสิ่งจำเป็นสำหรับธุรกิจและนักวิจัยจำนวนมาก PDF เป็นรูปแบบหนึ่งที่ใช้กันทั่วไปในการแจกจ่ายและแบ่งปันเอกสาร แต่การนำเสนอที่มีโครงสร้างมักทำให้การดึงข้อมูลมีความท้าทาย โพสต์ในบล็อกนี้จะเจาะลึกถึงพื้นฐานของการดึงข้อมูลจาก PDF โดยสำรวจทั้งเครื่องมือและเทคนิคที่สามารถปรับปรุงกระบวนการนี้ได้
เหตุใดจึงต้องแยกข้อมูลจาก PDF
ที่มา: https://www.docsumo.com/blog/extract-data-from-pdf
ในยุคดิจิทัลที่กว้างใหญ่ เอกสาร PDF ถือเป็นข้อพิสูจน์ถึงการผสมผสานระหว่างความสม่ำเสมอ ความน่าเชื่อถือ และการเข้าถึงแบบสากล Portable Document Format (PDF) เปิดตัวโดย Adobe ในปี 1990 กลายเป็นมาตรฐานอย่างรวดเร็วสำหรับการแจกจ่ายเอกสารดิจิทัลที่คงการจัดรูปแบบไว้โดยไม่คำนึงถึงอุปกรณ์หรือซอฟต์แวร์ที่ใช้ในการดู ปัจจุบัน PDF มีอยู่ทั่วไปทุกหนทุกแห่ง โดยทำหน้าที่เป็นสื่อกลางสำหรับทุกสิ่งตั้งแต่เอกสารทางวิชาการและสัญญาทางกฎหมาย ไปจนถึงคู่มือทางเทคนิคและรายงานทางการเงิน อย่างไรก็ตาม ภายใต้พื้นผิวที่นิ่งและสวยงามนั้น มีข้อมูลมากมายที่มักถูกล็อกไม่ให้เข้าถึงได้ง่าย นี่นำเราไปสู่คำถามสำคัญ: เหตุใดการดึงข้อมูลจาก PDF จึงมีความสำคัญมาก
หัวใจสำคัญของการเปลี่ยนแปลงทางดิจิทัลคือข้อมูล – ข้อมูลที่ให้ข้อมูล ข้อมูลที่แนะนำ และข้อมูลที่แก้ไข ในการแสวงหาประสิทธิภาพ ความเข้าใจ และนวัตกรรมอย่างไม่หยุดยั้ง การดึงข้อมูลจาก PDF ทำหน้าที่เป็นสะพานเชื่อมจากแบบคงที่ไปสู่แบบไดนามิก จากข้อมูลสู่ข้อมูลเชิงลึก ไม่ว่าจะเป็นการวิเคราะห์แนวโน้มของตลาดจากรายงานการวิจัย การแปลงบันทึกในอดีตให้เป็นดิจิทัลเพื่อวัตถุประสงค์ในการเก็บถาวร หรือการประมวลผลใบแจ้งหนี้เพื่อการกระทบยอดทางการเงิน การแยกข้อมูลจาก PDF ช่วยให้ธุรกิจและนักวิจัยสามารถแปลงข้อมูลคงที่ให้เป็นข้อมูลเชิงลึกที่นำไปปฏิบัติได้
ความท้าทายในการแยกข้อมูล PDF
ที่มา: https://www.a-pdf.com/data-extractor/index.htm
แยกข้อมูลจากเอกสาร PDF นำเสนอชุดความท้าทายเฉพาะที่อาจทำให้กระบวนการที่ซับซ้อนสำหรับธุรกิจ นักวิจัย และนักพัฒนาเหมือนกัน แม้ว่า PDF จะใช้กันอย่างแพร่หลายสำหรับเอกสารดิจิทัล แต่คุณสมบัติที่มีอยู่และรูปแบบที่หลากหลายของ PDF ก็เพิ่มความซับซ้อนหลายชั้นให้กับความพยายามในการดึงข้อมูล ที่นี่ เราจะเจาะลึกถึงความท้าทายสำคัญบางประการที่พบในการดึงข้อมูล PDF โดยให้ข้อมูลเชิงลึกว่าทำไมสิ่งที่ดูเหมือนเป็นงานที่ตรงไปตรงมามักกลายเป็นความพยายามที่ซับซ้อน
ความซับซ้อนของโครงสร้าง PDF โดยธรรมชาติ
PDF ได้รับการออกแบบมาเพื่อการนำเสนอเป็นหลัก ไม่ใช่การจัดเก็บข้อมูลหรือการจัดการ พวกเขามักจะขาดโครงสร้างที่สอดคล้องกัน ซึ่งทำให้การสกัดแบบอัตโนมัติทำได้ยาก ต่างจาก HTML หรือ XML ที่แท็กและองค์ประกอบกำหนดโครงสร้างและลำดับชั้น องค์ประกอบ PDFs วางตำแหน่งในรูปแบบคงที่ ซึ่งหมายความว่าการทำความเข้าใจโครงสร้างเชิงตรรกะของข้อมูล เช่น การแยกความแตกต่างระหว่างชื่อเรื่อง ย่อหน้า และตารางข้อมูล จำเป็นต้องมีการตีความที่ซับซ้อน
ความแปรปรวนในคุณภาพเอกสาร
เอกสาร PDF คุณภาพอาจแตกต่างกันอย่างมาก โดยเฉพาะอย่างยิ่งเมื่อต้องจัดการกับเอกสารที่สแกน การสแกนอาจทำให้เกิดสัญญาณรบกวน การบิดเบือน และความไม่สอดคล้องกันในข้อความ ทำให้กระบวนการ OCR (Optical Character Recognition) มีความแม่นยำน้อยลง ปัจจัยต่างๆ เช่น ความละเอียดของการสแกน สภาพของเอกสารทางกายภาพ และการปรากฏของเครื่องหมายหรือคำอธิบายประกอบ อาจทำให้การดึงข้อมูลซับซ้อนยิ่งขึ้น
การผสมข้อความและรูปภาพ
PDF จำนวนมากประกอบด้วยข้อความและรูปภาพผสมกัน และในบางกรณี ข้อมูลสำคัญจะถูกฝังอยู่ภายในรูปภาพ ต้องใช้เทคโนโลยี OCR เพื่อแยกข้อความออกจากรูปภาพ ซึ่งอาจเป็นเรื่องที่ท้าทาย โดยเฉพาะอย่างยิ่งกับรูปแบบที่ซับซ้อน แบบอักษรที่หลากหลาย และคุณภาพของรูปภาพที่หลากหลาย นอกจากนี้ ความแม่นยำของ OCR ยังส่งผลกระทบอย่างมากต่อคุณภาพของข้อมูลที่แยกออกมา
เค้าโครงและรูปแบบที่ซับซ้อน
PDF มักจะมีเค้าโครงที่ซับซ้อน รวมถึงตาราง ข้อความหลายคอลัมน์ เชิงอรรถ และแถบด้านข้าง องค์ประกอบเหล่านี้อาจรบกวนการแยกข้อความโดยตรง ส่งผลให้ข้อมูลสูญหายหรือตีความผิด ตัวอย่างเช่น การแยกข้อมูลจากตารางเป็นสิ่งที่ท้าทายเป็นพิเศษ เนื่องจากความสัมพันธ์เชิงพื้นที่ระหว่างองค์ประกอบต่างๆ (แทนที่จะเป็นโครงสร้างเชิงตรรกะหรือลำดับชั้น) จะเป็นตัวกำหนดการจัดระเบียบข้อมูล
PDF ที่เข้ารหัสหรือปลอดภัย
PDF บางไฟล์ได้รับการเข้ารหัสหรือรักษาความปลอดภัยเพื่อปกป้องลิขสิทธิ์หรือข้อมูลที่ละเอียดอ่อน โดยจำกัดการดำเนินการ เช่น การคัดลอก การพิมพ์ หรือการแก้ไข การแยกข้อมูลจาก PDF เหล่านี้จำเป็นต้องมีการถอดรหัส ซึ่งจำเป็นต้องได้รับอนุญาตหรือคีย์ถอดรหัสที่เหมาะสม นี่เป็นการเพิ่มความซับซ้อนและการพิจารณาทางกฎหมายอีกชั้นหนึ่งให้กับกระบวนการสกัด
การเข้ารหัสและการบีบอัดที่หลากหลาย
ไฟล์ PDF สามารถใช้การเข้ารหัสข้อความและเทคนิคการบีบอัดรูปภาพได้หลากหลาย ซึ่งบางเทคนิคอาจตีความหรือถอดรหัสได้ไม่ตรงไปตรงมา ความหลากหลายนี้ต้องการเครื่องมือแยกวิเคราะห์ที่ยืดหยุ่นและมีประสิทธิภาพซึ่งสามารถจัดการการเข้ารหัสที่แตกต่างกันและขยายขนาดเนื้อหาได้ตามที่จำเป็นสำหรับการแยกข้อมูล
เครื่องมือและเทคนิคในการดึงข้อมูลอย่างมีประสิทธิภาพ
ไลบรารีการแยกวิเคราะห์ PDF
- Python Libraries : Python มีไลบรารี่มากมายสำหรับการดึงข้อมูล PDF รวมถึง PyPDF2 และ PDFMiner สำหรับ PDF แบบข้อความ และ PyMuPDF สำหรับเอกสารที่ซับซ้อนมากขึ้น
- Apache PDFBox : เครื่องมือ Java ที่ช่วยให้สามารถสร้างและจัดการเอกสาร PDF รวมถึงการแยกข้อความ
เครื่องมือโอซีอาร์
เมื่อต้องจัดการกับ PDF ที่สแกนหรือเอกสารที่เป็นรูปภาพ เครื่องมือ OCR ถือเป็นสิ่งสำคัญ Tesseract ซึ่งเป็นโปรแกรม OCR แบบโอเพ่นซอร์ส ถูกนำมาใช้กันอย่างแพร่หลายในการแปลงรูปภาพในรูปแบบ PDF เป็นรูปแบบข้อความที่แก้ไขได้
ซอฟต์แวร์แยกไฟล์ PDF เชิงพาณิชย์
เครื่องมือเชิงพาณิชย์หลายอย่างนำเสนอคุณสมบัติขั้นสูง เช่น อัลกอริธึมการเรียนรู้ที่ใช้ AI เพื่อจัดการงานแยกข้อมูลที่ซับซ้อนด้วยความแม่นยำที่สูงขึ้น ตัวอย่าง ได้แก่ Adobe Acrobat DC และ ABBYY FineReader
แนวทางปฏิบัติที่ดีที่สุดสำหรับการดึงข้อมูล PDF
- ประมวลผล PDF ล่วงหน้า : การล้างเอกสารก่อนการแยก (เช่น การลบรูปภาพที่ไม่จำเป็นหรือหน้าว่าง) สามารถปรับปรุงความแม่นยำได้อย่างมาก
- สคริปต์แบบกำหนดเองสำหรับการทำงานอัตโนมัติ : สำหรับงานการแยกข้อมูลขนาดใหญ่ ให้ลองเขียนสคริปต์แบบกำหนดเองที่ใช้ไลบรารีการแยกวิเคราะห์ PDF ช่วยให้สามารถทำงานอัตโนมัติและปรับแต่งได้ตามความต้องการเฉพาะ
- การตรวจสอบความถูกต้องและการตรวจสอบคุณภาพ : รวมขั้นตอนในการตรวจสอบความถูกต้องของข้อมูลที่แยกออกมาเสมอ สิ่งนี้สามารถทำให้เป็นอัตโนมัติได้ในระดับหนึ่ง แต่มักต้องมีการควบคุมดูแลจากมนุษย์
แอปพลิเคชันในโลกแห่งความเป็นจริง
- ภาคการเงิน : ธนาคารและสถาบันการเงินดึงข้อมูลจาก PDF เพื่อการวิเคราะห์สินเชื่อ การประเมินความเสี่ยง และการรายงานการปฏิบัติตามกฎระเบียบ
- การดูแลสุขภาพ : บันทึกผู้ป่วย บทความวิจัย และข้อมูลการทดลองทางคลินิกมักจะถูกจัดเก็บในรูปแบบ PDF และจำเป็นต้องดึงออกมาเพื่อการวิเคราะห์และการรายงาน
- การวิจัยทางวิชาการ : นักวิจัยดึงข้อมูลจากบทความทางวิชาการและเอกสารทางวิชาการเพื่อการทบทวนวรรณกรรมและการวิเคราะห์เมตา
บทสรุป
การดึงข้อมูลจากเอกสาร PDF แม้ว่าจะมีความท้าทาย แต่ก็เป็นสิ่งจำเป็นสำหรับการวิเคราะห์ข้อมูล การรายงาน และการตัดสินใจในอุตสาหกรรมต่างๆ ด้วยการใช้ประโยชน์จากเครื่องมือและเทคนิคที่เหมาะสม องค์กรต่างๆ จึงสามารถเอาชนะความยากลำบากในการดึงข้อมูล PDF และปลดล็อกข้อมูลเชิงลึกอันมีค่าที่มีอยู่ในเอกสารของตนได้ เมื่อเทคโนโลยีก้าวหน้า เราก็สามารถคาดหวังการปรับปรุงอย่างต่อเนื่องในเครื่องมือสกัด ทำให้กระบวนการเข้าถึงได้และมีประสิทธิภาพมากขึ้น

ที่ PromptCloud เราเข้าใจถึงความสำคัญของการดึงข้อมูลที่แม่นยำและมีประสิทธิภาพ โซลูชันที่ปรับแต่งตามความต้องการของเราได้รับการออกแบบมาเพื่อตอบสนองความต้องการเฉพาะของลูกค้าของเรา เพื่อให้มั่นใจว่าพวกเขาสามารถใช้ประโยชน์สูงสุดจากข้อมูลที่มีอยู่ในเอกสาร PDF ของพวกเขา ไม่ว่าคุณกำลังมองหาการดึงข้อมูลจากเอกสารจำนวนหนึ่งหรือทำให้กระบวนการแยกข้อมูลนับพันเป็นอัตโนมัติ เราพร้อมให้ความช่วยเหลือ
โอบรับพลังของข้อมูลด้วย PromptCloud ติดต่อวันนี้เพื่อดูว่าเราสามารถเปลี่ยนแปลงกระบวนการแยกข้อมูล PDF ของคุณได้อย่างไร สนใจติดต่อได้ที่ sales@promptcloud.com
คำถามที่พบบ่อย
ฉันจะดึงข้อมูลเฉพาะจาก PDF ได้อย่างไร
การดึงข้อมูลเฉพาะจาก PDF ต้องใช้เครื่องมือและเทคนิคร่วมกัน ซึ่งปรับให้เหมาะกับลักษณะของไฟล์ PDF (ตามข้อความหรือสแกน/รูปภาพ) และข้อมูลเฉพาะที่คุณต้องการแยก คำแนะนำทีละขั้นตอนเพื่อช่วยคุณดึงข้อมูลเฉพาะจาก PDF:
สำหรับ PDF แบบข้อความ:
- ใช้ไลบรารี Python เช่น PyPDF2 หรือ PDFMiner:
ไลบรารีเหล่านี้สามารถช่วยคุณแยกข้อความจาก PDF ที่มีเลเยอร์ข้อความที่เลือกได้
- PyPDF2 : มีประโยชน์สำหรับการแยกข้อความอย่างง่ายและการจัดการ PDF (เช่น การรวม PDF)
นำเข้า PyPDF2
# เปิดไฟล์ PDF
ด้วย open('your_file.pdf', 'rb') เป็นไฟล์:
reader = PyPDF2.PdfReader (ไฟล์)
# แยกข้อความจากหน้าแรก
หน้า = reader.pages[0]
ข้อความ = page.extract_text()
พิมพ์ (ข้อความ)
PDFMiner : ซับซ้อนยิ่งขึ้น เหมาะสำหรับการแยกข้อความจากเลย์เอาต์ที่ซับซ้อน
จาก pdfminer.high_level นำเข้า extract_text
ข้อความ = extract_text('your_file.pdf')
พิมพ์ (ข้อความ)
2. แยกและประมวลผลข้อความ:
เมื่อคุณมีข้อความแล้ว คุณอาจต้องประมวลผลเพื่อค้นหาและดึงข้อมูลเฉพาะที่คุณสนใจ ซึ่งอาจรวมถึง:
- การค้นหาคำสำคัญหรือรูปแบบโดยใช้นิพจน์ทั่วไป
- การแบ่งข้อความออกเป็นบรรทัดหรือย่อหน้าเพื่อแยกตามบริบท
สำหรับ PDF ที่สแกน/รูปภาพ:
1. ใช้เครื่องมือ OCR (การรู้จำอักขระด้วยแสง):
สำหรับ PDF ที่เป็นรูปภาพข้อความเป็นหลัก (เช่น เอกสารที่สแกน) คุณจะต้องใช้ซอฟต์แวร์ OCR เพื่อแปลงรูปภาพเป็นข้อความที่เลือกได้ Tesseract เป็นเอ็นจิ้น OCR แบบโอเพ่นซอร์สยอดนิยม
- Pytesseract : wrapper Python สำหรับ Tesseract คุณจะต้องแปลงหน้า PDF เป็นรูปภาพด้วย ซึ่งสามารถทำได้โดยใช้ pdf2image
จากการนำเข้า pdf2image Convert_from_path
นำเข้าไพเทสเซอร์แรค
# แปลง PDF เป็นรายการรูปภาพ
รูปภาพ = Convert_from_path('your_scanned_file.pdf')
# ใช้ pytesseract เพื่อทำ OCR บนรูปภาพ
สำหรับ i รูปภาพในการแจกแจง (รูปภาพ):
ข้อความ = pytesseract.image_to_string (รูปภาพ)
พิมพ์ (f” หน้า {i+1} ข้อความ:”, ข้อความ)
2. ประมวลผลข้อความที่แยกออกมา:
หลังจาก OCR ข้อความอาจจำเป็นต้องทำความสะอาดและประมวลผลเพื่อแยกจุดข้อมูลเฉพาะที่คุณต้องการ ซึ่งอาจรวมถึงการลบส่วนที่สร้างขึ้นโดย OCR การแยกวิเคราะห์ข้อความสำหรับโครงสร้าง และการใช้นิพจน์ทั่วไปเพื่อค้นหารูปแบบ
ฉันจะดึงข้อมูลแบบฟอร์มจาก PDF ได้อย่างไร
การแยกข้อมูลแบบฟอร์มออกจาก PDF โดยเฉพาะอย่างยิ่งหากแบบฟอร์มถูกกรอกและบันทึก จะเกี่ยวข้องกับวิธีการเฉพาะที่สามารถแยกวิเคราะห์โครงสร้าง PDF และแยกข้อมูลที่ฝังอยู่ในฟิลด์แบบฟอร์มได้ มีเครื่องมือและไลบรารีต่างๆ ในภาษาโปรแกรมต่างๆ ที่สามารถทำงานนี้ได้สำเร็จ แต่ Python ยังคงเป็นหนึ่งในตัวเลือกที่สามารถเข้าถึงได้และได้รับความนิยมมากที่สุดเนื่องจากไลบรารีเช่น PyPDF2 และ PDFMiner สำหรับ PDF แบบข้อความ และ PyMuPDF (หรือที่เรียกว่า Fitz) สำหรับข้อมูลเพิ่มเติม งานที่ซับซ้อน ต่อไปนี้คือวิธีที่คุณสามารถดึงข้อมูลแบบฟอร์มจาก PDF โดยใช้ Python:
การใช้ PyMuPDF (ฟิตซ์)
PyMuPDF เป็นการผูก Python สำหรับ MuPDF ซึ่งเป็นโปรแกรมดู PDF, XPS และ E-book ขนาดเล็ก มีคุณลักษณะมากมายสำหรับการทำงานกับ PDF รวมถึงการแยกข้อความ รูปภาพ และข้อมูลแบบฟอร์ม
การติดตั้ง
ขั้นแรก ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง PyMuPDF แล้ว:
pip ติดตั้ง pymupdf
การแยกข้อมูลแบบฟอร์ม
นำเข้า fitz # PyMuPDF
def extract_form_data (pdf_path):
# เปิดไฟล์ PDF
doc = fitz.open(pdf_path)
ฟอร์ม_ดาต้า = {}
สำหรับหน้าใน doc:
# แยกคำอธิบายประกอบ (ช่องแบบฟอร์มเป็นคำอธิบายประกอบประเภทหนึ่ง)
annots = page.annots()
ถ้าคำอธิบายประกอบ:
สำหรับคำอธิบายประกอบในคำอธิบายประกอบ:
ข้อมูล = annot.info
field_type = info.get (“เรื่อง”)
field_name = info.get (“ชื่อ”)
field_value = info.get (“เนื้อหา”)
ถ้า field_name และ field_value:
# เติมพจนานุกรมด้วยชื่อฟิลด์และค่าต่างๆ
form_data[field_name] = (field_value, field_type)
ส่งคืน form_data
# แทนที่ 'your_form.pdf' ด้วยเส้นทางไปยังแบบฟอร์ม PDF ของคุณ
form_data = extract_form_data(“your_form.pdf”)
สำหรับฟิลด์ใน form_data:
พิมพ์(f”ฟิลด์: {field} ค่า: {form_data[ฟิลด์][0]} ประเภท: {form_data[field][1]}”)
สคริปต์นี้เปิด PDF และวนซ้ำแต่ละหน้า ตรวจสอบคำอธิบายประกอบ (โดยที่ช่องแบบฟอร์ม PDF ถูกจัดหมวดหมู่) สำหรับคำอธิบายประกอบแต่ละรายการ ระบบจะแยกชื่อฟิลด์ ค่า และประเภท แล้วจัดเก็บไว้ในพจนานุกรม
การใช้ PyPDF2
PyPDF2 เป็นอีกหนึ่งไลบรารียอดนิยมสำหรับการทำงานกับ PDF ใน Python นอกจากนี้ยังสามารถจัดการการแยกข้อมูลแบบฟอร์มได้ แม้ว่าอาจไม่ครอบคลุมเท่ากับ PyMuPDF สำหรับ PDF ที่ซับซ้อนก็ตาม
การติดตั้ง
ตรวจสอบให้แน่ใจว่าติดตั้ง PyPDF2 แล้ว:
pip ติดตั้ง pypdf2
การแยกข้อมูลแบบฟอร์ม
นำเข้า PyPDF2
def extract_form_data_py2 (pdf_path):
ด้วย open(pdf_path, 'rb') เป็นไฟล์:
reader = PyPDF2.PdfReader (ไฟล์)
ฟอร์ม_ดาต้า = {}
# เข้าถึงข้อมูลแบบฟอร์มจากผู้อ่าน
ฟิลด์ = reader.get_fields()
สำหรับฟิลด์ในฟิลด์:
form_data[field] = fields[field].get('/V', ไม่มี)
ส่งคืน form_data
# แทนที่ 'your_form.pdf' ด้วยเส้นทางไปยังแบบฟอร์ม PDF ของคุณ
form_data = extract_form_data_py2 (“your_form.pdf”)
สำหรับฟิลด์ใน form_data:
พิมพ์ (ฉ”ฟิลด์: {ฟิลด์} ค่า: {form_data[ฟิลด์]}”)
ฟังก์ชันนี้ใช้ PyPDF2 เพื่อเปิดไฟล์ PDF และเข้าถึงฟิลด์แบบฟอร์มโดยตรง โดยจะวนซ้ำช่องต่างๆ แยกชื่อและค่าของแต่ละรายการ แล้วจัดเก็บไว้ในพจนานุกรม
คุณสามารถขูดข้อมูลจาก PDF ได้หรือไม่?
ได้ คุณสามารถดึงข้อมูลจาก PDF ได้ แต่วิธีการและเครื่องมือที่คุณต้องการจะขึ้นอยู่กับประเภทของ PDF และลักษณะของข้อมูลที่คุณต้องการแยก PDF สามารถแบ่งกว้างๆ ได้เป็นสองประเภท: แบบข้อความ และแบบสแกน/แบบรูปภาพ แต่ละประเภทต้องใช้เทคนิคที่แตกต่างกันเพื่อการดึงข้อมูลที่มีประสิทธิภาพ
PDF ที่เป็นข้อความ
PDF เหล่านี้มีข้อความที่เลือกได้ คุณสามารถเน้น คัดลอก และวางข้อความนี้ลงในเอกสารอื่นได้ โดยทั่วไปแล้ว PDF แบบข้อความจะใช้งานได้ง่ายกว่าเมื่อพูดถึงการขูดข้อมูล
เครื่องมือและไลบรารี:
- PyPDF2 และ PDFMiner ใน Python ได้รับความนิยมในการแยกข้อความจาก PDF เหล่านี้ PyPDF2 ตรงไปตรงมาและมีประโยชน์สำหรับการแยกข้อความพื้นฐานและการจัดการ PDF ในขณะที่ PDFMiner ให้การควบคุมเค้าโครงและการจัดรูปแบบที่ละเอียดยิ่งขึ้น ทำให้เหมาะสมกับความต้องการในการแยกที่ซับซ้อน
- Apache PDFBox ซึ่งเป็นไลบรารี Java ยังสามารถแยกข้อความจาก PDF และใช้ในแอปพลิเคชันระดับองค์กร
PDF ที่สแกน/รูปภาพ
PDF เหล่านี้เป็นรูปภาพข้อความเป็นหลัก เนื่องจากข้อความเป็นส่วนหนึ่งของรูปภาพ จึงไม่สามารถเลือกหรือคัดลอกได้โดยตรง การดึงข้อมูลจาก PDF เหล่านี้ต้องใช้ Optical Character Recognition (OCR) เพื่อแปลงรูปภาพข้อความให้เป็นข้อความจริง
เครื่องมือและไลบรารี:
- Tesseract OCR เป็นหนึ่งในเอ็นจิ้น OCR ที่ทรงพลังและใช้กันอย่างแพร่หลาย สามารถใช้โดยตรงหรือผ่าน wrappers เช่น Pytesseract ใน Python
- Adobe Acrobat Pro นำเสนอความสามารถ OCR ในตัวและสามารถแปลง PDF ที่สแกนเป็นเอกสารข้อความที่เลือกและค้นหาได้
ฉันจะดึงข้อมูลจาก PDF โดยอัตโนมัติได้อย่างไร
การแยกข้อมูลจาก PDF โดยอัตโนมัติเกี่ยวข้องกับการใช้เครื่องมือซอฟต์แวร์ที่สามารถตีความเนื้อหาของ PDF และแปลงเป็นรูปแบบที่มีโครงสร้าง กระบวนการจะแตกต่างกันไปขึ้นอยู่กับว่า PDF เป็นแบบข้อความหรือแบบรูปภาพ (สแกน) ต่อไปนี้เป็นวิธีการแยกข้อมูลอัตโนมัติจาก PDF ทั้งสองประเภท:
สำหรับ PDF ที่เป็นข้อความ
1. การใช้ไลบรารี Python:
- PyPDF2 หรือ PDFMiner เป็นไลบรารี Python ยอดนิยมสำหรับการแยกข้อความจาก PDF แบบข้อความ PyPDF2 เหมาะสำหรับงานแยกข้อความแบบธรรมดา ในขณะที่ PDFMiner มีประสิทธิภาพมากกว่าสำหรับรูปแบบและการเข้ารหัสที่ซับซ้อน
- ตัวอย่างด้วย PyPDF2:
นำเข้า PyPDF2
ด้วย open('example.pdf', 'rb') เป็นไฟล์:
reader = PyPDF2.PdfReader (ไฟล์)
ข้อความ = ”
สำหรับหน้าใน reader.pages:
ข้อความ += page.extract_text()
พิมพ์ (ข้อความ)
- Tabula หรือ Camelot : หากเป้าหมายของคุณคือการดึงข้อมูลตารางจาก PDF ไลบรารีเหล่านี้ได้รับการออกแบบมาโดยเฉพาะเพื่อจุดประสงค์นี้ โดย Camelot ช่วยให้คุณควบคุมกระบวนการแยกได้มากขึ้น
2. การใช้เครื่องมือบรรทัดคำสั่ง:
- pdftotext เป็นส่วนหนึ่งของชุดเครื่องมือ Xpdf และสามารถใช้เพื่อแปลงเอกสาร PDF เป็นข้อความธรรมดาได้โดยตรงจากบรรทัดคำสั่ง ทำให้เหมาะสำหรับการประมวลผลเป็นชุด
สำหรับ PDF ที่สแกน/รูปภาพ
PDF ที่สแกนต้องใช้ Optical Character Recognition (OCR) เพื่อแปลงรูปภาพข้อความกลับเป็นข้อความที่เลือกและค้นหาได้
1. การใช้ Tesseract OCR:
- Tesseract เป็นเอ็นจิ้น OCR โอเพ่นซอร์ส Pytesseract ซึ่งเป็น wrapper Python สำหรับ Tesseract ช่วยให้คุณสามารถรวมความสามารถ OCR เข้ากับสคริปต์ของคุณได้
- ตัวอย่างด้วยไพเทสเซอร์แรค:
จากรูปภาพนำเข้า PIL
นำเข้าไพเทสเซอร์แรค
จากการนำเข้า pdf2image Convert_from_path
รูปภาพ = Convert_from_path ('scanned_example.pdf')
ข้อความ = ”
สำหรับภาพในภาพ:
ข้อความ += pytesseract.image_to_string (รูปภาพ)
พิมพ์ (ข้อความ)
2. การใช้บริการ OCR:
- Adobe Acrobat Pro นำเสนอความสามารถ OCR ในตัวที่สามารถจดจำข้อความในเอกสารที่สแกนได้โดยอัตโนมัติ
- บริการ OCR ออนไลน์ : แพลตฟอร์มออนไลน์ต่างๆ ให้บริการ OCR ที่สามารถประมวลผล PDF จำนวนมากได้ อย่างไรก็ตาม โปรดคำนึงถึงความเป็นส่วนตัวและความปลอดภัยเมื่ออัปโหลดเอกสารที่ละเอียดอ่อน