[python] PyTesseract를 사용하여 PDF 파일에서 텍스트 추출하기

PDF 문서는 종종 이미지 또는 스캔한 문서로 작성되어 있어 텍스트 추출에 어려움을 겪을 수 있습니다. 이때 PyTesseract를 사용하면 간단하게 PDF 파일에서 텍스트를 추출할 수 있습니다. PyTesseract는 Google의 OCR 엔진인 Tesseract를 Python에서 사용할 수 있도록 한 라이브러리입니다.

1. PyTesseract 및 Tesseract 설치하기

먼저 PyTesseract와 Tesseract를 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.

pip install pytesseract

Windows 환경에서는 Tesseract의 실행 파일도 따로 설치해야 합니다. 아래의 링크에서 다운로드 후 설치해주세요.

2. PDF 파일에서 텍스트 추출하기

PyTesseract를 사용하여 PDF 파일에서 텍스트를 추출하는 예제 코드는 다음과 같습니다.

import pytesseract
from pdf2image import convert_from_path

def extract_text_from_pdf(pdf_path):
    # PDF를 이미지로 변환
    images = convert_from_path(pdf_path)

    text = ""
    
    for image in images:
        # 이미지에서 텍스트 추출
        extracted_text = pytesseract.image_to_string(image, lang='eng+kor')
        text += extracted_text + '\n'
    
    return text

pdf_path = 'example.pdf'
extracted_text = extract_text_from_pdf(pdf_path)
print(extracted_text)

위의 예제 코드에서는 pdf2image 라이브러리를 사용하여 PDF 파일을 이미지로 변환한 후, 각 이미지에서 텍스트를 추출합니다. pytesseract.image_to_string() 함수를 사용하여 이미지에서 텍스트를 추출할 수 있습니다. 이때 lang 매개변수에 추출할 언어를 지정할 수 있습니다.

추출된 텍스트는 문자열로 반환되며, 필요에 따라 파일에 저장하거나 다른 작업에 활용할 수 있습니다.

3. 결과 확인하기

위의 코드를 실행하면 PDF 파일에서 추출한 텍스트가 출력됩니다. 이때 Tesseract의 정확도는 문서의 품질과 언어에 따라 다를 수 있습니다. 필요에 따라 이미지 전처리 기술 등을 추가로 사용하여 정확도를 향상시킬 수 있습니다.

추출된 텍스트를 활용하여 키워드 분석, 문서 검색 등 다양한 작업을 수행할 수 있습니다.

참고 자료