CC-CEDICT制作mdx自助

https://forum.freemdict.com/t/topic/4883帖子基础上,改成和我做的其它词典(https://forum.freemdict.com/t/topic/4445)共用css的版本,这里提供Python脚本。

用法:
①从https://www.mdbg.net/chinese/dictionary?page=cc-cedict下载最新版本的数据文件cedict_ts.u8,然后用extract.py (1.3 KB) 处理数据,在电脑的终端里输入
python3 extract.py
(要求cedict_ts.u8和extract.py在一个文件夹里,此外还有一个修改拼音的文件py.txt (954 字节) ,三个文件放在一起)
②运行结束完就得到CC-CEDICT.txt文件,里面简繁都有,如果你不想要繁体的词头,自己拿OpenCC都改成简体,然后用excel处理词头的时候把重复的都删了就行了。

得到CC-CEDICT.txt后直接用mdxbuilder转化成mdx就完事了。

3 个赞

想把 CC-CEDICT 源文件转成字典格式的同学,可以利用我之前写的解析代码和拼音处理函数。

更新:补充 ḿ、m̀ 两个鼻音,比如“呒”字。
更新:补充儿化音。


def pinyinify(pystr):
    c1s = {
        'A': ['Ā', 'Á', 'Ǎ', 'À', 'A'],
        'O': ['Ō', 'Ó', 'Ǒ', 'Ò', 'O'],
        'E': ['Ē', 'É', 'Ě', 'È', 'E'],
        'a': ['ā', 'á', 'ǎ', 'à', 'a'],
        'o': ['ō', 'ó', 'ǒ', 'ò', 'o'],
        'e': ['ē', 'é', 'ě', 'è', 'e'],
        }

    c2s = {
        'i': ['ī', 'í', 'ǐ', 'ì', 'i'],
        'u': ['ū', 'ú', 'ǔ', 'ù', 'u'],
        'ü': ['ǖ', 'ǘ', 'ǚ', 'ǜ', 'ü'],
        }
    
    rms = {'r5': 'r', 'm2': 'ḿ', 'm4': 'm̀'}

    pys = pystr.split()
    results = list()
    for pyo in pys:
        py = pyo[:]

        if py in rms:
            result = rms[py]
            results.append(result)
            continue

        if py[-1] not in ('1', '2', '3', '4', '5'):
            result = py
            results.append(result)
            continue

        py = py.replace('u:', 'ü')
        n = int(py[-1]) - 1
        flag = 0

        for c in py[:-1]:
            if c in c1s:
                result = py[:-1].replace(c, c1s[c][n])
                results.append(result)
                flag = 1
                break

        if flag == 1:
            continue

        for c in reversed(py[:-1]):
            if c in c2s:
                result = py[:-1].replace(c, c2s[c][n])
                results.append(result)
                flag = 1
                break
        
        if flag == 1:
            continue

        result = pyo
        results.append(result)

    return ' '.join(results)

2 个赞

请问作者知道 数据文件 cedict_ts.u8 是什么类型的文件吗?MySQL 或者 Postgres ?? 我使用 SQLPRO Studio 无法打开?

u8就是普通的文本格式,文本编辑器就可以打开。

下载本贴发的py文件在运行时会报错:
UnicodeDecodeError: ‘gbk’
需要在如下两处加上encoding=‘UTF-8’,即:
with open(“cedict_ts.u8”, mode=“r”, encoding=‘UTF-8’)
with open(“CC-CEDICT.txt”, “a”, encoding=‘UTF-8’)