nafisehNik commited on
Commit
266a0ee
1 Parent(s): ce026ae
Files changed (2) hide show
  1. app.py +55 -0
  2. requirements.txt +3 -0
app.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import streamlit as st
3
+ from transformers import AutoModelForSeq2SeqLM, MT5Tokenizer
4
+
5
+ st.set_page_config(layout="wide", page_title="MT5 Persian Summary")
6
+
7
+
8
+ fine = AutoModelForSeq2SeqLM.from_pretrained('nafisehNik/mt5-persian-summary')
9
+ tokenizer = MT5Tokenizer.from_pretrained("google/mt5-small")
10
+
11
+
12
+ # method for summary generation, using the global model and tokenizer
13
+ def generate_summary(model, abstract, num_beams = 2, repetition_penalty = 1.0,
14
+ length_penalty = 2.0, early_stopping = True, max_output_length = 120):
15
+ source_encoding=tokenizer(abstract, max_length=1000, padding="max_length", truncation=True, return_attention_mask=True, add_special_tokens=True, return_tensors="pt")
16
+
17
+ generated_ids=model.generate(
18
+ input_ids=source_encoding["input_ids"],
19
+ attention_mask=source_encoding["attention_mask"],
20
+ num_beams=num_beams,
21
+ max_length=max_output_length,
22
+ repetition_penalty=repetition_penalty,
23
+ length_penalty=length_penalty,
24
+ early_stopping=early_stopping,
25
+ use_cache=True
26
+ )
27
+
28
+ preds=[tokenizer.decode(gen_id, skip_special_tokens=True, clean_up_tokenization_spaces=True)
29
+ for gen_id in generated_ids]
30
+
31
+ return "".join(preds)
32
+
33
+
34
+ # APP
35
+ # set title and subtitle
36
+ st.title("Summarization for Persian")
37
+ st.markdown("Demo of nafisehNik/mt5-persian-summary")
38
+ st.markdown("Paste any persian (farsi) text you want to summarize.")
39
+ # create the input text box and setting panel
40
+ num_beams = st.slider("num_beams", min_value=1, max_value=10, value=2)
41
+ max_output_length = st.slider("max_output_length", min_value=1, max_value=100, value=1)
42
+
43
+
44
+ text = st.text_area('Paste your text here...','''به گزارش شانا، علی کاردر امروز (۲۷ دی ماه) در مراسم تودیع محسن قمصری، مدیر سابق امور بین الملل شرکت ملی نفت ایران و معارفه سعید خوشرو، مدیر جدید امور بین الملل این شرکت، گفت: مدیریت امور بین الملل به عنوان یکی از تاثیرگذارترین مدیریت های شرکت ملی نفت ایران در دوران تحریم های ظالمانه غرب علیه کشورمان بسیار هوشمندانه عمل کرد و ما توانستیم به خوبی از عهده تحریم ها برآییم. وی افزود: مجموعه امور بین الملل در همه دوران ها با سختی ها و مشکلات بسیاری مواجه بوده است، به ویژه در دوره اخیر به دلیل مسایل پیرامون تحریم وظیفه سنگینی بر عهده داشت که با تدبیر مدیریت خوب این مجموعه سربلند از آن بیرون آمد. کاردر با قدردانی از زحمات محسن قمصری، به سلامت مدیریت امور بین الملل این شرکت اشاره کرد و افزود: محوریت کار مدیریت اموربین الملل سلامت مالی بوده است. وی بر ضرورت نهادینه سازی جوانگرایی در مدیریت شرکت ملی نفت ایران تاکید کرد و گفت: مدیریت امور بین الملل در پرورش نیروهای زبده و کارآزموده آنچنان قوی عملکرده است که برای انتخاب مدیر جدید مشکلی وجود نداشت. کاردر، حرفه ای گری و کار استاندارد را از ویژگی های مدیران این مدیریت برشمرد و گفت: نگاه جامع، خلاقیت و نوآوری و بکارگیری نیروهای جوان باید همچنان مد نظر مدیریت جدید امور بین الملل شرکت ملی نفت ایران باشد.''' height=200)
45
+ button = st.button("Summarize")
46
+
47
+ # if button is clicked
48
+ with st.spinner("Processing Text and Summarizing..."):
49
+ if button and text:
50
+ # extract markers from the text
51
+ result = generate_summary(model=fine, abstract=text, num_beams=num_beams, max_output_length=max_output_length)
52
+
53
+ # display the result
54
+ st.markdown("**Summary:**")
55
+ st.write(result)
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ streamlit
2
+ transformers
3
+ sentencepiece