[개발일지]3일차 스파르타코딩클럽 파이썬 혼자놀기 - 워드클라우드 만들기 [힙한취미코딩]
오늘 생성된 결과물
파이썬으로 텍스트파일 읽고 쓰는방법
읽기
with open("test.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
print(line)
쓰기
with open("test.txt", "w", encoding="utf-8") as f:
f.write("각 줄마다 번호를 적은 파일입니다.\n")
for i in [1,2,3,4,5]:
f.write(f"이것은 {i}번째 줄입니다.\n")
with open("test.txt", "w", encoding="utf-8") as f:
f.write("안녕, 스파르타!")
워드클라우드 만들기
텍스트파일 준비하기
PC카톡에서 채팅방을 열고 메뉴 -> 대화내용 -> 대화내용 내보내기로 TXT 파일 준비
텍스트파일 읽기
각 라인을 읽어 text 변수에 저장하기
text = ""
# 파일 이름은 맞게 바꿔주세요!
with open("kakaotalk.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
text+=line
print(text)
워드클라우드 설치 및 코딩
ㅇ패키지 설치
wordcloud 패키지 설치하기.
ㅇ한글폰트 고르기
font_path = 'C:\Windows\Fonts\malgunbd.ttf'
워드클라우드로 이미지 만들기
from wordcloud import WordCloud
text = ""
with open("kakaotalk.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
text += line
font_path = 'C:/Windows/Fonts/CoreGTM3.otf'
wc = WordCloud(font_path=font_path, background_color="white", width=600, height=400)
wc.generate(text)
wc.to_file("result.png")
데이터 클렌징
데이터 클렌징이란?
- 전처리(preprossessing) 과정의 하나로, 자료에서 불완전하거나, 비정확하거나, 관련 없는 부분을 찾아 삭제하거나 수정하는 것을 말합니다. 테이블에 빈 칸이 있거나, 단위가 잘못되었거나, 오타가 있거나 등등의 경우에 원하는 결과를 얻을 수 없기 때문에 분석하기 전에 미리 처리를 해주는 것이죠. 우리의 경우에는 내보내기한 카카오톡을 열어보면 날짜, 시간, 프로필 이름 등의 무의미한 부분이 반복적으로 나타나기 때문에 이것들을 지워주어야 더 흥미로운, 실제로 사람들이 사용한 단어를 강조할 수 있습니다.
기본 데이터 클렌징
from wordcloud import WordCloud
text = ""
# 파일 이름은 맞게 바꿔주세요!
with open("kakaotalk.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
text += line
print(text)
# font_path = 'C:/Windows/Fonts/CoreGTM3.otf'
#
# wc = WordCloud(font_path=font_path, background_color="white", width=600, height=400)
# wc.generate(text)
# wc.to_file("result.png")
워드클라우드 플랫폼 클렌징
from wordcloud import WordCloud
text = ""
# 파일 이름은 맞게 바꿔주세요!
with open("kakaotalk.txt", "r", encoding="utf-8") as file:
lines = file.readlines()
for line in lines:
if '] [' in line:
text += line.split('] ')[2].replace('ㅋ','').replace('ㅠ','').replace('ㅜ','').replace('사진\n','').replace('이모티콘\n','').replace('삭제된 메시지입니다','')
font_path = 'C:/Windows/Fonts/CoreGTM3.otf'
wc = WordCloud(font_path=font_path, background_color="white", width=600, height=400)
wc.generate(text)
wc.to_file("result.png")
원하는 모양으로 만들기
MASK 이미지를 준비해서 만든다.
from PIL import Image
import numpy as np
mask = np.array(Image.open('cloud.png'))
wc = WordCloud(font_path=font_path, background_color="white", mask=mask)
wc.generate(text)
wc.to_file("result_masked.png")
Author And Source
이 문제에 관하여([개발일지]3일차 스파르타코딩클럽 파이썬 혼자놀기 - 워드클라우드 만들기 [힙한취미코딩]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@memilmook/개발일지3일차-스파르타코딩클럽-파이썬-혼자놀기-워드클라우드-만들기-힙한취미코딩저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)