Spaces:
Build error
Build error
File size: 1,931 Bytes
4c8fe65 |
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 |
import gradio as gr
from models import classifier, extractor
import api.get_tweets as get_tweets
nl = '\n'
tab = '\t'
def get_analysis(text='', mode=False, n_tweets=3):
list_anns = []
if mode == 'Search in Twitter':
for word in get_tweets.use(text, n_tweets):
list_anns.append((word, process_text(word)))
else:
list_anns.append((text, process_text(text)))
return generate_string(list_anns)
def process_text(text):
detection, pred_class = classifier.use(text)
pred_ext = None
if detection:
pred_ext = extractor.use(text)
return pred_class, pred_ext
def generate_string(anns):
result = f'Nº{tab}Text{tab}Result{nl}'
for idx, ann in enumerate(anns):
result += f'{nl}{idx+1}:{tab}"{ann[0]}"{tab}{ann[1][0]}'
if ann[1][1]:
result += f'{nl}{ann[1][1]}'
return result
iface = gr.Interface(fn=get_analysis,
inputs=[gr.inputs.Textbox(lines=2, label="Text or words for search"),
gr.inputs.Radio(choices=['Text', 'Search in Twitter'], label="Mode"),
gr.inputs.Slider(0, 5, label='Nº tweets per word', step=1)],
outputs=gr.inputs.Textbox(lines=7, label="Result"),
title='Adverse Drug Effect Detection',
description='Tell us your symptoms as if you were talking to a friend or search tweets with '
'specific words '
'in Twitter and we will give you a '
'positive or negative result and the keywords we have detected.',
article='*An adverse drug effect (ADE) is when someone is harmed by a medicine.',
theme="grass",
allow_flagging=False,
allow_screenshot=False,
)
iface.launch()
|