Spaces:
Build error
Build error
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() | |