Autor: Darius Jack (dariusz_at_usa.net)
Data: Sat 31 Oct 1998 - 17:04:20 MET
Seminarium czesc 2
Najlepsza wyszukiwarka pelnotekstowa na swiecie
____
Teraz opis jezyka zapytan VERITY .
Jezyk zapytan Verity + algorytmy wyszukiwania
Szukanie podstawowe
Szukanie z zastosowaniem operatorow logicznych + opis algorytmow znajduje sie w podanym
wczesniej opisie wyszukiwania informacji w Bazach Unii Europejskiej - CORDIS , wraz z opisem jezyka zapytan Common Command Language (CCL).
Szukanie z uwzglednieniem polozen slow.
Stosowane operatory to NEAR, SENTENCE i PARAGRAPH
Operator NEAR to analogia operatora ADJACENCY z CCL.
Operator NEAR powoduje znajdowanie rekordow w ktorych slowa leza blisko siebie.
Ranga dokumentu zostaje obliczona w oparciu o ilosc slow rozdzielajacych search terms.
Czym mniej slow rozdzielajacych tym ranbga wieksza , np. gdy search terms sasiaduja ze soba to mozemy
przyjac range dokumentu 1.00 .
Operator SENTENCE to wyszukiwanie search terms w jednym zdaniu.
Operator PARAGRAPH to wyszukiwanie search terms w jednym paragrafie.
Zatem do opisanego wczesniej mechanizmu indeksowania bazy dokumentow (rekordow), musimy jeszcze dodac jeszcze nowy parametr , mianowicie index_zdania i index_paragrafu w obrebie tego samego dokumentu (rekordu).
Index_zdania jest definiowany nastepujaco:
dla search term in document , search_term/index_zdania = numer zdania w szukanym rekordzie
( dokumencie) w ktorym znajduje sie search term, numerujac zdania od poczatku dokumentu.
Index-paragrafu jest zdefiniowany nastepujaco:
dla search term in document, seach_term/index_paragrafu = numer paragrafu w szukanym rekordzie
( dokumencie) w ktorym sie znajduje search term, numerujac paragrafy od poczatku dokumentu.
Szukanie po strefach.
Jezeli rekordami sa dokumenty w formacie HTML to w programie indeksujacym definiujemy najpiew mozliwe strefy ( inaczej search fields) , oznaczane tagami w dokumencie HTML.
Nastepnie program indeksujacy tworzy glowny indeks lub slownik wszystkich szukanych dokumentow
i format tego pliku indeks zostaje rozbudowany o sewarch fields odpowiadajace skladni i wybranym tagom dokumentow w HTML.
Dokladna skladnia i prosta skladnia ( bez fleksji)
Wpisanie SEARCH film znajduje w wyniku poszukiwania rekordy w ktorych wystepuje slowo film, jak i slowa utworzone od slowa film, np. filmowy, filmowiec, filmoteka, filmowanie.
Jakkolwiek taki operator jest nazywany operatorem odmiany ( inaczej fleksji), ale faktycznie jest to operator slowotworczy , tworzacy nowe slowa ze slownika od slowa podstawowego.
Dlatego tez napisalem modul polskiej fleksji , wspolpracujacy z wyszukiwarkami Internetowymi, ktory
jest modulem fleksyjnym, a nie slowotworczym. Operator slowotworczy jest charakterystyczny dla angielsko-jezycznych wyszukiwarek i dlatego nie uwzglednia polskiej fleksji.
Wpisanie SEARCH "film" powoduje znalezienie rekordow w wystepuje dokladnie search term "film" , bez odmiany, fleksji, slowotworstwa.
Z opisu jezyka wynika dalej, ze dokumenty w ktorych znaleziono "film" nie sa wartosciowane, wszystkie maja taka sama wartosc wyniku (inaczej range): 1,00, dla zaznaczenia, ze slowo zostalo odnalezione w dokumencie. Rezultaty nie sa uporzadkowane w jakikolwiek sposob. "
Niewatpliwie jest to ewidentny blad ( jezeli nie tlumacza). Wyszkiwanie dokladne "search term" jest podstawowe i trudno znalezc powod unikania rangowania wyszukanych rekordow.
Nie jest przeciez obojetne czy search term "komputer" pojawi sie w dokumencie 1 raz, czy 5 razy lub wiecej.
Wylaczanie terminow
(inaczej wyszukiwanie z zastosowaniem operatorow boolowskich)
przyklad z dokumentacji:
przegladarki internetowe NOT explorer
w jezyku zapytan CCL ma to zapytanie nastepujaca skladnie:
przegladarki AND internetowe NOT explorer
aby uniknac slowotworstwa nalezy jeszcze dodac:
"przegladarki" AND "internetowe" NOT "explorer
Algorytm wyszukiwania analogiczny jak w CCL.
OPERATOR Phrase
Znajduje dokumenty, zawierajace slowa nastepujace po sobie (lezace obok siebie)
Algorytm jak w CCL
search term 1 AND search term 2 = SEARCH TERM1 AND EARCH TERM2 AND ( /index_search term1 - index_search2/ = 1 , modul z roznicy indeksow, gdy kolejnosc obojetna, sasiedztwo to inaczej roznica indeksow slowa w dokumencie o 1 ).
Operator "," (przecinek)
Znajduje dokumenty zawierajace przynajmniej jedno ze slow, ustalajac wage wyniku wedlug zasady "im wiecej tym lepiej" .
Inaczej operator OR + opcja rangowania.
Algorytm obliczania rangi z przedzialu 0.0 - 1.0, mozemy przyjac nastepujacy:
1. Wszystkie search terms w jednym dokumencie - inaczej search term1 and search term2 .... ( niezaleznie od odleglosci) = ranga bliska 1.0
2. Jeden lub kilka z search terms w dokumencie : procentowy udzial znalezionych search terms do szukanych search terms.
(inne opcje to napisania ) ...
Operator
"?" operator zastepujacy jeden znak
Jezeli na koncu search term to wyszukujemy wszystkie dokumenty z wyrazami, dla ktorych search term jest podstringiem wyrazu. Ale typu wyraz = search_term + "jedna litera lub znak"
Operator "*"
Operator zastepuje kazdy znak lub grupe znakow
Jak wyzej
wyraz = search_term + "dowolny string"
THESAURUS
Szuka dokumentow zawierajacych szukany wyraz jak i ich synomimy.
ciag dalszy nastapi wkrotce
jack
dariusz_at_usa.net
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Wed 19 May 2004 - 16:17:01 MET DST