Cet article présente principalement l'utilisation de la bibliothèque gensim word2vec en Python. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
pip install gensim Après avoir installé la bibliothèque. , vous pouvez importer et utiliser :
1. Définition du modèle de formation
from gensim.models import Word2Vec model = Word2Vec(sentences, sg=1, size=100, window=5, min_count=5, negative=3, sample=0.001, hs=1, workers=4)
Explication du paramètre :
1.sg=1 est l'algorithme skip-gram, qui est sensible aux mots basse fréquence ; Algorithme CBOW.
2.size est la dimension du vecteur de mot de sortie. Si la valeur est trop petite, le mappage de mots affectera les résultats en raison de conflits. Si la valeur est trop grande, elle consommera de la mémoire et ralentira. le calcul de l'algorithme. Généralement, la valeur est comprise entre 100 et 200.
3.window est la distance maximale entre le mot actuel et le mot cible dans la phrase. 3 signifie regarder les mots 3-b avant le mot cible et les mots b après (b est aléatoire entre 0 et 3). ).
4.min_count est utilisé pour filtrer les mots avec une fréquence inférieure à min-count sera ignoré.
5. Le négatif et l'échantillon peuvent être ajustés en fonction des résultats de l'entraînement. L'échantillon signifie que les mots à fréquence plus élevée sont sous-échantillonnés de manière aléatoire jusqu'au seuil défini.
6.hs=1 signifie que le softmax hiérarchique sera utilisé par défaut hs=0 et que négatif n'est pas 0, un échantillonnage négatif sera sélectionné.
7. Les Workers contrôlent le parallélisme de la formation. Ce paramètre n'est valide qu'après l'installation de Cpython, sinon un seul cœur peut être utilisé.
Pour une description détaillée des paramètres, veuillez consulter le code source de word2vec.
2. Sauvegarde et chargement du modèle après l'entraînement
model.save(fname) model = Word2Vec.load(fname)
3. Utilisation du modèle (calcul de similarité des mots, etc.)
model.most_similar(positive=['woman', 'king'], negative=['man']) #输出[('queen', 0.50882536), ...] model.doesnt_match("breakfast cereal dinner lunch".split()) #输出'cereal' model.similarity('woman', 'man') #输出0.73723527 model['computer'] # raw numpy vector of a word #输出array([-0.00449447, -0.00310097, 0.02421786, ...], dtype=float32)
Les autres contenus ne seront pas être décrit en détail, veuillez vous référer à la description officielle de word2vec de gensim pour plus de détails, qui est très détaillée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!