[python] 파이썬 BeautifulSoup과 텍스트 마이닝

텍스트 마이닝은 대량의 텍스트 데이터에서 유용한 정보를 추출하는 기술입니다. 파이썬은 텍스트 마이닝 작업을 쉽게 수행할 수 있는 도구인 BeautifulSoup을 제공합니다. BeautifulSoup은 HTML 및 XML 문서에서 데이터를 추출하기 위해 사용되며, 웹 스크래핑 작업에 특히 유용합니다.

BeautifulSoup 설치

먼저, BeautifulSoup을 설치해야 합니다. 터미널 또는 명령 프롬프트에서 다음 명령을 실행하여 BeautifulSoup을 설치할 수 있습니다.

pip install beautifulsoup4

웹 페이지 스크래핑

웹 스크래핑은 웹 사이트에서 데이터를 추출하는 프로세스입니다. BeautifulSoup은 강력한 웹 스크래핑 도구로서 여러 웹 페이지에서 데이터를 추출하는 데 사용됩니다.

다음은 BeautifulSoup을 사용하여 웹 페이지의 제목과 내용을 추출하는 예제 코드입니다.

from bs4 import BeautifulSoup
import requests

# 웹 페이지 가져오기
url = "https://example.com"
response = requests.get(url)

# BeautifulSoup 객체 생성
soup = BeautifulSoup(response.text, "html.parser")

# 웹 페이지 제목 추출
title = soup.title.text
print("Title:", title)

# 웹 페이지 내용 추출
content = soup.find("div", class_="content").text
print("Content:", content)

위의 코드에서는 requests 모듈을 사용하여 웹 페이지를 가져온 후, BeautifulSoup 객체를 생성합니다. soup.title.text를 사용하여 제목을 추출하고, soup.find("div", class_="content").text를 사용하여 내용을 추출합니다.

텍스트 분석

데이터 추출 후, 텍스트 마이닝을 통해 유용한 정보를 분석할 수 있습니다. 텍스트 데이터에서 단어의 빈도수, 문장의 감정 분석, 토픽 모델링 등 다양한 분석 작업을 수행할 수 있습니다.

다음은 텍스트 데이터에서 단어의 빈도수를 계산하는 예제 코드입니다.

import nltk
from collections import Counter

# 텍스트 데이터
text = "Python is a popular programming language. It is widely used for web development, data analysis, and artificial intelligence."

# 토큰화
tokens = nltk.word_tokenize(text.lower())

# 빈도수 계산
word_frequency = Counter(tokens)

# 빈도수가 가장 높은 단어 5개 출력
top_words = word_frequency.most_common(5)
print(top_words)

위의 코드에서는 nltk 패키지를 사용하여 텍스트를 토큰화한 후, Counter를 사용하여 단어의 빈도수를 계산합니다. 마지막으로, most_common 함수를 사용하여 가장 빈도가 높은 단어 5개를 출력합니다.

참고 자료