Python có thể đọc dữ liệu từ tệp pdf không?

Dữ liệu là chìa khóa cho bất kỳ phân tích nào trong khoa học dữ liệu, có thể là phân tích suy luận, phân tích dự đoán hoặc phân tích theo quy tắc. Sức mạnh dự đoán của một mô hình phụ thuộc vào chất lượng của dữ liệu được sử dụng để xây dựng mô hình. Dữ liệu có nhiều dạng khác nhau như văn bản, bảng, hình ảnh, giọng nói hoặc video. Thông thường, dữ liệu được sử dụng để phân tích phải được khai thác, xử lý và chuyển đổi để đưa dữ liệu đó sang dạng phù hợp để phân tích thêm.

Loại tập dữ liệu phổ biến nhất được sử dụng trong hầu hết các phân tích là dữ liệu sạch được lưu trữ trong bảng giá trị (csv) được phân tách bằng dấu phẩy. Tuy nhiên, vì tệp định dạng tài liệu di động (pdf) là một trong những định dạng tệp được sử dụng nhiều nhất nên mọi nhà khoa học dữ liệu nên hiểu cách trích xuất dữ liệu từ tệp pdf và chuyển đổi dữ liệu thành định dạng chẳng hạn như “csv” để sau đó có thể sử dụng cho

Sao chép dữ liệu từ tệp pdf từng dòng quá tẻ nhạt và thường có thể dẫn đến hỏng do lỗi của con người trong quá trình này. Do đó, điều cực kỳ quan trọng là phải hiểu cách nhập dữ liệu từ pdf một cách hiệu quả và không có lỗi

Trong bài viết này, chúng tôi sẽ tập trung vào việc trích xuất bảng dữ liệu từ tệp pdf. Một phân tích tương tự có thể được thực hiện để trích xuất các loại dữ liệu khác như văn bản hoặc hình ảnh từ tệp pdf. Bài viết này tập trung vào việc trích xuất dữ liệu số từ tệp pdf. Để trích xuất hình ảnh từ tệp pdf, python có một gói gọi là minecart có thể được sử dụng để trích xuất hình ảnh, văn bản và hình dạng từ pdf

Chúng tôi minh họa cách một bảng dữ liệu có thể được trích xuất từ ​​​​tệp pdf và sau đó được chuyển thành định dạng phù hợp để phân tích sâu hơn và xây dựng mô hình. Chúng tôi sẽ trình bày hai ví dụ, một sử dụng Python và một sử dụng R. Bài viết này sẽ xem xét những điều sau đây

  1. Trích xuất bảng dữ liệu từ tệp pdf
  2. Làm sạch, chuyển đổi và cấu trúc dữ liệu bằng kỹ thuật sắp xếp dữ liệu và xử lý chuỗi
  3. Lưu trữ bảng dữ liệu sạch sẽ và gọn gàng dưới dạng tệp csv
  4. Giới thiệu các gói sắp xếp dữ liệu và xử lý chuỗi trong R, chẳng hạn như “tidyverse”, “pdftools” và “stringr”
ví dụ 1. Trích xuất bảng từ tệp PDF bằng Python

Giả sử chúng ta muốn trích xuất bảng bên dưới từ tệp pdf

— — — — — — — — — — — — — — — — — — — — — — — — —

— — — — — — — — — — — — — — — — — — — — — — — — —

a) Sao chép và dán bảng vào Excel và lưu tệp dưới dạng table_1_raw. csv

Dữ liệu được lưu trữ ở định dạng một chiều và phải được định hình lại, làm sạch và chuyển đổi

b) Nhập các thư viện cần thiết

import pandas as pd
import numpy as np

c) Nhập dữ liệu thô và định hình lại dữ liệu

df=pd.read_csv("table_1_raw.csv", header=None)df.values.shapedf2=pd.DataFrame(df.values.reshape(25,10))column_names=df2[0:1].values[0]df3=df2[1:]df3.columns = df2[0:1].values[0]df3.head()

d) Thực hiện sắp xếp dữ liệu bằng các công cụ xử lý chuỗi

Chúng tôi nhận thấy từ bảng trên rằng các cột x5, x6 và x7 được biểu thị bằng tỷ lệ phần trăm, vì vậy chúng tôi cần loại bỏ biểu tượng phần trăm (%)

