patina-cli 3.11.0 → 4.0.0

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.
Files changed (193) hide show
  1. package/.patina.default.yaml +29 -29
  2. package/CHANGELOG.md +53 -0
  3. package/NOTICE +21 -0
  4. package/README.md +117 -224
  5. package/README_JA.md +134 -77
  6. package/README_KR.md +132 -74
  7. package/README_ZH.md +137 -80
  8. package/SKILL.md +11 -20
  9. package/artifacts/rebaseline-2025/README.md +147 -0
  10. package/artifacts/rebaseline-2025/human-controls.public.jsonl +250 -0
  11. package/artifacts/rebaseline-2025/intake.example.jsonl +2 -0
  12. package/artifacts/rebaseline-2025/intake.local.example.jsonl +25 -0
  13. package/artifacts/rebaseline-2025/prompts.template.jsonl +7 -0
  14. package/artifacts/rebaseline-2025/sources.ko-public.jsonl +39 -0
  15. package/assets/brand/patina-badge.svg +18 -0
  16. package/assets/brand/patina-mark.svg +8 -0
  17. package/assets/demo/README.md +79 -0
  18. package/core/scoring.md +12 -12
  19. package/core/standalone-prompt.md +3 -1
  20. package/core/stylometry.md +93 -22
  21. package/docs/API.md +1554 -0
  22. package/docs/AUTHENTICATION.md +50 -26
  23. package/docs/AUTHENTICATION_KR.md +54 -29
  24. package/docs/BRANDING.md +9 -8
  25. package/docs/CLI.md +55 -14
  26. package/docs/COOKBOOK.md +8 -21
  27. package/docs/DEMO.md +32 -5
  28. package/docs/EXIT-CODES.md +2 -3
  29. package/docs/FALSE-POSITIVES.md +63 -0
  30. package/docs/FAQ.md +9 -1
  31. package/docs/FAQ_KR.md +3 -1
  32. package/docs/FLAG-PARITY.md +33 -47
  33. package/docs/ISSUE-WAVES.md +57 -0
  34. package/docs/PATTERNS-EN.md +67 -3
  35. package/docs/PATTERNS-JA.md +68 -2
  36. package/docs/PATTERNS-KO.md +70 -7
  37. package/docs/PATTERNS-ZH.md +67 -3
  38. package/docs/PATTERNS.md +5 -5
  39. package/docs/RESEARCH-DOCS-PLATFORM.md +54 -0
  40. package/docs/ROADMAP.md +46 -66
  41. package/docs/TRANSLATIONESE-KO.md +51 -0
  42. package/docs/audits/2026-05-deep-research.md +3 -1
  43. package/docs/benchmarks/README.md +51 -0
  44. package/docs/benchmarks/detector-comparison.json +69 -9
  45. package/docs/benchmarks/detector-comparison.md +10 -5
  46. package/docs/benchmarks/katfish-ko-latest.json +657 -0
  47. package/docs/benchmarks/katfish-ko-latest.md +77 -0
  48. package/docs/benchmarks/latest.json +1183 -108
  49. package/docs/benchmarks/latest.md +84 -60
  50. package/docs/benchmarks/lexicon-freshness-en-2026-05-22.json +1121 -0
  51. package/docs/benchmarks/lexicon-freshness-en-2026-05-22.md +136 -0
  52. package/docs/benchmarks/rebaseline-latest.json +381 -0
  53. package/docs/benchmarks/rebaseline-latest.md +121 -0
  54. package/docs/benchmarks/register-stratified-latest.json +164 -0
  55. package/docs/benchmarks/register-stratified-latest.md +99 -0
  56. package/docs/benchmarks/register-stratified.md +43 -0
  57. package/docs/integrations/github-action.md +44 -11
  58. package/docs/integrations/playground.md +58 -0
  59. package/docs/integrations/pre-commit.md +5 -5
  60. package/docs/integrations/release.md +5 -3
  61. package/docs/integrations/static-sites.md +83 -0
  62. package/docs/research/2025-rebaseline-plan.md +71 -2
  63. package/docs/research/2026-rebaseline.md +102 -0
  64. package/docs/research/adversarial-mps.md +41 -0
  65. package/docs/research/ai-human-metrics.md +35 -23
  66. package/docs/research/human-eval-panel.md +42 -0
  67. package/docs/research/judge-agreement.md +24 -0
  68. package/docs/research/ko-2025-corpus-sources.md +135 -0
  69. package/docs/research/lexicon-freshness-audit.md +64 -0
  70. package/docs/research/zh-ja-lexicon-calibration.md +60 -0
  71. package/docs/social/patina-launch-copy.md +173 -100
  72. package/docs/social/patina-launch-execution.md +94 -0
  73. package/docs/social/patina-launch-korean-first.md +83 -0
  74. package/docs/social/signs-of-ai-writing.md +26 -0
  75. package/docs/social/signs-of-ai-writing_KR.md +26 -0
  76. package/lexicon/ai-en.md +21 -24
  77. package/lexicon/ai-ja.md +158 -0
  78. package/lexicon/ai-ko.md +9 -9
  79. package/lexicon/ai-zh.md +158 -0
  80. package/lexicon/provenance/ai-en.json +970 -0
  81. package/lexicon/provenance/ai-ja.json +542 -0
  82. package/lexicon/provenance/ai-ko.json +866 -0
  83. package/lexicon/provenance/ai-zh.json +542 -0
  84. package/package.json +49 -8
  85. package/patterns/en-communication.md +5 -0
  86. package/patterns/en-content.md +5 -0
  87. package/patterns/en-filler.md +5 -0
  88. package/patterns/en-language.md +29 -1
  89. package/patterns/en-structure.md +5 -0
  90. package/patterns/en-style.md +5 -0
  91. package/patterns/en-viral-hook.md +42 -2
  92. package/patterns/ja-communication.md +5 -0
  93. package/patterns/ja-content.md +5 -0
  94. package/patterns/ja-filler.md +5 -0
  95. package/patterns/ja-language.md +33 -1
  96. package/patterns/ja-structure.md +12 -0
  97. package/patterns/ja-style.md +5 -0
  98. package/patterns/ja-viral-hook.md +41 -2
  99. package/patterns/ko-communication.md +5 -0
  100. package/patterns/ko-content.md +5 -0
  101. package/patterns/ko-filler.md +5 -0
  102. package/patterns/ko-language.md +33 -1
  103. package/patterns/ko-structure.md +25 -6
  104. package/patterns/ko-style.md +5 -0
  105. package/patterns/ko-viral-hook.md +38 -2
  106. package/patterns/zh-communication.md +5 -0
  107. package/patterns/zh-content.md +5 -0
  108. package/patterns/zh-filler.md +5 -0
  109. package/patterns/zh-language.md +37 -1
  110. package/patterns/zh-structure.md +12 -0
  111. package/patterns/zh-style.md +5 -0
  112. package/patterns/zh-viral-hook.md +38 -2
  113. package/playground/README.md +55 -0
  114. package/playground/analytics.js +4 -0
  115. package/playground/analyzer.js +883 -0
  116. package/playground/app.js +157 -0
  117. package/playground/data/lexicons.js +343 -0
  118. package/playground/index.html +138 -0
  119. package/playground/styles.css +267 -0
  120. package/profiles/namuwiki.md +111 -0
  121. package/scripts/adversarial-mps-report.mjs +201 -0
  122. package/scripts/badge-json.mjs +79 -0
  123. package/scripts/benchmark-report.mjs +56 -9
  124. package/scripts/check-release-metadata.mjs +0 -2
  125. package/scripts/detector-comparison.mjs +7 -7
  126. package/scripts/generate-playground-data.mjs +77 -0
  127. package/scripts/katfish-calibration.mjs +464 -0
  128. package/scripts/lexicon-freshness.mjs +485 -0
  129. package/scripts/lint.mjs +1 -1
  130. package/scripts/precommit-score.mjs +4 -3
  131. package/scripts/prose-score.mjs +81 -5
  132. package/scripts/rebaseline-intake.mjs +242 -0
  133. package/scripts/rebaseline-score.mjs +268 -0
  134. package/scripts/rebaseline-summary.mjs +773 -0
  135. package/scripts/rebaseline-web-collect.mjs +410 -0
  136. package/scripts/update-benchmark-ranges.mjs +1 -0
  137. package/src/api.js +69 -105
  138. package/src/auth.js +50 -2
  139. package/src/backends/claude-cli.js +19 -4
  140. package/src/backends/codex-cli.js +19 -3
  141. package/src/backends/contract.js +230 -1
  142. package/src/backends/gemini-cli.js +18 -5
  143. package/src/backends/index.js +87 -12
  144. package/src/backends/kimi-cli.js +161 -0
  145. package/src/cli.js +577 -567
  146. package/src/commands/doctor.js +2 -2
  147. package/src/config.js +29 -0
  148. package/src/errors.js +53 -1
  149. package/src/features/discourse-tells.js +68 -0
  150. package/src/features/index.js +82 -8
  151. package/src/features/lexicon.js +40 -6
  152. package/src/features/markup-leakage.js +69 -0
  153. package/src/features/segment.js +41 -0
  154. package/src/features/signal-strength.js +81 -0
  155. package/src/features/stylometry.js +231 -1
  156. package/src/features/translationese.js +127 -0
  157. package/src/loader.js +76 -0
  158. package/src/logger.js +22 -23
  159. package/src/model-defaults.js +55 -0
  160. package/src/ouroboros.js +31 -0
  161. package/src/output.js +102 -90
  162. package/src/prompt-builder.js +103 -68
  163. package/src/providers.js +51 -4
  164. package/src/scoring.js +210 -2
  165. package/src/security.js +75 -0
  166. package/tests/fixtures/live-quality/en/public-docs-01.md +26 -0
  167. package/tests/fixtures/live-quality/ko/public-docs-01.md +26 -0
  168. package/tests/fixtures/suspect-zones/expected-ranges.json +207 -16
  169. package/tests/fixtures/suspect-zones/ja/ai/ja-ai-04-lexicon.md +11 -0
  170. package/tests/fixtures/suspect-zones/ja/natural/ja-nat-04-lexicon-cold.md +11 -0
  171. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-02.md +4 -5
  172. package/tests/fixtures/suspect-zones/ko/ai/ko-ai-07-ko-diagnostic.md +11 -0
  173. package/tests/fixtures/suspect-zones/zh/ai/zh-ai-04-lexicon.md +11 -0
  174. package/tests/fixtures/suspect-zones/zh/natural/zh-nat-04-lexicon-cold.md +11 -0
  175. package/tests/quality/README.md +188 -11
  176. package/tests/quality/adversarial-mps/fixtures.jsonl +10 -0
  177. package/tests/quality/benchmark.mjs +39 -1
  178. package/tests/quality/dogfood.mjs +5 -3
  179. package/tests/quality/live-fixtures.jsonl +2 -0
  180. package/tests/quality/live-quality.mjs +596 -0
  181. package/tests/quality/ranking-metrics.mjs +136 -0
  182. package/tests/quality/rebaseline-manifest.example.jsonl +5 -0
  183. package/vercel.json +53 -0
  184. package/SKILL-MAX.md +0 -455
  185. package/docs/internal/HARNESS.md +0 -14
  186. package/docs/internal/README.md +0 -14
  187. package/docs/internal/WARP.md +0 -23
  188. package/patina-max/SKILL.md +0 -523
  189. package/patina-max/composite.py +0 -457
  190. package/src/cache.js +0 -106
  191. package/src/commands/init.js +0 -208
  192. package/src/manifest.js +0 -162
  193. package/src/max-mode.js +0 -207
