如何使用新词汇增量训练 word2vec 模型
How to incrementally train a word2vec model with new vocabularies
我得到了超过40G的数据集。由于内存有限,我的 tokenizer 程序被终止了,所以我尝试拆分我的数据集。如何增量训练word2vec模型,即如何使用不同的数据集训练一个word2vec模型?
我当前的word2vec代码是:
model = gensim.models.Word2Vec(documents, size=150, window=10, min_count=1, workers=10)
model.train(documents,total_examples=len(documents),epochs=epochs)
model.save("./word2vec150d/word2vec_{}.model".format(epochs))
如有任何帮助,我们将不胜感激!
我找到了解决方案:使用 PathLineSentences
。它非常快。增量训练 word2vec 模型无法学习新词汇,但 PathLineSentences
可以。
from gensim.models.word2vec import PathLineSentences
model = Word2Vec(PathLineSentences(input_dir), size=100, window=5, min_count=5, workers=multiprocessing.cpu_count() * 2, iter=20,sg=1)
对于单个文件,使用LineSentences
。
from gensim.models.word2vec import LineSentence
model = Word2Vec(LineSentence(file), size=100, window=5, min_count=5, workers=multiprocessing.cpu_count() * 2, iter=20,sg=1)
...
我得到了超过40G的数据集。由于内存有限,我的 tokenizer 程序被终止了,所以我尝试拆分我的数据集。如何增量训练word2vec模型,即如何使用不同的数据集训练一个word2vec模型?
我当前的word2vec代码是:
model = gensim.models.Word2Vec(documents, size=150, window=10, min_count=1, workers=10)
model.train(documents,total_examples=len(documents),epochs=epochs)
model.save("./word2vec150d/word2vec_{}.model".format(epochs))
如有任何帮助,我们将不胜感激!
我找到了解决方案:使用 PathLineSentences
。它非常快。增量训练 word2vec 模型无法学习新词汇,但 PathLineSentences
可以。
from gensim.models.word2vec import PathLineSentences
model = Word2Vec(PathLineSentences(input_dir), size=100, window=5, min_count=5, workers=multiprocessing.cpu_count() * 2, iter=20,sg=1)
对于单个文件,使用LineSentences
。
from gensim.models.word2vec import LineSentence
model = Word2Vec(LineSentence(file), size=100, window=5, min_count=5, workers=multiprocessing.cpu_count() * 2, iter=20,sg=1)
...