使用 embedding_vector 实现 Word2Vec 模型时出错
Error while implementing Word2Vec model with embedding_vector
我在尝试使用 embedding_vector:
实现时遇到 AttributeError
from gensim.models import KeyedVectors
embeddings_dictionary = KeyedVectors.load_word2vec_format('model', binary=True)
embedding_matrix = np.zeros((vocab_size, 100))
for word, index in tokenizer.word_index.items():
embedding_vector = embeddings_dictionary.get(word)
if embedding_vector is not None:
embedding_matrix[index] = embedding_vector
AttributeError: 'Word2VecKeyedVectors' object has no attribute 'get'
是的,gensim
的 KeyedVectors
抽象不提供 get()
方法。 (您遵循的是什么文档或示例表明它确实如此?)
您可以使用标准 Python []
-索引,例如:
embedding_dictionary[word]
不过,您的循环将每个向量复制到您自己的向量中并不是真正的原因 embedding_matrix
。 KeyedVectors
实例已经有一个原始数组,每个向量在一行中,按照 KeyedVectors
.index2entity
列表的顺序 - 在它的 vectors
属性 中:
embedding_dictionary.vectors
没有get方法,改成这样:embeddings_dictionary[word]
我在尝试使用 embedding_vector:
实现时遇到 AttributeErrorfrom gensim.models import KeyedVectors
embeddings_dictionary = KeyedVectors.load_word2vec_format('model', binary=True)
embedding_matrix = np.zeros((vocab_size, 100))
for word, index in tokenizer.word_index.items():
embedding_vector = embeddings_dictionary.get(word)
if embedding_vector is not None:
embedding_matrix[index] = embedding_vector
AttributeError: 'Word2VecKeyedVectors' object has no attribute 'get'
是的,gensim
的 KeyedVectors
抽象不提供 get()
方法。 (您遵循的是什么文档或示例表明它确实如此?)
您可以使用标准 Python []
-索引,例如:
embedding_dictionary[word]
不过,您的循环将每个向量复制到您自己的向量中并不是真正的原因 embedding_matrix
。 KeyedVectors
实例已经有一个原始数组,每个向量在一行中,按照 KeyedVectors
.index2entity
列表的顺序 - 在它的 vectors
属性 中:
embedding_dictionary.vectors
没有get方法,改成这样:embeddings_dictionary[word]