@@ -1,19 +1,19 @@
1
1
  {
2
- "reportVersion": 2,
2
+ "reportVersion": 3,
3
3
  "benchmarkCommand": "node tests/quality/benchmark.mjs --quiet",
4
4
  "benchmarkStatus": 0,
5
5
  "note": "Deterministic suspect-zone benchmark; not an authorship detector.",
6
6
  "regressionRanges": "tests/fixtures/suspect-zones/expected-ranges.json",
7
- "schemaVersion": 2,
7
+ "schemaVersion": 3,
8
8
  "fixtureSchemaVersion": 1,
9
- "nodeVersion": "v22.17.1",
10
- "generatedAt": "2026-05-20T11:14:22.284Z",
11
- "fixtureCount": 34,
9
+ "nodeVersion": "v20.20.2",
10
+ "generatedAt": "2026-06-07T05:27:17.629Z",
11
+ "fixtureCount": 39,
12
12
  "overallAccuracy": 1,
13
13
  "overall": {
14
14
  "accuracy": 1,
15
- "n": 34,
16
- "ci_low": 0.898,
15
+ "n": 39,
16
+ "ci_low": 0.91,
17
17
  "ci_high": 1,
18
18
  "confidence_method": "Wilson score interval, 95%"
19
19
  },
@@ -48,6 +48,21 @@
48
48
  "ci_high": 1,
49
49
  "confidence_method": "Wilson score interval, 95%"
50
50
  },
51
+ "koDiagnostics": {
52
+ "tp": 0,
53
+ "fp": 0,
54
+ "fn": 6,
55
+ "tn": 5,
56
+ "total": 11,
57
+ "accuracy": 0.455,
58
+ "precision": 0,
59
+ "recall": 0,
60
+ "f1": 0,
61
+ "n": 11,
62
+ "ci_low": 0.213,
63
+ "ci_high": 0.72,
64
+ "confidence_method": "Wilson score interval, 95%"
65
+ },
51
66
  "mattr": {
52
67
  "tp": 0,
53
68
  "fp": 0,
@@ -81,192 +96,932 @@
81
96
  }
82
97
  },
