[Python] 한글 워드 클라우드 만들기 Korean WordCloud Code
KoNLPy의 형태소분석기를 활용하여 형태소분석을 하고, 워드클라우드를 만들 수 있는 명령문이다.
from konlpy.tag import Hannanum
from konlpy.tag import Kkma
from collections import Counter
import pytagcloud
형태소분석기 불러오기
kkma = Kkma()
hannanum = Hannanum()
데이터 불러오기
f = open(r'C:/Users/yghga/bamboo.txt', encoding= 'utf8')
Data = f.read()
품사 태깅 (POS Tagging)
<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">nlp = Hannanum()
nouns = nlp.nouns(Data) #명사만 불러오기
nouns #명사 확인
pos = nlp.pos(Data) #포스태깅 해보기
pos #포스태깅 결과 확인 </pre>
추가로, 한 글자 단어나 불용어를 제거하는 명령어를 중간에 넣어줍니다.
# 한 글자 단어는 제거하기
A = [a for a in nouns if len(a) > 1]
A
counter를 통해서 상위 200개 키워드들을 정렬해보자.
count = Counter(A)
new = count.most_common(200)
new
Pandas를 활용해서 Dataframe 형식으로 만들어보자.
import pandas as pd
from pandas import DataFrame
df #데이터프레임 확인 (단어-빈도)
본격적으로 워드클라우드 만드는 명령문은 아래와 같다. 중간중간에 있는 숫자들을 바꿔주면서 커스터마이징 하면 된다. 마지막에 fontname에서 한글의 경우 여러 가지 작업이 필요하다.
tag2 = count.most_common(70)
taglist = pytagcloud.make_tags(tag2, maxsize=50)
pytagcloud.create_tag_image(taglist, 'wordcloud.jpg', size=(600, 600), fontname='Korean', rectangular=False)