Upload app.py
Browse files
app.py
CHANGED
|
@@ -1580,6 +1580,17 @@ def apply_lex_patches():
|
|
| 1580 |
replaced = True
|
| 1581 |
break
|
| 1582 |
if replaced: break
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1583 |
ops["add"] += 1
|
| 1584 |
LEX_PATCH_LOG.append((patch_name, op, es, ni, "ok",
|
| 1585 |
f"lectura verbal alternativa (principal {old_pos} preservado)"))
|
|
@@ -1606,19 +1617,6 @@ def apply_lex_patches():
|
|
| 1606 |
|
| 1607 |
elif op == "override":
|
| 1608 |
prev = ES2NI.get(es_l)
|
| 1609 |
-
# v145: si el override es N/ADJ y la previa era V, preservar
|
| 1610 |
-
# la verbal en ES2NI_VERB. Esto rescata la lectura verbal de
|
| 1611 |
-
# plurales como "compras" (V "tú compras" + N "las compras")
|
| 1612 |
-
# cuando el parche reasigna el plural como sustantivo. Solo se
|
| 1613 |
-
# aplica si ES2NI_VERB no tiene ya algo (no pisamos alternativa
|
| 1614 |
-
# verbal previa).
|
| 1615 |
-
old_pos = ES2NI_POS.get(es_l, "")
|
| 1616 |
-
if (prev is not None and pos in ("N", "ADJ") and old_pos == "V"
|
| 1617 |
-
and es_l not in ES2NI_VERB):
|
| 1618 |
-
ES2NI_VERB[es_l] = prev
|
| 1619 |
-
# log adicional sobre la preservación
|
| 1620 |
-
LEX_PATCH_LOG.append((patch_name, op, es, ni, "ok",
|
| 1621 |
-
f"verbal preservada en ES2NI_VERB: {prev[0]}"))
|
| 1622 |
ES2NI[es_l] = (ni, pid)
|
| 1623 |
NI2ES[ni_l] = (es, pid)
|
| 1624 |
if pos: ES2NI_POS[es_l] = pos
|
|
@@ -2026,7 +2024,7 @@ _register_ipfv_3s_reverse()
|
|
| 2026 |
# Coste medido: ~6 s al arranque (3 ejecuciones: 5.5, 5.5, 7.4 s). Una
|
| 2027 |
# sola pasada al final, no afecta el bucle interno de override. Corrige
|
| 2028 |
# ~328K entradas NI2ES (verificado en lex actual con 129 parches).
|
| 2029 |
-
VERSION_MARKER = "
|
| 2030 |
try:
|
| 2031 |
print(f"[Neoíbero translator] versión cargada: {VERSION_MARKER}", flush=True)
|
| 2032 |
print(f"[Neoíbero translator] léxico activo: {CSV_BI}", flush=True)
|
|
|
|
| 1580 |
replaced = True
|
| 1581 |
break
|
| 1582 |
if replaced: break
|
| 1583 |
+
else:
|
| 1584 |
+
# v146: el NI verbal alternativo es completamente
|
| 1585 |
+
# nuevo en NI2ES. Sin esto, la inversa NI→ES queda
|
| 1586 |
+
# huérfana (p.ej. "tú kamsistok-ke-śe" no traduciría
|
| 1587 |
+
# a "tú cuentas" tras el parche 172). Registramos la
|
| 1588 |
+
# inversa solo cuando no existía → no rompe ningún
|
| 1589 |
+
# mapping previo. Lo análogo al not ni_already de
|
| 1590 |
+
# la rama v144 de arriba.
|
| 1591 |
+
NI2ES[ni_l] = (es, pid)
|
| 1592 |
+
if " " in ni_l and ni_l not in NIPHRASE2ES:
|
| 1593 |
+
NIPHRASE2ES[ni_l] = (es, pid)
|
| 1594 |
ops["add"] += 1
|
| 1595 |
LEX_PATCH_LOG.append((patch_name, op, es, ni, "ok",
|
| 1596 |
f"lectura verbal alternativa (principal {old_pos} preservado)"))
|
|
|
|
| 1617 |
|
| 1618 |
elif op == "override":
|
| 1619 |
prev = ES2NI.get(es_l)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1620 |
ES2NI[es_l] = (ni, pid)
|
| 1621 |
NI2ES[ni_l] = (es, pid)
|
| 1622 |
if pos: ES2NI_POS[es_l] = pos
|
|
|
|
| 2024 |
# Coste medido: ~6 s al arranque (3 ejecuciones: 5.5, 5.5, 7.4 s). Una
|
| 2025 |
# sola pasada al final, no afecta el bucle interno de override. Corrige
|
| 2026 |
# ~328K entradas NI2ES (verificado en lex actual con 129 parches).
|
| 2027 |
+
VERSION_MARKER = "v146_2026_05_20_add_verb_registra_inversa"
|
| 2028 |
try:
|
| 2029 |
print(f"[Neoíbero translator] versión cargada: {VERSION_MARKER}", flush=True)
|
| 2030 |
print(f"[Neoíbero translator] léxico activo: {CSV_BI}", flush=True)
|