Implémentation officielle de PyTorch et ensemble d'évaluation EmoCause de notre article EMNLP 2021 ?
Hyunwoo Kim, Byeongchang Kim et Gunhee Kim. Prise de perspective et pragmatique pour générer des réponses empathiques centrées sur les causes émotionnelles. EMNLP , 2021 [Papier]
Si vous utilisez les documents de ce référentiel dans le cadre d'une recherche publiée, nous vous demandons de citer l'article suivant :
@inproceedings { Kim:2021:empathy ,
title = { Perspective-taking and Pragmatics for Generating Empathetic Responses Focused on Emotion Causes } ,
author = { Kim, Hyunwoo and Kim, Byeongchang and Kim, Gunhee } ,
booktitle = { EMNLP } ,
year = 2021
}
Notre code est construit sur le framework ParlAI. Nous vous recommandons de créer un environnement conda comme suit
conda env create -f environment.yml
et activez-le avec
conda activate focused-empathy
python -m spacy download en
EmoCause est un ensemble de données de mots de cause d'émotion annotés dans des situations émotionnelles de l'ensemble valide et de test EmpatheticDialogues. L'objectif est de reconnaître les mots qui provoquent des émotions dans des phrases en s'entraînant uniquement sur des étiquettes d'émotion au niveau de la phrase sans étiquettes au niveau des mots ( c'est-à-dire une reconnaissance de cause d'émotion faiblement supervisée ). EmoCause est basé sur le fait que les humains ne reconnaissent pas la cause des émotions grâce à l'apprentissage supervisé sur les étiquettes de cause au niveau des mots. Nous ne proposons donc pas de kit de formation.
Vous pouvez télécharger l'ensemble d'évaluation EmoCause [ici].
Notez que l'ensemble de données sera téléchargé automatiquement lorsque vous exécutez la commande d'expérience ci-dessous.
#Émotion | Type d'étiquette | #Étiquette/Énoncé | #Énonciation | |
---|---|---|---|---|
EmoCause | 32 | Mot | 2.3 | 4,6K |
{
"original_situation": the original situations in the EmpatheticDialogues,
"tokenized_situation": tokenized situation utterances using spacy,
"emotion": emotion labels,
"conv_id": id for each corresponding conversation in EmpatheticDialogues,
"annotation": list of tuples: (emotion cause word, index),
"labels": list of strings containing the emotion cause words
}
Tous les modèles correspondants seront téléchargés automatiquement lors de l'exécution des commandes suivantes.
Nous fournissons également des liens de téléchargement manuel : [GEE] [Finetuned Blender]
Vous pouvez évaluer notre proposition d'estimateur d'émotion générative (GEE) sur l'ensemble d'évaluation EmoCause.
python eval_emocause.py --model agents.gee_agent:GeeCauseInferenceAgent --fp16 False
Vous pouvez évaluer notre approche pour générer des réponses empathiques ciblées au-dessus d'un Blender affiné (Vous n'êtes pas familier avec Blender ? Voir ici !).
python eval_empatheticdialogues.py --model agents.empathetic_gee_blender:EmpatheticBlenderAgent --model_file data/models/finetuned_blender90m/model --fp16 False --empathy-score False
L'ajout de l'indicateur --alpha 0
exécutera le Blender sans pragmatique. Vous pouvez également essayer le distraction aléatoire (Plain S1) en ajoutant --distractor-type random
.
Pour mesurer également les scores d’interprétation et d’exploration, définissez le --empathy-score
sur True
. Il téléchargera automatiquement les modèles RoBERTa affinés sur EmpatheticDialogues. Pour plus de détails sur les scores d'empathie, visitez le dépôt original.
Nous remercions les évaluateurs anonymes pour leurs commentaires utiles sur ce travail.
Cette recherche a été soutenue par le Samsung Research Funding Center de Samsung Electronics sous le numéro de projet SRFCIT210101. Les ressources de calcul et l'étude humaine sont soutenues par le programme de recherche sur le cerveau de la Fondation nationale de recherche de Corée (NRF) (2017M3C7A1047860).
Veuillez contacter Hyunwoo Kim à hyunw.kim à vl dot snu dot ac dot kr.
Ce référentiel est sous licence MIT. Voir le fichier LICENSE pour plus de détails.