텍스트 기반 워드클라우드(WordCloud) & 가로 막대 차트 생성하기 (Windows 버전)

텍스트 기반 워드클라우드(WordCloud) & 가로 막대 차트 생성하기 (Windows 버전)

📌 텍스트 기반 워드클라우드 & 가로 막대 차트 생성하기 (Windows 버전)

데이터 분석을 하다 보면 텍스트 데이터를 효과적으로 시각화할 방법이 필요할 때가 많습니다. 특히, 워드클라우드(WordCloud)와 가로 막대 차트(Horizontal Bar Chart) 는 텍스트에서 중요한 키워드를 강조하는 데 유용합니다. 이번 글에서는 Python을 활용하여 워드클라우드와 가로 막대 차트를 생성하는 방법을 설명하겠습니다.

[연습용 데이터] 

1️⃣ 라이브러리 준비

우선 필요한 라이브러리를 설치하고 가져옵니다.

Python
import pandas as pdnfrom konlpy.tag import Oktnfrom collections import Counternfrom wordcloud import WordCloudnimport matplotlib.pyplot as pltnimport seaborn as sns

🔹 pandas → CSV 데이터를 다루기 위해 필요
🔹 konlpy.tag.Okt → 한글 형태소 분석을 위한 라이브러리
🔹 collections.Counter → 단어 빈도를 계산하는 데 사용
🔹 wordcloud.WordCloud → 워드클라우드 생성을 위한 라이브러리
🔹 matplotlib.pyplot → 데이터 시각화 도구
🔹 seaborn → 가로 막대 차트를 더 보기 좋게 꾸미기 위해 사용

2️⃣ 불용어 처리 및 데이터 불러오기

워드클라우드를 만들 때 불필요한 단어(불용어, stopwords) 를 제거하는 것이 중요합니다. 보통 자주 등장하지만 의미가 없는 단어(예: “그리고”, “하지만”)를 제외하면 더 의미 있는 결과를 얻을 수 있습니다.

# 불용어 리스트 파일 경로 설정
stopwords_file_path = ‘stopwords-ko.txt’

# 불용어 리스트 로드
with open(stopwords_file_path, ‘r’, encoding=’utf-8′) as file:
stopwords = file.read().splitlines()

이제 우리가 분석할 CSV 데이터를 불러옵니다.

Python
df = pd.read_csv("WordCloud.csv")

CSV 파일에는 주로 텍스트 데이터(예: 댓글, 리뷰, 피드백 등) 가 포함되어 있어야 합니다.

3️⃣ 텍스트 전처리 및 명사 추출

한글 텍스트를 분석하기 위해서는 형태소 분석기(Okt) 를 사용하여 명사만 추출하는 것이 일반적입니다.

# 형태소 분석기 객체 생성
okt = Okt()

# 명사 추출 및 불용어 제거
nouns = [noun for comment in df[‘Comments’] if pd.notnull(comment)
for noun in okt.nouns(comment) if noun not in stopwords]

# 단어 빈도수 계산
word_counts = Counter(nouns)

이제 우리가 분석한 텍스트에서 가장 많이 등장한 단어들을 쉽게 확인할 수 있습니다.

4️⃣ 워드클라우드 생성

이제 본격적으로 워드클라우드 를 생성해봅니다.

Python
# 한글 폰트 경로 설정 (Windows 사용자의 경우)
font_path = 'C:/Windows/Fonts/malgun.ttf'

# 워드클라우드 생성 및 시각화
wordcloud = WordCloud(font_path=font_path, background_color='white',
                      colormap='Pastel1', width=800, height=800,
                      max_words=200).generate_from_frequencies(word_counts)

plt.figure(figsize=(10, 6))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

📌 font_path는 한글 폰트 경로를 설정해야 합니다. Windows에서는 malgun.ttf (맑은 고딕)가 일반적이며, Mac 사용자는 AppleGothic.ttf 등을 사용할 수 있습니다.

wrodcloud_image_워드클라우드

5️⃣ 가로 막대 차트 생성

워드클라우드만으로는 단어별 빈도를 정확히 파악하기 어려울 수 있기 때문에, 수치적으로 비교할 수 있는 가로 막대 차트도 함께 만들겠습니다.

Python
# 상위 20개 단어 추출
top_words = word_counts.most_common(20)
words, counts = zip(*top_words)

# 가로 막대 차트 그리기
plt.figure(figsize=(12, 6))
sns.barplot(x=counts, y=words, palette="coolwarm")
plt.xlabel("단어 빈도수")
plt.ylabel("단어")
plt.title("가장 많이 등장한 단어 Top 20")
plt.show()

📌 most_common(20)을 사용하여 상위 20개 단어만 추출하여 차트로 표현했습니다.

Top_20_barchart

🔥 최종 결과

위의 코드들을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

1️⃣ 워드클라우드 – 텍스트에서 중요한 단어들을 한눈에 볼 수 있음
2️⃣ 가로 막대 차트 – 단어 빈도를 숫자로 비교 가능

이제 여러분의 데이터에 적용해서 텍스트 데이터 분석을 효과적으로 시각화해보세요! 😊