推荐系统之基于word2Vec的推荐案例

基于ml-latest-small的基于TF-IDF的特征提取

词向量

  • 用向量来表示词语可以表示语义层面的含义
  • 如果用word2vec模型创建的词向量,两个词向量相似度比较高,说明这两个词是近义词
  • 词向量作用把含义相近的判断转换成向量的相似度计算
  • 使用gensim Word2Vec模块训练词向量模型
    • sentences = list(movie_profile[‘profile’].values) #准备所有用来训练词向量模型的文本
    • model = gensim.models.Word2Vec(sentences,window=3,min_count = 1,iter = 20) #参数1 文本 参数2 window 观察上下文关系的窗口长度 min_count 训练模型时要保留下的词语出现的频率 iter 迭代次数
  • 通过词向量模型找到topn相似词
    • model.wv.most_similar(positive=[‘要找到相似词的词语’],topn = 10)
  • 文档向量
    • from gensim.models.doc2vec import Doc2Vec,TaggedDocument
    • documents = [TaggedDocument(words,[movie_id]) for movie_id,words in movie_profile[‘profile’].iteritems()] #训练模型并保存 通过向量来表示一篇文档 一篇文档对应一个电影 向量的相似度代表 电影的相似度
    • model = Doc2Vec(documents,vector_size=100,window=3,min_count=1,workers=4,epochs=20)
    • words = movie_profile[‘profile’].loc[6]
    • inferred_vector = model.infer_vector(words) #传入电影的标签 找到电影文档所对应的向量
    • model.docvecs.most_similar([inferred_vector],topn=10) #找到最相似的n个向量

数据来源:
https://grouplens.org/datasets/movielens/
源码详见:
https://gitee.com/chenjialun16/recommendation_system

推荐系统之基于word2Vec的推荐案例
推荐系统之基于word2Vec的推荐案例
推荐系统之基于word2Vec的推荐案例
推荐系统之基于word2Vec的推荐案例
推荐系统之基于word2Vec的推荐案例
推荐系统之基于word2Vec的推荐案例