之前舍得在转换精灵中提供过将SuperMemo UX课程转换为源文本的功能,但由于SuperMemo UX中题型变化较多,常见的有拼写(填空)题、选择题、匹配题等,碰到这些题型,用之前的思路转换得到的文本将无法直接阅读,因此在新版的转换精灵中已将此功能去除。

近日在研究官方课程的时候,用到转换精灵的一个新模块来处理这些文本,发现效果不错。考虑到此模块不大可能出现在近期几个版本中,因此将处理的思路简单介绍一下,一可供有一定动手能力的童鞋研究,二来亦算是为自己的操作做一下简单的记录。

要得到源文本,首先要考虑的是两大方面的问题:

1.Item文件列表从哪来?

2.如果将Item文件转成源文本?

熟悉SuperMemo UX的童鞋想来很快能够得出第一个问题的答案:course.xml。用Python处理这个文件相对比较简单:

1.用BeatifulSoup模块提取course.xml中的elment标签;

2.取出符合条件的ID和Keywords属性,存入一个字典;

没错,用这两步就可以搞定,注意最好对这个字典进行一下排序处理。

第二个问题处理起来显然比较复杂。好在新版转换精灵的实时预览模块已经对item文件进行了一番解构,将其中的Question、Answer等元素一一分离,且对各个题型进行了分别的处理:

1.分离出Question、Answer等标签,用BeatifulSoup模块会比较简单;

2.用正则表达式对各个题型进行处理,重点是拼写题、选择题、匹配题、提示题和排序题,其它如是非题、改错题之类的相对用的较少,可以暂且放过;

处理时注意转换,比如我们要处理拼写题,item文件中的代码如下:

‘Where <spellpad correct="are">a</spellpad> the children?’ – ‘They’re outside in the garden.’

处理后的源文本最好是下面这个样子:

‘Where ____ the children?’ – ‘They’re outside in the garden.’ (TAB空格)are

当然也可以是:

‘Where are the children?’ – ‘They’re outside in the garden.’ (TAB空格)are

再比如选择题,代码如下:

‘Where <droplist>
<option correct="true">are</option>
<option>live</option>
<option>follow</option>
<option>look</option>
<option>ruin</option>
</droplist> the children?’ – ‘They’re outside in the garden.’

处理后的源文本最好是下面这样:

‘Where ____ the children?’ – ‘They’re outside in the garden.'(TAB空格)are(TAB空格)live(TAB空格)follow(TAB空格)look(TAB空格)ruin

按照这种思路得到的源文本,你就可以利用转换精灵,自由地制作成自己想要的课程。

 

本文版权归舍得学苑所有,欢迎转载,转载请注明作者和出处。谢谢!
作者:
舍得
首发:
舍得@学习力博客