VERITY jezyk zapytan - Bylo re: najlepsza wyszukiwarka pelnotekstowa na swiecie

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