Commit 4fccbf7
fix(i18n): 否定识别的作用域 —— 屏蔽词、后置锚点、小句边界、日语丁宁体
来自一轮主动扫描 + Codex 两条 P2,五处都逐条对 origin/main 复核过、每处都做了
删除变异验证。全是「把意思读**反**」而不是「读不出来」的那类:
1. `個別難過 / 區別開心` 判成 neutral —— 相邻否定把 `別` 当否定词,可它同时是
十来个常用词的后半。启发式那侧早有一张屏蔽表,现在两侧共用(新 helper
`_strip_negation_blocklist`)。
2. `難過哭不出來@0.9` 判成 neutral —— 整标签兜底把 `難過哭` 整段模糊匹配成一个
写错的情绪词。后置否定只能否定**紧挨着它**的那个词(`_marker_attaches_to_head`)。
3. `sino que estoy feliz / estoy muy bueno y feliz` 整句情绪被吞 —— 宽回看那张表
的拉丁词条靠补空格伪造词边界,只挡住一侧,`no ` 于是命中 `sino ` / `bueno `。
拉丁词条改走真词边界,CJK 词条留在子串匹配(那里没有词边界可找)。
4. `não triste, feliz / not sad but happy` 判成 neutral —— 三条「整标签」分支都把
标签当一句读。标点和转折连词是同一个边界,`_last_clause_cut` 统一收口;
后置那条仍用更精确的 `_alias_after`(`我笑不起來,其實真的開心不起來` 带逗号
但确实该否)。
5. `興奮していません` 判成 happy —— 逐匹配要求后缀紧贴别名,只收结尾的 `ません`
对不上中间的 `してい`。丁宁体复合形态整条收;动词 te 形一条没加,因为别名表里
没有能接它的词。
新增 62 条用例(每条都跑两种 confidence —— 端点传的是高置信度那条路径),
11 处变异逐个验红。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent 65e57d1 commit 4fccbf7
3 files changed
Lines changed: 246 additions & 7 deletions
File tree
- config/prompts
- main_routers/system_router
- tests/unit
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
755 | 755 | | |
756 | 756 | | |
757 | 757 | | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
758 | 763 | | |
759 | | - | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
760 | 768 | | |
761 | 769 | | |
762 | 770 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
194 | 207 | | |
195 | 208 | | |
196 | 209 | | |
| |||
203 | 216 | | |
204 | 217 | | |
205 | 218 | | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
206 | 246 | | |
207 | 247 | | |
208 | | - | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
209 | 262 | | |
210 | 263 | | |
211 | 264 | | |
| |||
216 | 269 | | |
217 | 270 | | |
218 | 271 | | |
219 | | - | |
| 272 | + | |
220 | 273 | | |
221 | 274 | | |
222 | 275 | | |
| |||
243 | 296 | | |
244 | 297 | | |
245 | 298 | | |
246 | | - | |
| 299 | + | |
247 | 300 | | |
248 | 301 | | |
249 | 302 | | |
| |||
285 | 338 | | |
286 | 339 | | |
287 | 340 | | |
288 | | - | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
289 | 349 | | |
290 | 350 | | |
291 | 351 | | |
| |||
315 | 375 | | |
316 | 376 | | |
317 | 377 | | |
318 | | - | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
319 | 383 | | |
320 | 384 | | |
321 | 385 | | |
| |||
456 | 520 | | |
457 | 521 | | |
458 | 522 | | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
459 | 540 | | |
460 | 541 | | |
461 | 542 | | |
| |||
517 | 598 | | |
518 | 599 | | |
519 | 600 | | |
520 | | - | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
521 | 604 | | |
522 | 605 | | |
523 | 606 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1034 | 1034 | | |
1035 | 1035 | | |
1036 | 1036 | | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
| 1048 | + | |
| 1049 | + | |
| 1050 | + | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
| 1080 | + | |
| 1081 | + | |
| 1082 | + | |
| 1083 | + | |
| 1084 | + | |
| 1085 | + | |
| 1086 | + | |
| 1087 | + | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
| 1097 | + | |
| 1098 | + | |
| 1099 | + | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
0 commit comments