File size: 1,696 Bytes
222fb9a
1522ef4
 
 
 
222fb9a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e4e5dd2
 
222fb9a
1522ef4
 
 
 
 
222fb9a
1522ef4
 
 
 
 
222fb9a
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
import gradio as gr
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch 
tokenizer = AutoTokenizer.from_pretrained("alibidaran/Symptom2disease")
model = AutoModelForSequenceClassification.from_pretrained("alibidaran/Symptom2disease")
label_2id={'Psoriasis': 0,
'Varicose Veins': 1,
'Typhoid': 2,
'Chicken pox': 3,
'Impetigo': 4,
'Dengue': 5,
'Fungal infection': 6,
'Common Cold': 7,
'Pneumonia': 8,
'Dimorphic Hemorrhoids': 9,
'Arthritis': 10,
'Acne': 11,
'Bronchial Asthma': 12,
'Hypertension': 13,
'Migraine': 14,
'Cervical spondylosis': 15,
'Jaundice': 16,
'Malaria': 17,
'urinary tract infection': 18,
'allergy': 19,
'gastroesophageal reflux disease': 20,
'drug reaction': 21,
'peptic ulcer disease': 22,
'diabetes': 23}
id2_label={i:v for v,i in label_2id.items()}

def detect_symptom(symptoms):
  inputs_id=tokenizer(symptoms,padding=True,truncation=True,return_tensors="pt")
  output=model(inputs_id['input_ids'])
  preds=torch.nn.functional.softmax(output.logits,-1).topk(5)
  results={id2_label[preds.indices[0][i].item()]:preds.values[0][i].item() for i in range(5)} 
  return results

demo=gr.Interface(fn=detect_symptom,inputs='text',outputs=gr.Label(num_top_classes=5),
                  examples=["I can't stop sneezing and I feel really tired and crummy. My throat is really sore",
                            "I have been experiencing a severe headache that is accompanied by pain behind my eyes.",
                            "There are small red spots all over my body that I can't explain. It's worrying me.",
                            "I've been having a really hard time going to the bathroom lately. It's really painful"])
demo.launch()