首先训练文本train_text.txt文件内容如下:

优惠的政策和政府对产业发展的重视也吸引了更多医美企业来成都寻觅机遇。2018年成都医美机构的数量一度飙升至407家,较之前一年激增131家
中国医学科学院整形外科医院也选择于2018年将首家京外分院——成都八大处医疗美容医院落地蓉城。不断增长的营收数据没有让人失望
成都八大处医疗美容医院院长唐勇告诉记者,在因新冠肺炎疫情停业近40天的情况下,该院2020年的营收相比2019年仍实现了约30%的增长
成都打造‘医美之都’的过程中,优惠的政策、聚合的资源、配套的宣传措施等为医美行业造起了‘势’,对行业发展起到积极的推动作用,城市产业氛围十分友好
实际上,随着“颜值经济”不断走热,医美逐渐成为部分当代中国人的“刚需”,其中恢复期短、风险较低的轻医美最受欢迎
出于对安全性、可靠性等因素的考虑,大量消费者自然而然地流动到医美资源集聚的城市“求美”,“医美旅游”悄然兴起
成都头部医美机构之一、四川华美紫馨医学美容医院2020年整体营收约6亿元。该院总经理薛红介绍,医院每年治疗人数中约20%都是专程前来的外地消费者
尤其最近几年,这部分消费者数量增长很快,来自甘肃、青海、云南、贵州等各个省份的都有

1. 训练word2vec模型

直接上代码,细节请参考代码内注释:

from gensim.models import Word2Vec
import multiprocessing
from torch.utils.data import IterableDataset, DataLoader
import jiebaclass MyIterableDataset(IterableDataset):def __init__(self, file_path):super(MyIterableDataset, self).__init__()self.file_path = file_path  # 这里为文本数据的目录def parse_file(self):with open(self.file_path, 'r') as file_obj:for line in file_obj:line: list = list(jieba.cut(line))  # 直接分词yield line  # 这里yield返回一句分词后的结果def __iter__(self):return self.parse_file()  # 这一步非常重要,每一次迭代IterableDataset,都只会调用一次这个函数,注意这里是returndef train_word2vec(iter_data):model = Word2Vec(iter_data, vector_size=256, min_count=1, window=5, epochs=7,workers=multiprocessing.cpu_count())  # 参数这个自己设置吧# model.save("word2vec_model.bin")  # 保存模型# word2vec_model.wv.index_to_key[2] -> tuplereturn modelif __name__ == '__main__':dataset = MyIterableDataset('train_text.txt')dataloader = DataLoader(dataset)word2vec_model = train_word2vec(dataloader)  # 这个是训练完成的model# 但是我们看word2vec_model.wv.key_to_index,可以看到key是dict的形式,接下来我们把dict转为正常的字符串即可word2vec_model.save("word2vec_model.bin")

2. word2vec模型将key中的dict转为str

新建一个文件,然后代码如下:

from gensim.models import Word2Vec
from tqdm import tqdm
from gensim import utils
from numpy import float32 as REAL
import gensimdef word2vec_to_dict(word2vec_model) -> dict:word2vec_dict = {}for index in tqdm(word2vec_model.wv.index_to_key):key = index[0]value = word2vec_model.wv.get_vector(index)word2vec_dict[key] = valuereturn word2vec_dictdef my_save_word2vec_format(save_file_name, word2veckeyedVector, binary=True):total_vec = len(word2veckeyedVector.index_to_key)  # 全部的单词数with utils.open(save_file_name, 'wb') as fout:print(total_vec, word2veckeyedVector.vector_size)fout.write(utils.to_utf8("%s %s\n" % (total_vec, word2veckeyedVector.vector_size)))# store in sorted order: most frequent words at the topfor key in word2veckeyedVector.index_to_key:value = word2veckeyedVector.get_vector(key)if binary:value = value.astype(REAL)fout.write(utils.to_utf8(key) + b" " + value.tobytes())else:fout.write(utils.to_utf8("%s %s\n" % (key, ' '.join(repr(val) for val in value))))if __name__ == '__main__':word2vec_model: Word2Vec = Word2Vec.load('word2vec_model.bin')  # 读取模型d = word2vec_to_dict(word2vec_model)  # 得到词库每个词的embeddingm = gensim.models.keyedvectors.Word2VecKeyedVectors(vector_size=256)m.add_vectors(list(d.keys()), list(d.values()))my_save_word2vec_format(save_file_name='word2vec_format.txt', word2veckeyedVector=m)# 测试一下my_test_model = Word2Vec().wv.load_word2vec_format('word2vec_format.txt', binary=True) # 这一行读取模型print("相似度计算:", my_test_model.most_similar(['优惠', '成都']))

