首页 文章

word2vec的单词字典

提问于
浏览
2

我需要为单词字典生成word2vec数组 . 字典看起来像这样

test={0: 'tench, Tinca tinca',
 1: 'goldfish, Carassius auratus',
 2: 'great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias',
 3: 'tiger shark, Galeocerdo cuvieri',
 4: 'hammerhead, hammerhead shark'}

循环应遍历每一行,检查模型中是否存在单词,如果是,则将向量存储在数组中,否则检查行中的下一个单词 . 如果gensim模型中没有任何单词,那么它应该什么都不做(数组用零初始化)但是如果预训练模型中不存在单词,则会引发此异常:

KeyError:“词'Galeocerdo cuvieri'不在词汇中”

什么应该是理想的循环,也有异常,以绕过引发的错误?这是我的开始代码:

import gensim
 model = gensim.models.KeyedVectors.load_word2vec_format('/home/shikhar /Downloads/GoogleNews-vectors-negative300.bin',binary=True) 
 array=np.zeros((4,300)) 
 for i in test:
     synonyms=test[i].split(',')

1 回答

  • 1

    为什么不尝试这个

    vectors= list()
    for i in test:
        flag=True
        synonyms=test[i].split(',')
        for k in synonyms:
            try:
                vectors.append(model[k]])
                flag = False
                break
            except KeyError as e:
                print(e)
                continue
        if flag:
            vectors.append(# Insert your array with zeroes here)
    

    我假设您需要列表中的所有向量

相关问题