[References]
https://drive.google.com/drive/folders/16HIHEFQgvN0Pmkn6g4nqvakuvu0ITlcX
1. 워드 클라우드 (Word Cloud)
문서의 키워드나 주제, 개념 등을 직관적으로 파악할 수 있도록 핵심 단어를 시각적으로 꾸미는 기법
많이 언급되는 단어를 크게 표현해 한 눈에 들어올 수 있도록 한 이미지
2. 워드 클라우드 제작 사이트
http://wordcloud.kr/
3. Python을 이용한 Word Cloud 제작
준비물 : 문서(TXT) 파일, 폰트, 마스킹 이미지, python 소스 파일
1) TXT 파일
워드 클라우드를 생성하기 위한 텍스트가 필요하다. 관심이 있는 인터넷 기사를 스크랩해도 좋고, 자신의 버킷 리스트를 담은 수필, 10년 후 나의 계획, 친구와 주고받은 카카오톡 메시지 등 한 페이지 이상 분량의 텍스트를 준비한다.
이 때, 반드시 메모장(txt)형식으로 준비해야 한다.
2) 글자체 (Font)
만들고자 하는 이미지에 자신이 지정한 글꼴을 적용시킬 수 있다.
3) Masking Image
워드 클라우드의 태두리 형태를 정해줄 'png' 파일 형식의 이미지 파일이 필요하다.
배경이 제거된 그림 파일이 필요하기 때문에 원하는 그림 파일을 고른 뒤 배경을 없애주는 작업이 필요하다.
사진의 배경 제거하기
'https://www.remove.bg/ko' 에 접속한다.
드래그하여 원하는 이미지 파일을 업로드한다.
배경이 제거되면 사진 우측 상단의 '편집' 버튼을 누른다.
배경을 제거한 후에는 '흰색' 배경을 다시 넣어주어야 마스킹이 적용된다.
중간에 위치한 '색' 버튼을 선택한다.
색상을 '흰색' 으로 선택한 후 'OK' 를 누른다.
배경이 투명에서 흰색으로 바뀌면 '다운로드' 버튼을 누른다.
4) Python Source Code
(1) 기본형
'''
# 참고자료
# 형태소 분석 : https://needjarvis.tistory.com/642
# 공유 폴더에 있는 데이터 파일(data.txt)과 폰트 파일(malgun.ttf)파일을 다운로드 한 후,
# 코랩 서버에 드래그해서 업로드 하면 바로 동작한다.
# 그 외 폰트 다운로드 링크 :
# https://software.naver.com/software/fontList.nhn?categoryId=I0300000
# https://www.woowahan.com/#/fonts
'''
'''
# 코랩 서버에 업로드 해야 하는 파일 : data.txt, font.ttf, mask.png
'''
'''
# 라이브러리 설치는 코랩 서버 연결 후 한 번만 주석을 해제하여 설치한다.
# 처음 한 번 설치한 후 다시 주석처리 하면 워드 클라우드를 더 쉽게 구동할 수 있다.
# 서버 런타임이 끊기면 설치된 라이브러리들이 자동 삭제되는데 이때는 주석을 해제해서 다시 설치한다.
'''
'''
# 라이브러리(외부 모듈) 설치
!pip install wordcloud
!pip install nltk
!pip install requests bs4
!pip install konlpy
!pip install ipython
!pip install ipykernel
'''
# 'numpy' 은 마스크를 적용할 때 사용하는 라이브러리이다. 마스크가 필요없다면 설치하지 않아도 된다.
# !pip install numpy as np
# 'Jupyter Notebook' 에서 'matplotlib' 을 쓰려면 작성해야 한다.
%matplotlib inline
import matplotlib
from IPython.display import set_matplotlib_formats
# matplotlib 에서 rc 함수를 이용해 한글을 읽기 위한 작업 (맑은 고딕)
# 이 설정이 없으면 한글을 사용할 수 없다.
matplotlib.rc('font',family = 'Malgun Gothic')
# 조금 더 선명하게 글자를 출력하기 위한 명령어
set_matplotlib_formats('retina')
# 그래프에서 마이너스를 표시하기 위한 명령어
# matplotlib.rc('axes',unicode_minus = False)
# https://hyrama.com/?p=463 : 형태소 토큰화에 트위터를 권장하는 이유
from konlpy.tag import Twitter
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import nltk
# 아래 라이브러리는 마스크를 적용할 때 사용하는 라이브러리이다. 마스크가 필요없으면 사용하지 않아도 된다.
import numpy as np
from PIL import Image
import requests
# 한글 토큰화
# 'data.txt' 파일을 코랩 서버에 미리 업로드해놓아야 정상적으로 동작한다.
# 파일 불러오기
# 인코딩 방식에 문제가 생기면 다른 인코딩 방식을 사용할 수 있도록 주석을 조정한다.
# 현재는 'utf-8' 로 사용하게 설정되어 있다.
# file = open("data.txt", 'r', encoding='cp949')
file = open("data.txt", 'r', encoding='utf-8')
# txt 파일을 읽은 후 lists 안에 저장
lists = file.readlines()
file.close()
# 형태소 나누기
# twitter 객체를 만든다.
twitter = Twitter()
# morphs 변수에 비어있는 리스트를 저장한다.
morphs = []
# txt 파일을 읽어서 lists 변수에 저장한 것을 for문을 통해 형태소 값으로 분할해서 morphs 변수에 리스트 형태로 추가한다.
for sentence in lists:
morphs.append(twitter.pos(sentence))
print(morphs)
# 명사, 형용사, 부사만 골라내기
kor_text_list=[]
for sentence in morphs :
for word, tag in sentence :
# 의미없는 부사를 골라내어 tag라는 변수에 저장한다(버린다)
if tag in ['Noun','Alpha']and ("것" not in word)and ("내" not in word)and ("나" not in word)and ("수"not in word) and ("게"not in word) and ("말"not in word) and (","not in word) and ("네"not in word)and ("쫌"not in word)and ("또"not in word)and ("음.."not in word)and ("이"not in word)and ("위"not in word):
# 부사를 제외한 단어들은 리스트 형태로 kor_text_list에서 저장한다.
kor_text_list.append(word)
print(kor_text_list)
# 빈도 수대로 정렬하기
count = Counter(kor_text_list)
words = dict(count.most_common())
print(words)
# 나만의 워드클라우드 구현하기
# 마스크 만들기
# 인터넷에 있는 'png' 파일을 쓸 때는 위쪽을, 업로드 한 'png' 파일을 쓸 때는 아래쪽을 주석해제한다.
# 업로드 한 'png' 파일을 쓸 경우, 'mask(whale).png' 파일을 미리 코랩 서버에 업로드해놓아야 정상적으로 동작한다.
# 다른 마스크 이미지를 사용하려면 적당한 사이즈의 'png' 파일을 찾아 미리 업로드해놓는다.
# mask = np.array(Image.open(requests.get('http://www.clker.com/cliparts/O/i/x/Y/q/P/yellow-house-hi.png', stream=True).raw))
mask = np.array(Image.open('mask(whale).png'))
# 마스킹 이미지의 색을 그대로 재현시켜준다.
# 사용하지 않을 경우
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
image_colors=ImageColorGenerator(mask)
# 워드 클라우드 만들기
# 폰트 파일을 코랩 서버에 미리 업로드해놓아야 동작한다.
# 폰트를 수정할 경우 'malgun.ttf' 대신에 새로운 폰트 이름을 적어준다.
# 글씨색, 바탕색, 테두리, 등의 옵션은 아래 링크를 참고한다.
# http://blog.naver.com/PostView.nhn?blogId=woosoung1993&logNo=221217222554
wordcloud = WordCloud(max_words=2000, max_font_size=70,font_path = 'malgun.ttf', mask=mask, background_color='white', colormap = "jet", width=1500, height=1000).generate_from_frequencies(words)
plt.figure( figsize=(30,10), facecolor='white')
plt.imshow(wordcloud)
# plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation="bilinear")
plt.tight_layout(pad=0)
plt.axis('off')
plt.show()
(2) 기본형 + 단어 강제 추가
'''
# 참고자료
# 형태소 분석 : https://needjarvis.tistory.com/642
# 공유 폴더에 있는 데이터 파일(data.txt)과 폰트 파일(malgun.ttf)파일을 다운로드 한 후,
# 코랩 서버에 드래그해서 업로드 하면 바로 동작한다.
# 그 외 폰트 다운로드 링크 :
# https://software.naver.com/software/fontList.nhn?categoryId=I0300000
# https://www.woowahan.com/#/fonts
'''
'''
# 코랩 서버에 업로드 해야 하는 파일 : data.txt, font.ttf, mask.png
'''
'''
# 라이브러리 설치는 코랩 서버 연결 후 한 번만 주석을 해제하여 설치한다.
# 처음 한 번 설치한 후 다시 주석처리 하면 워드 클라우드를 더 쉽게 구동할 수 있다.
# 서버 런타임이 끊기면 설치된 라이브러리들이 자동 삭제되는데 이때는 주석을 해제해서 다시 설치한다.
'''
'''
# 라이브러리(외부 모듈) 설치
!pip install wordcloud
!pip install nltk
!pip install requests bs4
!pip install konlpy
!pip install ipython
!pip install ipykernel
'''
# numpy 라이브러리는 마스크를 적용할 때 사용하는 라이브러리입니다. 마스크가 필요없으면 설치하지 않아도 됩니다.
# !pip install numpy as np
# 'Jupyter Notebook' 에서 'matplotlib' 을 쓰려면 작성해야 한다.
%matplotlib inline
import matplotlib
from IPython.display import set_matplotlib_formats
# matplotlib 에서 rc 함수를 이용해 한글을 읽기 위한 작업 (맑은 고딕)
# 이 설정이 없으면 한글을 사용할 수 없다.
matplotlib.rc('font',family = 'Malgun Gothic')
# 조금 더 선명하게 글자를 출력하기 위한 명령어
set_matplotlib_formats('retina')
# 그래프에서 마이너스를 표시하기 위한 명령어
# matplotlib.rc('axes',unicode_minus = False)
# https://hyrama.com/?p=463 : 형태소 토큰화에 트위터를 권장하는 이유
from konlpy.tag import Twitter
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import nltk
# 아래는 마스크를 적용할 때 사용하는 라이브러리이다. 마스크가 필요없으면 사용하지 않아도 된다.
import numpy as np
from PIL import Image
import requests
# 한글 토큰화
# 'data.txt' 파일을 코랩 서버에 미리 업로드해놓아야 정상적으로 동작한다.
# 파일 불러오기
# 인코딩 방식에 문제가 생기면 다른 인코딩 방식을 사용할 수 있도록 주석을 조정한다.
# 현재는 'utf-8' 로 사용하게 설정되어 있다.
# file = open("data.txt", 'r', encoding='cp949')
file = open("data.txt", 'r', encoding='utf-8')
# txt 파일을 읽은 후 lists 안에 저장
lists = file.readlines()
file.close()
# 형태소 나누기
# twitter 객체를 만든다.
twitter = Twitter()
# morphs 변수에 비어있는 리스트를 저장한다.
morphs = []
# txt 파일을 읽어서 lists 변수에 저장한 것을 for문을 통해 형태소 값으로 분할해서 morphs 변수에 리스트 형태로 추가한다.
for sentence in lists:
morphs.append(twitter.pos(sentence))
print(morphs)
# 명사, 형용사, 부사만 골라내기
kor_text_list=[]
for sentence in morphs :
for word, tag in sentence :
# 의미없는 부사를 골라내어 tag 라는 변수에 저장한다(버린다).
if tag in ['Noun','Alpha']and ("것" not in word)and ("날" not in word)and ("로" not in word)and ("수"not in word) and ("게"not in word) and ("말"not in word) and (","not in word) and ("네"not in word)and ("쫌"not in word)and ("또"not in word)and ("음.."not in word)and ("이"not in word)and ("위"not in word)and ("의"not in word):
# 부사를 제외한 단어들은 리스트 형태로 kor_text_list에서 저장한다.
kor_text_list.append(word)
# append( ) 안에 강제로 삽입하고 싶은 단어를 넣어준다.
for sentence in range(30) :
kor_text_list.append("준스팩토리")
print(kor_text_list)
# 빈도수대로 정렬하기
count = Counter(kor_text_list)
# print(type(count))
words = dict(count.most_common())
print(words)
# 나만의 워드클라우드 구현하기
# 마스크 만들기
# 인터넷에 있는 'png' 파일을 쓸 때는 위쪽을, 업로드 한 'png' 파일을 쓸 때는 아래쪽을 주석해제한다.
# 업로드 한 'png' 파일을 쓸 경우, 'mask(whale).png' 파일을 미리 코랩 서버에 업로드해놓아야 정상적으로 동작한다.
# 다른 마스크 이미지를 사용하려면 적당한 사이즈의 'png' 파일을 찾아 미리 업로드해놓는다.
# mask = np.array(Image.open(requests.get('http://www.clker.com/cliparts/O/i/x/Y/q/P/yellow-house-hi.png', stream=True).raw))
mask = np.array(Image.open('mask(whale).png'))
#마스킹 이미지의 색을 그대로 재현시켜줍니다.주석을 해제하여 사용하세요. 114행과 연결되어 있습니다. 이걸 하기 싫으면 113행 주석을 풀어주세요!
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
image_colors=ImageColorGenerator(mask)
# 워드 클라우드 만들기
# 폰트 파일을 코랩 서버에 미리 업로드해놓아야 정상적으로 동작한다.
# 폰트를 수정할 경우 'malgun.ttf' 대신에 새로운 폰트 이름을 적어준다.
# 글씨색, 바탕색, 테두리, 등의 옵션은 아래 링크를 참고한다.
# http://blog.naver.com/PostView.nhn?blogId=woosoung1993&logNo=221217222554
wordcloud = WordCloud(max_words=1000, max_font_size=100,min_font_size=5,font_path = 'malgun.ttf', mask=mask, background_color='white',
colormap = "summer", width=1500, height=1000).generate_from_frequencies(words)
plt.figure( figsize=(30,10), facecolor='white')
# plt.imshow(wordcloud)
plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation="bilinear")
plt.tight_layout(pad=0)
plt.axis('off')
plt.show()
(3) 기본형, 영어 + 한글
한글 및 영어에 대한 각각의 형태소 분석기 기능이 다르기 때문에, 아직은 국영문 혼합 데이터를 한 번에 전처리 시켜줄 모듈이 없다.
한글인지 영문인지 먼저 파악하고 그에 맞게 데이터를 분류한다.
각 언어에 대해 다른 형태소 분석기 및 불용어 처리, 토크나이저를 적용한다.
그 후, 각각의 토큰들을 섞어 워드 클라우드를 만든다.
# 현재 실행 중인 코랩 런타임에 라이브러리를 설치한다.
# 코랩 클라우드 연결 후 한 번만 실행하면, 런타임이 해제될 때까지 설치 상태가 유지된다.
'''
# 사용하는 라이브러리
!pip install nltk
!pip install wordcloud
!pip install konlpy
!pip install ipython
!pip install ipykernel
!pip install requests bs4 wordcloud
!pip install Twitter
# !pip install numpy as np
'''
'''
# 코랩 클라우드에 업로드 해야 하는 파일
# 텍스트 파일
# - 한글 : ko.txt
# - 영어 : en.txt
# 마스크 파일
# - mask.png
# 폰트 파일
# - malgun.ttf
'''
# ipynb 파일을 실행한 브라우저에서 바로 이미지를 볼 수 있게 해주는 명령어
%matplotlib inline
# 라이브러리 불러오기
import nltk
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import matplotlib.image as img
import matplotlib
from IPython.display import set_matplotlib_formats
from konlpy.tag import Twitter
from PIL import Image
from wordcloud import STOPWORDS
import numpy as np
import requests
import pickle
from nltk.corpus import stopwords
import re
# 조금 더 선명하게 글자를 출력하기 위한 명령어
set_matplotlib_formats('retina')
# 그래프에서 마이너스를 표시하기 위한 명령어
matplotlib.rc('axes',unicode_minus = False)
# 영어 토큰화에 필요
nltk.download('punkt')
# 영어 태깅에 필요
nltk.download('averaged_perceptron_tagger')
nltk.download('stopwords')
1. 한글 토큰화
# 한글 txt파일 불러오기
file = open("/content/BTS.txt", 'r', encoding='utf-8')
# txt 파일을 한 줄씩 읽어들여 lists 에 저장
lists = file.readlines()
file.close()
print(lists)
# 품사 분류
# Twitter 객체 생성
twitter = Twitter()
morphs = []
# txt 파일을 읽어서 lists 변수에 저장한 것을 for문을 통해 형태소 값으로 분할해서 morphs 변수에 리스트 형태로 추가한다.
for sentence in lists:
morphs.append(twitter.pos(sentence))
print(morphs)
# 필요한 단어 골라내기
# kor_text_list 라는 빈 리스트를 만든다.
kor_text_list=[]
# 명사만 골라내기
for sentence in morphs :
for word, tag in sentence :
# 의미없는 부사를 골라내어 tag 라는 변수에 저장한다(버린다).
if tag in ['Noun'] and ("것" not in word) and ("내" not in word) and ("나" not in word) and ("수" not in word) and ("게" not in word) and ("말" not in word) and ("," not in word) and ("네" not in word) and ("쫌" not in word) and ("또" not in word) and ("음.." not in word) and ("이" not in word) and ("의" not in word) :
# 부사를 제외한 단어들을 리스트 형태로 kor_text_list에 저장한다.
kor_text_list.append(word)
print(kor_text_list)
# 원하는 텍스트를 강제로 집어넣기 위해서는 3행에 넣고 싶은 단어를 넣는다.
# 강제 추가를 원하지 않으려면 그냥 넘어가면 된다.
for sentence in range(30) :
kor_text_list.append("파이썬")
print(kor_text_list)
# 영어가 필요 없을 경우 여기까지만 하고 3번으로 넘어간다.
tokenize_eng = []
2. 영어 토큰화
# 영어 txt 파일을 업로드 후 아래 open() 안에 파일명을 적어준다.
eng_text= open('bts(en).txt', encoding='UTF8').read()
# 대문자를 소문자로 바꾸기
# eng_text_2 = eng_text.lower()
# 각각의 워드를 토큰으로 쪼갠다.
word_tokens = nltk.word_tokenize(eng_text)
print(word_tokens)
# 품사를 분리한다.
# 영어의 경우는 nltk 에서 제공하는 pos_tag() 함수를 사용해서 품사 태깅을 할 수 있다.
# 품사 정보는 아래 주소에서 확인할 수 있다.
# https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html
tokens_pos = nltk.pos_tag(word_tokens)
print(tokens_pos)
tokenize_eng = []
for word, pos in tokens_pos:
# 명사만 추출
if 'NN' in pos:
tokenize_eng.append(word)
print(tokenize_eng)
# 변수명 바꿔주기
final_NN_words = tokenize_eng
print(final_NN_words)
# 불용어 사전 리스트 가져오기
# nltk에서 제공하는 불용어 사전 이용
stopwords_list = stopwords.words()
print('stopwords: ', stopwords_list)
# tokenize_eng 를 unique_NN_words 로 세팅하기
unique_NN_words = set(tokenize_eng)
print(unique_NN_words)
# 불용어 제거
for word in unique_NN_words:
if word in stopwords_list:
while word in final_NN_words: final_NN_words.remove(word)
print(tokenize_eng)
# 직접 만든 불용어 리스트, 제거하고 싶은 단어 추가해서 사용
customized_stopwords = ['act','No','label','song','Korean', 'recording']
# 빼고 싶은 단어 제거
unique_NN_words1 = set(final_NN_words)
print(unique_NN_words1)
for word in unique_NN_words1:
if word in customized_stopwords:
while word in final_NN_words: final_NN_words.remove(word)
print(tokenize_eng)
# 강제로 넣고 싶은 영어 단어를 넣는다.
for sentence in range(30) :
tokenize_eng.append("Python")
print(tokenize_eng)
3. 각 단어들의 빈도 수 정렬
# 리스트 합치기
all_nouns = kor_text_list + tokenize_eng
print(all_nouns)
# 한글과 영어로 돠어 되어 있는 명사들의 갯수를 세서 counter 변수에 넣기
counter = Counter(all_nouns)
print(counter)
print(type(counter))
# 빈도 수가 많은 순으로 정렬하기
words = dict(counter.most_common())
print(words)
print(type(words))
# 한글만 사용하고 싶을 때는 7, 8번 줄만 주석처리하고, 영어만 사용하고 싶을 때는 4, 5번 줄만 주석처리한다.
# 한글, 영어 모두 사용하고 싶을 경우에는 그냥 넘어간다.
'''
counter = Counter(kor_text_list)
words = dict(counter.most_common())
counter = Counter(tokenize_eng)
words = dict(counter.most_common())
'''
# 마스크 만들기
# 인터넷에 있는 png 파일을 쓸 때는 위쪽을, 업로드 한 png 파일을 쓸 때는 아래쪽을 주석해제한다.
# 업로드 한 png 파일을 쓰고 싶을 때는 mask 파일을 코랩 서버에 미리 업로드해놓아야 정상적으로 동작한다.
# 다른 마스크를 사용하려면 적당한 사이즈(600 x 565 추천)의 png 파일을 찾아서 업로드한다.
# 파일명과 경로명을 일치시켜주어야 제대로 동작한다.
# 인터넷에 있는 png 파일을 이용할 때는 아래와 같이 그 파일의 주소를 직접 넣어준다.
# mask = np.array(Image.open(requests.get('http://www.clker.com/cliparts/O/i/x/Y/q/P/yellow-house-hi.png', stream=True).raw))
# 이미 가지고 있는 png 파일을 이용할 때는 왼편의 파일 트리에 원하는 파일을 업로드 하고 경로를 지정해준다.
mask = np.array(Image.open('/content/mask.png'))
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
# 스톱 워드 세팅
# STOPWORDS는 영어만 인식되고 한글은 인식되지 않음
stopwords= set(STOPWORDS)
print(stopwords)
# 마스크 파일에서 이미지 컬러를 생성
image_colors=ImageColorGenerator(mask)
print(image_colors)
# 워드 클라우드 만들기 01
import random
# 폰트 파일을 코랩 서버에 미리 업로드해놓아야 정상적으로 동작합니다.
# 폰트를 수정할 경우
# 예시) font_path 의 작은 따옴표 안에 위치한 'BMJUA_ttf.ttf' 대신에 새로운 폰트 이름을 적는다.
# 예시) 새로운 폰트도 코랩 서버에 미리 업로드가 되어 있어야 제대로 동작합니다.
# 글씨색, 바탕색, 테두리, 등의 옵션은 아래 링크를 참고한다.
# 아래 링크의 하단에 있는 'colormap 에서 가능한 색깔 모음' 을 참고하여 colormap 부분을 수정하면 이미지의 분위기를 조정할 수 있다.
# http://blog.naver.com/PostView.nhn?blogId=woosoung1993&logNo=221217222554
wordcloud = WordCloud(max_words=300, max_font_size=150,min_font_size=5,font_path='/content/Typo_BabyHeartM.ttf',mask=mask,
width=1500, height=500, background_color='white', colormap = "Accent", random_state=30,
stopwords=stopwords)
# counter에 있는 명사의 빈도수에 따라 워드 클라우드를 생성
wordcloud.generate_from_frequencies(counter)
# 차트 생성
# 차트 모양 지정
plt.figure( figsize=(30,10), facecolor='orange')
title_font = {
'fontsize': 50,
'fontweight': 'bold'
}
# 차트 제목 지정
plt.title("Whale", fontdict=title_font, loc='left', pad=20)
# matplotlib 의 기본 설정으로 보여주기
plt.imshow(wordcloud)
# 워드 클라우드 만들기 02
import random
wordcloud = WordCloud(max_words=300, max_font_size=150,min_font_size=5,font_path='Typo_BabyHeartM.ttf',mask=mask,
width=1500, height=500, background_color='white', colormap = "gnuplot", random_state=30,
stopwords=stopwords)
wordcloud.generate_from_frequencies(counter)
plt.figure( figsize=(30,10), facecolor='orange')
title_font = {
'fontsize': 50,
'fontweight': 'bold'
}
plt.title("BTS", fontdict=title_font, loc='left', pad=20)
# matplotlib에서 옵션을 조정하여 보여주기
# 이미지를 부드럽게 처리함
# 레이아웃을 타이트하게 함
# 축을 보여주지 않음
plt.imshow(wordcloud, interpolation="bilinear")
plt.tight_layout(pad=0)
plt.axis('off')
plt.show()
# 워드 클라우드 만들기 03
import random
wordcloud = WordCloud(max_words=300, max_font_size=150,min_font_size=5,font_path='Typo_BabyHeartM.ttf',mask=mask,
width=1500, height=500, background_color='white', colormap = "gnuplot", random_state=30,
stopwords=stopwords)
wordcloud.generate_from_frequencies(counter)
plt.figure( figsize=(30,10), facecolor='orange')
title_font = {
'fontsize': 50,
'fontweight': 'bold'
}
plt.title("BTS", fontdict=title_font, loc='left', pad=20)
# matplotlib에서 옵션을 조정하여 보여주기
# 이미지 컬러 생성기를 이용해 마스크로부터 뽑아낸 이미지의 컬러를 이용해 워드 클라우드의 색을 조정함
plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation="bilinear")
plt.tight_layout(pad=0)
plt.axis('off')
plt.show()