컴퓨터 지식 네트워크 - 컴퓨터 구성 - Python은 PDF 테이블을 구문 분석합니다 - PDFPlumber와 Camelot

Python은 PDF 테이블을 구문 분석합니다 - PDFPlumber와 Camelot

제목 사진은 Camelot: List o' 10 Intriguing Mythical Places에서 가져온 것입니다.

LEED 인증 프로젝트의 등급 세부 정보를 얻으려면 USGBC 프로젝트 페이지에서 크롤링할 수 있습니다. PDF 형식에서 프로젝트 평가표 분석을 통해 얻습니다. 충칭의 LEED EM: OB v2009 Gold 프로젝트를 예로 들면 USGBC에 게시된 LEED 프로젝트 점수 테이블의 형식은 균일하지 않으며 XPath를 사용하여 크롤링한 후 추가 정리가 필요합니다. 상대적으로 말하면, LEED 프로젝트에 해당하는 프로젝트 점수표 PDF 파일의 데이터는 더 표준화되고 완전합니다. 따라서 후속 분석을 위해 PDF 파일의 테이블을 구문 분석하는 것을 고려해 보십시오.

PDF 파일 처리를 위한 Python 패키지, pdfminer, tabula, pdfplumber, camelot... 쿼리 정보를 보면 pdfminer의 효과가 일반적으로 그다지 좋지 않은 것으로 보이며 tabula에는 Java 지원이 필요하므로 그냥 게으르고 싶었기 때문에 시도했어요. pdfplumumber와 camelot.

설치 과정에 대해서는 자세히 설명하지 않고 실행 결과만 살펴보겠습니다.

pdfplumumber는 Scorecard.pdf 파일의 테이블을 직접 구문 분석할 수 없지만 실제로 이 문제를 해결하는 것은 어렵지 않습니다. 생각을 조정하고 먼저 PDF 파일의 텍스트를 구문 분석한 다음 열로 나누어 표를 얻을 수 있습니다.

pdfplumber의 extract_text() 명령을 사용하여 pdf 파일의 텍스트를 구문 분석합니다. 그러나 이번에 구문 분석해야 하는 점수 테이블 pdf 파일의 레이아웃으로 인해 왼쪽의 텍스트 줄이 오른쪽 표는 완전히 정렬되지 않으므로 전체 페이지의 텍스트를 직접 구문 분석하면 텍스트가 잘못됩니다. 먼저 corp() 명령어를 사용하여 인식 범위를 지정한 후 extract_text()를 사용하여 인식되는 텍스트 목록은 다음과 같습니다.

Scorecard.pdf 테이블의 레이아웃이 잘못 정렬된 이 예와 같은 상황에서는 페이지의 테이블 위치에 따라 테이블 인식 범위를 지정할 수도 있습니다. 사용된 지침: camelot.plot()은 페이지의 축소판을 그릴 수 있으며 table_area 매개변수는 테이블 인식 범위를 지정할 수 있습니다.

또한 카멜롯은 원래 아서 왕과 원탁의 기사들의 궁전이었으며 아스가르드의 발할라와 마찬가지로 전설적인 성역이기도 합니다. 카멜롯 프로그램 설치패키지를 찾다가 우연히 알게 되어서 지식이 많이 늘었습니다.

[1] Python: PDF 텍스트 및 테이블 구문 분석 - pdfminer, tabula 및 pdfplumber의 사용법 및 비교

[2] Python을 사용하여 pdf 파일에서 테이블 형식 데이터 추출

[3] Python은 PDF 파일을 읽습니다.

[4] Github: pdfplumber

[5] Camelot: 인간을 위한 PDF 테이블 추출

[ 6 ] ImageMagick 설치

[7] ImageMagick은 PDF를 이미지(이미지)로 변환합니다.

[8] 기존 건물을 위한 LEED 2009: 운영 및 유지 관리

[9] Camelot - Wikipedia

[10] 흥미로운 신화적 장소 10곳 목록

[11] Camelot이 PDF 양식을 인식할 때 보충 매개변수 설정

上篇: 가방이 더 이상 인기가 없는 이유 下篇: Win 10 라이브 게임 소음
관련 내용