CC-CEDICT 英汉反查的实现

https://forum.freemdict.com/t/topic/1858

johannhuang 已经做了一版。

我的思考:

  • headword 里的括号、to 、lit/fig 待处理
  • 汉语单字不应被反查到
  • headword 单词数不应超过某值
  • 汉语解释排序应与 headword 在原解释列表位置及列表长度相关
  • 待补充
3 个赞

jh好像很久不发帖了。。。

膜拜楼主,感谢制作分享~

很强大 :smile:,特意来感谢的

extract7.py (3.2 KB)

把代码整理了一遍,用到了这个:


from collections import defaultdict
decs = defaultdict(lambda: defaultdict(set))

1 个赞

更新。简单、符合直觉地处理了拼音部分。依据:

  • 音调标在最前面的a、o或e
  • 如果没有a、o或e,则标在最后面的i、u或ü
  • 标音调的字母在一个拼音内只出现一次

词头旁边的拼音直接调用函数转换,正文内的拼音用正则匹配之后再转换:


dc = re.sub(r"(?<=\[)([^]]+[1-5])", lambda m: pinyinify(m.group(1)), dc)

extract10.py (4.6 KB)

CC-ECCEDICT 2021R.7z (10.3 MB)

1 个赞

楼主你好,谢谢你的分享。
我想问一下在 extract9.py 代码里读取的 hanzi.txt 和 wordlist.txt 两个文件怎么来的呀。
我是看了之前CEDICT 2021的帖子,就只有一个 cedict_ts.u8 文件。
感谢。

wordlist.txt 是 Wiktionary EN 词表(一行一词),提取自:

https://kaikki.org/dictionary/

hanzi.txt 是通用规范汉字表(仅第一级),提取自:

1 个赞

懂了,感谢 :kissing_heart:

2 个赞

感谢更新! ::::