working_helen

[데이터 전처리] EDA 본문

deep daiv./추천시스템 toy project

[데이터 전처리] EDA

HaeWon_Seo 2023. 8. 10. 11:44

추천시스템 구축 전 키워드의 빈도수와 분포를 확인하기 위한 기초적인 EDA 과정을 진행했다.

 

1. 키워드별 빈도수 확인

2. 워드 클라우드


1. 키워드별 빈도수 확인

- '키워드'와 '책소개 키워드' 각각에 대하여 등장하는 모든 키워드에 대해 빈도수를 측정한다.

- 가장 빈도수가 높은 키워드는 무엇인지, 빈도수가 현저히 적은 키워드는 무엇인지 확인한다.

- CBF 알고리즘의 경우 데이터 간 키워드 중복 횟수 (키워드의 빈도수 count)가 너무 적은 경우 추천시스템의 성능이 떨어질 수 있다. 따라서 해당 키워드를 제외하거나 상위 키워드로 통합하는 과정이 필요하다.

 

Counter 클래스
- 리스트나 셋에 등장하는 각 원소의 개수를 셀 때 사용
- 각 원소을 키로, 개수를 value로 하는 dictionary를 출력
- most_common(n) : 상위 n개 요소 출력, default는 전체를 내림차순 출력

from collections import Counter
dictionary = Counter(list 혹은 set)

 

 

 

2. 워드 클라우드 WordCloud

Counter로 구한 키워드별 빈도수 데이터를 워드클라우드로 시각화해본다.

from wordcloud import WordCloud
import matplotlib.pyplot as plt


# 워드클라우드(wc) 객체 생성
font = 폰트 파일 저장 경로
wc = WordCloud(font_path=font, background_color=배경색, width=너비, height=높이,
               max_font_size = 가장 빈도수가 높은 단어의 폰트 크기, ,,,)

# wc 적용 = 사용할 빈도수 데이터 지정
cloud = wc.generate_from_frequencies(word_count)

# wc 출력
plt.imshow(cloud)
plt.axis("off")
plt.show()

# wc 파일로 저장
wc.to_file('워드클라우드.png')

 

 

 

 

 

Jupyter Notebook