텍스트 마이닝은 대량의 텍스트 데이터에서 유용한 정보를 추출하는 기술입니다. 파이썬은 텍스트 마이닝 작업을 쉽게 수행할 수 있는 도구인 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개를 출력합니다.