Question

Je suis en train de faire l'analyse des sentiments. Afin de convertir les mots à des vecteurs de mots que je utilise le modèle word2vec. Supposons que j'ai toutes les phrases dans une liste appelée « phrases » et je passe ces phrases à word2vec comme suit:

model = word2vec.Word2Vec(sentences, workers=4 , min_count=40, size=300,   window=5, sample=1e-3)

Depuis que je suis à Noob vecteurs de mot que j'ai deux doutes.
1- Réglage du nombre de caractéristiques 300 définit les caractéristiques d'un vecteur de mot. Mais ce que ces caractéristiques signifient? Si chaque mot dans ce modèle est représenté par un tableau 1x300 NumPy, alors qu'est-ce que ces 300 caractéristiques signifient pour ce mot?

2- Que sous-échantillonnage représenté par le paramètre « échantillon » dans le modèle ci-dessus faire en réelle?

Merci à l'avance.

Était-ce utile?

La solution

1 Le nombre de caractéristiques: En termes de modèle de réseau neuronal représente le nombre de neurones dans la couche de projection (caché). Comme la couche de projection repose sur l'hypothèse distributive, vecteur numérique pour chaque mot signifie qu'il relation de ses mots de contexte.

Ces caractéristiques sont apprises par le réseau de neurones que cette méthode est non surveillée. Chaque vecteur a plusieurs ensemble de caractéristiques sémantiques. Par exemple, nous allons prendre l'exemple classique, V(King) -V(man) + V(Women) ~ V(Queen) et chaque mot représenté par le vecteur 300-d. V(King) aura des caractéristiques sémantiques de Royality, royaume, la masculinité, l'homme dans le vecteur dans un certain ordre. V(man) aura la masculinité, l'homme, le travail dans un certain ordre. Ainsi, lorsque V(King)-V(Man) est fait, la masculinité, les caractéristiques de l'homme vont se réduit à néant et lorsqu'il est ajouté avec V(Women) qui ayant la féminité, les caractéristiques de l'homme seront ajoutés entraînant ainsi un vecteur très semblable à V(Queen). La chose intéressante est, ces caractéristiques sont codées dans le vecteur dans un certain ordre pour que les calculs numériques tels que l'addition, la soustraction fonctionne parfaitement. Cela est dû à la nature de la méthode d'apprentissage non supervisé dans le réseau de neurones.

2- Il y a deux algorithmes d'approximation. Hierarchical softmax et negative sampling. Lorsque le paramètre de l'échantillon est donnée, il faut échantillonnage négatif. En cas de softmax hiérarchique, pour chaque mot vecteur ses mots de contexte sont donné des résultats positifs et tous les autres mots du vocabulaire sont donnés sorties négatives. La question de la complexité du temps est résolu par échantillonnage négatif. Comme dans l'échantillonnage négatif, plutôt que le vocabulaire, seule une partie échantillonnée du vocabulaire est donné sorties négatives et les vecteurs sont formés qui est beaucoup plus rapide que l'ancien méthode.

Autres conseils

  1. Selon l'hypothèse distributive, dimension individuelle dans le vecteur du mot ne signifie pas grand-chose sur le mot dans le monde réel. Vous devez vous soucier des dimensions individuelles. Si votre question est alors comment dois-je choisir le nombre de dimesions, il est purement basé sur l'expérience de vos données et il peut aller de 100 à 1000. Pour de nombreuses expériences où la formation se fait sur le texte wiki la dimension 300 pour la plupart donnent le meilleur résultat.
  2. Exemple param est le paramètre utilisé pour tailler les mots ayant la fréquence élevée. Par exemple, « le » « est » « était », ces mots vides ne sont pas considérés dans la fenêtre tout en prédisant le mot de l'intérieur et la valeur par défaut fonctionne bien pour identifier ces mots d'arrêt dont la fréquence est plus élevée.
Licencié sous: CC-BY-SA avec attribution
scroll top