如何将 numpy 数组加载为 gensim Keyedvector 格式?
How to load numpy array to gensim Keyedvector format?
我训练词嵌入后,将其保存为npz格式。
当我尝试将其加载为 KeyedVectors 格式时,它会出错。
如何将 numpy 数组加载为 gensim.KeyedVectors 格式?
我真的需要它,因为我需要使用像 most_similar() 这样的函数,而不仅仅是向量值。
在 model.py 中使用 tensorflow,
self.verb_embeddings = tf.Variable(np.load(cfg.pretrained_target)["embeddings"],
name="verb_embeddings",
dtype=tf.float32,
trainable=cfg.tune_emb)
在saving.py
target_emb = sess.run(model.verb_embeddings)
np.savez_compressed("trained_target_emb.npz", embeddings=target_emb)
在main.py
model = KeyedVectors.load('trained_target_emb.npz')
我得到了
_pickle.UnpicklingError: A load persistent id instruction was encountered, but no persistent_load function was specified.
也试过
model = KeyedVectors.load_word2vec_format('trained_target_emb.npz')
但是得到了
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xde in position 14: invalid continuation byte
Gensim KeyedVectors
实例不能从纯粹的原始数组加载:没有关于表示哪些单词以及哪些索引包含哪些单词的信息。
gensim 中的普通 .load()
需要使用 gensim 自己的 .save()
方法从 gensim 保存的对象。
可以从与原始 Google/Mikolov word2vec.c
工具所用格式相同的文件中加载词向量。那么也许您的 tensorflow 代码可以这样保存它们?
然后,您将使用 .load_word2vec_format()
。
我训练词嵌入后,将其保存为npz格式。 当我尝试将其加载为 KeyedVectors 格式时,它会出错。 如何将 numpy 数组加载为 gensim.KeyedVectors 格式? 我真的需要它,因为我需要使用像 most_similar() 这样的函数,而不仅仅是向量值。
在 model.py 中使用 tensorflow,
self.verb_embeddings = tf.Variable(np.load(cfg.pretrained_target)["embeddings"],
name="verb_embeddings",
dtype=tf.float32,
trainable=cfg.tune_emb)
在saving.py
target_emb = sess.run(model.verb_embeddings)
np.savez_compressed("trained_target_emb.npz", embeddings=target_emb)
在main.py
model = KeyedVectors.load('trained_target_emb.npz')
我得到了
_pickle.UnpicklingError: A load persistent id instruction was encountered, but no persistent_load function was specified.
也试过
model = KeyedVectors.load_word2vec_format('trained_target_emb.npz')
但是得到了
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xde in position 14: invalid continuation byte
Gensim KeyedVectors
实例不能从纯粹的原始数组加载:没有关于表示哪些单词以及哪些索引包含哪些单词的信息。
gensim 中的普通 .load()
需要使用 gensim 自己的 .save()
方法从 gensim 保存的对象。
可以从与原始 Google/Mikolov word2vec.c
工具所用格式相同的文件中加载词向量。那么也许您的 tensorflow 代码可以这样保存它们?
然后,您将使用 .load_word2vec_format()
。