실습에 필요한 movielens 데이터 파일을 다운로드합니다
pandas를 이용하여 csv파일을 읽습니다. 데이터 처리를 쉽게 하기 위해서 genres 데이터 저장 형태를 변경합니다.
영화 genre 정보에 tf-idf를 적용하여 텍스트 정보를 벡터 형태로 변환합니다.
tf-idf를 실행하여 얻을 결과를 조금 더 자세히 분석해 보겠습니다.
get_feature_names() 함수를 이용하여 feature vector로 변화하는데 쓰이는 단어들의 갯수와 종류를 살펴 보겠습니다.
feature vector로 뽑기 위해 사용되는 단어들의 리스트를 bag of words라고 부릅니다.
tf-idf를 통해 변화된 피쳐 벡터 하나를 보겠습니다.
tfidf_matrix는 각 영화(문서)에 대해서 bag of words에 해당하는 각 단어의 tf-idf 값을 벡터 형태로 저장하고 있습니다.
첫번째 영화 genre의 tf-idf 값은 다음과 같습니다.
cosine 유사도를 이용하여 영화간의 유사성을 계산합니다
코사인 유사도 결과는 대각선(diagonal line, row/column값이 동일)의 값은 모두 1(자기 자신과의 유사도)이며 대칭행렬(symmetric matrix)입니다
(대칭행렬은 M(a, b) = M(b, a)인 행렬을 말합니다)
cosine 유사도를 이용하여 가장 유사한 영화 n개를 추천하는 함수를 정의합니다.
추천된 영화 제목을 출력합니다.
아래의 영화에 대해서 추천 영화를 확인해 보세요.
* idx = 9708, Incredibles 2 (2018)
* idx = 8068, Misérables, Les (2012)
* idx = 183, Before Sunrise (1995)
토론이 없습니다