Chúng ta có thể đọc tệp từ bằng Python không?

Là thành viên của nhóm phân tích/khoa học dữ liệu, có thể bạn sẽ gặp nhiều loại tệp để nhập và phân tích bằng Python. Trong thế giới lý tưởng, tất cả dữ liệu của chúng tôi nằm trong cơ sở dữ liệu dựa trên đám mây (e. g. , SQL, NoSQL) dễ truy vấn và trích xuất. Tuy nhiên, trong thế giới thực, chúng ta hiếm khi nhận được dữ liệu dạng bảng rõ ràng. Ngoài ra, nếu chúng tôi cần dữ liệu bổ sung (có cấu trúc hoặc không có cấu trúc) để tăng cường phân tích, chắc chắn chúng tôi sẽ làm việc với các tệp dữ liệu thô có các định dạng khác nhau

Ảnh của Skitterphoto từ Pexels

Gần đây, nhóm của tôi đã bắt đầu một dự án, bước đầu tiên liên quan đến việc tích hợp các tệp dữ liệu thô ở định dạng. csv,. xlsx,. pdf,. tài liệu và. tài liệu. phản ứng đầu tiên của tôi. gấu trúc hùng mạnh. mà chắc chắn xử lý. csv và. xlsx, nhưng liên quan đến. pdf và. docx, chúng ta sẽ phải khám phá những khả năng ngoài gấu trúc

Trong blog này, tôi sẽ chia sẻ các mẹo và thủ thuật của mình để giúp bạn dễ dàng nhập tài liệu PDF và Word (sang Python) trong trường hợp nó xuất hiện trong công việc của bạn, đặc biệt là trong các dự án Xử lý ngôn ngữ tự nhiên NLP của bạn. Tất cả các tệp dữ liệu mẫu đều có thể truy cập công khai và các bản sao tệp cùng với các liên kết tải xuống tương ứng có sẵn trong repo Github của tôi

  1. Python-docx → làm việc với MS Word. tập tin docx

Là một trong những công cụ tài liệu được sử dụng phổ biến nhất, đôi khi MS Word là lựa chọn hàng đầu của mọi người để viết và chia sẻ văn bản. Đối với văn bản word có. docx, mô-đun Python docx là một công cụ hữu ích và phần sau đây trình bày cách nhập. docx chỉ với 2 dòng mã,

Bây giờ hãy in ra thông tin đầu ra,

Các đoạn thông tin và ví dụ từ docx trả về

Như chúng ta có thể thấy, kết quả trả về là một danh sách các chuỗi/câu và do đó chúng ta có thể tận dụng các kỹ thuật xử lý chuỗi và biểu thức chính quy để chuẩn bị sẵn sàng dữ liệu văn bản để phân tích thêm (e. g. , NLP)

2. Win32com → làm việc với MS Word. tập tin tài liệu

Mặc dù dễ sử dụng, nhưng mô-đun python-docx không thể bị lão hóa. doc, và tin hay không,. doc vẫn là trình xử lý văn bản cho nhiều bên liên quan (mặc dù. docx đã tồn tại hơn một thập kỷ). Nếu trong trường hợp này, việc chuyển đổi các loại tệp không phải là một tùy chọn, chúng ta có thể chuyển sang win32com. gói khách hàng với một vài thủ thuật

Kỹ thuật cơ bản trước tiên là khởi chạy ứng dụng Word dưới dạng tài liệu đang hoạt động, sau đó đọc nội dung/đoạn văn bằng Python. Hàm docReader( ) được xác định bên dưới trình bày cách thức (và đoạn mã hoàn chỉnh được liên kết tại đây),

Sau khi chạy chức năng này, chúng ta sẽ thấy đầu ra tương tự như trong phần 1. hai lời khuyên. (1) chúng tôi đặt từ. Visible = False để ẩn tệp vật lý để tất cả công việc xử lý được thực hiện ở chế độ nền; . Mặt khác, chức năng Tài liệu. Open( ) sẽ không nhận ra tệp, ngay cả khi đặt thư mục làm việc thành thư mục hiện tại

Tham gia cộng đồng YouTube của chúng tôi 🎦 “Trò chuyện dữ liệu với Kat” 😄

Bây giờ, hãy chuyển sang các tệp PDF,

3. Pdfminer (thay cho PyPDF2) → hoạt động với văn bản PDF

Khi nói đến việc xử lý các tệp PDF bằng Python, mô-đun nổi tiếng PyPDF2 có lẽ sẽ là nỗ lực ban đầu của hầu hết các nhà phân tích, bao gồm cả tôi. Do đó, tôi đã mã hóa nó bằng PyPDF2 (mã đầy đủ có sẵn trong repo Github của tôi), cung cấp đầu ra văn bản, như được hiển thị bên dưới,

