feat(canonical-lexicon): Faz 3 emex yüksek-frekans terimleri
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled

emex'in en sık eşleşmeyen adları (100-250x, tüm araçlarda paylaşılan):
stabilizer/absorber→suspansiyon; esanjor/kondansator/ventilator/kompresor/
sogutucu/uflec→sogutma; hali/halilar→ic-doseme; kilit/yagmurluk→dis-kaporta;
stepne→jant-lastik. Jenerik (BOYALAR/İZOLATÖRLER/Montaj) bırakıldı. 25/25.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-05 13:22:06 +03:00
parent 50a92c78cc
commit ee7925c960
2 changed files with 24 additions and 8 deletions

View File

@@ -175,6 +175,19 @@ describe("mapToCanonical", () => {
expect(mapToCanonical("yapistiricilar / onarim kitleri").slug).toBe("yaglar-sivilar");
});
it("maps emex high-frequency terms", () => {
expect(mapToCanonical("stabilizer / baglanti elemanlari").slug).toBe("suspansiyon");
expect(mapToCanonical("sok absorber").slug).toBe("suspansiyon");
expect(mapToCanonical("isi esanjoru, ic isitma").slug).toBe("sogutma");
expect(mapToCanonical("kondansator").slug).toBe("sogutma");
expect(mapToCanonical("ventilator").slug).toBe("sogutma");
expect(mapToCanonical("uflec / parcalari").slug).toBe("sogutma");
expect(mapToCanonical("yer halilari ve halilar").slug).toBe("ic-doseme");
expect(mapToCanonical("dis kilitler").slug).toBe("dis-kaporta");
expect(mapToCanonical("stepne donanimlari").slug).toBe("jant-lastik");
expect(mapToCanonical("yagmurluklar").slug).toBe("dis-kaporta");
});
it("returns null when no keyword matches", () => {
expect(mapToCanonical("romork duzenegi cikarilabilir").slug).toBeNull();
// genuinely generic Mercedes names stay unmapped (better than wrong bucket)

View File

@@ -84,13 +84,15 @@ export const LEXICON: Record<string, Bucket> = {
weak: "zincir gergi kayis rulman".split(" "),
},
sogutma: {
// emex adds: esanjor (ısı eşanjörü), kondansator, ventilator, kompresor
// (AC), sogutucu; "uflec" (blower) weak.
strong:
"radyator termostat klima kalorifer intercooler evaporator devirdaim fan cooling heater ventilation".split(
"radyator termostat klima kalorifer intercooler evaporator devirdaim fan cooling heater ventilation ventilator esanjor kondansator kompresor sogutucu".split(
" ",
),
// "hava" weak so "Hava Sistemi" → soğutma (user decision) but "hava filtresi"
// (filtre strong) / "hava yastığı" (yastigi strong, direksiyon) still win.
weak: "sogutma isitici hortum hava heating radiator".split(" "),
weak: "sogutma isitici hortum hava heating radiator uflec".split(" "),
},
filtreler: {
strong: "filtre filter".split(" "),
@@ -115,9 +117,10 @@ export const LEXICON: Record<string, Bucket> = {
weak: "flans kavrama saft mil mili miller gear disli propeller tahrik speed spd".split(" "),
},
suspansiyon: {
// "suspensiyon" Opel variant; "dingil" = axle; "stabilizator" = anti-roll bar.
// "suspensiyon" Opel variant; "dingil"=axle; "stabilizator/stabilizer"=anti-
// roll bar; "absorber"=(şok) absorber (emex).
strong:
"suspansiyon suspensiyon amortisor salincak rotil helezon viraj mafsal suspension stabilizator".split(
"suspansiyon suspensiyon amortisor salincak rotil helezon viraj mafsal suspension stabilizator stabilizer absorber".split(
" ",
),
// "takoz/takozu" = strut/engine mount (motor takozu still wins via "motor").
@@ -147,7 +150,7 @@ export const LEXICON: Record<string, Bucket> = {
},
"dis-kaporta": {
strong: "ayna".split(" "),
weak: "cam camlar camlari fitil krikosu kapi kapak kapaklar mentese cikma bagaj camlik mirror glass door window sunroof exterior locking".split(
weak: "cam camlar camlari fitil krikosu kapi kapak kapaklar mentese cikma bagaj camlik mirror glass door window sunroof exterior locking kilit yagmurluk".split(
" ",
),
},
@@ -165,10 +168,10 @@ export const LEXICON: Record<string, Bucket> = {
// "koltugu" = seat with possessive suffix (koltuk→koltuğu, k→ğ mutation
// breaks the prefix match, so list it explicitly).
strong:
"koltuk koltugu doseme sirtlik arkalik guneslik minder torpido konsol konfor seat seats trim restraint occupant".split(
"koltuk koltugu doseme sirtlik arkalik guneslik minder torpido konsol konfor hali seat seats trim restraint occupant".split(
" ",
),
weak: "kaplama zemin baslik kemer emniyet panel bardaklik dayama dolgu floor covering interior ortu".split(
weak: "kaplama zemin baslik kemer emniyet panel bardaklik dayama dolgu floor covering interior ortu halilar".split(
" ",
),
},
@@ -180,7 +183,7 @@ export const LEXICON: Record<string, Bucket> = {
),
},
"jant-lastik": {
strong: "jant lastik tekerlek gobek wheel tyre tire".split(" "),
strong: "jant lastik tekerlek gobek stepne wheel tyre tire".split(" "),
weak: "hub".split(" "),
},
aksesuar: {