PDF 데이터를 데이터베이스 항목으로 변환 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

PDF 데이터를 데이터베이스 항목으로 변환

여러 조직과 기업에서 PDF 문서를 사용하여 송장, 급여 명세서, 재무, 작업 주문, 영수증 등과 같은 중요한 문서를 공유합니다. 그러나 PDF는 워크플로로 쉽게 내보내고 구성할 수 없기 때문에 기록 데이터를 저장하는 데 사용되는 형식이 아닙니다. 따라서 사람들은 정보 추출 알고리즘을 사용하여 PDF 및 스캔한 문서를 다른 조직 워크플로로 쉽게 변환할 수 있는 JSON, CSV, 테이블 또는 Excel과 같은 구조화된 형식으로 디지털화합니다.

경우에 따라 PDF에는 다양한 ERP, CMS 및 기타 데이터베이스 기반 시스템에서 처리해야 하는 필수 정보가 들어 있습니다. 유감스럽게도 PDF 문서에는 데이터베이스 기능으로 쉬운 PDF가 없으며 스크립트를 작성하거나 이 작업을 중심으로 워크플로를 구축하는 것은 약간 복잡합니다. OCR 및 딥 러닝(DL) 알고리즘이 이러한 PDF 형식에서 데이터를 추출하고 데이터베이스로 내보내는 곳입니다. 이 블로그 게시물에서는 DL 기술과 시중에 나와 있는 몇 가지 인기 있는 API를 사용하여 이를 달성할 수 있는 다양한 방법을 살펴보겠습니다.

PDF를 데이터베이스로 변환이란 무엇입니까?

PDF에서 데이터베이스로 변환은 PDF에서 Postgres, Mongo, MySQL 등과 같은 데이터베이스로 데이터를 내보내는 작업입니다.

다른 소스에서 송장 정보를 보유하고 유지 관리하는 웹 애플리케이션 또는 ERP 시스템을 구축한다고 가정합니다. 과거 송장을 데이터베이스에 수동으로 추가하는 것은 힘든 작업이며 오류가 발생하기 쉽습니다. 반면에 간단한 OCR을 사용하면 송장에서 테이블을 정확하게 추출하지 못할 수 있습니다.

이것은 고급 AI 기반 PDF를 데이터베이스로 변환하는 데 유용합니다!

이 AI 기반 PDF에서 데이터베이스로의 변환 프로세스를 자동화할 수 있습니까? - 예.

아래 섹션에서는 컴퓨터 비전과 딥 러닝을 사용하여 스캔한 문서에서 테이블 영역을 감지합니다. 이러한 테이블은 CSV 또는 Excel과 같은 특정 데이터 형식으로 추가로 저장되며 데이터베이스에 직접 푸시됩니다.

이에 대해 논의하기 전에 PDF에서 데이터베이스로의 검색이 유용할 수 있는 몇 가지 사용 사례를 이해하겠습니다.

PDF에서 데이터베이스로의 다양한 사용 사례

