• SuperMemo UX 新版辞典研究心得


    舍得对SuperMemo UX官方课程中的新版辞典垂涎已久。这货很漂亮,而且非常实用。比起原来那种方式的辞典,拥有更强的互动性。简单地来比较这两个之间的区别就是:老辞典需要专门制作一个辞典文件,而新辞典会自动从课程中提取内容;老辞典的搜索很鸡肋,新辞典则可以给我们更强大的搜索、分类以及关联词汇的功能。

    2012-4-13 7-23-12

    新辞典中的分类让人感觉很舒服。

    2012-4-12 20-28-04

    新辞典的搜索速度很快,而且搜索的结果中自动带了音频、例句等信息(尤其是例句,这是老辞典中没有的)。下方还有“主题相关词汇”,对于建立你的“网状结构词库”(朗文的专家们称其为“心理词库”)相当有帮助。

    昨天下班后便开始对这个问题进行了研究。研究的方法很原始:先解开官方的课程包,然后逐一分析其中的代码,这是舍得能想到的最笨的方法。

    毫无疑问这个过程是相当痛苦的,而且还不小心走了些弯路:我被官方的related这个文件夹给忽悠了……幸好舍得反应还算灵敏,及时调整了方向,否则这次研究又得无疾而终。

    过程就不一一叙述了,直接上研究结果:

    辞典的秘密主要藏在课程列表文件(course.xml)中,要点如下:

    1.<type>vocabulary</type>:这里的值是关键,必须是vocabulary,不能是regular;

    2.光有上面这个值还不行,你需要在文件中作如下定义:

    1)如果不要分类,则直接作如下定义:

    <element id="15033" type="pres" subtype="1000" name="Word 2135" disabled="true" keywords="wipe" partOfSpeech="v" frequency="4963" subsets="6">
      <element id="15034" type="exercise" subtype="1" name="Say the word" keywords="wipe" partOfSpeech="v" frequency="4963" />
    </element>

    简单说明一下这里的几个重要属性:

    a)keywords:关键词,这是用来索引的重要依据;

    b)partOfSpeech:词性;

    c)frequency:词频;

    从上面的结构来看,外面这层空壳(即ID为15033的这一层,这是个章节,没有实际内容)是关键,没有这一层,程序做不了索引,自然无法让你搜索;

    2)如果需要分类,则应该在外边再套一层:

    <element id="84" type="pres" name="Personal pronouns" disabled="true">
      <element id="163" type="pres" subtype="1000" name="Word 10" disabled="true" keywords="you" partOfSpeech="pron" frequency="8" subsets="2,4">
        <element id="164" type="exercise" subtype="1" name="Say the word" keywords="you" partOfSpeech="pron" frequency="8" subsets="2,4" />
      </element>
    </element>

    ID为84的name属性的值是“personal pronouns”就是分类名,如果想在这分类上面再搞一个更大的分类,则请再套一层;

    3、显示效果取决于默认模板,默认模板建议使用官方的99999号模板,在course.xml中应该作如下定义:

    <default-template-id>99999</default-template-id>

    以上三点,就是实现新辞典功能的要点。如果只想搜索,不用分类的话,实现起来相当简单,只要将课程列表改造一下就行,如果你的正则表达式学得足够好的话,应该能够完成这项工作;如果需要分类的话,那可能麻烦一点,不过对于转换精灵来说,相对还算简单,可以考虑在以后的版本中提供制作新辞典的功能。

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

  • 相关阅读:
    Linux基础学习(7)
    Linux基础学习(6)
    Linux基础学习(5)
    Linux基础学习(4)
    Linux基础学习(3)
    测试工程师面试题
    Postman实战
    接口测试
    HTTP请求结构与HTTP响应结构
    GET请求与POST请求的区别
  • 原文地址:https://www.cnblogs.com/emagic/p/2445143.html
Copyright © 2020-2023  润新知