워드 클라우드

허선우·2021년 6월 8일
0

PYTHON

목록 보기
12/17
post-thumbnail

지난번에 크롤링한 기사를 가지고 워드클라우드를 구현 해 보겠다.
워드 클라우드의 기능
워드 클라우드를 사용한 시각화
빈도 분석예제
감정분석,문서 요약(딥러닝) 도 가능

데이터의 구조적 관점 3가지

  1. 정형 데이터: 정형화된 스키마 구조, dbms에 저장 될 수 있는 구조
    예: oracle의 emp 테이블
  2. 비정형 데이터 : 웹스크롤링 기술로 수집해서 모은 데이터
    텍스트 데이터, 이미지 ,동영상
  3. 반정형 데이터: 데이터 내부에 데이터 구조에 대한 메타정보가 포홤된 데이터
    html . xml 문서
from wordcloud import WordCloud, STOPWORDS  #시각화, 데이터 정제를 위해 임포트
import matplotlib.pyplot as plt  # 그래프 그리는 모듈
from os import path     #  os 에 있는 파일을 파이썬에서 인식하기 위해서
import re   #  데이터 정제를 위해서 필요한 모듈 
import numpy as np  
from PIL import Image  # 이미지 시각화를 위한 모듈 

# 워드 클라우드의 배경이 되는 이미지 모양을 결정
#미국 사진 넘파이arrray로 변경
usa_mask = np.array(Image.open("c:/project/usa_im.png"))

# 워드 클라우드를 그릴 스크립트 이름을 물어봅니다. 
script = input( 'input file name : ')

# 워드 클라우드 그림이 저장될 작업 디렉토리를 설정 
d = path.dirname("c:/project/")

# 기사 스크립트와 os 의 위치를 연결하여 utf8로 인코딩해서 한글 텍스트를
# text 변수로 리턴한다.
text = open(path.join(d, "%s"%script), mode="r", encoding="utf-8").read()

# 너무 공통적으로 자주 나오는 단어를 제거하기 위한 작업 
#해당 파일에 있는 단어  re.sub로 제거 
file = open('c:/project/word.txt', 'r', encoding = 'utf-8')  
word = file.read().split(' ')  # 어절별로 분류
for i in word:
    text = re.sub(i,'',text)
# 워드 클라우드를 그린다. 
wordcloud = WordCloud(font_path='C://Windows//Fonts//gulim', # 글씨체
                      stopwords=STOPWORDS,   # 마침표, 느낌표,싱글 쿼테이션 등을 정제
                      max_words=1000, # 워드 클라우드에 그릴 최대 단어갯수
                      background_color='white', # 배경색깔
                      max_font_size = 100, # 최대 글씨 크기 
                      min_font_size = 1, # 최소 글씨 
                      mask = usa_mask, # 배경 모양 
                      colormap='jet').generate(text).to_file('c:/project/cnn_cloud.png')
                  # c 드라이브 밑에 project 폴더 밑에 생성되는 워드 클라우드 이미지 이름
  
plt.figure(figsize=(15,15)) 
plt.imshow(wordcloud, interpolation='bilinear')  # 글씨가 퍼지는 스타일 
plt.axis("off")

0개의 댓글