***** Nouveau 20 novembre 2018: la démo Web en ligne est disponible *****
Nous avons publié une démo en ligne (ainsi que des poids pré-formés) afin que vous puissiez jouer vous-même avec le modèle. Le code de l'interface Web est également disponible dans le dossier demo .
Pour télécharger les modèles pré-formés, veuillez installer Git LFS et faire une git lfs pull . Les poids du modèle seront enregistrés dans le dossier Model_Dumps.
Une approche hiérarchique multi-tâches pour l'apprentissage des intégres à partir de tâches sémantiques
Victor Sanh, Thomas Wolf, Sebastian Ruder
Accepté à AAAI 2019

HMTL est un modèle d'apprentissage multi-tâches hiérarchique qui combine un ensemble de quatre tâches sémantiques soigneusement sélectionnées (à savoir la recoginition des entités, la détection de mention d'entités, l'extraction des relations et la résolution de coreférence). Le modèle obtient des résultats de pointe sur la reconnaissance des entités nommés, la détection de mention d'entités et l'extraction de relation. En utilisant Senseval, nous montrons que lorsque nous passons du bas aux couches supérieures du modèle, le modèle a tendance à apprendre une représentation sémantique plus complexe.
Pour plus de détails sur les résultats, veuillez vous référer à notre article.
Nous avons publié le code pour la formation , le réglage fin et l'évaluation de HMTL. Nous espérons que ce code sera utile pour construire vos propres modèles multi-tâches (hiérarchiques ou non). Le code est écrit en python et alimenté par Pytorch .
Les principales dépendances sont:
Le code fonctionne avec Python 3.6 . Une version stable des dépendances est répertoriée dans requirements.txt .
Vous pouvez rapidement configurer un environnement de travail en appelant le script ./script/machine_setup.sh . Il installe Python 3.6, crée un environnement virtuel propre et installe toutes les dépendances requises (répertoriées dans requirements.txt ). Veuillez adapter le script en fonction de vos besoins.
Nous avons basé notre implémentation sur la bibliothèque ALLENNLP. Pour une introduction à cette bibliothèque, vous devez vérifier ces tutoriels.
Une expérience est définie dans un fichier de configuration JSON (voir configs/*.json pour des exemples). Le fichier de configuration décrit principalement les ensembles de données à charger, le modèle à créer avec tous les hyper-paramètres du modèle.
Une fois que vous avez configuré votre fichier de configuration (et défini des classes personnalisées telles que DatasetReaders si nécessaire), vous pouvez simplement lancer une formation avec la commande et les arguments suivants:
python train.py --config_file_path configs/hmtl_coref_conll.json --serialization_dir my_first_trainingUne fois que la formation a commencé, vous pouvez simplement suivre la formation dans le terminal ou ouvrir un Tensorboard (veuillez vous assurer que vous avez déjà installé Tensorboard et sa dépendance TensorFlow):
tensorboard --logdir my_first_training/log Nous avons utilisé Senseval pour évaluer les propriétés linguistiques apprises par le modèle. hmtl_senteval.py donne un exemple de la façon dont nous pouvons créer une interface entre Senseval et HMTL. Il évalue les propriétés linguistiques apprises par chaque couche de la hiarchy (les incorporations et les encodeurs des mots basés sur partage).
Pour télécharger les intégres pré-formés que nous avons utilisés dans HMTL, vous pouvez simplement lancer le script ./script/data_setup.sh .
Nous n'avons pas joint les ensembles de données utilisés pour former HMTL pour des raisons de licence, mais nous vous invitons à les collecter par vous-même: Ontonotes 5.0, Conll2003 et ACE2005. Les fichiers de configuration s'attendent à ce que les ensembles de données soient placés dans le dossier data/ .
Veuillez envisager de citer l'article suivant si vous trouvez ce référentiel utile.
@article{sanh2018hmtl,
title={A Hierarchical Multi-task Approach for Learning Embeddings from Semantic Tasks},
author={Sanh, Victor and Wolf, Thomas and Ruder, Sebastian},
journal={arXiv preprint arXiv:1811.06031},
year={2018}
}