180 likes | 337 Views
Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa. Tworzenie Portali Biznesowych. Wykład 14 Budowa własnej wyszukiwarki. Wykładowca: dr hab. inż. Kazimierz Subieta profesor PJWSTK subieta@ipipan.waw.pl http://www.ipipan.waw.pl/~subieta. Kwestie decyzyjne.
E N D
Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa Tworzenie Portali Biznesowych Wykład 14 Budowa własnej wyszukiwarki Wykładowca: dr hab. inż. Kazimierz Subieta profesor PJWSTK subieta@ipipan.waw.pl http://www.ipipan.waw.pl/~subieta
Kwestie decyzyjne • Świat jest bardzo konkurencyjny, zaś rynek wyszukiwarek jest ciasny. W każdym kraju dosłownie kilka wyszukiwarek uzyskuje sukces rynkowy. • Możliwe są jednak wyszukiwarki o ściśle określonym profilu tematycznym. Taka wyszukiwarka może odnieść sukces wśród specjalistów z danej dziedziny. • Wyszukiwarka typu pająk, czy katalog? • Pająki automatycznie indeksują zasoby Webu, praktycznie bez udziału czlowieka • Katalogi są tworzone przez ludzi, np. Yahoo. Aby odniosły sukces, konieczne jest zainteresowanie potencjalnych oferentów, aby chcieli wprowadzać informację o swoich stronach do odpowiednich kategorii tematycznych.
Błędy i nadużycia twórców stron WWW • Strony WWW zawierają ogromną ilość śmieci, często wprowadzanych tam celowo. • Twórcy stron WWW stosują najprzeróżniejsze „brudne” sztuczki po to, aby ich strona (zawierająca tzw. spam, czyli niechcianą reklamę lub inne podobne treści) znalazła się w wykazie stron dostarczanych do klientów. • Przykładowo, umieszcza się ten sam wyraz wielokrotnie na stronie HTML bez uzasadnienia, daje się czcionkę w kolorze tła, aby oszukać pająka, itd • Należy stosować specjalne metody, aby spamowców wyeliminować, ale tego pokroju ludzie i firmy nie ustają w przechytrzaniu tych metod. • Jakość informacji dostarczanej do użytkownika jest przez to bardzo niska. • Jestem zdania, że kraje zachodnie niedługo wprowadzą ustawodawstwo przeciwdziałające spamowi. Na firmy uprawiające spaming będą nakładane kary pieniężne (tak jak to jest obecnie w krajach zachodnich za foldery reklamowe wtykane do skrzynek pocztowych – w Niemczech jest to karane wysokim mandatem).
Zakres wyszukiwarki • Dość często portale są zorganizowane na podstawie pewnego labiryntu stron, w których użytkownik może bardzo łatwo się pogubić. • Skutkiem jest niemożliwość uzyskania pożądanej informacji • W takim przypadku można tworzyć wyszukiwarkę wyłącznie do własnych stron WWW. W przypadku rozudowanego portalu tak wyszukiwarka znakomicie ułatwia pracę użytkownika. • Dość często duże portale budują wyszukiwarkę uniwersalną, która obejmuje swoim zasięgiem pewien obszar geograficzny i/lub tematyczny. • Budowa wyszukiwarki ogólno-światowej jest przedsięwzięciem kosztownym ze względu na konieczność zapewnienia znacznych zasobów • pojemności dysków • czasu procesorów • przepustowość sieci • podtrzymywania kopii (mirrors)
Projektowanie bazy danych - indeksu Możliwa jest oczywiście dowolna rozbudowa tego najprostszego schematu, np. w związku z informacją o stronach zawierających spam, itd. Linki ID_strony_źródłowej ID_strony docelowej * * Strona_WWW ID_strony_WWW Tytuł (255 znaków) URL (255 znaków) Zawartość (1024 znaków) Ranking (ocena wagi strony) Liczba_linków_na stronie Klaster (kategoria tematyczna) ID_tematu Temat (char 255) * *
Charakterystyka informacji z indeksu • Linki: umożliwiają pracę pająka – ma on gdzie zapisać informację o stronach, które odwiedził i o stronach, które mają połączenie z tych stron. • ID_strony – sztuczny klucz mający na celu zmniejszenie i znormalizowanie informacji z URL – wewnętrzny dla danej wyszukiwarki • Content – mogą to być wybrane, charakterystyczne zdania pochodzące ze strony HTML • Ranking – pewna automatycznie wyznaczana miara, która określa, czy ta strona może mieć znaczenie dla uzytkowników. Google stosuje ranking oparty na analizie ilości i konfiguracji linków na stronie. • Temat – słowo lub fraza której może użyć użytkownik w swoim zapytaniu.
Architektura przykładowego systemu Czyszczenie i formatowanie danych Wewnętrzne procesy (obliczanie rankingu, itd.) Pająk np. w jęz.Perl Strony HTML SQL Baza danych robocza Dysk roboczy www Baza danych publikacyjna JDBC Serwer serwletów Serwer HTTP (Apache) Użytkownik www JSP
Budowa pająka (robota) • Można go budować w oparciu o gotowe elementy. Są gotowe, bezpłatne modułu oparte o język Perl lub udostępniane w postaci biblioteki do Java. • CPAN, Checkbo, Combine, DWCP, ... • Lista narzędzi do budowy pająków jest dostępna pod: http://www.robotstxt.org/wc/active/html/index.html • Strony bogate w linki z danej dziedziny (zwane hubs) są dobrymi punktami startowymi do przeszukiwania całej sieci. Np. dla dziedziny baz danych dobrymi punktami startowymi jest Penn Database Research Group, DBLP Bibliography oraz Yahoo!Databases. • Dobra identyfikacja hubs jest atutem wyszukiwarki Google • Filtry zapobiegające odwidzaniu stron wymagających parametryzacji (CGI), konieczne są metody zapobiegające zapętleniu się pająka. • Częstotliwość odświeżania pająka: związana z jego szybkością i dostępnością odwiedzanych stron. Nawet przy 25 stronach na sekundę dla ściagania mamy 5 sekund na stronę do przetwarzania czyli 500 000 sekund dla 100 000 odwiedzonych stron, czyli 6 dni i nocy.
Bardziej zaawansowane pająki • Powinny nie tylko zarządzać pamięcią, lecz także procesorem oraz ruchem w sieci. • Strategie kolejkowania stron do odwiedzenia • Np. 500 kolejek, strony z tego samego serwera w różnych kolejkach • W ten sposób każdy serwer będzie odwiedzany co najwyżej raz na 500 razy • Pająk może stosować jedną z następujących strategii: • Błądzenie po stronach internetowych: na wejściu lista URL-i startowych, następnie pobieranie kolejnych stron wg grafu linków łączących strony. • Poszukiwanie w innych bazach danych (multi-search). Konieczne jest skonstruowanie „pijawek” (leech), czyli programów specjalizujących się w pozyskiwaniu informacji z konkretnego serwisu. • Strategia mieszana: najpierw multi-search, później wyszukiwanie w grafie. • Bardziej „inteligentne” pająki powinny mieć możliwość oceny, czy dana strona może być interesująca dla użytkowników. • Może to odbywać na zasadzie zliczania liczby linków do tej strony.
Niektóre reguły wzmacniające pająka • Istnienie wyspecjalizowanego modułu oceniającego wartość strony na podstawie pewnej heurystyki (np. liczby i rodzaju terminów z danej dziedziny). • Baza wiedzy zawierająca informację lingwistyczną, np. tezaurus (ontologia) • Jeżeli dokument zawiera słowa ze zbioru {s1,..., sn}, to jest interesujący • Jeżeli dokument zawiera słowa ze zbioru {s1,..., sn}, to linki z tej strony prowadzą do interesujących stron • Jeżeli strona jest główną stroną instytucji, to prawdopodobnie zawiera linki do pracowników i aktywów (produktów, projektów, itd.) tej instytucji • Jezeli strona jest stroną domową pracownika, to prawdopodobnie zawiera linki do jego artykułów i ulubionych stron. • W ten sposób można przypisać wagi nie tylko do stron, ale dowolnych bytów (osób, instytucji, tematów, itd.) i na podstawie tych wag ustalać potencjalne zainteresowanie uzytkowników ta stroną. • Przypisywanie wag może być iteracyjne (Google): waga strony X uzależniona od wag stron na których znajdują się linki do X.
Indekser dokumentów • Indeksowanie jest to proces tworzenia indeksu, czyli specjalizowanej bazy danych zawierającej pewien wyciąg z indeksowanej strony (np. słowa kluczowe, frazy) oraz jej URL. • Indeks powinien być zoptymalizowany pod katem wyszukiwania, tj. zorganizowany tak, aby umożliwić bardzo szybkie wyszukiwanie na podstawie kryteriów (słów lub fraz) zadanych przez użytkownika. • Indeks powinien zawierać także dowolna informację, która da pewne wskazówki uzytkownikowi co do przydatności strony bez jej fizycznego ściągania, np. • tytuł strony • data strony • format strony (np. .doc, .pdf, .ppt) • frazy, w których na danej stronie występują zadane przez wyrazy • Istnieją standardowe, komercyjne indeksatory, np. pakiet LUCENE • http://www.lucene.com
Komponenty indeksera • Identyfikacja słów/fraz/termów występujących w dokumentach • Usuwanie słów popularnych • Ekstrakcja tematów przy uzyciu algorytmu szukającego tematu • Zastąpienie tematów przez numeryczne identyfikatory termów indeksujących celem wydajniejszego przetwarzania • Zliczanie wystąpień tematów • Użycie tezaurusa (ontologii) dla zastąpienia zbyt wyspecjalizowanych terminów teminami ogólniejszymi • Tworzenie fraz dla termów o wysokiej częstotliwości • Obliczanie wag dla wszystkich prostych termów, fraz i klas tezaurusa • Przypisywanie każdej stronie odpowiednich prostych termów, fraz i pozycji tezaurusa z odpowiednimi wagami.
Parser stron HTML i innych formatów • Istnieje wiele osobliwości technicznych na stronach HTML, które muszą być oprogramowane przez pająka. • Istotne jest zignorowanie informacji organizacyjnej, specjalnych znaczników do kodowania i wyświetlania i wykrycie informacji ważnej merytorycznie. • Istotne jest rownież przeciwdziałanie nadużyciom twórców stron mającym na celu radykalne zwiększenia prawdopodobieństwa pojawienia się jej na ekranie klienta. • Obecnie parsery posiadają możliwości analizowania dokumentow w innych formatach niż HTML, np. .pdf, .doc, .ppt • Oznacza to konieczność bardzo dokładnego rozpoznania fizycznej konstrukcji tych formatów • Specjalnym problemem technicznym są sposoby kodowania niestandardowych znaków, np. znaków z polskimi ogonkami
Analizator tekstu • Steruje strukturalizacją tekstu, czyli jego podziałem na słowa • Dokonuje normalizacji tekstu, m.in. • zamienia duże litery na małe • dokonuje normalizacji fleksji (np. sprowadzenie do I osoby, I przypadku liczby pojedynczej, itd.) • usuwa słowa pospolite na podstawie tzw. stop-listy: • w języku angielskim: ‘a’, ‘and’, ‘are’, ‘as’, ‘at’, ...., ‘their’, ‘then’, ‘will’,... • słowa pospolite mogą się różnić dla specjalizowanych zbiorów dokumentów, np. w tekstach prawnych są to słowa ‘artykuł’, ‘paragraf’, ‘ustęp’ • Dla niektórych języków (niemiecki) konieczne jest rozbicie słowa na sekwencją słów; w jęz. polskim - nazw chemicznych lub farmaceutycznych. • Może być potrzebne skorzystanie z zapamiętanych związków paradygmatycznych, np. związków „patrz też” lub generalizacji • ‘kogut’ -> ‘kura’, ‘pekińczyk’ -> ‘pies’ • Może zmienić grupę słów na term (frazę): • ‘krzesło’, ‘elektryczne’ => ‘krzesło elektryczne’
Odpowiedzi na pytania • Analogicznie do normalizacji indeksowanego tekstu powinna nastąpić normalizacja zapytania użytkownika • Użytkownik również może zadać pytanie małymi lub dużymi literami, z różną formą fleksyjną, itd. • Algorytm przyporządkowania dokumentów do zapytania uwzględnia: • specyficzne operatory wprowadzone do zapytań, np. AND, OR, NOT • jeżeli język nie wprowadza takich operaorów, wówczas przyjmuje się pewną semantykę domyślną w taki sposób aby uwzględnić potencjalną intencję użytkownika • Odbywa się to poprzez zliczanie wag trafności dokumentu do pytania • W Google – najpierw dokumenty, które zawierają wszystkie slowa uzyte przez użytkownika, później dokumenty, w których jedno z tych słów jest nieobecne, itd. Dodatkowo, trafność wynikowa zależy od wagi strony. • Zwraca się listę wynikową relewantnych dokumentów w porządku malejącego rankingu.
Ranking stron • Ogromna liczba prostych heurystyk pozwalających ustalić wagę strony (w ogóle) i wagę strony w odniesieniu do danego zapytania. • Istotne jest to, że ten ranking musi być technicznie efektywny, tj. musi być obliczony w akceptowalnym czasie. • to częściej eliminuje pomysły oparte na zbyt wyrafinowanych metodach („sztucznej inteligencji”). • Metody rankingu: • opinie redaktorów (metoda bardzo kosztowna) • opinie użytkowników („feedback” po zadaniu pytania) • popularność strony (jak często ją wyszukano) • ocena zawartości informacyjnej (niemierzalna obiektywnie, jedynie na podstawie trzeciorzędnych symptomów, takich jak występowanie pewnych słów) • lokalizacja (np. serwer bardzo popularnej i bogatej firmy) • finansowanie (zwiększenie rankingu strony jest sponsorowane przez jej twórcę). • liczba linków prowadzących do strony (ew. ważonych linków)
Forma odpowiedzi na zapytanie • Zwykle jest to lista odsyłaczy do dokumentów • Każda pozycja tej listy może zawierać: • URL dokumentu • Tytuł dokumentu • data utworzenia dokumentu/ostatnia modyfikacja • rozmiar dokumentu w bajtach • język dokumentu • streszczenie dokumentu (automatyczne, w postaci charakterystycznych fraz) • opis dokumentu • lista słów kluczowych dokumentu • ranking dokumentu • dokumenty związane z tym dokumentem („patrz też”) • Mogą pojawić się także sugestie dotyczą zmiany zapytania użytkownika lub podpowiedzi i sugestie co do dalszych kroków wyszukiwania.
Podsumowanie • Budowa własnego pająka i wyszukiwarki jest trudnym przedsięwzięciem z kilku powodów: • materia lingwistyczna będąca jej podmiotem jest bardzo złożona • zbieranie informacji i udzielanie odpowiedzi na zapytania podlegają bardzo silnym ograniczeniom czasowym i wydajnościowym • wyrafinowane algorytmy (oparte na tradycyjnej wiedzy lingwistycznej i metodach sztucznej inteligencji) mają nikłe zastosowanie ze względu na ogrom bazy dokumentów i konieczność szybkiego jej przetwarzania. • wygrywają metody inżynierkie, które najczęściej nie mają nic wspólnego z naukami lingwistycznymi i stanem sztuki AI • coraz więcej informacji jest umieszczana w bazach danych („hidden web”), które ze względu na specyficzne interfejsy mogą być słabo dostępne dla wyszukiwarek • Dla usprawnienia i zdyscyplinowania wyszukiwania w Sieci podjęto liczne prace standardyzacyjne zmierzające do ustrukturalizowania i znormalizowania informacji: XML, Dublin Core, RDF, Semantic Web. • jest to jednak początek długiej drogi, która nie wiadomo dokąd prowadzi.