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?
machine-learning
python
neural-network
nlp
Madison May
la source
la source
Réponses:
Au lieu de «réseaux neuronaux récursifs avec rétropropagation», vous pourriez envisager l'approche utilisée par Frantzi, et. Al. au National Center for Text Mining (NaCTeM) à l'Université de Manchester pour Termine (voir: http://www.nactem.ac.uk/index.php et http://personalpages.manchester.ac.uk/staff/sophia. ananiadou / IJODL2000.pdf ) Au lieu de réseaux neuronaux profonds, ils "combinent informations linguistiques et statistiques".
la source
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.
la source
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 source
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.
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.la source