Ich schlage vor, mit gensim alles zu tun. Sie können die Datei lesen und profitieren auch von vielen Methoden, die bereits in diesem großartigen Paket implementiert sind.
Angenommen, Sie haben GloVe Vektoren mit dem C++ - Programm generiert und dass der Parameter "-save-file" "Vektoren" ist. Glove executable erzeugt zwei Dateien, "vectors.bin" und "vectors.txt".
Verwenden glove2word2vec Handschuh Vektoren im Textformat in das word2vec Text-Format zu konvertieren:
from gensim.scripts.glove2word2vec import glove2word2vec
glove2word2vec(glove_input_file="vectors.txt", word2vec_output_file="gensim_glove_vectors.txt")
Schließlich lesen Sie die word2vec txt zu einem GENSIM Modell KeyedVectors:
from gensim.models.keyedvectors import KeyedVectors
glove_model = KeyedVectors.load_word2vec_format("gensim_glove_vectors.txt", binary=False)
Jetzt können Sie verwenden gensim word2vec Methoden (zum Beispiel Ähnlichkeit), wie Sie möchten.
Ich frage mich, ob es eine schnellere Möglichkeit gibt, dies zu tun. Ich verwende Code ähnlich dem oben, aber es würde ungefähr 27 Stunden dauern, die ganzen 6 Milliarden Token-Einbettungen zu verarbeiten. Irgendwelche Ideen, wie man das schneller macht? –
@EdwardBurgin, es dauert 1 Minute, um die ganze Datei zu vervollständigen. Bitte teilen Sie den "ähnlichen Code", auf den Sie sich in Ihrem Kommentar beziehen. –