2009-12-04 78 views
66

Tôi đang tìm thư viện PDF cho phép tôi trích xuất văn bản từ tài liệu PDF. Tôi đã xem xét PyPDF, và điều này có thể trích xuất văn bản từ một tài liệu PDF rất độc đáo. Vấn đề với điều này là nếu có các bảng trong tài liệu, văn bản trong các bảng được trích xuất nội dòng với phần còn lại của văn bản tài liệu. Điều này có thể có vấn đề bởi vì nó tạo ra các phần văn bản không hữu ích và trông bị cắt xén (ví dụ, nhiều số được trộn với nhau).Phân tích cú pháp PDF nâng cao Sử dụng Python (trích xuất văn bản không có bảng, vv): Thư viện tốt nhất là gì?

Tôi đang tìm kiếm thứ gì đó tiên tiến hơn một chút. Tôi muốn trích xuất văn bản từ tài liệu PDF, trừ bất kỳ bảng nào và định dạng đặc biệt. Có thư viện nào ngoài đó không? Hoặc tôi buộc phải làm một số hậu xử lý trên văn bản đầu ra để loại bỏ các phần này?

Trả lời

53

Bạn cũng có thể xem PDFMiner, một trình phân tích cú pháp PDF khác bằng Python.

Tính đặc thù của PDFMiner mà bạn có thể quan tâm là bạn có thể kiểm soát cách nó tập hợp lại các phần văn bản khi thực hiện trích xuất. Bạn làm điều này bằng cách xác định không gian giữa các dòng, từ, ký tự, vv Vì vậy, có thể bằng cách tweeking này bạn có thể đạt được những gì bạn muốn (mà phụ thuộc vào sự thay đổi của tài liệu của bạn). PDFMiner cũng có thể cung cấp cho bạn vị trí của văn bản trong trang, nó có thể trích xuất dữ liệu theo ID đối tượng và các nội dung khác. Hãy tìm hiểu về PDFMiner và sáng tạo! Tuy nhiên, vấn đề của bạn thực sự không dễ giải quyết bởi vì, trong PDF, văn bản không phải là liên tục, nhưng được tạo thành từ rất nhiều nhóm ký tự nhỏ được đặt hoàn toàn trong trang. Trọng tâm của PDF là giữ nguyên bố cục. Nó không hướng nội dung nhưng định hướng trình bày.

+1

PDFMiner trông thú vị. Tôi có thể sử dụng đầu ra XML từ nó, và sau đó phân tích cú pháp đó để bỏ qua những gì tôi không muốn. Điều này vẫn yêu cầu xử lý hậu kỳ đáng kể, nhưng bây giờ nó có lẽ là giải pháp tốt nhất. Cảm ơn bạn. –

+0

@Etienne, điều này có thể được sử dụng nếu PDF có các ký tự ngôn ngữ khác không? –

+0

Nó sẽ hoạt động với các ký tự ngôn ngữ khác. Tài liệu đề cập đến: ngôn ngữ CJK và hỗ trợ viết kịch bản theo chiều dọc. Cách tốt nhất để chắc chắn, kiểm tra nó! – Etienne

-1

Đó là một vấn đề khó giải quyết vì các tệp PDF tương tự trực quan có thể có cấu trúc cực kỳ khác nhau tùy thuộc vào cách chúng được tạo ra. Trong trường hợp xấu nhất, thư viện sẽ cần phải hoạt động cơ bản giống như một OCR. Mặt khác, tệp PDF có thể chứa đủ cấu trúc và siêu dữ liệu để dễ dàng xóa các bảng và hình vẽ, mà thư viện có thể được điều chỉnh để tận dụng.

Tôi khá chắc chắn không có công cụ nguồn mở nào giải quyết vấn đề của bạn cho nhiều loại PDF, nhưng tôi nhớ đã nghe nói về phần mềm thương mại tuyên bố làm chính xác những gì bạn yêu cầu. Tôi chắc chắn bạn sẽ chạy vào chúng trong khi googling.