프로젝트

카카오톡 대화 내용 워드클라우드

환성 2023. 1. 13. 22:29
728x90

사이드 프로젝트로 간단하게 카카오톡 대화 내용을 불러와 워드클라우드를 만들어 보았다.

 

카카오톡 대화내용 가져오기

  • 대화방에서 메뉴 -> 대화내용 -> 대화 내보내기

 

 

대화내용을 가져올 시 [이름][시간][대화내용]의 형태로 저장이 되는데 내가 필요한 것은 [대화내용]만 필요하므로 전처리
과정이 필요하다.

replace 함수를 사용해 필요없는 내용들 및 불용어들을 처리해준다. 물론 replace를 쓰지 않고도 불용어 담겨져있는 text파일을 따로 열어서 진행하는 방법도 있다.

 

 

진행하던 도중 C:\Windows\Fonts에 있는 나눔 폰트 경로 문제인지 자꾸 에러가 뜨는 문제가 생겼었다.

OSError: cannot open resource 문제인데 stackoverflow 및 다른 웹사이트쪽에서 검색을 해보니 경로 문제이고 colab에 한글폰트를 직접 설치하는 방법도 있다고 나와있었다.

 

문제해결을 위해 다음 velog를 참조 하였다.

https://velog.io/@heiswicked/%EC%84%B8%ED%8C%85%EC%9D%B4-%EB%B0%98%EC%9D%B4%EB%8B%A4-Google-COLAB-%ED%95%9C%EA%B8%80%ED%8F%B0%ED%8A%B8%ED%8E%B8

 

세팅이 반이다_ Google COLAB - 한글폰트편

썸네일 이미지 출처: https://medium.com/analytics-vidhya/get-more-out-of-google-colab-5bf9d9519a56 쉽게 말하면, 주피터 노트북을 클라우드 형태로 쓸 수 있도록, Google이 제공하는 서비스이다.

velog.io

 

이후 colab에 직접 한글 나눔 폰트를 설치한 뒤 사용하였다.

첫 셀에 이 코드를 복사 붙여넣기를 한 뒤, 아래의 코드를 실행하면 문제가 없다.

!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf

 

다음 코드는 카카오톡 대화내용에 대한 워드클라우드 작성 소스 코드이다.

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

font_path = '/usr/share/fonts/truetype/nanumfont/NanumGothic.ttf' 
text = ''
with open("/KakaoTalk_20230113_group.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()
    for line in lines:
        if '] [' in line:
            text += line.split('] ')[2].replace('ㅋ', '').replace('ㅠ', '').replace('ㅜ', '').replace('사진\n', '').replace(
                '이모티콘\n', '').replace('삭제된 메시지입니다', '').replace('#','')
print(text)

wordcloud = WordCloud(font_path, background_color = 'white', width = 600, height = 400)
wordcloud.generate(text)
wordcloud.to_file('/kakaotalk_wordcloud.png')

 

출력 결과 :