이 가이드에서는 Gemini Flash 또는 GPT-4o와 같은 VLM(비전 언어 모델)을 사용하여 PDF에서 구조화된 데이터를 추출하는 방법을 보여 드리겠습니다.
Google의 최신 비전 언어 모델 시리즈인 Gemini는 텍스트 및 이미지 이해 분야에서 최고의 성능을 보여주었습니다. 이렇게 향상된 다중 모드 기능과 긴 컨텍스트 창을 사용하면 그림, 차트, 표, 다이어그램 등 기존 추출 모델에서 어려움을 겪는 시각적으로 복잡한 PDF 데이터를 처리하는 데 특히 유용합니다.
이렇게 하면 시각적 파일 및 웹 추출을 위한 자체 데이터 추출 도구를 쉽게 구축할 수 있습니다. 방법은 다음과 같습니다.
Gemini의 긴 컨텍스트 창과 다중 모드 기능은 기존 추출 모델이 어려움을 겪는 시각적으로 복잡한 PDF 데이터를 처리하는 데 특히 유용합니다.
추출에 앞서 개발 환경을 설정해 보겠습니다. 이 가이드에서는 시스템에 Python이 설치되어 있다고 가정합니다. 그렇지 않은 경우 https://www.python.org/downloads/
에서 다운로드하여 설치하세요.⚠️ Python을 사용하지 않으려면 thepi.pe의 클라우드 플랫폼을 사용하여 코드를 작성하지 않고도 파일을 업로드하고 결과를 CSV로 다운로드할 수 있습니다.
터미널이나 명령 프롬프트를 열고 다음 명령을 실행하세요.
pip install git https://github.com/emcf/thepipe pip install pandas
Python을 처음 접하는 사람들을 위해 pip는 Python용 패키지 설치 프로그램이며, 이 명령은 필요한 라이브러리를 다운로드하고 설치합니다.
파이프를 사용하려면 API 키가 필요합니다.
면책 조항: thepi.pe는 무료 오픈 소스 도구이지만 API에는 토큰당 약 $0.00002의 비용이 듭니다. 이러한 비용을 피하려면 GitHub의 로컬 설정 지침을 확인하세요. 선택한 LLM 제공업체에 여전히 비용을 지불해야 한다는 점에 유의하세요.
설정 방법은 다음과 같습니다.
이제 이것을 환경 변수로 설정해야 합니다. 프로세스는 운영 체제에 따라 다릅니다.
Windows의 경우:
macOS 및 Linux의 경우:
터미널을 열고 다음 줄을 셸 구성 파일(예: ~/.bashrc 또는 ~/.zshrc)에 추가합니다.
export THEPIPE_API_KEY=your_api_key_here
그런 다음 구성을 다시 로드하세요.
source ~/.bashrc # or ~/.zshrc
성공적인 추출의 핵심은 가져오려는 데이터에 대한 명확한 스키마를 정의하는 것입니다. 수량 명세서(Bill of Quantity) 문서에서 데이터를 추출한다고 가정해 보겠습니다.
Bill of Quantity 문서의 페이지 예입니다. 각 페이지의 데이터는 다른 페이지와 독립적이므로 "페이지별로" 추출을 수행합니다. 페이지당 추출할 데이터가 여러 개 있으므로 여러 추출을 True
로 설정했습니다.
열 이름을 살펴보면 다음과 같은 스키마를 추출할 수 있습니다.
schema = { "item": "string", "unit": "string", "quantity": "int", }
pi.pe 플랫폼에서 원하는 대로 스키마를 수정할 수 있습니다. "스키마 보기"를 클릭하면 Python API와 함께 사용하기 위해 복사하여 붙여넣을 수 있는 스키마가 제공됩니다
이제 extract_from_file을 사용하여 PDF에서 데이터를 가져오겠습니다.
from thepipe.extract import extract_from_file results = extract_from_file( file_path = "bill_of_quantity.pdf", schema = schema, ai_model = "google/gemini-flash-1.5b", chunking_method = "chunk_by_page" )
여기에서는 각 페이지를 AI 모델에 개별적으로 전송하려고 하기 때문에 Chunking_method="chunk_by_page"를 사용했습니다(PDF가 너무 커서 한꺼번에 피드할 수 없음). 또한 PDF 페이지에는 각각 여러 행의 데이터가 포함되어 있으므로 multiple_extractions=True를 설정했습니다. PDF의 페이지는 다음과 같습니다.
thepi.pe 플랫폼에서 볼 수 있는 BOM PDF 추출 결과
추출 결과는 사전 목록으로 반환됩니다. 이러한 결과를 처리하여 pandas DataFrame을 만들 수 있습니다:
import pandas as pd df = pd.DataFrame(results) # Display the first few rows of the DataFrame print(df.head())
이렇게 하면 텍스트 내용과 그림, 표와 같은 시각적 요소에 대한 설명을 포함하여 추출된 모든 정보가 포함된 DataFrame이 생성됩니다.
이제 데이터가 DataFrame에 있으므로 다양한 형식으로 쉽게 내보낼 수 있습니다. 다음은 몇 가지 옵션입니다.
df.to_excel("extracted_research_data.xlsx", index=False, sheet_name="Research Data")
이렇게 하면 "Research Data"라는 시트가 포함된 "extracted_research_data.xlsx"라는 Excel 파일이 생성됩니다. index=False 매개변수는 DataFrame 인덱스가 별도의 열로 포함되는 것을 방지합니다.
더 간단한 형식을 선호하는 경우 CSV로 내보낼 수 있습니다.
df.to_csv("extracted_research_data.csv", index=False)
이렇게 하면 Excel이나 텍스트 편집기에서 열 수 있는 CSV 파일이 생성됩니다.
성공적인 추출의 핵심은 명확한 스키마를 정의하고 AI 모델의 다중 모드 기능을 활용하는 데 있습니다. 이러한 기술에 익숙해지면 사용자 정의 청킹 방법, 사용자 정의 추출 프롬프트, 추출 프로세스를 더 큰 데이터 파이프라인에 통합하는 등의 고급 기능을 탐색할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3