Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, AutoModelForSequenceClassification, pipeline | |
# 加载中文摘要模型 | |
summarizer_tokenizer = AutoTokenizer.from_pretrained("fnlp/bart-base-chinese") | |
summarizer_model = AutoModelForSeq2SeqLM.from_pretrained("fnlp/bart-base-chinese") | |
summarizer = pipeline("summarization", model=summarizer_model, tokenizer=summarizer_tokenizer) | |
# 加载中文情感分析模型 | |
sentiment_tokenizer = AutoTokenizer.from_pretrained("uer/roberta-base-finetuned-jd-binary-chinese") | |
sentiment_model = AutoModelForSequenceClassification.from_pretrained("uer/roberta-base-finetuned-jd-binary-chinese") | |
sentiment_analyzer = pipeline("sentiment-analysis", model=sentiment_model, tokenizer=sentiment_tokenizer) | |
def analyze_text(text): | |
# 生成摘要 | |
summary = summarizer(text, max_length=150, min_length=50, do_sample=False)[0]['summary_text'] | |
# 分析情感 | |
sentiment = sentiment_analyzer(text)[0] | |
sentiment_label = "积极" if sentiment['label'] == 'LABEL_1' else "消极" | |
sentiment_score = sentiment['score'] | |
# 返回结果 | |
return summary, f"{sentiment_label} (置信度: {sentiment_score:.2f})" | |
# 创建 Gradio 接口 | |
iface = gr.Interface( | |
fn=analyze_text, | |
inputs=gr.Textbox(lines=10, label="输入中文文本"), | |
outputs=[ | |
gr.Textbox(label="摘要"), | |
gr.Textbox(label="情感分析") | |
], | |
title="中文文章摘要和情感分析", | |
description="输入中文文本,获取摘要和情感分析结果。" | |
) | |
# 启动接口 | |
iface.launch() | |