Charger des vecteurs de gants pré-entraînés en python
J'ai téléchargé pré-entraîné gant vecteur de fichier à partir d'internet. C'est un .fichier txt. Je ne suis pas en mesure de charger et d'accès. Il est facile à charger et à accéder à un vecteur de mot fichier binaire en utilisant gensim mais je ne sais pas comment le faire quand c'est un format de fichier texte.
Merci d'avance
source d'informationauteur Same | 2016-06-13
Vous devez vous connecter pour publier un commentaire.
gant modèle fichiers sont dans un mot - format vectoriel. Vous pouvez ouvrir le fichier texte pour vérifier cela. Voici un petit extrait de code que vous pouvez utiliser pour charger un pré-entraîné gant de fichier:
Vous pouvez alors accéder à la parole des vecteurs simplement à l'aide de la variable de modèle.
print model['hello']
Vous pouvez le faire beaucoup plus rapidement avec les pandas:
Ensuite pour obtenir le vecteur d'un mot:
Et de trouver le plus proche de la parole d'un vecteur:
Je suggère d'utiliser gensim à tout faire. Vous pouvez lire le fichier, et également l'avantage d'avoir un grand nombre de méthodes déjà mises en œuvre sur ce grand paquet.
Supposons que vous avez généré Gant vecteurs en utilisant le programme en C++ et que votre "-enregistrer le fichier" paramètre "vecteurs". Gant exécutable va générer deux fichiers, "vecteurs.bin" et "vectors.txt".
Utilisation glove2word2vec pour convertir Gant de vecteurs en format texte dans le word2vec format texte:
Enfin, lire les word2vec txt pour un gensim modèle à l'aide de KeyedVectors:
Maintenant, vous pouvez utiliser gensim word2vec méthodes (par exemple, la similitude) que vous le souhaitez.
Voici en une seule ligne si tout ce que vous voulez, c'est l'intégration de la matrice
np.loadtxt(path, usecols=range(1, dim+1), comments=None)
où
path
est le chemin d'accès à votre téléchargé Gant de fichier etdim
est la dimension de la parole de leur incorporation.Si vous souhaitez à la fois les mots et les vecteurs correspondant que vous pouvez faire
glove = np.loadtxt(path, dtype='str', comments=None)
et séparer les mots et les vecteurs comme suit