嗨,我用 Vibe 编写了这个插件
这是一个用于对 Anki 中的新单词卡片进行排序的插件。
其他排序算法:
- 仅根据使用频率来判断,因此相似的汉字不会被归为一类。
这个插件使用了一种高级算法(实际上是我写的,但由人工智能实现的。我不知道它是否是最优的,但我一直在反复检查我的新卡牌顺序,目前看来这个方案可行)。
其理念是:
减少搜索难度。除非你漏掉了一个高频词,否则优先显示所有汉字都已知的词或只有假名的词。
基本上,如果你认识所有的汉字,这个词就非常简单,所以你应该先看它。
它不仅适用于视觉小说,也适用于其他事物。
算法
- 候选人选择:默认查询语句为
note:Kiku is:new -is:suspended。复习和学习卡片将被忽略。 - 已知汉字提取:该插件使用
matureQuery或生成的matureDays查询搜索已成熟的 Kiku 卡片。它读取这些已成熟的 Kiku 笔记中的Expression字段,并提取汉字。如果汉字出现在 Expression 字段中,则视为已知汉字。 - 频率源选择:当前列表来自
jitenFrequencyListId。默认值为global。该插件尝试使用:- 所选列表的最新缓存
- 所选列表的实时 Jiten 导出 API
- 所选列表的过期缓存
- 当选定列表为
global时,捆绑的Global快照 - 仅当没有 Jiten 数据可用时才使用 Kiku
FreqSort
- 每张卡片的功能:每张候选人卡的附加信息如下:
-
Expression - 提取的汉字数量
- 已知汉字数量
- Jiten 在选定列表中排名
- Kiku
FreqSort排名作为备选方案
-
- 混合评分:默认分数为:这意味着:
- Jiten 的绝对频率得分,或者
FreqSort作为备选方案 - 乘以可读性调整值:
-
all_kanji_known:1.00 -
kana_only:0.92 - 未知汉字:
1 - min(0.18 * unknown_kanji_count, 0.54)
-
- 外加少量已知信息:
-
0.04 * coverage_score
-
- Jiten 的绝对频率得分,或者
- 出现频率相近的已知汉字卡片通常比只有假名的卡片效果更好。
- 非常常见的仅包含假名的卡牌仍然可以早期崛起。
- 非常常见的只有一个未知汉字的卡片,其排名可能高于较弱的简单卡片。
- 除非出现频率非常高,否则较难识别的生僻汉字卡片仍然会沉没。
最终排序:卡片按以下方式排序:如果您想要严格的分组,则旧的easy_first_tiered_v1模式仍然存在。
- 更高的综合得分
- 那么原始排名就更好了。
- 当
preferShorterExpressions = true时,表达式长度会缩短。 - 然后是当前到期
- 然后是卡片模板订单
- 然后是卡号
重新排序:该插件调用 Anki 内部的新卡重新排序 API。它从符合条件的卡片中最低的排序开始,仅重新排列匹配的新卡。不匹配的卡片则尽可能保持不变。
还有可选策略easy_first_tiered_v1和balanced_ease_v1 ,但默认和推荐的路径是frequency_first_soft_v1 。