libchai 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,55 +1,43 @@
1
- # chai: 汉字自动拆分系统[命令行版]
1
+ # libchai 汉字编码输入方案优化算法
2
2
 
3
- `chai` 是一个使用 Rust 编写的命令行程序。用户提供拆分表以及方案配置文件,本程序能够生成编码并评测一系列指标,以及基于退火算法优化元素的布局。
3
+ `libchai` 是使用 Rust 实现的汉字编码输入方案的优化算法。它同时发布为一个 Rust crate 和一个 NPM 模块,前者可以在 Rust 项目中安装为依赖来使用,后者可以通过汉字自动拆分系统的图形界面来使用。
4
4
 
5
- ## 使用
5
+ `chai` 是使用 `libchai` 实现的命令行程序,用户提供方案的配置文件、词信息文件等,本程序能够生成编码并评测一系列指标,以及基于退火算法优化元素的布局。
6
6
 
7
- 压缩包解压后,根目录中有几个不同的二进制文件:
7
+ ## 使用 `chai`
8
8
 
9
- - `chai` macOS 系统上的可执行文件,它是一个通用二进制文件,意味着 x86_64 架构和 arm64 架构的 Mac 电脑都能使用;
10
- - `chai.exe` 是 Windows 系统上的可执行文件(基于 MinGW);
11
- - `chai-musl` 和 `chai-gnu` 是 Linux 系统上的可执行文件,分别基于 musl libc 和 glibc
12
- - 使用 musl libc 的二进制通常兼容性较好
13
- - 使用 glibc 的二进制要依赖于运行环境中的 glibc,但是通常运行效率较高
9
+ 在[发布页面](https://github.com/hanzi-chai/libchai/releases)根据您的操作系统下载相应的压缩包,支持 Windows, macOS, Linux (GNU), Linux (musl) 等多种不同的环境。压缩包中有以下的示例文件:
14
10
 
15
- 请根据您的运行环境选用适当的二进制文件。
11
+ - `examples/米十五笔.yaml`: 配置文件示例,具体的格式解释参见 [config.yaml 详解](https://docs.chaifen.app/docs/tutorial/config);这个文件也可以由[汉字自动拆分系统](https://chaifen.app/)生成;
12
+ - `examples/米十五笔.txt`: 词信息文件示例,每个字一行,每行的内容依次为汉字、空格分隔的汉字拆分序列;这个文件也可由自动拆分系统生成;
13
+ - `assets/key_distribution.txt`:用指分布文件示例,每个按键一行,每行的内容为以制表符分隔的按键、目标频率、低频率惩罚系数、高频率惩罚系数;
14
+ - `assets/pair_equivalence.txt`:双键速度当量文件示例,每个按键组合一行,每行的内容为以制表符分隔的按键组合和当量;
16
15
 
17
- ### 输入格式解释及示例
16
+ 命令行程序基本的用法为:
18
17
 
19
- 压缩包中有以下的示例文件:
20
-
21
- - `config.yaml`: 方案文件(米十五笔),具体的格式解释参见 [config.md](https://github.com/hanzi-chai/docs/blob/main/docs/tutorial/config.md);这个文件也可以由[汉字自动拆分系统](https://chaifen.app/)生成;
22
- - `elements.txt`: 拆分表文件(米十五笔),每个字一行,每行的内容依次为汉字、制表符和以空格分隔的汉字拆分序列;这个文件也可由自动拆分系统生成;
23
- - `assets/frequency.txt`:词频文件,每个字一行,每行的内容为以制表符分隔的词和词频;
24
- - `assets/key_distribution.txt`:用指分布文件,每个按键一行,每行的内容为以制表符分隔的按键、目标频率、低频率惩罚系数、高频率惩罚系数;
25
- - `assets/pair_equivalence.txt`:双键速度当量文件,每个按键组合一行,每行的内容为以制表符分隔的按键组合和当量;
18
+ ```bash
19
+ ./chai [方案文件] -e [词信息文件] [命令]
20
+ ```
26
21
 
27
- 可执行文件支持三个不同的命令:`encode`, `evaluate` 和 `optimize`,例如
22
+ `chai` 支持两个不同的命令:`encode` 和 `optimize`:
28
23
 
29
- - `encode`:将使用方案文件和拆分表计算出字词编码
30
- - `evaluate`:统计各类评测指标
31
- - `optimize`:将基于拆分表和方案文件中的配置优化元素布局
24
+ - `encode`:使用方案文件和拆分表计算出字词编码并统计各类评测指标
25
+ - `optimize`:基于拆分表和方案文件中的配置优化元素布局
32
26
 
33
- 另外,如果方案文件和拆分表文件的路径不为以上的默认值,可以通过命令行参数提供,例如
27
+ 例如,您可以运行
34
28
 
35
29
  ```bash
36
- ./chai yima.yaml -e yima.txt optimize
30
+ ./chai examples/米十五笔.yaml -e examples/米十五笔.txt encode
37
31
  ```
38
32
 
39
33
  完整的使用说明可用 `./chai --help` 查看。
40
34
 
41
- ## 开发
42
-
43
- 需要首先运行 `make assets` 下载相关数据资源。然后 `cargo run` 即可编译运行。
44
-
45
- ## 构建和部署
35
+ ## 使用 `libchai`
46
36
 
47
- 在任何平台上只需要 `make build` 或者 `cargo build` 即可编译。
37
+ 若命令行程序的功能不能满足您的要求,您可以通过编程的方式直接使用 `libchai`。首先在本地配置好 Rust 环境,然后将 `libchai` 安装为依赖。您可以参照 [`libchai-smdc`](https://github.com/hanzi-chai/libchai-smdc) 项目来进一步了解如何通过二次开发来实现个性化的编码、评测、优化逻辑。
48
38
 
49
- `.cargo/config` 中有一个 `target.x86_64-pc-windows-gnu` 目标,是给 macOS 交叉编译 Windows 可执行文件用的,如果不做交叉编译或者不是为 Windows 平台编译的话可以忽略。
50
-
51
- `make package` 命令在 macOS 上运行的时候可以同时编译当前平台(x86_64 或 arm64)以及 Windows 的可执行文件,并打包为一个 zip 压缩文件,便于发布。
39
+ ## 开发
52
40
 
53
- ## 性能测试
41
+ 需要首先运行 `fetch` 脚本下载相关数据资源。然后 `cargo run` 即可编译运行。
54
42
 
55
- 需要首先运行 `make examples` 下载相关数据资源。然后 `cargo bench` 即可编译运行。
43
+ 您也可以运行 `cargo bench` 来运行性能测试。
package/chai.js CHANGED
@@ -495,6 +495,14 @@ function __wbg_get_imports() {
495
495
  const ret = getObject(arg0).node;
496
496
  return addHeapObject(ret);
497
497
  };
498
+ imports.wbg.__wbg_now_2c95c9de01293173 = function(arg0) {
499
+ const ret = getObject(arg0).now();
500
+ return ret;
501
+ };
502
+ imports.wbg.__wbg_performance_7a3ffd0b17f663ad = function(arg0) {
503
+ const ret = getObject(arg0).performance;
504
+ return addHeapObject(ret);
505
+ };
498
506
  imports.wbg.__wbg_process_5c1d670bc53614b8 = function(arg0) {
499
507
  const ret = getObject(arg0).process;
500
508
  return addHeapObject(ret);
package/chai_bg.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Songchen Tan <i@tansongchen.com>"
6
6
  ],
7
7
  "description": "汉字编码优化算法",
8
- "version": "0.2.2",
8
+ "version": "0.2.3",
9
9
  "license": "GPL-3.0",
10
10
  "repository": {
11
11
  "type": "git",