✅ Benchmark berbahasa Inggris untuk mengevaluasi metode penjelasan kausal.
✅ Benchmark analisis sentimen berbasis aspek (ABSA) yang divalidasi manusia.
Eldar David Abraham, Karel D'Oosterlink, Amir Feder, Yair Gat, Atticus Geiger, Christopher Potts, Roi Reichart, Zhengxuan Wu. 2022. CEBAB: Memperkirakan efek kausal dari konsep dunia nyata pada perilaku model NLP. Ms., Universitas Stanford, Teknik - Institut Teknologi Israel, dan Universitas Ghent.
@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}}
File dataset dapat diunduh dari CEBAB-V1.1.zip. V1.1 kami berbeda dari v1.0 hanya di v1.1 yang memiliki ID unik yang tepat contoh kami dan mengoreksi bug yang mengarah ke beberapa ID non-unik dalam versi sebelumnya. Tidak ada perubahan pada bidang kritis lainnya.
Perhatikan bahwa kami sarankan Anda menggunakan pustaka HuggingFace Datasets untuk menggunakan dataset kami. Lihat di bawah untuk pemuatan data 1-linear.
Dataset terdiri dari train_exclusive/train_inclusive/dev/test split:
train_exclusive.jsontrain_inclusive.jsontrain_observational.jsondev.jsontest.json Lembar data untuk dataset kami:
CEBAB terutama dipertahankan menggunakan perpustakaan Huggingface Datasets:
"""
Make sure you install the Datasets library using:
pip install datasets
"""
from datasets import load_dataset
CEBaB = load_dataset ( "CEBaB/CEBaB" ) Fungsi ini dapat digunakan untuk memuat subset dari file *.json mentah:
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
}
}Detail:
'id' : Pengidentifikasi unik contoh ini (kombinasi dua ID yang tercantum di bawah).'original_id' : Pengidentifikasi unik dari kalimat asli untuk contoh yang diedit.'edit_id' : Pengidentifikasi unik dari kalimat yang diedit.'is_original' : Tunjukkan apakah kalimat ini merupakan suntingan atau tidak.'edit_goal' : Label tujuan untuk aspek pengeditan jika itu contoh yang diedit, kalau tidak, None .'edit_type' : Aspek untuk memodifikasi atau memberi label dengan sentimen jika itu contoh yang diedit, kalau tidak, None .'edit_worker' : ID Mturk yang dianonimkan dari pekerja yang menulis 'description' . Ini berasal dari keluarga ID yang sama seperti yang digunakan dalam 'aspect_validation_workers' .'description' : Teks contoh.'review_majority' : Label tingkat ulasan untuk aspek pengeditan yang dipilih oleh setidaknya tiga dari lima pekerja jika ada satu, no majority .'review_label_distribution' : Distribusi peringkat tingkat ulasan dari tugas validasi MTURK.'review_workers' : Respons individu untuk peringkat tingkat ulasan dari annotator. Kunci adalah daftar ID Mturk yang dianonimkan, yang digunakan secara konsisten di seluruh dataset.'*_aspect_majority' : Label tingkat aspek untuk aspek pengeditan yang dipilih oleh setidaknya tiga dari lima pekerja jika ada satu, no majority .'*_aspect_label_distribution' : Distribusi peringkat tingkat aspek dari tugas validasi MTURK.'*_aspect_label_workers' : Respons individu untuk peringkat tingkat ulasan dari annotator. Kunci adalah daftar ID Mturk yang dianonimkan, yang digunakan secara konsisten di seluruh dataset.'opentable_metadata' : metadata untuk ulasan.Inilah satu contoh,
{
"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
}
}Kami meng -host kode analisis kami di kode kami Foler.
Bagian ini berisi papan peringkat untuk beberapa skor terbaik yang diperoleh di Cebab sebagai tugas klasifikasi sentimen lima kelas. Untuk menambahkan skor, pertimbangkan permintaan tarik.
| Arsitektur Model | Metrik | Kira -kira | S-learner | Inlp |
|---|---|---|---|---|
| Bert | L2 | 0,81 (± 0,01) | 0,74 (± 0,02) | 0,80 (± 0,02) |
| Bert | Cos | 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 | Cos | 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 | Cos | 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 | Cos | 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 memiliki Lisensi Internasional Creative Commons Attribution 4.0.