Chào các bạn trong diễn đàn,
Dạo gần đây mình có làm một dự án nhỏ liên quan đến việc xử lý hóa đơn giấy. Công việc này khá thủ công và tốn thời gian khi phải nhập tay các thông tin như mã số thuế, tên công ty, ngày tháng, tổng tiền,...
Mình đã tìm hiểu và áp dụng thử Python kết hợp với thư viện OCR (Optical Character Recognition) để tự động hóa quá trình này. Kết quả khá bất ngờ, độ chính xác khá cao và tiết kiệm được rất nhiều công sức.
Về cơ bản, quy trình hoạt động như sau:
- Chụp ảnh hoặc scan hóa đơn thành file ảnh (JPG, PNG,...).
- Sử dụng thư viện OCR (ví dụ:
pytesseract) để nhận dạng văn bản từ ảnh. - Áp dụng các biểu thức chính quy (Regular Expression - Regex) để trích xuất các thông tin cần thiết dựa trên mẫu của hóa đơn.
- Lưu kết quả vào file Excel hoặc database.
Ví dụ đơn giản về việc trích xuất mã số thuế (giả sử mã số thuế luôn có dạng 10 hoặc 13 chữ số):
import re
text_from_image = "... nội dung văn bản nhận dạng được ..."
# Tìm mã số thuế (10 hoặc 13 chữ số)
ma_so_thue = re.search(r'\d{10}|\d{13}', text_from_image)
if ma_so_thue:
print(f'Mã số thuế: {ma_so_thue.group(0)}')
else:
print('Không tìm thấy mã số thuế')Tất nhiên, để đạt được độ chính xác cao nhất, cần phải tinh chỉnh các tham số của OCR và xây dựng bộ Regex phù hợp với từng loại hóa đơn. Tuy nhiên, đây là một hướng đi rất tiềm năng cho những ai cần xử lý lượng lớn tài liệu dạng này.
Không biết có anh em nào đã từng làm hoặc có kinh nghiệm về mảng này không, cùng chia sẻ thêm nhé!