如何将word2vec转换为手套格式

时间:2018-10-09 16:08:38

标签: python nlp gensim word2vec word-embedding

我进行了一些研究,发现gensim具有将手套转换为word2vec GLove2Wrod2Vec的脚本。我想做相反的事情。

是否有使用gensim或任何其他库进行转换的简单方法

1 个答案:

答案 0 :(得分:1)

手套矢量文件格式和word2vec文件格式之间的唯一区别是word2vec格式的.txt开头的一行是

<num words> <num dimensions>

否则,矢量以相同的方式表示。我们无需更改向量即可更改格式。

引用您在问题中链接的页面:

Both files are
presented in text format and almost identical except that word2vec includes
number of vectors and its dimension which is only difference regard to GloVe.
Notes
-----
GloVe format (real example can be founded `on Stanford size <https://nlp.stanford.edu/projects/glove/>`_) ::
    word1 0.123 0.134 0.532 0.152
    word2 0.934 0.412 0.532 0.159
    word3 0.334 0.241 0.324 0.188
    ...
    word9 0.334 0.241 0.324 0.188
Word2Vec format (real example can be founded `on w2v old repository <https://code.google.com/archive/p/word2vec/>`_) ::
    9 4
    word1 0.123 0.134 0.532 0.152
    word2 0.934 0.412 0.532 0.159
    word3 0.334 0.241 0.324 0.188
    ...
    word9 0.334 0.241 0.324 0.188

在上面的示例中,word2vec的第一行9 4告诉我们,词汇表中有9个单词,每个单词有4个维度。

TL; DR 因此,要从w2v-> glove进行转换,请执行以下操作:从<num words> <num dimensions>中删除w2v行。您仍然可以从文件中推断出来。

要从glove-> w2v转换:将<num words> <num dimensions>行添加到glove

您可以手动执行此操作,但是gensim提供了一种从一个跳转到另一个的方法。