데이터베이스는 클라우드와 로컬 스토리지 모두에 정보를 저장하는 가장 좋은 방법입니다. 간단한 쿼리를 사용하여 다양한 작업과 조작을 수행할 수 있습니다. 다음은 자동화된 PDF에서 데이터베이스로의 변환 워크플로로 크게 최적화할 수 있는 몇 가지 사용 사례입니다.

  1. 웹에서 송장 관리: 기업과 조직은 매일 여러 송장을 처리합니다. 그리고 각 송장을 수동으로 처리하기가 어렵습니다. 또한 때때로 그들은 비디지털 형식으로 송장을 올리고 받기 때문에 추적하기가 더 어렵습니다. 따라서 그들은 모든 인보이스를 한 곳에 저장할 수 있는 웹 기반 애플리케이션에 의존합니다. PDF-데이터베이스 변환기는 송장에서 웹 애플리케이션으로 데이터 추출을 자동화할 수 있습니다. 이러한 작업을 효율적으로 자동화하기 위해 cron 작업을 실행하고 n8n 및 Zapier와 같은 타사 서비스와 통합할 수 있습니다. 새 인보이스가 스캔 및 업로드되면 알고리즘을 실행하고 자동으로 테이블에 푸시할 수 있습니다.
  2. ECom 재고 관리t: 많은 e-com 재고 관리가 여전히 PDF 및 스캔 사본에서 제품을 수동으로 입력하는 방식으로 실행됩니다. 그러나 모든 제품과 판매를 추적하려면 모든 데이터를 청구 관리 소프트웨어에 업로드해야 합니다. 따라서 테이블에서 데이터베이스로의 변환 알고리즘을 사용하면 수동 입력을 자동화하고 리소스를 절약할 수 있습니다. 이 프로세스에는 일반적으로 스캔한 문서에서 인벤토리 목록을 스캔하고 다양한 비즈니스 규칙 및 조건에 따라 특정 데이터베이스 테이블로 내보내는 작업이 포함됩니다.
  3. 설문조사에서 데이터 추출: 피드백 및 기타 귀중한 정보를 수집하기 위해 일반적으로 설문조사를 수행합니다. 기업과 언론에서 정부와 학계에 이르기까지 정보 경제에 종사하는 거의 모든 사람에게 중요한 데이터 소스와 통찰력을 제공합니다. 이것들이 온라인으로 수집되면 사용자 응답을 기반으로 테이블 데이터 상태를 쉽게 추출하고 데이터베이스에 업로드할 수 있습니다. 그러나 대부분의 경우 설문조사 응답은 종이에 기록됩니다. 이러한 경우 정보를 수동으로 수집하여 디지털 형식으로 저장하는 것은 매우 어렵습니다. 따라서 데이터베이스 알고리즘에 대한 테이블에 의존하면 시간을 절약하고 추가 비용을 절감할 수 있습니다.

PDF에서 관계형 및 비관계형 데이터베이스로 정보를 추출하는 방법은 무엇입니까?

PDF 파일은 전자적으로 생성된 것과 비전자적으로 생성된 두 가지 유형으로 볼 수 있습니다.

  1. 전자 PDF: 이 스캔한 PDF 문서에는 이미지 뒤에 숨겨진 텍스트가 있을 수 있습니다. 전자적으로 생성된 PDF라고도 합니다.
  2. 비전자 PDF: 이 유형에서는 이미지로 하드 코딩된 더 많은 콘텐츠를 볼 수 있습니다. 하드카피 문서를 PDF 파일로 스캔한 경우입니다.

첫 번째 유형(전자적으로 생성됨)에 대해 Python 및 Java와 같은 간단한 프로그래밍 언어 및 프레임워크에 의존할 수 있습니다. 전자적으로 생성되지 않은 PDF의 경우 OCR 및 딥 러닝과 함께 Computer Vision 기술을 활용해야 합니다. 그러나 이러한 알고리즘은 모든 테이블 추출 알고리즘에 대해 동일하지 않을 수 있으며 더 높은 정확도를 달성하기 위해 데이터 유형에 따라 변경해야 합니다. NLP(자연어 처리)도 테이블 내부의 데이터를 이해하고 경우에 따라 추출하는 데 활용됩니다.

반면에 두 종류의 데이터베이스(관계형 및 비관계형)가 있습니다. 이러한 각 데이터베이스에는 아키텍처에 따라 서로 다른 규칙 집합이 있습니다. 관계형 데이터베이스는 구조화되어 있으므로 데이터가 테이블로 구성됩니다. 몇 가지 예에는 MySQL, Postgres 등이 있습니다.

대조적으로, 비관계형 데이터베이스는 문서 지향적이므로 모든 정보가 더 많은 세탁 목록 순서로 저장됩니다. 단일 생성자 문서 내에서 모든 데이터가 나열됩니다(예: MongoDB).

문서가 전자적으로 생성될 때 데이터베이스에 PDF

논의한 바와 같이 전자적으로 생성된 PDF의 경우 테이블을 추출하는 프로세스는 간단합니다. 아이디어는 테이블을 추출한 다음 간단한 스크립트를 사용하여 테이블을 변환하거나 테이블에 추가하는 것입니다. PDF에서 테이블을 추출하는 경우 기본적으로 두 가지 기술이 있습니다.

