首页 > 解决方案 > gensim - word2vec: AttributeError: 'Word2Vec' 对象没有属性 'most_common'

问题描述

PAD = 0
UNK = 1
START = 2
END = 3
def make_vocab(wc, vocab_size):
    word2id, id2word = {}, {}
    word2id['<pad>'] = PAD
    word2id['<unk>'] = UNK
    word2id['<start>'] = START
    word2id['<end>'] = END
    for i, (w, _) in enumerate(wc.most_common(vocab_size), 4):
        word2id[w] = i
    return word2id

调用此函数时出现此错误“AttributeError:'Word2Vec' 对象没有属性'most_common'”。我尝试了不同版本的 gensim。你能给我一些提示来解决这个问题吗?

标签: pythonnlpgensimword2vec

解决方案


Gensim 的 Word2Vec 不包含most_common方法。

如果出于某种原因您必须word,frequency从模型中提取对,您可以使用

[(word, wc.w2v.vocab[word]) for word in wc.wv.vocab]

并对结果列表进行排序。然而,这是一个非常奇怪的用例。


推荐阅读