Strona główna / Artykuły / Niech dokładne terminy i znaczenie współpracują przy wyszukiwaniu.

Niech dokładne terminy i znaczenie współpracują przy wyszukiwaniu.

Połącz listy kandydatów leksykalnych i semantycznych, nie traktując niekompatybilnych wyników wyszukiwania jako wymiennych.

572 słów

Rozwijający program, który szuka kodu błędu ERR_CACHE_STALE, oczekuje właśnie tego kodu. Inny rozwijający może opisać ten sam problem jako „aplikacja ciągle pokazuje dane z wczoraj”. Skuteczne wyszukiwanie informacji powinno radzić sobie z oboma typami zapytań.

Wyszukiwanie leksykalne jest przydatne, gdy dokładna pisownia zawiera istotne informacje. Wyszukiwanie semantyczne może łączyć różne opisy tej samej koncepcji. Połączenie obu metod daje każdej z nich szansę na znalezienie dowodów, których brakuje drugiej.

Decyzja projektowa określa, w jaki sposób ma nastąpić to połączenie.

Zapewnij każdemu narzędziu dostęp do korpusu

Załóżmy, że wyszukiwanie semantyczne znajdzie dwadzieścia kandydatów, a następnie algorytm leksykalny je uporządkuje. Może to poprawić ich kolejność, ale dokładne dopasowanie spoza tych dwudziestu pozostanie niewidoczne.

Aby objąć szerszy zakres kandydatów, należy zastosować obie metody wyszukiwania w odpowiednim korpusie i połączyć ich wyniki. W obu przypadkach należy używać tych samych zasad i filtrów dotyczących dostępności źródeł. Dokument wykluczony z powodu niepewnej tożsamości nie powinien ponownie trafić do wyników dzięki drugiemu narzędziu wyszukiwania.

To rozwiązanie opiera się bezpośrednio na inwentarzu źródeł: wyszukiwanie powinno odbywać się na podstawie dowodów, których jesteś gotów użyć.

Złącz ranki przed wprowadzaniem arytmetyki ocen

Ocena BM25 oraz ocena podobieństwa kosinowego opisują różne metody obliczeń. Ich bezpośrednie dodanie daje liczbę, ale ta liczba sama w sobie nie oznacza automatycznie łącznej relewantności.

Fuzja ranków wzajemnych stanowi prosty punkt odniesienia. Każda lista uporządkowana dostarcza wartość opartą na pozycji kandydata:

fused_score(document) = sum(1 / (c + rank_in_list))

Ranki zaczynają się od jedności. Lista nie wnosi żadnego wkładu dla dokumentu, którego nie pobrała. Dodatnia stała c określa, jak gwałtownie zmienia się ten wkład pomiędzy poszczególnymi pozycjami.

Zaletą jest prostota operacyjna: łączenie nie wymaga, aby skale ocen były identyczne. Wadą jest to, że traci się informację o wielkości oceny. Dwa sąsiednie wyniki otrzymują podobne wkłady, nawet jeśli jeden z mechanizmów wyszukiwania uznał je za bardzo różne.

Zachowaj stałe oraz liczby kandydatów w konfiguracji, a następnie je oceniaj. Są to wybory projektowe, a nie gwarancje istotności.

Deduplikuj według identyfikatora, a nie tytułu

Dwa mechanizmy wyszukiwania mogą zwrócić ten sam fragment. Połącz ten fragment za pomocą jego stabilnego identyfikatora, aby obie ranki przyczyniły się do jednego kandydata. Nie traktuj go jako dwóch oddzielnych dowodów.

Tytuły są słabymi identyfikatorami. Różne artykuły mogą mieć ten sam tytuł, a jeden artykuł może zmienić swój tytuł. Przydatny klucz fragmentu zawiera identyfikator źródła, wersję treści oraz lokalizację fragmentu.

Należy również odróżnić dokładne kandydaty na duplikaty od fragmentów znajdujących się w tej samej sekcji. Te ostatnie mogą wymagać późniejszej konsolidacji, jak omówiono w metodzie dzielenia na fragmenty zachowującej dowody.

Przetestuj rodzaje zapytań osobno

Użyj co najmniej trzech grup pytań: identyfikatorów dokładnych, opisów koncepcyjnych oraz ich połączeń. Porównaj wyszukiwanie leksykalne, wyszukiwanie semantyczne oraz wynik po ich połączeniu.

Zbadaj, czy istotne dowody dotarły do grupy kandydatów, zanim sprawdzisz jakość odpowiedzi. Jeśli fuzja pomaga w zapytaniach koncepcyjnych, ale szkodzi w zapytaniach opartych na dokładnych kodach błędów, ogólna średnia może ukrywać ważną regresję.

Niewielka biblioteka techniczna może już dobrze funkcjonować przy wyszukiwaniu leksykalnym. Dodaj wydobywanie informacji semantycznych, gdy liczba nieudanych prób uzasadnia to. Utrzymywanie bazowego poziomu leksykalnego sprawia również, że wartość dodatkowych mechanizmów staje się widoczna.

Przekaż przydatną listę kandydatów dalej

Fuzja generuje listę kandydatów, a nie ocenę faktograficzną. Dokument o wysokim rankingu może nadal być przestarzały, niekompletny lub nierelacyjny do ważnego kryterium w pytaniu.

Następny etap może przearanżować kandydatów, wykorzystując silniejszy sygnał istotności. Jednak żaden późniejszy etap rankingu nie może uratować dowodów, które nigdy nie trafiły do listy kandydatów. Najpierw zmierz zakres pokrycia kandydatów; w przeciwnym razie możesz optymalizować kolejność niewłaściwych materiałów.