기술 #1 스트림: 알고리즘은 셀 사이의 공백을 기반으로 테이블을 구문 분석하여 텍스트가 없는 위치를 식별하는 테이블 구조를 시뮬레이션합니다. 페이지의 문자를 여백을 사용하여 단어와 문장으로 그룹화하는 PDFMiner의 기능을 기반으로 합니다. 이 기술에서는 먼저 일부 텍스트의 y축 위치(즉, 높이)를 기반으로 대략적인 추측을 통해 행을 감지합니다. 같은 줄에 있는 모든 텍스트는 같은 줄의 일부로 간주됩니다. 다음으로 리더는 그룹화되고 다른 그룹으로 함께 구성되어 테이블의 열을 식별합니다. 마지막으로 이전 단계에서 감지된 행과 열을 기반으로 테이블이 함께 설정됩니다.

기법 #2 격자: 스트림과 달리 Lattice는 더 결정적입니다. 추측에 의존하지 않는다는 의미입니다. 먼저 셀 사이에 행이 정의된 테이블을 구문 분석합니다. 다음으로 페이지에 있는 여러 테이블을 자동으로 구문 분석할 수 있습니다. 이 기술은 기본적으로 다각형의 모양을 보고 테이블 셀 내부의 텍스트를 식별하여 작동합니다. PDF에 다각형을 식별할 수 있는 기능이 있으면 간단합니다. 만약 그렇다면, 그 안에 무엇이 들어 있는지 읽는 방법이 있을 것입니다. 그러나 그렇지 않습니다. 따라서 컴퓨터 비전은 이러한 모양을 식별하고 표의 내용을 추출하는 데 널리 활용됩니다.

추출된 테이블은 주로 데이터 프레임 형식으로 저장됩니다. 가장 인기 있는 Python 라이브러리 pandas 중 하나에서 제공하는 기본 데이터 유형 중 하나입니다. 테이블 데이터를 데이터 프레임에 저장하면 몇 가지 장점이 있습니다. JSON, CSV 또는 테이블과 같은 다양한 형식으로 쉽게 처리, 조작 및 내보낼 수 있습니다. 그러나 이러한 데이터 프레임을 테이블에 푸시하기 전에 먼저 DB-Client 데이터베이스에 연결한 다음 테이블을 마이그레이션해야 합니다. Python과 같은 언어를 사용하여 이러한 데이터 소스에 연결하고 데이터를 내보낼 수 있는 여러 라이브러리를 찾을 수 있습니다.

문서가 전자적으로 생성되지 않은 경우 데이터베이스에 PDF

위에서 논의한 기술은 전자적으로 생성되지 않은 PDF에는 작동하지 않을 수 있습니다. 여기에 있는 데이터는 다른 소스를 통해 수동으로 스캔되기 때문입니다. 이것이 OCR 및 딥 러닝 기술을 사용하여 스캔한 문서에서 데이터를 추출하고 데이터베이스로 내보내는 이유입니다.

간단히 말해 광학 문자 인식인 OCR은 스캔한 문서에서 인쇄된 문자를 편집 가능한 텍스트로 변환하는 특수 도구입니다. 문서에서 PDF 테이블을 식별하려면 먼저 테이블의 위치를 ​​식별한 다음 OCR을 적용하여 테이블 셀에서 데이터를 추출해야 합니다. 다음은 달성 방법에 대한 단계입니다.

  1. 먼저 수평 및 수직 윤곽을 적용하여 선분을 감지합니다.
  2. 선 사이의 선 교차는 모든 선의 픽셀 강도를 보고 감지합니다. 선 픽셀의 강도가 나머지 픽셀보다 높으면 두 선의 일부이므로 교차점입니다.
  3. 표의 가장자리는 교차된 선의 픽셀 강도를 보고 결정됩니다. 여기에서 선의 모든 픽셀을 가져오고 가장 바깥쪽 선은 테이블의 경계를 나타냅니다.
  4. 이미지 분석은 셀이 결정되는 PDF 좌표로 변환됩니다. 텍스트는 x 및 y 좌표를 기반으로 셀에 할당됩니다.
  5. 좌표에 OCR을 적용하여 텍스트 추출
  6. 추출된 텍스트는 테이블의 위치에 따라 데이터 프레임으로 내보내집니다.

