2024-12-25    2025-01-14    1342 字  3 分钟

一种获取五笔大词库的方式 ~

![[assets/Pasted image 20241225110558.png]]

我们在这里对五笔词库的获取做一个阶段性的总结,算是让输入法的折腾再搞一段落。

简介

该五笔大词库是基于极爽词库和白霜拼音转换而来的,没有具体统计数量,估计有个一两百万条吧 ~ 转换的同时,保留了原始词频,所以并不用担心重码问题。

快速使用

你可以从这里直接获取到转化好的词库 极爽白霜五笔词库 - Gitee极爽白霜五笔词库,然后按需引用它们即可。

import_tables:
  - wubi86                                    # 极爽词库
  # --- ↓白霜词库转换的五笔大词库 ---
  - cn_dicts/8105     # 字表
  # - cn_dicts/41448  # 大字表(按需启用)
  - cn_dicts/base     # 基础词库
  - cn_dicts/ext      # 扩展词库
  - cn_dicts/tencent  # 腾讯词向量(大词库,部署时间较长)
  - cn_dicts/others   # 一些杂项
  # 细胞词库
  - cn_dicts_cell/medication
  - cn_dicts_cell/industry_product
  - cn_dicts_cell/exthot
  - cn_dicts_cell/chess
  - cn_dicts_cell/chess2
  - cn_dicts_cell/animal
  - cn_dicts_cell/game
  - cn_dicts_cell/idiom
  - cn_dicts_cell/sport
  - cn_dicts_cell/media
  - cn_dicts_cell/shulihua
  - cn_dicts_cell/food
  - cn_dicts_cell/inputmethod
  - cn_dicts_cell/history
  - cn_dicts_cell/place
  - cn_dicts_cell/geography
  - cn_dicts_cell/name2
  - cn_dicts_cell/literature
  - cn_dicts_cell/music
  - cn_dicts_cell/computer
  - cn_dicts_cell/composite
  - cn_dicts_cell/name

如果感觉还是不够大,怎么办?

在仓库中我们附上了制作的 Python 转换脚本 - py2wb.py,你只需要执行它,就可以自己将现在拼音词库转换五笔词库了。

# py py2wb.py [拼音词库所在目录] [五笔词库输出目录] [拼音词库目录文件筛选]
py py2wb.py src out 8105.dict.yaml

[] 中的参数都是可选的,但输入顺序不能乱。其中通过 [拼音词库目录文件筛选] ,你可以实现筛选转换的拼音词库文件,默认为 .dict.yaml

还不够?

好嘛,折腾过程中使用的一些元码表和脚本也附上 - rime-utils

关于形码大词库

相对于拼音来说,形码对于大词库的需求并不算太强烈,尤其是使用拥有自造词和动态词频的输入法平台 - 比如 Rime 。

关于 Rime 相关配置,可以参考我的另一篇文章 - 『 [[Rime_JK 指尖上的旋律]] 』。

既然不强烈,为什么又制作了一个五笔的大词库呢?

只是为了让五笔使用者多一种选择,仅此而已。在保留原始词频的前提下,大词库并不会产生重码率升高的问题,相反它极大减小了“打词打空”的概率。如下图所示:

![[assets/Pasted image 20241225114240.png|150]] ![[assets/Pasted image 20241225114207.png|150]] ![[assets/Pasted image 20241225115225.png|150]]

看,效果还不错~

怎么才能算是足够大?

实际上这是没有定量的,国标都没个一定,制作五笔的单字元码表字典的时候,我合并了好几个超集词库去重取单,最后转化成拼音词库的时候,还是会有几个异形或者类似部首的那种字不在字典中。需要注意的是,此时单字元码字典已经有小十万字了,理论上它已经包含了 18030 和 8105 的所有单字。但还是会遇到一些漏网之鱼,当然,这些“鱼”并不重要,因为你可能永远都不会有使用它们的场景。比如下面这些字:

...
𧮙  oguy  0
𧲭  eeda  0
𨀨  khvq  0
𨐳  ynku  0
𨝨  rajb  0
𨞒  tajb  0
𩛠  wyvf  0
𪎇  ogut  0
𪎲  ogus  0
...

什么时候能能用到?答案是显而易见的 - 不会用到!🥳

自用词库

我自用的 10万+五笔词库 ,体验相当不错,可能是与我喜欢打短词来保证确定性有关。它是基于 Rime 官方、极点五笔及黄狗超级大词库合并、去重、按字长排列的,大小不到 2M ,短小精干且强力。

它包含且只包含国标通用规范字 8105 中的所有三级字词,其他相关 18030 标准中的繁体字及异形字、CJK 类假名全部清除。因为它们除了增加重码率,对于我来说毫无用处。

超大词库中,仅包含 8105 中的词条是达 200 多万条,如下:

![[assets/32a11f6d954f5a53666325093403682e.png|400]]

构建一次,耗时 5 分钟+ ,如下:

![[assets/ece35e725c0f7c9cfe56ccb4ee3033d3_720.png|700]]

把这类词库加入到 Rime 配置中,重新部署一次的耗时也是相对很长的,这并不是一件令人愉快的事情。

与之相反的是,自用的 10 万+ 字库,部署一次只需要两三秒,对于使用者来说简直是无感的。

结语

所有文本配置性的软件,在扩展性方面都很有一套,比如 Emacs,Vim,Rime 等。折腾配置的过程很有趣,但也很消耗时间和精力 ~ 总之,想要折腾的朋友合理安排时间和精力 ~