如何规范化词嵌入(word2vec)

Posted

技术标签:

【中文标题】如何规范化词嵌入(word2vec)【英文标题】:How to normalize word embeddings (word2vec) 【发布时间】:2020-11-14 18:32:37 【问题描述】:

我有一个预先训练好的带有嵌入的 Word2Vec 模型。我需要规范化一些嵌入来对这些词进行分析。是否有简单的代码行(或代码块)来执行此操作?我一直在网上搜索,但找不到简单的答案。

【问题讨论】:

你的意思是如何使嵌入向量范数相同? 您的意见是什么?例如。 numpy 数组或 wv 对象 【参考方案1】:

这适用于嵌入

model.init_sims(replace=True)

【讨论】:

这会规范化模型中的所有嵌入吗? 它应该用标准化的向量替换你现有的向量。在这里,看看文档 - radimrehurek.com/gensim/models/… 您不一定需要使用replace=True,它会破坏性地消除非规范的原始向量(对于某些目的而言,这通常更好)。在您使用了 gensim 的 init_sims() 之后,单位范数向量的缓存将在属性 .vectors_norm 中,而其他向量访问方法之一有一个 use_norm 选项来获取每个单独的向量作为其单位-规范版本。 是的,如果用户对非标准化向量没有用处,他们可以继续我所写的内容。使用此选项,他们可以节省一些可能/可能不是他们优先考虑的 RAM。如果将来可能需要原始向量,我相信他们可以参考您的答案。

以上是关于如何规范化词嵌入(word2vec)的主要内容,如果未能解决你的问题,请参考以下文章

word2vec 猜测词嵌入

word2vec,总和还是平均词嵌入?

word2vec是如何得到词向量的

word2vec是如何得到词向量的?

BERT实战:使用DistilBERT作为词嵌入进行文本情感分类,与其它词向量(FastText,Word2vec,Glove)进行对比

自用文本分类->词嵌入模型