gensim流式训练word2vec模型,不需要一次性加载完整数据集相关推荐

  1. 使用gensim训练word2vec模型

    代码如下: from gensim.models import Word2Vec, word2vec import jieba import multiprocessing# 1. 停用词表 def ...

  2. 是否有可能从python中的句子语料库重新训练word2vec模型(例如GoogleNews-vectors-negative300.bin)?

    是否有可能从python中的句子语料库重新训练word2vec模型(例如GoogleNews-vectors-negative300.bin)? http://www.voidcn.com/artic ...

  3. 多进程使用wikimedia数据训练word2vec模型

    语料库下载: 请参考:https://blog.csdn.net/weixin_35757704/article/details/115614112 1.训练Word2vec模型代码 单单使用gens ...

  4. 完美解释:wenet-流式与非流式语音识别统一模型

    Unified Streaming and Non-streaming Two-pass End-to-end Model for Speech Recognition[1] ,本文以该篇论文为主线, ...

  5. 使用中文维基百科训练word2vec模型的最新方法!

    网上看了很多其他博客,发现有些部分都太老旧了,以至于现在套用都错误百出...这里总结了一下使用中文维基百科训练word2vec模型的最新方法. 参考链接: https://blog.csdn.net/ ...

  6. 使用中文维基百科训练word2vec模型

    一.下载原始数据 数据下载地址:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2 ,或者在这 ...

  7. 基于变色龙认证树的云边端协同流式数据完整性验证模型

    摘要 物联网环境中的终端设备会产生大量的流式数据,如环境感知数据.工业控制数据.人体健康数据等,这些数据全部上传到云服务器会造成巨大的网络负担,云边协同的计算方式能够极大地缓解网络带宽以及云服务器的计 ...

  8. js实现审批流_小程序瀑布流组件:支持翻页与图片懒加载

    电商小程序中,用到瀑布流的地方非常多,每次都写一个瀑布流,重复一次逻辑,作为程序员,肯定是非常不愿意的. 瀑布流的形式都是大同小异,不同的是瀑布流中每个模块的内容,随业务而变化. 所以,我们把瀑布流框 ...

  9. swiper 定义放多少张图片_小程序瀑布流组件:支持翻页与图片懒加载

    (给前端大全加星标,提升前端技能) 作者:老人羽海 https://segmentfault.com/a/1190000022680541 电商小程序中,用到瀑布流的地方非常多,每次都写一个瀑布流,重 ...

最新文章

  1. 用Linux虚拟机手工编译安装Apache
  2. DayDayUp:教你一招如何在道客巴巴免费下载自己被侵权的文章
  3. linux curl模拟登录网页
  4. linux 执行sh 文件是遇到找不到cd '目录'
  5. hive开启kerberos-beeline连接
  6. mysql 事务原子性_数据库事务原子性、一致性是怎样实现的?
  7. [转]windows2003的IIS详细设置方法
  8. 15个最佳iOS游戏模板
  9. mysql 三角函数_三角函数公式
  10. java 最大素数,JAVA计算指定上限的最大素数
  11. ddr4 dqs 频率_你好,请问你知道DDR3中是DQS是什么意思吗
  12. 有关php的外国参考文献,php论文英文参考文献
  13. 计算机组装与维护标准教程(2010-2012版)电子教材,计算机组装与维护标准教程(2015—2018版)...
  14. Ubuntu rhythombox 乱码解决
  15. 中国科学技术大学2021计算机考研分数线,【中国科学技术大学】2021考研复试分数线3月13日已公布!速看!...
  16. 阿里云新Logo:生于代码
  17. Perfect Tree(图论)
  18. FFmpeg MP4 m3u8 视频 相互转换
  19. STM32硬件AES
  20. 武汉大学计算机学院研究生360,武汉大学计算机考研科目有哪些

热门文章

  1. 浅谈时间函数gettimeofday的成本
  2. 项目助理这个工作怎么样_影楼化妆师这个工作怎么样?
  3. linux mpc8313启动流程,基于MPC8313E和FPGA的双口RAM驱动开发
  4. python种颜色循环_python – 重置Matplotlib中的颜色循环
  5. 3D引擎多线程:渲染与逻辑分离
  6. 基于 CoreAudio 的音频编解码(二):音频编码
  7. 虚拟化软件Xen的简单应用
  8. Spring Boot - 开发Web应用
  9. Entity Framework 6 Recipes 2nd Edition(13-6)译 - 自动编译的LINQ查询
  10. linux tar压缩解压命令的详细解释