https://github.com/garthtb/codelord
一个暴力计算文章最短码长的工具。
https://github.com/garthtb/codelord
calculator console-application csharp encoder input-method
Last synced: 2 months ago
JSON representation
一个暴力计算文章最短码长的工具。
- Host: GitHub
- URL: https://github.com/garthtb/codelord
- Owner: GarthTB
- License: agpl-3.0
- Created: 2024-11-16T15:24:36.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-11-26T00:16:20.000Z (6 months ago)
- Last Synced: 2025-01-22T08:17:22.685Z (4 months ago)
- Topics: calculator, console-application, csharp, encoder, input-method
- Language: C#
- Homepage:
- Size: 128 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# [CodeLord](https://github.com/GarthTB/CodeLord)
一个暴力计算文章最短码长的工具
## 功能
- 依据词库,用带有限制的广度优先遍历,找出所有最短的完整编码并简单分析。
## 输入
### 控制台参数
1. 词库路径(rime格式yaml文件,每行格式为`词\t编码[\t优先级]`,`#`号注释)
2. 文本路径
3. 编码连接方法代号(1:无间隔,2:键道,0及默认:空格及标点隔开)
4. 中间路径的最高数量(不是最终路径的数量,最终一定是最短路径。无效输入则默认为100。)### 交互式输入的各项要求与控制台相同。
## 配置文件
程序同目录中的config.txt为配置文件,用户可自定义。每行是一组无间隔、无序的码元。在分析时,程序会将每组码元依次识别为:
- 第1行-第8行:左小指、无名指、中指、食指,右食指、中指、无名指、小指
- 第9行-第12行:数字键、上排键、中排键、下排键## 注意
- 由于会完全遍历所有情况,需要的时间是指数级的。请勿将中间路径的最高数量设得超级高。
- 通过直接在编码后添加数字来选重,按照优先级和先来后到,与rime的规则一致。
- 分析报告中的偏倚程度为(左右手键数的差/左右手键数的和)的绝对值。## 算法:广度优先遍历
设文章有n字,限制数量为x,则:
1. 创建n个列表,分别容纳从起点到每个字的所有编码。
2. 遍历每个字。从该字的列表中,取出最短的x条编码。从词库找出以该字开始的、与文章匹配的词,并在词的末字的列表中,加入与最短路径连接后的所有编码。
3. 遍历完成后,第n个列表中的最短编码就是整篇文章的最短编码。## 更新日志
### [0.0.6] - 20241121
- 改进:优化提示
### [0.0.5] - 20241121
- 新增:多项分析项目,可使用配置文件自定义
- 改进:并行化查找词典,提升性能
- 改进:不预先切片文本,文本长度不再影响速度
- 改进:空格分隔改为空格和标点分隔### [0.0.4] - 20241120
- 修复键道规则
### [0.0.3] - 20241120
- 改善长文本编码性能
- 完善键道规则### [0.0.2] - 20241119
- 改为流式计算,以避免卡顿并减少内存消耗
### [0.0.1] - 20241119
- 发布