如何规范化词嵌入(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)的主要内容,如果未能解决你的问题,请参考以下文章
BERT实战:使用DistilBERT作为词嵌入进行文本情感分类,与其它词向量(FastText,Word2vec,Glove)进行对比