libchai 0.3.5 → 0.3.6
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 +63 -9
- package/chai.d.ts +1 -1
- package/chai.js +31 -2
- package/chai_bg.wasm +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,27 +13,81 @@
|
|
|
13
13
|
- `assets/distribution.txt`:用指分布文件示例,每个按键一行,每行的内容为以制表符分隔的按键、目标频率、低频率惩罚系数、高频率惩罚系数;
|
|
14
14
|
- `assets/equivalence.txt`:双键速度当量文件示例,每个按键组合一行,每行的内容为以制表符分隔的按键组合和当量;
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
`chai` 支持三个不同的命令:`encode`、`optimize` 和 `server`,各个命令的详细介绍如下:
|
|
17
|
+
|
|
18
|
+
### 编码并计算指标
|
|
19
|
+
|
|
20
|
+
`encode` 命令使用方案文件和拆分表计算出字词编码并统计各类评测指标。例如,您可以运行
|
|
17
21
|
|
|
18
22
|
```bash
|
|
19
|
-
./chai
|
|
23
|
+
./chai encode examples/米十五笔.yaml -e examples/米十五笔.txt
|
|
20
24
|
```
|
|
21
25
|
|
|
22
|
-
|
|
26
|
+
完整介绍如下:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
> ./chai encode -h
|
|
30
|
+
使用方案文件和拆分表计算出字词编码并统计各类指标
|
|
31
|
+
|
|
32
|
+
Usage: chai encode [OPTIONS] [CONFIG]
|
|
33
|
+
|
|
34
|
+
Arguments:
|
|
35
|
+
[CONFIG] 方案文件,默认为 config.yaml
|
|
23
36
|
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
37
|
+
Options:
|
|
38
|
+
-e, --encodables <FILE> 频率序列表,默认为 elements.txt
|
|
39
|
+
-k, --key-distribution <FILE> 单键用指分布表,默认为 assets 目录下的 distribution.txt
|
|
40
|
+
-p, --pair-equivalence <FILE> 双键速度当量表,默认为 assets 目录下的 equivalence.txt
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 优化
|
|
27
44
|
|
|
28
|
-
|
|
45
|
+
`optimize` 命令基于拆分表和方案文件中的配置优化元素布局。例如,您可以运行
|
|
29
46
|
|
|
30
47
|
```bash
|
|
31
|
-
./chai encode examples/米十五笔.yaml -e examples/米十五笔.txt
|
|
32
48
|
./chai optimize examples/米十五笔.yaml -e examples/米十五笔.txt -t 4
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
完整介绍如下:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
> ./chai optimize -h
|
|
55
|
+
基于配置文件优化决策
|
|
56
|
+
|
|
57
|
+
Usage: chai optimize [OPTIONS] [CONFIG]
|
|
58
|
+
|
|
59
|
+
Arguments:
|
|
60
|
+
[CONFIG] 方案文件,默认为 config.yaml
|
|
61
|
+
|
|
62
|
+
Options:
|
|
63
|
+
-e, --encodables <FILE> 频率序列表,默认为 elements.txt
|
|
64
|
+
-k, --key-distribution <FILE> 单键用指分布表,默认为 assets 目录下的 distribution.txt
|
|
65
|
+
-p, --pair-equivalence <FILE> 双键速度当量表,默认为 assets 目录下的 equivalence.txt
|
|
66
|
+
-t, --threads <THREADS> 优化时使用的线程数 [default: 1]
|
|
67
|
+
-r, --resume-from <RESUME_FROM> 是否要从某个输出目录恢复 如果指定了这个参数,程序会在该目录寻找 checkpoint-*.yaml 来恢复优化进度
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
在优化过程中,您可以随时停止优化并关闭终端,断点数据会保存在相应的文件夹中。若希望下一次计算从此前的某个断点继续,则需要加上 `-r` 参数。例如,上一次计算的结果在 `output-02-20+20_26_36` 中,则可以加上 `-r output-02-20+20_26_36`。值得注意的是,使用的线程数量需要和此前一致,否则无法将所有断点文件均继续计算。
|
|
71
|
+
|
|
72
|
+
### 启动服务器
|
|
73
|
+
|
|
74
|
+
`server` 命令启动 Web 服务。例如,您可以运行
|
|
75
|
+
|
|
76
|
+
```bash
|
|
33
77
|
./chai server -p 12345
|
|
34
78
|
```
|
|
35
79
|
|
|
36
|
-
|
|
80
|
+
完整介绍如下:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
> ./chai server -h
|
|
84
|
+
启动 HTTP API 服务器
|
|
85
|
+
|
|
86
|
+
Usage: chai server [OPTIONS]
|
|
87
|
+
|
|
88
|
+
Options:
|
|
89
|
+
-p, --port <PORT> 服务器端口号 [default: 3200]
|
|
90
|
+
```
|
|
37
91
|
|
|
38
92
|
## 使用 `libchai`
|
|
39
93
|
|
package/chai.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export class Web {
|
|
|
13
13
|
encode_evaluate(前端目标函数配置: any): any;
|
|
14
14
|
static new(回调: Function): Web;
|
|
15
15
|
sync(前端参数: any): void;
|
|
16
|
-
optimize():
|
|
16
|
+
optimize(): any;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
package/chai.js
CHANGED
|
@@ -284,15 +284,20 @@ export class Web {
|
|
|
284
284
|
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
285
285
|
}
|
|
286
286
|
}
|
|
287
|
+
/**
|
|
288
|
+
* @returns {any}
|
|
289
|
+
*/
|
|
287
290
|
optimize() {
|
|
288
291
|
try {
|
|
289
292
|
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
290
293
|
wasm.web_optimize(retptr, this.__wbg_ptr);
|
|
291
294
|
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
292
295
|
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
293
|
-
|
|
294
|
-
|
|
296
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
297
|
+
if (r2) {
|
|
298
|
+
throw takeObject(r1);
|
|
295
299
|
}
|
|
300
|
+
return takeObject(r0);
|
|
296
301
|
} finally {
|
|
297
302
|
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
298
303
|
}
|
|
@@ -379,9 +384,29 @@ function __wbg_get_imports() {
|
|
|
379
384
|
const ret = String.fromCodePoint(arg0 >>> 0);
|
|
380
385
|
return addHeapObject(ret);
|
|
381
386
|
}, arguments) };
|
|
387
|
+
imports.wbg.__wbg_getDate_ef336e14594b35ce = function(arg0) {
|
|
388
|
+
const ret = getObject(arg0).getDate();
|
|
389
|
+
return ret;
|
|
390
|
+
};
|
|
391
|
+
imports.wbg.__wbg_getHours_70451b8de3ce8638 = function(arg0) {
|
|
392
|
+
const ret = getObject(arg0).getHours();
|
|
393
|
+
return ret;
|
|
394
|
+
};
|
|
395
|
+
imports.wbg.__wbg_getMinutes_e793d718371e18f7 = function(arg0) {
|
|
396
|
+
const ret = getObject(arg0).getMinutes();
|
|
397
|
+
return ret;
|
|
398
|
+
};
|
|
399
|
+
imports.wbg.__wbg_getMonth_d37edcd23642c97d = function(arg0) {
|
|
400
|
+
const ret = getObject(arg0).getMonth();
|
|
401
|
+
return ret;
|
|
402
|
+
};
|
|
382
403
|
imports.wbg.__wbg_getRandomValues_3c9c0d586e575a16 = function() { return handleError(function (arg0, arg1) {
|
|
383
404
|
globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
|
|
384
405
|
}, arguments) };
|
|
406
|
+
imports.wbg.__wbg_getSeconds_755197b634cca692 = function(arg0) {
|
|
407
|
+
const ret = getObject(arg0).getSeconds();
|
|
408
|
+
return ret;
|
|
409
|
+
};
|
|
385
410
|
imports.wbg.__wbg_get_67b2ba62fc30de12 = function() { return handleError(function (arg0, arg1) {
|
|
386
411
|
const ret = Reflect.get(getObject(arg0), getObject(arg1));
|
|
387
412
|
return addHeapObject(ret);
|
|
@@ -448,6 +473,10 @@ function __wbg_get_imports() {
|
|
|
448
473
|
const ret = getObject(arg0).length;
|
|
449
474
|
return ret;
|
|
450
475
|
};
|
|
476
|
+
imports.wbg.__wbg_new0_f788a2397c7ca929 = function() {
|
|
477
|
+
const ret = new Date();
|
|
478
|
+
return addHeapObject(ret);
|
|
479
|
+
};
|
|
451
480
|
imports.wbg.__wbg_new_405e22f390576ce2 = function() {
|
|
452
481
|
const ret = new Object();
|
|
453
482
|
return addHeapObject(ret);
|
package/chai_bg.wasm
CHANGED
|
Binary file
|