머신러닝

WordCloud Visualizing 스팸이메일 단어 워드클라우드

HooSL 2022. 3. 29. 09:55

https://dbfoot.tistory.com/173

 

Naive Bayes 나이브 베이즈와 Vectorizing 벡터라이징을 이용한 스팸 분류 예시

5,574개의 이메일 메시지가 있으며, 스팸인지 아닌지의 정보를 가지고 있다. 컬럼 : text, spam spam 컬럼의 값이 1이면 스팸이고, 0이면 스팸이 아닙니다. 스팸인지 아닌지 분류하는 인공지능을 만들

dbfoot.tistory.com

여기서 이어집니다.

 

from wordcloud import WordCloud, STOPWORDS

스팸만 들어있는 이메일의 내용을 가져와서 화면에 어떤 단어가 많이 나왔는지 시각화 하려 합니다.
데이터프레임에 있는 문자열을 하나의 문자열로 만들어 줘야합니다.

 

1. 각 행의 문자열을 리스트로 받아옵니다.

spam['text'].tolist()

 

2. 리스트에 들어있는 문자열을 join 함수 이용해서 하나로 만들어 줍니다.

words_as_one_string=''.join(spam['text'].tolist())

 

3. 워드 클라우드 만들기

워드클라우드를 사과모양으로 하기 위한 사진 파일

from PIL import Image

#첨부한 이미지를 가져옵니다.
img = Image.open('apple.jpg')

#이미지를 넘파이로 만들어줍니다.
img_mask = np.array(img)

#워드클라우드의 스탑워즈를 내 메모리에 생성해서 사용합니다
my_stopwords = STOPWORDS

my_stopwords.add('subject')
my_stopwords.add('us')
my_stopwords.add('one')

wc = WordCloud(background_color='white',mask=img_mask,stopwords=my_stopwords,max_words=100)

wc.generate(words_as_one_string)
plt.figure(figsize=(10,6))
plt.imshow(wc)
plt.axis('off')
plt.show()