[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)

  • September 17, 2019
%d bloggers like this: