Двоичные файлы, как правило, не ориентированы на строки. Они также покажут тарабарщину при печати. Итак, ваш код работает, но ваши ожидания ошибочны.
Какова ваша конечная цель? Если он имеет пригодные для использования векторы слов, вы, вероятно, захотите использовать некоторую ранее существующую библиотеку Word2Vec
, такую как gensim
в Python.
В такой библиотеке вы также можете просмотреть исходный код для чтения формата .bin
word-vectors в качестве модели для изучения, если по какой-то причине вам действительно нужно написать собственный код для чтения. Например, вот исходный код gensim, который считывает текстовые файлы в формате, записанном исходным кодом word2vec.c
из Google:
https://github.com/RaRe-Technologies/gensim/blob/3c3506d51a2caf6b890de3b1b32a8b85f7566ca5/gensim/models/utils_any2vec.py#L123
(чаще используется из метода KeyedVectors.load_word2vec_format()
public API.)