(2021년 6월 23일 기준) 크롤링을 통해 수집한 csv에서 '일반'/'고유' 명사를 추출하여 워드 클라우드 생성
from collections import Counter #데이터의 개수를 정리할 수 있는 모듈
from konlpy.tag import Kkma #형태소 분석기 호출
from konlpy.utils import pprint #유니코드 문자 출력
from selenium import webdriver #브라우저 제어
import pandas as pd #결과값을 데이터프레임 객체로 저장하기 위해 이용
new = pd.read_csv('C:/Users/idol.csv')
#csv 파일 불러오기 (위치 임의 지정)
kkma = Kkma()
nouns_list=[] #nouns_list생성
for item in new['text'][:100]: #[ ]안의 숫자에 따라 분석 단어 개수 변화
sentence_list = kkma.sentences(item)
for sentence in sentence_list:
nouns = kkma.pos(sentence) #sentence의 형태소 분석
for pos in nouns:
if pos[1] == 'NNG' or pos[1] == 'NNP': #일반 명사와 고유 명사일 경우
nouns_list+=[pos[0]] #nouns_list에 추가
count = Counter(nouns_list) #list 내 항목명과 항목별 개수
ignore = ['경자년','아이','돌','고','돈','표','룸','돌이','은','정형','기자','원','김','이','때','경우','의',
'을','설문','현','세','유','영','사','형','미','정','로','차','이번','주니어','지','사이',
'전','오후','올해','라','훈','돌과','위','모습','점','남','윤','뒤','후','새','엑스',’민’,
'박','에이','티','지금','시대','투비','앞','지난해','속','달','이스트','주','듀스',
'코','안','연지','정도','분','인','면','가운데','과','대부분','모','연','아이즈','슈퍼',
'리','들','엠','투','여','이후','장','콘','화','황지','레드','벨벳','레이션','오','간','노',
'오늘','순','마','이하','하다','박지','랜드','뉴','누','니트','도','반면','드래곤','반','호','층',
'배','히','대','선','빅','스트로','마무','론','만큼','동','해당','해','이자','요즘','사친',
'강','예','과거','운','런','기','임','그때','그동안','세윤','키즈','우','피','가','아이오','산','부','조',
'음','황','남창','이날','물론','중이','총','한편','씨','진석','경','토','인피','등','꼴','보','단','능',
'처','사가','앤','나','소다','히트','최','이즈','태','광','효','제이','곳','당','사의','식','인은','편',
'황민','중인','동방','신기','왕','홍','라도','양은','내가','보우','징','종','생','만','찬','막','예인','애',
'구','돈은','레','콜','역','님','백','디','파','감','소','하면','방','급','군','정일','직','하성','어로','시',
'수','참가자','중','예전'] #제거할 불필요한 단어 및 표현 리스트
for word in ignore:
if word in count:
del count[word] #위에서 정한 불필요한 단어 및 표현 리스트에 속한 단어 및 표현을 제거
from wordcloud import WordCloud
import matplotlib.pyplot as plt #그래프 그리기
font_path = 'C:\Windows\Fonts\HMKMRHD.TTF' #글꼴 : 휴먼둥근헤드라인체
wordcloud = WordCloud(width = 600,height = 600, font_path = font_path)
wordcloud = wordcloud.generate_from_frequencies(count) #단어 출현 빈도에 따라 크기 변화
array = wordcloud.to_array()
fig = plt.figure(figsize=(50, 50))
plt.imshow(array, interpolation="bilinear")
plt.show() #word cloud 도출
※ 오류 관련 댓글은 환영
'파이썬' 카테고리의 다른 글
[Topic Modeling] 토픽 모델링을 통해 기사 주제 분석하기 (0) | 2021.07.03 |
---|---|
[Crawling] Xpath를 이용한 인터넷 기사 수집하기 (0) | 2021.07.03 |