《新时代汉英大词典》资料梳理

期待兄弟提升哈!

期待呀,非常之举!

工作量很大,浏览器不支持这个词典的中文 tag ,分类替换,还要根据 tag 属性 写 css。 :sweat_smile:

我大致统计了一下:

xml 词条:137425
mdx </> count: 136784
跳转:692
减去跳转后:1333

这个xml的数据,粗估比K大的mdx多了1333条。

除非K大光临本坛,看到这个帖子,动手重做,否则似乎只好放弃K大的mdx,根据xml数据,另起炉灶。

老兄在弄吗?假如有人在弄,我就先等别人弄完,看看结果怎样,避免重复劳动。

有“儿”字的数据就有<SMALL>儿</SMALL><SMALL>儿</SMALL>都被分段挪到下一段去了。

在整理之前,需要先去除每行前的空格,然后用Emeditor的正则式,把

\n<SMALL>儿</SMALL>

替换为

<SMALL>儿</SMALL>

这样“儿”就会回到它本来应该在的地方,不再处于分尸的状态。

用Emeditor find-extract “<SMALL>儿</SMALL>”,再统计,<SMALL>儿</SMALL>有7349条。

这些“儿”字在K大的mdx大概有很多不见了。

small.zip (92.6 KB)

另外把词头都用Emeditor find-extract抽出来,供大家研究参考。

citiao.zip (803.2 KB)

共有137425条。

这些词头不只是主词头,还包括了词典主词头之下的“亚词头”。

我用Emeditor查过K大mdx的私用字:
find - regular Expression
[\x{E000}-\x{F8FF}]

没发现私用字。

现在查这个xml数据做出来的词典,有1354个私用字。

K大mdx缺的词条,也许有不少是私用字词条?

我做出了一个将就而不讲究的版本,但是发现有很多意想不到的问题有待解决。只能摸爬滚打,边做边学,一点一点解决。

粗略查了几个字词的排序,发现和纸本是一样的。假如排序完全和纸本一样,就很可贵。假如有人弄这个数据,记得别把顺序弄乱啊。

合并成了 txt xmls.7z (11.1 MB)

主要处理逻辑:
    t = ''
    for char in string.ascii_uppercase:
        if char in 'IUV':
            pass
        else:
            with open(f'../xmls/{char}-XML.xml', 'r', encoding='utf-8') as f:
                xml = f.read()
            t += xml
    t = t.replace('<?xml version="1.0" encoding="UTF-8"?>\n', '')

叹,改私用字实在是苦工。

〖U+E078〗=〖𮭦〗
[chén]
(U+E078)=(𪁏)
[名] 〈方〉a young bird

还好词条顺序真是准确的。看文字版上一条是什么,再找纸本的那一条,然后再看那一条的下一个字是什么。

简体词头怎么和繁体字用同一个私用字呢?显然有一个错了。

Ps:也许是故意扰乱想复制资料的人?在别的词典里,一码多字,一字多码,各种情况我都见过。

万有知典的数据是用来测试网站的。其数据有残缺的情况,如古音汇纂,明显的有新华语典缺M开头的xml。

这本汉英词典不知什么情况,shaoshi 兄注意下。

汉英的数据有两个:

  1. 测试页面,带字体。https://wyzd-static-test.vdict.com.cn/community/#/knowledgeService
    OpenSans_Regular.238f04c4.woff (58.5 KB)
    STShuSong_CP.woff (8.9 MB)
    STXihei_CP.581486f2.woff (8.5 MB)
  2. books 页面,没有字体。https://wyzd-static-test.vdict.com.cn/mmdb/books

我记得站长 @hua 之前就解密过 辞源 的字体,那个代码方便拿出来再解密这些词典吗,也省了这么多词典,大家手动替换一个个字了。

这个词典的私用字只是单纯的私用字,比我所见过的别的词典(如《大辞海》的图像字)好弄很多,并没有加密。和我所听闻的《辞源》的极其复杂的加密方式不是同一种情况。

解密字体,需要两份字体文件,原始未加密字体+已加密字体,没有前者很容易出错。

那就更简单了,可以用 hua 大的脚本直接全面准确的替换所有私有字符(和全宋体 font 进行对比),再肉眼审核。

商务印书馆用的什么字体,论坛里的字体大师应该很清楚。我是不知道啦。

主要我是觉得替换字的编码,自动化担当主力会更省力、全面些,靠人工看,容易漏、也费力,特别是商务印书馆最近 amob 和 bud 分享的这一大批词典,靠人工制作会很慢。

css里用的字体是:

font-family:STShuSong_CP,STXihei_CP;font-size:1.4rem

相似的字体都不行,解密一定要原版字体文件。相似字体的话需要重新训练,结果也不是很好,少量字符还不如自己替换。

辞源会涉及解密+私有区字符两个步骤。其他一般词典只涉及私有区字符的标准化Unicode编码。

我的设想是:

  1. 纯粹的私有区的字符通过 fonttool 库提取出xml 和图像,遍历 mdx,找出这些字符。
  2. 提取出的字体单字的图像 ocr 化,取置信度高的自动替换成标准 UNICODE,低置信度的再人工检查。或者和其他字体进行特征点、斜率对比,数据准确到多少,做过的 hua 应该有经验。

这样就能知道,哪些字符需要替换(全面性)、哪些需要人工替换(省力)。

之前成语源流是中华书局的宋体,我看了好几个字一模一样,一度想训练这个字体的OCR,过程太复杂没做。商务印书馆的字体,不能是随便变化的吧,常用的应该就那几个字体。私有区的情况有多种:没找到标准编码就放到私有区的+标准编码没有的字形。后者只能保留私有字体(但可以筛查统一到一个字体上,比如论坛用的全宋体,这样就不用安装官方的字体了),前者可以对比程序自动筛出来。自己字体内没有的,可以通过斜率和其他字体筛,有了代码字符的处理会方便很多。

大多数 APP 会提供原版字体。

在css里试了一下STShuSong_CP,不行。

我还以为用了这个字体就行,没那么简单。看来我之前没弄懂加密字体的概念。

解密需要有人提供原版字体,没有就不用尝试了。