Word2Vec pour la reconnaissance d'entités nommées

25

Je cherche à utiliser l'implémentation de word2vec de google pour construire un système de reconnaissance d'entités nommées. J'ai entendu dire que les réseaux neuronaux récursifs avec rétropropagation à travers la structure sont bien adaptés aux tâches de reconnaissance d'entités nommées, mais je n'ai pas pu trouver une implémentation décente ou un tutoriel décent pour ce type de modèle. Parce que je travaille avec un corpus atypique, les outils NER standard en NLTK et similaires ont très mal fonctionné, et il semblerait que je doive former mon propre système.

Bref, quelles ressources sont disponibles pour ce genre de problème? Existe-t-il une implémentation de réseau neuronal récursif standard disponible?

Madison May
la source
Avez-vous essayé de former le Stanford NER sur votre corpus? Il y a un tutoriel ici .
Emre
Je n'ai pas - je devrais essayer de voir comment ça se passe.
Madison le
J'aimerais utiliser les fonctionnalités de word2vec ou similaire, car j'ai accès à un ensemble de données étiquetées relativement petit et j'ai besoin de tirer le meilleur parti des données non étiquetées que j'ai en main.
Madison

Réponses:

7

Deux articles récents utilisent une architecture d'apprentissage en profondeur appelée CharWNN pour résoudre ce problème. CharWNN a d'abord été utilisé pour obtenir des résultats de pointe (sans fonctionnalités artisanales) sur le balisage Part of Speech (POS) sur un corpus anglais.

Le deuxième article du même auteur utilise la même architecture (ou une architecture similaire) pour prédire si un mot appartient à 10 classes d'entités nommées, avec des résultats de pointe apparents.

shark8me
la source
Intéressant. Merci d'avoir partagé cela. Je me demande pourquoi ils n'ont pas testé cette approche sur des corpus anglais.
MaticDiba
3

Essayez http://deeplearning4j.org/word2vec.html . Cela a une implémentation de Word2Vec utilisé au lieu de Bag of Words pour NER et d'autres tâches NLP.

la méthode de jeu
la source
1
Je n'ai eu aucun problème à trouver des implémentations de word2vec, mais je n'ai pas pu trouver de réseau récursif fonctionnel à utiliser.
Madison
Le lien n'est plus actif, si possible, veuillez partager le nouveau lien de travail
Amandeep
1

Voici quelques idées sur la façon d'utiliser des vecteurs de mots pour NER, qui adopte une approche centrée sur word2vec pour la plupart non supervisée.

  1. Étant donné un ensemble de vecteurs de mots (quelque chose que vous avez formé ou quelque chose de standard comme GoogleNews-vectors-negative300.bin), découvrez les clusters dans l'espace vectoriel. Ces clusters sont essentiellement vos définitions de divers concepts sans nom.
  2. Avec une supervision minimale, vous pouvez mapper / convertir les clusters sans nom pour qu'ils correspondent aux connaissances humaines, créant ainsi des concepts nommés basés sur les vecteurs de mots connus et les concepts sans nom. Par exemple, une méthode findCluster(['joy', 'surprise', 'disgust', 'trust', 'fear', 'sadness', 'anger', 'anticipation'])peut renvoyer une liste contenant des centaines de mots principalement liés à l'émotion. Si vous nommez cette liste «émotion», alors vous avez un concept nommé «émotion» défini en fonction de l'espace vectoriel.
  3. Vous pouvez également effectuer des calculs vectoriels pour trouver le concept intermédiaire entre deux concepts donnés. Par exemple, les mathématiques vectorielles peuvent vous dire que lorsqu'on leur donne deux mots `` surprise '' et `` dégoût '', les éléments suivants se trouvent entre les deux: consternation, étonnement, déception, étonnement, perplexité, exaspération, incrédulité, choc, etc. Cela permet vous construire une relation entre les concepts.
  4. Vous pouvez répéter ce qui précède pour créer différents types de commandes nommées, comme: les jours de semaine, toutes les émotions, les émotions heureuses, les véhicules, etc.
  5. Une fois que vous avez créé des couches de concepts nommés, vous pouvez ensuite former un RNN sur un corpus de texte qui a été augmenté avec les concepts nommés, de sorte que «les sauts de renard brun» sont également «{color} {animal} {action} 'etc. De cette façon, le RNN devrait être capable d'apprendre une grammaire rudimentaire de manière non supervisée.
  6. Si vous avez construit une grammaire suffisamment puissante à partir de ce qui précède, vous devriez pouvoir l'appliquer à certaines de vos tâches NER.
Kaihu Chen
la source