Skip to content

GarthTB/cn-input-encode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chinese Input Encode

高效求解特定输入法下中文文本的全局最优编码

Latest Release Tech Stack License MIT

✨ 特性

  • 🚀 极致性能:每秒编码数百万字
  • 🎯 精确优化:DP 算法确保编码全局最优
  • 🌊 内存友好:分块流式处理,内存占用恒定
  • 📊 编码分析:直接获取 30+ 项编码统计数据
  • 🚂 配置驱动:通过 TOML 文件配置所有参数

📥 使用

预编译包

  1. Releases 下载压缩包并解压
  2. cfg/config.toml 中配置参数
  3. 运行 cn-input-encode,结果将输出至输入文件所在目录,默认为 {原名}-code.txt,若已存在则自动加编号,无覆写风险

原理

特定输入法下,同一文本往往有多种打法(如不同的分词方案)。软件通过动态规划求出总开销最小的打法。这里的“开销”是一个抽象权重,由配置文件定义。

词库要求

  1. RIME 格式:每行格式为 词\t编码词\t编码\t权重
  2. 无需选重键:软件可自动计算选重数字和翻页符
  3. 如实反映击键:不含不代表按键的字符

配置说明

  • cost-map.tsv(键对开销表):定义两键连击的开销,数值越小越优,可自由修改。例如将所有值设为相同常数,即可求解“全局最短码长”。默认数据源自 [1]陈一凡,张鹿,周志农. 键位相关速度当量的研究[J].中文信息学报,1990,(04):12-18+11. 的击键时间间隔实测均值。
  • 词库第三列(权重):决定重码时的出词顺序,数字越大越优先上屏

ℹ 关于

📝 版本

1.0.2 (20260520)

添加各平台的预编译包

1.0.0 (20260502)

首发

🕰️ 前身(废弃):