【发布时间】:2019-01-15 11:05:01
【问题描述】:
我使用 gensim 训练了一个 word2vec 模型,我想从中随机选择向量,并找到相应的单词。 最好的做法是什么?
【问题讨论】:
标签: python-3.x nlp gensim word2vec word-embedding
我使用 gensim 训练了一个 word2vec 模型,我想从中随机选择向量,并找到相应的单词。 最好的做法是什么?
【问题讨论】:
标签: python-3.x nlp gensim word2vec word-embedding
如果您的 Word2Vec 模型实例在变量 model 中,那么在 model.wv.index2word 中有一个模型已知的所有单词的列表。 (这些属性在旧版本的 gensim 中略有不同。)
因此,您可以使用 Python 在 random 模块中的内置 choice() 方法选择一项:
import random
print(random.choice(model.wv.index2entity)
【讨论】:
print(model.wv[random.choice(model.wv.index2entity])。如果您真正想要的是该坐标空间中的随机向量,不是确切的已知词向量之一,请参阅其他一些 SO 答案,例如:stackoverflow.com/questions/5408276/…
如果您想使用 Gensim 4.0.0 从 word2vec 中获取 n 个随机词(键),只需使用 random.sample:
import random
import gensim
# Here we use Gensim 4.0.0
w2v = gensim.models.KeyedVectors.load_word2vec_format("model.300d")
# Get 10 random words (keys) from word2vec model
random_words = random.sample(w2v.index_to_key, 10)
print("Random words: "+ str(random_words))
一块蛋糕:)
【讨论】: