print( sjw.iq == 200) output : true

[Word Cloud] Python 을 이용해서 한글 word cloud 만들기 본문

Python

[Word Cloud] Python 을 이용해서 한글 word cloud 만들기

sjwiq200 2019. 7. 9. 14:47
728x90
반응형

안녕하세요!

 

이번에는 word cloud라는 라이브러리에 대해서 포스팅 하겠습니다!

 

저희 서비스에서 이전 개발자가 word cloud로 이미지를 생성해놨더라구요~!

 

그래서 저도 한번 공부를 해봤습니다!

 

일단 결과물 부터 한번 보겠습니다!

 

이와 같은 이미지 형태를 word cloud 라고 하는 것 같아요!

 

엄청 간단한데요!

 

우선 필요한 라이브러리부터 보여드리겠습니다!

 

from PIL import Image
from wordcloud import WordCloud

import numpy as np

 

이렇게 우선 세가지를 import 하시면 됩니다!

 

그리고!

 

 

 

이와 같은 이미지를 mask 변수에 저장하고

mask = np.array(Image.open('zzieut_logo.png'))

 

#텍스트를 읽어주시면 됩니다.

text = open('test.txt').read()

 

# 그리고 다음과 같이 WordCloud 객체를 만들어 주시고
wc = WordCloud(background_color="white", max_words=20000, mask=mask, max_font_size=300).generate(text)

 

# 다음과 같이 파일로 저장해주시면 끝이 납니다~!
wc.to_file('test.png')

 

정말 간단한데요~!

 

한글은 언제나 문제죠... ㅠㅠ

 

#하지만 간단합니다

#이와 같이 그냥 한글폰트만 찾아주셔서 경로만 써주면 돼요~~


wc = WordCloud(font_path='./font/BMDOHYEON_ttf.ttf', background_color="white", max_words=20000, mask=mask,max_font_size=300)

 

그리고 위와 같이 텍스트 파일을 읽어서 할수도 있지만

여러 가지 방법도 있는데요!

 

#저는 json 파일을 사용해봤어요!

 

---------------------------------------------------------------------------------

{
"심씨" : 3200,
"아이큐" : 3400,
"개발자" : 4500,
"찌읏" : 5600,
"하이" : 1340,
"자바" : 3000,
"파이썬" : 4500,
"피에이치피" : 4141,
"워드" : 1241,
"클라우드" : 1210,
"라라벨" :2310,
"안드로이드" :3140,
"스프링" : 1210,
"웹" : 1201,
"쉘" : 3210,
"구글" : 2310,
"티스토리" : 1341,
"이백" : 1210,
"찜" : 1330,
"어플" : 1234,
"서버" : 2310,
"끼께꾹" : 1927,
"서울특별시" : 2031,
"관악구" : 1301,
"성북구" : 3831,
"얼마나" : 2311,
"더" :1404,
"써볼까요" : 1341

}

 

---------------------------------------------------------------------------------

 

 

text = open('zzieut.json').read()
text = json.loads(text)
wc = WordCloud(font_path='./font/BMDOHYEON_ttf.ttf', background_color="white", max_words=20000, mask=mask, max_font_size=300).generate_from_frequencies(text)

 

 

 

간단합니다~!

 

 

 

사실 많이 쓰게 될지는 모르겠지만...

 

이쁘긴 하네요 ㅎㅎㅎ

 

그럼 안녕히계세요~!

728x90
반응형
Comments