Katalog części nie rozumie języka warsztatu, ponieważ mechanik i katalog używają dwóch różnych słowników, a nie dwóch wariantów tego samego. "Kogut" i "warning beacon" to nie literówka ani odmiana — to dwie niezależne nazwy tego samego przedmiotu, między którymi nie ma żadnego wspólnego rdzenia. Wyszukiwarka pełnotekstowa dopasowuje słowa, nie znaczenia, więc z definicji nie może zmostkować tej różnicy. Potrzebny jest słownik pojęć, nie lepsze dopasowanie liter.
Na czym dokładnie polega problem
Katalog części producenta maszyn budowlanych to zbiór nazw nadanych przez inżynierów, zwykle po angielsku, w konwencji, która zmienia się rzadko. Warsztat mówi własnym językiem, ukształtowanym przez to, jak część wygląda, gdzie siedzi i co robi.
| Warsztat mówi | W katalogu widnieje |
|---|---|
| kogut | lampa ostrzegawcza; po angielsku zwykle "warning beacon" |
| wiskoza | sprzęgło wiskotyczne wentylatora; "viscous fan clutch" albo "fan drive" |
| zwolnica | przekładnia końcowa; w katalogach Caterpillar w formie zbliżonej do DRIVE GP-FINAL |
| orbitrol | jednostka sterująca układu kierowniczego; "steering control unit" |
| konik | pozycja w zespole ramy lub wysięgnika, często bez własnej nazwy |
| gruszka | zależy od maszyny — zbiornik albo akumulator hydrauliczny; wymaga dopytania |
Warto zwrócić uwagę na samą konwencję zapisu: w katalogach Caterpillar nazwa zwykle zaczyna się od rzeczownika, a dookreślenie idzie po nim (VALVE GP-MAIN CONTROL zamiast "main control valve"). Kto tego nie wie, wpisuje nazwę w naturalnej kolejności i nie trafia nawet wtedy, gdy zna angielski termin.
Trzy obserwacje wynikają z tej tabeli i każda ma inne konsekwencje techniczne.
Po pierwsze — brak nakładania się znaków. "Kogut" i "beacon" nie mają wspólnego rdzenia. Fuzzy matching, korekta literówek, algorytm Levenshteina, stemming — wszystkie te mechanizmy zakładają, że użytkownik napisał coś podobnego do docelowego słowa. Tu podobieństwa nie ma po prostu wcale.
Po drugie — tłumaczenie nie wystarcza. Przetłumaczenie zapytania z polskiego na angielski daje "rooster" albo "cock". To poprawne tłumaczenie i całkowicie bezużyteczna nazwa katalogowa. Warstwa tłumaczenia rozwiązuje problem języka, a problemem jest rejestr — potoczny wobec inżynieryjnego — który występuje również wewnątrz jednego języka. Anglojęzyczny mechanik też powie "beacon light" albo "strobe", niekoniecznie tak, jak brzmi nazwa w katalogu.
Po trzecie — część nazw potocznych nie odnosi się do jednej pozycji. "Konik" bywa nazwą elementu, który w katalogu w ogóle nie występuje jako osobna, nazwana część — jest pozycją na rysunku większego zespołu. Żadne mapowanie słowo-do-słowa nie zwróci tu numeru, bo po drugiej stronie nie ma pojedynczego słowa do zmapowania. Jest rysunek i numer pozycji na nim.
Dlaczego to nie jest problem lepszej wyszukiwarki
Warto rozdzielić dwa mechanizmy, które w rozmowach mieszają się nagminnie.
Wyszukiwanie pełnotekstowe (BM25, wyszukiwanie pełnotekstowe w bazie relacyjnej, silniki indeksujące pokroju Elasticsearch) rankinguje dokumenty według tego, jak rzadkie i jak częste są w nich tokeny z zapytania. Jest znakomite, gdy użytkownik zna słownictwo katalogu. Wpisz "filtr oleju silnika" do katalogu, który ma pozycję "FILTER GP-ENGINE OIL" opisaną również po polsku, a trafisz na właściwą pozycję.
Wyszukiwanie semantyczne (embeddingi, wektory) mierzy bliskość znaczeń w przestrzeni wyuczonej na tekstach ogólnych. Radzi sobie z parafrazą — "pompa wody" i "water pump" wylądują blisko siebie. Ale slang warsztatowy jest z definicji niszowy i lokalny. W ogólnym korpusie słowo "wiskoza" występuje przede wszystkim w kontekście włókna, a nie sprzęgła wentylatora — i w tę stronę ciągnie je model.
Innymi słowy: pierwszy mechanizm nie zna słowa, drugi zna złe znaczenie tego słowa. To nie jest problem, który da się rozwiązać przekręceniem gałki "trafność wyszukiwania".
Jak radzą sobie z tym ludzie
Doświadczony pracownik działu części robi trzy rzeczy, zwykle nieświadomie.
Utrzymuje prywatny słownik — mentalny, czasem w zeszycie albo pliku tekstowym: kogut to beacon, wiskoza to viscous fan, gruszka to zależy, dopytaj. Ten słownik buduje się latami i jest niewymienialny; odejście takiej osoby z firmy to realna utrata zdolności operacyjnej.
Nawiguje po strukturze, nie po nazwie. Zamiast szukać "zwolnicy" w wyszukiwarce, otwiera układ jazdy w drzewie katalogu i przegląda rysunki, aż zobaczy właściwy zespół. To działa, bo taksonomia katalogu jest stabilna i logiczna, nawet gdy nazwy pojedynczych pozycji są nieoczywiste.
Wie też, że struktura bywa różna u różnych producentów, i że to zmienia miejsce, w którym trzeba szukać. W katalogach Komatsu silnik ma zwykle osobny katalog, a wejściem do niego jest numer silnika, nie numer maszyny. W katalogach Caterpillar jest inaczej: części silnika leżą w katalogu samej maszyny, w sekcjach opisujących silnik (ENGINE AR, CYLINDER HEAD GP). Ktoś, kto przeniesie nawyk z jednej marki na drugą, szuka w złym miejscu i wraca z przekonaniem, że "nie ma tej części".
Domyka rozmową i rysunkiem. "Ten okrągły przed chłodnicą?" — pokazuje rysunek złożeniowy, pyta o numer pozycji, potem weryfikuje przez zakres numerów seryjnych maszyny. Ostatni krok jest kluczowy: ta sama nazwana część w tym samym modelu bywa dostępna w kilku wariantach rozdzielonych właśnie zakresem numerów seryjnych. Maszyny budowlane mają znormalizowany numer identyfikacyjny (PIN wg ISO 10261) i to on — a nie sam model — rozstrzyga takie przypadki.
Sedno: człowiek nie rozwiązuje problemu przez lepsze dopasowanie słów. Rozwiązuje go przez tłumaczenie pojęcia na strukturę katalogu, a potem przez weryfikację wizualną.
Jak może to rozwiązać oprogramowanie
Skoro człowiek nie robi tego dopasowaniem tekstu, oprogramowanie też nie powinno. Trzy podejścia dają się realnie zaimplementować i najlepiej działają razem.
Słownik po stronie dokumentu. Zamiast przepisywać zapytanie użytkownika, dopisuje się potoczne określenia do indeksowanego opisu sekcji katalogu. Sekcja z przekładnią końcową dostaje w indeksie dodatkowe określenia: zwolnica, przekładnia końcowa, piasta napędowa. Zapytanie zostaje nietknięte, a trafia w cel. Zaletą jest przewidywalność — dopisany alias działa deterministycznie, można go sprawdzić i wycofać. Wadą: ktoś musi ten słownik zbudować i utrzymać, a slang jest regionalny.
Nawigacja po taksonomii zamiast wyszukiwania. Model językowy dostaje listę układów i zespołów danej maszyny i wybiera właściwy na podstawie opisu funkcji, a dopiero potem szuka wewnątrz wybranej sekcji. To odtworzenie strategii doświadczonego pracownika. Działa również dla części, których użytkownik nie potrafi nazwać w ogóle, bo opisuje objaw: "cieknie spod tego czegoś, co napędza wentylator".
Rysunek jako ostatni krok. Gdy wiadomo, w której sekcji siedzi część, ale nie wiadomo która to dokładnie pozycja — bo na jednym rysunku bywa kilka podobnych uszczelnień różniących się wyłącznie miejscem montażu — najuczciwszą odpowiedzią nie jest zgadnięty numer. Jest rysunek z pytaniem "którą pozycję wskazujesz". Zgadnięty numer katalogowy jest gorszy niż brak odpowiedzi, bo kosztuje zwrot, przestój i zaufanie.
Mayster składa te trzy warstwy w jedno: opis potoczny idzie do asystenta, który nawiguje po taksonomii katalogów maszyn Komatsu, Caterpillar i Volvo, a w odpowiedzi pokazuje to, co katalog faktycznie zawiera — znalezione pozycje wraz z rysunkiem sekcji i zakresem numerów seryjnych, o ile producent je podał. System jest zbudowany tak, żeby numer katalogowy pochodził z danych katalogowych, a nie był generowany przez model. Gdy opis pasuje do kilku wariantów albo dane nie wystarczają do wskazania jednej pozycji, asystent dopytuje — o numer seryjny, o wariant, o punkt na rysunku — zamiast zgadywać.
Warto przy okazji pamiętać o formatach zapisu numerów, bo różnią się między markami i bywają źródłem nieporozumień: Komatsu zapisuje numery z myślnikami (600-185-3100), Caterpillar spotyka się i z myślnikiem, i bez (1R-0658, 1R0658), a Volvo używa prefiksu literowego (VOE17533661). To ta sama pozycja, zapisana inaczej — i dla wyszukiwarki tekstowej trzy różne ciągi znaków.
Czego żadna warstwa wyszukiwania nie naprawi
Uczciwe postawienie granicy jest tu ważniejsze niż lista możliwości.
Braków w danych źródłowych. Katalogi producentów nie są kompletne, a braki nie są rzadkie. W danych, na których pracujemy, część pozycji Komatsu w ogóle nie ma numeru katalogowego — to nie promil, tylko wyraźny procent zbioru. Katalog Caterpillara po ponownym zaciągnięciu ze źródła urósł niemal dwukrotnie względem tego, co mieliśmy wcześniej, co pokazuje, jak łatwo pomylić "nie ma tej części" z "nie mamy jeszcze tej części". Jeśli producent nie nadał pozycji osobnej nazwy albo katalog nie zawiera dla niej numeru, żadna wyszukiwarka go nie wymyśli — a jeśli wymyśli, to znaczy, że halucynuje. Numer katalogowy jest weryfikowalny co do znaku i albo istnieje w katalogu, albo nie.
Wariantów rozstrzyganych numerem seryjnym. Ten sam model maszyny w dwóch zakresach numerów seryjnych może mieć inne warianty tej samej części. Bez numeru z tabliczki znamionowej odpowiedź jest w najlepszym razie prawdopodobna. Dobre narzędzie o ten numer dopyta, zamiast wybierać wariant za użytkownika.
Pozycji rozróżnianych wyłącznie miejscem na rysunku. Kilka o-ringów w jednej sekcji, identyczna nazwa, różne numery katalogowe. Tekst tego nie rozstrzygnie — ani wpisany przez człowieka, ani wygenerowany przez model. Rozstrzyga wskazanie na rysunku.
Rozjazdu między dokumentacją a maszyną w polu. Maszyna po latach eksploatacji bywa przebudowana, część została kiedyś zastąpiona zamiennikiem, a osprzęt pochodzi z innego wariantu fabrycznego. Katalog opisuje konfigurację z dokumentacji, nie to, co faktycznie stoi na placu. Ostatecznym rozstrzygnięciem zostaje oględziny i numer odczytany z części.
Wspólny mianownik: różnica między "nie wiem" a zmyśloną odpowiedzią jest w tej branży różnicą między poprawnie obsłużonym zapytaniem a zwrotem, przestojem maszyny i telefonem od klienta. Narzędzie, które nie potrafi powiedzieć "nie wiem, wskaż na rysunku", przerzuca koszt swojej niepewności na klienta — a to koszt, który wraca do sprzedawcy części.
Najczęstsze pytania
Dlaczego wyszukiwarka nie znajduje części, kiedy wpiszę "kogut"?
Bo w katalogu ta sama rzecz nazywa się inaczej — po angielsku zwykle "warning beacon" — a między słowem potocznym a nazwą katalogową nie ma żadnego wspólnego rdzenia. Mechanizmy takie jak fuzzy matching, korekta literówek, algorytm Levenshteina czy stemming zakładają, że wpisano coś podobnego do docelowego słowa, a tutaj podobieństwa nie ma w ogóle. To nie jest kwestia ustawień wyszukiwarki, tylko dwóch niezależnych słowników — potocznego i inżynieryjnego.
Czy przetłumaczenie zapytania na angielski rozwiąże problem?
Nie w przypadku slangu warsztatowego. "Kogut" przetłumaczony poprawnie daje "rooster" albo "cock" — czyli nazwę bezużyteczną w katalogu części. Warstwa tłumaczenia rozwiązuje problem języka, a rzeczywistym problemem jest rejestr: potoczny wobec inżynieryjnego, który występuje również wewnątrz jednego języka. Anglojęzyczny mechanik również powie "beacon light" albo "strobe", niekoniecznie tak, jak brzmi nazwa katalogowa.
Dlaczego wyszukiwanie semantyczne nie radzi sobie ze slangiem warsztatowym?
Embeddingi mierzą bliskość znaczeń w przestrzeni wyuczonej na tekstach ogólnych, więc dobrze radzą sobie z parafrazą — "pompa wody" i "water pump" wylądują blisko siebie. Slang warsztatowy jest jednak niszowy i lokalny. W ogólnym korpusie "wiskoza" pojawia się przede wszystkim w kontekście włókna, a nie sprzęgła wentylatora, i model ciągnie właśnie w tę stronę. Wyszukiwanie pełnotekstowe nie zna tego słowa, a semantyczne zna jego złe znaczenie.
Dlaczego nazwy w katalogu Caterpillar wyglądają jak VALVE GP-MAIN CONTROL?
To konwencja zapisu: nazwa zwykle zaczyna się od rzeczownika, a dookreślenie idzie po nim. Kto tej konwencji nie zna, wpisuje nazwę w naturalnej kolejności — "main control valve" — i nie trafia nawet wtedy, gdy zna angielski termin. Warto o tym pamiętać, przeglądając wyniki, bo nazwa katalogowa może wyglądać obco mimo że opisuje dokładnie tę część, której się szuka.
Gdzie szukać części silnika — w katalogu maszyny czy w osobnym katalogu?
To zależy od marki. W katalogach Komatsu silnik ma zwykle osobny katalog, a wejściem do niego jest numer silnika, nie numer maszyny. W katalogach Caterpillar części silnika leżą w katalogu samej maszyny, w sekcjach opisujących silnik, takich jak ENGINE AR czy CYLINDER HEAD GP. Kto przeniesie nawyk z jednej marki na drugą, szuka w złym miejscu i wraca z przekonaniem, że "nie ma tej części".
Dlaczego asystent pyta o numer seryjny zamiast od razu podać numer części?
Ponieważ ten sam model maszyny w dwóch zakresach numerów seryjnych może mieć różne warianty tej samej części. Bez numeru z tabliczki znamionowej odpowiedź jest w najlepszym razie prawdopodobna, a zgadnięty numer katalogowy kosztuje zwrot, przestój i zaufanie. Dopytanie o numer seryjny, wariant albo punkt na rysunku jest uczciwszą reakcją niż wybieranie wariantu za użytkownika.
