Chuyển đổi dữ liệu PDF thành các mục nhập cơ sở dữ liệu PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Chuyển đổi dữ liệu PDF sang mục nhập cơ sở dữ liệu

Một số tổ chức và doanh nghiệp dựa vào tài liệu PDF để chia sẻ các tài liệu quan trọng như hóa đơn, phiếu lương, tài chính, đơn đặt hàng, biên lai, v.v. Tuy nhiên, PDF không phải là định dạng phù hợp để lưu trữ dữ liệu lịch sử vì chúng không thể dễ dàng xuất và sắp xếp thành quy trình công việc. Vì vậy, mọi người sử dụng các thuật toán trích xuất thông tin để số hóa các tệp PDF & tài liệu được quét thành các định dạng có cấu trúc như JSON, CSV, Bảng hoặc Excel có thể dễ dàng chuyển đổi thành các quy trình công việc tổ chức khác.

Trong một số trường hợp, các tệp PDF chứa thông tin cần thiết được xử lý trong các hệ thống ERP, CMS khác nhau và các hệ thống dựa trên cơ sở dữ liệu khác. Thật không may, tài liệu PDF không có chức năng chuyển PDF sang cơ sở dữ liệu dễ dàng và việc viết tập lệnh hoặc xây dựng quy trình làm việc xung quanh tác vụ này hơi phức tạp. Đây là lúc các thuật toán OCR và Deep Learning (DL) đi vào hình ảnh để trích xuất dữ liệu từ các định dạng PDF này và xuất nó thành cơ sở dữ liệu. Trong bài đăng trên blog này, chúng tôi sẽ xem xét các cách khác nhau về cách bạn có thể thực hiện điều đó bằng cách sử dụng công nghệ DL cũng như một số API phổ biến trên thị trường.

Chuyển đổi PDF sang cơ sở dữ liệu là gì?

Chuyển đổi PDF sang cơ sở dữ liệu là nhiệm vụ xuất dữ liệu từ các tệp PDF sang cơ sở dữ liệu như Postgres, Mongo, MySQL, v.v.

Giả sử chúng ta đang xây dựng một ứng dụng web hoặc một hệ thống ERP để lưu giữ và duy trì thông tin hóa đơn từ các nguồn khác nhau. Thêm hóa đơn lịch sử theo cách thủ công vào cơ sở dữ liệu là một công việc khó khăn và rất dễ xảy ra lỗi. Mặt khác, việc sử dụng OCR đơn giản có thể không trích xuất chính xác các bảng từ hóa đơn.

Đây là lúc chuyển đổi PDF sang Cơ sở dữ liệu nâng cao dựa trên AI trở nên hữu ích!

Quá trình chuyển đổi cơ sở dữ liệu PDF sang cơ sở dữ liệu do AI điều khiển này có thể tự động hóa được không? - Vâng.

Trong các phần bên dưới, chúng tôi sử dụng thị giác máy tính và học sâu để phát hiện các vùng bảng từ tài liệu được quét. Các bảng này được tiếp tục lưu trữ trong một định dạng dữ liệu cụ thể như CSV hoặc excel và sẽ được đẩy trực tiếp vào cơ sở dữ liệu.

Trước khi thảo luận về những điều này, chúng ta hãy hiểu một số trường hợp sử dụng mà việc phát hiện từ PDF sang cơ sở dữ liệu có thể hữu ích.

Các trường hợp sử dụng khác nhau cho PDF sang Cơ sở dữ liệu

