推荐系统之基于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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于word2vec的k-means聚类是一种常用的文本聚类方法,可以将相似的词语聚集到一起。下面是一个详细的代码案例,用于对给定的特征词进行聚类: ```python import numpy as np from gensim.models import Word2Vec from sklearn.cluster import KMeans # 特征词列表 feature_words = ["包装", "速度", "价格", "性价比", "品质", "态度", "发货", "售后", "客服"] # 加载预训练的word2vec模型 model = Word2Vec.load("path_to_word2vec_model") # 获取特征词的词向量 word_vectors = [model.wv[word] for word in feature_words] # 使用KMeans进行聚类 kmeans = KMeans(n_clusters=3, random_state=0) kmeans.fit(word_vectors) # 获取聚类结果 clusters = kmeans.labels_ # 打印聚类结果 for i in range(len(feature_words)): print(feature_words[i], "belongs to cluster", clusters[i]) # 获取每个聚类的相似词集合 similar_words = {} for i in range(len(feature_words)): cluster_label = clusters[i] if cluster_label not in similar_words: similar_words[cluster_label] = [] similar_words[cluster_label].append(feature_words[i]) # 打印每个聚类的相似词集合 for cluster_label, words in similar_words.items(): print("Cluster", cluster_label, ":", words) ``` 在上述代码中,首先加载了预训练的word2vec模型,然后获取了特征词的词向量。接下来,使用KMeans算法对词向量进行聚类,这里设置聚类数为3。最后,根据聚类结果将特征词分配到不同的聚类中,并打印出每个聚类的相似词集合。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值