✅ El punto de referencia en inglés para evaluar los métodos de explicación causal.
✅ Análisis de análisis de sentimientos de aspecto (ABSA) validados por humanos.
Eldar David Abraham, Karel d'Oosterlink, Amir Feder, Yair Gat, Atticus Geiger, Christopher Potts, Roi Reichart, Zhengxuan Wu. 2022. Cebab: Estimación de los efectos causales de los conceptos del mundo real en el comportamiento del modelo de PNL. Sra., Universidad de Stanford, Technion - Instituto de Tecnología de Israel y Universidad de Gante.
@unpublished{abraham-etal-2022-cebab,
title={{CEBaB}: Estimating the Causal Effects of Real-World Concepts on {NLP} Model Behavior},
author={Abraham, Eldar David and D'Oosterlinck, Karel and Feder, Amir and Gat, Yair Ori and Geiger, Atticus and Potts, Christopher and Reichart, Roi and Wu, Zhengxuan},
note={arXiv:2205.14140},
url={https://arxiv.org/abs/2205.14140},
year={2022}}
Los archivos del conjunto de datos se pueden descargar desde CEBAB-V1.1.ZIP. Nuestro V1.1 difiere de V1.0 solo en que V1.1 tiene ID únicos adecuados, nuestros ejemplos y corrige un error que condujo a algunas ID no únicas en la versión anterior. No hay cambios en otros campos críticos.
Tenga en cuenta que le recomendamos que use la biblioteca de datos de datos Huggingface para usar nuestro conjunto de datos. Consulte a continuación una carga de datos de 1 lineal.
El conjunto de datos consta de Train_Exclusive/Train_inclusive/Dev/Test Splits:
train_exclusive.jsontrain_inclusive.jsontrain_observational.jsondev.jsontest.json La hoja de datos para nuestro conjunto de datos:
Cebab se mantiene principalmente utilizando la biblioteca de datos de datos Huggingface:
"""
Make sure you install the Datasets library using:
pip install datasets
"""
from datasets import load_dataset
CEBaB = load_dataset ( "CEBaB/CEBaB" ) Esta función se puede usar para cargar cualquier subconjunto de los archivos RAW *.json :
import json
def load_split ( splitname ):
with open ( splitname ) as f :
data = json . load ( f )
return data {
'id' : str in format dddddd_dddddd as the concatenation of original_id and edit_id ,
'original_id' : str in format dddddd ,
'edit_id' : str in format dddddd ,
'is_original' : bool ,
'edit_goal' : str ( one of "Negative" , "Positive" , "unknown" ) or None if is_original ,
'edit_type' : str ( one of "noise" , "service" , "ambiance" , "food" ),
'edit_worker' : str or None if is_original ,
'description' : str ,
'review_majority' : str ( one of "1" , "2" , "3" , "4" , "5" , "no majority" ),
'review_label_distribution' : dict ( str to int ),
'review_workers' : dict ( str to str ),
'food_aspect_majority' : str ( one of "Negative" , "Positive" , "unknown" , "no majority" ),
'ambiance_aspect_majority' : str ( one of "Negative" , "Positive" , "unknown" , "no majority" ),
'service_aspect_majority' : str ( one of "Negative" , "Positive" , "unknown" , "no majority" ),
'noise_aspect_majority' : str ( one of "Negative" , "Positive" , "unknown" , "no majority" ),
'food_aspect_label_distribution' : dict ( str to int ),
'ambiance_aspect_label_distribution' : dict ( str to int ),
'service_aspect_label_distribution' : dict ( str to int ),
'noise_aspect_label_distribution' : dict ( str to int ),
'food_aspect_validation_workers' : dict ( str to str ),
'ambiance_aspect_validation_workers' : dict ( str to str ),
'service_aspect_validation_workers' : dict ( str to str ),
'noise_aspect_validation_workers' : dict ( str to str ),
'opentable_metadata' : {
"restaurant_id" : int ,
"restaurant_name" : str ,
"cuisine" : str ,
"price_tier" : str ,
"dining_style" : str ,
"dress_code" : str ,
"parking" : str ,
"region" : str ,
"rating_ambiance" : int ,
"rating_food" : int ,
"rating_noise" : int ,
"rating_service" : int ,
"rating_overall" : int
}
}Detalles:
'id' : el identificador único de este ejemplo (una combinación de dos ID que se enumeran a continuación).'original_id' : el identificador único de la oración original para un ejemplo editado.'edit_id' : el identificador único de la oración editada.'is_original' : indique si esta oración es una edición o no.'edit_goal' : la etiqueta de objetivos para el aspecto de edición si es un ejemplo editado, de lo contrario, None .'edit_type' : el aspecto para modificar o etiquetar con sentimiento si es un ejemplo editado, de lo contrario None .'edit_worker' : ID de mTurk anónimo del trabajador que escribió 'description' . Estos son de la misma familia de IDS que se usan en 'aspect_validation_workers' .'description' : el texto de ejemplo.'review_majority' : la etiqueta de nivel de revisión para el aspecto de edición elegido por al menos tres de los cinco trabajadores si hay uno, de lo contrario, no majority .'review_label_distribution' : Distribución de calificación de nivel de revisión de la tarea de validación de MTURK.'review_workers' : respuesta individual para la calificación de nivel de revisión de los anotadores. Las claves son listas de ID de mTurk anonimizadas, que se utilizan de manera consistente en todo el conjunto de datos.'*_aspect_majority' : la etiqueta de nivel de aspecto para el aspecto de edición elegido por al menos tres de los cinco trabajadores si no hay uno, de lo contrario, no majority .'*_aspect_label_distribution' : distribución de calificación de nivel de aspecto de la tarea de validación MTURK.'*_aspect_label_workers' : respuesta individual para la calificación de nivel de revisión de los anotadores. Las claves son listas de ID de mTurk anonimizadas, que se utilizan de manera consistente en todo el conjunto de datos.'opentable_metadata' : metadatos para la revisión.Aquí hay un ejemplo,
{
"id" : "000000_000000" ,
"original_id" : "000000" ,
"edit_id" : "000000" ,
"is_original" : true ,
"edit_goal" : null ,
"edit_type" : null ,
"edit_worker" : null ,
"description" : "Overbooked and didnot honor reservation time,put on wait list with walk INS" ,
"review_majority" : "1" ,
"review_label_distribution" : {
"1" : 4 ,
"2" : 1
},
"review_workers" : {
"w244" : "1" ,
"w120" : "2" ,
"w197" : "1" ,
"w7" : "1" ,
"w132" : "1"
},
"food_aspect_majority" : "" ,
"ambiance_aspect_majority" : "" ,
"service_aspect_majority" : "Negative" ,
"noise_aspect_majority" : "unknown" ,
"food_aspect_label_distribution" : "" ,
"ambiance_aspect_label_distribution" : "" ,
"service_aspect_label_distribution" : {
"Negative" : 5
},
"noise_aspect_label_distribution" : {
"unknown" : 4 ,
"Negative" : 1
},
"food_aspect_validation_workers" : "" ,
"ambiance_aspect_validation_workers" : "" ,
"service_aspect_validation_workers" : {
"w148" : "Negative" ,
"w120" : "Negative" ,
"w83" : "Negative" ,
"w35" : "Negative" ,
"w70" : "Negative"
},
"noise_aspect_validation_workers" : {
"w27" : "unknown" ,
"w23" : "unknown" ,
"w81" : "Negative" ,
"w103" : "unknown" ,
"w9" : "unknown"
},
"opentable_metadata" : {
"restaurant_id" : 6513 ,
"restaurant_name" : "Molino's Ristorante" ,
"cuisine" : "italian" ,
"price_tier" : "low" ,
"dining_style" : "Casual Elegant" ,
"dress_code" : "Smart Casual" ,
"parking" : "Private Lot" ,
"region" : "south" ,
"rating_ambiance" : 1 ,
"rating_food" : 3 ,
"rating_noise" : 2 ,
"rating_service" : 2 ,
"rating_overall" : 2
}
}Organizamos nuestro código de análisis en nuestro código Foler.
Esta sección contiene la tabla de clasificación para algunos de los mejores puntajes obtenidos en CEBAB como una tarea de clasificación de sentimientos de cinco clases. Para agregar puntajes, considere una solicitud de extracción.
| Arquitectura modelo | Métrico | Aproximadamente | S-Learner | Inlp |
|---|---|---|---|---|
| Bert | L2 | 0.81 (± 0.01) | 0.74 (± 0.02) | 0.80 (± 0.02) |
| Bert | Costilla | 0.61 (± 0.01) | 0.63 (± 0.01) | 0.59 (± 0.03) |
| Bert | Normdiff | 0.44 (± 0.01) | 0.54 (± 0.02) | 0.73 (± 0.02) |
| Roberta | L2 | 0.83 (± 0.01) | 0.78 (± 0.01) | 0.84 (± 0.01) |
| Roberta | Costilla | 0.60 (± 0.01) | 0.64 (± 0.01) | 0.58 (± 0.01) |
| Roberta | Normdiff | 0.45 (± 0.00) | 0.59 (± 0.01) | 0.81 (± 0.01) |
| GPT-2 | L2 | 0.72 (± 0.02) | 0.60 (± 0.02) | 0.72 (± 0.01) |
| GPT-2 | Costilla | 0.59 (± 0.01) | 0.59 (± 0.01) | 1.00 (± 0.00) |
| GPT-2 | Normdiff | 0.41 (± 0.01) | 0.40 (± 0.01) | 0.58 (± 0.03) |
| LSTM | L2 | 0.86 (± 0.01) | 0.73 (± 0.01) | 0.79 (± 0.01) |
| LSTM | Costilla | 0.64 (± 0.01) | 0.64 (± 0.01) | 0.74 (± 0.02) |
| LSTM | Normdiff | 0.50 (± 0.01) | 0.53 (± 0.01) | 0.60 (± 0.01) |
Cebab tiene una licencia internacional Creative Commons Attribution 4.0.