워드 클라우드

구글 트렌드 인기검색어를 이용한 워드 클라우드

1. feedparser

  • 파이썬에서 Atom 및 RSS 피드를 해석
  • https://pypi.org/project/feedparser/

2. 구글 트렌드

  • https://trends.google.co.kr/trends/trendingsearches/daily?geo=KR
  • RSS : https://trends.google.co.kr/trends/trendingsearches/daily/rss?geo=KR
#!pip install feedparser
import feedparser
import pandas as pd


key_word = []
hit = []
feed = feedparser.parse('https://trends.google.co.kr/trends/trendingsearches/daily/rss?geo=KR')
#print(feed)

for post in feed.entries :
  key_word.append(post['title']) 
  hit.append(str(post['ht_approx_traffic'])[:-1].replace(",","")) # 콤마 및 숫자 뒤 + 제거


df = pd.DataFrame(data = zip(key_word, hit))
df.columns = ['키워드', '클릭수']
df['클릭수'] = df['클릭수'].apply(pd.to_numeric)
#df.info()
#df = df.T
#df2 = df.rename(columns=df.iloc[0])
#df2 = df2.drop('키워드')
#df2 = df2.apply(pd.to_numeric)
#df2 = df2.T
#df2['클릭수']
df

image

3. 나눔 폰트 설치

  • 아래 명령어 실행 후 런타임 다시 시작
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf

4. WordCloud

  • https://amueller.github.io/word_cloud/
import matplotlib.pyplot as plt
from wordcloud import WordCloud

wc = df.set_index("키워드").to_dict()["클릭수"] # 데이터 프레임을 딕셔너리로 변경
#print(wc)
plt.rc('font', family='NanumBarunGothic')
word_cloud = WordCloud(font_path = "NanumBarunGothic", width = 400, height = 400, max_font_size=300, background_color = 'white').generate_from_frequencies(wc) 
plt.figure(figsize=(7,7))
plt.title('[구글 트렌드 인기급 상승 검색어]', fontsize=20)
plt.imshow(word_cloud)

ax = plt.gca()
ax.axes.xaxis.set_visible(False)
ax.axes.yaxis.set_visible(False)
#plt.axis('off')

image

import matplotlib.pyplot as plt
from wordcloud import WordCloud
import numpy as np
from PIL import Image

img = Image.open('/content/drive/MyDrive/Colab Notebooks/one.jpg')
imgArray = np.array(img) # 이미지의 각 셀을 수치로 변환
#print(imgArray)
wc = df.set_index("키워드").to_dict()["클릭수"] # 데이터 프레임을 딕셔너리로 변경
#print(wc)
plt.rc('font', family='NanumBarunGothic')
wordCloud = WordCloud(font_path = "NanumBarunGothic", width = 400, height = 400, max_font_size=300, mask = imgArray, background_color = 'white').generate_from_frequencies(wc) 

plt.figure(figsize=(7,7))
plt.imshow(wordCloud)
plt.axis('off')

image

카테고리:

업데이트:

댓글남기기