machine-learning - 使用初始值进行 Gensim 词嵌入训练

标签 machine-learning nlp word2vec gensim word-embedding

我有一个数据集,其中的文档分为不同年份,我的目标是为每年的数据训练一个嵌入模型,同时,不同年份出现的相同单词将具有相似的向量表示。像这样:对于单词“compute”,它在第一年的向量是

[0.22, 0.33, 0.20]

在第二年,情况是这样的:

[0.20, 0.35, 0.18]

有办法实现这一点吗?例如,使用初始值(如果该单词已在第一年训练过,则修改其向量)和随机性(如果这是语料库的新单词)来训练第 2 年的模型。

最佳答案

我认为最简单的解决方案是在第一个数据集上训练后保存嵌入,然后加载训练后的模型并继续对第二个数据集进行训练。这样,您就不应该期望嵌入会偏离保存的状态太多(除非您的数据集非常不同)。

从所有文档创建单个词汇表也是有意义的:特定文档中不存在的词汇表单词将获得一些随机表示,但它仍然是一个有效的 word2vec 模型。

示例来自 documentation :

>>> model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)
>>> model.save(fname)
>>> model = Word2Vec.load(fname)  # continue training with the loaded model

关于machine-learning - 使用初始值进行 Gensim 词嵌入训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48164954/

相关文章:

python - 如何在 Scikit-learn 中获取 OneHotEncoder 的维度数

python - 稀疏与密集向量 PySpark

python - nltk 的 RegexpParser 中的递归

machine-learning - 如何使用 Word2Vec 获取单词列表的向量?

python-3.x - 如何获得 word2vec 词汇表中不存在的单词的向量?

python - 使用 xgboost 绘制特征重要性

machine-learning - 如何选择朴素贝叶斯分类器的训练数据

java - 应使用哪种罗马化标准来改进 ICU4j 的阿拉伯语-拉丁语音译?

heroku - 如何以低成本处理大量数据(本地设置或云)?

python - 麻烦加载手套 840B 300d 矢量