Fablo: polskie znaki, literówki i błędy w zapytaniach
2010-10-18
Drugi screencast z serii o Fablo. Tym razem pokazujemy jak wyszukiwanie toleruje brak polskich znaków, literówki, przestawione znaki i inne błędy w zapytaniach. Do obejrzenia w YouTube, lub tutaj:
Można też ściągnąć plik z filmem w dobrej jakości.
No brawo!
Ale jak to jest zrobione? Podejrzewam jakiś prosty i skuteczny trick, który nie wymaga znania polskiej gramatyki i odmiany. Strzelam: każde słowo jest konwertowane na wektor cech. Cechy dotyczą np. zawierania się i sąsiedztwa liter i ich definicja jest najpilniej strzeżoną tajemnicą Fablo ;-). Dalej, pomiędzy dwoma słowami (wektorami cech) zdefiniowana jest funkcja podobieństwa. Na koniec wystarczy wybrać produkty z największą liczbą słów najbardziej podobnych słowom w zapytaniu.
Daleko jestem?
qertoip: no, niedaleko jesteś, ale nie wyszukiwarki, tylko jednego z prototypów sprzed około roku. Zbudowaliśmy taki kod, który potrafił porównać dwa słowa, porównując dowolne sekwencje dowolnie "rozstrzelonych" znaków (tzn. np. ala i alka były podobne, bo miały wspólne sekwencje "ala", "al" i "aa", tylko rozstrzelone). BTW, informatykom polecam zastanowienie się jak zrobić żeby taki kod działał szybko :-)
Niestety, okazało się, że "cukier", cukierki" i "cukinie" są zbyt podobne do siebie i takie techniki nie są zbyt praktyczne do klasycznego wyszukiwania.
Teraz używamy sporego zestawu technik, bo żaden pojedynczy "trick" nie wystarcza.
BTW, każda sensowna wyszukiwarka buduje wektory cech. We wszystkich metodach machine learning zresztą istota tkwi na ogół nie w algorytmie uczącym się, tylko w tym jak się tworzy cechy.