feat(canonical-lexicon): Ford + BMW fix'leri
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
BMW (~%81): elektronik terimleri → elektrik (audio/navigasyon/elektronik/ iletisim/multimedya/cruise), "ışık"→aydınlatma; servis/doküman sayfaları → junk (teknik doküman/servis ve onarım/value parts). Ford (~%74): trans varyantları speed/spd→sanziman, motor varyantları diesel/dohc→motor, gövde→ panjur. 23/23 test. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -147,6 +147,22 @@ describe("mapToCanonical", () => {
|
||||
expect(mapToCanonical("ortu").slug).toBe("ic-doseme");
|
||||
});
|
||||
|
||||
it("maps BMW electronics + lighting and Ford trans/engine variants", () => {
|
||||
expect(mapToCanonical("audio, navigasyon, elektronik sistem").slug).toBe("elektrik");
|
||||
expect(mapToCanonical("iletisim sistemi").slug).toBe("elektrik");
|
||||
expect(mapToCanonical("distance systems, cruise control").slug).toBe("elektrik");
|
||||
expect(mapToCanonical("isik verme").slug).toBe("aydinlatma");
|
||||
expect(mapToCanonical("tvmt6 - 6 speed manual trans").slug).toBe("sanziman");
|
||||
expect(mapToCanonical("t20dd0j - 2.0l diesel panther").slug).toBe("motor");
|
||||
expect(mapToCanonical("govde ve boya").slug).toBe("panjur-panel");
|
||||
});
|
||||
|
||||
it("flags BMW service/doc pseudo-pages as junk", () => {
|
||||
expect(classifyNode("teknik dokuman")).toBe("junk");
|
||||
expect(classifyNode("servis ve onarim kapsamlari")).toBe("junk");
|
||||
expect(classifyNode("value parts&packages servisi ve onarim")).toBe("junk");
|
||||
});
|
||||
|
||||
it("returns null when no keyword matches", () => {
|
||||
expect(mapToCanonical("romork duzenegi cikarilabilir").slug).toBeNull();
|
||||
// genuinely generic Mercedes names stay unmapped (better than wrong bucket)
|
||||
|
||||
@@ -61,7 +61,10 @@ export const LEXICON: Record<string, Bucket> = {
|
||||
"motor silindir krank piston segman biyel supap subap eksantrik karter kulbutor engine".split(
|
||||
" ",
|
||||
),
|
||||
weak: "blok manifold conta yatak kompresyon bolmesi kam turbo mechanical".split(" "),
|
||||
// "diesel"/"dohc" for Ford engine variants ("2.0L Diesel Panther", "Zetec 1.6 DOHC EFI").
|
||||
weak: "blok manifold conta yatak kompresyon bolmesi kam turbo mechanical diesel dohc".split(
|
||||
" ",
|
||||
),
|
||||
},
|
||||
"yakit-sistemi": {
|
||||
// 'depo' is weak, not strong: "deposu" (reservoir) recurs in fren-hidrolik-
|
||||
@@ -107,7 +110,8 @@ export const LEXICON: Record<string, Bucket> = {
|
||||
// "sanzuman"/"disli" are Opel spelling variants (şanzıman / dişli).
|
||||
strong: "sanziman sanzuman vites diferansiyel kardan aktarim transmission gearbox".split(" "),
|
||||
// 3-char stems (mil…) don't prefix-match their inflections, so list them.
|
||||
weak: "flans kavrama saft mil mili miller gear disli propeller tahrik".split(" "),
|
||||
// "speed"/"spd" for Ford trans variants ("6 Speed Manual Trans", "8 Spd Auto").
|
||||
weak: "flans kavrama saft mil mili miller gear disli propeller tahrik speed spd".split(" "),
|
||||
},
|
||||
suspansiyon: {
|
||||
// "suspensiyon" Opel variant; "dingil" = axle.
|
||||
@@ -122,14 +126,17 @@ export const LEXICON: Record<string, Bucket> = {
|
||||
},
|
||||
elektrik: {
|
||||
strong:
|
||||
"elektrik alternator jenerator mars sarj role sigorta sensor korna bcm ecu beyin modul aku akusu enstruman gosterge electric electrical electricity".split(
|
||||
"elektrik alternator jenerator mars sarj role sigorta sensor korna bcm ecu beyin modul aku akusu enstruman gosterge electric electrical electricity audio navigasyon elektronik iletisim multimedya".split(
|
||||
" ",
|
||||
),
|
||||
weak: "kablo sinyal silecek tesisat salter salteri verici vericisi".split(" "),
|
||||
weak: "kablo sinyal silecek tesisat salter salteri verici vericisi cruise".split(" "),
|
||||
},
|
||||
aydinlatma: {
|
||||
// far/farlar/fari — 3-char "far" only matches exactly; add inflections.
|
||||
strong: "aydinlatma far farlar fari stop lamba ampul sis reflektor lighting lamp".split(" "),
|
||||
// "isik" = BMW "Işık verme" (lighting).
|
||||
strong: "aydinlatma isik far farlar fari stop lamba ampul sis reflektor lighting lamp".split(
|
||||
" ",
|
||||
),
|
||||
weak: "sinyal".split(" "),
|
||||
},
|
||||
"dis-kaporta": {
|
||||
@@ -146,7 +153,7 @@ export const LEXICON: Record<string, Bucket> = {
|
||||
strong: "panjur kaput kaporta davlumbaz marspiyel camurluk karoser karo cerceve".split(" "),
|
||||
// "sasi"/"body"/"chassis" weak so system words (electrical…) win in phrases
|
||||
// like "BODY ELECTRICAL"; "süspansiyon, şasi" also stays a clean süspansiyon.
|
||||
weak: "panel tavan sac canak direk sasi body chassis roof wall underpan".split(" "),
|
||||
weak: "panel tavan sac canak direk sasi govde body chassis roof wall underpan".split(" "),
|
||||
},
|
||||
"ic-doseme": {
|
||||
strong: "koltuk doseme sirtlik arkalik guneslik minder torpido konsol seat seats trim".split(
|
||||
@@ -219,8 +226,11 @@ const DOC_JUNK = new Set([
|
||||
"kriko alet",
|
||||
"preliminary remarks",
|
||||
]);
|
||||
// Catalog index/meta pages (Mercedes "SA LİSTESİ", "…resim açıklama sayfası").
|
||||
const DOC_PAGE = /resim aciklama|^sa listesi$|genel bakis tablosu/;
|
||||
// Catalog index / service / doc pseudo-pages — not part categories. Mercedes
|
||||
// "SA LİSTESİ"/"…resim açıklama sayfası"; BMW "Teknik doküman", "Servis ve
|
||||
// onarım kapsamları", "Value Parts&Packages servisi", "Parça Onarım Servisi".
|
||||
const DOC_PAGE =
|
||||
/resim aciklama|^sa listesi$|genel bakis tablosu|teknik dokuman|servis ve onarim|onarim servisi|onarim kapsam|value parts/;
|
||||
|
||||
export type NodeKind = "part" | "structural" | "junk";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user