这是我在 FreeMdict_考试义项频率统计求助 的讨论。
原文
我想制作一个偏向大学应试(四级六级考研)的词典,因为专业词典往往一个单词有很多个意思,我希望针对应试,找到最常出现最重要的意思,这样有针对性,因此我想统计所有四六级考研的单词的每个意思在真题中出现的频次,有了频次就可以统计义项在真题出现的比例。目前我有的资源是所有四六级考研单词列表和所有四六级考研真题数据。我的想法是先定位到每个单词在真题中出现的所有地方,然后针对每一个地方,即确定的语境下,先识别这个单词在当前语境下的词性,这个还比较容易实现,识别词性之后就要进行词义消歧(NLP经典问题),就是确定这个语境中的这个单词到底是哪个意思?我现在的方案是利用大模型+向量距离+人工对齐三管齐下的方法提高识别准确率。然后现在主要的问题是:我需要一个基础词典,这个词典给定了每个单词的词性以及每个词性下的每个意思,即意思和意思是分开的,是细粒度到义项这一层的。因为是针对应试,所以要是中英释义的,当然有英英会更好,又因为是针对应试的,最好不要有太多生僻的义项,因为会使得调用大模型成本变高,比如牛津这种专业词典,义项就很多,如果全部输入给大模型成本会很高。所以这个基础词典就比较难选,所以想来求助大佬们。
补充:
用大模型来判断是哪个义项的prompt组成基本就是:这个单词所在的句子或者段落 加上 这个单词的所有义项,要求大模型选择一个义项。
所以如果基础词典义项太多,会很消耗token,如果义项不足也不好。
感谢大佬们!
回答
AnkiHelper 就是你说的「理想的背单词 app 应该是可以一个单词的每个义项可以分开单独背的」。
开发者亲自提取了几本辞典:
https://github.com/mmjang/ankihelper/tree/master/custom_dictionary
QQ群里也有人分享了一些:
https://www.123pan.com/s/iGz0Vv-mYmVh
但我个人觉得,按照你对数据的要求,你可能还是得自己从 mdx 提取(先把所有解释提取出来,然后再分割义项,不停地用正则就好)。
另外,对于这种任务,没有必要上 OpenAI 家的模型,直接用 DeepSeek 就好(输入价格:1元/百万tokens;输出价格:2元/百万tokens)。
我用[[搜文解字]]的 Prompt 做过测试,效果还行。
# Role: 词典查询助手
## Profile
- Author: NoHeartPen
- Version: 0.1
- Description: 词典查询助手是从权威词典提供的完整解释中搜索出与上下文语境最接近意项的语言学习助手。
## Rules
1. 尊重原文,不得翻译提供的词典的完整解释,不得修改提供的词典的完整解释
2. 当上下文语境出现词典尚未收录的用法时,返回 "词典尚未收录这个用法" ,其他时候不需要提供任何辅助说明,只需返回词典解释
## Workflow
1. 让用户以 "上下文:[], 想要查询的单词:[], 词典的完整解释:[]" 的方式提供上下文和需要查询的单词。
2. 针对用户给定的上下文、需要查询的单词和词典的完整解释,分析用户提供的词典完整解释中和上下文语境最接近的解释意项
3. 只需要返回与上下文语境最接近的意项的相关解释,不需要返回与上下文语境无关的其他解释
4. 不需要翻译词典的解释,不需要做任何辅助说明
## Initialization
作为角色 <Role>, 严格遵守 <Rules>, 友好的欢迎用户。然后介绍自己,并告诉用户 <Workflow>。
## 示例
上下文:[全部さらけ出して], 想要查询的单词:[さらけ出して], 词典的完整解释:[さらけ出し:さらけ‐だ・す【×曝け出す】
[動サ五(四)]
① 隠すところなく、すべてを現す。ありのままを見せる。「内情を―・す」「弱点を―・す」
② 追い出す。
「おらあ女房を―・してしまって」〈滑・膝栗毛・発端〉]
你的回答:[① 隠すところなく、すべてを現す。ありのままを見せる。「内情を―・す」「弱点を―・す」]