PDF 데이터 추출

이상해씨·2023년 7월 18일
0

Data_collection

목록 보기
1/4

PDF에서 데이터 추출하는 과정

✨ 1. PDF 파일 분석

  • 파일을 읽고 내부 구조 파악
  • 라이브러리 PyPDF2, pdfminer, pdfPlumber

2. DB 연결

  • DB를 생성 및 데이터를 저장할 table 생성
  • DB 연결

3. PDF 파일 저장

  • PDF 파일의 데이터 추출하여 DB에 저장
  • PDF의 형식을 참고하여 필드에 매핑하여 저장
  • 쿼리를 통해 DB에 접근하여 데이터 처리 가능

📍 4. 자동화

  • 스크립트를 작성하여 자동화(python)
    • 스크립트에 PDF를 읽고 분석하여 DB에 저장하는 로직을 구현
    • 스케쥴링을 사용하여 스크립트를 주기적으로 실행할 수 있게 함
    • 스케쥴링 패키지 : Cron, Windows Task Schedule

✨1-1 PDF 파일 분석 도구 비교

  • PyPDF2, pdfminer, pdfPlumber
  • 간단한 사용과 다양한 기능이 필요한 경우

1) PyPDF2

  • python으로만 구현

장점

  • 사용하기 쉬운 인터페이스, 다양한 작업
  • 기능이 다양, 문서화
  • PDF 파일에서 텍스트추출, 페이지 조작, 썸네일 생성, 북마크 작성 기능

단점

  • 최신 PDF에 지원 부족
  • python 3.x 호환성 문제

2) pdfminer

  • 구조적으로 복잡한 추출 작업에 용이

장점

  • PDF 파일의 텍스트, 이미지, 폰트, 레이아웃 등의 정보 추출 가능
  • 다양한 추출 모드와 옵션을 제공하여 원하는 데이터를 세밀하게 추출.
  • PDF 파일의 낮은 수준의 구조에 집중하고 있어, 좀 더 고급 기능과 복잡한 작업을 수행할 수 있습니다.
  • C로 구현된 pdfminer.six라는 버전은 Python 2.x와 3.x 모두에서 호환성.

단점

  • pdfminer는 좀 더 복잡한 설정과 사용법을 가지고 있어 학습에 많은 시간 소요.

3) pdfPlumber

  • 텍스트 추출에 중점을 둠

장점

  • 텍스트 추출에 강점
  • PyPDF2와 같이 다른 라이브러리에 의존하지 않음
  • 사용이 용이, 직관적 인터페이스

단점

  • 구조적 상세한 분석에 적합하지 않음

4) pdftree

  • python으로 구현
  • 트리기반의 구조 생성
  • JSON 형식으로 출력이 제공

장점

  • 구조화된 텍스트를 생성하여 PDF 문서를 이해 용이.
    JSON 형식으로 출력되어, 구조적 요소를 읽고 처리 용이.
  • 텍스트, 테이블, 이미지, 목차 등과 같은 다양한 구조 요소 식별.
  • 구조화된 텍스트를 기반으로 사용자 정의 분석 및 처리를 수행

단점

  • 일부 PDF 파일에서 인식 정확성이 떨어짐.
  • 성능이 느릴 수 있으며, 큰 규모의 PDF 파일을 처리하는 데 시간이 많이 소요.

📍4-1 스케쥴링 도구 비교

  • Cron, Windows Task Schedule
  • OS와 스케쥴링 도구는 밀접한 관계

1) Cron

  • 유닉스 및 리눅스 시스템에 적합, window에서 사용불가.

장점

  • 단순하고 간결한 구문을 사용하여 작업을 예약
  • 매우 안정적이고 확장성이 높음
  • 널리 사용되고 테스트 됨

단점

  • Cron 작업은 쉘 스크립트 또는 명령어로 정의되어 복잡한 작업을 처리하기에는 제한적.
  • Cron은 상대적으로 기능이 제한적이며, 일부 고급 기능이 부족

2) Window Taskscheduler

  • 유닉스 및 리눅스 시스템에 사용불가, window에서 사용.

장점

  • 사용자 친화적인 그래픽 사용자 인터페이스(GUI)를 통해 작업을 예약하고 관리.
  • 다양한 조건과 트리거를 설정하여 복잡한 작업 예약이 가능.
  • 작업 실행 로그 및 알림 설정 등 다양한 기능을 제공.

단점

  • Windows Task Scheduler는 Windows 운영체제와 밀접하게 연결되어 있어 다른 플랫폼으로의 이식성이 제한적.
  • 사용자가 작업 예약 및 관리를 위해 GUI를 사용해야 하기 때문에 명령행 인터페이스(CLI)를 선호하는 개발자에게는 적합하지 않음.

참고

  • chatGPT
profile
공부에는 끝이 없다

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

잘 읽었습니다. 좋은 정보 감사드립니다.

답글 달기