oo0816

japanese-exam-review

为软件工程中日合办学生,根据日语CS课件和试卷生成复习文档PDF

oo0816 0 Updated 1mo ago

Resources

5
GitHub

Install

npx skillscat add oo0816/japanese-exam-review-skill

Install via the SkillsCat registry.

SKILL.md

日语考试复习文档生成器

概述

为软件工程中日合作办学项目的学生,根据日语授课的 CS 专业课课件和历年试卷,自动生成复习文档 PDF。支持日语讲义 PDF 和 PPTX 两种源文件格式。用户是 CS 专业学生,用日语学习软件工程课程(计算机网络、数据库、操作系统、数据结构等)。

触发条件

本 Skill 同时满足以下两个要素时触发:

要素 A — 日语相关:提及"日语""日文""日本語""Japanese""Japan",或日本学校/教师/教材/考试/授课

要素 B — CS 专业课:提及计算机网络、数据库、操作系统、数据结构、算法、软件工程、编程语言(Java/C/Python 等)、计算机组成原理、编译原理等

"帮我把计算机网络PPT整理成复习文档" ❌(未涉及日语)
"帮我学日语语法" ❌(不是专业课)

前置确认(必须执行)

!! 强制执行 !! — 未获得用户明确答复前,禁止进行任何文件解析或内容生成。

使用 AskUserQuestion 工具依次确认三项:

第1问 — 模式选择

  • 模式一:仅课件 → 复习文档(术语表 + 知识点 + 重点图 + 对比表格)
  • 模式二:课件 + 历年试卷 → 考点分析 + 高频考点精讲 + 未考重点预警
  • exams/ 目录为空,自动跳过,仅模式一可用

第2问 — 输出语言

  • jp_first(推荐):日语原文在上方,中文完整翻译在下方,段落交错排列。每个知识点顶部有关键词标签。重要概念处用表格对比
  • chinese_annotated:中文为主叙述语言,重点词汇用英文和日文标注,重要概念处用表格对比

第3问 — 其他需求:特别关注的章节/范围?需要强调的考点或易错点?输出文件名要求?


输出语言详解

jp_first(日语为主 + 中文翻译)

每个 section 包含以下元素,按顺序排列:

元素 说明 字号/颜色
章节概览(overview) 日语简介 + 中文简介(用 \n\n 分隔),中文部分用灰色小字 8.5pt #3c1e1e / 7pt #646464
术语表(term_table) 日语→读音→中文→说明,深色表头+交替行色 表头 7.5pt #fff / 表体 7pt #282828
知识点卡片(concept_card) 标题 + Keywords标签 + 日语正文 + 中文翻译(交错排列) 见视觉规范
对比表格(term_table) 重要概念对比(TCP vs UDP、回線交換 vs パケット交換等) 同上
图片(image) 每章 2-3 张核心架构/协议图 8pt #b43232 图注
考试提示(highlight_box) 红色文字,无背景框 8.5pt #c83232

概念卡片(concept_card)内部结构(从上到下):

  1. 章节标题 — 12pt #283c5a 加粗,带 ★ 重要度标记
  2. 【Keywords】标签行 — 7pt #283246 加粗,列出本知识点关键术语
  3. 日语原文段落 — 8.5pt #3c1e1e(深棕)
  4. 中文翻译段落 — 8.5pt #283c5a,浅蓝背景 #f0f4fa 填充,无边框
  5. 日语和中文段落按 \n\n 拆分后交错排列,一段日语紧跟一段中文
  6. 卡片之间无分隔线
  7. 考试提示 — 8.5pt #c83232,紧跟对应知识点段落

chinese_annotated(中文为主 + 术语标注)

每个 section 元素同上,区别在于 concept_card 结构:

  1. 章节标题 — 12pt #283c5a 加粗,带 ★ 重要度标记
  2. 【Keywords】标签行 — 7pt #283246 加粗
  3. 中文正文 — 8.5pt #3c1e1e。所有关键术语必须同时标注英文和日文,格式为「中文(English / 日本語)」,英文和日文两项缺一不可。首次出现的术语用完整标注,同段落内再次出现时可仅用中文。
  4. 无独立翻译段落(中文即是主语言)

工作流程

模式一:课件 → 复习文档

1. 解析课件

根据 ppt/ 目录中的文件格式自动选择解析方式:

  • PDF 讲义*.pdf):运行 python scripts/parse_pdf_lecture.py
  • PPTX 课件*.pptx):运行 python scripts/parse_ppt.py

