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 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 [命令] [方案文件] -e [词信息文件]
23
+ ./chai encode examples/米十五笔.yaml -e examples/米十五笔.txt
20
24
  ```
21
25
 
22
- `chai` 支持三个不同的命令:`encode`、`optimize` 和 `server`:
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
- - `encode`:使用方案文件和拆分表计算出字词编码并统计各类评测指标
25
- - `optimize`:基于拆分表和方案文件中的配置优化元素布局
26
- - `server`:启动 Web 服务
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
- 完整的使用说明可用 `./chai --help` 查看。
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(): void;
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
- if (r1) {
294
- throw takeObject(r0);
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
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Songchen Tan <i@tansongchen.com>"
6
6
  ],
7
7
  "description": "汉字编码优化算法",
8
- "version": "0.3.5",
8
+ "version": "0.3.6",
9
9
  "license": "GPL-3.0",
10
10
  "repository": {
11
11
  "type": "git",