[书蕴笔记-2]使用word2vec模型迭代获取标签

本文介绍如何利用word2vec模型迭代获取书籍标签,通过选取高频词,计算其最接近的词汇并迭代,以此扩展标签集。讨论了不同参数的影响,包括迭代次数和选取的高频词数量,并指出需要改进的地方,如优化停用词处理和迭代策略。
摘要由CSDN通过智能技术生成

使用word2vec模型迭代获取标签

前言

整体索引在此 :书蕴——基于书评的人工智能推荐系统

之前把书评预处理并将每本书训练出了word2vec模型,本篇博客针对如何提取书籍的标签具体展开描述。

思路

索引篇也提到了,主要是通过word2vec模型,找出前a的高频词放入new_word_set,然后计算new_word_set中所有词距离最近的前5个词,并把这5个词也加入new_word_set中,重复迭代获取标签。其中的数字可以修改,以下列出不同参数的不同效果。具体步骤与伪码以及源码如下:

步骤

  1. 读取某本书的word2vec模型
  2. 该模型下vocabulary取频率最高的前3个单词放入到new_word_set中
  3. 使用该书的word2vec模型,找到new_word_set集合中每一个词距离最近的5个词,将找到的词放入temp_word_set和word_set集合中
  4. 清空new_word_set,将temp_word_set中所有的词放入new_word_set,清空temp_word_set
  5. 重复步骤3,4,重复迭代3次(或者是迭代到词的数量为某一个值时)。

伪码

def 提取标签(模型路径, new_word_set):
	for i in range(3):
		for word in new_word_set:
			获取和word距离最近的前5个词
			将这5个词加入temp_word_set
		word_set= word_set并集temp_word_set
		new_word_set清空
		new_word_set的内容更新为temp_word_set的内容
		temp_word_set清空
	返回word_set集合

源码

因为我把迭代获取标签和计算书籍的距离放在一个py文件里,所以这里只贴提取标签的代码。
这个代码很多参数需要重新调整,才能获得比较好的效果。
下一篇会结合整体的代码结合参数调整,对比效果综合总结一下。

def extract_tag_set(model_name, new_word_set):
    word2vec_base = '书评\\word2vec\\model\\'
    model = Word2Vec.load(word2vec_base + model_name)  # type: Word2Vec
    word_set = set()  # 结果集
    # new_word_set = {"阿米尔"}  # 新词集
    temp_word_set = set()  # 关联词集
    for i in range(3):
        for word in new_word_set:
            top5 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值