结果统一写入 output/parsed_ppt.json,图片保存到 output/images/

2. 筛选重点图片

  • 仅保留有实质内容的图片:系统架构图、网络拓扑图、算法流程图、时序图、关键公式/表格截图
  • 舍弃:小图标、装饰图、背景图、Logo、无意义的插图
  • 如果某章节没有重点图片,则不放图片,不强制每章必须有
  • 有重点图片的章节按需放入,数量不限
  • 筛选完成后输出清单(图片名 → 对应章节 → 选用理由)

3. 生成内容 JSON

内容 JSON 规范(见下文)编写。

组织要求:

  • 按课件自然章节划分 section
  • jp_first 模式:content(日语)和 translation(中文)段落数一致,用 \n\n 分隔
  • chinese_annotated 模式:content 写中文正文,无需 translation 字段
  • 每个 section 必须包含:概览、术语表、2-4 个概念卡片
  • 表格按需使用——适合集中呈现的内容(对比、分类、并列、记忆点)用表格,不适合则用文字叙述
  • 图片仅在有关键架构图/流程图时加入,无重点则跳过
  • 每个 concept_card 必须提供 keywords 数组

4. 知识点覆盖核查(必须)

运行自动检查:

python scripts/check_coverage.py output/content_mode1.json

该脚本逐页比较 parsed_ppt.json 中的术语与 content JSON 中的已覆盖术语,输出:

  • 覆盖率百分比
  • 0 覆盖页面清单(附未覆盖术语样本)

目标覆盖率 ≥ 85%。对未覆盖页面逐条判断:非内容页(目录/测验链接等)可忽略,有实质内容的需补充对应 block。

5. 生成 PDF

python scripts/generate_pdf.py output/content_mode1.json -o output/review.pdf -l <语言选择>

output/images/ 无对应图片,自动跳过不报错。

模式二:课件 + 试卷 → 考点复习文档

  1. 解析课件 + 试卷(parse_pdf.py),读取 parsed_ppt.jsonparsed_exams.json
  2. 识别题型、提取考点关键词、统计频次和分值
  3. 交叉分析:高频考点(≥2次)、未考重点、易错题型
  4. 生成 content JSON(考试情报 + 高频排行 + 逐考点精讲 + 未考预警 + 易错分析)
  5. 覆盖核查(同模式一步骤4)
  6. 生成 PDF

内容 JSON 规范

顶层结构

{
  "title": "复习文档标题",
  "subtitle": "副标题(可选)",
  "sections": [
    {
      "title": "章节标题",
      "overview": "章节概览。jp_first模式用\\n\\n分隔日语和中文",
      "blocks": [ {块1}, {块2}, ... ]
    }
  ]
}

支持的块类型

term_table — 术语表 / 对比表格

{
  "type": "term_table",
  "columns": ["列1标题", "列2标题", ...],
  "col_widths": [40, 60, 75],
  "rows": [
    ["单元格", "单元格", ...],
    ...
  ]
}

术语表:4列(日本語·読み方·中国語·説明)。对比表格:3-5列(对比维度 + 各方案列)。col_widths 单位 mm,可省略。

concept_card — 知识点卡片

{
  "type": "concept_card",
  "title": "知识点标题(中日双语)",
  "content": "jp_first: 日语原文。chinese_annotated: 中文正文。段落用\\n\\n分隔。",
  "translation": "仅jp_first模式。中文完整翻译。段落数与content对齐,\\n\\n分隔。",
  "keywords": ["关键术语1", "关键术语2"],
  "importance": 3,
  "exam_tip": "考试提示(红色渲染)",
  "key_point": "重点记忆内容(深蓝色渲染)",
  "example": "补充说明(灰色小字,可选)"
}
字段 必需 说明
title 中日双语标题
content 主语言正文,段落用 \n\n 分隔
translation jp_first 必需 完整中文翻译,段落数匹配 content
keywords 至少 3-8 个关键术语
importance 1-3,渲染为 ★
exam_tip 红色考试要点
key_point 深蓝色重点记忆
example 灰色补充说明

image — 图片

{
  "type": "image",
  "file": "slide3_img1.png",
  "caption": "図1: TCPの3ウェイハンドシェイク (三次握手)"
}

file: 相对于 output/images/ 的文件名。caption: 中日双语图注。

highlight_box — 高亮提示

{
  "type": "highlight_box",
  "box_type": "danger",
  "label": "网络安全重点概念",
  "content": "1. 计算机病毒·蠕虫:WannaCry...\n2. DoS/DDoS攻击:..."
}

