fr-spell 1.0.1 → 1.0.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.cn.md +33 -46
- package/README.fr.md +33 -46
- package/README.md +33 -46
- package/frspell.browser.js +10936 -0
- package/models/community/derive_form_model.int8.onnx +0 -0
- package/models/community/lemma_type_model.int8.onnx +0 -0
- package/{src/module → module}/Predictor.js +5 -5
- package/package.json +19 -13
- package/benchmark/checklist_adje_100.json +0 -702
- package/benchmark/checklist_lemma_verb_100.json +0 -402
- package/benchmark/checklist_noun_100.json +0 -702
- package/benchmark/checklist_verb_100.json +0 -702
- package/benchmark/generate-checklists.js +0 -192
- package/benchmark/run-benchmark.js +0 -123
- package/models/small/derive_form_model.int8.onnx +0 -0
- package/models/small/lemma_type_model.int8.onnx +0 -0
- package/test/test.js +0 -21
- /package/{src/frspell.js → index.js} +0 -0
- /package/models/{small → community}/derive_form_vocab.json +0 -0
- /package/models/{small → community}/lemma_type_labels.json +0 -0
- /package/models/{small → community}/lemma_type_vocab.json +0 -0
package/README.cn.md
CHANGED
|
@@ -45,6 +45,23 @@ console.log(verb);
|
|
|
45
45
|
{ lemma: 'manger', wordType: 'VERB', person: 'FST_PL', mode: 'INDI', tense: 'PRES', output: 'mangeons', confidence: 0.9999864523, timeMs: 4.79 }
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
+
## 浏览器用法
|
|
49
|
+
|
|
50
|
+
直接使用本包内的浏览器 Bundle 与模型资源:
|
|
51
|
+
|
|
52
|
+
```html
|
|
53
|
+
<script src="./frspell.browser.js"></script>
|
|
54
|
+
<script>
|
|
55
|
+
(async () => {
|
|
56
|
+
const predictor = await window.FrSpell({
|
|
57
|
+
modelBasePath: './models/community'
|
|
58
|
+
});
|
|
59
|
+
const result = await predictor.lemma('mangeons');
|
|
60
|
+
console.log(result);
|
|
61
|
+
})();
|
|
62
|
+
</script>
|
|
63
|
+
```
|
|
64
|
+
|
|
48
65
|
## 预测参数说明
|
|
49
66
|
|
|
50
67
|
词元预测(lemma):
|
|
@@ -97,14 +114,6 @@ console.log(verb);
|
|
|
97
114
|
- 参考定义文件中还有更多时态名称,但本包实现目前只支持 `PRES`、`IMPA`、`FUTU`、`PASS`。
|
|
98
115
|
- 对于名词/形容词派生,用户输入时不需要 `mode` 与 `tense`。
|
|
99
116
|
|
|
100
|
-
## 运行测试
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
npm test
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
该命令会执行 test/test.js,并输出示例预测结果。
|
|
107
|
-
|
|
108
117
|
## 查看帮助
|
|
109
118
|
|
|
110
119
|
```bash
|
|
@@ -113,53 +122,31 @@ npm run help
|
|
|
113
122
|
|
|
114
123
|
该命令会输出参数速查说明,覆盖 `lemma`、`nounDerive`、`adjeDerive`、`verbDerive`、`derive` 及 person/mode/tense 可用值。
|
|
115
124
|
|
|
116
|
-
## 运行基准测试
|
|
117
|
-
|
|
118
|
-
1) 先生成检查清单 JSON(每类 100 条):
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
npm run benchmark:prepare
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
2) 运行全部基准测试:
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
npm run benchmark
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
3) 可选:按单项运行:
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
npm run benchmark:lemma
|
|
134
|
-
npm run benchmark:noun
|
|
135
|
-
npm run benchmark:verb
|
|
136
|
-
npm run benchmark:adje
|
|
137
|
-
```
|
|
138
|
-
|
|
139
125
|
## 基准结果(最近一次本地运行)
|
|
140
126
|
|
|
141
|
-
基准命令:
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
npm run benchmark
|
|
145
|
-
```
|
|
146
|
-
|
|
147
127
|
结果:
|
|
148
128
|
|
|
149
|
-
- 由变位预测词元:
|
|
150
|
-
- 名词派生:
|
|
151
|
-
- 动词派生:100/100,准确率 100.00%,平均
|
|
152
|
-
- 形容词派生:100/100,准确率 100.00%,平均
|
|
129
|
+
- 由变位预测词元:97/100,准确率 97.00%,平均 22.21 ms
|
|
130
|
+
- 名词派生:100/100,准确率 100.00%,平均 23.46 ms
|
|
131
|
+
- 动词派生:100/100,准确率 100.00%,平均 23.18 ms
|
|
132
|
+
- 形容词派生:100/100,准确率 100.00%,平均 23.49 ms
|
|
153
133
|
|
|
154
134
|
## 模型体积
|
|
155
135
|
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
- ONNX 总体积:约
|
|
136
|
+
- 当前默认(community)词元 ONNX 模型:models/community/lemma_type_model.int8.onnx = 1.48 MB
|
|
137
|
+
- 当前默认(community)派生 ONNX 模型:models/community/derive_form_model.int8.onnx = 1.40 MB
|
|
138
|
+
- 当前默认 ONNX 总体积:约 2.88 MB
|
|
139
|
+
|
|
140
|
+
Mini 版本说明:
|
|
141
|
+
|
|
142
|
+
- mini 词元 ONNX 模型目标大小:0.96 MB
|
|
143
|
+
- mini 派生 ONNX 模型目标大小:0.91 MB
|
|
144
|
+
- mini ONNX 总体积目标:约 1.87 MB
|
|
145
|
+
- mini 模型版本将很快上线。
|
|
159
146
|
|
|
160
147
|
## 为什么它非常适合 Web 前端产品
|
|
161
148
|
|
|
162
149
|
- 法语关键形态任务具有高准确率
|
|
163
|
-
-
|
|
164
|
-
- ONNX
|
|
150
|
+
- 单次请求延迟低(最新本地基准平均约 22 到 23 ms)
|
|
151
|
+
- 当前默认 ONNX 体积紧凑(约 2.88 MB),更小的 mini 模型包(约 1.87 MB)即将上线
|
|
165
152
|
- 非常适合为 Web 前端功能提供后端推理能力,例如实时写作辅助、语法提示与词元感知检索
|
package/README.fr.md
CHANGED
|
@@ -45,6 +45,23 @@ Exemple de sortie a l'execution :
|
|
|
45
45
|
{ lemma: 'manger', wordType: 'VERB', person: 'FST_PL', mode: 'INDI', tense: 'PRES', output: 'mangeons', confidence: 0.9999864523, timeMs: 4.79 }
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
+
## Utilisation navigateur
|
|
49
|
+
|
|
50
|
+
Utilisez directement le bundle navigateur et les ressources modele inclus dans ce package :
|
|
51
|
+
|
|
52
|
+
```html
|
|
53
|
+
<script src="./frspell.browser.js"></script>
|
|
54
|
+
<script>
|
|
55
|
+
(async () => {
|
|
56
|
+
const predictor = await window.FrSpell({
|
|
57
|
+
modelBasePath: './models/community'
|
|
58
|
+
});
|
|
59
|
+
const result = await predictor.lemma('mangeons');
|
|
60
|
+
console.log(result);
|
|
61
|
+
})();
|
|
62
|
+
</script>
|
|
63
|
+
```
|
|
64
|
+
|
|
48
65
|
## Parametres de prediction
|
|
49
66
|
|
|
50
67
|
Prediction de lemme :
|
|
@@ -97,14 +114,6 @@ Note :
|
|
|
97
114
|
- Le fichier de definitions d'origine contient plus de noms de temps, mais ce package prend actuellement en charge uniquement `PRES`, `IMPA`, `FUTU`, `PASS`.
|
|
98
115
|
- Pour les appels nom/adjectif, `mode` et `tense` ne sont pas requis dans l'entree utilisateur.
|
|
99
116
|
|
|
100
|
-
## Exécuter les tests
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
npm test
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
Cette commande exécute test/test.js et affiche des exemples de prédiction.
|
|
107
|
-
|
|
108
117
|
## Afficher l'aide
|
|
109
118
|
|
|
110
119
|
```bash
|
|
@@ -113,53 +122,31 @@ npm run help
|
|
|
113
122
|
|
|
114
123
|
Cette commande affiche un guide rapide des paramètres pour `lemma`, `nounDerive`, `adjeDerive`, `verbDerive` et `derive`, avec les valeurs autorisées de person/mode/tense.
|
|
115
124
|
|
|
116
|
-
## Exécuter les benchmarks
|
|
117
|
-
|
|
118
|
-
1) Générer les fichiers JSON de checklist (100 éléments chacun) :
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
npm run benchmark:prepare
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
2) Exécuter toutes les suites de benchmark :
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
npm run benchmark
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
3) Optionnel : exécuter une suite spécifique :
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
npm run benchmark:lemma
|
|
134
|
-
npm run benchmark:noun
|
|
135
|
-
npm run benchmark:verb
|
|
136
|
-
npm run benchmark:adje
|
|
137
|
-
```
|
|
138
|
-
|
|
139
125
|
## Résultats de benchmark (dernier run local)
|
|
140
126
|
|
|
141
|
-
Commande de benchmark :
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
npm run benchmark
|
|
145
|
-
```
|
|
146
|
-
|
|
147
127
|
Résultats :
|
|
148
128
|
|
|
149
|
-
- lemme depuis une conjugaison :
|
|
150
|
-
- dérivation nominale :
|
|
151
|
-
- dérivation verbale : 100/100, précision 100.00 %, moyenne
|
|
152
|
-
- dérivation adjectivale : 100/100, précision 100.00 %, moyenne
|
|
129
|
+
- lemme depuis une conjugaison : 97/100, précision 97.00 %, moyenne 22.21 ms
|
|
130
|
+
- dérivation nominale : 100/100, précision 100.00 %, moyenne 23.46 ms
|
|
131
|
+
- dérivation verbale : 100/100, précision 100.00 %, moyenne 23.18 ms
|
|
132
|
+
- dérivation adjectivale : 100/100, précision 100.00 %, moyenne 23.49 ms
|
|
153
133
|
|
|
154
134
|
## Taille des modèles
|
|
155
135
|
|
|
156
|
-
- modèle ONNX lemme : models/
|
|
157
|
-
- modèle ONNX dérivation : models/
|
|
158
|
-
- taille totale
|
|
136
|
+
- modèle ONNX lemme par défaut (community) : models/community/lemma_type_model.int8.onnx = 1.48 MB
|
|
137
|
+
- modèle ONNX dérivation par défaut (community) : models/community/derive_form_model.int8.onnx = 1.40 MB
|
|
138
|
+
- taille ONNX totale par défaut actuelle : environ 2.88 MB
|
|
139
|
+
|
|
140
|
+
Note sur la version mini :
|
|
141
|
+
|
|
142
|
+
- taille cible du modèle lemme mini : 0.96 MB
|
|
143
|
+
- taille cible du modèle dérivation mini : 0.91 MB
|
|
144
|
+
- taille ONNX totale cible de la version mini : environ 1.87 MB
|
|
145
|
+
- le package de modèles mini sera publié prochainement.
|
|
159
146
|
|
|
160
147
|
## Pourquoi c'est idéal pour des produits web frontend
|
|
161
148
|
|
|
162
149
|
- excellente précision sur les tâches clés de morphologie française
|
|
163
|
-
- faible latence par requête (environ
|
|
164
|
-
- empreinte ONNX
|
|
150
|
+
- faible latence par requête (environ 22 à 23 ms en moyenne sur le dernier benchmark local)
|
|
151
|
+
- empreinte ONNX par défaut toujours compacte (environ 2.88 MB au total), avec un package mini plus léger (environ 1.87 MB) à venir
|
|
165
152
|
- parfait pour alimenter des fonctionnalités frontend via une inférence backend : assistance à l'écriture en temps réel, suggestions grammaticales et recherche basée sur le lemme
|
package/README.md
CHANGED
|
@@ -45,6 +45,23 @@ Sample runtime output:
|
|
|
45
45
|
{ lemma: 'manger', wordType: 'VERB', person: 'FST_PL', mode: 'INDI', tense: 'PRES', output: 'mangeons', confidence: 0.9999864523, timeMs: 4.79 }
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
+
## Browser Usage
|
|
49
|
+
|
|
50
|
+
Use the browser bundle and model assets included in this package:
|
|
51
|
+
|
|
52
|
+
```html
|
|
53
|
+
<script src="./frspell.browser.js"></script>
|
|
54
|
+
<script>
|
|
55
|
+
(async () => {
|
|
56
|
+
const predictor = await window.FrSpell({
|
|
57
|
+
modelBasePath: './models/community'
|
|
58
|
+
});
|
|
59
|
+
const result = await predictor.lemma('mangeons');
|
|
60
|
+
console.log(result);
|
|
61
|
+
})();
|
|
62
|
+
</script>
|
|
63
|
+
```
|
|
64
|
+
|
|
48
65
|
## Prediction Parameters
|
|
49
66
|
|
|
50
67
|
Lemma prediction:
|
|
@@ -97,14 +114,6 @@ Note:
|
|
|
97
114
|
- The original grammar definition file includes more tense names, but this package implementation currently supports only `PRES`, `IMPA`, `FUTU`, `PASS`.
|
|
98
115
|
- For noun/adjective derive calls, `mode` and `tense` are not required in user input.
|
|
99
116
|
|
|
100
|
-
## Run Test
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
npm test
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
This executes test/test.js and prints sample prediction outputs.
|
|
107
|
-
|
|
108
117
|
## Run Help
|
|
109
118
|
|
|
110
119
|
```bash
|
|
@@ -113,53 +122,31 @@ npm run help
|
|
|
113
122
|
|
|
114
123
|
This prints a quick parameter reference for `lemma`, `nounDerive`, `adjeDerive`, `verbDerive`, and `derive`, including allowed person/mode/tense values.
|
|
115
124
|
|
|
116
|
-
## Run Benchmark
|
|
117
|
-
|
|
118
|
-
1) Prepare checklist JSON files (100 items each):
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
npm run benchmark:prepare
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
2) Run all benchmark suites:
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
npm run benchmark
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
3) Optional single-suite runs:
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
npm run benchmark:lemma
|
|
134
|
-
npm run benchmark:noun
|
|
135
|
-
npm run benchmark:verb
|
|
136
|
-
npm run benchmark:adje
|
|
137
|
-
```
|
|
138
|
-
|
|
139
125
|
## Benchmark Result (Latest Local Run)
|
|
140
126
|
|
|
141
|
-
Benchmark command:
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
npm run benchmark
|
|
145
|
-
```
|
|
146
|
-
|
|
147
127
|
Results:
|
|
148
128
|
|
|
149
|
-
- lemma from conjugation:
|
|
150
|
-
- noun derive:
|
|
151
|
-
- verb derive: 100/100, accuracy 100.00%, average
|
|
152
|
-
- adjective derive: 100/100, accuracy 100.00%, average
|
|
129
|
+
- lemma from conjugation: 97/100, accuracy 97.00%, average 22.21 ms
|
|
130
|
+
- noun derive: 100/100, accuracy 100.00%, average 23.46 ms
|
|
131
|
+
- verb derive: 100/100, accuracy 100.00%, average 23.18 ms
|
|
132
|
+
- adjective derive: 100/100, accuracy 100.00%, average 23.49 ms
|
|
153
133
|
|
|
154
134
|
## Model Size
|
|
155
135
|
|
|
156
|
-
- lemma ONNX model: models/
|
|
157
|
-
- derive ONNX model: models/
|
|
158
|
-
- total ONNX model size: about
|
|
136
|
+
- current default (community) lemma ONNX model: models/community/lemma_type_model.int8.onnx = 1.48 MB
|
|
137
|
+
- current default (community) derive ONNX model: models/community/derive_form_model.int8.onnx = 1.40 MB
|
|
138
|
+
- current default total ONNX model size: about 2.88 MB
|
|
139
|
+
|
|
140
|
+
Mini version note:
|
|
141
|
+
|
|
142
|
+
- mini lemma ONNX model target: 0.96 MB
|
|
143
|
+
- mini derive ONNX model target: 0.91 MB
|
|
144
|
+
- mini total ONNX model target: about 1.87 MB
|
|
145
|
+
- the mini model package is planned to be published soon.
|
|
159
146
|
|
|
160
147
|
## Why It Is Great For Web Frontend Products
|
|
161
148
|
|
|
162
149
|
- high accuracy for key French morphology tasks
|
|
163
|
-
- low per-request latency (about
|
|
164
|
-
-
|
|
150
|
+
- low per-request latency (about 22 to 23 ms average in latest local benchmark)
|
|
151
|
+
- current default ONNX footprint is compact (about 2.88 MB total), with a smaller mini model package (about 1.87 MB) coming soon
|
|
165
152
|
- ideal for backend inference powering web frontend features such as live writing assistance, grammar hints, and lemma-aware search
|