在网上找了很久都没有找到Word2Vec增量训练的例子,通过尝试之后,终于实现了增量训练功能。分享出来供大家参考。
环境:
    OS: win 10
    Python: V3.5.4

核心代码:

# coding: utf-8
# Author: chen chong
# DateTime: 2018/11/11 15:11import time
import os
import multiprocessing
from gensim.models import Word2Vec
from CCApp.Augur.db_service.db_service import DBService
from CCApp.Augur.cut_words_service.cut_words_service import CutWordsServiceimport warnings
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim')class ModelTrainService:def __init__(self):os_name = os.nameif 'nt' != os_name:prefix_path = '/home/chong/Tmp/'else:prefix_path = 'D:/workspace/gensim_folder/'self.model_file_path = os.path.join(prefix_path, 'augur.model')def _train(self, sentences):"""首次和增量训练实现:param sentences: 语料列表的列表,形如: [['小程序', '程序员'],['代码']]:return: """if os.path.isfile(self.model_file_path):  # model已存在,则进行增量训练self.model = Word2Vec.load(self.model_file_path)self.model.build_vocab(sentences, update=True)else:  # model不存在,首次训练self.model = Word2Vec(sentences, size=100, window=10, min_count=1, workers=multiprocessing.cpu_count())self.model.train(sentences, total_examples=len(sentences), epochs=self.model.iter)self.model.save(self.model_file_path)  # 训练结束后覆盖原来的modeldef work(self):db_service = DBService()while True:try:ids, title_paragraphs = db_service.get_un_train_news()if not ids:for i in range(30):time.sleep(60)sentences = list()for title, content in title_paragraphs:if title:title_words = CutWordsService.cut(title)if title_words:sentences.append(title_words)if content:content_words = CutWordsService.cut(content)if content_words:sentences.append(content_words)if sentences:self._train(sentences)db_service.delete_has_train(ids)print('>>>>> delete doc type by ids:', ids)except Exception as e:import datetimeimport loggingfrom logging.handlers import SMTPHandlerlogger = logging.getLogger()smtp_handler = SMTPHandler('smtp.global-mail.cn', 'cc.chen@maxpr.com.cn', 'cc.chen@maxpr.com.cn', '机器学习模型训练失败通知', ('cc.chen@maxpr.com.cn', 'Iamcc001'))logger.addHandler(smtp_handler)now = datetime.datetime.now().strftime('%Y-%M-%d %H:%M:%S')logger.error('datetime:{0} \n Exception:\n{1}'.format(now, e))breakif '__main__' == __name__:service = ModelTrainService()service.work()

Word2Vec增量训练实现相关推荐

  1. Word2Vec 增量训练

    一. 问题由来 word2vec的本质是一个神经网络语言模型,基于语言模型进行分布式词向量的训练.它需要大量的语料进行训练,从而找到词与词之间的关系,但是当我们已经训练好了一个word2vec模型之后 ...

  2. word2vec模型训练保存加载及简单使用

    目录 word2vec模型训练保存加载及简单使用 一 word2vec简介 二.模型训练和保存及加载 模型训练 模型保存和加载 模型的增量训练 三.模型常用API 四.文本相似度计算--文档级别 wo ...

  3. 记录使用gensim进行词向量增量训练(遇到的几个问题)

    一般很少用到gensim来训练词向量,但是网上关于词向量增量训练几乎都是用gensim解决的,所以记录下使用gensim进行词向量增量训练及一个问题(笔记性质,记录给自己看...但如果能帮到和我一样的 ...

  4. Spark下的word2vec模型训练

    一.引言 前边一节介绍了Word2Vec模型训练同义词,那么在大数据量的情况下,我们自然想到了用spark来进行训练.下面就介绍我们是如何实现spark上的模型训练. 二.分词 模型训练的输入是分好词 ...

  5. 提升机器算法LightGBM(图解+理论+增量训练python代码+lightGBM调参方法)

    LightGBM是个快速的,分布式的,高性能的基于决策树算法的梯度提升框架.可用于排序,分类,回归以及很多其他的机器学习任务中. 在竞赛题中,我们知道XGBoost算法非常热门,它是一种优秀的拉动框架 ...

  6. word2vec预训练词向量+通俗理解word2vec+CountVectorizer+TfidfVectorizer+tf-idf公式及sklearn中TfidfVectorizer

    文章目录 文分类实(一) word2vec预训练词向量 2 数据集 3 数据预处理 4 预训练word2vec模型 canci 通俗理解word2vec 独热编码 word2vec (Continuo ...

  7. Bert增量训练——run_mlm.py脚本训练参数中文总结概括

    Bert增量训练,run_mlm.py脚本链接如下:https://github.com/huggingface/transformers/tree/main/examples/pytorch/lan ...

  8. [书蕴笔记-1]word2vec模型训练

    word2vec模型训练 前言 整体索引在此 书蕴--基于书评的人工智能推荐系统 上次把文本进行了预处理,主要是使用正则去除标签以及对文本去除停用词以及结巴分词. 后续还会加入tf-idf来动态选取停 ...

  9. 增量训练求解麦克斯韦方程族

    原始的PINNs(Physics-Informed Neural Networks, PINNs)方法不具备求解一类方程的能力.当方程中的特征参数(如介电系数等)发生变化时需要重新训练,增加了求解时间 ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task15. 有效的括号
  2. 496.下一个更大元素I
  3. Sun副总裁:绿色数据中心需分四步走
  4. C语言信息系统贴吧,急 c语言学生信息管理系统
  5. r语言 array c函数,R语言 数组
  6. Inno Setup 插件 CallbackCtrl V1.1 (回调函数插件)
  7. 消费者价格研究中的数据分析
  8. 免费python自学攻略-自学python二三事
  9. CF739E Gosha is hunting
  10. 红帽linux6.8镜像下载,redhat8镜像下载
  11. 阿里云GIS曾志明:空间数据中台是什么,怎么用
  12. python function terminated_Calibre 转换 TXT 文件出现 Errno 21 错误的解决方法 – 书伴
  13. AspNetPager分页控件的使用以及常见错误
  14. Switch视频转换器方案
  15. 什么是广域网(WAN)?
  16. 建立了一个博客园创业者QQ群
  17. 电商后台系统:管理后台之账号管理(一)
  18. Android中,长度单位详解(dp、sp、px、in、pt、mm)具体解释与换算(1)
  19. JavaWeb开发技术学习笔记(十四)——集群
  20. Spring入门-1-基本配置和IOC、DI

热门文章

  1. IntelliJ IDEA 2018.2.4 x64破解
  2. 阿里云云效流水线教程
  3. SQL Server 2008 (2008 R2) 清理日志方法
  4. RESTful API 简介(学习笔记)
  5. 本地化管理的表空间的创建相关参数说明
  6. ASEMI整流桥ABS210参数,ABS210规格书,ABS210特征
  7. python程序员可以从哪些平台接单赚钱?看完我给你介绍的这几个平台,没学过python的你也能边学习边赚钱
  8. linux docker ps -a,docker ps-docker ps a-docker ps无反应-docker ps是什么意思-docker ps命令解析-docker进程ps-嗨客网...
  9. 基于vue商品图片轮播和放大镜的方案
  10. Puzzle(自认为是模拟)