O wszystkim, co wiąże się z technologią wyszukiwania.
Blog > Komentarze do wpisu

Odnaleźć sens - jakie to trudne!

Skuteczne wyszukiwanie polega na odnalezieniu istotnych informacji. Problem jest jednak w tym, jak ocenić istotę tego, co jest napisane? Ocenić sens określonego tekstu nie jest łatwe dla człowieka, a co dopiero dla oprogramowania ... Jednak wyszukiwanie semantyczne, to hasło, które zawiera w sobie próbę zmierzenia się z tym problemem.

Istnieje przynajmniej kilka mechanizmów starających się zbliżyć do rozumienia tekstu i wykorzystywania tego przy przeszukiwaniu. Pewną klasyfikację przytacza na blogu niejaki Seth Grimes. Oto one:

  • Sugestie zapytań: Jak pytamy się o coś, to system proponuje nam pewne modyfikację zapytania, sugerując kierunek bardziej efektywnego wyszukiwania. Najprostsze mechanizmy polegają na poprawie błędnej pisowni, bardziej zawansowane potrafią na bazie słowników i analizy częstotliwości występowania określonych zwrotów zasugerować bardziej szerokie lub szczegółowe zapytanie. Np. zapytanie oryginalne: "twarde jabłka", sugestia: "jabłka ligol".
  • Szablony wyników: Dla określonych rodzajów zapytań system nie zwraca klasycznej listy wyników, tylko stara się odnaleźć szukane informacje i zaprezentować je w atrakcyjniejszej formie. Można to zrobić np. dla repertuaru kin, stanu pogody, miasta, gwiazd kina i TV, programów TV. Spróbuj na przykład w Google'u wpisać zapytanie "repertuar kin warszawa" i kliknąć pierwszy element z lity wyników.
  • Semantyczne zaznaczanie wyrazów: W wynikach wyszukiwania z reguły zwracany jest fragment tekstu ilustrujący treść całego dokumentu. Zaznaczane są w nim tzw. "trafienia" czyli wyrazy z zapytania, które odnaleziono w treści dokumentu. Można jednak posunąć się dalej i zaznaczać wyrazy, które pasują znaczeniowo (semantycznie) do zapytania. Np. wprowadzamy zapytanie: "gwiazdy POP", a w dokumentach znalezionych wytłuszczone są nazwiska gwiazd: Micheal Jackson, Brittney Spears czy Paweł Wróblewski.
  • Wyszukiwanie podobnych treści: Czasami określa się też to jako wyszukiwanie poprzez przykład. Polega to na tym, że zamiast pisać tradycyjne zapytanie podaje się jakiś fragment tekstu lub cały dokument. Dzięki temu silnik wyszukiwania ocenia treść dokumentu i odnajduje podobne w swoim indeksie. Całość zasadza się na metodach probabilistycznych wyodrębniania najbardziej reprezentatywnych słów kluczowych z treści dokumentów i wprowadzeniu odpowiedniej miary podobieństwa. Może kiedyś o tym napiszę …
  • Wyodrębnianie znaczenia z tekstu: Polega to na zaznaczaniu w treści dokumentu wyrażeń o określonym znaczeniu i tworzenie struktury dokumentu zbliżonej z reguły w XML. Na przykład zdanie „Ala ma kota” mogłoby z powodzeniem być zapisane jako:
    <dokument>
    <zdanie><OsobaImie>Ala</OsobaImie> mieć <zwierzę>kot</zwierzę></zdanie>
    </dokument>

