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', ) classifier = pipeline("text-classification", model="j-hartmann/emotion-english-distilroberta-base", return_all_scores=True) def sentiment_analysis(text): results = classifier(text) total_result = "" for result in results[0]: total_result += f"Sentiment: {result.get('label')}, Score: {result.get('score'):.2f}" total_result += '\r\n' return total_result with gr.Blocks(theme=theme, css="footer {visibility: hidden}") as demo: gr.Markdown("""
文本情感分析
""") with gr.Row(): with gr.Column(): box1 = 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=box1, outputs=box2) clear.click(lambda x: gr.update(value=''), [], [box1]) examples = gr.Examples(examples=[['I am happy!'], ['I am sad!']], inputs=[box1], label="例子") if __name__ == "__main__": demo.queue(concurrency_count=3) demo.launch(server_name = "0.0.0.0", server_port = 7028)