워드클라우드! 오오오오 -
준비물1: 우선 패키지를 깔아준다. 워드클라우드를 그려주는 친군가봉가
conda install -c conda-forge wordcloud
준비물2: 각종 친구들을 임포트 해준다.
import numpy as np
from PIL import Image
from wordcloud import WordCloud
import matplotlib.pyplot as plt
내 노래 미리 txt 파일로 맨들어주고, 적절한 경로에 넣어두고는 불러와본다.
mysong = open('./data/downtown_baby.txt')
mysong = mysong.read()
mysong
이르케 조금 \n 때문에 복잡해 보인다.
이대로 워드클라우드를 뽑으면 \n이 1등으로 나올 수 있다.
\n을 퍄퍄퍄 부셔주자
mysong = mysong.replace('\n', " ")
mysong
이건 몰라.. 선생님도 대충 설명하면서 넘어간다. 폰트 뭐 그런 매니저 응.. 그렇단다. 깊게 알지 못하고 복붙 하기로 한다...
import matplotlib.font_manager as fm
for f in fm.fontManager.ttflist:
if 'Gothic' in f.name:
print(f.fname)
결과에서 나온 폰트 경로를 하나 픽업하라고 한다.
그리고 font=path = '요기 넣음쓰' 라고 하는데.. 아래 예시 보셈
font_path = '/System/Library/Fonts/Supplemental/AppleGothic.ttf'
wc = WordCloud(font_path = font_path, background_color="white")
wc.generate(mysong)
plt.figure(figsize=(50,50))
plt.axis("off")
plt.imshow(wc)
plt.show
이것도 거의 복붙인데, 내가 원하는 이미지를 하나 경로에 저장해둔다.
나는 heart.jpeg 를 사용했다.
# Generate a word cloud image
mask = np.array(Image.open('./data/heart.jpeg'))
wc = WordCloud(font_path=font_path, background_color="white", mask=mask)
wc.generate(mysong)
f = plt.figure(figsize=(50,50))
f.add_subplot(1,2, 1)
plt.imshow(mask, cmap=plt.cm.gray)
plt.title('Original Stencil', size=40)
plt.axis("off")
f.add_subplot(1,2, 2)
plt.imshow(wc, interpolation='bilinear')
plt.title('Sparta Cloud', size=40)
plt.axis("off")
plt.show()
결과는 그럴싸하다...?!
이 이미지를 굳이굳이 코드를 써서 파일로 빼보는 것도 배운다.
파일명 mySong_downtown_baby.png
으로 저장된다.
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = "AppleGothic"
font_path = '/System/Library/Fonts/Supplemental/AppleGothic.ttf'
mask = np.array(Image.open('./data/heart.jpeg'))
wc = WordCloud(font_path=font_path, background_color="white", mask=mask)
wc.generate(mysong)
f = plt.figure(figsize=(30,30))
plt.imshow(wc, interpolation='bilinear')
plt.title('Downtown Baby 워드 클라우드', size = 40)
plt.axis("off")
plt.show()
f.savefig('./data/mySong_downtown_baby.png')
최종 결과쓰:
재밌긴한데.. 또 그닥 쓸모가 없어보여서 애매~하다...ㅋㅋㅋ
이걸 왜 내가 코드로.. 그리고 있는거야...? 으응...
이미 리대쉬에 있는 기능이라 굳이굳이 일에는 써먹기 애매하지만, 개인적으로 해볼 재미진 것들이 좀 있을 것 같다.