[python] PyTesseract를 사용하여 신문 기사의 제목과 내용을 추출하기

이번 포스트에서는 PyTesseract를 사용하여 신문 기사에서 제목과 내용을 추출하는 방법에 대해 알아보겠습니다. PyTesseract는 OCR(광학 문자 인식) 라이브러리로, 이미지 또는 PDF와 같은 비문자적 형식의 데이터를 문자로 변환할 수 있습니다. 이를 활용하여 신문 기사의 제목과 내용을 추출할 수 있습니다.

1. PyTesseract 설치하기

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

pip install pytesseract

또한 동작하기 위해서는 Tesseract OCR 엔진도 설치되어 있어야 합니다. 아래 링크에서 해당하는 운영체제에 맞는 설치 파일을 다운로드하여 설치하세요.

Tesseract OCR 다운로드 링크

2. 이미지에서 텍스트 추출하기

이제 PyTesseract를 사용하여 신문 기사 이미지에서 텍스트를 추출하는 방법을 살펴보겠습니다.

import pytesseract
from PIL import Image

# 이미지 파일 열기
image = Image.open("newspaper_article.jpg")

# 이미지에서 텍스트 추출
text = pytesseract.image_to_string(image, lang="eng")

# 추출된 텍스트 출력
print(text)

위 코드에서 newspaper_article.jpg는 추출하려는 이미지 파일의 경로를 나타내는 문자열입니다. lang 매개변수는 추출할 언어를 지정합니다. 위 코드에서는 영어(eng)로 지정했습니다. 만약 다른 언어로 추출하려면 해당 언어 코드로 변경하세요.

3. 추출된 텍스트 처리하기

추출된 텍스트를 제목과 내용으로 분리하고 원하는 형태로 가공할 수 있습니다. 예를 들어, 신문 기사의 제목은 앞 몇 줄에 위치하고, 내용은 제목 이후로 나오는 것을 가정해봅시다. 이러한 경우, 추출된 텍스트를 개행 문자(\n)를 기준으로 분리한 후, 첫 번째 줄을 제목으로, 나머지를 내용으로 처리할 수 있습니다.

# 추출된 텍스트 분리
lines = text.split("\n")

# 제목 추출
title = lines[0]

# 내용 추출
content = "\n".join(lines[1:])

# 추출된 제목 출력
print("제목:", title)

# 추출된 내용 출력
print("내용:", content)

위 코드에서 lines는 추출된 텍스트를 개행 문자(\n)를 기준으로 분리한 리스트입니다. 추출된 텍스트의 첫 번째 줄은 제목이므로 lines[0]으로 접근하여 제목을 추출할 수 있습니다. 나머지 내용은 lines[1:]를 사용하여 추출합니다.

이제 PyTesseract를 사용하여 신문 기사에서 제목과 내용을 추출하는 방법을 알게 되었습니다. 이를 활용하면 신문 기사 데이터를 자동으로 분석하거나 검색할 수 있는 다양한 응용 프로그램을 개발할 수 있습니다.

참고 자료