--- language: ar license: apache-2.0 base_model: CAMeL-Lab/bert-base-arabic-camelbert-da pipeline_tag: text-classification tags: - arabic - text-classification - stance-detection - stanceeval-2026 - arabicnlp-2026 - track2-unseen-targets --- # StanceEval-2026 — Track 2 (Unseen Targets): CAMeLBERT-DA Arabic stance-detection classifier for [StanceEval-2026](https://stanceeval.github.io/StanceEval-2026/), an ArabicNLP 2026 (@ EMNLP 2026, Budapest) shared task. Given an Arabic tweet and a target topic, the model predicts whether the tweet's author is in **Favor** of, **Against**, or has **None** (neutral/irrelevant) stance toward the target. ## Track 2: Unseen Targets Trained on the Track 2 training pool, evaluated on target topics **not seen during training** (cross-target generalization). Train 2,721 / Dev 1,400 tweets (Mawqif-v2). ## Base model `CAMeL-Lab/bert-base-arabic-camelbert-da` ## Labels | ID | Label | Meaning | |---|---|---| | 0 | `Favor` | Tweet supports the target | | 1 | `Against` | Tweet opposes the target | | 2 | `None` | Neutral, irrelevant, or unclear stance | ## Dev set result **74.98 Favg2** (dev set), the shared task's primary metric (macro-F1 over Favor + Against, None excluded). ## Usage ```python from transformers import AutoTokenizer, AutoModelForSequenceClassification import torch tokenizer = AutoTokenizer.from_pretrained("HassanB4/t2_s4_camelbert_text_target") model = AutoModelForSequenceClassification.from_pretrained("HassanB4/t2_s4_camelbert_text_target") model.eval() id2label = {0: "Favor", 1: "Against", 2: "None"} text = "..." target = "..." inputs = tokenizer(text, target, return_tensors="pt", truncation=True, max_length=512) with torch.no_grad(): logits = model(**inputs).logits predicted_label = id2label[int(torch.argmax(logits, dim=-1)[0])] print(predicted_label) ``` ## Status Part of the NAMAA Community StanceEval-2026 submission (Track 2). A system description paper is in preparation; citation details will be added once available.