Sultannn commited on
Commit
c09f589
·
1 Parent(s): 52a7c53

Upload txt_mbart.py

Browse files
Files changed (1) hide show
  1. txt_mbart.py +94 -0
txt_mbart.py ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ #MBART FINE TUNE
3
+
4
+ import gradio as gr
5
+ import tensorflow as tf
6
+ from transformers import MBartTokenizer, TFMBartForConditionalGeneration
7
+
8
+ def run_model(input_text,
9
+ min_length,
10
+ max_length,
11
+ length_penalty):
12
+
13
+ #MBART Transformer
14
+ mbart_model = TFMBartForConditionalGeneration.from_pretrained("facebook/mbart-large-50",from_pt=True)
15
+ mbart_tokenizer = MBartTokenizer.from_pretrained("facebook/mbart-large-50")
16
+
17
+ #encode input to vector
18
+ input_text = str(input_text)
19
+ input_text = ' '.join(input_text.split()) # hapus white space
20
+ input_tokenized = mbart_tokenizer.encode(input_text, return_tensors='tf')
21
+
22
+ #generate input
23
+ summary_ids = mbart_model.generate(input_tokenized,
24
+ length_penalty = length_penalty, #Atur ke nilai <1.0 untuk menghasilkan urutan yang lebih pendek, ke nilai > 1.0 untuk menghasilkan urutan yang lebih panjang)
25
+ min_length = min_length, #Panjang minimum urutan yang akan dihasilkan)
26
+ max_length = max_length, #Panjang maksimum urutan yang akan dihasilkan)"""
27
+ num_beams = 3,
28
+ early_stopping = True)
29
+
30
+ #decode output to text
31
+ output = mbart_tokenizer.batch_decode(summary_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)
32
+
33
+ return output[0]
34
+
35
+ # end
36
+
37
+ #example
38
+ # source Wikipedia
39
+ contoh = [["Dota 2 adalah sebuah permainan arena pertarungan daring multipemain, dan merupakan sekuel dari Defense of the Ancients mod pada Warcraft 3: Reign of Chaos dan Warcraft 3: The Frozen Throne. DotA 2 dikembangkan oleh Valve Corporation, terbit juli 2013 dota 2 dapat dimainkan secara gratis pada sistem operasi Microsoft Windows, OS X and Linux. Dota 2 dapat dimainkan secara eksklusif melalui distributor resmi valve, Steam.Dota 2 dimainkan oleh 2 tim yang beranggota 5 orang pemain, setiap tim memiliki markas yang berada dipojok peta, setiap markas memiliki satu bangunan bernama 'Ancient', Di mana tim harus berusaha menghancurkan 'Ancient' tim lawan agar dapat memenangkan pertandingan. Setiap pemain hanya dapat mengontrol satu karakter Hero yang berfokus pada menaikan level, mengumpulkan gold, membeli item dan melawan tim lawan untuk menang.Pengembangan Dota 2 dimulai sejak tahun 2009. Ketika pengembang mod DotA, Icefrog, dipekerjakan oleh Valve sebagai lead designer. Dota 2 dipuji oleh kritikus karena gameplay-nya, kualitas pembuatan dan kesetiaan pada gameplay pendahulu (DotA mod Warcraft 3). tetapi Dota 2 juga menuai kritik sebagai game yang susah dipelajari dan para pemain yang tidak ramah.Sampai pertengahan 2017 Dota 2 menjadi game yang memiliki aktivitas pemain paling banyak di Steam, dengan pucak 800,000 pemain online bersamaan setiap hari", 30, 300, 2],
40
+ ["Elon Musk adalah pendiri beberapa perusahaan teknologi populer, termasuk SpaceX yang bergerak di teknologi antariksa; Tesla Inc. yang bergerak di bidang otomotif; OpenAI, SolarCity, Neuralink, serta beberapa perusahaan lainnya. Musk menyatakan bahwa dengan perusahaan-perusahaan ini didirikannya dengan tujuan mengubah dunia dan kehidupan manusia termasuk mengurangi pemanasan global melalui peningkatan produksi dan konsumsi energi terbarukan. Ia juga berharap dapat mengurangi 'risiko punahnya umat manusia' dengan meningkatkan teknologi untuk hidup di planet lain, khususnya di Mars. Pada bulan September 2020, kekayaan Musk ditaksir mencapai USD 102,9 miliar, menjadikannya orang terkaya ke-4 di dunia. Pada Tahun 2001, majalah Forbes menempatkannya sebagai peringkat ke-25 dalam daftar Orang Paling Berkuasa di Dunia", 30, 200, 1]]
41
+ #judul
42
+ title = "Text Sumarization id2id"
43
+
44
+ #deskripsi
45
+ description = "Demo for Text Sumarization id2id. Models are MBART(50 languages)"
46
+
47
+ #footer
48
+ article = "<p style='text-align: center'><a href='https://github.com/sultanbst123/Text_summarization-id2id' target='_blank'><u>Untuk penjelasan lihat di repo ku</u> 😁</a></p>"
49
+
50
+ #run gradio
51
+ gr.Interface(
52
+ fn=run_model,
53
+ #input text
54
+ inputs=[
55
+ gr.inputs.Textbox(
56
+ lines=7,
57
+ placeholder="Ketik disini...",
58
+ label="Text",
59
+ ),
60
+ #fine tune
61
+ #min length
62
+ gr.inputs.Slider(
63
+ minimum=10,
64
+ maximum=50,
65
+ step=5,
66
+ default=20,
67
+ label="Min Length(panjang minimal urutan)",
68
+ ),
69
+ #max length
70
+ gr.inputs.Slider(
71
+ minimum=100,
72
+ maximum=2500,
73
+ step=100,
74
+ default=300,
75
+ label="Max Length(panjang maksimum urutan)",
76
+ ),
77
+ #length_penalty
78
+ gr.inputs.Slider(
79
+ minimum=1,
80
+ maximum=3,
81
+ step=1,
82
+ default=1,
83
+ label="Length Penalty",
84
+ ),
85
+ ],
86
+ #output text
87
+ outputs=gr.outputs.Textbox(
88
+ label="Output text",
89
+ ),
90
+ title=title,
91
+ description=description,
92
+ article=article,
93
+ examples=contoh,
94
+ theme = "dark-peach").launch(debug = True)