一、 问题由来
word2vec的本质是一个神经网络语言模型,基于语言模型进行分布式词向量的训练。它需要大量的语料进行训练,从而找到词与词之间的关系,但是当我们已经训练好了一个word2vec模型之后,数据库中又新流动进来了很多语料,我们应该在怎么办呢?我们不可能又基于所有语料重新训练一遍(当语料过大时,太耗费时间了),这时候,增量训练就派上了用场。
二、word2vec模型的增量训练
import jieba
import re
import pandas as pd
from gensim.models.word2vec import Word2Vec
class TrainWord2Vec:
"""
训练得到一个Word2Vec模型
@author:xiaozhu
@time:2018年10月12日
"""
def __init__(self, data, stopword, num_features=100, min_word_count=1, context=4, incremental=False,
old_path):
"""
定义变量
:param data: 用于训练胡语料
:param stopword: 停用词表
:param num_features: 返回的向量长度
:param min_word_count: 最低词频
:param context: 滑动窗口大小
:param incremental: 是否进行增量训练
:param old_path: 若进行增量训练,原始模型路径
"""
self.data = data
self.stopword = stopword
self.num_features = num_features
self.min_word_count = min_word_count
self.context = context
self.incremental = incremental
self