Métaphore chinoise
Tâche partagée CCL 2018 - Reconnaissance des métaphores chinoises et analyse des sentiments
Description de la tâche
- Détails de la mission : http://ir.dlut.edu.cn/news/detail/508
- Mise à jour : la sous-tâche 1 est une tâche à deux catégories. Il vous suffit d'identifier s'il s'agit d'une métaphore verbale.
- Heure : Date limite à 9h30. Chaque équipe peut soumettre ses résultats les 9 septembre, 16 septembre, 23 septembre et 30 septembre, à partir de 22h00 tous les dimanches ; chaque équipe ne peut soumettre ses résultats qu'un maximum de trois fois par semaine et, en fonction des derniers résultats soumis, calculer le classement. Il sera annoncé sur le site Internet (http://ir.dlut.edu.cn/) avant 17h00 les 10, 17, 24 septembre et 1er octobre.
- Données de formation : http://ir.dlut.edu.cn/File/Download?cid=3 "Données d'évaluation de la reconnaissance des métaphores chinoises et de l'analyse des sentiments du CCL 2018"
- Données de test (sans étiquette) : http://ir.dlut.edu.cn/File/Download?cid=3 "Données de test de reconnaissance des métaphores chinoises CCL 2018 et d'analyse des sentiments"
- Rappel : Selon les exigences de l'organisateur, cet ensemble de données ne peut être utilisé que pour cette tâche d'évaluation. Pour d'autres utilisations, veuillez contacter l'organisateur.
Structure des pensions
- /Corpus : stocke le corpus de métaphores chinoises Penn StateUCMC (pas encore utilisé)
- /data : données d'entraînement et de test
- /dicts : les dictionnaires relationnels des deux sous-tâches, ainsi que le vocabulaire
- /mémo : procès-verbal de réunion
- /model_structure : diagramme de structure du modèle nn
- /article : littérature connexe
- /pretrained_emb : intégration de mots pré-entraînés téléchargés depuis Internet (basés sur Wikipédia), filtrés
- /src : code
- /results : résultats de l'évaluation du modèle et étiquettes de test générées
- /models : vous devez créer ce chemin vous-même. Vous trouverez ci-dessous deux sous-chemins : /verb et /emo, qui sont utilisés pour stocker les modèles entraînés.
- /submission : fichiers de résultats soumis, stockés par date
Structure du code
- Code de base :
- conf.py : définir divers paramètres
- multi_cgru_keras.py : structure du modèle
- train.py : entraîner le modèle sur 90 % des données d'entraînement
- eva_model.py : évaluer les performances du modèle sur 10 % des données d'entraînement
- generate_test_labels.py : prédire les étiquettes sur l'ensemble de test
- Code auxiliaire :
- split_data.py : divisez l'ensemble de formation en 90 % (pour la formation) et 10 % (pour évaluer les performances du modèle)
- back_translate.py : utilisez l'API Google Translate pour ajouter des données de formation
- convert_data.py : convertissez les données XML en txt et convertissez les étiquettes numériques en étiquettes de texte faciles à comprendre
- data_provider.py : lire les données et préparer la formation
- filter_wordemb.py : filtre les vecteurs de mots pré-entraînés en fonction des données d'entraînement et de test, en conservant uniquement les mots qui apparaissent dans les données (les vecteurs de mots wiki actuels ont été filtrés)
Comment exécuter du code
- Définir les paramètres pertinents dans conf.py
- Exécutez train.py pour entraîner le modèle
- Exécutez eva_model.py pour évaluer les performances du modèle
- Sur la base des résultats de l'évaluation de la troisième étape, sélectionnez le modèle avec les meilleures performances et utilisez generate_test_labels pour générer des étiquettes de données de test.
Fait
- NN Baseline : sur la base du CGRU, la meilleure performance (précision) est d'environ 70 % pour la tâche 1 et d'environ 39 % pour la tâche2.
- Comparaison : base de référence majoritaire, tâche 2 37 %
- Comparaison : base de référence naïve basée sur le lexique émotionnel, sans apprentissage automatique, tâche 2 51 %
- Basé sur NN Bseline, essayez les fonctionnalités suivantes :
- Optimiser la couche d'intégration
- Utilisez l'intégration pré-entraînée pour remplacer l'intégration apprise par le modèle lui-même. La meilleure performance de la tâche 2 est d'environ 50 %.
- Épissage vectoriel de mots : combiné à la réduction du paramètre de lissage, macro tâche 2 f - 39,6 %
- Retour Traduction
- Google Translate 6 langues, testé plusieurs méthodes de filtrage, la tâche 2 a les meilleures performances d'environ 53 %
- Autres structures modèles
- Utiliser directement l'intégration comme fonctionnalités de classification
- LSTM+entièrement connecté:task2 macro f - 40 %
- Une petite analyse des erreurs :
- Il a été observé que le surajustement était grave, j'ai donc essayé d'ajuster l2(↑), dropout(↑), smooth(↓), mais aucun changement majeur n'a été trouvé. En même temps, il a été constaté que les performances du même modèle. était instable (la différence entre plusieurs exécutions de la tâche 2 pouvait atteindre 10 %)
- Certains des mauvais cas sont des phrases avec des transitions (par exemple, elles contiennent des mots tels que « comment cela pourrait-il ne pas être », « ne peut pas », « depuis », etc.)
- Il a été constaté que certaines des annotations contenues dans les données étaient douteuses.
- Obtenez le corpus de métaphores chinoises de Penn State, qui peut être utilisé pour l'intégration de mots d'auto-formation
- Corpus de formation supplémentaire : utilisez un autre corpus anglais pour le traduire afin de compléter le corpus de formation
- Ajuster les paramètres
Todolist
- Essayez plus de fonctionnalités basées sur la référence NN :
- Continuer à optimiser la couche Embedding
- Utilisez d'autres intégrations pré-entraînées : par exemple, intégration formée sur le corpus de métaphores de Penn State, ELMo Embedding, etc.
- Ajoutez le vocabulaire émotionnel à nn :
- Incorporation des labels : La méthode existante n'est utilisée que pour les labels avec des relations progressives (très négatif, négatif, neutre, pos, très pos)
- sous-catégorie de verbes et de noms
- Relation de dépendance
- En observant les données, examinez le rôle des mots de fonction dans les deux sous-tâches, puis décidez quelles informations sur les mots de fonction ajouter au modèle. Mots fonctionnels : Quels types d’informations sont utiles ?
- Essayez d'autres structures de modèle :
- (Reportez-vous à l'article « La ligne de base a besoin de plus d'amour : sur les modèles simples basés sur l'intégration de mots et les mécanismes de pooling associés »)
- Utilisez Transformer comme encodeur de phrase (voir l'article « L'attention est tout ce dont vous avez besoin »)
Ressources
- Corpus de métaphores chinoises de Penn State (http://www.personal.psu.edu/xxl13/download.html)
- Bibliothèque d'ontologies de vocabulaire émotionnel de l'Université de technologie de Dalian (http://ir.dlut.edu.cn/EmotionOntologyDownload)
Organisateur
Laboratoire de recherche en recherche d'informations de l'Université de technologie de Dalian