Skip to main content
 首页 » 编程设计

python之Gensim Word2Vec 'you must first build vocabulary before training the model'

2024年09月07日59jackei

我正在尝试拟合 Word2Vec 模型。根据 Gensim 的 Word2Vec 文档,我们在使用它之前不需要调用 model.build_vocabulary。 但它要求我去做。我试过调用这个函数,但没有用。我之前还安装了一个 Word2Vec 模型,而无需调用 model.build_vocabulary 。

我做错了什么吗?这是我的代码:

from gensim.models import Word2Vec 
dataset = pd.read_table('genemap_copy.txt',delimiter='\t', lineterminator='\n') 
 
def row_to_sentences(dataframe): 
    columns = dataframe.columns.values 
    corpus = [] 
    for index,row in dataframe.iterrows(): 
        if index == 1000: 
            break 
        sentence = '' 
        for column in columns: 
            sentence += ' '+str(row[column]) 
        corpus.append([sentence]) 
    return corpus 
 
corpus = row_to_sentences(dataset) 
clean_corpus = [[sentence[0].lower()] for sentence in corpus ] 
 
 
# model = Word2Vec() 
# model.build_vocab(clean_corpus) 
model = Word2Vec(clean_corpus, size=100, window=5, min_count=5, workers=4) 

非常感谢您的帮助! 我也在使用 macOS Sierra。 Mac D: 下使用 Gensim 网上支持不多。

请您参考如下方法:

我认为我的问题是参数 min_count=5 所以它没有考虑我的大部分单词,如果它们没有出现超过 5 次。