musfiqdehan commited on
Commit
d4a2937
1 Parent(s): 4a52b88

Add Gradio interface for Bangla PoS Taggers

Browse files
Files changed (1) hide show
  1. app.py +139 -0
app.py CHANGED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from gradio_rich_textbox import RichTextbox
3
+
4
+ from helper.text_preprocess import space_punc
5
+ from helper.alignment_mappers import select_model
6
+ from helper.pos_taggers import select_pos_tagger
7
+ from helper.translators import select_translator
8
+
9
+
10
+ def bn_postagger(src, translator, model_name, tagger):
11
+ """
12
+ Bangla PoS Tagger
13
+ """
14
+
15
+ src = space_punc(src)
16
+
17
+ tgt_base, tgt = select_translator(src, translator)
18
+
19
+ model_name = select_model(model_name)
20
+
21
+ result, pos_accuracy = select_pos_tagger(src, tgt, model_name, tagger)
22
+
23
+ return tgt_base, result, pos_accuracy
24
+
25
+
26
+ # Define the Gradio interface
27
+ # demo = gr.Interface(
28
+ # fn=bn_postagger,
29
+ # inputs=[
30
+ # gr.Textbox(label="Enter Bangla Sentence", placeholder="বাংলা বাক্য লিখুন"),
31
+ # gr.Dropdown(["Google", "BanglaNMT", "MyMemory"], label="Select a Translator"),
32
+ # gr.Dropdown(["spaCy", "NLTK", "Flair", "TextBlob"], label="Select a PoS Tagger")
33
+ # ],
34
+ # outputs= [
35
+ # gr.Textbox(label="English Translation"),
36
+ # RichTextbox(label="PoS Tags"),
37
+ # gr.Textbox(label="Overall PoS Tagging Accuracy")
38
+ # ],
39
+ # live=False,
40
+ # title="Bangla PoS Taggers",
41
+ # theme='',
42
+ # examples=[
43
+ # ["বাংলাদেশ দক্ষিণ এশিয়ার একটি সার্বভৌম রাষ্ট্র।"],
44
+ # ["বাংলাদেশের সংবিধানিক নাম কি?"],
45
+ # ["বাংলাদেশের সাংবিধানিক নাম গণপ্রজাতন্ত্রী বাংলাদেশ।"],
46
+ # ["তিনজনের কেউই বাবার পথ ধরে প্রযুক্তি দুনিয়ায় হাঁটেননি।"],
47
+ # ["বিশ্বের আরও একটি সেরা ক্লাব।"]
48
+
49
+ # ]
50
+ # )
51
+
52
+ with gr.Blocks(css="styles.css") as demo:
53
+ gr.HTML("<h1>Bangla PoS Taggers</h1>")
54
+ gr.HTML("<p>Parts of Speech (PoS) Tagging of Bangla Sentence using Bangla-English <strong>Word Alignment</strong></p>")
55
+
56
+ with gr.Row():
57
+ with gr.Column():
58
+ inputs = [
59
+ gr.Textbox(
60
+ label="Enter Bangla Sentence",
61
+ placeholder="বাংলা বাক্য লিখুন"
62
+ ),
63
+ gr.Dropdown(
64
+ choices=["Google", "BanglaNMT", "MyMemory"],
65
+ label="Select a Translator"
66
+ ),
67
+ gr.Dropdown(
68
+ choices=["Google-mBERT (Base-Multilingual)", "Neulab-AwesomeAlign (Bn-En-0.5M)", "BUET-BanglaBERT (Large)", "SagorSarker-BanglaBERT (Base)", "SentenceTransformers-LaBSE (Multilingual)"],
69
+ label="Select a Model"
70
+ ),
71
+ gr.Dropdown(
72
+ choices=["spaCy", "NLTK", "Flair", "TextBlob"],
73
+ label="Select a PoS Tagger"
74
+ )
75
+ ]
76
+
77
+ btn = gr.Button(value="Submit", elem_classes="mybtn")
78
+ gr.ClearButton(inputs)
79
+
80
+ with gr.Column():
81
+ outputs = [
82
+ gr.Textbox(label="English Translation"),
83
+ RichTextbox(label="PoS Tags"),
84
+ gr.Textbox(label="PoS Tagging Accuracy (Based on Unknown(UNK) Tags)")
85
+ ]
86
+
87
+ btn.click(bn_postagger, inputs, outputs)
88
+
89
+ gr.Examples([
90
+ [
91
+ "বাংলাদেশ দক্ষিণ এশিয়ার একটি সার্বভৌম রাষ্ট্র।",
92
+ "Google",
93
+ "Neulab-AwesomeAlign (Bn-En-0.5M)",
94
+ "NLTK"
95
+ ],
96
+ [
97
+ "বাংলাদেশের সংবিধানিক নাম কি?",
98
+ "Google",
99
+ "Google-mBERT (Base-Multilingual)",
100
+ "spaCy"
101
+ ],
102
+ [
103
+ "বাংলাদেশের সাংবিধানিক নাম গণপ্রজাতন্ত্রী বাংলাদেশ।",
104
+ "Google",
105
+ "Google-mBERT (Base-Multilingual)",
106
+ "TextBlob"
107
+ ],
108
+ [
109
+ "তিনজনের কেউই বাবার পথ ধরে প্রযুক্তি দুনিয়ায় হাঁটেননি।",
110
+ "Google",
111
+ "Neulab-AwesomeAlign (Bn-En-0.5M)",
112
+ "spaCy"
113
+ ],
114
+ [
115
+ "তিনজনের কেউই বাবার পথ ধরে প্রযুক্তি দুনিয়ায় হাঁটেননি।",
116
+ "BanglaNMT",
117
+ "Google-mBERT (Base-Multilingual)",
118
+ "spaCy"
119
+ ],
120
+ [
121
+ "তিনজনের কেউই বাবার পথ ধরে প্রযুক্তি দুনিয়ায় হাঁটেননি।",
122
+ "MyMemory",
123
+ "Google-mBERT (Base-Multilingual)",
124
+ "spaCy"
125
+ ],
126
+ [
127
+ "বিশ্বের আরও একটি সেরা ক্লাব।",
128
+ "Google",
129
+ "Neulab-AwesomeAlign (Bn-En-0.5M)",
130
+ "Flair"
131
+ ]
132
+
133
+ ], inputs)
134
+
135
+
136
+
137
+ # Launch the Gradio app
138
+ if __name__ == "__main__":
139
+ demo.launch()