【问题标题】:Randomly select vector in gensim word2vec在gensim word2vec中随机选择向量
【发布时间】:2019-01-15 11:05:01
【问题描述】:

我使用 gensim 训练了一个 word2vec 模型,我想从中随机选择向量,并找到相应的单词。 最好的做法是什么?

【问题讨论】:

    标签: python-3.x nlp gensim word2vec word-embedding


    【解决方案1】:

    如果您的 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/…
    【解决方案2】:

    如果您想使用 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))
    

    一块蛋糕:)

    【讨论】:

      猜你喜欢
      • 2018-11-27
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-20
      • 2019-10-15
      • 2016-12-04
      • 1970-01-01
      相关资源
      最近更新 更多