Views
No views yet
1from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
2
3# Constants for token lengths
4TEXT_MAX_TOKEN_LENGTH = 512
5SUMMARY_MAX_TOKEN_LENGTH = 192
6
7# Load model and tokenizer
8tokenizer = AutoTokenizer.from_pretrained("omarsabri8756/AraT5v2-XLSum-arabic-text-summarization")
9model = AutoModelForSeq2SeqLM.from_pretrained("omarsabri8756/AraT5v2-XLSum-arabic-text-summarization")
10
11def generate_summary(test_samples, model):
12 inputs = tokenizer(
13 test_samples,
14 padding="max_length",
15 truncation=True,
16 max_length=TEXT_MAX_TOKEN_LENGTH,
17 return_tensors="pt",
18 )
19 input_ids = inputs.input_ids.to(model.device)
20 attention_mask = inputs.attention_mask.to(model.device)
21 outputs = model.generate(
22 input_ids,
23 attention_mask=attention_mask,
24 max_length=SUMMARY_MAX_TOKEN_LENGTH,
25 min_length=10, # Ensure minimum content
26 num_beams=3,
27 repetition_penalty=3.0,
28 length_penalty=2.0,
29 no_repeat_ngram_size = 3
30 )
31 output_str = tokenizer.batch_decode(outputs, skip_special_tokens=True)[0]
32 return output_str
33
34# Example usage
35arabic_text = "شهدت مدينة طرابلس، مساء أمس الأربعاء، احتجاجات شعبية وأعمال شغب لليوم الثالث على التوالي، وذلك بسبب تردي الوضع المعيشي والاقتصادي. واندلعت مواجهات عنيفة وعمليات كر وفر ما بين الجيش اللبناني والمحتجين استمرت لساعات، إثر محاولة فتح الطرقات المقطوعة، ما أدى إلى إصابة العشرات من الطرفين."
36summary = generate_summary(arabic_text, model)
37print(summary) # شهدت مدينة طرابلس اللبنانية، مساء أمس الأربعاء، احتجاجات شعبية وأعمال شغب لليوم الثالث على التوالي، وذلك بسبب تردي الوضع المعيشي.
38| Epoch | Training Loss | Validation Loss | Rouge1 | Rouge2 | Rougel | Rougelsum |
|---|---|---|---|---|---|---|
| 1 | 3.999300 | 2.415354 | 0.219800 | 0.106600 | 0.222500 | 0.219970 |
| 2 | 2.879100 | 2.392637 | 0.241690 | 0.103100 | 0.242780 | 0.241080 |
| 3 | 2.646900 | 2.324992 | 0.235450 | 0.106600 | 0.237000 | 0.235820 |
| 4 | 2.472900 | 2.312325 | 0.261720 | 0.120900 | 0.263300 | 0.261340 |
| 5 | 2.388600 | 2.314750 | 0.267520 | 0.120900 | 0.269470 | 0.266570 |