Implementação oficial do PyTorch e conjunto de avaliação EmoCause de nosso artigo EMNLP 2021?
Hyunwoo Kim, Byeongchang Kim e Gunhee Kim. Tomada de perspectiva e pragmática para gerar respostas empáticas com foco nas causas emocionais. EMNLP , 2021 [Artigo]
Se você usar os materiais deste repositório como parte de qualquer pesquisa publicada, pedimos que cite o seguinte artigo:
@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
}
Nosso código é construído na estrutura ParlAI. Recomendamos que você crie um ambiente conda da seguinte maneira
conda env create -f environment.yml
e ative-o com
conda activate focused-empathy
python -m spacy download en
EmoCause é um conjunto de dados de palavras de causa emocional anotadas em situações emocionais do conjunto válido e de teste EmpatheticDialogues. O objetivo é reconhecer palavras que causam emoção em sentenças, treinando apenas em rótulos de emoção em nível de sentença, sem rótulos em nível de palavra ( ou seja, reconhecimento de causa de emoção fracamente supervisionado ). EmoCause é baseado no fato de que os humanos não reconhecem a causa das emoções com aprendizagem supervisionada em rótulos de causa em nível de palavra. Portanto, não fornecemos um conjunto de treinamento.
Você pode baixar o conjunto de avaliação EmoCause [aqui].
Observe que o conjunto de dados será baixado automaticamente quando você executar o comando experimental abaixo.
#Emoção | Tipo de etiqueta | #Rótulo/Enunciado | #Enunciado | |
---|---|---|---|---|
EmoCausa | 32 | Palavra | 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
}
Todos os modelos correspondentes serão baixados automaticamente ao executar os comandos a seguir.
Também fornecemos links para download manual: [GEE] [Finetuned Blender]
Você pode avaliar nossa proposta de Estimador de Emoção Generativa (GEE) no conjunto de avaliação EmoCause.
python eval_emocause.py --model agents.gee_agent:GeeCauseInferenceAgent --fp16 False
Você pode avaliar nossa abordagem para gerar respostas empáticas focadas em um Blender ajustado (Não está familiarizado com o Blender? Veja aqui!).
python eval_empatheticdialogues.py --model agents.empathetic_gee_blender:EmpatheticBlenderAgent --model_file data/models/finetuned_blender90m/model --fp16 False --empathy-score False
Adicionar o sinalizador --alpha 0
executará o Blender sem pragmática. Você também pode tentar o distrator aleatório (Plain S1) adicionando --distractor-type random
.
Para medir também as pontuações de Interpretação e Exploração, defina --empathy-score
como True
. Ele baixará automaticamente os modelos RoBERTa ajustados no EmpatheticDialogues. Para obter mais detalhes sobre pontuações de empatia, visite o repositório original.
Agradecemos aos revisores anônimos por seus comentários úteis sobre este trabalho.
Esta pesquisa foi apoiada pelo Samsung Research Funding Center da Samsung Electronics sob o número de projeto SRFCIT210101. O recurso computacional e o estudo humano são apoiados pelo Programa de Pesquisa do Cérebro da Fundação Nacional de Pesquisa da Coreia (NRF) (2017M3C7A1047860).
Entre em contato com Hyunwoo Kim em hyunw.kim em vl ponto snu ponto ac ponto kr.
Este repositório é licenciado pelo MIT. Consulte o arquivo LICENSE para obter detalhes.