Proponuję użyć gensim, aby zrobić wszystko. Możesz przeczytać plik, a także skorzystać z wielu metod już wdrożonych w tym świetnym pakiecie.
Załóżmy, że generowane są wektory GloVe przy użyciu programu C++, a parametr "-save-file" to "wektory". Plik wykonywalny rękawicy wygeneruje dwa pliki "vectors.bin" i "vectors.txt".
Zastosowanie glove2word2vec przekonwertować wektory rękawiczki w formacie tekstowym do word2vec formatu tekstowego:
from gensim.scripts.glove2word2vec import glove2word2vec
glove2word2vec(glove_input_file="vectors.txt", word2vec_output_file="gensim_glove_vectors.txt")
Wreszcie czytać txt word2vec do gensim modelu korzystania KeyedVectors:
from gensim.models.keyedvectors import KeyedVectors
glove_model = KeyedVectors.load_word2vec_format("gensim_glove_vectors.txt", binary=False)
Teraz można użyć gensim word2vec metody (na przykład podobieństwo), jak chcesz.
Zastanawiam się, czy istnieje szybszy sposób robienia tego. Używam kodu podobnego do powyższego, ale przetworzenie całego tokena 6-bitowego tokena zajmie około 27 godzin. Wszelkie pomysły, jak to zrobić szybciej? –
@EdwardBurgin, wykonanie całego pliku zajmuje mi 1 minutę. prosimy o udostępnienie "podobnego kodu", o którym mowa w komentarzu. –