Python tech/Computer Vision

[camelot] PDF 테이블 인식 plot 기능 정리

콜레오네 2021. 2. 8. 05:44

Camelot이란?

PDF 파일에서 표(Table, 이하 테이블)을 추출(Extract)해주는 Python 라이브러리


Camelot의 다양한 기능 중에서 plot 기능에 대해 알아보겠습니다.

camelot.plot()은 camelot이 추출한 테이블을 여러 형태로 시각화해주는 기능입니다.

아래와 같은 총 6가지 기능이 있고, 하나씩 살펴보겠습니다.

  • contour

  • grid

  • line

  • joint

  • text

  • textedge

 

이 포스팅은 카멜롯 공식 문서를 참조하였습니다.

camelot-py.readthedocs.io/en/master/user/advanced.html#visual-debugging

 


사용법

# 첫 번째 인자는 camelot table 객체
# 두 번째 인자는 kind에 plot 기능 중 하나를 설정
plots = camelot.plot(tables, kind='grid')
plots.show() # plot을 화면에 띄우기

우선, 테스트에 활용할 PDF 문서 원본입니다.

카멜롯 공식문서에서 제공하는 샘플 PDF의 일부


kind= "contour"

contour

> 테이블 가장자리를 빨간선으로 표시해줍니다.

> lattice + stream 모두 사용 가능

> stream 방식에서는 테이블 내용은 보이지 않고 kind="text"(아래에서 설명)처럼 표시됩니다.


kind= "grid"

grid

> 테이블의 모든 테두리 표시

> lattice + stream 모두 사용 가능

> 모든 table을 반환합니다. (한 페이지에 테이블이 n개면, n개의 grid가 생성됩니다.)


kind= "line"

line

> 페이지 내 모든 선분 표시

> grid와 같아보이지만, line은 페이지의 테이블 뿐만아니라 다른 선분(구분선과 같은)도 표시합니다.

> lattice만 사용 가능

 


kind= "joint"

joint

 

> 테이블의 테두리 교차점을 모두 표시

> lattice만 사용 가능

 


kind= "text"

text

> 페이지에서 텍스트로 인식되는 모든 곳을 표시

> 모든 텍스트에 형광팬을 쳤다고 생각하면 쉬움

> lattice + stream 모두 사용 가능

 


kind= "textedge"

textedge

> text에서 text의 가장자리를 표시해줍니다. 같은 선상에 위치한 텍스트를 연결해줍니다.

> stream만 사용 가능

 


지금까지 camelot의 plot 기능, 6가지 종류에 대해 알아보았습니다.,

상황에 맞게 적절하게 사용하면 될 것 같습니다.

 

감사합니다.

반응형