[ 워드 클라우드 ] 기리보이의 띵곡들은 어떤 단어가 많이 나올까?

2021. 7. 14. 06:24·Archive/Develop
728x90
반응형

최근 데이터 분석 공부를 하면서 워드 클라우드를 만들어보고 있다.

공부하면서 기리보이 노래를 자주 듣는데,

그냥 갑자기 이 노래 가사들 중 가장 많이 나오는 단어가 뭘까, 하는 생각을 했다.

 

기리보이 감성에 걸맞는 단어를 찾아보러 가자!

 

 

 

우선, 나는 주피터노트북 환경에서 진행했음을 알린다.

 

 

 

먼저 해야할 일은 기리보이 노래 가사 데이터를 모으는 작업이다.

 

이 작업이 제일 시간이 오래 걸렸다.

띵곡 엄선 시간이다!

 

 

치명적인 앨범 Ⅲ 에서는

 

제설, 와츠롱, 이때다, 거지

 

이렇게 네곡을 뽑았고,

추가적으로 사랑이었나봐, 우리 서로 사랑하지는 말자, 하루종일, 키보드, 술자리, 그 정도 쯤이야

를 추가해 총 10곡의 가사를 메모장에 저장했다.

 

 

 

 

 

 

자 이제 본격적으로 시작한다!

 

 

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

 

 

우선 워드클라우드를 만들기 위한 여러가지 라이브러리를 가져온다.

 

 

lyrics = open('./song.txt', 'r', encoding='utf-8-sig')
lyrics = lyrics.read()
lyrics

 

그리고 저장한 파일을 읽어서 출력해보자.

 

 

 

음,,, \n 이 상당히 거슬린다.

이 \n 을 공백으로 치환하고 result 라는 변수에 다시 저장하자.

 

 

 

result = lyrics.replace('\n',' ')
result

 

 

 

 

 

그래 이거지!

 

 

이제 워드클라우드 이미지를 만들어보자.

 

 

마스크 할 이미지는 아래 이미지로 했다.

 

 

 

 

 

 

 

import matplotlib.font_manager as fm

for f in fm.fontManager.ttflist:
    if 'Gothic' in f.name:
        print(f.fname)

 

위 코드로 폰트가 어떤 위치에 있는지 파악한다.

 

 

 

 

굉장히 많이 나오지만, 나는 처음에 출력된 malgunsl.ttf 이걸 선택하겠다.

 

가사가 전부 영어라면 필요없지만,

한글가사가 있기 때문에 이 작업을 거쳐줘야한다.

 

 

mask = np.array(Image.open('./giri.jpg'))
font_path = 'C:\WINDOWS\Fonts\malgunsl.ttf'
wc = WordCloud(font_path=font_path, background_color="pink", mask=mask)
wc.generate(result)

 

 

아까 선택한 사진으로 넘파이 배열을 만들어주고(마스크역할)

wc(word cloud) 를 생성해준다.

 

 

f = plt.figure(figsize=(50,50))
plt.axis("off")
plt.imshow(wc)
f.savefig('./result.png')

 

 

이제 보고 저장하면 된다.

 

 

나는 아래와 같은 결과가 그려졌다.

 

 

 

엄청나게 많은 데이터를 가지고 한 것이 아니라서 크게 의미있는 데이터는 아니지만,

너의, 난, 내, 나의 등등 너와 나의 이야기를 가지고 많이 가사를 쓰나보다.

 

 

 

재밌었다!

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ Python ] 이것이 코딩테스트다! | 당장 좋은 것만 선택하는 그리디  (0) 2021.08.02
[ Python ] Python 의 Web Framework | Django 의 구조 | Django ORM  (0) 2021.07.16
[ Python ] 그래프를 그려 데이터 기반의사 결정을 해보자!  (0) 2021.06.27
[ Python ] 상하좌우 탐색  (0) 2021.06.23
[ Python ] 파이썬 에라토스테네스의 체  (0) 2021.06.22
'Archive/Develop' 카테고리의 다른 글
  • [ Python ] 이것이 코딩테스트다! | 당장 좋은 것만 선택하는 그리디
  • [ Python ] Python 의 Web Framework | Django 의 구조 | Django ORM
  • [ Python ] 그래프를 그려 데이터 기반의사 결정을 해보자!
  • [ Python ] 상하좌우 탐색
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    자바스크립트 API
    Django
    장고
    비박스
    백준 문제풀이
    oracle db
    백준 풀이
    자바스크립트 객체
    Git
    자바스크립트
    오라클
    javascript
    카카오 100일 프로젝트
    코드업 파이썬 기초 100제
    파이썬 기초
    백준
    Oracle
    파이썬 백준
    Python
    파이썬
    코드업 기초
    보안뉴스
    백준 파이썬
    docker
    Codeup
    파이썬 알고리즘
    C++
    코드업
    파이썬 기초 문제
    파이썬 문제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ 워드 클라우드 ] 기리보이의 띵곡들은 어떤 단어가 많이 나올까?
상단으로

티스토리툴바