83
98
  "ja": {
84
- "tp": 3,
99
+ "tp": 4,
85
100
  "fp": 0,
86
101
  "fn": 0,
87
- "tn": 3,
88
- "total": 6,
102
+ "tn": 4,
103
+ "total": 8,
89
104
  "accuracy": 1,
90
105
  "precision": 1,
91
106
  "recall": 1,
92
107
  "f1": 1,
93
- "n": 6,
94
- "ci_low": 0.61,
108
+ "n": 8,
109
+ "ci_low": 0.676,
95
110
  "ci_high": 1,
96
111
  "confidence_method": "Wilson score interval, 95%",
97
112
  "byDetector": {
98
113
  "burstiness": {
99
114
  "tp": 3,
100
115
  "fp": 0,
101
- "fn": 0,
102
- "tn": 3,
103
- "total": 6,
104
- "accuracy": 1,
116
+ "fn": 1,
117
+ "tn": 4,
118
+ "total": 8,
119
+ "accuracy": 0.875,
105
120
  "precision": 1,
106
- "recall": 1,
107
- "f1": 1,
108
- "n": 6,
109
- "ci_low": 0.61,
110
- "ci_high": 1,
121
+ "recall": 0.75,
122
+ "f1": 0.857,
123
+ "n": 8,
124
+ "ci_low": 0.529,
125
+ "ci_high": 0.978,
111
126
  "confidence_method": "Wilson score interval, 95%"
112
127
  },
113
- "mattr": {
128
+ "koDiagnostics": {
114
129
  "tp": 0,
115
130
  "fp": 0,
116
- "fn": 3,
117
- "tn": 3,
118
- "total": 6,
131
+ "fn": 4,
132
+ "tn": 4,
133
+ "total": 8,
119
134
  "accuracy": 0.5,
120
135
  "precision": 0,
121
136
  "recall": 0,
122
137
  "f1": 0,
123
- "n": 6,
124
- "ci_low": 0.188,
125
- "ci_high": 0.812,
138
+ "n": 8,
139
+ "ci_low": 0.215,
140
+ "ci_high": 0.785,
126
141
  "confidence_method": "Wilson score interval, 95%"
127
142
  },
128
- "lexicon": {
143
+ "mattr": {
129
144
  "tp": 0,
130
145
  "fp": 0,
131
- "fn": 3,
132
- "tn": 3,
133
- "total": 6,
146
+ "fn": 4,
147
+ "tn": 4,
148
+ "total": 8,
134
149
  "accuracy": 0.5,
135
150
  "precision": 0,
136
151
  "recall": 0,
137
152
  "f1": 0,
138
- "n": 6,
139
- "ci_low": 0.188,
140
- "ci_high": 0.812,
153
+ "n": 8,
154
+ "ci_low": 0.215,
155
+ "ci_high": 0.785,
156
+ "confidence_method": "Wilson score interval, 95%"
157
+ },
158
+ "lexicon": {
159
+ "tp": 1,
160
+ "fp": 0,
161
+ "fn": 3,
162
+ "tn": 4,
163
+ "total": 8,
164
+ "accuracy": 0.625,
165
+ "precision": 1,
166
+ "recall": 0.25,
167
+ "f1": 0.4,
168
+ "n": 8,
169
+ "ci_low": 0.306,
170
+ "ci_high": 0.863,
141
171
  "confidence_method": "Wilson score interval, 95%"
142
172
  }
143
173
  }
144
174
  },
145
175
  "ko": {
146
- "tp": 6,
176
+ "tp": 7,
147
177
  "fp": 0,
148
178
  "fn": 0,
149
179
  "tn": 5,
150
- "total": 11,
180
+ "total": 12,
151
181
  "accuracy": 1,
152
182
  "precision": 1,
153
183
  "recall": 1,
154
184
  "f1": 1,
155
- "n": 11,
156
- "ci_low": 0.741,
185
+ "n": 12,
186
+ "ci_low": 0.758,
157
187
  "ci_high": 1,
158
188
  "confidence_method": "Wilson score interval, 95%",
159
189
  "byDetector": {
160
190
  "burstiness": {
161
191
  "tp": 6,
162
192
  "fp": 0,
163
- "fn": 0,
193
+ "fn": 1,
164
194
  "tn": 5,
165
- "total": 11,
166
- "accuracy": 1,
195
+ "total": 12,
196
+ "accuracy": 0.917,
167
197
  "precision": 1,
168
- "recall": 1,
169
- "f1": 1,
170
- "n": 11,
171
- "ci_low": 0.741,
172
- "ci_high": 1,
198
+ "recall": 0.857,
199
+ "f1": 0.923,
200
+ "n": 12,
201
+ "ci_low": 0.646,
202
+ "ci_high": 0.985,
203
+ "confidence_method": "Wilson score interval, 95%"
204
+ },
205
+ "koDiagnostics": {
206
+ "tp": 2,
207
+ "fp": 0,
208
+ "fn": 5,
209
+ "tn": 5,
210
+ "total": 12,
211
+ "accuracy": 0.583,
212
+ "precision": 1,
213
+ "recall": 0.286,
214
+ "f1": 0.444,
215
+ "n": 12,
216
+ "ci_low": 0.32,
217
+ "ci_high": 0.807,
173
218
  "confidence_method": "Wilson score interval, 95%"
174
219
  },
175
220
  "mattr": {
176
221
  "tp": 0,
177
222
  "fp": 0,
178
- "fn": 6,
223
+ "fn": 7,
179
224
  "tn": 5,
180
- "total": 11,
181
- "accuracy": 0.455,
225
+ "total": 12,
226
+ "accuracy": 0.417,
182
227
  "precision": 0,
183
228
  "recall": 0,
184
229
  "f1": 0,
185
- "n": 11,
186
- "ci_low": 0.213,
187
- "ci_high": 0.72,
230
+ "n": 12,
231
+ "ci_low": 0.193,
232
+ "ci_high": 0.68,
188
233
  "confidence_method": "Wilson score interval, 95%"
189
234
  },
190
235
  "lexicon": {
191
- "tp": 4,
236
+ "tp": 0,
192
237
  "fp": 0,
193
- "fn": 2,
238
+ "fn": 7,
194
239
  "tn": 5,
195
- "total": 11,
196
- "accuracy": 0.818,
197
- "precision": 1,
198
- "recall": 0.667,
199
- "f1": 0.8,
200
- "n": 11,
201
- "ci_low": 0.523,
202
- "ci_high": 0.949,
240
+ "total": 12,
241
+ "accuracy": 0.417,
242
+ "precision": 0,
243
+ "recall": 0,
244
+ "f1": 0,
245
+ "n": 12,
246
+ "ci_low": 0.193,
247
+ "ci_high": 0.68,
203
248
  "confidence_method": "Wilson score interval, 95%"
204
249
  }
205
250
  }
206
251
  },
207
252
  "zh": {
208
- "tp": 3,
253
+ "tp": 4,
209
254
  "fp": 0,
210
255
  "fn": 0,
211
- "tn": 3,
212
- "total": 6,
256
+ "tn": 4,
257
+ "total": 8,
213
258
  "accuracy": 1,
214
259
  "precision": 1,
215
260
  "recall": 1,
216
261
  "f1": 1,
217
- "n": 6,
218
- "ci_low": 0.61,
262
+ "n": 8,
263
+ "ci_low": 0.676,
219
264
  "ci_high": 1,
220
265
  "confidence_method": "Wilson score interval, 95%",
221
266
  "byDetector": {
222
267
  "burstiness": {
223
268
  "tp": 3,
224
269
  "fp": 0,
225
- "fn": 0,
226
- "tn": 3,
227
- "total": 6,
228
- "accuracy": 1,
270
+ "fn": 1,
271
+ "tn": 4,
272
+ "total": 8,
273
+ "accuracy": 0.875,
229
274
  "precision": 1,
230
- "recall": 1,
231
- "f1": 1,
232
- "n": 6,
233
- "ci_low": 0.61,
234
- "ci_high": 1,
275
+ "recall": 0.75,
276
+ "f1": 0.857,
277
+ "n": 8,
278
+ "ci_low": 0.529,
279
+ "ci_high": 0.978,
235
280
  "confidence_method": "Wilson score interval, 95%"
236
281
  },
237
- "mattr": {
282
+ "koDiagnostics": {
238
283
  "tp": 0,
239
284
  "fp": 0,
240
- "fn": 3,
241
- "tn": 3,
242
- "total": 6,
285
+ "fn": 4,
286
+ "tn": 4,
287
+ "total": 8,
243
288
  "accuracy": 0.5,
244
289
  "precision": 0,
245
290
  "recall": 0,
246
291
  "f1": 0,
247
- "n": 6,
248
- "ci_low": 0.188,
249
- "ci_high": 0.812,
292
+ "n": 8,
293
+ "ci_low": 0.215,
294
+ "ci_high": 0.785,
250
295
  "confidence_method": "Wilson score interval, 95%"
251
296
  },
252
- "lexicon": {
297
+ "mattr": {
253
298
  "tp": 0,
254
299
  "fp": 0,
255
- "fn": 3,
256
- "tn": 3,
257
- "total": 6,
300
+ "fn": 4,
301
+ "tn": 4,
302
+ "total": 8,
258
303
  "accuracy": 0.5,
259
304
  "precision": 0,
260
305
  "recall": 0,
261
306
  "f1": 0,
262
- "n": 6,
263
- "ci_low": 0.188,
264
- "ci_high": 0.812,
307
+ "n": 8,
308
+ "ci_low": 0.215,
309
+ "ci_high": 0.785,
310
+ "confidence_method": "Wilson score interval, 95%"
311
+ },
312
+ "lexicon": {
313
+ "tp": 1,
314
+ "fp": 0,
315
+ "fn": 3,
316
+ "tn": 4,
317
+ "total": 8,
318
+ "accuracy": 0.625,
319
+ "precision": 1,
320
+ "recall": 0.25,
321
+ "f1": 0.4,
322
+ "n": 8,
323
+ "ci_low": 0.306,
324
+ "ci_high": 0.863,
265
325
  "confidence_method": "Wilson score interval, 95%"
266
326
  }
267
327
  }
268
328
  }
269
329
  },
330
+ "ranking": {
331
+ "note": "Signal-score ranking over the checked-in fixture corpus; diagnostic only, not a public generalization claim.",
332
+ "score": "signal_score from the strongest deterministic paragraph trigger, averaged per fixture",
333
+ "overall": {
334
+ "n": 39,
335
+ "positives": 21,
336
+ "negatives": 18,
337
+ "scoreRange": {
338
+ "min": 0,
339
+ "max": 100
340
+ },
341
+ "roc_auc": 1,
342
+ "pr_auc": 1,
343
+ "bestF1": {
344
+ "threshold": 3.846,
345
+ "tp": 21,
346
+ "fp": 0,
347
+ "fn": 0,
348
+ "tn": 18,
349
+ "total": 39,
350
+ "accuracy": 1,
351
+ "precision": 1,
352
+ "recall": 1,
353
+ "f1": 1
354
+ },
355
+ "sweep": [
356
+ {
357
+ "threshold": 0,
358
+ "tp": 21,
359
+ "fp": 18,
360
+ "fn": 0,
361
+ "tn": 0,
362
+ "total": 39,
363
+ "accuracy": 0.538,
364
+ "precision": 0.538,
365
+ "recall": 1,
366
+ "f1": 0.7
367
+ },
368
+ {
369
+ "threshold": 3.846,
370
+ "tp": 21,
371
+ "fp": 0,
372
+ "fn": 0,
373
+ "tn": 18,
374
+ "total": 39,
375
+ "accuracy": 1,
376
+ "precision": 1,
377
+ "recall": 1,
378
+ "f1": 1
379
+ },
380
+ {
381
+ "threshold": 6.772,
382
+ "tp": 20,
383
+ "fp": 0,
384
+ "fn": 1,
385
+ "tn": 18,
386
+ "total": 39,
387
+ "accuracy": 0.974,
388
+ "precision": 1,
389
+ "recall": 0.952,
390
+ "f1": 0.976
391
+ },
392
+ {
393
+ "threshold": 23.167,
394
+ "tp": 19,
395
+ "fp": 0,
396
+ "fn": 2,
397
+ "tn": 18,
398
+ "total": 39,
399
+ "accuracy": 0.949,
400
+ "precision": 1,
401
+ "recall": 0.905,
402
+ "f1": 0.95
403
+ },
404
+ {
405
+ "threshold": 67.314,
406
+ "tp": 18,
407
+ "fp": 0,
408
+ "fn": 3,
409
+ "tn": 18,
410
+ "total": 39,
411
+ "accuracy": 0.923,
412
+ "precision": 1,
413
+ "recall": 0.857,
414
+ "f1": 0.923
415
+ },
416
+ {
417
+ "threshold": 68.992,
418
+ "tp": 16,
419
+ "fp": 0,
420
+ "fn": 5,
421
+ "tn": 18,
422
+ "total": 39,
423
+ "accuracy": 0.872,
424
+ "precision": 1,
425
+ "recall": 0.762,
426
+ "f1": 0.865
427
+ },
428
+ {
429
+ "threshold": 68.994,
430
+ "tp": 15,
431
+ "fp": 0,
432
+ "fn": 6,
433
+ "tn": 18,
434
+ "total": 39,
435
+ "accuracy": 0.846,
436
+ "precision": 1,
437
+ "recall": 0.714,
438
+ "f1": 0.833
439
+ },
440
+ {
441
+ "threshold": 69.883,
442
+ "tp": 14,
443
+ "fp": 0,
444
+ "fn": 7,
445
+ "tn": 18,
446
+ "total": 39,
447
+ "accuracy": 0.821,
448
+ "precision": 1,
449
+ "recall": 0.667,
450
+ "f1": 0.8
451
+ },
452
+ {
453
+ "threshold": 72.43,
454
+ "tp": 13,
455
+ "fp": 0,
456
+ "fn": 8,
457
+ "tn": 18,
458
+ "total": 39,
459
+ "accuracy": 0.795,
460
+ "precision": 1,
461
+ "recall": 0.619,
462
+ "f1": 0.765
463
+ },
464
+ {
465
+ "threshold": 72.887,
466
+ "tp": 12,
467
+ "fp": 0,
468
+ "fn": 9,
469
+ "tn": 18,
470
+ "total": 39,
471
+ "accuracy": 0.769,
472
+ "precision": 1,
473
+ "recall": 0.571,
474
+ "f1": 0.727
475
+ },
476
+ {
477
+ "threshold": 75.545,
478
+ "tp": 11,
479
+ "fp": 0,
480
+ "fn": 10,
481
+ "tn": 18,
482
+ "total": 39,
483
+ "accuracy": 0.744,
484
+ "precision": 1,
485
+ "recall": 0.524,
486
+ "f1": 0.688
487
+ },
488
+ {
489
+ "threshold": 76.717,
490
+ "tp": 9,
491
+ "fp": 0,
492
+ "fn": 12,
493
+ "tn": 18,
494
+ "total": 39,
495
+ "accuracy": 0.692,
496
+ "precision": 1,
497
+ "recall": 0.429,
498
+ "f1": 0.6
499
+ },
500
+ {
501
+ "threshold": 78.495,
502
+ "tp": 8,
503
+ "fp": 0,
504
+ "fn": 13,
505
+ "tn": 18,
506
+ "total": 39,
507
+ "accuracy": 0.667,
508
+ "precision": 1,
509
+ "recall": 0.381,
510
+ "f1": 0.552
511
+ },
512
+ {
513
+ "threshold": 79.067,
514
+ "tp": 7,
515
+ "fp": 0,
516
+ "fn": 14,
517
+ "tn": 18,
518
+ "total": 39,
519
+ "accuracy": 0.641,
520
+ "precision": 1,
521
+ "recall": 0.333,
522
+ "f1": 0.5
523
+ },
524
+ {
525
+ "threshold": 79.272,
526
+ "tp": 6,
527
+ "fp": 0,
528
+ "fn": 15,
529
+ "tn": 18,
530
+ "total": 39,
531
+ "accuracy": 0.615,
532
+ "precision": 1,
533
+ "recall": 0.286,
534
+ "f1": 0.444
535
+ },
536
+ {
537
+ "threshold": 80.512,
538
+ "tp": 5,
539
+ "fp": 0,
540
+ "fn": 16,
541
+ "tn": 18,
542
+ "total": 39,
543
+ "accuracy": 0.59,
544
+ "precision": 1,
545
+ "recall": 0.238,
546
+ "f1": 0.385
547
+ },
548
+ {
549
+ "threshold": 84.959,
550
+ "tp": 4,
551
+ "fp": 0,
552
+ "fn": 17,
553
+ "tn": 18,
554
+ "total": 39,
555
+ "accuracy": 0.564,
556
+ "precision": 1,
557
+ "recall": 0.19,
558
+ "f1": 0.32
559
+ },
560
+ {
561
+ "threshold": 88.701,
562
+ "tp": 3,
563
+ "fp": 0,
564
+ "fn": 18,
565
+ "tn": 18,
566
+ "total": 39,
567
+ "accuracy": 0.538,
568
+ "precision": 1,
569
+ "recall": 0.143,
570
+ "f1": 0.25
571
+ },
572
+ {
573
+ "threshold": 100,
574
+ "tp": 2,
575
+ "fp": 0,
576
+ "fn": 19,
577
+ "tn": 18,
578
+ "total": 39,
579
+ "accuracy": 0.513,
580
+ "precision": 1,
581
+ "recall": 0.095,
582
+ "f1": 0.174
583
+ },
584
+ {
585
+ "threshold": 101,
586
+ "tp": 0,
587
+ "fp": 0,
588
+ "fn": 21,
589
+ "tn": 18,
590
+ "total": 39,
591
+ "accuracy": 0.462,
592
+ "precision": 0,
593
+ "recall": 0,
594
+ "f1": 0
595
+ }
596
+ ]
597
+ },
598
+ "perLanguage": {
599
+ "en": {
600
+ "n": 11,
601
+ "positives": 6,
602
+ "negatives": 5,
603
+ "scoreRange": {
604
+ "min": 0,
605
+ "max": 88.701
606
+ },
607
+ "roc_auc": 1,
608
+ "pr_auc": 1,
609
+ "bestF1": {
610
+ "threshold": 68.994,
611
+ "tp": 6,
612
+ "fp": 0,
613
+ "fn": 0,
614
+ "tn": 5,
615
+ "total": 11,
616
+ "accuracy": 1,
617
+ "precision": 1,
618
+ "recall": 1,
619
+ "f1": 1
620
+ },
621
+ "sweep": [
622
+ {
623
+ "threshold": 0,
624
+ "tp": 6,
625
+ "fp": 5,
626
+ "fn": 0,
627
+ "tn": 0,
628
+ "total": 11,
629
+ "accuracy": 0.545,
630
+ "precision": 0.545,
631
+ "recall": 1,
632
+ "f1": 0.706
633
+ },
634
+ {
635
+ "threshold": 68.994,
636
+ "tp": 6,
637
+ "fp": 0,
638
+ "fn": 0,
639
+ "tn": 5,
640
+ "total": 11,
641
+ "accuracy": 1,
642
+ "precision": 1,
643
+ "recall": 1,
644
+ "f1": 1
645
+ },
646
+ {
647
+ "threshold": 69.883,
648
+ "tp": 5,
649
+ "fp": 0,
650
+ "fn": 1,
651
+ "tn": 5,
652
+ "total": 11,
653
+ "accuracy": 0.909,
654
+ "precision": 1,
655
+ "recall": 0.833,
656
+ "f1": 0.909
657
+ },
658
+ {
659
+ "threshold": 76.717,
660
+ "tp": 4,
661
+ "fp": 0,
662
+ "fn": 2,
663
+ "tn": 5,
664
+ "total": 11,
665
+ "accuracy": 0.818,
666
+ "precision": 1,
667
+ "recall": 0.667,
668
+ "f1": 0.8
669
+ },
670
+ {
671
+ "threshold": 78.495,
672
+ "tp": 3,
673
+ "fp": 0,
674
+ "fn": 3,
675
+ "tn": 5,
676
+ "total": 11,
677
+ "accuracy": 0.727,
678
+ "precision": 1,
679
+ "recall": 0.5,
680
+ "f1": 0.667
681
+ },
682
+ {
683
+ "threshold": 80.512,
684
+ "tp": 2,
685
+ "fp": 0,
686
+ "fn": 4,
687
+ "tn": 5,
688
+ "total": 11,
689
+ "accuracy": 0.636,
690
+ "precision": 1,
691
+ "recall": 0.333,
692
+ "f1": 0.5
693
+ },
694
+ {
695
+ "threshold": 88.701,
696
+ "tp": 1,
697
+ "fp": 0,
698
+ "fn": 5,
699
+ "tn": 5,
700
+ "total": 11,
701
+ "accuracy": 0.545,
702
+ "precision": 1,
703
+ "recall": 0.167,
704
+ "f1": 0.286
705
+ },
706
+ {
707
+ "threshold": 101,
708
+ "tp": 0,
709
+ "fp": 0,
710
+ "fn": 6,
711
+ "tn": 5,
712
+ "total": 11,
713
+ "accuracy": 0.455,
714
+ "precision": 0,
715
+ "recall": 0,
716
+ "f1": 0
717
+ }
718
+ ]
719
+ },
720
+ "ja": {
721
+ "n": 8,
722
+ "positives": 4,
723
+ "negatives": 4,
724
+ "scoreRange": {
725
+ "min": 0,
726
+ "max": 100
727
+ },
728
+ "roc_auc": 1,
729
+ "pr_auc": 1,
730
+ "bestF1": {
731
+ "threshold": 23.167,
732
+ "tp": 4,
733
+ "fp": 0,
734
+ "fn": 0,
735
+ "tn": 4,
736
+ "total": 8,
737
+ "accuracy": 1,
738
+ "precision": 1,
739
+ "recall": 1,
740
+ "f1": 1
741
+ },
742
+ "sweep": [
743
+ {
744
+ "threshold": 0,
745
+ "tp": 4,
746
+ "fp": 4,
747
+ "fn": 0,
748
+ "tn": 0,
749
+ "total": 8,
750
+ "accuracy": 0.5,
751
+ "precision": 0.5,
752
+ "recall": 1,
753
+ "f1": 0.667
754
+ },
755
+ {
756
+ "threshold": 23.167,
757
+ "tp": 4,
758
+ "fp": 0,
759
+ "fn": 0,
760
+ "tn": 4,
761
+ "total": 8,
762
+ "accuracy": 1,
763
+ "precision": 1,
764
+ "recall": 1,
765
+ "f1": 1
766
+ },
767
+ {
768
+ "threshold": 79.067,
769
+ "tp": 3,
770
+ "fp": 0,
771
+ "fn": 1,
772
+ "tn": 4,
773
+ "total": 8,
774
+ "accuracy": 0.875,
775
+ "precision": 1,
776
+ "recall": 0.75,
777
+ "f1": 0.857
778
+ },
779
+ {
780
+ "threshold": 84.959,
781
+ "tp": 2,
782
+ "fp": 0,
783
+ "fn": 2,
784
+ "tn": 4,
785
+ "total": 8,
786
+ "accuracy": 0.75,
787
+ "precision": 1,
788
+ "recall": 0.5,
789
+ "f1": 0.667
790
+ },
791
+ {
792
+ "threshold": 100,
793
+ "tp": 1,
794
+ "fp": 0,
795
+ "fn": 3,
796
+ "tn": 4,
797
+ "total": 8,
798
+ "accuracy": 0.625,
799
+ "precision": 1,
800
+ "recall": 0.25,
801
+ "f1": 0.4
802
+ },
803
+ {
804
+ "threshold": 101,
805
+ "tp": 0,
806
+ "fp": 0,
807
+ "fn": 4,
808
+ "tn": 4,
809
+ "total": 8,
810
+ "accuracy": 0.5,
811
+ "precision": 0,
812
+ "recall": 0,
813
+ "f1": 0
814
+ }
815
+ ]
816
+ },
817
+ "ko": {
818
+ "n": 12,
819
+ "positives": 7,
820
+ "negatives": 5,
821
+ "scoreRange": {
822
+ "min": 0,
823
+ "max": 75.545
824
+ },
825
+ "roc_auc": 1,
826
+ "pr_auc": 1,
827
+ "bestF1": {
828
+ "threshold": 3.846,
829
+ "tp": 7,
830
+ "fp": 0,
831
+ "fn": 0,
832
+ "tn": 5,
833
+ "total": 12,
834
+ "accuracy": 1,
835
+ "precision": 1,
836
+ "recall": 1,
837
+ "f1": 1
838
+ },
839
+ "sweep": [
840
+ {
841
+ "threshold": 0,
842
+ "tp": 7,
843
+ "fp": 5,
844
+ "fn": 0,
845
+ "tn": 0,
846
+ "total": 12,
847
+ "accuracy": 0.583,
848
+ "precision": 0.583,
849
+ "recall": 1,
850
+ "f1": 0.737
851
+ },
852
+ {
853
+ "threshold": 3.846,
854
+ "tp": 7,
855
+ "fp": 0,
856
+ "fn": 0,
857
+ "tn": 5,
858
+ "total": 12,
859
+ "accuracy": 1,
860
+ "precision": 1,
861
+ "recall": 1,
862
+ "f1": 1
863
+ },
864
+ {
865
+ "threshold": 67.314,
866
+ "tp": 6,
867
+ "fp": 0,
868
+ "fn": 1,
869
+ "tn": 5,
870
+ "total": 12,
871
+ "accuracy": 0.917,
872
+ "precision": 1,
873
+ "recall": 0.857,
874
+ "f1": 0.923
875
+ },
876
+ {
877
+ "threshold": 68.992,
878
+ "tp": 4,
879
+ "fp": 0,
880
+ "fn": 3,
881
+ "tn": 5,
882
+ "total": 12,
883
+ "accuracy": 0.75,
884
+ "precision": 1,
885
+ "recall": 0.571,
886
+ "f1": 0.727
887
+ },
888
+ {
889
+ "threshold": 72.887,
890
+ "tp": 3,
891
+ "fp": 0,
892
+ "fn": 4,
893
+ "tn": 5,
894
+ "total": 12,
895
+ "accuracy": 0.667,
896
+ "precision": 1,
897
+ "recall": 0.429,
898
+ "f1": 0.6
899
+ },
900
+ {
901
+ "threshold": 75.545,
902
+ "tp": 2,
903
+ "fp": 0,
904
+ "fn": 5,
905
+ "tn": 5,
906
+ "total": 12,
907
+ "accuracy": 0.583,
908
+ "precision": 1,
909
+ "recall": 0.286,
910
+ "f1": 0.444
911
+ },
912
+ {
913
+ "threshold": 101,
914
+ "tp": 0,
915
+ "fp": 0,
916
+ "fn": 7,
917
+ "tn": 5,
918
+ "total": 12,
919
+ "accuracy": 0.417,
920
+ "precision": 0,
921
+ "recall": 0,
922
+ "f1": 0
923
+ }
924
+ ]
925
+ },
926
+ "zh": {
927
+ "n": 8,
928
+ "positives": 4,
929
+ "negatives": 4,
930
+ "scoreRange": {
931
+ "min": 0,
932
+ "max": 100
933
+ },
934
+ "roc_auc": 1,
935
+ "pr_auc": 1,
936
+ "bestF1": {
937
+ "threshold": 6.772,
938
+ "tp": 4,
939
+ "fp": 0,
940
+ "fn": 0,
941
+ "tn": 4,
942
+ "total": 8,
943
+ "accuracy": 1,
944
+ "precision": 1,
945
+ "recall": 1,
946
+ "f1": 1
947
+ },
948
+ "sweep": [
949
+ {
950
+ "threshold": 0,
951
+ "tp": 4,
952
+ "fp": 4,
953
+ "fn": 0,
954
+ "tn": 0,
955
+ "total": 8,
956
+ "accuracy": 0.5,
957
+ "precision": 0.5,
958
+ "recall": 1,
959
+ "f1": 0.667
960
+ },
961
+ {
962
+ "threshold": 6.772,
963
+ "tp": 4,
964
+ "fp": 0,
965
+ "fn": 0,
966
+ "tn": 4,
967
+ "total": 8,
968
+ "accuracy": 1,
969
+ "precision": 1,
970
+ "recall": 1,
971
+ "f1": 1
972
+ },
973
+ {
974
+ "threshold": 72.43,
975
+ "tp": 3,
976
+ "fp": 0,
977
+ "fn": 1,
978
+ "tn": 4,
979
+ "total": 8,
980
+ "accuracy": 0.875,
981
+ "precision": 1,
982
+ "recall": 0.75,
983
+ "f1": 0.857
984
+ },
985
+ {
986
+ "threshold": 79.272,
987
+ "tp": 2,
988
+ "fp": 0,
989
+ "fn": 2,
990
+ "tn": 4,
991
+ "total": 8,
992
+ "accuracy": 0.75,
993
+ "precision": 1,
994
+ "recall": 0.5,
995
+ "f1": 0.667
996
+ },
997
+ {
998
+ "threshold": 100,
999
+ "tp": 1,
1000
+ "fp": 0,
1001
+ "fn": 3,
1002
+ "tn": 4,
1003
+ "total": 8,
1004
+ "accuracy": 0.625,
1005
+ "precision": 1,
1006
+ "recall": 0.25,
1007
+ "f1": 0.4
1008
+ },
1009
+ {
1010
+ "threshold": 101,
1011
+ "tp": 0,
1012
+ "fp": 0,
1013
+ "fn": 4,
1014
+ "tn": 4,
1015
+ "total": 8,
1016
+ "accuracy": 0.5,
1017
+ "precision": 0,
1018
+ "recall": 0,
1019
+ "f1": 0
1020
+ }
1021
+ ]
1022
+ }
1023
+ }
1024
+ },
270
1025
  "fixtures": [
271
1026
  {
272
1027
  "fixture_id": "en-ai-01",
@@ -277,6 +1032,7 @@
277
1032
  "correct": true,
278
1033
  "detectors": {
279
1034
  "burstiness": true,
1035
+ "koDiagnostics": false,
280
1036
  "mattr": false,
281
1037
  "lexicon": false
282
1038
  },
@@ -286,6 +1042,10 @@
286
1042
  "mattr_band": "high",
287
1043
  "lexicon_density": 0,
288
1044
  "lexicon_hits": [],
1045
+ "ko_diagnostics_hot": false,
1046
+ "ko_diagnostics_reasons": [],
1047
+ "ko_diagnostics_strength": 0,
1048
+ "signal_score": 80.512,
289
1049
  "expected_metrics": null
290
1050
  },
291
1051
  {
@@ -297,6 +1057,7 @@
297
1057
  "correct": true,
298
1058
  "detectors": {
299
1059
  "burstiness": true,
1060
+ "koDiagnostics": false,
300
1061
  "mattr": false,
301
1062
  "lexicon": false
302
1063
  },
@@ -306,6 +1067,10 @@
306
1067
  "mattr_band": "high",
307
1068
  "lexicon_density": 0,
308
1069
  "lexicon_hits": [],
1070
+ "ko_diagnostics_hot": false,
1071
+ "ko_diagnostics_reasons": [],
1072
+ "ko_diagnostics_strength": 0,
1073
+ "signal_score": 69.883,
309
1074
  "expected_metrics": null
310
1075
  },
311
1076
  {
@@ -317,6 +1082,7 @@
317
1082
  "correct": true,
318
1083
  "detectors": {
319
1084
  "burstiness": true,
1085
+ "koDiagnostics": false,
320
1086
  "mattr": false,
321
1087
  "lexicon": false
322
1088
  },
@@ -326,6 +1092,10 @@
326
1092
  "mattr_band": "high",
327
1093
  "lexicon_density": 0,
328
1094
  "lexicon_hits": [],
1095
+ "ko_diagnostics_hot": false,
1096
+ "ko_diagnostics_reasons": [],
1097
+ "ko_diagnostics_strength": 0,
1098
+ "signal_score": 78.495,
329
1099
  "expected_metrics": null
330
1100
  },
331
1101
  {
@@ -337,6 +1107,7 @@
337
1107
  "correct": true,
338
1108
  "detectors": {
339
1109
  "burstiness": true,
1110
+ "koDiagnostics": false,
340
1111
  "mattr": false,
341
1112
  "lexicon": false
342
1113
  },
@@ -346,6 +1117,10 @@
346
1117
  "mattr_band": "high",
347
1118
  "lexicon_density": 0,
348
1119
  "lexicon_hits": [],
1120
+ "ko_diagnostics_hot": false,
1121
+ "ko_diagnostics_reasons": [],
1122
+ "ko_diagnostics_strength": 0,
1123
+ "signal_score": 76.717,
349
1124
  "expected_metrics": null
350
1125
  },
351
1126
  {
@@ -357,6 +1132,7 @@
357
1132
  "correct": true,
358
1133
  "detectors": {
359
1134
  "burstiness": true,
1135
+ "koDiagnostics": false,
360
1136
  "mattr": false,
361
1137
  "lexicon": false
362
1138
  },
@@ -366,6 +1142,10 @@
366
1142
  "mattr_band": "high",
367
1143
  "lexicon_density": 0,
368
1144
  "lexicon_hits": [],
1145
+ "ko_diagnostics_hot": false,
1146
+ "ko_diagnostics_reasons": [],
1147
+ "ko_diagnostics_strength": 0,
1148
+ "signal_score": 68.994,
369
1149
  "expected_metrics": null
370
1150
  },
371
1151
  {
@@ -377,6 +1157,7 @@
377
1157
  "correct": true,
378
1158
  "detectors": {
379
1159
  "burstiness": true,
1160
+ "koDiagnostics": false,
380
1161
  "mattr": false,
381
1162
  "lexicon": false
382
1163
  },
@@ -386,6 +1167,10 @@
386
1167
  "mattr_band": "high",
387
1168
  "lexicon_density": 0,
388
1169
  "lexicon_hits": [],
1170
+ "ko_diagnostics_hot": false,
1171
+ "ko_diagnostics_reasons": [],
1172
+ "ko_diagnostics_strength": 0,
1173
+ "signal_score": 88.701,
389
1174
  "expected_metrics": {
390
1175
  "cv_band": "low",
391
1176
  "mattr_band": "high",
@@ -402,6 +1187,7 @@
402
1187
  "correct": true,
403
1188
  "detectors": {
404
1189
  "burstiness": false,
1190
+ "koDiagnostics": false,
405
1191
  "mattr": false,
406
1192
  "lexicon": false
407
1193
  },
@@ -411,6 +1197,10 @@
411
1197
  "mattr_band": "high",
412
1198
  "lexicon_density": 0,
413
1199
  "lexicon_hits": [],
1200
+ "ko_diagnostics_hot": false,
1201
+ "ko_diagnostics_reasons": [],
1202
+ "ko_diagnostics_strength": 0,
1203
+ "signal_score": 0,
414
1204
  "expected_metrics": null
415
1205
  },
416
1206
  {
@@ -422,6 +1212,7 @@
422
1212
  "correct": true,
423
1213
  "detectors": {
424
1214
  "burstiness": false,
1215
+ "koDiagnostics": false,
425
1216
  "mattr": false,
426
1217
  "lexicon": false
427
1218
  },
@@ -431,6 +1222,10 @@
431
1222
  "mattr_band": "high",
432
1223
  "lexicon_density": 0,
433
1224
  "lexicon_hits": [],
1225
+ "ko_diagnostics_hot": false,
1226
+ "ko_diagnostics_reasons": [],
1227
+ "ko_diagnostics_strength": 0,
1228
+ "signal_score": 0,
434
1229
  "expected_metrics": null
435
1230
  },
436
1231
  {
@@ -442,6 +1237,7 @@
442
1237
  "correct": true,
443
1238
  "detectors": {
444
1239
  "burstiness": false,
1240
+ "koDiagnostics": false,
445
1241
  "mattr": false,
446
1242
  "lexicon": false
447
1243
  },
@@ -451,6 +1247,10 @@
451
1247
  "mattr_band": "high",
452
1248
  "lexicon_density": 0,
453
1249
  "lexicon_hits": [],
1250
+ "ko_diagnostics_hot": false,
1251
+ "ko_diagnostics_reasons": [],
1252
+ "ko_diagnostics_strength": 0,
1253
+ "signal_score": 0,
454
1254
  "expected_metrics": null
455
1255
  },
456
1256
  {
@@ -462,6 +1262,7 @@
462
1262
  "correct": true,
463
1263
  "detectors": {
464
1264
  "burstiness": false,
1265
+ "koDiagnostics": false,
465
1266
  "mattr": false,
466
1267
  "lexicon": false
467
1268
  },
@@ -471,6 +1272,10 @@
471
1272
  "mattr_band": "high",
472
1273
  "lexicon_density": 0,
473
1274
  "lexicon_hits": [],
1275
+ "ko_diagnostics_hot": false,
1276
+ "ko_diagnostics_reasons": [],
1277
+ "ko_diagnostics_strength": 0,
1278
+ "signal_score": 0,
474
1279
  "expected_metrics": null
475
1280
  },
476
1281
  {
@@ -482,6 +1287,7 @@
482
1287
  "correct": true,
483
1288
  "detectors": {
484
1289
  "burstiness": false,
1290
+ "koDiagnostics": false,
485
1291
  "mattr": false,
486
1292
  "lexicon": false
487
1293
  },
@@ -491,6 +1297,10 @@
491
1297
  "mattr_band": "high",
492
1298
  "lexicon_density": 0,
493
1299
  "lexicon_hits": [],
1300
+ "ko_diagnostics_hot": false,
1301
+ "ko_diagnostics_reasons": [],
1302
+ "ko_diagnostics_strength": 0,
1303
+ "signal_score": 0,
494
1304
  "expected_metrics": null
495
1305
  },
496
1306
  {
@@ -502,6 +1312,7 @@
502
1312
  "correct": true,
503
1313
  "detectors": {
504
1314
  "burstiness": true,
1315
+ "koDiagnostics": false,
505
1316
  "mattr": false,
506
1317
  "lexicon": false
507
1318
  },
@@ -511,6 +1322,10 @@
511
1322
  "mattr_band": "high",
512
1323
  "lexicon_density": 0,
513
1324
  "lexicon_hits": [],
1325
+ "ko_diagnostics_hot": false,
1326
+ "ko_diagnostics_reasons": [],
1327
+ "ko_diagnostics_strength": 0,
1328
+ "signal_score": 84.959,
514
1329
  "expected_metrics": null
515
1330
  },
516
1331
  {
@@ -522,6 +1337,7 @@
522
1337
  "correct": true,
523
1338
  "detectors": {
524
1339
  "burstiness": true,
1340
+ "koDiagnostics": false,
525
1341
  "mattr": false,
526
1342
  "lexicon": false
527
1343
  },
@@ -531,6 +1347,10 @@
531
1347
  "mattr_band": "high",
532
1348
  "lexicon_density": 0,
533
1349
  "lexicon_hits": [],
1350
+ "ko_diagnostics_hot": false,
1351
+ "ko_diagnostics_reasons": [],
1352
+ "ko_diagnostics_strength": 0,
1353
+ "signal_score": 23.167,
534
1354
  "expected_metrics": null
535
1355
  },
536
1356
  {
@@ -542,6 +1362,7 @@
542
1362
  "correct": true,
543
1363
  "detectors": {
544
1364
  "burstiness": true,
1365
+ "koDiagnostics": false,
545
1366
  "mattr": false,
546
1367
  "lexicon": false
547
1368
  },
@@ -551,6 +1372,45 @@
551
1372
  "mattr_band": "high",
552
1373
  "lexicon_density": 0,
553
1374
  "lexicon_hits": [],
1375
+ "ko_diagnostics_hot": false,
1376
+ "ko_diagnostics_reasons": [],
1377
+ "ko_diagnostics_strength": 0,
1378
+ "signal_score": 79.067,
1379
+ "expected_metrics": null
1380
+ },
1381
+ {
1382
+ "fixture_id": "ja-ai-04-lexicon",
1383
+ "lang": "ja",
1384
+ "class": "ai",
1385
+ "expected_hot": true,
1386
+ "predicted_hot": true,
1387
+ "correct": true,
1388
+ "detectors": {
1389
+ "burstiness": false,
1390
+ "koDiagnostics": false,
1391
+ "mattr": false,
1392
+ "lexicon": true
1393
+ },
1394
+ "cv": 0.56,
1395
+ "cv_band": "high",
1396
+ "mattr": 0.803,
1397
+ "mattr_band": "high",
1398
+ "lexicon_density": 63.83,
1399
+ "lexicon_hits": [
1400
+ "まとめると",
1401
+ "結論として",
1402
+ "重要なのは",
1403
+ "デジタル時代において",
1404
+ "~が求められます",
1405
+ "新たな可能性を切り開く",
1406
+ "今後ますます重要になる",
1407
+ "多様なニーズに応える",
1408
+ "理解を深める"
1409
+ ],
1410
+ "ko_diagnostics_hot": false,
1411
+ "ko_diagnostics_reasons": [],
1412
+ "ko_diagnostics_strength": 0,
1413
+ "signal_score": 100,
554
1414
  "expected_metrics": null
555
1415
  },
556
1416
  {
@@ -562,6 +1422,7 @@
562
1422
  "correct": true,
563
1423
  "detectors": {
564
1424
  "burstiness": false,
1425
+ "koDiagnostics": false,
565
1426
  "mattr": false,
566
1427
  "lexicon": false
567
1428
  },
@@ -571,6 +1432,10 @@
571
1432
  "mattr_band": "high",
572
1433
  "lexicon_density": 0,
573
1434
  "lexicon_hits": [],
1435
+ "ko_diagnostics_hot": false,
1436
+ "ko_diagnostics_reasons": [],
1437
+ "ko_diagnostics_strength": 0,
1438
+ "signal_score": 0,
574
1439
  "expected_metrics": null
575
1440
  },
576
1441
  {
@@ -582,6 +1447,7 @@
582
1447
  "correct": true,
583
1448
  "detectors": {
584
1449
  "burstiness": false,
1450
+ "koDiagnostics": false,
585
1451
  "mattr": false,
586
1452
  "lexicon": false
587
1453
  },
@@ -591,6 +1457,10 @@
591
1457
  "mattr_band": "high",
592
1458
  "lexicon_density": 0,
593
1459
  "lexicon_hits": [],
1460
+ "ko_diagnostics_hot": false,
1461
+ "ko_diagnostics_reasons": [],
1462
+ "ko_diagnostics_strength": 0,
1463
+ "signal_score": 0,
594
1464
  "expected_metrics": null
595
1465
  },
596
1466
  {
@@ -602,6 +1472,7 @@
602
1472
  "correct": true,
603
1473
  "detectors": {
604
1474
  "burstiness": false,
1475
+ "koDiagnostics": false,
605
1476
  "mattr": false,
606
1477
  "lexicon": false
607
1478
  },
@@ -611,6 +1482,35 @@
611
1482
  "mattr_band": "high",
612
1483
  "lexicon_density": 0,
613
1484
  "lexicon_hits": [],
1485
+ "ko_diagnostics_hot": false,
1486
+ "ko_diagnostics_reasons": [],
1487
+ "ko_diagnostics_strength": 0,
1488
+ "signal_score": 0,
1489
+ "expected_metrics": null
1490
+ },
1491
+ {
1492
+ "fixture_id": "ja-nat-04-lexicon-cold",
1493
+ "lang": "ja",
1494
+ "class": "natural",
1495
+ "expected_hot": false,
1496
+ "predicted_hot": false,
1497
+ "correct": true,
1498
+ "detectors": {
1499
+ "burstiness": false,
1500
+ "koDiagnostics": false,
1501
+ "mattr": false,
1502
+ "lexicon": false
1503
+ },
1504
+ "cv": 0.396,
1505
+ "cv_band": "mid",
1506
+ "mattr": 0.752,
1507
+ "mattr_band": "high",
1508
+ "lexicon_density": 0,
1509
+ "lexicon_hits": [],
1510
+ "ko_diagnostics_hot": false,
1511
+ "ko_diagnostics_reasons": [],
1512
+ "ko_diagnostics_strength": 0,
1513
+ "signal_score": 0,
614
1514
  "expected_metrics": null
615
1515
  },
616
1516
  {
@@ -622,8 +1522,9 @@
622
1522
  "correct": true,
623
1523
  "detectors": {
624
1524
  "burstiness": true,
1525
+ "koDiagnostics": false,
625
1526
  "mattr": false,
626
- "lexicon": true
1527
+ "lexicon": false
627
1528
  },
628
1529
  "cv": 0.093,
629
1530
  "cv_band": "low",
@@ -633,6 +1534,10 @@
633
1534
  "lexicon_hits": [
634
1535
  "추세"
635
1536
  ],
1537
+ "ko_diagnostics_hot": false,
1538
+ "ko_diagnostics_reasons": [],
1539
+ "ko_diagnostics_strength": 0,
1540
+ "signal_score": 68.992,
636
1541
  "expected_metrics": null
637
1542
  },
638
1543
  {
@@ -644,17 +1549,20 @@
644
1549
  "correct": true,
645
1550
  "detectors": {
646
1551
  "burstiness": true,
1552
+ "koDiagnostics": false,
647
1553
  "mattr": false,
648
- "lexicon": true
1554
+ "lexicon": false
649
1555
  },
650
1556
  "cv": 0.073,
651
1557
  "cv_band": "low",
652
1558
  "mattr": 0.82,
653
1559
  "mattr_band": "high",
654
- "lexicon_density": 19.608,
655
- "lexicon_hits": [
656
- "환경"
657
- ],
1560
+ "lexicon_density": 0,
1561
+ "lexicon_hits": [],
1562
+ "ko_diagnostics_hot": false,
1563
+ "ko_diagnostics_reasons": [],
1564
+ "ko_diagnostics_strength": 0,
1565
+ "signal_score": 75.545,
658
1566
  "expected_metrics": null
659
1567
  },
660
1568
  {
@@ -666,8 +1574,9 @@
666
1574
  "correct": true,
667
1575
  "detectors": {
668
1576
  "burstiness": true,
1577
+ "koDiagnostics": false,
669
1578
  "mattr": false,
670
- "lexicon": true
1579
+ "lexicon": false
671
1580
  },
672
1581
  "cv": 0.073,
673
1582
  "cv_band": "low",
@@ -677,6 +1586,10 @@
677
1586
  "lexicon_hits": [
678
1587
  "추세"
679
1588
  ],
1589
+ "ko_diagnostics_hot": false,
1590
+ "ko_diagnostics_reasons": [],
1591
+ "ko_diagnostics_strength": 0,
1592
+ "signal_score": 75.545,
680
1593
  "expected_metrics": null
681
1594
  },
682
1595
  {
@@ -688,6 +1601,7 @@
688
1601
  "correct": true,
689
1602
  "detectors": {
690
1603
  "burstiness": true,
1604
+ "koDiagnostics": false,
691
1605
  "mattr": false,
692
1606
  "lexicon": false
693
1607
  },
@@ -697,6 +1611,10 @@
697
1611
  "mattr_band": "high",
698
1612
  "lexicon_density": 0,
699
1613
  "lexicon_hits": [],
1614
+ "ko_diagnostics_hot": false,
1615
+ "ko_diagnostics_reasons": [],
1616
+ "ko_diagnostics_strength": 0,
1617
+ "signal_score": 67.314,
700
1618
  "expected_metrics": null
701
1619
  },
702
1620
  {
@@ -708,6 +1626,7 @@
708
1626
  "correct": true,
709
1627
  "detectors": {
710
1628
  "burstiness": true,
1629
+ "koDiagnostics": true,
711
1630
  "mattr": false,
712
1631
  "lexicon": false
713
1632
  },
@@ -717,6 +1636,14 @@
717
1636
  "mattr_band": "high",
718
1637
  "lexicon_density": 0,
719
1638
  "lexicon_hits": [],
1639
+ "ko_diagnostics_hot": true,
1640
+ "ko_diagnostics_reasons": [
1641
+ "regular-eojeol-length",
1642
+ "low-comma-density",
1643
+ "low-suffix-class-diversity"
1644
+ ],
1645
+ "ko_diagnostics_strength": 0.285,
1646
+ "signal_score": 67.314,
720
1647
  "expected_metrics": null
721
1648
  },
722
1649
  {
@@ -728,17 +1655,20 @@
728
1655
  "correct": true,
729
1656
  "detectors": {
730
1657
  "burstiness": true,
1658
+ "koDiagnostics": false,
731
1659
  "mattr": false,
732
- "lexicon": true
1660
+ "lexicon": false
733
1661
  },
734
1662
  "cv": 0.081,
735
1663
  "cv_band": "low",
736
1664
  "mattr": 1,
737
1665
  "mattr_band": "high",
738
- "lexicon_density": 21.739,
739
- "lexicon_hits": [
740
- "흐름"
741
- ],
1666
+ "lexicon_density": 0,
1667
+ "lexicon_hits": [],
1668
+ "ko_diagnostics_hot": false,
1669
+ "ko_diagnostics_reasons": [],
1670
+ "ko_diagnostics_strength": 0,
1671
+ "signal_score": 72.887,
742
1672
  "expected_metrics": {
743
1673
  "cv_band": "low",
744
1674
  "mattr_band": "high",
@@ -746,6 +1676,35 @@
746
1676
  "lexicon_density_max": 80
747
1677
  }
748
1678
  },
1679
+ {
1680
+ "fixture_id": "ko-ai-07-ko-diagnostic",
1681
+ "lang": "ko",
1682
+ "class": "ai",
1683
+ "expected_hot": true,
1684
+ "predicted_hot": true,
1685
+ "correct": true,
1686
+ "detectors": {
1687
+ "burstiness": false,
1688
+ "koDiagnostics": true,
1689
+ "mattr": false,
1690
+ "lexicon": false
1691
+ },
1692
+ "cv": 0.417,
1693
+ "cv_band": "mid",
1694
+ "mattr": 0.955,
1695
+ "mattr_band": "high",
1696
+ "lexicon_density": 0,
1697
+ "lexicon_hits": [],
1698
+ "ko_diagnostics_hot": true,
1699
+ "ko_diagnostics_reasons": [
1700
+ "regular-eojeol-length",
1701
+ "low-comma-density",
1702
+ "low-suffix-class-diversity"
1703
+ ],
1704
+ "ko_diagnostics_strength": 3.846,
1705
+ "signal_score": 3.846,
1706
+ "expected_metrics": null
1707
+ },
749
1708
  {
750
1709
  "fixture_id": "ko-nat-01",
751
1710
  "lang": "ko",
@@ -755,6 +1714,7 @@
755
1714
  "correct": true,
756
1715
  "detectors": {
757
1716
  "burstiness": false,
1717
+ "koDiagnostics": false,
758
1718
  "mattr": false,
759
1719
  "lexicon": false
760
1720
  },
@@ -764,6 +1724,10 @@
764
1724
  "mattr_band": "high",
765
1725
  "lexicon_density": 0,
766
1726
  "lexicon_hits": [],
1727
+ "ko_diagnostics_hot": false,
1728
+ "ko_diagnostics_reasons": [],
1729
+ "ko_diagnostics_strength": 0,
1730
+ "signal_score": 0,
767
1731
  "expected_metrics": null
768
1732
  },
769
1733
  {
@@ -775,6 +1739,7 @@
775
1739
  "correct": true,
776
1740
  "detectors": {
777
1741
  "burstiness": false,
1742
+ "koDiagnostics": false,
778
1743
  "mattr": false,
779
1744
  "lexicon": false
780
1745
  },
@@ -784,6 +1749,10 @@
784
1749
  "mattr_band": "high",
785
1750
  "lexicon_density": 0,
786
1751
  "lexicon_hits": [],
1752
+ "ko_diagnostics_hot": false,
1753
+ "ko_diagnostics_reasons": [],
1754
+ "ko_diagnostics_strength": 0,
1755
+ "signal_score": 0,
787
1756
  "expected_metrics": null
788
1757
  },
789
1758
  {
@@ -795,6 +1764,7 @@
795
1764
  "correct": true,
796
1765
  "detectors": {
797
1766
  "burstiness": false,
1767
+ "koDiagnostics": false,
798
1768
  "mattr": false,
799
1769
  "lexicon": false
800
1770
  },
@@ -804,6 +1774,10 @@
804
1774
  "mattr_band": "high",
805
1775
  "lexicon_density": 0,
806
1776
  "lexicon_hits": [],
1777
+ "ko_diagnostics_hot": false,
1778
+ "ko_diagnostics_reasons": [],
1779
+ "ko_diagnostics_strength": 0,
1780
+ "signal_score": 0,
807
1781
  "expected_metrics": null
808
1782
  },
809
1783
  {
@@ -815,6 +1789,7 @@
815
1789
  "correct": true,
816
1790
  "detectors": {
817
1791
  "burstiness": false,
1792
+ "koDiagnostics": false,
818
1793
  "mattr": false,
819
1794
  "lexicon": false
820
1795
  },
@@ -824,6 +1799,10 @@
824
1799
  "mattr_band": "high",
825
1800
  "lexicon_density": 0,
826
1801
  "lexicon_hits": [],
1802
+ "ko_diagnostics_hot": false,
1803
+ "ko_diagnostics_reasons": [],
1804
+ "ko_diagnostics_strength": 0,
1805
+ "signal_score": 0,
827
1806
  "expected_metrics": null
828
1807
  },
829
1808
  {
@@ -835,6 +1814,7 @@
835
1814
  "correct": true,
836
1815
  "detectors": {
837
1816
  "burstiness": false,
1817
+ "koDiagnostics": false,
838
1818
  "mattr": false,
839
1819
  "lexicon": false
840
1820
  },
@@ -844,6 +1824,10 @@
844
1824
  "mattr_band": "high",
845
1825
  "lexicon_density": 0,
846
1826
  "lexicon_hits": [],
1827
+ "ko_diagnostics_hot": false,
1828
+ "ko_diagnostics_reasons": [],
1829
+ "ko_diagnostics_strength": 0,
1830
+ "signal_score": 0,
847
1831
  "expected_metrics": null
848
1832
  },
849
1833
  {
@@ -855,6 +1839,7 @@
855
1839
  "correct": true,
856
1840
  "detectors": {
857
1841
  "burstiness": true,
1842
+ "koDiagnostics": false,
858
1843
  "mattr": false,
859
1844
  "lexicon": false
860
1845
  },
@@ -864,6 +1849,10 @@
864
1849
  "mattr_band": "high",
865
1850
  "lexicon_density": 0,
866
1851
  "lexicon_hits": [],
1852
+ "ko_diagnostics_hot": false,
1853
+ "ko_diagnostics_reasons": [],
1854
+ "ko_diagnostics_strength": 0,
1855
+ "signal_score": 79.272,
867
1856
  "expected_metrics": null
868
1857
  },
869
1858
  {
@@ -875,6 +1864,7 @@
875
1864
  "correct": true,
876
1865
  "detectors": {
877
1866
  "burstiness": true,
1867
+ "koDiagnostics": false,
878
1868
  "mattr": false,
879
1869
  "lexicon": false
880
1870
  },
@@ -884,6 +1874,10 @@
884
1874
  "mattr_band": "high",
885
1875
  "lexicon_density": 0,
886
1876
  "lexicon_hits": [],
1877
+ "ko_diagnostics_hot": false,
1878
+ "ko_diagnostics_reasons": [],
1879
+ "ko_diagnostics_strength": 0,
1880
+ "signal_score": 6.772,
887
1881
  "expected_metrics": null
888
1882
  },
889
1883
  {
@@ -895,6 +1889,7 @@
895
1889
  "correct": true,
896
1890
  "detectors": {
897
1891
  "burstiness": true,
1892
+ "koDiagnostics": false,
898
1893
  "mattr": false,
899
1894
  "lexicon": false
900
1895
  },
@@ -904,6 +1899,46 @@
904
1899
  "mattr_band": "high",
905
1900
  "lexicon_density": 0,
906
1901
  "lexicon_hits": [],
1902
+ "ko_diagnostics_hot": false,
1903
+ "ko_diagnostics_reasons": [],
1904
+ "ko_diagnostics_strength": 0,
1905
+ "signal_score": 72.43,
1906
+ "expected_metrics": null
1907
+ },
1908
+ {
1909
+ "fixture_id": "zh-ai-04-lexicon",
1910
+ "lang": "zh",
1911
+ "class": "ai",
1912
+ "expected_hot": true,
1913
+ "predicted_hot": true,
1914
+ "correct": true,
1915
+ "detectors": {
1916
+ "burstiness": false,
1917
+ "koDiagnostics": false,
1918
+ "mattr": false,
1919
+ "lexicon": true
1920
+ },
1921
+ "cv": 0.748,
1922
+ "cv_band": "high",
1923
+ "mattr": 0.894,
1924
+ "mattr_band": "high",
1925
+ "lexicon_density": 92.593,
1926
+ "lexicon_hits": [
1927
+ "总而言之",
1928
+ "总的来说",
1929
+ "值得注意的是",
1930
+ "在数字时代",
1931
+ "从长远来看",
1932
+ "不仅~而且",
1933
+ "为~提供了新的可能",
1934
+ "优化整体流程",
1935
+ "形成良性循环",
1936
+ "为未来奠定基础"
1937
+ ],
1938
+ "ko_diagnostics_hot": false,
1939
+ "ko_diagnostics_reasons": [],
1940
+ "ko_diagnostics_strength": 0,
1941
+ "signal_score": 100,
907
1942
  "expected_metrics": null
908
1943
  },
909
1944
  {
@@ -915,6 +1950,7 @@
915
1950
  "correct": true,
916
1951
  "detectors": {
917
1952
  "burstiness": false,
1953
+ "koDiagnostics": false,
918
1954
  "mattr": false,
919
1955
  "lexicon": false
920
1956
  },
@@ -924,6 +1960,10 @@
924
1960
  "mattr_band": "high",
925
1961
  "lexicon_density": 0,
926
1962
  "lexicon_hits": [],
1963
+ "ko_diagnostics_hot": false,
1964
+ "ko_diagnostics_reasons": [],
1965
+ "ko_diagnostics_strength": 0,
1966
+ "signal_score": 0,
927
1967
  "expected_metrics": null
928
1968
  },
929
1969
  {
@@ -935,6 +1975,7 @@
935
1975
  "correct": true,
936
1976
  "detectors": {
937
1977
  "burstiness": false,
1978
+ "koDiagnostics": false,
938
1979
  "mattr": false,
939
1980
  "lexicon": false
940
1981
  },
@@ -944,6 +1985,10 @@
944
1985
  "mattr_band": "high",
945
1986
  "lexicon_density": 0,
946
1987
  "lexicon_hits": [],
1988
+ "ko_diagnostics_hot": false,
1989
+ "ko_diagnostics_reasons": [],
1990
+ "ko_diagnostics_strength": 0,
1991
+ "signal_score": 0,
947
1992
  "expected_metrics": null
948
1993
  },
949
1994
  {
@@ -955,6 +2000,7 @@
955
2000
  "correct": true,
956
2001
  "detectors": {
957
2002
  "burstiness": false,
2003
+ "koDiagnostics": false,
958
2004
  "mattr": false,
959
2005
  "lexicon": false
960
2006
  },
@@ -964,6 +2010,35 @@
964
2010
  "mattr_band": "high",
965
2011
  "lexicon_density": 0,
966
2012
  "lexicon_hits": [],
2013
+ "ko_diagnostics_hot": false,
2014
+ "ko_diagnostics_reasons": [],
2015
+ "ko_diagnostics_strength": 0,
2016
+ "signal_score": 0,
2017
+ "expected_metrics": null
2018
+ },
2019
+ {
2020
+ "fixture_id": "zh-nat-04-lexicon-cold",
2021
+ "lang": "zh",
2022
+ "class": "natural",
2023
+ "expected_hot": false,
2024
+ "predicted_hot": false,
2025
+ "correct": true,
2026
+ "detectors": {
2027
+ "burstiness": false,
2028
+ "koDiagnostics": false,
2029
+ "mattr": false,
2030
+ "lexicon": false
2031
+ },
2032
+ "cv": 0.387,
2033
+ "cv_band": "mid",
2034
+ "mattr": 0.931,
2035
+ "mattr_band": "high",
2036
+ "lexicon_density": 0,
2037
+ "lexicon_hits": [],
2038
+ "ko_diagnostics_hot": false,
2039
+ "ko_diagnostics_reasons": [],
2040
+ "ko_diagnostics_strength": 0,
2041
+ "signal_score": 0,
967
2042
  "expected_metrics": null
968
2043
  }
969
2044
  ],
@@ -973,16 +2048,16 @@
973
2048
  "natural": 5
974
2049
  },
975
2050
  "ja": {
976
- "ai": 3,
977
- "natural": 3
2051
+ "ai": 4,
2052
+ "natural": 4
978
2053
  },
979
2054
  "ko": {
980
- "ai": 6,
2055
+ "ai": 7,
981
2056
  "natural": 5
982
2057
  },
983
2058
  "zh": {
984
- "ai": 3,
985
- "natural": 3
2059
+ "ai": 4,
2060
+ "natural": 4
986
2061
  }
987
2062
  }
988
2063
  }