From 5df01f487e9ef09b4c344565ac6a395f7ae8a43d Mon Sep 17 00:00:00 2001 From: gitea_eternal <401029566@qq.com> Date: Thu, 18 Jun 2026 14:01:15 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=F0=9F=93=8A=20=E6=9B=B4=E6=96=B0=E5=8F=AF?= =?UTF-8?q?=E8=A7=86=E5=8C=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 127 +++++++++++++++++------------------------------------- 1 file changed, 40 insertions(+), 87 deletions(-) diff --git a/README.md b/README.md index 94b0755..9f39efc 100644 --- a/README.md +++ b/README.md @@ -4,93 +4,46 @@ 班级: AI_251 学号: 2509165045 仓库: final-practice -原讲义文件: 期末实践题_电影类别预测.md +原数据文件: viz_data.json +说明: 纯数据,可直接用于 5 种图(条形图/折线图/饼图/雷达图/散点图) --> -# 人工智能数据服务 · 综合实践 - -> 课程代码:090945  班级:人工智能251班(50人) -> 考试形式:上机实践 · 2 节连堂(90 分钟)· 个人独立完成 - ---- - -## 一、说明 - -**类别词典**(共 10 类,本试卷通用): -``` -0.剧情 1.喜剧 2.科幻 3.悬疑 4.动作 -5.爱情 6.动画 7.犯罪 8.奇幻 9.纪录 -``` -注:一部电影一个类别 - -**要求**: -1. 独立完成 -2. 可参考 gitea 中的模板文件 -3. 禁止使用豆包等大模型工具 -4. 完成后提交到 Gitea 仓库 final-practice - ---- - -## 二、数据采集 - -爬取豆瓣电影 Top250 前 50 部电影信息,包含电影名称、主演、短评。数据保存为 `movies.json`。 - -JSON 字段示例: ```json -{"rank": 1, "title": "肖申克的救赎", "actors": "蒂姆·罗宾斯 / 摩根·弗里曼", "quote": "希望让人自由。"} -``` - ---- - -## 三、数据处理与标注 - -读取 `movies.json`,整理出短评部分。并且使用 label-studio 进行数据标注。 - -操作要点: -- 过滤 `quote` 字段为空的电影 -- 将待标注数据导入 label-studio -- 给每条短评标注 10 个类别中**最显著的一个** -- 导出标注结果 - ---- - -## 四、模型训练 - -使用标注的数据,使用 MLP 模型进行训练。获取训练时候的 loss 和 precision 两个数据,分别保存为 `loss.csv` 和 `predictions.csv` 两个文件。 - -操作要点: -- 用 `TfidfVectorizer` 提取文本特征 -- 划分训练集 / 验证集 -- 训练 MLP 模型并记录 loss -- 预测测试集并计算 precision - ---- - -## 五、可视化编程 - -基于 `loss.csv` 和 `predictions.csv` 绘制 2 张图。 - -操作要点: -- 图 1:loss 曲线(横轴 epoch,纵轴 loss,含训练集和验证集) -- 图 2:10 个类别的预测分布柱状图 - ---- - -## 六、提交规范 - -### 6.1 必交文件 - -``` -学号_姓名/ -├── movies.json -├── quotes_processed.txt -├── process_stats.json -├── predictions.csv -├── my_labels.csv -├── report.md -└── images/ - ├── wordcloud.png - └── category_bar.png -``` - ---- \ No newline at end of file +{ + "description": "学生考试成绩数据 - 可同时绘制 5 种图(条形图/折线图/饼图/雷达图/散点图)", + "bar_chart": { + "title": "各学生数学成绩对比", + "x": ["张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑明", "王芳"], + "y": [92, 88, 76, 85, 90, 82, 78, 95, 72, 88] + }, + "line_chart": { + "title": "班级各科平均分趋势(6个月)", + "month": ["1月", "2月", "3月", "4月", "5月", "6月"], + "语文": [78, 80, 82, 85, 83, 86], + "数学": [82, 84, 85, 87, 88, 90], + "英语": [80, 82, 81, 84, 85, 87] + }, + "pie_chart": { + "title": "班级成绩等级分布", + "labels": ["优秀(>=90)", "良好(80-89)", "中等(70-79)", "待提高(<70)"], + "values": [1, 7, 2, 0] + }, + "radar_chart": { + "title": "三位学生五科成绩对比", + "categories": ["语文", "数学", "英语", "物理", "化学"], + "students": { + "张三": [85, 92, 78, 88, 90], + "李四": [78, 88, 92, 75, 82], + "王五": [92, 76, 85, 90, 78] + } + }, + "scatter_chart": { + "title": "学习时长 vs 数学成绩", + "x_label": "每周学习时长(小时)", + "y_label": "数学成绩", + "x": [3, 5, 4, 6, 5, 4, 5, 6, 2, 7], + "y": [92, 88, 76, 85, 90, 82, 78, 95, 72, 88], + "labels": ["张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑明", "王芳"] + } +} +``` \ No newline at end of file From 93a332903183bd752ac26653d4043fe840b7bdea Mon Sep 17 00:00:00 2001 From: gitea_eternal <401029566@qq.com> Date: Thu, 18 Jun 2026 14:14:20 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=F0=9F=94=99=20=E6=81=A2=E5=A4=8D=E5=8E=9F?= =?UTF-8?q?=20README=EF=BC=88=E6=9C=9F=E6=9C=AB=E5=AE=9E=E8=B7=B5=E9=A2=98?= =?UTF-8?q?=C2=B7=E7=94=B5=E5=BD=B1=E7=B1=BB=E5=88=AB=E9=A2=84=E6=B5=8B?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 127 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 87 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 9f39efc..94b0755 100644 --- a/README.md +++ b/README.md @@ -4,46 +4,93 @@ 班级: AI_251 学号: 2509165045 仓库: final-practice -原数据文件: viz_data.json -说明: 纯数据,可直接用于 5 种图(条形图/折线图/饼图/雷达图/散点图) +原讲义文件: 期末实践题_电影类别预测.md --> +# 人工智能数据服务 · 综合实践 + +> 课程代码:090945  班级:人工智能251班(50人) +> 考试形式:上机实践 · 2 节连堂(90 分钟)· 个人独立完成 + +--- + +## 一、说明 + +**类别词典**(共 10 类,本试卷通用): +``` +0.剧情 1.喜剧 2.科幻 3.悬疑 4.动作 +5.爱情 6.动画 7.犯罪 8.奇幻 9.纪录 +``` +注:一部电影一个类别 + +**要求**: +1. 独立完成 +2. 可参考 gitea 中的模板文件 +3. 禁止使用豆包等大模型工具 +4. 完成后提交到 Gitea 仓库 final-practice + +--- + +## 二、数据采集 + +爬取豆瓣电影 Top250 前 50 部电影信息,包含电影名称、主演、短评。数据保存为 `movies.json`。 + +JSON 字段示例: ```json -{ - "description": "学生考试成绩数据 - 可同时绘制 5 种图(条形图/折线图/饼图/雷达图/散点图)", - "bar_chart": { - "title": "各学生数学成绩对比", - "x": ["张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑明", "王芳"], - "y": [92, 88, 76, 85, 90, 82, 78, 95, 72, 88] - }, - "line_chart": { - "title": "班级各科平均分趋势(6个月)", - "month": ["1月", "2月", "3月", "4月", "5月", "6月"], - "语文": [78, 80, 82, 85, 83, 86], - "数学": [82, 84, 85, 87, 88, 90], - "英语": [80, 82, 81, 84, 85, 87] - }, - "pie_chart": { - "title": "班级成绩等级分布", - "labels": ["优秀(>=90)", "良好(80-89)", "中等(70-79)", "待提高(<70)"], - "values": [1, 7, 2, 0] - }, - "radar_chart": { - "title": "三位学生五科成绩对比", - "categories": ["语文", "数学", "英语", "物理", "化学"], - "students": { - "张三": [85, 92, 78, 88, 90], - "李四": [78, 88, 92, 75, 82], - "王五": [92, 76, 85, 90, 78] - } - }, - "scatter_chart": { - "title": "学习时长 vs 数学成绩", - "x_label": "每周学习时长(小时)", - "y_label": "数学成绩", - "x": [3, 5, 4, 6, 5, 4, 5, 6, 2, 7], - "y": [92, 88, 76, 85, 90, 82, 78, 95, 72, 88], - "labels": ["张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑明", "王芳"] - } -} -``` \ No newline at end of file +{"rank": 1, "title": "肖申克的救赎", "actors": "蒂姆·罗宾斯 / 摩根·弗里曼", "quote": "希望让人自由。"} +``` + +--- + +## 三、数据处理与标注 + +读取 `movies.json`,整理出短评部分。并且使用 label-studio 进行数据标注。 + +操作要点: +- 过滤 `quote` 字段为空的电影 +- 将待标注数据导入 label-studio +- 给每条短评标注 10 个类别中**最显著的一个** +- 导出标注结果 + +--- + +## 四、模型训练 + +使用标注的数据,使用 MLP 模型进行训练。获取训练时候的 loss 和 precision 两个数据,分别保存为 `loss.csv` 和 `predictions.csv` 两个文件。 + +操作要点: +- 用 `TfidfVectorizer` 提取文本特征 +- 划分训练集 / 验证集 +- 训练 MLP 模型并记录 loss +- 预测测试集并计算 precision + +--- + +## 五、可视化编程 + +基于 `loss.csv` 和 `predictions.csv` 绘制 2 张图。 + +操作要点: +- 图 1:loss 曲线(横轴 epoch,纵轴 loss,含训练集和验证集) +- 图 2:10 个类别的预测分布柱状图 + +--- + +## 六、提交规范 + +### 6.1 必交文件 + +``` +学号_姓名/ +├── movies.json +├── quotes_processed.txt +├── process_stats.json +├── predictions.csv +├── my_labels.csv +├── report.md +└── images/ + ├── wordcloud.png + └── category_bar.png +``` + +--- \ No newline at end of file From 4f17a8a644602389dfa897f86667b6be9d261285 Mon Sep 17 00:00:00 2001 From: gitea_eternal <401029566@qq.com> Date: Thu, 18 Jun 2026 14:14:21 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=F0=9F=93=8A=20=E6=B7=BB=E5=8A=A0=E5=8F=AF?= =?UTF-8?q?=E8=A7=86=E5=8C=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- viz_data.json | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 viz_data.json diff --git a/viz_data.json b/viz_data.json new file mode 100644 index 0000000..b52c3ab --- /dev/null +++ b/viz_data.json @@ -0,0 +1,37 @@ +{ + "description": "学生考试成绩数据 - 可同时绘制 5 种图(条形图/折线图/饼图/雷达图/散点图)", + "bar_chart": { + "title": "各学生数学成绩对比", + "x": ["张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑明", "王芳"], + "y": [92, 88, 76, 85, 90, 82, 78, 95, 72, 88] + }, + "line_chart": { + "title": "班级各科平均分趋势(6个月)", + "month": ["1月", "2月", "3月", "4月", "5月", "6月"], + "语文": [78, 80, 82, 85, 83, 86], + "数学": [82, 84, 85, 87, 88, 90], + "英语": [80, 82, 81, 84, 85, 87] + }, + "pie_chart": { + "title": "班级成绩等级分布", + "labels": ["优秀(>=90)", "良好(80-89)", "中等(70-79)", "待提高(<70)"], + "values": [1, 7, 2, 0] + }, + "radar_chart": { + "title": "三位学生五科成绩对比", + "categories": ["语文", "数学", "英语", "物理", "化学"], + "students": { + "张三": [85, 92, 78, 88, 90], + "李四": [78, 88, 92, 75, 82], + "王五": [92, 76, 85, 90, 78] + } + }, + "scatter_chart": { + "title": "学习时长 vs 数学成绩", + "x_label": "每周学习时长(小时)", + "y_label": "数学成绩", + "x": [3, 5, 4, 6, 5, 4, 5, 6, 2, 7], + "y": [92, 88, 76, 85, 90, 82, 78, 95, 72, 88], + "labels": ["张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑明", "王芳"] + } +} From ec87e42845e377d2c6bcadf0ad46568143aa0519 Mon Sep 17 00:00:00 2001 From: gitea_eternal <401029566@qq.com> Date: Thu, 18 Jun 2026 14:16:06 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=F0=9F=94=99=20=E6=81=A2=E5=A4=8D=E5=8E=9F?= =?UTF-8?q?=20README=EF=BC=88=E6=9C=9F=E6=9C=AB=E5=AE=9E=E8=B7=B5=E9=A2=98?= =?UTF-8?q?=C2=B7=E7=94=B5=E5=BD=B1=E7=B1=BB=E5=88=AB=E9=A2=84=E6=B5=8B?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From b122d2fb702cf1c086df6c19d393deded657800e Mon Sep 17 00:00:00 2001 From: gitea_eternal <401029566@qq.com> Date: Thu, 18 Jun 2026 14:16:07 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=F0=9F=93=8A=20=E6=9B=B4=E6=96=B0=E5=8F=AF?= =?UTF-8?q?=E8=A7=86=E5=8C=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit