3 任务
根据提供的评分标准及要求,对每份作品进行自动评分, 并撰写报告,在报告中详细描述各项任务的处理思路、过程及必要的结果。 同时,将 Python 源代码保存为 py 文件,文件名为任务编号,例如“ task1_1.py ”“ task1_2.py ”“ task2_1.py ” 等
3.1 任务 1 基本处理
压缩文件“ DataA.rar ”中包括所有待评分的作品,每份作品是以作品号为文件名、包含若干结果文件的压缩文件,文件格式可能是 rar 、 zip 或 7z 。
任务 1.1 将压缩文件“ DataA.rar ”中的所有作品解压到当前文件夹的同名子文件夹(即以每份作品的作品号为子文件夹名)中。
任务 1.2 在当前文件夹中新建“ summary ”子文件夹,在每份作品文件夹中新建“image ”子文件夹。
任务 1.3 判断每份作品中是否包含文件“ task2_1.xlsx ”“ task2_2.xlsx ” “task2_3.pdf”及“ task3.xlsx”,每包含一个文件得 2 分,满分 8 分。
任务 1.4 对每份作品提取文件“ task2_3.pdf ”中的图片,保存在“ image ”
文件夹的“ XXXX_n.png ”文件中,其中“ XXXX ”为作品号、 n 为图片在文件 “task2_3.pdf ”中的图片序号。提取所有作品中的图片信息,按照表 1 的格式保 存在文件夹“summary ”的“ result1_4.xlsx ”文件中。将含有作品号 A118~A120 的结果截屏放在报告中。
3.2 任务 2 数据分析
任务 3.2.1 通用名称评分
以“ criteria2_1.xlsx ”为标准,根据正式登记证号对每份作品中的“ task2_1.xlsx ”
进行匹配,按以下规则统计错误数:
(1) 对匹配的记录,判断“产品通用名称”是否一致,如不一致,错误数 s 加 1。
(2) 对“ criteria2_1.xlsx ”中的每条记录,查找“ task2_1.xlsx ”,如没有匹配
的记录,错误数 s 加 1 。
(3) 对“ task2_1.xlsx ”中的每条记录,查找“ criteria2_1.xlsx ”,如没有匹配的记录,错误数 s 加 1 。
对错误数 s : s = 0 得 15 分, 1 ≤ s ≤ 10 得 10 分, 11 ≤ s ≤ 20 得 5 分,s ≥ 21 得 0 分。
任务 3.2.2 分组标签评分
以“ criteria2_2.xlsx ”为标准,根据正式登记证号对每份作品中的“ task2_2.xlsx ” 进行匹配,按以下规则统计错误数:
(1) 对匹配的记录,判断“分组标签”中的数值和顺序是否一致,如不一致, 错误数 s 加 1 。
(2) 对“ criteria2_2.xlsx ”中的每条记录,查找“ task2_2.xlsx ”,如没有匹配的记录,错误数 s 加 1 。
(3) 对“ task2_2.xlsx ”中的每条记录,查找“ criteria2_2.xlsx ”,如没有匹配的记录,错误数 s 加 1 。
对错误数 s : s ≤ 5 得 15 分, 6 ≤ s ≤ 15 得 10 分, 16 ≤ s ≤ 30 得 5 分,s ≥ 31 得 0 分。
任务 3.2.3
读取每份作品“ task2_3.pdf ”中产品登记数量及排名的表格,针对每个排名判断“分组标签”和“产品登记数量”的数值与表 2 中的标准答案是否 一致,每个匹配的数值得 2 分,满分 12 分。
3.3 任务 3 相似矩阵评分
以“ criteria3.xlsx ”为标准,对每份作品“ task3.xlsx ”中的相似矩阵(以下简 称相似矩阵)按以下规则进行评分。
任务 3.3.1
判断相似矩阵的维数与“ criteria3.xlsx ”中的是否一致,如一致得5 分,否则得 0 分。
任务 3.3.2
公司 ID 匹配
对相似矩阵进行匹配,按以下规则统计错误数:
(1) 对“ criteria3.xlsx ”中的每个公司 ID ,查找“ task3.xlsx ”,如没有匹配的公司 ID ,错误数 s 加 1 。
(2) 对“ task3.xlsx ”中的每个公司 ID ,查找“ criteria3.xlsx ”,如没有匹配的公司 ID ,错误数 s 加 1 。
对错误数 s : s = 0 得 15 分, 1 ≤ s ≤ 2 得 10 分, 3 ≤ s ≤ 5 得 5 分, s ≥ 6 得 0 分。
任务 3.3.3
判断相似矩阵的对角线元素是否均为 1 (允许误差 10 −6 ),如均为 1 得 5 分,否则得 0 分。
任务 3.3.4
判断相似矩阵的元素是否关于主对角线对称(允许误差 10 −6),每出现一组不对称的元素,错误数 s 加 1。对错误数 s:s = 0 得 10 分,1 ≤ s ≤ 5得 7 分,6 ≤ s ≤ 10 得 4 分,s ≥ 11 得 0 分。
任务 3.3.5
以“criteria3.xlsx”为标准,统计相似矩阵上三角元素的错误数 s。对每个匹配的元素计算绝对误差 e,0.005 ≤ e < 0.01,错误数 s 加 0.5;e ≥ 0.01, 错误数 s 加 1。对每个匹配不上的元素,错误数 s 加 1。对错误数 s:s = 0 得 15 分,1 ≤ s ≤ 5 得 10 分,6 ≤ s ≤ 10 得 5 分,s ≥ 11 得 0 分。
3.4 任务 4 评分结果汇总
对每份作品,完成任务 1~3 ,对得分进行统计,按表 3~5 的格式生成 “score.xlsx”,保存在文件夹“ summary ”中。
任务 3.4.1
按表 3 的格式,在工作表“ report4_1 ”中保存所有作品的得分明 细,计算各作品的总分,并进行排名。按总分降序排列。作品号放在第 1 列,字 段名放在第 1 行,从第 2 行第 2 列开始列出明细数据。字段名单元格底色设置为 蓝色,总分与排名单元格底色设置为红色,其他单元格底色设置为黄色。
任务 3.4.2
在明细数据之后列出每项评分的汇总数据:最高分、最低分和平均分。汇总数据单元格底色设置为绿色。将含有作品号 A417~A419 及统计结果的截屏放在报告中。
任务 3.4.3
在工作表“ report4_3 ”中,以 10 分为一段(参见表 4 )分段汇总 各段的作品数。得分区间在第 1 列,作品数在第 2 列,字段名在第 1 行。同时,将结果放在报告中。
任务 3.4.4
基于任务 4.3 的结果,在工作表“ report4_4 ”中绘制各得分段作品数的柱形图。同时,将柱形图放在报告中。
3.5 任务 5 嵌套压缩文件处理
任务 3.5.1
将压缩文件“ DataB.rar ”中的所有作品解压到当前文件夹的同名子文件夹中。
任务 3.5.2
判断每份作品中是否包含文件“ task2_1.xlsx ”“ task2_2.xlsx ” “task2_3.pdf ”及“task3.xlsx”,每包含一个文件得 2 分,满分 8 分。按照表 5 错误 ! 未找到引用源。 的格式,将所有作品的得分保存在文件夹“ summary ”的 “result5_2.xlsx ”文件中。
任务 3.5.3
基于任务 5.2 的结果,对每份作品提取到的文件,按照表 6 的格式列出各文件的路径,保存在文件夹“summary ”的“ result5_3.xlsx ”文件中。
4 Python代码实现