In the last article, I have used the extractive method to get the summary of text. Now in this article I'm going to show you how you can get the abstractive summary using deep learning model based on transformers.
Using Pre-trained model.
There is a model which performs best as compared to other models available on `hugginface` site for Urdu language.
Here is how can you use it to generate the abstractive summary.
import re
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
WHITESPACE_HANDLER = lambda k: re.sub('\s+', ' ', re.sub('\n+', ' ', k.strip()))
article_text = """چھٹیوں کے دن ختم ہونے میں آخری دس دن باقی تھے اور میں ہمیشہ کی طرح کتابوں کا پہاڑ سامنے رکھ کر بیٹھ گئی تھی اور ہر بار کی طرح اس بار بھی میں نے چھٹیوں کے آغاز میں سوچا تھا کہ سارا کام پہلے ہی کر لوں گی،مگر ہر بار کی طرح اس بار بھی اس پر عمل نہیں کر سکی اور پھر وہی ہوا کہ آخری کے دس دنوں میں کتابوں کا پہاڑ سامنے رکھ کر بیٹھ گئی اور اپنی قسمت کو کوستی اور خود کو تسلی دیتی کہ میری کوئی غلطی نہیں ہے کام ہی بہت زیادہ ہے۔
دو مہینے کی چھٹیوں کے ان آخری دس دنوں میں کام کم کرتی اور یہ فقرہ زیادہ دہراتی تھی کہ ننھی سی جان اور اتنا سارا کام۔جیسے تیسے آدھا اور ادھورا کام کرکے سکول گئی سکول میں پورا کام نہ کرنے پر ڈانٹ پڑی۔میں نے گھر جا کر یہ فیصلہ کیا کہ آئندہ سے ہر سال چھٹیوں کے شروع میں ہی سارا کام کر لوں گی۔
اس بار بھی میں کچھ ایسا ہی فیصلہ کرنے لگی تو مجھے یاد آ گیا کہ میں اگلے سال سے اوپن یونیورسٹی میں داخلہ لوں گی،جس میں حاضری کی پابندی نہیں ہوتی،یعنی چھٹیاں ہی چھٹیاں۔"""
model_name = "csebuetnlp/mT5_multilingual_XLSum"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
input_ids = tokenizer(
[WHITESPACE_HANDLER(article_text)],
return_tensors="pt",
padding="max_length",
truncation=True,
max_length=512
)["input_ids"]
output_ids = model.generate(
input_ids=input_ids,
max_length=84,
no_repeat_ngram_size=2,
num_beams=4
)[0]
summary = tokenizer.decode(
output_ids,
skip_special_tokens=True,
clean_up_tokenization_spaces=False
)
print(summary)
Here is the output
چھٹیوں کے دن ختم ہونے میں آخری دس دن باقی تھے اور یہ فقرہ زیادہ دہراتی تھی کہ ننھی سی جان، اتنا سارا کام کر لوں گی۔
And that's it. You have a very good abstractive summarization model for Urdu language. This model also provides summarization for other languages as well.
Here is the link to model and GitHub repository.
https://github.com/csebuetnlp/xl-sum
https://huggingface.co/csebuetnlp/mT5_multilingual_XLSum
Assalam o Alaikum, can you help me with URDU OCR for my BsCS FYP
ReplyDelete