[python] 텍스트 추출하기

파이썬에서 텍스트 추출 작업은 매우 일반적입니다. 텍스트 추출은 웹 스크래핑, 데이터 처리, 자연어 처리 등 다양한 분야에서 사용됩니다. 이번 포스트에서는 파이썬을 사용하여 텍스트를 추출하는 방법을 알아보겠습니다.

1. 문자열에서 텍스트 추출하기

1.1 영문 문자열에서 특정 텍스트 추출하기

영문 문자열에서 특정 텍스트를 추출하려면 정규표현식을 사용할 수 있습니다. re 모듈을 사용하여 정규표현식을 작성하고, search() 함수를 사용하여 텍스트를 추출할 수 있습니다. 다음은 예시 코드입니다.

import re

text = "Hello, my name is John. I am 25 years old."
match = re.search(r"name is (\w+)", text)
if match:
    extracted_text = match.group(1)
    print(extracted_text)

출력 결과는 다음과 같을 것입니다.

John

1.2 한글 문자열에서 특정 텍스트 추출하기

한글 문자열에서 특정 텍스트를 추출하는 방법은 영문 문자열과 유사합니다. 다만 한글 문자열에는 정규표현식의 패턴을 유니코드에 맞춰 작성해야 합니다. 아래는 예시 코드입니다.

import re

text = "안녕하세요, 저는 홍길동입니다. 30살입니다."
match = re.search(r"저는 (\w+)입니다\.", text)
if match:
    extracted_text = match.group(1)
    print(extracted_text)

출력 결과는 다음과 같을 것입니다.

홍길동

2. 웹에서 텍스트 추출하기

2.1 웹 페이지에서 특정 텍스트 추출하기

웹 스크래핑을 통해 웹 페이지에서 텍스트를 추출하는 방법도 많이 사용됩니다. requests 모듈을 사용하여 웹 페이지의 HTML 코드를 가져오고, BeautifulSoup 라이브러리를 사용하여 HTML 코드를 파싱합니다. 다음은 예시 코드입니다.

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
response = requests.get(url)
html = response.text

soup = BeautifulSoup(html, "html.parser")
text = soup.find("div", class_="content").text
print(text)

위 코드는 https://example.com에서 classcontentdiv 요소의 텍스트를 추출하는 예시입니다.

2.2 RSS 피드에서 텍스트 추출하기

RSS 피드는 웹 사이트의 업데이트된 정보를 제공하는데 사용되는 XML 형식의 문서입니다. feedparser 모듈을 사용하여 RSS 피드를 파싱하고, 필요한 텍스트를 추출할 수 있습니다. 예시 코드는 다음과 같습니다.

import feedparser

feed_url = "https://example.com/rss"
feed = feedparser.parse(feed_url)

for entry in feed.entries:
    title = entry.title
    summary = entry.summary
    print(title, summary)

위 코드는 https://example.com/rss에서 RSS 피드를 가져와서 제목과 요약을 출력하는 예시입니다.

정리

이렇게 파이썬에서 텍스트를 추출하는 방법에 대해 알아보았습니다. 문자열에서 정규표현식을 사용하고, 웹 페이지에서는 웹 스크래핑 라이브러리를 이용하여 텍스트를 추출할 수 있습니다. 텍스트 추출은 데이터 처리 및 자연어 처리와 같은 여러 분야에서 유용하게 사용될 수 있는 기술입니다.

참고 자료