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("""
文本情感分析
""") 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)