我生成了一个类似于这样的PySpark Word2Vec模型:
from pyspark.ml.feature import Word2Vec
w2v = Word2Vec(vectorSize=100, minCount=1, inputCol='words', outputCol = 'vector')
model = w2v.fit(df)(我用来训练模型的数据与此无关,重要的是它的格式是正确的,并成功地生成了一个pyspark.ml.feature.Word2VecModel对象。)
现在,我需要将这个模型转换为Gensim Word2Vec模型。我该怎么做?
发布于 2018-12-29 06:51:33
如果您仍然拥有培训数据,那么重新培训gensim Word2Vec模型可能是最简单的方法。
如果您只需要字向量,也许PySpark的模型可以以word2vec.c格式导出它们,gensim可以用.load_word2vec_format()加载这些格式。
将该模型移植的唯一原因是继续进行培训。这种渐进式的培训,虽然可能,但需要考虑许多权衡的影响,在老的和后期的培训,以获得良好的结果。
如果您实际上想要进行这种转换,以便以这种方式进行更多的培训,这再次表明,使用原始的培训来复制类似的模型可能是可行的。
但是,如果您必须转换模型,一般的方法是研究这两个模型的源代码和内部数据结构,以发现它们如何替代地代表模型的每一个关键方面:
model.wv.vectors)model.wv.vocab在gensim中)一种合理的互动办法可以是:
PySpark模型可能缺少gensim模型所期望的东西,这可能需要综合可行的替换值。
祝好运!(但是,如果你想让事情变得简单和有效的话,可以从原始数据重新训练gensim模型。)
https://stackoverflow.com/questions/53963743
复制相似问题