# sentiment-analysis **Repository Path**: lfs-code/sentiment-analysis ## Basic Information - **Project Name**: sentiment-analysis - **Description**: 基于 PaddleNLP 的中文外卖评论情感分析,微调模型准确率 91.7%。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-05-14 - **Last Updated**: 2026-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 中文情感分析项目 ## 一、项目概述 使用 PaddleNLP 对中文外卖评论进行情感分析(正面/负面),完成从数据清洗、模型测试、错误分析、数据修正到模型微调和部署的全流程。 **核心成果**:微调后的情感分析模型在外卖评论测试集上达到 **91.7%** 的准确率,可轻松集成到实际应用中。 ## 二、技术栈 - Python 3.9 - PaddlePaddle / PaddleNLP - 数据集:waimai_10k(外卖评论)、ChnSentiCorp_htl_all(酒店评论) ## 三、模型对比 ### 1. 通用模型(未微调) | 模型 | 准确率 | 耗时(1000条) | |------|--------|----------------| | 默认模型 (ernie-3.0-tiny) | 87.10% | 约3.5秒 | | **bilstm** | **87.10%** | **更快** | > 在外卖数据上,默认模型与 `bilstm` 准确率相同,`bilstm` 速度更快,适合对效率要求高的场景。 ### 2. 微调模型(本项目最终模型) | 模型 | 准确率 | 说明 | |------|--------|------| | `bert-base-chinese` (未微调) | 48.8% | 分类头随机初始化,接近随机猜测 | | **微调模型 (基于 ernie-3.0-base-zh)** | **91.7%** | 在外卖评论上微调,效果显著提升 | - 正向样本准确率:91.5% - 负向样本准确率:93.1% - 微调后准确率比通用模型提升 **4.6 个百分点**,比随机初始化模型提升 **42.9 个百分点**。 ## 四、Quick Start(使用微调模型) ### 1. 安装依赖 ```bash pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple(自己电脑上运行) ``` ### 2. 下载微调模型 模型文件(约 400 MB)可从以下地址下载: 🔗 [通过网盘分享的文件:waimai_sentiment_finetuned.zip 链接: https://pan.baidu.com/s/13bYarV8MWi82trwbJHryZw (提取码: 52NL) ] 下载后解压,将 finetuned_model 文件夹放在项目根目录。 ### 3. 运行预测 python from predict import SentimentAnalyzer analyzer = SentimentAnalyzer() result = analyzer.predict(["这家外卖很好吃", "太难吃了,等了两个小时"]) print(result) 输出示例: python [ {'text': '这家外卖很好吃', 'label': 'positive', 'score': 0.9702}, {'text': '太难吃了,等了两个小时', 'label': 'negative', 'score': 0.9799} ] ### 4. 批量预测(自定义数据) python import pandas as pd from predict import SentimentAnalyzer analyzer = SentimentAnalyzer() df = pd.read_csv("comments.csv") texts = df['comment'].tolist() results = analyzer.predict(texts) df['sentiment'] = [r['label'] for r in results] df.to_csv("result.csv", index=False) ## 五、微调细节 ### 1.基座模型:ernie-3.0-base-zh ### 2.训练数据:外卖评论,正负样本各约 500 条(均衡) ### 3.训练轮数:3 epochs ### 4.学习率:2e-5 ### 5.批大小:16 ### 6.最大序列长度:128 ### 7.优化器:AdamW ### 8.损失函数:CrossEntropyLoss ## 六、项目结构 ### text-classification-sentiment-analysis/ |—— data/ # 示例数据 |——error_analysis # 错误分析结果 ├── finetuned_model/ # 微调后的模型文件 |——results/ # 预测结果 ├── scripts/ # 脚本目录(如数据处理、模型训练等) |——AIStudio_requirements.txt # AISudio 运行依赖列表 |—— problems_and_insights.md # 项目问题与心得 ├── README.md # 项目说明 ├── requirements.txt # 依赖列表 ## 七、环境依赖 Python 3.8+ PaddlePaddle >= 2.4.0 PaddleNLP >= 2.5.0 pandas, scikit-learn, tqdm 完整依赖见 requirements.txt。 ## 八、总结 本项目完成了从数据清洗、模型对比、错误分析到模型微调和部署的完整 NLP 流程。微调后的模型在外卖评论上准确率达到 91.7%,远超通用模型,具备实用价值。你可以直接使用该模型分析自己的评论数据,或将其集成到其他应用中。 ### 作者 #### 1.姓名:[lfs_code] #### 2.邮箱:[3040817599@qq.com]