import gradio as gr | |
import model_wrapper | |
model = model_wrapper.PredictionModel() | |
def pretty_print_opinion(opinion_dict): | |
res = [] | |
maxlen = max([len(key) for key in opinion_dict.keys()]) + 2 | |
maxlen = 0 | |
for key, value in opinion_dict.items(): | |
if key == 'Polarity': | |
res.append(f'{(key + ":").ljust(maxlen)} {value}') | |
else: | |
res.append(f'{(key + ":").ljust(maxlen)} \'{" ".join(value[0])}\'') | |
return '\n'.join(res) + '\n' | |
def predict(text): | |
predictions = model.predict([text]) | |
prediction = predictions[0] | |
results = [] | |
if not prediction['opinions']: | |
return 'No opinions detected' | |
for opinion in prediction['opinions']: | |
results.append(pretty_print_opinion(opinion)) | |
return '\n'.join(results) | |
iface = gr.Interface(fn=predict, inputs="text", outputs="text") | |
iface.launch() |