【问题标题】:How to incrementally train a word2vec model with new vocabularies如何使用新词汇增量训练 word2vec 模型
【发布时间】:2020-10-20 03:36:20
【问题描述】:

我有一个超过 40G 的数据集。由于内存有限,我的标记器程序被杀死,所以我尝试拆分我的数据集。如何增量训练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))

任何帮助将不胜感激!

【问题讨论】:

    标签: python word2vec


    【解决方案1】:

    我找到了解决方案:使用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)
    ...
    

    【讨论】:

    • 当我按照您的建议使用 PathLineSenteces 时,我收到此错误 IsADirectoryError: [Errno 21] Is a directory: '/home ...。如果不使用文件夹的路径,我应该如何初始化它?
    • @antonio-sesto,您可能应该在一个单独的问题中询问您的特定错误,您可以在其中包含足够的特定代码来显示您正在尝试的内容,以及来自的完整多行回溯信息您看到的错误。
    猜你喜欢
    • 2018-02-04
    • 2019-01-16
    • 2019-09-25
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    相关资源
    最近更新 更多