gpt4 book ai didi

python - 通过 gensim 向 GoogleNews 添加新词

转载 作者:太空宇宙 更新时间:2023-11-04 00:16:51 24 4
gpt4 key购买 nike

我想为语料库中的单词获取单词嵌入。我决定使用 gensim 库在 GoogleNews 中预训练的词向量。但是我的语料库包含一些 GoogleNews 中没有的词。对于这些缺失的单词,我想在 GoggoleNews 单词中使用与它最相似的 n 个单词的算术平均值。首先,我加载 GoogleNews 并检查其中是否包含“to”一词?

#Load GoogleNews pretrained word2vec model
model=word2vec.KeyedVectors.Load_word2vec_format("GoogleNews-vectors-negative33.bin",binary=True)
print(model["to"])

我收到一个错误:keyError: "word 'to' not in vocabulary"难不成这么大的数据集没有这个词?对于其他一些常用词(例如“a”)也是如此!

为了向 word2vec 模型添加缺失的单词,首先我想获取 GoogleNews 中单词的索引。对于缺失的单词,我使用了索引 0。

#obtain index of words
word_to_idx=OrderedDict({w:0 for w in corpus_words})
word_to_idx=OrderedDict({w:model.wv.vocab[w].index for w in corpus_words if w in model.wv.vocab})

然后我计算每个缺失词的最相似词嵌入向量的平均值。

missing_embd={}
for key,value in word_to_idx.items():
if value==0:
similar_words=model.wv.most_similar(key)
similar_embeddings=[model.wv[a[0]] for a in similar_words]
missing_embd[key]=mean(similar_embeddings)

然后我通过以下方式将这些新闻嵌入添加到 word2vec 模型中:

for word,embd in missing_embd.items():
# model.wv.build_vocab(word,update=True)
model.wv.syn0[model.wv.vocab[word].index]=embd

存在不一致性。当我打印 missing_embed 时,它是空的。仿佛没有漏掉任何一个字。但是当我通过这个检查它时:

for w in tokens_lower:
if(w in model.wv.vocab)==False:
print(w)
print("***********")

我发现了很多遗漏的词。现在,我有 3 个问题:1- 为什么 missing_embed 是空的而有一些缺失的词?2- GoogleNews 有没有可能没有像“to”这样的词?3- 如何将新嵌入附加到 word2vec 模型?我使用了 build_vocabsyn0。谢谢。

最佳答案

这里是我们添加缺失的小写单词的场景。

from gensim.models import KeyedVectors
path = '../input/embeddings/GoogleNews-vectors-negative300/GoogleNews-vectors-negative300.bin'
embedding = KeyedVectors.load_word2vec_format(path, binary=True)

'Quoran' in embedding.vocab
Output : True

'quoran' in embedding.vocab
Output : False

此处存在 Quoran 但缺少小写的 quoran

# add quoran in lower case
embedding.add('quoran',embedding.get_vector('Quoran'),replace=False)

'quoran' in embedding.vocab
Output : True

关于python - 通过 gensim 向 GoogleNews 添加新词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50618993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com