HSEOM GeckoHSEOM
Instagram

흑섬 TECH 블로그 - 데이터 기반 브리딩 기술

레오파드게코 브리딩에 데이터 분석과 AI 기술을 접목합니다. Python, NumPy를 활용한 체중 관리, 성장 추이 분석, 환경 데이터 시각화 등 실무에서 직접 사용하는 기술을 일반인도 이해하기 쉽게 설명합니다.

주요 카테고리

Data Viz 카테고리

NumPy, Pandas를 활용한 데이터 분석과 시각화 기술을 일상 예제로 쉽게 설명합니다.

12개의 글이 있습니다.

[Step 4] 워드클라우드로 텍스트 데이터 시각화하기 - WordCloud + matplotlib

텍스트에서 단어 빈도를 추출하고 워드클라우드 이미지를 생성합니다. 영화 리뷰, SNS 게시글 분석부터 커뮤니티 트렌드 파악까지 활용 방법을 배웁니다.

카테고리: Data Viz

작성일: 2026-01-21

예상 읽기 시간: 13

Back to Tech
Data Viz·13min read·

[Step 4] 워드클라우드로 텍스트 데이터 시각화하기 - WordCloud + matplotlib

텍스트에서 단어 빈도를 추출하고 워드클라우드 이미지를 생성합니다. 영화 리뷰, SNS 게시글 분석부터 커뮤니티 트렌드 파악까지 활용 방법을 배웁니다.

시작하며 - 텍스트 데이터를 시각화한다는 것

주식 데이터, 막대 그래프까지 배웠으니 이제 조금 다른 걸 해볼까요?
이번에는 텍스트 데이터를 시각화합니다. 영화 리뷰, 뉴스 기사, SNS 게시글... 텍스트에 어떤 단어가 많이 나오는지 한눈에 보고 싶을 때 사용하는 게 워드클라우드(Word Cloud)입니다.

완성된 워드클라우드

완성된 워드클라우드 - 단어 빈도가 크기로 표현됩니다

단어가 클수록 많이 등장한 단어, 작을수록 덜 등장한 단어입니다.
데이터 분석 보고서, 연구 논문, 프레젠테이션에 넣으면 "와, 프로페셔널하다"는 소리를 들을 수 있는 시각화 기법입니다.

---

Google Colab에서 시작하기

Step 2, 3과 동일하게 Google Colab에서 진행합니다.
브라우저만 있으면 됩니다. 설치할 게 없습니다.

Google Colab 초기 화면

Google Colab 접속 후 "+ New notebook" 클릭

1. 라이브러리 설치하기

워드클라우드를 만들려면 wordcloud 라이브러리가 필요합니다.
첫 번째 셀에 다음 코드를 입력하고 Shift + Enter로 실행하세요.

!pip install wordcloud matplotlib
라이브러리 설치 성공

"Successfully installed wordcloud" 메시지가 보이면 성공

---

샘플 텍스트 데이터 준비하기

워드클라우드를 만들려면 텍스트 데이터가 필요합니다.
실습을 위해 간단한 텍스트를 준비해볼게요. 데이터 과학 관련 키워드들입니다.

text = """
python data science machine learning
artificial intelligence neural network
deep learning computer vision NLP
data visualization pandas numpy matplotlib
"""

print(text)
샘플 텍스트 출력

텍스트가 정상적으로 출력되는지 확인

실제 프로젝트에서는 여기에 영화 리뷰 수백 개, 뉴스 기사 전문, SNS 게시글 모음 같은 긴 텍스트를 넣으면 됩니다.
지금은 연습이니까 짧게 진행합니다.

---

첫 번째 워드클라우드 만들기

이제 본격적으로 워드클라우드를 생성해봅시다.
WordCloud 객체를 만들고, generate() 메서드에 텍스트를 넣으면 끝입니다.

from wordcloud import WordCloud
import matplotlib.pyplot as plt

wordcloud = WordCloud(width=800, height=400).generate(text)

plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
기본 워드클라우드

기본 워드클라우드 - 흰 배경, 검은 글자

짜잔~! 단어들이 크기별로 배치되었습니다.
plt.imshow()는 이미지를 표시하는 함수입니다. 워드클라우드는 내부적으로 이미지로 생성되기 때문에 이렇게 표시합니다.

코드 이해하기

  • WordCloud(width=800, height=400) - 800x400 크기의 워드클라우드 객체 생성
  • .generate(text) - 텍스트에서 단어 추출 및 빈도 분석
  • plt.imshow() - 워드클라우드 이미지를 화면에 표시
  • plt.axis('off') - X축, Y축 눈금 숨기기 (깔끔하게 보이도록)
---

색상 입히기 - viridis 색상맵

기본 워드클라우드는 좀 심심하죠? 색상을 추가해봅시다.
colormap 파라미터로 색상 테마를 지정할 수 있습니다.

from wordcloud import WordCloud
import matplotlib.pyplot as plt

text = """
python data science machine learning
artificial intelligence neural network
deep learning computer vision NLP
data visualization pandas numpy matplotlib
tensorflow pytorch scikit-learn
"""

wordcloud = WordCloud(
    width=800,
    height=400,
    background_color='white',
    colormap='viridis'  # 파랑-초록-노랑 그라데이션
).generate(text)

plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title('Styled Word Cloud with Viridis Colormap', fontsize=14, pad=10)
plt.show()
Viridis 색상맵 워드클라우드

알록달록한 색상이 추가되었습니다

훨씬 보기 좋아졌습니다!
colormap='viridis'는 파랑에서 초록, 노랑으로 변하는 그라데이션을 적용합니다.

다른 색상맵도 시도해보세요

  • 'plasma' - 보라-분홍-노랑
  • 'inferno' - 검정-빨강-노랑
  • 'magma' - 검정-보라-분홍
  • 'Set2' - 부드러운 파스텔 톤
---

어두운 배경 + 화려한 색상

프레젠테이션이나 다크 테마 보고서에 넣을 거라면 배경을 어둡게 하면 더 멋집니다.
background_color로 배경색을 지정할 수 있습니다.

from wordcloud import WordCloud
import matplotlib.pyplot as plt

text = """
python data science machine learning
artificial intelligence neural network
deep learning computer vision NLP
data visualization pandas numpy matplotlib
tensorflow pytorch scikit-learn keras
"""

wordcloud = WordCloud(
    width=800,
    height=400,
    background_color='#1a1a2e',  # 어두운 배경
    colormap='plasma',  # 보라-분홍-노랑 그라데이션
    max_words=50
).generate(text)

plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title('Dark Theme Word Cloud', fontsize=14, pad=10, color='white')
plt.show()
다크 테마 워드클라우드

어두운 배경 + plasma 색상맵

max_words=50은 최대 50개 단어만 표시하라는 의미입니다.
텍스트가 엄청 길 때 상위 빈도 단어만 선택해서 보여줍니다.

---

단어 빈도 분석하기

워드클라우드는 예쁘지만, 정확한 숫자를 알고 싶을 때도 있습니다.
wordcloud.words_ 속성으로 각 단어의 빈도를 확인할 수 있습니다.

from wordcloud import WordCloud
import matplotlib.pyplot as plt

text = """
python data science machine learning
artificial intelligence neural network
deep learning computer vision NLP
data visualization pandas numpy matplotlib
tensorflow pytorch scikit-learn keras
"""

# 단어 빈도 분석
wordcloud = WordCloud(width=800, height=400).generate(text)
word_freq = wordcloud.words_

# 상위 10개 단어 출력
print("Top 10 Most Frequent Words:")
for word, freq in sorted(word_freq.items(), key=lambda x: x[1], reverse=True)[:10]:
    print(f"{word}: {freq:.4f}")
단어 빈도 분석 결과

각 단어별 빈도가 숫자로 출력됩니다

이 빈도값이 워드클라우드에서 글자 크기를 결정합니다.
빈도가 높을수록 큰 글자, 낮을수록 작은 글자로 표현됩니다.

---

실전 예제 - 더 많은 텍스트로 만들기

이제 조금 더 많은 텍스트로 워드클라우드를 만들어봅시다.
실제 프로젝트에서 사용할 법한 규모입니다.

from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 더 많은 텍스트 데이터
text = """
python data science machine learning deep learning
artificial intelligence neural network computer vision
NLP natural language processing data visualization
pandas numpy matplotlib seaborn plotly
tensorflow pytorch keras scikit-learn
database SQL NoSQL API REST
cloud computing AWS Azure docker kubernetes
"""

wordcloud = WordCloud(
    width=1200,
    height=600,
    background_color='white',
    colormap='Set2',  # 부드러운 파스텔 톤
    max_words=100,
    relative_scaling=0.5,
    min_font_size=10
).generate(text)

plt.figure(figsize=(15, 7.5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title('Complete Word Cloud Visualization', fontsize=18, pad=15, fontweight='bold')
plt.tight_layout()
plt.show()
최종 워드클라우드

완성! 실전에서 사용 가능한 워드클라우드

추가 파라미터 설명

  • relative_scaling=0.5 - 단어 크기 차이를 조절 (0~1 사이, 높을수록 차이 큼)
  • min_font_size=10 - 최소 글자 크기 (너무 작은 글자 방지)
  • max_words=100 - 최대 100개 단어만 표시
---

흑섬 브리딩에서의 활용

저는 레오파드 게코 브리딩 관련 커뮤니티 게시글을 모아서 워드클라우드로 만들어봤습니다.
"온도", "습도", "급여", "쉘터" 같은 단어가 가장 크게 나오더라고요. 사람들이 가장 궁금해하는 주제가 뭔지 한눈에 알 수 있었습니다.

SNS 댓글 분석, 고객 리뷰 분석, 설문조사 결과... 텍스트만 있으면 뭐든 시각화할 수 있습니다.

---

다음 시리즈 예고

다음 글에서는 "산점도로 두 변수 간 상관관계 파악하기" (Step 5)를 다뤄볼 예정입니다.
키와 몸무게, 공부 시간과 성적처럼 두 변수가 어떻게 관련되어 있는지 시각화하는 방법을 배워볼 거예요.

궁금한 점이 있거나, 이런 내용도 다뤄줬으면 좋겠다는 의견이 있다면 인스타그램 DM 주세요!

#워드클라우드#wordcloud#텍스트분석#python#데이터시각화#googlecolab