Samanehmoghaddam commited on
Commit
212b447
·
verified ·
1 Parent(s): 29a2f91

Upload AbuseBert Model

Browse files
README.md CHANGED
@@ -1,22 +1,63 @@
1
- ---
2
- license: apache-2.0
3
- language:
4
- - en
5
- base_model:
6
- - vinai/bertweet-base
7
- pipeline_tag: text-classification
8
- tags:
9
- - text-classification
10
- - abusive-language
11
- - hate-speech
12
- - toxicity
13
- - bert
14
- - abusive
15
- - cyberviolence
16
- - abusive-language-detection
17
- ---
18
- AbuseBERT is a BERT-based model fine-tuned for abusive language detection.
19
- It leverages ten diverse datasets harmonized under a unified taxonomy to improve cross-dataset generalization.
20
- The integrated approach mitigates sampling and lexical biases, achieving superior F1 scores on held-out benchmarks compared to models trained on individual datasets.
21
-
22
- AbuseBERT is designed to be **robust and generalizable across platforms, domains, and contexts**, making it well-suited for research, social media moderation studies, and real-world abusive language detection tasks.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # AbuseBERT
2
+
3
+ ## Model Description
4
+
5
+ **AbuseBERT** is a **BERT-based classification model** fine-tuned for **abusive language detection**, optimized for **cross-dataset generalization**.
6
+
7
+ > Abusive language detection models often suffer from poor generalization due to **sampling and lexical biases** in individual datasets. Our approach addresses this by integrating **ten publicly available abusive language datasets**, harmonizing labels and preprocessing textual samples to create a **broader and more representative training distribution**.
8
+
9
+ **Key Findings:**
10
+ - Individual dataset models: average F1 = **0.60**
11
+ - Integrated model: F1 = **0.84**
12
+ - Dataset contribution to performance improvements correlates with **lexical diversity (0.71 correlation)**
13
+ - Integration exposes models to diverse abuse patterns, enhancing **real-world generalization**
14
+
15
+ ---
16
+
17
+ ## Conclusion / Takeaways
18
+
19
+ - No single dataset captures the full spectrum of abusive language; each dataset reflects a **limited slice** of the problem space.
20
+ - Systematically integrating ten heterogeneous datasets significantly improves classification performance on a **held-out benchmark**.
21
+ - Lexically dissimilar datasets contribute more to **enhancing generalization**.
22
+ - The integrated model demonstrates superior **cross-dataset performance** compared to models trained on individual datasets.
23
+
24
+ ---
25
+
26
+ ## Paper Reference
27
+
28
+ Samaneh Hosseini Moghaddam, Kelly Lyons, Frank Rudzicz, Cheryl Regehr, Vivek Goel, Kaitlyn Regehr,
29
+ “**Enhancing machine learning in abusive language detection with dataset aggregation**,” in *Proc. 35th IEEE Int. Conf. Collaborative Advances in Software Computing (CASC)*, 2025.
30
+
31
+ ---
32
+
33
+ ## Intended Use
34
+
35
+ **Recommended:**
36
+ - Detecting abusive language in text from social media or online platforms
37
+ - Research on bias mitigation and cross-dataset generalization
38
+ - Supporting safe and inclusive online environments
39
+
40
+ **Not Recommended:**
41
+ - Fully automated moderation without human oversight
42
+ - High-stakes legal or policy decisions
43
+
44
+ ---
45
+
46
+ ## Usage Example
47
+
48
+ ```python
49
+ from transformers import AutoTokenizer, AutoModelForSequenceClassification
50
+ import torch
51
+
52
+ # Load model and tokenizer
53
+ tokenizer = AutoTokenizer.from_pretrained("Samanehmoghaddam/AbuseBERT")
54
+ model = AutoModelForSequenceClassification.from_pretrained("Samanehmoghaddam/AbuseBERT")
55
+
56
+ # Sample input
57
+ text = "Your example text here."
58
+ inputs = tokenizer(text, return_tensors="pt")
59
+ outputs = model(**inputs)
60
+
61
+ # Predicted label
62
+ predicted_label = torch.argmax(outputs.logits, dim=1).item()
63
+ print(f"Predicted label: {predicted_label}")
added_tokens.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ {
2
+ "<mask>": 64000
3
+ }
bpe.codes ADDED
The diff for this file is too large to render. See raw diff
 
config.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "AbuseBERT",
3
+ "architectures": [
4
+ "RobertaForSequenceClassification"
5
+ ],
6
+ "attention_probs_dropout_prob": 0.1,
7
+ "bos_token_id": 0,
8
+ "classifier_dropout": null,
9
+ "eos_token_id": 2,
10
+ "gradient_checkpointing": false,
11
+ "hidden_act": "gelu",
12
+ "hidden_dropout_prob": 0.1,
13
+ "hidden_size": 768,
14
+ "initializer_range": 0.02,
15
+ "intermediate_size": 3072,
16
+ "layer_norm_eps": 1e-05,
17
+ "max_position_embeddings": 130,
18
+ "model_type": "roberta",
19
+ "num_attention_heads": 12,
20
+ "num_hidden_layers": 12,
21
+ "pad_token_id": 1,
22
+ "position_embedding_type": "absolute",
23
+ "problem_type": "single_label_classification",
24
+ "tokenizer_class": "BertweetTokenizer",
25
+ "torch_dtype": "float32",
26
+ "transformers_version": "4.32.1",
27
+ "type_vocab_size": 1,
28
+ "use_cache": true,
29
+ "vocab_size": 64001
30
+ }
pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bca7e8d9c0d25798898638c573004a28ca1424017f1988e48c967cfa528a6f14
3
+ size 539674993
special_tokens_map.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": "<s>",
3
+ "cls_token": "<s>",
4
+ "eos_token": "</s>",
5
+ "mask_token": "<mask>",
6
+ "pad_token": "<pad>",
7
+ "sep_token": "</s>",
8
+ "unk_token": "<unk>"
9
+ }
tokenizer_config.json ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "added_tokens_decoder": {
3
+ "0": {
4
+ "content": "<s>",
5
+ "lstrip": false,
6
+ "normalized": false,
7
+ "rstrip": false,
8
+ "single_word": false,
9
+ "special": true
10
+ },
11
+ "1": {
12
+ "content": "<pad>",
13
+ "lstrip": false,
14
+ "normalized": false,
15
+ "rstrip": false,
16
+ "single_word": false,
17
+ "special": true
18
+ },
19
+ "2": {
20
+ "content": "</s>",
21
+ "lstrip": false,
22
+ "normalized": false,
23
+ "rstrip": false,
24
+ "single_word": false,
25
+ "special": true
26
+ },
27
+ "3": {
28
+ "content": "<unk>",
29
+ "lstrip": false,
30
+ "normalized": false,
31
+ "rstrip": false,
32
+ "single_word": false,
33
+ "special": true
34
+ },
35
+ "64000": {
36
+ "content": "<mask>",
37
+ "lstrip": false,
38
+ "normalized": false,
39
+ "rstrip": false,
40
+ "single_word": false,
41
+ "special": true
42
+ }
43
+ },
44
+ "bos_token": "<s>",
45
+ "clean_up_tokenization_spaces": false,
46
+ "cls_token": "<s>",
47
+ "eos_token": "</s>",
48
+ "mask_token": "<mask>",
49
+ "model_max_length": 1000000000000000019884624838656,
50
+ "normalization": false,
51
+ "pad_token": "<pad>",
52
+ "sep_token": "</s>",
53
+ "tokenizer_class": "BertweetTokenizer",
54
+ "unk_token": "<unk>"
55
+ }
training_args.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0c84e38a5d3b5bbe5621f040405ed889dbb8bcd4b8bfcd8a930464a4922c70d0
3
+ size 4027
vocab.txt ADDED
The diff for this file is too large to render. See raw diff