|
|
|
# Coursera 视频间习题数据采集需求
|
|
|
|
|
|
|
|
## 网站描述
|
|
|
|
|
|
|
|
Coursera 是一个在线学习网站,网站上有大量的课程视频。为了保持学生注意力,很多视频中间会设置一道或几道练习题。如下例子:
|
|
|
|
|
|
|
|
这是机器学习课程中的一个视频,可以看到视频进度条上有一个黄色块:
|
|
|
|
|
|
|
|
![image](uploads/f89858805c4df316376b796c369237dd/image.png)
|
|
|
|
|
|
|
|
当视频播放到色块的位置时,视频上方会跳出一道题目:
|
|
|
|
|
|
|
|
![image](uploads/122c11c0653a896ab67ba3af39f6e9e9/image.png)
|
|
|
|
|
|
|
|
通过尝试可以得到正确答案及其解释:
|
|
|
|
|
|
|
|
![image](uploads/e490cabdde536598f0f06ec29bffd67c/image.png)
|
|
|
|
|
|
|
|
我们的目标就是爬取该网站教学视频中间的练习题的位置、题目、选项、答案和解析。
|
|
|
|
|
|
|
|
## 采集需求
|
|
|
|
由于网站需要注册、登陆、登记参加课程,才能访问每个视频,采集时不要求自动加入所有课程,只需要爬取尽可能多机器学习相关课程即可。具体而言,需要自己注册一个账户、并加入任意多门机器学习课程([例子](https://www.coursera.org/learn/machine-learning/home/welcome)),将这些课程的教学视频的视频间习题相关信息采集得到。
|
|
|
|
|
|
|
|
## 数据格式
|
|
|
|
采集得到的数据要求为 json 格式,要求的字段及描述如下:
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
[
|
|
|
|
{
|
|
|
|
name: "..." // 课程名
|
|
|
|
videoId: "...", // 视频id
|
|
|
|
questions: [ // 视频间习题列表
|
|
|
|
{
|
|
|
|
id: "48c58d91e8b4ba69e855527382fd0024" // 习题id
|
|
|
|
type: "mcq", // 习题类型,如 mcq 表示单选题
|
|
|
|
definition: "Suppose a friend ...", // 题面
|
|
|
|
options: [
|
|
|
|
{
|
|
|
|
id: "dccf33328b0e92882b98ad16cd4a7680", // 选项 ID
|
|
|
|
content: "A is $$\\alpha=0.1$$, B is ..." // 选项内容
|
|
|
|
},
|
|
|
|
...
|
|
|
|
],
|
|
|
|
answer: ["dccf33328b0e92882b98ad16cd4a7680"], // 答案,和选项 ID 对应,多选题可为列表
|
|
|
|
explanation: "In graph C, the cost function ...", // 答案解释
|
|
|
|
videoCuePoint: 411800 // 在视频中的位置 (ms)
|
|
|
|
},
|
|
|
|
...
|
|
|
|
]
|
|
|
|
},
|
|
|
|
...
|
|
|
|
]
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 评分标准
|
|
|
|
* 采集到5门以上机器学习课程全部视频间习题的内容、选项:1分
|
|
|
|
* 在上面的基础上采集到习题在视频中的位置:2分
|
|
|
|
* 在上面的基础上采集到答案和答案解释:3分 |