패키지 임포트
import pandas as pd
from wordcloud import WordCloud, ImageColorGenerator
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
from PIL import *
단어명과 빈도가 있는 데이터 불러오기
df = pd.read_csv("저장경로/파일명.txt", sep='\t', encoding='UTF-8')
df
단어명과 빈도로 딕셔너리 객체 생성.
(단어 개수가 많을 경우 적당량만 새 데이터프레임에 담아서 사용해도 됨.)
dict = dict(zip(list(df['명사']), list(df['빈도'])))
dict
워드 클라우드를 만들고 싶은 모양이 있을 경우 이미지 파일을 불러와서 numpy 객체에 담기
icon = Image.open("저장경로/파일명.png")
# jpeg여도 되지만 보통 png가 화질이 덜 깨짐. 화질이 깨지는 경우 워드클라우드 모양의 가장자리가 울퉁불퉁해서 보기 좋지 않음.
mask = Image.new("RGB", icon.size, (255,255,255))
mask.paste(icon,icon)
mask = np.array(mask)
워드 클라우드 생성하기~
# wordcloud는 외국에서 만든 라이브러리로 한글 글꼴이 포함되어 있지 않기 때문에 사용하고자 하는 한글 글꼴을 미리 불러와서 저장해둬야 함.
# mask에다가 앞서 불러온 이미지를 담은 객체명 지정, scale은 숫자가 클수록 이미지 선명도가 높아짐. 너무 크면 시간이 오래 걸리므로 2~3이 적당.
# 나머지 파라미터는 wordcloud 공식 사이트에서 참고.
# https://amueller.github.io/word_cloud/
wc = WordCloud(font_path='malgun', width=500, height=500, mask=mask, scale=2.0, background_color="white", max_font_size=250, colormap="viridis", contour_color="black")
gen = wc.generate_from_frequencies(dict) # 아까 단어명과 빈도를 담은 딕셔너리를 여기 넣어줌
plt.figure() # 저장하기 전에 워드클라우드를 미리 보기 위한 코드
plt.figure(figsize=(15,15)) # figsize는 코드 출력란에 표시되는 이미지의 크기를 정함. 15, 15면 적당한데 더 크게 볼 수도 있음.
plt.imshow(gen)
plt.axis("off")
저장하면 끝!
wc.to_file('저장경로/파일명.png')
728x90
'데이터 분석 > Python' 카테고리의 다른 글
[공간 분석-데이터 전처리] 출발지와 도착지로 이동 경로 집계 후 LineString 객체 생성(geopandas) (0) | 2023.12.27 |
---|---|
[텍스트 마이닝-정제] 주제와 관련 없는 문서 제거하기 (0) | 2023.12.27 |
[텍스트 마이닝-지표 산출] TF-IDF 계산 및 문서 개수 합계 산출 (0) | 2023.11.17 |
[텍스트 마이닝-시각화] Ucinet으로 CONCOR 시각화 (0) | 2023.10.23 |
[텍스트 마이닝-분석] 한글 N-gram 분석 (0) | 2023.09.18 |
댓글