Fine-Tashkeel / README.md
basharalrfooh's picture
Update README.md
5807fb0 verified
---
license: mit
datasets:
- tashkeela
language:
- ar
metrics:
- accuracy
pipeline_tag: text2text-generation
---
# Fine-Tashkeel: Finetuning Byte-Level Models for Accurate Arabic Text Diacritization
## Table of Contents
- [Introduction](#introduction)
- [Models](#models)
- [ByT5](#model-name)
- [Model Description](#model-description)
- [Benchmarks](#benchmarks)
- [Citation](#citation)
- [Contact](#contact)
## Introduction
Most of previous work on learning diacritization of the Arabic language relied on training models from scratch. In this paper, we investigate how to leverage pre-trained language models to learn diacritization. We finetune token-free pre-trained multilingual models (ByT5) to learn to predict and insert missing diacritics in Arabic text, a complex task that requires understanding the sentence semantics and the morphological structure of the tokens. We show that we can achieve state-of-the-art on the diacritization task with minimal amount of training and no feature engineering, reducing WER by 40%. We release our finetuned models for the greater benefit of the researchers in the community.
## Model Description
The ByT5 model, distinguished by its innovative token-free architecture, directly processes raw text to adeptly navigate diverse languages and linguistic nuances. Pre-trained on a comprehensive text corpus mc4, ByT5 excels in understanding and generating text, making it versatile for various NLP tasks. We have further enhanced its capabilities by fine-tuning it on a Tashkeela data set for 13,000 steps, significantly refining its performance in restoring the diacritical marks for Arabic.
## Benchmarks
**Note: This model has been trained specifically for use with Classical Arabic.**
Our model attained a Diacritics Error Rate (DER) of 0.95 and a Word Error Rate (WER) of 2.49.
Code sample to use the model.
```python
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
import pandas as pd
if __name__ == "__main__":
text = "كيف الحال"
model_name = "basharalrfooh/Fine-Tashkeel"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
input_ids = tokenizer(text, return_tensors="pt").input_ids
outputs = model.generate(input_ids, max_new_tokens=128)
decoded_output = tokenizer.decode(outputs[0], skip_special_tokens=True, clean_up_tokenization_spaces=False)
print("Generated output:", decoded_output)
```
## Citation
```bibtex
@misc{alrfooh2023finetashkeel,
title={Fine-Tashkeel: Finetuning Byte-Level Models for Accurate Arabic Text Diacritization},
author={Bashar Al-Rfooh and Gheith Abandah and Rami Al-Rfou},
year={2023},
eprint={2303.14588},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
```
## Contact
bashar@alrfou.com