web-dev-qa-db-fra.com

Utilisation d'un modèle Word2Vec pré-formé sur wikipedia

J'ai besoin d'utiliser gensim pour obtenir des représentations vectorielles des mots, et je pense que la meilleure chose à utiliser serait un module Word2vec pré-formé sur le corpus wikipedia anglais. Quelqu'un sait-il où le télécharger, comment l'installer et comment utiliser gensim pour créer les vecteurs?

11
Boris

@imanzabet a fourni des liens utiles avec des vecteurs pré-formés, mais si vous voulez former les modèles vous-même en utilisant le génisme, vous devez faire deux choses:

  1. Acquérir les données Wikipedia, auxquelles vous pouvez accéder ici . On dirait que l'instantané le plus récent de Wikipedia anglais était le 20, et il peut être trouvé ici . Je crois que les autres "wikis" de langue anglaise, par exemple les guillemets sont capturés séparément, donc si vous voulez les inclure, vous devrez également les télécharger.

  2. Chargez les données et utilisez-les pour générer les modèles. C'est une question assez large, donc je vais simplement vous lier à l'excellent documentation sur le génisme et tutoriel Word2vec .

Enfin, je soulignerai qu'il semble y avoir un article de blog décrivant précisément votre cas d'utilisation.

2
Suriname0

Vous pouvez vérifier WebVectors pour trouver des modèles Word2Vec formés sur divers corpus. Les modèles sont livrés avec un fichier Lisez-moi couvrant les détails de la formation. Vous devrez cependant être un peu prudent en utilisant ces modèles. Je ne suis pas sûr de tous, mais au moins dans le cas de Wikipedia, le modèle n'est pas un fichier binaire que vous pouvez facilement charger en utilisant par exemple La fonctionnalité de gensim, mais une version txt, c'est-à-dire un fichier avec des mots et des vecteurs correspondants. Gardez à l'esprit, cependant, que les mots sont ajoutés par leurs balises de partie du discours (POS), donc par exemple, si vous souhaitez utiliser le modèle pour trouver des similitudes pour Word vacation, vous obtiendra un KeyError si vous tapez vacances tel quel, car le modèle stocke ce mot en tant que vacation_NOUN. Un exemple d'extrait de la façon dont vous pourriez utiliser le modèle wiki (peut-être d'autres aussi s'ils sont dans le même format) et une sortie ci-dessous

import gensim.models

model = "./WebVectors/3/enwiki_5_ner.txt"

Word_vectors = gensim.models.KeyedVectors.load_Word2vec_format(model, binary=False)
print(Word_vectors.most_similar("vacation_NOUN"))
print(Word_vectors.most_similar(positive=['woman_NOUN', 'king_NOUN'], negative=['man_NOUN']))

et la sortie

▶ python3 wiki_model.py
[('vacation_VERB', 0.6829521656036377), ('honeymoon_NOUN', 0.6811978816986084), ('holiday_NOUN', 0.6588436365127563), ('vacationer_NOUN', 0.6212040781974792), ('resort_NOUN', 0.5720850825309753), ('trip_NOUN', 0.5585346817970276), ('holiday_VERB', 0.5482848882675171), ('week-end_NOUN', 0.5174300670623779), ('newlywed_NOUN', 0.5146450996398926), ('honeymoon_VERB', 0.5135983228683472)]
[('monarch_NOUN', 0.6679952144622803), ('ruler_NOUN', 0.6257176995277405), ('regnant_NOUN', 0.6217397451400757), ('royal_ADJ', 0.6212111115455627), ('princess_NOUN', 0.6133661866188049), ('queen_NOUN', 0.6015778183937073), ('kingship_NOUN', 0.5986001491546631), ('prince_NOUN', 0.5900266170501709), ('royal_NOUN', 0.5886058807373047), ('throne_NOUN', 0.5855424404144287)]

[~ # ~] mise à jour [~ # ~] Voici quelques liens utiles vers des modèles binaires:

Modèles d'intégration Word pré-formés:

modèles Fasttext :

Google Word2Vec

GloVe : Vecteurs mondiaux pour la représentation des mots

  • glove.6B.Zip : Wikipédia 2014 + Gigaword 5 (jetons 6B, vocabulaire 400K, sans casse, vecteurs 50d, 100d, 200d et 300d, téléchargement 822 Mo). Voici n exemple en action.
  • glove.840B.300d.Zip : Common Crawl (jetons 840B, vocabulaire 2,2M, avec boîtier, vecteurs 300d, téléchargement de 2,03 Go)

WebVectors

  • modèles formés sur divers corpus, augmentés par des balises Part-of-Speech (POS)
14
formi23