FinArgBengali / app.py
rima357's picture
Update app.py
a9867d0 verified
raw
history blame contribute delete
No virus
4.81 kB
import numpy as np
import pandas as pd
import torch
from transformers import BertTokenizer, BertForSequenceClassification
import gradio as gr
#task1
model_name = "bert-base-multilingual-cased"
tokenizer = BertTokenizer.from_pretrained(model_name)
model_load=BertForSequenceClassification.from_pretrained("bert-base-multilingual-cased_finetune_FinArgBengali",num_labels=2)
def fun_task1(Text):
if(Text==""):
return "অনুগ্রহ করে প্রথমে টেক্সট লিখুন। (Please enter the text first)"
tokenized_text = tokenizer(Text, padding=True, truncation=True, max_length=512, return_tensors="pt")
logits = model_load(**tokenized_text).logits
output=torch.argmax(logits, axis=1)
label=output.tolist()
if(label[0]==0):
return "ভিত্তি (Premise)"
elif(label[0]==1):
return "দাবি (Claim)"
#task2
from sentence_transformers.cross_encoder import CrossEncoder
model_load_task2=CrossEncoder("task2-crossEncoder-bert-base-multilingual-cased",num_labels=3)
def fun_task2(Text1,Text2):
if(Text1=="" or Text2==""):
return "অনুগ্রহ করে প্রথমে টেক্সট লিখুন। (Please enter the text first.)"
scores = model_load_task2.predict([Text1,Text2])
label=np.argmax(scores)
if(label==0):
return "দুটি পাঠ্যের মধ্যে কোন সনাক্ত করা সম্পর্ক নেই। (There is no relation detected between two texts.)"
elif(label==1):
return "পাঠ্য 1 থেকে পাঠ্য 2 এর সাথে একটি সমর্থন সম্পর্ক রয়েছে। (There is an “support” relation from text 1 to text 2.)"
elif(label==2):
return "পাঠ্য 1 থেকে পাঠ্য 2 এর সাথে একটি আক্রমণ সম্পর্ক রয়েছে। (There is an “Attack” relation from text 1 to text 2.)"
#gradio app
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.Markdown("# **Financial Argument Analysis in Bengali (FAAB)**")
with gr.Tab("Task1-Classify a Bengali argumentative text into Premise or Claim"):
text_input = gr.Textbox(lines=5, placeholder="Enter the text in Bengali...",label="Text")
text_button = gr.Button("Classify")
text_output = gr.Textbox(label="output")
gr.ClearButton([text_input,text_output])
example_task1 = gr.Examples(examples=[["আমি বলতে চাচ্ছি, কখনও কখনও এমন হয় না যে আপনি কোনও উজ্জ্বল কৌশল নিয়ে এসেছিলেন, এটি দীর্ঘ সময় ধরে ধারাবাহিকভাবে সত্যিই ভাল কাজ করার মতো।"],
["দেখুন, সবার আগে, আমি বলব আমাদের শেয়ারহোল্ডারদের জন্য সুযোগ যখন তারা মাইক্রোসফটের কথা চিন্তা করে তখন আগে কখনও এত ভালো ছিল না।"]],inputs=[text_input])
with gr.Tab("Task2-Detection the relation between two Bengali argumentative texts"):
text1_input = gr.Textbox(lines=5, placeholder="Enter the first text in Bengali...",label="Text-1")
text2_input = gr.Textbox(lines=5, placeholder="Enter the second text in Bengali...",label="Text-2")
task2_button = gr.Button("Detect the relation")
task2_output = gr.Textbox(label="output")
gr.ClearButton([text1_input,text2_input,task2_output])
example_task2 =gr.Examples(examples=[["ইনস্টাগ্রাম আরও দ্রুত বৃদ্ধি পাচ্ছে এবং বৃদ্ধিতে অবদান রাখছে।","আর ইনস্টাগ্রাম যেভাবে এগিয়ে চলেছে তাতে আমরা খুশি।"],
["আর এটাই আমাদের দৃষ্টিভঙ্গির মূল কারণ যে আপনারা একটি পার্থক্য দেখতে পাচ্ছেন।","চাহিদা পরিমাপ করা খুব কঠিন, যেমন আপনি জানেন, যখন আপনি আপনার তৈরি করা সবকিছু বিক্রি করছেন।"]],
inputs=[text1_input,text2_input])
text_button.click(fun_task1, inputs=text_input, outputs=text_output)
task2_button.click(fun_task2, inputs=[text1_input,text2_input], outputs=task2_output)
demo.launch()