transformers safetensors t5 text2text-generation fa license:mit autotrain_compatible endpoints_compatible text-generation-inference region:us
---
language: fa
license: mit
pipeline_tag: text2text-generation
---


# PersianEase

This model is fine-tuned to generate informal text from formal text based on the input provided. It has been fine-tuned on [Mohavere Dataset] (Takalli vahideh, Kalantari, Fateme, Shamsfard, Mehrnoush, Developing an Informal-Formal Persian Corpus, 2022.) using the pretrained model [persian-t5-formality-transfer](https://huggingface.co/erfan226/persian-t5-formality-transfer).


## Evaluation Metrics

| Metric               | Basic Model | Base Persian T5 | Previous Semester Model | Our Model      |
|----------------------|-------------|-----------------|--------------------------|----------------|
| BLEU-1               | 0.269       | 0.256           | 0.397                    | **0.664**      |
| BLEU-2               | 0.137       | 0.171           | 0.299                    | **0.539**      |
| BLEU-3               | 0.084       | 0.121           | 0.231                    | **0.444**      |
| BLEU-4               | 0.054       | 0.086           | 0.177                    | **0.364**      |
| Bert-Score Precision | 0.581       | 0.583           | 0.665                    | **0.826**      |
| Bert-Score Recall    | 0.629       | 0.614           | 0.659                    | **0.820**      |
| Bert-Score F1 Score  | 0.603       | 0.595           | 0.658                    | **0.822**      |
| ROUGE-1 F1 Score     | 0.259       | -               | -                        | **0.701**      |
| ROUGE-2 F1 Score     | 0.061       | -               | -                        | **0.475**      |
| ROUGE-l F1 Score     | 0.250       | -               | -                        | **0.675**      |




## Usage

```python

from transformers import (T5ForConditionalGeneration, AutoTokenizer, pipeline)
import torch

model = T5ForConditionalGeneration.from_pretrained('parsi-ai-nlpclass/PersianEase')
tokenizer = AutoTokenizer.from_pretrained('parsi-ai-nlpclass/PersianEase')

pipe = pipeline(task='text2text-generation', model=model, tokenizer=tokenizer)
def test_model(text):
  device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')  
  model.to(device) 

  inputs = tokenizer.encode("formal: " + text, return_tensors='pt', max_length=128, truncation=True, padding='max_length')
  inputs = inputs.to(device) 

  outputs = model.generate(inputs, max_length=128, num_beams=4, temperature=0.7)
  print("Output:", tokenizer.decode(outputs[0], skip_special_tokens=True))  

text = "   من فقط می‌خواستم بگویم که چقدر قدردان همه چیزهایی هستم که برای من انجام داده ای."
print("Original:", text)
test_model(text)

# output: من فقط میخوام بگم که چقدر قدردان همه کاریم که برای من انجام دادی. دوستی تو برای من یه هدیه بزرگه و من همیشه از داشتن یه دوست مثل تو خوشحالم.

text = "   آرزویش است او را یک رستوران ببرم."
print("Original:", text)
test_model(text)

# output: آرزوشه یه رستوران ببرمش


```