File size: 2,056 Bytes
aea6ff4
3702ace
 
 
 
 
 
c995fd5
b752604
13a9362
 
3163c0c
 
7127817
22aedd0
 
3163c0c
 
b752604
3702ace
b752604
 
aea6ff4
 
 
 
b0b0ba6
 
 
3702ace
 
 
 
b752604
3702ace
 
fb3b31f
3657834
 
6e12a49
dab52d1
cf4494f
aea6ff4
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
import gradio as gr
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model="NbAiLab/nb-bert-base-mnli")


def sequence_to_classify(sequence, labels):
    hypothesis_template = 'Dette eksempelet er {}.'
    label_clean = str(labels).split(",")
    response = classifier(sequence, label_clean, hypothesis_template=hypothesis_template, multi_class=True)
    predicted_labels = response['labels']
    predicted_scores = response['scores']
    #clean_output = {labels[idx]: float(predicted_scores[idx]) for idx in range(len(predicted_labels))}
    clean_output = {idx: float(predicted_scores.pop(0)) for idx in predicted_labels}
    
    print("response is:{}".format(response))
    print("clean_output: {}".format(clean_output))
    print(predicted_labels)
    print(predicted_scores)
    return clean_output

example_text=["Folkehelseinstituttets mest optimistiske anslag er at alle voksne er ferdigvaksinert innen midten av september.","Kutt smør i terninger, og la det temperere seg litt mens deigen elter. Ha hvetemel, sukker, gjær, salt og kardemomme i en bakebolle til kjøkkenmaskin. Bruker du fersk gjær kan du smuldre gjæren i bollen, eller røre den ut i melken. Alt vil ettehvert blande seg godt, så begge deler er like bra."]
example_labels=["politikk,helse,sport,religion", "helse,sport,religion, mat"]

def greet(name):
    return "Hello " + name + "!!"

iface = gr.Interface(
    title = "Zero-shot Classification of Norwegian Text",
    description = "Demo of zero-shot classification using NB-Bert base model (Norwegian).",
    fn=sequence_to_classify, 
    inputs=[gr.inputs.Textbox(lines=2, 
        label="Write a norwegian text you would like to classify...",
        placeholder="Text here..."),
        gr.inputs.Textbox(lines=10, 
        label="Possible candidate labels",
        placeholder="labels here...")],  
    outputs=gr.outputs.Label(num_top_classes=3),
    capture_session=True,
    interpretation="default"
    ,examples=[
        [example_text, example_labels]
    ])
iface.launch()