Cơ sở dữ liệu là cách tốt nhất để lưu trữ thông tin trên cả đám mây và bộ nhớ cục bộ. Chúng cho phép chúng tôi thực hiện các hoạt động và thao tác khác nhau bằng cách sử dụng các truy vấn đơn giản. Dưới đây là một số trường hợp sử dụng có thể được tối ưu hóa đáng kể với quy trình chuyển đổi cơ sở dữ liệu PDF sang cơ sở dữ liệu tự động:

  1. Quản lý Hóa đơn trên Web: Doanh nghiệp và tổ chức xử lý nhiều hóa đơn mỗi ngày; và họ khó có thể xử lý từng hóa đơn theo cách thủ công. Ngoài ra, đôi khi, họ tăng và nhận hóa đơn ở định dạng không phải kỹ thuật số, điều này khiến họ khó theo dõi hơn. Do đó, họ dựa vào các ứng dụng dựa trên web có thể lưu trữ tất cả các hóa đơn của họ ở một nơi. Công cụ chuyển đổi PDF sang cơ sở dữ liệu có thể tự động hóa việc trích xuất dữ liệu từ hóa đơn sang ứng dụng web. Để tự động hóa các tác vụ này một cách hiệu quả, chúng tôi có thể chạy các công việc cron và tích hợp chúng với các dịch vụ của bên thứ ba như n8n và Zapier - khi một hóa đơn mới được quét và tải lên, nó có thể chạy thuật toán và tự động đẩy nó vào các bảng.
  2. Người quản lý hàng tồn kho EComt: Rất nhiều công việc quản lý hàng tồn kho của e-com vẫn chạy bằng cách nhập thủ công các sản phẩm từ các tệp PDF và các bản sao được quét. Tuy nhiên, họ cần tải tất cả dữ liệu của mình lên phần mềm quản lý thanh toán để theo dõi tất cả các sản phẩm và doanh số bán hàng của mình. Do đó, việc sử dụng thuật toán chuyển đổi bảng thành cơ sở dữ liệu có thể giúp tự động hóa việc nhập thủ công và tiết kiệm tài nguyên. Quá trình này thường bao gồm việc quét danh sách hàng tồn kho từ các tài liệu đã quét và xuất chúng thành các bảng cơ sở dữ liệu cụ thể dựa trên các quy tắc và điều kiện kinh doanh khác nhau.
  3. Trích xuất dữ liệu từ các cuộc khảo sát: Để thu thập thông tin phản hồi và các thông tin có giá trị khác, chúng tôi thường tiến hành một cuộc khảo sát. Chúng cung cấp nguồn dữ liệu và thông tin chi tiết quan trọng cho gần như tất cả mọi người tham gia vào nền kinh tế thông tin, từ các doanh nghiệp và phương tiện truyền thông đến chính phủ và học giả. Khi chúng được thu thập trực tuyến, thật dễ dàng để trích xuất trạng thái dữ liệu bảng dựa trên phản hồi của người dùng và tải nó lên cơ sở dữ liệu. Tuy nhiên, trong hầu hết các trường hợp, các câu trả lời khảo sát là trên giấy. Trong những trường hợp như vậy, thật khó để thu thập thông tin theo cách thủ công và lưu trữ chúng ở định dạng kỹ thuật số. Do đó, dựa vào các thuật toán từ bảng thành cơ sở dữ liệu có thể tiết kiệm thời gian và cũng cắt giảm chi phí bổ sung.

Làm cách nào để trích xuất thông tin từ PDF sang Cơ sở dữ liệu quan hệ và không quan hệ?

Tệp PDF được coi là hai loại khác nhau, được tạo bằng điện tử và không được tạo bằng điện tử.

  1. PDF điện tử: Tài liệu PDF được quét này có thể có văn bản ẩn đằng sau hình ảnh; chúng cũng được gọi là các tệp PDF được tạo điện tử.
  2. PDF không phải điện tử: Trong loại này, chúng tôi thấy nhiều nội dung được mã hóa cứng dưới dạng hình ảnh. Đây là trường hợp bạn có một tài liệu bản cứng được quét thành tệp PDF.

