使用 glove-python 模型获取词嵌入字典

Posted

技术标签:

【中文标题】使用 glove-python 模型获取词嵌入字典【英文标题】:Get word-embedding dictionary with glove-python model 【发布时间】:2018-06-11 23:36:02 【问题描述】:

我使用 Maciejkula 的实现 (github repo) 在 python 中训练了一个 Glove 模型。 下一步我需要一个词嵌入词典。 但是,我似乎找不到从我训练的手套模型中提取这样一个字典的简单方法。

我可以通过访问model.word_vectors 来提取嵌入,但这只会返回一个包含向量的数组,而不会映射到相应的单词。 还有包含单词到索引对的model.dictionary 属性。 我认为这些索引可能对应于 model.word_vectors 数组中的嵌入索引,但我不确定这是否正确。

索引是否对应,或者是否有另一种简单的方法可以从 glove-python 模型中获取词嵌入字典?

我知道Sanj 向我提出了类似的问题,虽然更广泛的问题,但由于没有回应,我想我会问这个更具体的问题。

【问题讨论】:

【参考方案1】:

你在正确的轨道上。 NLP 解决方案通常避免在整个算法中保留单词,并使用索引方案 word -> idx,为简单起见,该 idx 在整个算法中都使用。

对于这个手套实现,model.dictionary 包含 word -> idx,而 model.word_vectors 包含 idx -> 向量。

例如要获取与单词“samsung”相对应的向量,您可以使用:

model.word_vectors[model.dictionary['samsung']]

【讨论】:

以上是关于使用 glove-python 模型获取词嵌入字典的主要内容,如果未能解决你的问题,请参考以下文章

如何使用词嵌入作为 CRF (sklearn-crfsuite) 模型训练的特征

nlp学习杂记

论文泛读118使用上下文嵌入模型获得更好的静态词嵌入

动手学pytorch-词嵌入预训练模型Glove

对不在训练集中的新词使用 keras 分词器

NLP领域的ImageNet时代到来:词嵌入「已死」,语言模型当立