Twitter Konlpy wordcloud
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
from konlpy.tag import Twitter
from collections import Counter
from wordcloud import WordCloud, STOPWORDS # 워드 클라우딩 모듈
import matplotlib.pyplot as plt # 시각화 모듈
from os import path
import re # 텍스트 파일을 불러오기 위한 open, path 하기 위해 os 임포트
from databases import *
from sqlalchemy import func
import csv
def export():
Campaign = Base.classes.review
q = session.query(Campaign)
str_list = []
#for record in q.all():
for record in q.order_by(Campaign.id.desc()).limit(50000):
str_list.append(getattr(record, 'content'))
nlp = Twitter()
nouns = nlp.nouns(' '.join(str_list))
count = dict( (x,y) for x,y in Counter(nouns).most_common(300) )
print(count)
wordcloud = WordCloud(font_path='./NanumGothic.ttf', # 폰트 위치
stopwords=STOPWORDS, background_color='white', # STOPWORDS 옵션은 공백/줄바꾸기 기준으로 단어를 추출해 냅니다
width=1000, # background_color는 워드클라우드 배경색을 나타냅니다. 'black'으로하면 검은색이 됩니다.
height=800, # width와 height는 워드클라우드의 크기를 지정해 줍니다.
colormap='PuRd').fit_words(count) # colormap은 워드 색깔을 지정해주는데 첨부한 색감표를 사용하시면 됩니다. generate() 메소드는
# 워드 클라우드를 생성합니다
plt.figure(figsize=(13,13)) # matplotlib의 pyplot을 figsize로 생성합니다
plt.imshow(wordcloud) # 워드 클라우드 이미지를 pyplot에 띄웁니다
plt.axis("off") # pyplot에 x, y축 표시를 없앱니다.
#plt.show()
plt.savefig('report.png', bbox_inches='tight')
plt.close()
if __name__ == "__main__":
export()