이것이 CV를 사용하여 테이블을 추출하는 방법입니다. 그러나 여기에는 몇 가지 단점이 있습니다. 이러한 알고리즘은 템플릿 스타일이 다른 큰 테이블과 테이블에 실패합니다. 이것이 딥 러닝이 필요한 곳입니다. 그들은 데이터에서 학습하고 학습을 기반으로 유사한 패턴을 식별하기 위해 특별한 종류의 신경망 프레임워크를 사용합니다. 지난 XNUMX년 동안 특히 정보 추출과 같은 작업에서 최첨단 성능을 달성했습니다. 이제 심층 신경망이 데이터에서 학습하고 모든 문서에서 테이블을 추출하는 방법을 살펴보겠습니다.

심층 신경망 교육에는 특정 워크플로가 포함됩니다. 이러한 워크플로는 작업 중인 데이터 유형과 해당 모델의 성능에 따라 변경되는 경우가 많습니다. 워크플로의 첫 번째 단계는 데이터를 수집하고 우리 모델을 기반으로 처리하는 것입니다. PDF 문서에서 테이블을 추출하는 경우 데이터 세트는 이상적으로 구조화되지 않은 문서를 포함해야 합니다. 이러한 문서는 이미지로 변환되고 텐서로 로드되며 훈련을 위한 데이터 로더 클래스로 준비됩니다. 다음으로 일반적으로 훈련에 필요한 모든 하이퍼파라미터를 정의합니다. 여기에는 일반적으로 모델에 대한 배치 크기, 손실 함수, 최적화 프로그램 설정이 포함됩니다. 마지막으로 신경망 아키텍처는 미리 정의된 모델 위에 정의되거나 구축됩니다. 이 모델은 데이터를 기반으로 훈련되고 성능 메트릭을 기반으로 미세 조정됩니다.

다음은 딥 러닝 모델 학습과 관련된 여러 단계의 스크린샷입니다.

일반적인 ML 워크플로(출처)

pdf에서 데이터를 추출하고 Python을 사용하여 SQL 데이터베이스로 내보내기

지금까지 pdf에서 데이터베이스로의 변환이 무엇인지 배웠고 도움이 될 수 있는 몇 가지 사용 사례에 대해 논의했습니다. 이 섹션에서는 Computer Vision을 사용하여 이 문제에 실질적으로 접근하고 스캔한 pdf에서 테이블을 감지하고 데이터베이스로 내보냅니다. 따라 하려면 로컬 컴퓨터에 Python 및 OpenCV를 설치해야 합니다. 또는 온라인 Google Collab 노트북을 사용할 수 있습니다.

1단계: Tabula 및 Pandas 설치

이 예에서는 Tabula와 Pandas를 사용하여 테이블을 추출하고 데이터베이스에 푸시합니다. pip를 통해 설치하고 프로그램으로 가져옵니다.

import tabula
import pandas as pd

2단계: 테이블을 데이터 프레임으로 읽기

이제 우리가 사용할 read_pdf PDF에서 표를 읽는 표의 기능; 이 라이브러리는 전자적으로 생성된 PDF 문서에서만 작동합니다. 다음은 코드 스니펫입니다.

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

df = pd.concat(table)

여기에서 볼 수 있듯이 먼저 PDF 파일의 내용을 읽는 데 사용하고 매개 변수를 설정합니다. multiple_tables 예제에 사용된 문서에는 테이블이 하나만 있으므로 False로 설정합니다.

이제 pandas를 사용하여 이 목록을 데이터 프레임에 로드하고 type 메서드를 사용하여 테이블의 유형을 확인할 수 있습니다. 이것은 기본 pandas 데이터 프레임을 반환합니다.

3단계: 데이터 프레임을 Postres로 마이그레이션

테이블을 데이터베이스에 푸시하기 전에 먼저 프로그램에서 테이블에 대한 연결을 설정해야 합니다. sqlalchemy 파이썬에서 클라이언트. 유사하게, 다른 프로그래밍 언어는 우리 프로그램에서 직접 데이터베이스와 상호 작용할 수 있도록 이러한 종류의 데이터베이스 클라이언트를 제공합니다.

이 프로그램에서는 다음을 사용할 것입니다. create_engine 데이터베이스에 연결할 수 있는 방법 이 작업을 수행하려면 주어진 문자열에서 데이터베이스 자격 증명을 교체해야 합니다. 다음으로 우리는 write_frame 추출된 테이블을 연결된 데이터베이스로 내보내는 기능입니다.

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

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

그리고 그와 마찬가지로 PDF에서 데이터베이스로 테이블을 내보낼 수 있었습니다. 전자적으로 생성된 간단한 처리 PDF를 사용했기 때문에 매우 간단하고 쉬워 보입니다. 전자적으로 생성되지 않은 테이블에서 테이블을 추출하기 위해 사용할 수 있는 인기 있는 딥 러닝 기술은 다음과 같습니다.

  1. 코드가 있는 논문 – GFTE: 그래프 기반 재무 테이블 추출
  2. 코드가 포함된 논문 – PubTables-1M: 테이블 추출 모델 교육 및 평가를 위한 범용 데이터 세트 및 메트릭을 향하여
  3. TableNet : 스캔 한 문서 이미지에서 엔드 투 엔드 테이블 감지 및 테이블 형식 데이터 추출을위한 딥 러닝 모델

Enter Nanonets: PDF 테이블에서 데이터베이스로의 변환을 위한 고급 OCR

이 섹션에서는 Nanonet이 보다 사용자 지정 가능하고 쉬운 방식으로 데이터베이스에 대한 테이블을 수행하는 데 어떻게 도움이 되는지 살펴볼 것입니다.

Nanonets™는 AI를 사용하여 수동 데이터 입력을 자동화하는 데 도움이 되는 클라우드 기반 OCR입니다. 데이터에 대한 OCR 모델을 구축/훈련하고 JSON/CSV 또는 원하는 형식으로 전송할 수 있는 대시보드가 ​​있습니다. 다음은 Nanonets를 PDF 문서 스캐너로 사용하는 몇 가지 이점입니다.

Nanonets의 하이라이트 중 하나는 서비스가 제공하는 단순성입니다. 프로그래밍 배경이 없어도 이러한 서비스를 선택할 수 있으며 최첨단 기술로 PDF 데이터를 쉽게 추출할 수 있습니다. 다음은 PDF를 데이터베이스로 변환하는 것이 얼마나 쉬운지에 대한 간략한 개요입니다.

1 단계 : nanonets.com으로 이동하여 등록/로그인합니다.

PDF 데이터를 데이터베이스 항목으로 변환 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

2 단계 : 등록 후 "시작하려면 선택" 영역으로 이동하십시오. 여기에서 사전 구축된 추출기를 사용하거나 데이터 세트를 사용하여 자체 추출기를 만들 수 있습니다. 여기에서는 Invoice 사전 빌드된 인보이스 추출기를 사용합니다.

PDF 데이터를 데이터베이스 항목으로 변환 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

3 단계 : 이미지의 PDF를 업로드하여 데이터 추출을 수행하고 자동 추출 옵션을 선택합니다.

PDF 데이터를 데이터베이스 항목으로 변환 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

4단계: 추출된 데이터를 데이터베이스로 내보내는 새로운 통합 MySQL 통합을 생성합니다. 또는 선택한 데이터베이스를 기반으로 다양한 옵션을 선택할 수 있습니다.

PDF 데이터를 데이터베이스 항목으로 변환 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

데이터 연결을 설정하고 통합 추가를 클릭합니다. 이를 통해 파일이 업로드될 때마다 데이터가 추출되어 데이터베이스에 자동으로 업로드됩니다. 필요한 통합을 찾지 못하면 항상 Nanonets API를 사용하고 간단한 스크립트를 작성하여 자동화를 완료할 수 있습니다.

타임 스탬프 :

더보기 AI 및 머신 러닝