df4['x5']=list(map(lambda x: x[:-1], df4['x5'].values))df4['x6']=list(map(lambda x: x[:-1], df4['x6'].values))df4['x7']=list(map(lambda x: x[:-1], df4['x7'].values))

e) Chuyển đổi dữ liệu sang dạng số

Chúng ta lưu ý rằng giá trị cột của các cột x5, x6, x7 có kiểu dữ liệu là chuỗi nên chúng ta cần chuyển đổi các giá trị này thành dữ liệu số như sau

df4['x5']=[float(x) for x in df4['x5'].values]df4['x6']=[float(x) for x in df4['x6'].values]df4['x7']=[float(x) for x in df4['x7'].values]

f) Xem dạng cuối cùng của dữ liệu được chuyển đổi

df4.head(n=5)

g) Xuất dữ liệu cuối cùng sang tệp csv

df4.to_csv('table_1_final.csv',index=False)
Ví dụ 2. Trích xuất bảng từ tệp PDF bằng R

Ví dụ này minh họa cách trích xuất bảng từ tệp pdf bằng kỹ thuật sắp xếp dữ liệu trong R. Giả sử chúng ta có bảng sau từ tên tệp pdf trade_report. pdf

— — — — — — — — — — — — — — — — — — — — — — — — —

— — — — — — — — — — — — — — — — — — — — — — — —

Chúng tôi muốn trích xuất bảng, sắp xếp dữ liệu và chuyển đổi nó thành bảng khung dữ liệu sẵn sàng để phân tích thêm. Sau đó, bảng dữ liệu cuối cùng có thể dễ dàng được xuất và lưu trữ trong tệp “csv”. Đặc biệt, chúng tôi muốn đạt được những điều sau đây

i) Trên cột Sản phẩm, chúng tôi muốn loại bỏ USD khỏi sản phẩm ETC-USD

ii) Tách cột Ngày thành hai cột riêng biệt, cụ thể là ngày và giờ

iii) Bỏ USD khỏi cột Fee và Total

Tập dữ liệu và mã cho ví dụ này có thể được tải xuống từ kho lưu trữ này. https. //github. com/bot13956/extract_table_from_pdf_file_using_R

a) Nhập các thư viện cần thiết

library("tidyverse")library("stringr")library("pdftools")

b) Trích xuất bảng và chuyển thành tệp văn bản

# define file pathpdf_file <- file.path("C:\\Users\\btayo\\Desktop\\TRADE", "trade_report.pdf")# convert pdf file to text (txt) filetext <- pdf_text(pdf_file)

c) Sắp xếp dữ liệu để làm sạch và sắp xếp dữ liệu bằng các công cụ xử lý chuỗi

________số 8

d) Xem dạng cuối cùng của dữ liệu được chuyển đổi

data%>%head()

Tập dữ liệu và mã, ví dụ 2, có thể được tải xuống từ kho lưu trữ này. https. //github. com/bot13956/extract_table_from_pdf_file_using_R

Tóm lại, chúng tôi đã chỉ ra cách có thể trích xuất bảng dữ liệu từ tệp pdf. Vì tệp pdf là loại tệp rất phổ biến nên mọi nhà khoa học dữ liệu nên làm quen với các kỹ thuật trích xuất và chuyển đổi dữ liệu được lưu trữ trong tệp pdf

Bạn có thể cạo dữ liệu từ PDF Python không?

Với sự trợ giúp của thư viện python, chúng tôi có thể tiết kiệm thời gian và tiền bạc bằng cách tự động hóa quy trình trích xuất dữ liệu từ tệp PDF và chuyển đổi dữ liệu phi cấu trúc thành dữ liệu bảng .

Có thể trích xuất dữ liệu từ PDF không?

Bạn có hai tùy chọn cơ bản để trích xuất dữ liệu từ tài liệu PDF. tinh chỉnh dữ liệu theo cách thủ công và trích xuất dữ liệu tự động . Trích xuất tự động nhanh hơn, nhưng sao chép và dán thông tin theo cách thủ công có thể là một lựa chọn hiệu quả nếu bạn chỉ có một vài tài liệu.