Chúng tôi có thể dựa vào các ngôn ngữ lập trình và khuôn khổ đơn giản như Python và Java cho loại đầu tiên (được tạo bằng điện tử). Đối với các tệp PDF không được tạo bằng điện tử, chúng tôi sẽ cần sử dụng các kỹ thuật Thị giác máy tính với OCR và học sâu. Tuy nhiên, các thuật toán này có thể không giống nhau đối với tất cả các thuật toán trích xuất bảng và chúng sẽ cần thay đổi tùy thuộc vào loại dữ liệu để đạt được độ chính xác cao hơn. NLP (Xử lý ngôn ngữ tự nhiên) cũng được sử dụng để hiểu dữ liệu bên trong bảng và trích xuất chúng trong một số trường hợp.

Mặt khác, có hai loại cơ sở dữ liệu (quan hệ và không quan hệ); mỗi cơ sở dữ liệu này có các bộ quy tắc khác nhau dựa trên kiến ​​trúc của chúng. Cơ sở dữ liệu quan hệ có cấu trúc, nghĩa là dữ liệu được tổ chức trong các bảng. Một vài ví dụ bao gồm MySQL, Postgres, v.v.

Ngược lại, cơ sở dữ liệu không quan hệ hướng đến tài liệu, có nghĩa là tất cả thông tin được lưu trữ theo thứ tự danh sách giặt là nhiều hơn. Trong một tài liệu khởi tạo duy nhất, bạn sẽ có tất cả dữ liệu của mình được liệt kê - ví dụ: MongoDB.

PDF sang cơ sở dữ liệu khi tài liệu được tạo bằng điện tử

Như đã thảo luận, đối với các tệp PDF được tạo điện tử, quá trình trích xuất bảng diễn ra đơn giản. Ý tưởng là trích xuất các bảng và sau đó sử dụng các tập lệnh đơn giản để chuyển đổi chúng hoặc thêm chúng vào bảng. Để trích xuất bảng từ PDF, chủ yếu có hai kỹ thuật.

Kỹ thuật # 1 Luồng: Thuật toán phân tích cú pháp qua các bảng dựa trên khoảng trắng giữa các ô để mô phỏng cấu trúc bảng — xác định vị trí không có văn bản. Nó được xây dựng dựa trên chức năng của PDFMiner nhằm nhóm các ký tự trên một trang thành các từ và câu bằng cách sử dụng lề. Trong kỹ thuật này, đầu tiên, các hàng được phát hiện bằng cách phỏng đoán sơ bộ dựa trên vị trí trục y của một số văn bản (tức là chiều cao). Tất cả văn bản trên cùng một dòng được coi là một phần của cùng một hàng. Tiếp theo, người đọc được nhóm và ghép lại thành một nhóm khác nhau để xác định các cột trong bảng. Cuối cùng, bảng được đặt cùng nhau dựa trên các hàng và cột được phát hiện trong các bước trước đó.

Kỹ thuật # 2 Lưới: Ngược lại với stream, Lattice mang tính xác định hơn. Có nghĩa là nó không dựa trên phỏng đoán; đầu tiên nó phân tích cú pháp thông qua các bảng có các dòng xác định giữa các ô. Tiếp theo, nó có thể tự động phân tích cú pháp nhiều bảng có trên một trang. Kỹ thuật này về cơ bản hoạt động bằng cách xem xét hình dạng của đa giác và xác định văn bản bên trong các ô của bảng. Điều này sẽ đơn giản nếu một tệp PDF có tính năng có thể xác định đa giác. Nếu nó có, nó sẽ có một phương pháp để đọc những gì bên trong nó. Tuy nhiên, nó không. Do đó, thị giác máy tính được sử dụng rộng rãi để xác định các hình dạng này và trích xuất nội dung của bảng.

