워드클라우드를 만드는 도중 한글 단어가 출력되지 않는 문제가 발생하였다.
상기문제는 한글FONT 를 설정하지 않아서 생긴 문제다. 아래처럼 한글 폰트의 경로를 추가한다.
wc = WordCloud(max_words=2000, mask=parrot_mask, font_path="C:\Windows\Fonts\H2HDRM.TTF",max_font_size=40, random_state=42, relative_scaling=0)
#wc = WordCloud(max_words=2000, mask=parrot_mask, max_font_size=40, random_state=42, relative_scaling=0)
한글폰트를 추가후 확인시 한글이 정상적으로 표현되는 것을 확인 할 수 있다.
"""
Image-colored wordcloud with boundary map
=========================================
A slightly more elaborate version of an image-colored wordcloud
that also takes edges in the image into account.
Recreating an image similar to the parrot example.
"""
import os
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from scipy.ndimage import gaussian_gradient_magnitude
from wordcloud import WordCloud, ImageColorGenerator
# get data directory (using getcwd() is needed to support running example in generated IPython notebook)
d = os.path.dirname(__file__) if "__file__" in locals() else os.getcwd()
# load wikipedia text on rainbow
text = open(os.path.join(d, 'wordcloud.txt'), encoding="utf-8").read()
# load image. This has been modified in gimp to be brighter and have more saturation.
parrot_color = np.array(Image.open(os.path.join(d, "parrot-by-jose-mari-gimenez2.jpg")))
# subsample by factor of 3. Very lossy but for a wordcloud we don't really care.
parrot_color = parrot_color[::3, ::3]
# create mask white is "masked out"
parrot_mask = parrot_color.copy()
parrot_mask[parrot_mask.sum(axis=2) == 0] = 255
# some finesse: we enforce boundaries between colors so they get less washed out.
# For that we do some edge detection in the image
edges = np.mean([gaussian_gradient_magnitude(parrot_color[:, :, i] / 255., 2) for i in range(3)], axis=0)
parrot_mask[edges > .08] = 255
# create wordcloud. A bit sluggish, you can subsample more strongly for quicker rendering
# relative_scaling=0 means the frequencies in the data are reflected less
# acurately but it makes a better picture
wc = WordCloud(max_words=2000, mask=parrot_mask, font_path="C:\Windows\Fonts\H2HDRM.TTF",max_font_size=40, random_state=42, relative_scaling=0)
#wc = WordCloud(max_words=2000, mask=parrot_mask, max_font_size=40, random_state=42, relative_scaling=0)
# generate word cloud
wc.generate(text)
plt.imshow(wc)
# create coloring from image
image_colors = ImageColorGenerator(parrot_color)
wc.recolor(color_func=image_colors)
plt.figure(figsize=(10, 10))
plt.imshow(wc, interpolation="bilinear")
wc.to_file("parrot_new.png")
plt.figure(figsize=(10, 10))
plt.title("Original Image")
plt.imshow(parrot_color)
plt.figure(figsize=(10, 10))
plt.title("Edge map")
plt.imshow(edges)
plt.show()
빅데이터 시대의 위기 요인 및 위기요인에 대한 통제 방안 (0) | 2021.05.19 |
---|---|
빅데이터 활용 기본 테크닉 (0) | 2021.05.19 |
C# 으로 워드클라우드 생성하기 Sparc.TagCloud (0) | 2021.03.31 |
JAVA 로 워드클라우드 생성하기 (0) | 2021.03.31 |
jQuery 로 워드클라우드 생성하기 (0) | 2021.03.31 |
댓글 영역