Dlaczego wyszukiwanie „ucet” powinno znajdować także „účet”

Szybkie pisanie z pominięciem znaku diakrytycznego, o którym wiesz, że powinien tam być, jest normalne. Dobre wyszukiwanie dokumentów nie powinno Cię za to karać — oto proste wyjaśnienie działania tej funkcji z rzeczywistymi przykładami w czterech językach.

Problem: jeden znak, dwa sposoby wpisania słowa

W wielu językach akcent, haczyk, kółko lub ligatura zmieniają brzmienie litery: á, é, ě, š, č, ř, ž, ů po czesku, ä, ö, ü, ß po niemiecku, é, è, ç po francusku, á, é, í, ó, ú, ñ po hiszpańsku. Na klawiaturze telefonu ustawionej na angielski lub podczas szybkiego pisania z pamięci łatwo pominąć znak: wpisać ucet gdy w dokumencie widnieje účet, czeskie słowo oznaczające fakturę lub konto. Dla wyszukiwarki porównującej znaki dokładnie są to dwa różne ciągi, a wyszukanie jednego nie znajdzie dokumentu zawierającego tylko drugi.

Rozwiązanie: ujednolicanie znaków diakrytycznych

Pomysł jest prosty: przed porównaniem dwóch fragmentów tekstu usuń z obu znaki diakrytyczne — akcenty, haczki i cedyle — i porównaj to, co pozostanie. Ujednolicanie to techniczne określenie sprowadzenia litery ze znakiem, takiej jak á do jej podstawowej postaci, a. Jeśli robisz to konsekwentnie ze słowami wpisywanymi i zapisanymi w indeksie, to ucet i účet stają się tym samym wyszukiwanym hasłem, niezależnie od wpisanej wersji i od tego, która rzeczywiście widnieje na stronie. To ugruntowana technika wyszukiwania tekstowego, a nie cecha jednej aplikacji; ta sama zasada pozwala wyszukiwarce znaleźć „cafe”, gdy strona zawiera „café”.

Ujednolicanie ma cenę, którą warto jasno nazwać: traktuje dwie pisownie jako równoważne przy dopasowywaniu, więc czasem dopasuje też zupełnie inne słowo, które po usunięciu znaków wygląda tak samo. Wyraźny przykład daje czeski: smlouva (umowa) i smlouvá (negocjuje, forma czasownika) to różne słowa, a nie to samo słowo z dodanym akcentem — ale po usunięciu znaków diakrytycznych z obu wyszukanie jednego może również pokazać dokument zawierający drugie. Na taki kompromis pozwala ujednolicanie w zamian za niepomijanie rzeczywistych dopasowań z powodu opuszczonego akcentu.

Drugi problem: niemiecki tworzy słowa przez ich łączenie

Niemiecki (a w mniejszym stopniu także pozostałe omawiane języki) tworzy długie wyrazy złożone, łącząc krótsze bezpośrednio, bez spacji. Wypowiedzenie umowy najmu to Mietvertragskündigung, złożone ze słów Mietvertrag (umowa najmu) i Kündigung (wypowiedzenie), połączonych spójką „s”. Indeks wyszukiwania dopasowujący tylko całe słowa nie znajdzie Vertrag wewnątrz Mietvertragskündigung, choć właśnie umowy szukasz.

Współdziałają tu dwie techniki, ważne z różnych powodów. Pierwsza to dopasowanie początku słowa: wpisanie Vertrag dopasowuje również każde słowo zaczynające się od Vertrag, dlatego znajduje Vertragsunterlagen (dokumentacja umowy) samo w sobie. Nie pomaga to jednak w przypadku Mietvertragskündigung, ponieważ Vertrag nie jest początkiem tego słowa — Miet nim jest. W takim przypadku wyszukiwanie stosuje dopasowanie fragmentu ciągu, ale dopiero gdy dopasowanie początku niczego nie znajdzie. To ten drugi krok pozwala odnaleźć Vertrag wewnątrz wyrazu złożonego w dowolnym miejscu, nie tylko na początku.

Przykłady w czterech językach

  • Czeski: wpisanie ucet znajduje účet (faktura lub konto); wpisanie vyuctovani znajduje vyúčtování (rozliczenie za media).
  • Niemiecki: wpisanie Vertrag znajduje Vertragsunterlagen; wpisanie Grundstuck znajduje Grundstück (działka).
  • Francuski: wpisanie deces znajduje décès (zgon, jak w akcie zgonu); wpisanie francais znajduje français.
  • Hiszpański: wpisanie camion znajduje camión (ciężarówka); wpisanie informacion znajduje información.

Ta sama zasada działa też w drugą stronę: jeśli wpiszesz znak diakrytyczny poprawnie, wyszukiwanie nadal znajdzie dokument, w którym rozpoznano słowo bez tego znaku. Może się to zdarzyć przy niewyraźnym skanie lub gdy rozpoznawanie pominie mały znak nad literą.

Nie chodzi tylko o sposób pisania

Dotąd mówiliśmy o różnicy między tym, co wpisujesz, a tym, co zawiera dokument. Jest też druga, mniej widoczna różnica, o której warto wiedzieć: samo rozpoznawanie tekstu nie zawsze poprawnie odczytuje akcenty. Niewyraźny skan, zdjęcie w niskiej rozdzielczości lub nietypowy krój pisma mogą utrudnić odróżnienie małego znaku nad literą od plamki czy cienia. Rozpoznawanie może go pominąć, mimo że człowiek nie miałby problemu z odczytaniem tej samej strony. Wtedy zapisany tekst dokumentu nie zawiera akcentu, niezależnie od staranności wpisywania zapytania. Ujednolicanie znaków pomaga również tutaj, w tę samą stronę: jeśli wyszukiwarka ujednolica także porównywany tekst, poprawnie wpisane účet nadal znajduje stronę, której tekst został rozpoznany jako ucet. Innymi słowy, ujednolicanie chroni Cię przed błędami po obu stronach pola wyszukiwania, a nie tylko przed Twoją pomyłką przy pisaniu.

Jak stosuje to wyszukiwanie Pocket Aurora Papers

Wyszukiwanie offline w Pocket Aurora Papers ujednolica znaki diakrytyczne przy dopasowywaniu i działa w dwóch etapach: najpierw dopasowuje początki słów, a dopiero gdy niczego nie znajdzie, przechodzi do dopasowania fragmentu ciągu. Dzięki temu można znaleźć również słowo ukryte w środku niemieckiego wyrazu złożonego. Oba etapy są testowane na korpusie wyszukiwania obejmującym wszystkie pięć języków rozpoznawania: angielski, czeski, niemiecki, francuski i hiszpański. Działa w całości na urządzeniu, podobnie jak etap rozpoznawania tekstu, który w ogóle umożliwia przeszukiwanie zeskanowanej strony. Interfejs aplikacji jest na razie wyłącznie angielski; pozostałe cztery języki rozumie wyszukiwanie, a nie menu i przyciski.

Chcesz wypróbować?

Napiszemy, gdy będzie co wypróbować, a przed premierą zapytamy, co jest dla Ciebie najważniejsze.

Dołącz do listy oczekujących