Các bảng được trích xuất chủ yếu được lưu ở định dạng khung dữ liệu. Nó là một trong những kiểu dữ liệu gốc được cung cấp bởi một trong những con gấu trúc thư viện Python phổ biến nhất. Có một số ưu điểm của việc lưu trữ dữ liệu bảng trong một khung dữ liệu. Chúng có thể dễ dàng xử lý, thao tác và xuất sang các định dạng khác nhau như JSON, CSV hoặc bảng. Tuy nhiên, trước khi chúng ta đẩy các khung dữ liệu này vào các bảng, trước tiên chúng ta nên kết nối với cơ sở dữ liệu DB-Client và sau đó di chuyển bảng. Sử dụng các ngôn ngữ như Python, chúng ta có thể tìm thấy một số thư viện có thể kết nối với các nguồn dữ liệu này và xuất dữ liệu.

PDF sang cơ sở dữ liệu khi tài liệu không được tạo bằng điện tử

Các kỹ thuật được thảo luận ở trên có thể không hoạt động đối với các tệp PDF không được tạo bằng điện tử, vì dữ liệu ở đây được quét theo cách thủ công qua một nguồn khác. Đây là lý do tại sao chúng tôi sẽ sử dụng kỹ thuật OCR và Deep Learning để trích xuất dữ liệu từ các tài liệu được quét và xuất chúng thành cơ sở dữ liệu.

Tóm lại, Nhận dạng ký tự quang học, OCR là một công cụ đặc biệt giúp chuyển đổi các chữ cái in từ tài liệu được quét thành văn bản có thể chỉnh sửa. Để xác định bảng PDF từ tài liệu, trước tiên, chúng ta cần xác định vị trí của bảng và sau đó áp dụng OCR để trích xuất dữ liệu từ các ô trong bảng. Sau đây là các bước về cách đạt được nó:

  1. Đầu tiên, chúng tôi phát hiện các phân đoạn đường thẳng bằng cách áp dụng các đường bao ngang và dọc.
  2. Đường giao nhau giữa các dòng được phát hiện bằng cách xem cường độ của các pixel của tất cả các dòng. Nếu một pixel đường thẳng có cường độ lớn hơn phần còn lại của pixel, thì nó là một phần của hai đường và do đó, là giao điểm.
  3. Các cạnh của bảng được xác định bằng cách xem cường độ của các pixel của các đường giao nhau. Ở đây, tất cả các pixel của một đường được lấy và hầu hết các đường bên ngoài đại diện cho ranh giới của bảng.
  4. Phân tích hình ảnh được dịch sang tọa độ PDF, nơi các ô được xác định. Văn bản được gán cho một ô dựa trên tọa độ x và y của nó.
  5. OCR được áp dụng cho các tọa độ để trích xuất văn bản
  6. Văn bản được trích xuất được xuất vào khung dữ liệu dựa trên vị trí của bảng.

Đây là cách chúng ta có thể trích xuất các bảng bằng CV. Tuy nhiên, có một vài hạn chế ở đây. Các thuật toán này không thành công đối với các bảng lớn và các bảng có kiểu mẫu khác nhau. Đây là nơi mà học sâu đi vào; họ sử dụng một loại khung mạng nơ-ron đặc biệt để học hỏi từ dữ liệu và xác định các mẫu tương tự dựa trên kết quả học được. Trong thập kỷ qua, chúng đã đạt được hiệu suất tối tân, đặc biệt là đối với các nhiệm vụ như khai thác thông tin. Bây giờ, hãy xem cách mạng nơ-ron sâu có thể học từ dữ liệu và trích xuất bảng từ bất kỳ tài liệu nào.

Đào tạo mạng nơron sâu liên quan đến một quy trình làm việc cụ thể; các luồng công việc này thường được thay đổi dựa trên loại dữ liệu mà chúng tôi đang làm việc và hiệu suất của mô hình của chúng. Giai đoạn đầu tiên của quy trình làm việc bao gồm việc thu thập dữ liệu và xử lý chúng dựa trên mô hình của chúng tôi. Trong trường hợp trích xuất các bảng từ các tài liệu PDF, tập dữ liệu lý tưởng nên chứa các tài liệu không có cấu trúc. Các tài liệu này được chuyển đổi thành hình ảnh, được tải dưới dạng tensor và sẵn sàng như một lớp bộ tải dữ liệu để đào tạo. Tiếp theo, chúng tôi thường xác định tất cả các siêu tham số được yêu cầu để đào tạo. Chúng thường bao gồm thiết lập kích thước lô, chức năng mất mát, trình tối ưu hóa cho mô hình. Cuối cùng, kiến ​​trúc mạng nơ-ron được xác định hoặc xây dựng trên mô hình được xác định trước. Mô hình này sẽ được đào tạo dựa trên dữ liệu và được tinh chỉnh dựa trên các chỉ số hiệu suất.

