输入法词库转换完整流程:用免费开源工具实现 50 余种格式互转
【免费下载链接】imewlconverter”深蓝词库转换“ 一款开源免费的输入法词库转换程序项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter
假设你手里有一份搜狗细胞词库(scel),需要把它变成 Rime 能识别的 yaml 文件——这就是「深蓝词库转换」这类词库转换工具要完成的事。它开源免费,支持 50 余种输入法词库格式互转,覆盖搜狗、百度、QQ 拼音、微软拼音、Rime、五笔等常见输入法。整件事可以概括成三句话:选对入口、写对两个格式代码、核对输出文件。
解决什么问题,边界在哪
这是一款离线词库转换工具:读入一种格式的词库文件,导出成另一种格式。它不接管输入法的内置词库,也不做实时增删词条,所以「想改输入法里某个词」这类需求它帮不上;而「把现成文件换格式」「同一批词条同时用于电脑和手机」正是它擅长的。另外,如果源文件和目标格式相同、只是想挪个存放位置,直接复制就行,不必转换。
三条上手路径,对号入座
🖥️
| 路径 | 适合谁 | 前置条件 | 入口 |
|---|---|---|---|
| 图形版(Windows / macOS) | 不想碰命令行的日常使用 | 无,装好即可 | 仓库 Release 页 |
| Windows 图形版命令行模式 | 偶尔用命令行、不想另装 SDK | 已装 Windows 图形版 | 对 exe 带参数运行 |
| 命令行工具(含 Linux) | 要写脚本、做批量转换、在 Linux 上用 | .NET SDK 10.0 及以上 | 从本仓库构建 |
选图形版时,把词库文件拖进窗口、选好源格式和目标格式即可。要走命令行路线,先确认环境:dotnet --version输出不低于 10.0;若低于 10.0,先升级 SDK 再谈构建。
git clone https://gitcode.com/gh_mirrors/im/imewlconverter cd imewlconverter dotnet build src/ImeWlConverterCmd构建完成后,可执行文件在src/ImeWlConverterCmd/bin/Debug/net10.0/下,加--help可查看全部参数说明。
跑通一次完整转换:搜狗 scel 转 Rime
📦 下面这条线是最高频的需求之一:把一份搜狗词库放进 Rime。
- 确认源文件。扩展名是
.scel、大小与下载来源一致,没有截断。——卡住先看:路径里的空格和中文,加引号。 - 确认两个格式代码。输入是
scel,Rime 的输出代码是rime。记不清时先跑--list-formats,会打印当前版本全部可导入、可导出的格式。——卡住先看:代码要和--list-formats的输出逐字一致。 - 执行转换。
dotnet src/ImeWlConverterCmd/bin/Debug/net10.0/ImeWlConverterCmd.dll \ -i scel -o rime -O rime-dict.yaml input.scel- 核对结果。终端会依次给出导入、过滤、导出的词条数量;打开
rime-dict.yaml抽查几条,确认拼音、词频符合预期。——卡住先看:数量对不上时,多半是过滤环节动了词条,对照终端输出定位。 - 放进 Rime。把 yaml 文件放进 Rime 的用户词库目录,重新加载输入法即生效。——卡住先看:输出目录是否可写,
-O指向的是文件还是目录。
批量、过滤与合并拆分
为什么需要:文件多了逐个跑命令太慢;一份大词库里常混着英文、数字和超长词组;单个词库对输入法的压力有时也大得离谱。
怎么做:
- 批量转换:命令尾部一次传多个文件或用通配符;当
-O指向的路径以/结尾时,工具按批量模式把结果写进该目录:
dotnet ImeWlConverterCmd.dll -i scel -o ggpy -O ./output/ *.scel- 过滤:
-f参数支持多个条件用竖线拼接——len:1-100只保留指定字数范围、rm:eng去掉含英文的词条、rm:num去掉含数字的、rank:2-9999按词频区间筛选。先在小样本上验证保留量是否符合预期,再跑全量。 - 合并与拆分:图形版内置了合并多个词库、拆分大文件的独立窗口,单个词库对输入法压力过大时拆着用。
- 自定义编码:可以自定多字词取码方式,或提供「汉字-编码」映射表,写法见 docs/custom-code-rules.md。
格式与编码速查
输入端能读:搜狗 scel、搜狗备份 bin、百度 bdict、QQ 拼音 qpyd 与 qcel、灵格斯 ld2、Rime yaml、macOS 系统拼音 plist,以及各类纯文本词库。
输出端能写:搜狗、百度、QQ、谷歌、紫光、拼音加加、libpinyin 等输入法的文本词库,Rime 词库,macOS 系统拼音 plist,五笔 86/98 词库,以及自定义格式。
注意不对称性:不少二进制格式只读不写,比如 qpyd、qcel、bdict 只支持导入,不能反向生成。此时稳定路径是「二进制 → 中间文本 → 目标格式」。完整清单以--list-formats的输出为准,各格式实现见 src/ImeWlConverter.Formats/。
编码计算由工具自动完成,支持拼音(全拼、双拼)、五笔 86/98/新世纪、郑码、仓颉、注音、二笔和自定义编码。
| 场景 | 建议路径 | 说明 |
|---|---|---|
| 二进制词库进拼音输入法 | 二进制 → 中间文本 → 目标格式 | 直转受阻时的稳妥路径 |
| 纯文本词表进指定输入法 | 直接指定目标格式 | 拼音和编码由工具自动计算 |
| 词条同步到 Rime | 输出代码rime | 产物是 yaml 文件 |
| 长期存档 | 转成self或word纯文本 | 中间格式最通用,换输入法不必重找源文件 |
出问题后的系统排查
运行前:dotnet --version是否不低于 10.0;旧脚本是否还在用 3.0 之前的冒号式参数(如-i:scel),对照 docs/MIGRATION.md 改成空格分隔(-i scel);-O的目录路径是否以/结尾,含空格的路径是否加了引号。
运行中:文本词库出现乱码,多半是文件编码与预期不符,确认是 UTF-8 还是 GBK 后重转;大词库转换慢,先跑小样本验证流程,再跑全量。
运行后:输出目录里没有文件,先核对-O的写法和目录可写性;提示格式不支持,用--list-formats确认当前版本是否收录,没有的话到 issue 区提需求。
转换做完之后的四件小事
- 留一份
self或word纯文本副本,以后换输入法不必重新找源文件。 - 大批量之前,先取几十条小样本跑通,确认输出正确再上全量。
- 把成功时的命令和源文件放在一起或记进笔记,复现和重转都省事。
- 定期看仓库的 README 和 Release 说明,格式支持与缺陷修复在持续更新。
完整格式对照表见仓库根目录的 README;参数迁移、自定义编码等细节在 docs/。能复现的问题欢迎到仓库 issue 区反馈——格式互转这件事,工具把脏活干完,你只需核对最后那份文件。
【免费下载链接】imewlconverter”深蓝词库转换“ 一款开源免费的输入法词库转换程序项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考