StructBERT 中文情感分类 WebUI 实现与多语言切换
基于百度 StructBERT 模型的中文情感分类 WebUI,支持中英文界面切换,让非技术用户也能轻松进行情感分析
1. 项目概述与环境准备
StructBERT 中文情感分类模型是百度基于 StructBERT 预训练模型微调后的经典模型,专门用于识别中文文本的情感倾向(正面/负面/中性)。这个模型在中文 NLP 领域有着很好的效果和效率平衡,特别适合实际业务应用。
本项目提供了一个完整的 WebUI 界面,支持单文本和批量情感分析,并且实现了中英文界面切换功能,让不同语言习惯的用户都能方便使用。
环境要求:
- Python 3.8+
- PyTorch 1.8+
- Gradio 3.0+
- 至少 4GB 内存
快速安装:
# 创建 conda 环境
conda create -n sentiment python=3.8
conda activate sentiment
# 安装核心依赖
pip install torch gradio flask transformers
2. WebUI 界面功能详解
2.1 单文本情感分析
单文本分析是最常用的功能,适合快速检查一段文字的情感倾向:
- 打开 WebUI 界面:访问
http://localhost:7860 - 输入待分析文本:在文本框中输入中文内容
- 点击分析按钮:获取情感倾向和置信度
- 查看详细结果:包括情感标签和概率分数
使用示例:
- 输入:"这个产品真的很好用,推荐购买!"
- 输出:积极情感(置信度 98%)
2.2 批量文本分析
批量分析功能适合处理大量文本数据,比如用户评论分析:
- 准备数据:每行一个文本,支持中文内容
- 粘贴到输入框:将多条文本粘贴到批量分析区域
- 开始批量分析:系统会自动处理所有文本
- 查看结果表格:包含原文、情感标签、置信度等信息
批量处理优势:
- 一次性处理上百条文本
- 结果以表格形式展示,方便导出
- 支持大规模情感分析任务
3. 多语言界面实现详解
3.1 中英文切换核心代码
实现多语言界面的关键在于使用 Gradio 的语言切换功能和动态界面更新:
import gradio as gr
from typing import Dict
LANGUAGE_TEXT = {
"zh": {
"title": "StructBERT 中文情感分析",
: ,
: ,
: ,
: ,
: ,
: ,
:
},
: {
: ,
: ,
: ,
: ,
: ,
: ,
: ,
:
}
}
():
texts = LANGUAGE_TEXT[lang]
gr.Blocks(title=texts[]) demo:
gr.Markdown()
gr.Row():
lang_btn = gr.Radio(
choices=[, ],
value= lang == ,
label=
)
gr.Tab(texts[]):
gr.Row():
single_input = gr.Textbox(
label=,
placeholder=texts[],
lines=
)
gr.Row():
analyze_btn = gr.Button(texts[])
gr.Row():
output = gr.Label(label=)
gr.Tab(texts[]):
gr.Row():
batch_input = gr.Textbox(
label=,
placeholder=texts[],
lines=
)
gr.Row():
batch_btn = gr.Button()
gr.Row():
batch_output = gr.Dataframe(
headers=[, , ],
label=
)
():
new_lang = selected_lang ==
create_interface(new_lang)
lang_btn.change(update_language, inputs=lang_btn, outputs=demo)
demo

