File size: 2,960 Bytes
c8f4a50
348dfbf
 
faae8e8
6c59dc8
348dfbf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6c59dc8
348dfbf
c8f4a50
348dfbf
c8f4a50
 
348dfbf
c8f4a50
 
348dfbf
 
 
 
 
 
 
 
 
 
 
 
 
97a1749
348dfbf
 
 
 
97a1749
 
 
348dfbf
 
 
 
97a1749
348dfbf
 
 
 
 
 
 
 
 
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
59
60
61
62
63
64
65
66
67
68
69
# Zero-Shot Text Classification with Multilingual T5 (mT5)

import streamlit as st
import plotly.graph_objects as go
from mt5Model import runModel

text_1 = """Bilim insanları Botsvana’da Covid-19’un şu ana kadar en çok mutasyona uğramış varyantını tespit etti. \
Resmi olarak B.1.1.529 koduyla bilinen bu varyantı ise “Nu varyantı” adı verildi. Uzmanlar bu varyant içerisinde \
tam 32 farklı mutasyon tespit edildiğini açıklarken, bu virüsün corona virüsü aşılarına karşı daha dirençli olabileceğini duyurdu."""

text_2 = """Şampiyonlar Ligi’nde 5. hafta oynanan karşılaşmaların ardından sona erdi. Real Madrid, Inter ve Sporting \
oynadıkları mücadeleler sonrasında Son 16 turuna yükselmeyi başardı. Gecenin dev mücadelesinde ise Manchester City, \
PSG’yi yenerek liderliği garantiledi."""

@st.cache(allow_output_mutation=True)
def list2text(label_list):
    labels = ""
    for label in label_list:
        labels = labels + label + ","
    labels = labels[:-1]
    return labels

label_list_1 = ["dünya", "ekonomi", "kültür", "sağlık", "siyaset", "spor", "teknoloji"]
label_list_2 = ["positive", "negative", "neutral"]

st.title("Multilingual Zero-Shot Text Classification with mT5")

model_name = "alan-turing-institute/mt5-large-finetuned-mnli-xtreme-xnli"

st.sidebar.write("For details of used model:")
st.sidebar.write("https://huggingface.co/alan-turing-institute/mt5-large-finetuned-mnli-xtreme-xnli")

st.sidebar.write("For Xtreme XNLI Dataset:")
st.sidebar.write("https://www.tensorflow.org/datasets/catalog/xtreme_xnli")

st.subheader("Select Text and Label List")
st.text_area("Text #1", text_1, height=128)
st.text_area("Text #2", text_2, height=128)
st.write(f"Label List #1: {list2text(label_list_1)}")
st.write(f"Label List #2: {list2text(label_list_2)}")

text = st.radio("Select Text", ("Text #1", "Text #2", "New Text"))
labels = st.radio("Select Label List", ("Label List #1", "Label List #2", "New Label List"))

if text == "Text #1": selected_text = text_1
elif text == "Text #2": selected_text = text_2
elif text == "New Text":
    sequence_to_classify = st.text_area("New Text", value="", height=128)

if labels == "Label List #1": selected_labels = label_list_1
elif labels == "Label List #2": selected_labels = label_list_2
elif labels == "New Label List":
    candidate_labels = st.text_area("New Label List (Pls Input as comma-separated)", value="", height=16).split(",")

hypothesis_template = "Bu yazı {} konusundadır."

        
Run_Button = st.button("Run", key=None)
if Run_Button == True:
    output = runModel(model_name, sequence_to_classify, candidate_labels, hypothesis_template)
    output_labels = output["labels"]
    output_scores = output["scores"]

    st.header("Result")
    import plotly.graph_objects as go
    fig = go.Figure([go.Bar(x=output_labels, y=output_scores)])
    st.plotly_chart(fig, use_container_width=False, sharing="streamlit")