waxal2026-backup / phase2_corrected /code /hybrid_lid_eval.py
Pricile's picture
compactage apres suppression luganda
6eed659
Raw
History Blame Contribute Delete
1.39 kB
import json, jiwer
ROWS=[json.loads(l) for l in open("/root/devhard/devhard_linsna.jsonl")]
H=json.load(open("/root/devhard_allhyps.json",encoding="utf-8"))
L=json.load(open("/root/lid_devhard.json"))
pred=L["pred"]
def comb(R,Hy):
pr=[(r,h) for r,h in zip(R,Hy) if r.strip()]
r=[x for x,_ in pr]; h=[x for _,x in pr]
w=jiwer.wer(r,h); c=jiwer.cer(r,h); return w,c,0.5*w+0.5*c
R=[r["text"] for r in ROWS]
def route(linm,snam,use_lid=True):
out=[]
for r in ROWS:
lg = (pred[r["id"]] if use_lid else r["lang"])
if lg=="lug": lg="lin" # lug absent du test -> repli lin (toutes les confusions viennent du lin)
out.append(H[snam][r["id"]] if lg=="sna" else H[linm][r["id"]])
return out
print("=== avec LID REEL (99.21%) ===")
for linm,snam,tag in [("lin_s4_best","sna_ps_best","HYBRIDE NEUF"),
("joint_cont2_best","sna_ps_best","cont2+sna_ps"),
("mms1b_lin_best","sna_ps_best","ANCIEN routeur (LB 0.7347)")]:
w,c,m=comb(R,route(linm,snam))
wo,co,mo=comb(R,route(linm,snam,use_lid=False))
print(f" {m:.4f} {tag:28s} lin<-{linm:18s} (oracle {mo:.4f}, cout LID {m-mo:+.4f})")
w,c,m=comb(R,[H["joint_cont_best"][r["id"]] for r in ROWS]); print(f" {m:.4f} joint_cont (LB 0.7449)")
w,c,m=comb(R,[H["joint_cont2_best"][r["id"]] for r in ROWS]); print(f" {m:.4f} joint_cont2 (LB 0.7408)")