본문 바로가기

Previous (20-22)/Development

최근에 구현한 Word Cloud

회사에서 쓰고 있는 생산품을 가지고 만들어 보았는데, 사실 저 코드만 가지고는 무엇을 의미하는지 알 수 없으므로 사외비 거리조차도 안돼서 올려보았습니다.

회사에서 필요로 해서 만든건 아닙니다. 언제나 그랬듯 제가 개인적으로 공부하는 과정에서 만들어 봤을 뿐.

이번에 Python으로 처음으로 Word Cloud를 구현해봤는데, 생각보다는 쉽더라고요. 다만 여기에 자세한 방법을 구체적으로 올리지는 못할 것 같습니다. 왜냐하면 구현 방법 자체가 사실상 다른 분들의 블로그에 있는 내용을 거의 참조한 것이다 보니, 무단으로 도용해서는 안될것 같기 때문이랄까요.

그래서 이 글에서는 다른 분들의 저작권을 해치지 않는 의미에서 큰 틀에서 만드는 방법을 간단히 제시해볼게요.

1. 필요한 패키지 및 모듈

from wordcloud import WordCloud, ImageColorGenerator
from PIL import Image
from io import BytesIO
from xlrd import open_workbook
import numpy as np
import matplotlib.pyplot as plt

- wordcloud 패키지는 당연히 필수입니다. WordCloud 모듈도 당연히 필수겠죠.

- ImageColorGenerator는 필수는 아닙니다. 특정 색상을 구현하고 싶다면 get_single_color_func 모듈을 사용합니다. 이 모듈에서는 참조할 Image Mask의 색상을 WordCloud의 색상으로 사용할 때 쓰는 모듈입니다.

- PIL 패키지의 Image 모듈은 Image Mask를 사용하고자 할 때 불러옵니다. Image Mask를 쓴다면 필수겠죠.

- io 패키지의 BytesIO 모듈은 Image Mask를 사용할 때 같이 사용합니다만 필수까지는 아니겠네요.

- xlrd 패키지의 open_workbook 모듈은 Excel 파일을 불러올 때 사용합니다. 텍스트가 Excel파일로 구성되어 있다면 좋겠죠.

- numpy 모듈은 굳이 부연설명할 것도 없습니다. 당연히 필수죠.

- matplotlib.pyplot 모듈은 대표적인 그래프 표시 모듈이죠. 사실 다른 모듈도 있지만 matplotlib처럼 대중적인 모듈도 없습니다.

 

2. 구현 방법

구현 방법은 다음 순서로 이루어진다고 보면 됩니다.

1) 배경으로 사용할 Image Mask를 불러온다.

2) Word Cloud로 구성할 텍스트의 Excel 파일을 불러온다.

3) Word Cloud 객체를 생성하고, ImageColorGenerator 모듈을 사용하여 색칠한다.

4) pyplot에 표시한다.

참 쉽죠?

 

결국 프로그래밍을 한다는 것은 별 것 없습니다.

무엇을 만들 것인가 - 그것을 만들기 위해서 필요한 것이 무엇인가 - 어떤 방식으로 표현할 것인가.

복잡한 프로그램이나 시스템을 개발한다고 해도 큰 차이는 없습니다. 이러한 큰 틀을 유지하면서 필요한 구성요소를 판단하고 구성요소를 어떻게 사용할 지만 보면 됩니다.

Python 기초 강좌 자료가 거의 완성되어 가네요. 하나씩 안 올리고 한꺼번에 다 만든 다음에 유튜브에 강좌를 올릴 에정입니다. 책이란 것도 쓰다 만 것을 출판할 수는 없잖습니까. 같은 이치죠 뭐.

하나라도 기초부터 제대로 습득한다면 무엇을 만들더라도 시간만 오래 걸리지, 큰 어려움을 없다는 것. 

이상 글 마칠게요.

 

소스코드는 필요하시다면 비밀댓글로 남겨주시기 바랍니다. 

기껏 고생해서 만든거라 배포하기 아까워서 안하는게 아니라, 인터넷 다른 분들 블로그, Stackoverflow 등 자료 뒤져가면서 퍼간다음에 짜깁기한거라서 이 글에 직접 배포하기는 좀 그래서 그런거니 양해 바랄게요.