Hmmm, có vẻ như điều này không đúng vì tất cả các khoảng trắng đều bị thiếu. Không có khoảng trắng thích hợp, chúng tôi không có cách nào để phân tích cú pháp các chuỗi một cách chính xác

Thật vậy, ví dụ này tiết lộ một lưu ý của hàm extractText() trong PyPDF2. nó không hoạt động tốt đối với các tệp PDF chứa văn bản phức tạp hoặc ký tự khoảng trắng không in được. Do đó, hãy chuyển sang pdfminer và khám phá cách nhập văn bản pdf này,

Bây giờ, đầu ra trông đẹp hơn và có thể dễ dàng làm sạch bằng các kỹ thuật khai thác văn bản,

4. Pdf2image + Pytesseract → hoạt động với hình ảnh quét PDF

Để làm cho mọi thứ trở nên phức tạp hơn đối với các nhà khoa học dữ liệu (tất nhiên), các tệp PDF có thể (và thường) được tạo từ các hình ảnh được quét thay cho tài liệu văn bản;

Trong trường hợp này, kỹ thuật tốt nhất mà tôi tìm thấy trước tiên là trích xuất các hình ảnh một cách rõ ràng, sau đó đọc và phân tích các hình ảnh đó bằng Python. Chúng tôi sẽ thực hiện ý tưởng này với các mô-đun pdf2image và pytesseract. Nếu cái sau nghe có vẻ lạ, thì pytesseract là một công cụ nhận dạng ký tự quang học OCR dành cho Python, có thể nhận dạng và đọc văn bản được nhúng trong hình ảnh. Bây giờ, đây là chức năng cơ bản,

Ở đầu ra, bạn sẽ thấy văn bản của hình ảnh quét được hiển thị bên dưới

PREFACE   In 1939 the Yorkshire Parish Register Society, of which the Parish Register Section of the Yorkshire Archaeological Society is the successor (the publications having been issued in numerical sequence without any break) published as its Volume No. 108 the entries in the Register of Wensley Parish Church from 1538 to 1700 inclusive. These entries comprised the first 110 pages (and a few lines of p. 111) of the oldest register at Wensley.

nhiệm vụ hoàn thành. Ngoài ra, bây giờ bạn cũng biết cách trích xuất dữ liệu từ hình ảnh, tôi. e. , image_to_string() trong mô-đun pytesseract

Ghi chú. để mô-đun pytesseract chạy thành công, bạn có thể cần thực hiện các bước cấu hình bổ sung, bao gồm cài đặt các gói poppler và tesseract. Một lần nữa, xin vui lòng lấy một triển khai mạnh mẽ hơn và danh sách cấu hình chi tiết trong Github của tôi tại đây

Để kết luận, có một trò đùa về khoa học dữ liệu được đề cập bởi Greg Horton, trong phần của anh ấy nói về quy tắc 80–20 trong việc sắp xếp dữ liệu

Các nhà khoa học dữ liệu đã dành 80% thời gian của họ để xử lý các vấn đề về chuẩn bị dữ liệu và 20% còn lại phàn nàn về việc mất bao lâu để xử lý các vấn đề về chuẩn bị dữ liệu

Bằng cách xem xét các cách khác nhau để loại bỏ văn bản từ tệp Word và PDF, tôi hy vọng blog này sẽ giúp 80% của bạn dễ dàng hơn / bớt nhàm chán hơn một chút để bạn không phải vò đầu bứt tóc và cũng giảm 20% còn lại để bạn

Mẹo cuối cùng. Sau khi làm việc xong với một tệp, luôn luôn là một cách viết mã tốt để đóng kết nối để các ứng dụng khác có thể truy cập tệp. Đây là lý do tại sao bạn thấy phương thức close() ở cuối mỗi chức năng ở trên. 😃

Muốn biết thêm về khoa học dữ liệu và mẹo lập trình?

Làm cách nào để đọc tệp docx bằng Python?

Đọc tài liệu Word . call docx. Document() và chuyển bản demo tên tệp. docx. Điều này sẽ trả về một đối tượng Tài liệu, có thuộc tính đoạn văn là danh sách các đối tượng Đoạn văn.

Làm cách nào để đọc tệp văn bản trong Python?

Nếu bạn muốn đọc một tệp văn bản bằng Python, trước tiên bạn phải mở tệp đó. Nếu tệp văn bản và tệp hiện tại của bạn nằm trong cùng một thư mục ("thư mục"), thì bạn chỉ cần tham chiếu tên tệp trong hàm open().

Làm thế nào để đọc docx trong gấu trúc?

Xử lý dữ liệu bảng thành pandas dataframe. Sử dụng các thuộc tính có sẵn của thư viện python-docx, đọc từng hàng của bảng và truy xuất văn bản từ từng ô và tạo danh sách python gồm danh sách chứa từng hàng. Then convert that python data structure to pandas DataFrame.