본문 바로가기
카테고리 없음

03월 04일 네이버 뉴스 타이틀 워드 클라우드

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

대선이라 그런지 투표와 관련된 낱말이 많군!


20220304NaverNew.csv
0.06MB

활용한 데이터는 위 csv.

위 csv를 만들기 위한 python 명령어는 아래 링크 참고!

https://aigoamigo.tistory.com/entry/webScrapping8

 

매일의 네이버 뉴스 랭킹 데이터 가져오기

결과물 위 파일은 2022년 3월 4일 1~5위 뉴스 데이터 매일매일의 뉴스 기사 제목의 Wordcloud를 만들기위해 오늘의 뉴스 데이터를 웹스크래핑 했다. 아래 사이트에 접속해서 데이터를 가져옴! https://ne

aigoamigo.tistory.com


소스코드는 아래와 같다.

from konlpy.tag import Okt #품사 태깅 클래스 중 Okt 활용. 본래 Twitter 를 사용하려 했는데 Okt로 바뀜
from collections import Counter #각 단어의 사용 횟수를 알기 위함
from wordcloud import WordCloud #워드클라우드 만들기
import matplotlib.pyplot as plt #워드클라우드 보이기
import pandas as pd #데이터 프레임 활용

df = pd.read_csv("20220304NaverNew.csv") #어제자 네이버 뉴스 데이터 가져오기

lst_all_title = list(df.title) #데이터 프레임 df 중 title의 값만 가져와서 list로 만들기

all_title = " ".join(lst_all_title) #모든 뉴스 타이틀을 하나의 문자열로 바꾸기
tagging = Okt() #Okt 호출
count_nouns = Counter(tagging.nouns(all_title)) #모든 뉴스 타이틀 중 명사 사용 횟수 가져오기
over_1_nouns = {key:value for key, value in dict(count_nouns).items() if value >=2} #2회 이상 사용된 단어와 횟수 활용
stopwords = "최 주 더 뒤 령 보 것 못" #" "안의 낱말을 불용어로 지정
stopwords = set(stopwords.split(" ")) #집합 자료형으로 만들기
wordcloud = WordCloud(font_path="C:\Windows\Fonts\HMFMOLD.TTF", #워드 클라우드 설정
                      max_font_size=200,
                      background_color="#FFFFFF",
                      width = 800, height = 800,
                      stopwords=stopwords)
result = wordcloud.generate_from_frequencies(count_nouns) #워드 클라우드 생성

plt.figure(figsize=(20,20)) #워드클라우드 크기 지정
plt.axis("off") #x,y축 값 안보이게
plt.imshow(result) #워드클라우드 표시1
plt.show() #워드클라우드 표시2
반응형

댓글