python - 在 Python 中读取 word2vec 二进制文件
问题描述
我正在尝试读取 bin 文件。它有数百万行的单词,后跟空格分隔的数字。
所以,到目前为止,在 Python 中我还没有能够打印出一行,它要么给出乱码,要么给出错误的输出。
with open('GoogleNews-vectors-negative300.bin', mode='rb') as file: # b is important -> binary
for line in file.readline():
print(line)
我应该如何逐行读取二进制文件?
解决方案
二进制文件往往不是面向行的。它们在打印时也会显示乱码。所以你的代码正在运行,但你的期望是错误的。
你的最终目标是什么?如果要拥有可用的词向量,您可能想要使用一些预先存在的Word2Vec
库,例如gensim
Python。
在这样的库中,您还可以查看用于阅读.bin
词向量格式的源代码,作为学习的模型,如果出于某种原因您确实需要编写自己的阅读代码。例如,下面是 gensim 源代码,它以word2vec.c
Google 原始代码编写的格式读取词向量文件:
(它更常用于KeyedVectors.load_word2vec_format()
公共 API 方法。)
推荐阅读
- python - 在递归中遇到关于全局变量的错误
- jquery - 收到错误 HTTP 状态 415 内容类型 'application/x-www-form-urlencoded' 不支持
- twitter-bootstrap - 引导弹出窗口中的 Facebook 共享按钮
- javascript - 在进行 javascript 操作之前更新由敲除计算数组检索到的 html 代码
- prestashop - Prestashop 1.7 运费未计算
- android - Google Fit - 仅从传感器获取和显示步数,而不是从用户输入
- python - 将 numpy 数组中的 NaN 值转换为值的平均值
- javascript - ag-grid angular-列定义中的某些属性(可调整大小)不起作用
- angular - patchValue 和 updateValueAndValidity() 方法的区别?
- grep - 用 grep 切割一段特定的字符串