File size: 4,814 Bytes
1edc180
 
 
 
 
 
 
 
f9ffe8a
1edc180
 
 
 
 
 
 
 
 
 
 
 
 
f9ffe8a
1edc180
 
 
 
 
 
 
 
 
 
 
a9867d0
1edc180
52626fc
26b4f4b
1edc180
 
 
 
 
 
5a96a69
26b4f4b
1edc180
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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()