Sau đây là ảnh chụp màn hình các bước khác nhau liên quan đến việc đào tạo mô hình học sâu:

Quy trình làm việc ML điển hình (nguồn)

Trích xuất dữ liệu từ pdf và xuất chúng sang cơ sở dữ liệu SQL bằng Python

Cho đến nay, chúng tôi đã tìm hiểu chuyển đổi pdf sang cơ sở dữ liệu là gì và đã thảo luận về một số trường hợp sử dụng có thể hữu ích. Phần này thực tế sẽ tiếp cận vấn đề này bằng cách sử dụng Computer Vision và phát hiện các bảng trong pdf được quét và xuất chúng thành cơ sở dữ liệu. Để làm theo, hãy đảm bảo cài đặt Python và OpenCV trên máy cục bộ của bạn. Ngoài ra, bạn có thể sử dụng sổ ghi chép Google Collab trực tuyến.

Bước 1: Cài đặt Tabula và Pandas

Trong ví dụ này, chúng tôi sẽ sử dụng Tabula và Pandas để trích xuất và đẩy các bảng vào cơ sở dữ liệu. Hãy cài đặt chúng qua pip và nhập chúng vào chương trình của chúng tôi.

import tabula
import pandas as pd

Bước 2: Đọc bảng vào Dataframe

Bây giờ, chúng tôi sẽ sử dụng read_pdf chức năng từ tabula để đọc bảng từ PDF; lưu ý rằng thư viện này chỉ hoạt động trên các tài liệu PDF được tạo bằng điện tử. Sau đây là đoạn mã:

table = tabula.read_pdf("sample.pdf",pages='all',multiple_tables=False)

df = pd.concat(table)

Ở đây, như chúng ta thấy, trước tiên, chúng tôi sử dụng để đọc nội dung của tệp PDF, chúng tôi đặt tham số multiple_tables thành False, vì tài liệu được sử dụng trong ví dụ chỉ có một bảng.

Bây giờ, chúng ta sẽ tải danh sách này vào một khung dữ liệu bằng cách sử dụng gấu trúc và bạn có thể kiểm tra loại bảng bằng cách sử dụng phương thức type; điều này sẽ trả về một khung dữ liệu gấu trúc gốc.

Bước 3: Di chuyển Dataframe sang Postres

Trước khi đưa bảng của mình vào cơ sở dữ liệu, trước tiên, chúng ta nên thiết lập kết nối với nó từ chương trình của mình và chúng ta có thể thực hiện việc này bằng cách sử dụng sqlalchemy khách hàng trong python. Tương tự như vậy, các ngôn ngữ lập trình khác nhau cung cấp loại ứng dụng khách cơ sở dữ liệu này để tương tác với cơ sở dữ liệu trực tiếp từ các chương trình của chúng tôi.

Trong chương trình này, chúng tôi sẽ sử dụng create_engine phương pháp cho phép chúng tôi kết nối với cơ sở dữ liệu; đảm bảo thay thế thông tin xác thực cơ sở dữ liệu trong chuỗi đã cho để làm cho điều này hoạt động. Tiếp theo, chúng tôi sử dụng write_frame chức năng xuất bảng trích xuất vào cơ sở dữ liệu được kết nối.

engine = create_engine('postgresql+psycopg2://username:password@host:port/database')

sql.write_frame(df, 'table_name', con, flavor='postgresql')

