distilbart-mnli-12-1/app.py

54 lines
2.1 KiB
Python

import gradio as gr
from transformers import pipeline
from gradio.themes.utils import sizes
theme = gr.themes.Default(radius_size=sizes.radius_none).set(
block_label_text_color = '#4D63FF',
block_title_text_color = '#4D63FF',
button_primary_text_color = '#4D63FF',
button_primary_background_fill='#FFFFFF',
button_primary_border_color='#4D63FF',
button_primary_background_fill_hover='#EDEFFF',
)
sentimentPipeline = pipeline("zero-shot-classification", model="valhalla/distilbart-mnli-12-1")
def sentiment_analysis(text, labels):
candidate_labels = labels.split(',')
results = sentimentPipeline(text, candidate_labels)
total_results = ""
index = 0
for candidate_label in candidate_labels:
total_results += f"Sentiment: {results.get('labels')[index]}, Score: {results.get('scores')[index]}"
total_results += '\r\n'
index += 1
return total_results
with gr.Blocks(theme=theme, css="footer {visibility: hidden}") as demo:
gr.Markdown("""
<div align='center' ><font size='60'>文本情感分析</font></div>
""")
with gr.Row():
with gr.Column():
text = gr.Textbox(label="文本")
label = gr.Textbox(label="标签")
with gr.Row():
button = gr.Button("提交", variant="primary")
clear = gr.Button("清除", variant="primary")
box2 = gr.Textbox(label="文本")
button.click(fn=sentiment_analysis, inputs=[text, label], outputs=box2)
clear.click(lambda x: gr.update(value=''), [], [text])
clear.click(lambda x: gr.update(value=''), [], [label])
examples = gr.Examples(examples=[['I have a problem with my iphone that needs to be resolved asap!!', 'urgent, not urgent, phone, tablet, computer'], ['Last week I upgraded my iOS version and ever since then my phone has been overheating whenever I use your app.', 'mobile, website, billing, account access']], inputs=[text, label], label="例子")
if __name__ == "__main__":
demo.queue(concurrency_count=3)
demo.launch(server_name = "0.0.0.0", server_port = 7028)