box_type: "danger"(红) / "warning"(红) / "info"(深蓝) / "tip"(灰)。labelcontent 均用红色渲染。


视觉规范

两种输出语言各有独立的视觉预设,通过 generate_pdf.py-l 参数切换。

jp_first(增强可读性)

元素 色值 字号/样式
章节标题 #1a3a5c 17pt 加粗
小节标题 #283c5a 12pt 加粗
日语正文 #222222 8.5pt
中文翻译正文 #1e5080 8.5pt
翻译段落背景 #edf2f8 浅蓝填充,无边框
Keywords 标签 #283246 7pt 加粗
考试提示 #c83232 8.5pt
图注 #505050 8pt
注释/概述中文 #646464 7pt
表格表头 #ffffff / #283c5a 7.5pt 加粗
表格正文 #222222 7pt
表格交替行 #f2f5fa / #ffffff
表格边框 #d0d5e0
卡片间距 4pt

chinese_annotated(SE 指南原版 + 宋体中文 + 标注着色)

元素 色值 字号/样式 字体
章节标题 #1a3a5c 17pt 加粗 SimSun(宋体)
小节标题 #283c5a 12pt 加粗 SimSun(宋体)
中文正文 #323232 8.5pt SimSun(宋体)
术语标注 (English / 日本語) #1a7a5c 8.5pt SimSun(宋体)
关键词标注 行内(English / 日本語)格式 8.5pt
Keywords 标签 #283246 7pt 加粗 NotoSansSC
考试提示 #c83232 8.5pt SimSun(宋体)
图注 #505050 8pt NotoSansSC
注释/概述中文 #646464 7pt SimSun(宋体)
概述日文 #323232 8.5pt NotoSansSC
表格表头 #ffffff / #283c5a 7.5pt 加粗 NotoSansSC
表格正文 #282828 7pt NotoSansSC
表格交替行 #f8f8fc / #ffffff(微妙)
表格边框
卡片间距 2pt

字体规则:中文正文、标题使用 SimSun(宋体,衬线/学术风格);日文术语、表格、概述日文部分使用 NotoSansSC(无衬线/黑体,完整覆盖假名)。SimSun 不支持日文中点 (U+30FB),渲染时自动替换为 ·(U+00B7)。

共用参数

参数
左边距 / 右边距 16mm / 17mm
正文行高 6.0pt
表格行高 5.5pt
自动分页边距 15mm
字体 NotoSansSC

内容质量要求

  1. 术语准确:日语术语与课件原文一致,中文译名使用大陆 CS 标准译名
  2. 英日双语标注(chinese_annotated 强制):正文中每个关键术语首次出现时必须同时标注英文和日文,格式为「中文(English / 日本語)」。英文在前、日文在后,两项缺一不可。例:「广域网(Wide Area Network / WAN)」「传输控制协议(Transmission Control Protocol / TCP)」。术语表(term_table)也须包含日文·读法·中文·英文四列
  3. 保留日语原表述:关键定义保留日语原文,确保学生能对应考试中的日语表述
  4. 翻译完整(jp_first):translation 是对 content 的完整逐段翻译,不是术语对照或摘要
  5. 图片精选:有重点图才放,无重点图的章节不强制。每章最多 2-3 张
  6. 表格使用(按需判断):
    • 适合做成表格的内容:对比性概念、同类知识点并列、有规律的分类、适合集中记忆的条目
    • 判断标准——用表格比用文字段落更直观、更容易记忆时,就做表;反之用文字叙述
    • 表格内容必须日中双语,所有影响阅读理解的单元格(説明列、对比内容、标题行除外)必须有中文翻译紧跟日文原文
    • 不要强行把所有内容都塞进表格
  7. 考试导向(模式二):每个考点标注"该考点出现在 20XX 年卷第 X 题"
  8. 不编造内容:只基于课件和试卷中实际存在的内容
  9. 知识点无遗漏:逐页对照、逐条确认,不得整页或整节遗漏

注意事项

  • 解析脚本覆盖 output/parsed_ppt.jsonoutput/parsed_exams.json
  • PDF 讲义同样适用(用 PyMuPDF 提取,非 PPTX 时跳过 parse_ppt.py)
  • 图片保存到 output/images/,生成 PDF 前确认图片存在
  • 生成 PDF 前确认 fonts/NotoSansSC-Regular.ttffonts/NotoSansSC-Bold.ttf 存在
  • 模式二若 exams/ 无试卷文件,自动降级为模式一