본문 바로가기
데이터 분석

워드클라우드 만들기 기초 활용!

by 너구리선생님 2022. 3. 3.
반응형

이번에 Python으로 만든 워드클라우드는 띄어쓰기 포함, 18884개의 음절로 이루어져있는 대한민국 헌법 말뭉치를 활용했다.

 

완성한 워드클라우드는 아래와 같음!

어떤 단어가 많이 나왔는지 볼 수 있군!


워드클라우드를 만들 때 가장 오랜 시간이 걸렸던 것은... KoNLPy 라이브러리 설치였다.

왜 계속 설치가 안되는지...

 

아래의 블로그를 참고하여 해결함!

블로그 참고(https://m.blog.naver.com/kiddwannabe/221795961189) 1,2번 블로그 글 Jpype 설치 참고


작성한 소스코드는 아래와 같음!

from konlpy.tag import Okt #품사 태깅 클래스 중 Twitter 불러오기 / https://konlpy.org/ko/latest/morph/#comparison-between-pos-tagging-classes 참고
from konlpy.corpus import kolaw #말뭉치 중 kolaw
from collections import Counter #개수 일종의 dic 형태로 세기
from wordcloud import WordCloud #워드 클라우드 이미지 만들기
import matplotlib.pyplot as plt #만들어진 이미지 보이기

sample_text = kolaw.open('constitution.txt').read() #말뭉치 kolaw 활용하기
tagging = Okt() #Okt 품사 태깅 클래스 활용

noun = tagging.nouns(sample_text) #명사 출력
count = Counter(noun) #명사별 개수 출력

wordcloud = WordCloud(font_path="C:\Windows\Fonts\HMFMOLD.TTF",
                      max_font_size=200,
                      background_color="#FFFFFF",
                      width = 800, height = 800)
#font_path : 한글 폰트 위치 잡기
#max_font_size : 가장 큰 폰트 크기
#background_color : 배경색 설정
#width, heigth : 가로 새로 크기 조정
#stopwords : 리스트 형태로 된 불용어(인터넷 검색 시 검색 용어로 사용하지 않는 단어) 설정
    #stopwords 만들때 Tip
    #stopwords = "아 이 우 에 오"
    #stopwrods = set(stopwords.split(" ")) # set을 활용해 { } 형태로 바꾸기
    
result = wordcloud.generate_from_frequencies(count) #워드클라우드 이미지 만들기
plt.figure(figsize=(20, 20)) # 크기 조정이 이미지 그리기 전에 있으면 안됨
plt.imshow(result) #이미지 보이기
plt.axis('off') #x, y축 없애기
plt.tight_layout() #이미지 크기 딱 맞게 조정
plt.show() #이미지 보이기
plt.savefig("first_word.png") #first_word.png 로 이미지 저장

다음번에는 웹스크래핑과 연계하여 그날그날의 인터넷 뉴스 헤드라인 워드클라우드도 만들어봐야겠음!!

반응형

댓글