프로젝트
[ 프로젝트 ] 무신사 데이터를 이용한 추천시스템_Word2vec
박찬영
2021. 6. 29. 17:59
저번 글에 이어서 무신사 데이터를 이용한 추천 시스템 프로젝트입니다.
계속해서 컨텐츠 메타 데이터를 이용합니다.
이번에는 Word2Vec 기법을 활용하여 컨텐츠 기반 추천 결과를 만들어보겠습니다.
데이터와 전처리 과정은 저번 글 TF_IDF를 참고해주세요.
이 역시 tag의 단어들을 이용하여 진행합니다.
word=[]
for words in DF.tag:
word.append(words)
word2vec=Word2Vec(sentences=word,window=5,sg=1,min_count=1,vector_size=100,epochs=100)
# 단어 벡터 평균구하기
def vectors(embedding):
word_embedding=[]
dec2vec=None
count=0
for word in embedding:
try :
# word에 해당하는 단어를 워드투백에서 찾아 리스트에 붙힘
# 100차원으로 형성됨
word_embedding.append(word2vec.wv[word])
count+=1
except : continue
#print('='*30,"word_embedding1","="*30)
#print(word_embedding)
word_embedding2=np.array(word_embedding)
#print('='*30,"word_embedding2","="*30)
#print(word_embedding2)
v=word_embedding2.sum(axis=0)
print(v)
if type(v)!=np.ndarray:
return np.zeors(100)
return(v/count)
wordvec=[vectors(x) for x in word]
# 1. 코사인유사도
w2v_sim=cosine_similarity(wordvec,wordvec)
# 2. 유클리디언 유사도
w2v_euc=euclidean_distances(wordvec,wordvec)
# 3. 맨하탄 유사도
w2v_man=manhattan_distances(wordvec,wordvec)