Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python)으로 워드 클라우드(Word Cloud) 만들기 – 설치부터 코드 실행까지 완벽 가이드

텍스트 데이터를 시각화하는 가장 인기 있는 방법 중 하나가 바로 워드 클라우드(Word Cloud)입니다. 이 튜토리얼에서는 텍스트 파일과 마스크(mask) 이미지를 활용해 워드 클라우드를 생성하고, 그 결과를 PNG 이미지로 저장하는 파이썬 프로그램을 만들어 보겠습니다.

필요한 라이브러리

워드 클라우드를 구현하려면 다음과 같은 파이썬 라이브러리들이 필요합니다.

  • matplotlib – 그래프 및 이미지 출력
  • wordcloud – 워드 클라우드 생성
  • numpy – 마스크 이미지의 픽셀 배열 처리
  • tkinter – GUI 관련 기능 지원
  • PIL(Pillow) – 이미지 파일 읽기 및 변환

라이브러리 설치하기

터미널에서 아래 명령어를 실행하여 필요한 라이브러리를 설치합니다.

$ sudo pip3 install matplotlib
$ sudo pip3 install wordcloud
$ sudo apt-get install python3-tk

라이브러리 설치가 완료되면 본격적으로 코드를 작성할 수 있습니다.

알고리즘 개요

전체 작업 흐름은 다음 네 단계로 구성됩니다.

  1. 1단계: 텍스트 파일에서 데이터를 읽어 변수에 저장합니다.
  2. 2단계: 마스크 이미지로부터 픽셀 배열을 생성합니다.
  3. 3단계: 배경색, 마스크, 불용어(stopwords) 등을 설정하여 워드 클라우드를 생성합니다.
  4. 4단계: 최종 이미지를 디스크에 저장합니다.

입력 파일: sampleWords.txt

예제에서 사용할 텍스트 파일(sampleWords.txt)의 내용은 다음과 같습니다.

"파이썬은 고급 수준의 인터프리터 방식이자 대화형, 객체지향 스크립팅 언어입니다. 파이썬은 높은 가독성을 목표로 설계되었으며, 다른 언어들이 문장부호를 사용하는 자리에 영어 키워드를 자주 사용하고, 문법 구조도 다른 언어보다 간결합니다."

"파이썬은 1980년대 말부터 1990년대 초까지 네덜란드의 국립수학·컴퓨터과학연구소(CWI)에서 귀도 반 로섬(Guido van Rossum)에 의해 개발되었습니다."

"파이썬은 ABC, Modula-3, C, C++, Algol-68, SmallTalk, 유닉스 셸 등 여러 언어에서 영감을 받아 탄생했습니다."

"파이썬은 저작권이 보호되는 소프트웨어이며, Perl처럼 소스 코드가 GNU 일반 공중 사용 허가서(GPL) 하에 공개되어 있습니다."

"현재 파이썬은 연구소의 핵심 개발팀이 유지보수하고 있으며, 귀도 반 로섬 역시 프로젝트의 발전 방향을 이끄는 중요한 역할을 계속하고 있습니다."

또한 워드 클라우드의 모양을 결정할 마스크 이미지(cloud.png)가 필요합니다. 아래 예시에서는 구름 모양의 마스크를 사용했습니다.

파이썬(Python)으로 워드 클라우드(Word Cloud) 만들기 – 설치부터 코드 실행까지 완벽 가이드

전체 예제 코드

아래는 위 알고리즘을 실제로 구현한 파이썬 코드입니다.

import matplotlib.pyplot as pPlot
from wordcloud import WordCloud, STOPWORDS
import numpy as npy
from PIL import Image

dataset = open("sampleWords.txt", "r").read()

def create_word_cloud(string):
    maskArray = npy.array(Image.open("cloud.png"))
    cloud = WordCloud(background_color="white", max_words=200,
                      mask=maskArray, stopwords=set(STOPWORDS))
    cloud.generate(string)
    cloud.to_file("wordCloud.png")

dataset = dataset.lower()
create_word_cloud(dataset)

코드 설명

  • open("sampleWords.txt", "r").read() – 텍스트 파일의 전체 내용을 읽어옵니다.
  • npy.array(Image.open("cloud.png")) – 마스크 이미지를 픽셀 배열로 변환하여 워드 클라우드의 형태를 지정합니다.
  • WordCloud(...) – 배경색은 흰색, 최대 단어 수는 200개로 설정하고, 영문 불용어(STOPWORDS)를 제외합니다.
  • dataset.lower() – 모든 텍스트를 소문자로 변환하여 'Python'과 'python' 같은 단어가 중복 집계되지 않도록 합니다.
  • cloud.to_file("wordCloud.png") – 완성된 워드 클라우드를 PNG 파일로 저장합니다.

실행 결과

코드를 실행하면 구름 모양 마스크에 맞춰 빈도가 높은 단어들이 크게 표시된 워드 클라우드 이미지(wordCloud.png)가 생성됩니다.

파이썬(Python)으로 워드 클라우드(Word Cloud) 만들기 – 설치부터 코드 실행까지 완벽 가이드