Чтение обученных векторов слова Миколова с использованием Python

Я пытаюсь прочитать двоичный файл в Вот. Этот файл содержит словосочетания, прошедшие обучение у Миколова в word2vec запрограммируйте и, кажется, в следующем формате:

12 первых байтов содержат строку: «3000000 300 \ n»

Последующие байты: «<1-я переменная строка слова> [пробел]<4 * 300 байтов, чтобы сформировать 300-мерный вектор с плавающей точкой>[Может быть что-то там]<2-е слово> ….<3000000-е слово> [пробел]<4 * 300 байт> «

С этим C код:

fscanf(in_file, "%s%c", &buff, &ch);
for (a = 0; a < size; a++) fread(&M[a], sizeof(float), 1, in_file);

Я могу прочитать каждое слово магазин в buff и соответствующий векторный магазин в M, Но когда я пробую ту же стратегию в Python с этим тестовым кодом:

_f = open("GoogleNews-vectors-negative300.bin")
print _f.read(12)
print _f.read(4), _f.read(1) == ' '
_f.read(4*300)
print _f.read(2), _f.read(1) == ' '
_f.read(4*300)
print _f.read(3), _f.read(1) == ' '
_f.read(4*300)
print _f.read(1), _f.read(1) == ' '

Это дает результат:

3000000 300

</s> Правда

в истинном

для истинного

; Ложь

Очевидно, неправильно, потому что третье слово должно быть that, Я не могу понять, что я делаю здесь неправильно!

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]