python - 如何将 word2vec 转换为手套格式
问题描述
我做了一些研究,发现 gensim 有一个脚本可以将 glove 转换为 word2vec GLove2Wrod2Vec。我正在寻找相反的做法。
是否有任何简单的方法可以使用 gensim 或任何其他库进行转换
解决方案
.txt
手套矢量文件格式和 word2vec 文件格式之间的唯一区别是 word2vec格式的开头有一行
<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 提供了一种从一个到另一个的方式。
推荐阅读
- ruby-on-rails - 评论部分将最新的评论排序在顶部而不是底部
- vuex - 从另一个文件 nuxt 提交突变
- intellij-idea - Intellij Idea 中的“使用 dartfmt 重新格式化代码”操作 - 收到“无法重新格式化代码”消息
- java - Spring Boot 应用程序 - Tomcat 部署 - 无法确定合适的驱动程序类
- java - 将一个类对象转换为另一种类型时编译时 ClassCastException 和错误之间的区别
- swift - 将 CIImage 乘以标量
- watson-assistant - Watson Assistant 无法显示我电脑中的图像
- javascript - 制表符:groupToggleElement 打破布局
- graphql - Apollo Client 从响应对象中去除额外的结果
- excel - 如何使用或过滤器从 Excel 中的 OLAP 多维数据集数据透视表中获取数据