首页 > 解决方案 > 如何从 FastText 的输出矩阵中获取向量?

问题描述

在这项研究中,作者发现,Word2Vec 生成两种嵌入(IN 和 OUT)。

https://arxiv.org/abs/1602.01137

好吧,您可以使用 gensim word2vec 中的 syn1 属性轻松获得它。但是在 gensim fastText 的情况下, syn1 确实存在,但是由于 fastText 的概念是基于子词的,因此无法通过匹配索引从输出矩阵中获取词的向量。你知道用输出矩阵计算向量的其他方法吗?

标签: word2vecword-embeddingfasttext

解决方案


在 FastText 中,单词的向量是以下各项的组合:

  • 全词向量(如果存在);和
  • 所有子词向量

您可以在以下位置查看返回向量的 gensim 方法,如有必要,由子词组成:

https://github.com/RaRe-Technologies/gensim/blob/2ccc82bf50bcfbee44932c160db076a873cf893e/gensim/models/keyedvectors.py#L1970

(我认为这种方法可能有一个错误,与原始的 FastText 方法相比,这种 gensim 方法可能应该将子词向量添加到全词向量,即使全词向量可用。)


推荐阅读