Và giống như vậy, chúng tôi đã có thể xuất các bảng từ PDF vào cơ sở dữ liệu, điều này trông khá đơn giản và dễ dàng vì chúng tôi đã sử dụng một tệp PDF được tạo điện tử được xử lý đơn giản. Để trích xuất các bảng từ các bảng không được tạo bằng điện tử, sau đây là các kỹ thuật học sâu phổ biến có thể được sử dụng:

  1. Giấy tờ có mã - GFTE: Trích xuất bảng tài chính dựa trên đồ thị
  2. Papers with Code - PubTables-1M: Hướng tới một tập dữ liệu và thước đo phổ quát để đào tạo và đánh giá các mô hình trích xuất bảng
  3. TableNet: Mô hình học sâu để phát hiện bảng từ đầu đến cuối và trích xuất dữ liệu dạng bảng từ ảnh tài liệu được quét

Nhập Nanonets: OCR nâng cao cho Chuyển đổi bảng PDF sang cơ sở dữ liệu

Phần này sẽ xem xét cách Nanonet có thể giúp chúng ta thực hiện các bảng đối với cơ sở dữ liệu theo cách dễ tùy chỉnh và dễ dàng hơn.

Nanonets ™ là một OCR dựa trên đám mây có thể giúp tự động hóa việc nhập dữ liệu thủ công của bạn bằng AI. Chúng tôi sẽ có một bảng điều khiển nơi chúng tôi có thể xây dựng / đào tạo các mô hình OCR của mình trên dữ liệu của chúng tôi và vận chuyển chúng ở dạng JSON / CSV hoặc bất kỳ định dạng mong muốn nào. Dưới đây là một số ưu điểm của việc sử dụng Nanonet làm trình quét tài liệu PDF.

Một trong những điểm nổi bật của Nanonets là sự đơn giản mà dịch vụ mang lại. Người ta có thể lựa chọn các dịch vụ này mà không cần bất kỳ nền tảng lập trình nào và dễ dàng trích xuất dữ liệu PDF với công nghệ tiên tiến. Sau đây là sơ lược về cách dễ dàng chuyển đổi PDF thành cơ sở dữ liệu.

Bước 1: Truy cập nanonets.com và đăng ký / đăng nhập.

Chuyển đổi dữ liệu PDF thành các mục nhập cơ sở dữ liệu PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Bước 2: Sau khi đăng ký, hãy chuyển đến khu vực “Chọn để bắt đầu”, nơi bạn có thể sử dụng các trình trích xuất được tạo sẵn hoặc tự tạo một trình giải nén của chúng tôi bằng cách sử dụng tập dữ liệu của bạn. Ở đây, chúng tôi sẽ sử dụng trình trích xuất hóa đơn được tạo sẵn Invoice.

Chuyển đổi dữ liệu PDF thành các mục nhập cơ sở dữ liệu PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Bước 3: Tải lên PDF của hình ảnh, để thực hiện trích xuất dữ liệu và chọn tùy chọn trích xuất tự động.

Chuyển đổi dữ liệu PDF thành các mục nhập cơ sở dữ liệu PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Bước 4: Tạo tích hợp MySQL tích hợp mới để xuất dữ liệu đã trích xuất vào cơ sở dữ liệu. Ngoài ra, bạn có thể chọn các tùy chọn khác nhau dựa trên cơ sở dữ liệu mà bạn chọn.

Chuyển đổi dữ liệu PDF thành các mục nhập cơ sở dữ liệu PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Thiết lập kết nối dữ liệu và nhấp vào thêm tích hợp. Với điều này, dữ liệu sẽ được trích xuất và tự động tải lên cơ sở dữ liệu bất cứ khi nào tệp được tải lên. Nếu bạn không tìm thấy các tích hợp cần thiết, bạn luôn có thể sử dụng Nanonets API và viết các tập lệnh đơn giản để hoàn thành quá trình tự động hóa.

Dấu thời gian:

Thêm từ AI & Máy học