有没有办法将 Gensim doc2vec 模型保存为纯文本 (.txt)?
Is there a way to save a Gensim doc2vec model as plain text (.txt)?
到目前为止,我所取得的是一个人无法阅读的模型。我需要将模型保存为纯文本才能与某个软件一起使用,这就要求模型是这样的。
我尝试了以下方法:
model = models.doc2vec.Doc2Vec(size=300, min_count=0, alpha=0.025, min_alpha=0.025)
model.train(sentences, total_examples=model.corpus_count, epochs=model.iter)
model.save('mymodel.txt')
但我得到:
Process finished with exit code -1073741571 (0xC00000FD)
我不知道是否应该传递特定参数。
原生 gensim save()
没有 plain-text 选项:它利用 Python 核心功能,如 object-pickling,或编写大型原始 floating-point 数组(到具有额外扩展名 .npy
的辅助文件)。此类文件将包含原始二进制数据——仅指定 .txt
文件名对写入的内容没有任何影响。
你可以只将word-vectors保存成one-vector-per-line,plain-text原来使用的格式Googleword2vec.c
通过使用替代方法 save_word2vec_format()
。此外,最新版本的 gensim Doc2Vec
向此方法添加了一个可选的 doctag_vec
选项。如果你提供 doctag_vec=True
,doctag 向量也将被保存到文件中——它们的 tag-names 通过一个额外的前缀与 word-vectors 区分开来。有关详细信息,请参阅方法的 doc-comment 和 source-code:
但是,save_word2vec_format()
的变体没有保存 整个 模型,具有内部 model-weights 和 vocabulary/doctag 信息(如相对频率)这是继续培训所必需的。为此,您必须使用本机 save()
。如果您需要文本格式的完整 Doc2Vec
模型,您需要自己编写保存代码,也许使用上述方法作为部分指南。 (此外,我不知道表示整个模型的预先存在的约定 - 因此您必须自己找到或设计它,以满足您在完整模型 later-to-be-loaded 的任何地方的需求。)
关于您的 Doc2Vec
初始化参数:
a min_count=0
通常是个坏主意:稀有词会使模型变差,因此默认 min_count=5
通常会改进模型,并且随着语料库变大,甚至更大min_count
值丢弃更多 low-frequency 个词往往有助于提高模型质量(以及加快训练和缩小模型的 RAM/save 大小)
a min_alpha
与 alpha
相同通常是个坏主意,意味着 train()
不再执行 linear-decay alpha
learning-rate 这是执行 stochastic-gradient-descent 模型优化的常用且有效的方式
到目前为止,我所取得的是一个人无法阅读的模型。我需要将模型保存为纯文本才能与某个软件一起使用,这就要求模型是这样的。
我尝试了以下方法:
model = models.doc2vec.Doc2Vec(size=300, min_count=0, alpha=0.025, min_alpha=0.025)
model.train(sentences, total_examples=model.corpus_count, epochs=model.iter)
model.save('mymodel.txt')
但我得到:
Process finished with exit code -1073741571 (0xC00000FD)
我不知道是否应该传递特定参数。
原生 gensim save()
没有 plain-text 选项:它利用 Python 核心功能,如 object-pickling,或编写大型原始 floating-point 数组(到具有额外扩展名 .npy
的辅助文件)。此类文件将包含原始二进制数据——仅指定 .txt
文件名对写入的内容没有任何影响。
你可以只将word-vectors保存成one-vector-per-line,plain-text原来使用的格式Googleword2vec.c
通过使用替代方法 save_word2vec_format()
。此外,最新版本的 gensim Doc2Vec
向此方法添加了一个可选的 doctag_vec
选项。如果你提供 doctag_vec=True
,doctag 向量也将被保存到文件中——它们的 tag-names 通过一个额外的前缀与 word-vectors 区分开来。有关详细信息,请参阅方法的 doc-comment 和 source-code:
但是,save_word2vec_format()
的变体没有保存 整个 模型,具有内部 model-weights 和 vocabulary/doctag 信息(如相对频率)这是继续培训所必需的。为此,您必须使用本机 save()
。如果您需要文本格式的完整 Doc2Vec
模型,您需要自己编写保存代码,也许使用上述方法作为部分指南。 (此外,我不知道表示整个模型的预先存在的约定 - 因此您必须自己找到或设计它,以满足您在完整模型 later-to-be-loaded 的任何地方的需求。)
关于您的 Doc2Vec
初始化参数:
a
min_count=0
通常是个坏主意:稀有词会使模型变差,因此默认min_count=5
通常会改进模型,并且随着语料库变大,甚至更大min_count
值丢弃更多 low-frequency 个词往往有助于提高模型质量(以及加快训练和缩小模型的 RAM/save 大小)a
min_alpha
与alpha
相同通常是个坏主意,意味着train()
不再执行 linear-decayalpha
learning-rate 这是执行 stochastic-gradient-descent 模型优化的常用且有效的方式