如何用深蓝词库转换把 50 多种输入法词库格式互相转换
【免费下载链接】imewlconverter”深蓝词库转换“ 一款开源免费的输入法词库转换程序项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter
深蓝词库转换(imewlconverter)是一款开源免费的输入法词库转换工具,能把搜狗 scel、百度 bdict、QQ 拼音 qpyd、Rime、macOS plist 等 50 多种词库格式互相转换,支持 Windows、macOS 图形界面和 Linux 命令行。它只做离线文件转换:读入一个词库文件,按目标输入法的格式写出一个新文件,不会接管或修改输入法内置词库。如果你的需求是“手里有个 A 格式的词库,想拿到 B 格式的输入法上用”,这条路径走通后基本就不再需要其他工具。
能力速览:先确认你的转换方向支不支持
30 秒判断标准:看源格式和目标格式是否都出现在--list-formats的输出里,以及方向是否被允许。不少二进制格式是“只进不出”的——工具能读懂它们,但不能反向生成。
| 你想做的事 | 是否支持 | 说明 |
|---|---|---|
| scel / rime / 各拼音文本格式互转 | ✅ | 输入输出都可用 |
| qpyd、qcel、bdict、ld2、搜狗备份 bin 等二进制 | ⚠️ 仅导入 | 只能作为源文件,需经中间格式再导出 |
| 自整理词表导入指定输入法 | ✅ | 用word格式读纯文字词表,拼音由工具自动计算 |
| 在输入法内实时增删词条 | ❌ | 离线转换工具,不接管内置词库 |
稳妥的通用路径是:二进制 → 中间文本格式(如self)→ 目标格式。
从零构建环境:图形版和命令行版怎么选
📦入口一:图形界面。Windows 和 macOS 各有图形版,词库文件拖进窗口、选源格式和目标格式即可;一次拖入多个文件可批量转换。下载入口见仓库 README.md 提到的 Release 页面(以项目仓库说明为准)。
入口二:命令行工具。适合 Linux 用户、想把转换写进脚本的人。前置要求只有一个:.NET SDK 10.0 以上,用下面这条命令确认,输出版本号 ≥ 10.0 即可:
dotnet --version克隆仓库并构建:
git clone https://gitcode.com/gh_mirrors/im/imewlconverter cd imewlconverter dotnet build src/ImeWlConverterCmd构建完成后产物在src/ImeWlConverterCmd/bin/Debug/net10.0/ImeWlConverterCmd.dll。跑一条帮助命令验证环境——你应该看到完整参数说明(-i、-o、-O、-f等):
dotnet src/ImeWlConverterCmd/bin/Debug/net10.0/ImeWlConverterCmd.dll --help再跑一条格式清单命令,会分两段打印“支持的输入格式”和“支持的输出格式”,每行是格式代码加中文名(如scel 搜狗细胞词库scel)。后面所有-i、-o用的都是这份清单里的代码,拿不准就先查它:
dotnet src/ImeWlConverterCmd/bin/Debug/net10.0/ImeWlConverterCmd.dll --list-formats嫌 DLL 路径长的话,也可以用
dotnet run --project src/ImeWlConverterCmd -- -i scel ...的方式运行,注意--分隔符;或者用 Makefile 的make build-cmd一键构建。
把搜狗 scel 词库转成 Rime 词库:一次完整转换
🎯 目标:仓库自带的示例词库src/ImeWlConverterCoreTest/Test/唐诗300首【官方推荐】.scel(一个真实的搜狗细胞词库)转成 Rime 词库。
基本语法只有一行,输入文件作为位置参数放在最后,输出路径用大写-O显式指定:
dotnet src/ImeWlConverterCmd/bin/Debug/net10.0/ImeWlConverterCmd.dll \ -i scel -o rime -O rime-dict.yaml \ "src/ImeWlConverterCoreTest/Test/唐诗300首【官方推荐】.scel"验证点 1:终端输出。成功时你会看到一行统计:转换完成: 导入 N 条, 过滤 M 条, 导出 K 条。三个数字的关系是:导入 - 过滤 ≈ 导出(个别词条可能因无码被丢弃),如果导出为 0,先别查输出文件。
验证点 2:产物内容。Rime 导出格式是制表符分隔的三列:词条、拼音、词频,按词频降序排列。打开rime-dict.yaml应能看到类似这样的行:
床前明月光 chuang qian ming yue guang 1000验证点 3:放进输入法。把文件拷入 Rime 的用户词库目录,重新加载输入方案,输入对应拼音确认词条出现。
同一条源文件转其他目标只换-o,比如转搜狗文本格式-o sgpy -O output.txt、转谷歌拼音-o ggpy -O output.txt。
进阶用法:按场景查参数
🔧场景一:转出来太杂,想过滤词条。用-f,多个条件用竖线拼接:
dotnet src/ImeWlConverterCmd/bin/Debug/net10.0/ImeWlConverterCmd.dll \ -i scel -o ggpy -O output.txt -f "len:1-100|rm:eng|rm:num" input.scel可用条件:len:1-100(保留指定字数范围)、rank:2-9999(保留词频区间)、rm:eng(去含英文)、rm:num(去含数字)、rm:space(去含空格)、rm:pun(去含标点)。跑完后终端的“过滤 N 条”会反映实际滤掉的数量,这是核对过滤条件是否生效最快的办法。
场景二:一次转一批文件。命令行可传多个输入文件,输出路径以/结尾时会按批量模式把每个文件的产物写进该目录:
dotnet src/ImeWlConverterCmd/bin/Debug/net10.0/ImeWlConverterCmd.dll \ -i scel -o ggpy -O ./output/ *.scel场景三:自整理词表没有拼音。用word格式读入纯汉字词表(每行一个词,自动识别 UTF-8 / GBK 编码),拼音由工具自动计算后再导出:
dotnet src/ImeWlConverterCmd/bin/Debug/net10.0/ImeWlConverterCmd.dll \ -i word -o rime -O out.txt 纯汉字.txt场景四:给词条指定固定词频。-r 100会把所有词条词频强制覆盖为 100;-r llm则调用 LLM API 为词频为 0 的词条在线生成词频,Key 通过--llm-key或环境变量IMEWL_LLM_KEY提供,API 失败时转换会整体失败而不是静默用默认词频,详见 docs/MIGRATION.md。
场景五:自定义编码输入(形码类)。提供 Tab 分隔的“汉字↹编码”映射表用-c指定;多字词取码规则用-m指定,规则语法(如code_e2=p11+p12+p21+p22)完整说明见 docs/custom-code-rules.md。
场景六:导出 scel 时改元数据。--dict-name、--dict-category、--dict-id、--dict-description控制生成 scel 内嵌的词库名称、类别、编号和描述,方便在搜狗词库里识别。
场景七:脚本集成。加--json输出机器可读结果,退出码有稳定契约:0 成功、1 用法错误、2 输入错误、3 部分失败、4 内部错误——写 shell 脚本时按这些值分支即可。
图形版里另有合并词库、拆分大文件的独立窗口,单个词库对输入法压力过大时用得上。
词库转换常见报错的自救手册
🛠 以下按“症状 → 先查 → 解法”排:
- 症状:终端直接报“错误: 检测到旧的参数格式”。先查命令里是否有
-i:、-o:、-f:这类冒号写法——那是 3.0 之前的旧格式,新版已移除。解法:改成空格分隔,-i:scel改为-i scel,完整新旧对照表在 docs/MIGRATION.md,报错信息本身也会打印常用参数对照。 - 症状:提示未知输入/输出格式。先跑
--list-formats核对代码拼写,注意区分sgpy(搜狗文本)和sgpybin(搜狗备份 bin)。如果格式确实没收录,到项目 issue 区提需求。 - 症状:输出文件里是乱码。先确认源文件编码:纯文本词表常见 UTF-8 和 GBK 两种。
word格式导入会自动识别这两种;其他文本格式乱码时,换用能自动识别编码的中间格式(word或self)重新走一遍再导出。 - 症状:批量转换后目录里没有文件。先查
-O的输出路径是否以/结尾——不带/时它被当成单个输出文件名而不是目录;路径含空格的要加引号。 - 症状:
dotnet命令无法启动或构建报目标框架错误。先跑dotnet --version,本项目目标框架是net10.0,SDK 低于 10.0 装不上;升级 .NET SDK 后重新dotnet build src/ImeWlConverterCmd。 - 症状:部分文件成功、部分失败(退出码 3)。这通常意味着批次里混了坏文件(截断的下载、空文件)。先用单个文件复现,确认是源文件问题再重跑全量;大词库可以先截取几十条小样本验证流程,再跑完整文件。
资源导航:遇到问题该读哪个文件
- README.md:项目入口,含格式代码速查表、完整使用示例和 Windows GUI 双模式(带参数运行即命令行,但不支持输出重定向,脚本场景请用
ImeWlConverterCmd)说明。 - docs/:文档目录索引。
MIGRATION.md讲参数迁移和退出码契约,custom-code-rules.md讲自定义编码规则语法,docker.md讲容器化使用。 - src/ImeWlConverter.Formats/:每种格式一个子目录,Importer / Exporter 成对出现;想看某格式怎么解析,直接读对应目录。
- src/ImeWlConverterCoreTest/Test/:仓库自带的一批真实格式示例文件(scel、qpyd、bdict、ld2 等),拿来做第一次转换不用自己找样例。
- tests/integration/TEST-MATRIX.md:格式转换覆盖矩阵,想确认“某格式到某格式”是否被测试覆盖时查这里。
【免费下载链接】imewlconverter”深蓝词库转换“ 一款开源免费的输入法词库转换程序项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考