我进行了一些研究,发现gensim具有将手套转换为word2vec GLove2Wrod2Vec的脚本。我想做相反的事情。
是否有使用gensim或任何其他库进行转换的简单方法
答案 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提供了一种从一个跳转到另一个的方法。