我如何将 1,000+ 中文考试题目从 WordPress 开源到 GitHub

发布: (2026年3月5日 GMT+8 15:57)
4 分钟阅读
原文: Dev.to

Source: Dev.to

我自 2008 年起在北京运营 Mandarin Zone,这是一所中文语言学校。多年来,我使用 AYS Quiz Maker WordPress 插件为学生在线练习,构建了 12 套完整的 HSK 4 模拟考试。

最近,我决定将所有这些内容开源。下面介绍我如何从 WordPress 数据库中提取 1,176 道题目,并将其转化为干净、开发者友好的 GitHub 仓库。

挑战

我们的测验数据被锁在 WordPress 中——分散在多个数据库表(aysquiz_questionsaysquiz_answersaysquiz_quizzes)里,内容中嵌入了 HTML、用于音频文件的 WordPress 短代码以及杂乱的格式。

提取过程

第 1 步:SQL 导出

我编写了针对性的 SQL 查询,将题目、答案和测验映射表进行关联:

SELECT 
    q.id AS question_id,
    q.question AS question_text,
    q.type AS question_type,
    a.answer AS answer_text,
    a.correct AS is_correct,
    a.ordering AS answer_order
FROM aysquiz_questions q
LEFT JOIN aysquiz_answers a ON a.question_id = q.id
ORDER BY q.id, a.ordering;

第一次导出仅 8,566 行就达到了 400 MB——原来有些字段中嵌入了大量内容。去除不必要的列后,文件大小降至 1.4 MB。

第 2 步:数据清洗

原始数据中到处都是类似 [audio wav="..."][/audio] 的 WordPress 短代码和 HTML 实体。我编写了一个 Python 脚本来:

  • 从短代码中提取音频 URL
  • 去除 HTML 标签,同时保留中文文本
  • 根据内容模式映射题目类型(听力判断、阅读理解、填空、句子排序)
  • 按题目 ID 分组答案并按顺序排序

第 3 步:结构化 JSON

每套试卷都被整理成干净的 JSON 文件:

{
  "quiz_id": 2,
  "title": "HSK 4 Sample Quiz",
  "total_questions": 100,
  "questions": [
    {
      "number": 1,
      "type": "listening_true_false",
      "audio": "https://media.mandarinzone.com/.../hsk4-1-02.wav",
      "options": ["对", "错"],
      "correct_answer_index": 0
    }
  ]
}

结果

  • 12 套完整的 HSK 4 模拟考试,JSON 格式
  • 1,176 道题目,涵盖 6 种题型
  • GitHub Pages 演示,任何人都可以在线做题
  • CC BY‑NC‑SA 4.0 许可证——非商业使用免费

什么是 HSK 4?

HSK(汉语水平考试)是中国官方的中文水平考试,全球认可。4 级属于中级,证明你能够讨论广泛的话题并掌握约 1,200 个词汇。每场考试包含 100 道题,覆盖听力、阅读和写作。

你可以用它做什么

  • 开发移动端 HSK 练习应用
  • 制作 Anki 卡片套装
  • 为中文语言模型提供 NLP 训练数据
  • 搭建自己的测验平台
  • 实现间隔重复学习工具

试一试

在线做题:

GitHub 仓库:

如果你在学习中文或构建语言学习工具,希望这些资源能帮到你。欢迎提交 PR 和点星!

0 浏览
Back to Blog

相关文章

阅读更多 »