该项目是为了反切汉兜而制作的 其中成语词典来自于汉兜,我手动提交过一个纠正字音的 pr,然而仍然发现其中有大量注音错误,于是决定重开一个项目重新整理字音。
-
根据汉兜提供的字典,我将字表分为单音字与多音字表。成语的注音问题就是多音字注音问题,因而根据成语是否包含多音字将总成语表分为单音成语表与多音成语表。单音成语表用直接注音,这里使用 pypinyin 库。
-
对多音成语表首先用 pypinyin 包做一遍默认注音,因为其注音借助分词,所以效果其实不错。
-
然后借助萌典 api 校正一遍读音。由于汉兜原来的注音使用了汉典数据错误较多,加上汉典不如萌典有官方背书,因此我选择萌典。(至于为什么不是百度百科,呵呵你懂的)
-
利用萌典校正读音需要注意两件事:
-
预处理:萌典 api 只接受台湾繁体(注意繁体字也有各种版本),故先利用 opencc 库将简体字转换为繁体(这个转换是基于分词的,因而能有效处理一对多的问题)
-
后处理:由于萌典的标准是台湾读音,两岸读音在一些字上不同,所以必须手动校正回来。(异读字情况较复杂,基本是多对多,因此采用手动校正,期待有更好的解决方案)
-
-
最后合并校正后的读音,再合并入总表即可。
该表只关注注音问题,至于收录的词汇是否属于成语,由于成语范围始终没有明确界定,因此不作讨论。当然也欢迎提交 pr 删除那些显然不足成为成语的词汇,如某些 ABAC、AABB 型词。
统计每个音在成语总表中出现的频率, 舍去一些罕见读音(频率少于 10 次)作为反切汉兜的每日谜底。
以总成语表.json
为蓝本,使用粤音小镜.xsl
的数据将普通话拼音转写为其自定义的广州话拼音,再转为标准广州话拼音,再利用pingyambiu.txt
将广州话拼音转为香港学会标准拼音。再利用mcpdict.db
补充粤音小镜.xsl
中缺失的数据,最后先删除异读音,再手动选取多音字读音。