Jeżeli do tego doda się jeszcze język wyszukiwania  a la XPath, to możemy całkiem nieźle przeszukiwać semantycznie informacje.

  • Wyszukiwanie pojęć: Zamiast tradycyjnych słów kluczowych system stara się określić pojęcie, jakie za nim się kryje. Tak na przykład jak wpisujemy zapytanie: „grzejnik”, to silnik wyszukiwania potrafi odnaleźć dla nas dokumenty gdzie napisane jest „kaloryfer”, ponieważ odpowiada to poszukiwanemu znaczeniu. Żeby to zrealizować potrzeba odpowiedni struktur i słowników. Najprościej jest użyć do tego celu wyrażeń bliskoznacznych, ale można i pójść dalej używając taksonomii dziedzinowych lub struktur lingwistycznych typu WordNet.
  • Wyszukiwanie z wykorzystaniem ontologii: Ontologie ogólnie służą do reprezentacji i modelowania wiedzy z danej dziedziny. Model ten można wykorzystać do przeszukiwania. Na przykład: Właśnie mam zamiar kupić dobre wino w prezencie i wybrałem je w sklepie online. W modelu ontologicznym zapisana jest informacja, że ten rodzaj wina znakomicie pasuje do czerwonego kawioru. Silnik wyszukiwania sklepu online podpowiada mi to wraz z super promocją takiego przysmaku.
    Zastosowań ontologii w wyszukiwaniu może być bez liku!
  • Semantic Web: Koncepcja sieci Internet jako połączeń semantycznych pomiędzy publikowanymi informacjami. Pozwalałoby to na surfowanie po Internecie posługując się nie tylko tradycyjnymi linkami, ale kategoriami tematycznymi, podobieństwem treści itd. Całość moim zdaniem jednak trąci utopią, bo zakłada, że każda strona internetowa będzie właściwie opisana za pomocą struktur semantycznych (jakiegoś modelu ontologicznego). Tylko kto się tego będzie trzymał i kto to zweryfikuje?
  • Wyszukiwania facetowe: O tym już było sporo … Zobacz Co to jest "faceted search"?
  • Klastry wyszukiwania: Polega to na grupowaniu wyników wyszukiwania w grupy dokumentów o podobnym znaczeniu. Jest to pewna forma wyszukiwania podobnych treści, opisana powyżej, tylko w połączeniu z algorytmem grupowania.
  • Wyszukiwanie w języku naturalnym: Jedna z większych ściem dostawców technologii wyszukiwania. Polega to jedynie na tym, że zapytanie pisane zwykłym tekstem przekształcane jest bardziej lub mniej inteligentnie na zwykłe zapytanie opierające się na słowach kluczowych. Na przykład zapytanie: „Daj mi wszystkie informacje o Donaldzie Tusku” mogłoby by być przetworzone poprzez: usunięcie wszystkich nieistotnych wyrażeń jak „daj mi, informacje, o, wszystkie ”, normalizacja form gramatycznych, być może włączenie jakichś synonimów. Wynikiem takiego przetwarzania byłoby zapytanie: „Donald Tusk premier”. Wyniki mogłyby być całkiem trafne i dać dobre wrażenie, ale  jest to bardzo dalekie od deklarowanej konwersacji z komputerem w języku naturalnym (codziennym, pospolitym, naukowym itd).

To tyle co miał do powiedzenie Seth Grimes, oczywiście w moim autorskim tłumaczeniu. Kto jest dociekliwy niech sprawdzi, co pozmieniałem. Natomiast to nie wyczerpuje zagadnienia. W ostatnim czasie wiele szumu robi firma Inbenta chwaląc się swoim pierwszym w pełni semantycznym silnikiem wyszukiwania. Jest to zastosowanie teorii MTT (Meaning-Text Theory). Postulaty tej teorii wymyślonej w latach 60tych prze dwóch Rosjan (Aleskand Żolkowskij, Igor Melcuk) są bardzo ciekawe. Polega to w dużym przybliżeniu na tym że język jest reprezentowany jako zbiór pojęć (warstwa semantyczna) oraz zbiór wyrażeń i wyrazów (warstwa fonetyczna) i do tego istnieje przeliczalna liczba funkcji transformujących jedną warstwę w drugą (funkcje lingwistyczne). Ciekawym spostrzeżeniem jest, że warstwa semantyczna jest niezależna od języka, bo „krzesło”, „niebo”, „kochać” to pojęcia występujące wszędzie na Ziemi. Natomiast funkcje lingwistyczne potrafią te znaczenia ubrać w odpowiedni język. Oryginalnie teoria ta służyć miała do automatycznych tłumaczeń tekstu oraz automatycznego generowania artykułów i informacji (np. komunikaty o stanie pogody w różnych językach na podstawie obiektywnych danych meteorologicznych). Firma Inbenta, chyba jako pierwsza zastosowała to do przeszukiwania i stara się z korpusu tekstów wyodrębnić funkcje lingwistyczne dla określonych języków i zastosowań: finanse, ubezpieczenia, wojsko itp. Sam nie wiem, jak to działa. Może kiedyś się przekonam …

Tak, czy owak wyszukiwanie semantyczne, cokolwiek za tym się kryje jest pasjonujące. Może kiedyś rzeczywiście się zdziwimy i wyszukiwarka odpowie nam na pytanie:  „Kim jestem?”. Byleby się nie przestraszyć odpowiedzi.

piątek, 09 kwietnia 2010, zenonik90

Polecane wpisy

TrackBack
TrackBack w tym blogu jest moderowany. TrackBack URL do wpisu:
    Paweł Wróblewski

    Jeśli podoba Ci się publikowana treść, rozważ proszę dofinansowanie rozwoju tego bloga.

    Follow zenonik90 on Twitter
góra | "Proście, a będzie wam dane; szukajcie, a znajdziecie; kołaczcie, a otworzą wam." Mt 7,7