• Nie Znaleziono Wyników

4. Platforma

4.3. Przyj ˛ete rozwi ˛ azania

4.3.5. Unfiltered

Interfejs u ˙zytkownika w naturalny sposób powinien zosta´c zaimplemen-towany za pomoc ˛a strony www. Do realizacji tego zadania konieczne było wybranie odpowiedniej biblioteki, która wspierałaby obsług ˛e protokołu

4.3. Przyj ˛ete rozwi ˛azania 49

Rysunek 4.4. Schemat bazy danych

4.3. Przyj ˛ete rozwi ˛azania 50 HTTP. Zasób narz ˛edzi, które mo ˙zna wykorzysta´c do tego celu jest ogromny.

Istnieje wiele rozwi ˛aza ´n dedykowanych dla j ˛ezyka Scala oraz kilkukrotnie wi ˛ecej przeznaczonych dla Javy. Najpopularniejsze to z pewno´sci ˛a Play oraz Lift. Zapewniaj ˛a one bardzo szeroki zasób funkcjonalno´sci. Jest to zarazem ich zalet ˛a jak i wad ˛a. W zwi ˛azku z tym, ˙ze realizowana aplikacja powinna by´c jak najprostsza, a interfejs u ˙zytkownika powinien by´c form ˛a demonstracji działaj ˛acego rozwi ˛azania warto było przyjrze´c si ˛e troch ˛e innym rozwi ˛azaniom.

Bardzo ciekawym projektem jest Unfiltered. Jest to narz ˛edzie dedyko-wane do j ˛ezyka Scala, która jest niezwykle proste w obsłudze i jednocze´snie zapewnia odpowiednie wsparcie obsługi Http. Obsługa szablonów zapew-niana jest przez bibliotek ˛e Scalate. Jest to bardzo szeroko wykorzystywany silnik szablonów, który obsługuj ˛e takie j ˛ezyki jak: Mustache, Scaml, Jade i SSP. SSP jest tak naprawd ˛e dostosowan ˛a do Scali wersj ˛a Velocity, JSP lub Erb. (Odpowiednio JAVA/EL/Ruby). Wszystkie z wymienionych j ˛ezyków spełniłyby swoj ˛a rol ˛e. Wybór SSP nie był wi ˛ec oczywisty i opierał si ˛e głów-nie na przyjaznej składni jak ˛a oferuje ten j ˛ezyk oraz obsłudze statycznego typowania.

4.3.6. Profil u ˙zytkownika

Profil u ˙zytkownika mo ˙ze zosta´c stworzony na podstawie bardzo wielu czynników. W tej pracy stosowane były przede wszystkich dwa z nich:

historia wyszukiwania i dokumenty powi ˛azane z u ˙zytkownikiem.

Historia wyszukiwania

Podstawowe ´zródło danych stanowi historia wyszukiwania. Informacje o wszystkie stronach internetowych, które zostały odwiedzone przez u ˙zytkow-nika wraz z ich zawarto´sci ˛a zostaj ˛a zapisane w bazie danych.

Dokumenty powi ˛azane z u ˙zytkownikiem

Drugi zasób stanowi ˛a dokumenty powi ˛azane z u ˙zytkownikiem. S ˛a to przede wszystkim napisane przez niego artykuły/ksi ˛a ˙zki oraz ró ˙zne teksty, których u ˙zywał w swojej pracy. Dane te pozwalaj ˛a na personalizowanie wyszukiwania ju ˙z od pocz ˛atku współdziałania z systemem, mimo braku historii wyszukiwania. Wtedy te ˙z s ˛a one najbardziej u ˙zyteczne.

4.3. Przyj ˛ete rozwi ˛azania 51 Sposób przedstawienia profilu

Mo ˙zna sobie wyobrazi´c wiele ró ˙znych sposobów reprezentowania profilu u ˙zytkownika. W du ˙zej mierze wybór konkretnego z nich zale ˙zy od sposobu pó´zniejszego wykorzystania, konkretnych algorytmów itp.

Najprostszy z nich zakłada i ˙z wszystkie istotne dokumenty gromadzone s ˛a w jeden tekst. Stanowi on baz ˛e, z której mo ˙zna nast ˛epnie czerpa´c ró ˙zne przydatne informacje. Chc ˛ac dowiedzie´c si ˛e jakimi konkretnie zagadnie-niami zajmuje si ˛e u ˙zytkownik nale ˙zy dokona´c klasyfikacji powstałego do-kumentu. W tym przypadku odpowied´z składa´c si ˛e b ˛edzie najprawdopo-dobniej nie z jednej ale z kilku pierwszych kategorii. Posiadaj ˛ac list ˛e stron internetowych mo ˙zna szybko j ˛a posortowa´c u ˙zywaj ˛ac jako wyznacznika po-dobie ´nstwa do dokumentu stanowi ˛acego profil.

Główne pozytywy tej metody to prostota u ˙zycia. Budowa profilu jak i korzystanie z niego jest szybkie i łatwe. Zbytnia prostota jest te ˙z równie ˙z jej najwi ˛eksz ˛a wad ˛a. Istnieje ryzyko, ˙ze wspólna klasyfikacja tekstu, która zawiera informacje z wielu ró ˙znych dziedzin nie przyniesie oczekiwanych efektów. Drugi problem wi ˛a ˙z ˛e si ˛e z zastosowaniem tego rozwi ˛azania do kla-syfikacji zapyta ´n. Rozwi ˛azanie w tej materii nie jest bynajmniej oczywiste.

Druga mo ˙zliwo´s´c to klasyfikowanie poszczególnych dokumentów osobno, a nast ˛epnie odpowiednie przechowywanie takich wyników. Zakładaj ˛ac po-siadanie dokładnego klasyfikatora mo ˙zna wtedy osi ˛agn ˛a´c bardzo szczegó-łow ˛a map ˛e zainteresowa ´n u ˙zytkownika. Uzyskane dane stanowi ˛a doskonał ˛a baz ˛e do stworzenia osobnego klasyfikatora a nast ˛epnie u ˙zycia go np. w kate-goryzacji zapytania. Główn ˛a zalet ˛a tej metody jest jej intuicyjno´s´c i precyzja jak ˛a mo ˙zna osi ˛agn ˛a´c. Odpowiednio grupuj ˛ac zestaw otrzymanych kategorii otrzymujemy bardzo dokładn ˛a wiedz ˛e o u ˙zytkowniku. Najwi ˛ekszy problem wi ˛a ˙ze si ˛e ze stworzeniem takiego klasyfikatora, który zapewniłby du ˙z ˛a sku-teczno´s´c kategoryzacji dokumentów, a w szczególno´sci stron internetowych.

Kolejna kwestia to brak bezpo´sredniego przeło ˙zenia na sortowanie wyników wyszukiwania oraz czasochłonno´s´c zarówno budowania jak i u ˙zytkowania profilu.

Rozwa ˙zaj ˛ac za i przeciw poszczególnych metod w przykładowej imple-mentacji została wybrana pierwsza opcja. Głównymi czynnikami była pro-stota przedstawienia profilu oraz szybko´s´c działania.

4.3. Przyj ˛ete rozwi ˛azania 52

poziom 1 2 3 4 5 6 7

liczba kategorii 14 286 2061 5439 5018 1647 732

Tablica 4.1. Liczba kategorii na poszczególnych poziomach hierarchii ODP z wył ˛aczeniem kategorii “Top/World” oraz “Top/Regional”.

Szczegółowo´s´c kategorii w profilu

Szczegółowo´s´c hierarchii kategorii jest bardzo istotnym elementem. Dla ODP drugi poziom reprezentowany jest przez 286 encji (zakładaj ˛ac pomini ˛e-cie “Top/World” oraz “Top/Regional”). Trzeci poziom to ju ˙z 2061 kategorii.

Dane dla kolejnych przedstawione s ˛a w Tabeli 4.1. Liczby te tylko z pozoru wydaj ˛a si ˛e du ˙ze. Musz ˛a one jednak odzwierciedla´c nazwy wszelkich dziedzin jakie mog ˛a zosta´c przypisane do strony.

4.3.7. Klasyfikacja stron internetowych

Niniejszy rozdział pokazuje etapy tworzenia i poprawiania klasyfikatorów dokumentów. U ˙zyty algorytm opiera si ˛e na wykorzystaniu współczynników tfidf oraz miary podobie ´nstwa cosinus. Jako dane trenuj ˛ace posłu ˙z ˛a in-formacje zawarte w hierarchii ODP. Do oceny modeli zostan ˛a wykorzystane strony internetowe przypisane do poszczególnych kategorii. Wybór stron do testu odbywa si ˛e w wi ˛ekszo´sci przypadków w sposób losowy. W zwi ˛azku z tym, ˙ze w bazie znajduje si ˛e ich ponad 5 milionów, a testy przyprowadzane s ˛a zazwyczaj na niewielkim ułamku tej liczby nie ma ryzyka, ˙ze generowane poprawki dostosowane b ˛ed ˛a tylko i wył ˛acznie do konkretnych danych. Nie ma wi ˛ec potrzeby tworzenia odr ˛ebnego zbioru danych waliduj ˛acych. Na wst ˛epie warto wyja´sni´c słownictwo, którym b ˛ed ˛e si ˛e posługiwał w dalszej cz ˛e´sci tego rozdziału. Przez klasyfikator na n-tym poziomie b ˛edzie rozu-miany odpowiednio:

— dla n = 1 klasyfikator, którego kategorie stanowi podzbiór kategorii głów-nych ODP

— dla n > 1 klasyfikator, którego zbiór kategorii stanowi podzbiór kategorii z poziomu n rozumianego jako kategorie b ˛ed ˛ace bezpo´srednimi potomkami dla kategorii z poziomu n - 1 w hierarchii ODP.

Ze zbioru dost ˛epnych kategorii zostaj ˛a wył ˛aczone wszystkie te posiadaj ˛ace jednoznakowe nazwy. Jest to zwi ˛azane z tym i ˙z nie wnosz ˛a one ˙zadnej kon-kretnej wiedzy o charakterze kategorii a jedynie dziel ˛a kategori ˛e nadrz ˛edn ˛a według alfabetu. Nie dotyczy to jednak ich potomków, które s ˛a ju ˙z pełno-prawnymi kategoriami.

4.3. Przyj ˛ete rozwi ˛azania 53 klasyfikator I II III IV SUMA

I poziomu 60,7 17,2 7,4 5,1 90,4 II poziomu 27,3 7,9 2,8 2,1 40,1 III poziomu 13,9 6 2,9 1,4 24,2

Tablica 4.2. Wyniki klasyfikacji dla pierwszych testów

Baza danych dla ka ˙zdej strony internetowej zawiera odpowiednio jej ad-res, tytuł i opis. Nie zawiera natomiast ich tre´sci. Proces ´sci ˛agania i oczyszczania zawarto´sci stron internetowych jest czasochłonny. U ˙zycie ich podczas testów wydłu ˙zyłoby znacznie cał ˛a procedur ˛e. Nie byłoby mo ˙zliwe przebadanie odpowiedniej ich liczbie w akceptowalnym czasie co spowodo-wałoby, ˙ze testy nie zawierałyby szerokiego spektrum kategorii. W zwi ˛azku z tym, zamiast klasyfikowa´c rzeczywiste strony internetowe, zostan ˛a u ˙zyte zł ˛aczenia ich nazw oraz opisu. Zastosowanie takich danych powoduje, ˙ze otrzymywane wyniki s ˛a w ogólno´sci nieznacznie lepsze ni ˙z te przy u ˙zyciu bezpo´srednio tre´sci stron. Nie mo ˙zemy, wi ˛ec traktowa´c ich jako ostateczny mechanizm oceny. Wynika to głównie z tego, ˙ze opisy najcz ˛e´sciej pozba-wione s ˛a wielu zb ˛ednych elementów, które wyst ˛epuj ˛a w rzeczywistych stro-nach internetowych. S ˛a jednak bardzo u ˙zyteczne w badaniu tendencji jakie pojawiaj ˛a si ˛e w ramach wprowadzania kolejnych zmian.

Pierwsze testy

Przed przyst ˛apieniem do gł ˛ebszej analizy danych warto zorientowa´c si ˛e jak radz ˛a sobie podstawowe klasyfikatory na poszczególnych poziomach. W pierwszych testach zostały u ˙zyte wszystkie kategorie główne poza World, Home, Netscape, Reference, Regional, Shopping oraz dla kolejnych pozio-mów odpowiednio ich kategorie potomne. Na razie pomini ˛ete zostały kwestie zwi ˛azane z wydajno´sci ˛a całego procesu. Czas klasyfikacji wydłu ˙za si ˛e jed-nak wraz ze zwi ˛ekszaniem liczby kategorii klasyfikatora, co jest wnioskiem do´s´c oczywistym z uwagi na charakter u ˙zytego algorytmu.

Wyniki zostały przedstawione w tabeli 4.2: Wyra´znie wida´c, ˙ze jako´s´c klasyfikacji szczególnie przy klasyfikatorach II i III poziomowych jest bardzo słaba. Dla klasyfikatora I poziomowego wynik 59% mo ˙zna uzna´c za całkiem niezły. Warto jednak zwróci´c uwag ˛e na to i ˙z w tym przypadku rozwa ˙zane było tylko 10 kategorii. Procentowy wynik poprawnie sklasyfikowanych nie jest jednak wystarczaj ˛acy dla oceny klasyfikatora.

Dokładniejsze wnioski mo ˙zna wyci ˛agn ˛a´c dzi ˛eki analizie macierzy pomy-łek. Du ˙za liczba kategorii uniemo ˙zliwia praktyczne korzystanie z tej metody.

4.3. Przyj ˛ete rozwi ˛azania 54

Tablica 4.3. Macierz pomyłek dla testu pierwszego Kategoria liczba stron % wszystkich przykładów

Arts 171 18,73

Games 38 4,16

Business 162 17,74

News 4 0,44

Health 47 5,15

Computers 71 7,78

Society 193 21,14

Sports 70 7,67

Science 94 10,30

Recreation 63 6,90

Tablica 4.4. Udział procentowy kategorii w te´scie

Wyj ˛atkiem jest jednak klasyfikator I, dla którego macierz pomyłek zaprezen-towana została w Tabeli 4.3. Najwi ˛eksz ˛a skuteczno´s´c klasyfikacji została osi ˛agni ˛eta dla stron z kategorii Arts. Najsłabiej wypadły Science i Sports.

Nie oznacza to jednak, ˙ze klasyfikator dobrze nauczył si ˛e rozpoznawa´c kate-gori ˛e Arts. Jest wr ˛ecz przeciwnie. Ponad połowa rekordów oznaczonych jako Arts (52,65%) nale ˙zała tak naprawd ˛e do innej kategorii. Bior ˛ac pod uwag ˛e,

˙ze była to prawie 1/5 wszystkich stron wpływ na jako´s´c ogólnej klasyfikacji był bardzo du ˙zy. Po otrzymaniu pierwszych wyników nale ˙zy zastanowi´c si ˛e nad mo ˙zliwo´sci ˛a ich poprawy.

Najbardziej intuicyjnym krokiem w poprawie jako´sci klasyfikacji jest próba wykluczenia jednej b ˛ad´z kilku kategorii. Nale ˙zy rozpatrzy´c w tym przypadku dwa czynniki. Po pierwsze nale ˙zy przeprowadzi´c analiz ˛e katego-rii pod k ˛atem przydatno´sci ich w danym zadaniu. Po drugie naturalnymi kandydatami wydaj ˛a si ˛e te kategorie, które radziły sobie najsłabiej albo ta-kie które w najlepszy sposób poprawiłyby jako´s´c klasyfikacji.

Analizuj ˛ac przydatno´s´c kategorii w zadaniu mo ˙zna pomóc sobie ustalaj ˛ac priorytety poszczególnych z nich lub grupuj ˛ac je. W tym przypadku na pewno kluczowymi kategoriami s ˛a: Science, Health, Computers. Istotne to:

4.3. Przyj ˛ete rozwi ˛azania 55

Tablica 4.5. Macierz pomyłek dla testu drugiego klasyfikator I II III IV SUMA I poziomu 66,4 17,4 7,4 4,1 95,3 II poziomu 28,1 7,1 2,8 2,0 40 III poziomu 13 3,2 2,3 0,9 19,4

Tablica 4.6. Wyniki klasyfikacji dla pierwszych testów

Business, Society, Sports. Trzeci ˛a grup ˛e stanowi ˛a: Arts, Games, News i Recreation.

Rozwa ˙zaj ˛ac kategorie z ostatniej grupy i maj ˛ac na uwadze jedynie procent dobrze sklasyfikowanych stron wybór powinien pa´s´c na Recreation. Nie jest to jednak najlepsze rozwi ˛azanie. Wybór Arts na pierwszy rzut oka mo ˙ze wyda´c si ˛e do´s´c kontrowersyjny. Umo ˙zliwia jednak szybk ˛a popraw ˛e jako´s´c klasyfikacji ze wzgl ˛edu na niski poziom precyzji i bardzo du ˙zy procentowo udział w bazie danych. Eliminujemy wi ˛ec t ˛e kategori ˛e i przeprowadzamy testy tak jak by strony, które do niej nale ˙z ˛a nie przedstawiały warto´sci dla budowanego systemu. Macierz pomyłek dla nowo powstałego klasyfikatora przedstawiona została w Tabeli 4.5. Wynik ogólny uległ nieznacznej po-prawie. Warto si ˛e jednak przyjrze´c rezultatom dla poszczególnych kategorii.

Kategoria News jest ewidentnym kandydatem do eliminacji. Liczba stron w tym przypadku jest bardzo mała, a jako´s´c bardzo słaba. Bez zb ˛ednych ana-liz mo ˙zna j ˛a wi ˛ec usun ˛a´c. Bardzo słaby wynik kategorii Recreation sprawia,

Kategoria liczba stron % wszystkich przykładów

Games 48 4,82

Business 235 23,59

News 13 1,31

Computers 105 10,54

Health 59 5,92

Society 223 22,39

Society 110 11,04

Sports 103 10,34

Recreation 100 10,04

Tablica 4.7. Udział procentowy kategorii w te´scie drugim

4.3. Przyj ˛ete rozwi ˛azania 56

klasyfikator I II III IV SUMA

I poziomu 71,24 16,16 5,49 3,25 96,14 II poziomu 25,00 7,22 4,07 2,34 38,62 III poziomu 11,69 3,66 1,42 1,22 17,99 Tablica 4.8. Wyniki klasyfikacji dla pierwszych testów

Tablica 4.9. Macierz pomyłek dla testu trzeciego

˙ze jej przydatno´s´c jest co najmniej w ˛atpliwa. Tablica 4.9 prezentuje wyniki po usuni ˛eciu kategorii Recreation oraz News.

Proces ten mo ˙zna przeprowadzi´c jeszcze dalej. Ograniczanie liczby ka-tegorii powoduje jednak, ˙ze u ˙zyteczno´s´c takiego modelu b ˛edzie stawała si ˛e coraz mniejsza. Analizie podda´c mo ˙zna te ˙z podkategorie z wybranej katego-rii. Mog ˛a to by´c np. kategorie, które s ˛a kluczowe dla zastosowania (Science) lub te, które maj ˛a najsłabsze wyniki. Przeprowadzenie całego procesu r ˛ecz-nie jest jednak bardzo czasochłonne a same czynno´sci ˛ecz-nie ró ˙zni ˛a si ˛e od tych pokazanych powy ˙zej.

4.3.8. Rozszerzanie zapytania

Dla niektórych zapyta ´n wyniki klasyfikacji s ˛a do´s´c jednoznaczne. Je´sli poszukujemy informacji o j ˛ezyku programowania Java to klasyfikacja frazy

“Java” powinna nas usatysfakcjonowa´c. Klasyfikatory na trzech pierwszych poziomach ze zdecydowan ˛a przewag ˛a przydzielaj ˛a pierwsze miejsce kate-goriom: Computers, Computers/Programming i Computers/Programmin-g/Languages (4.11).

Kategoria liczba stron % wszystkich przykładów

Games 51 5,18

Business 255 25,91

Computers 109 11,08

Health 66 6,71

Society 283 28,76

Sports 102 10,37

Science 118 11,99

Tablica 4.10. Udział procentowy kategorii w te´scie drugim

4.3. Przyj ˛ete rozwi ˛azania 57

Tablica 4.11. Klasyfikacja dla zapytania “Java”

II III

1 Society/People Society/Relationships/Dating 2 Society/Issues Society/Transgendered/Academic 3 Health/Fitness Society/Military/People

4 Computers/Internet Society/Transgendered/Crossdressing

Tablica 4.12. Klasyfikacja dla zapytania “personalization”

Zupełnie inaczej wygl ˛ada sytuacja dla takiego zapytania jak “personali-zation”. (Tab. 4.12)

Klasyfikowanie profilu

W celu szybkiego stworzenia profilu u ˙zytkownika, do systemu załadowa-nych zostało cz ˛e´s´c artykułów wykorzystazaładowa-nych w niniejszej pracy. Wyniki klasyfikacji tekstu, który powstał z poł ˛aczenia ich tre´sci znajduje si ˛e w Ta-beli 4.13.

Klasyfikowanie zapyta ´n z wykorzystaniem profilu

Wracaj ˛ac do zapytania “personalization” mo ˙zna teraz porówna´c kategorie zwrócone dla niego z kategoriami profilu. Zestawienie razem z odpowiednimi warto´sciami liczbowym znajduje si ˛e w tabeli 4.14. Stosuj ˛ac ró ˙zne strategie ł ˛aczenia wyników mo ˙zna otrzyma´c zupełnie inne rezultaty. Najprostsz ˛a z operacji jest suma rezultatów dla profilu i zapytania. Podstawowa wada takiego rozwi ˛azania to wysoka pozycja kategorii, które potencjalnie mog ˛a nie mie´c nic wspólnego z konkretnym zapytaniem a znalazły si ˛e tam tylko i

I II III Tablica 4.13. Wyniki klasyfikacji profilu powstałego z poł ˛aczenia

kilkudzie-si ˛eciu artykułów

4.3. Przyj ˛ete rozwi ˛azania 58 M(p) M(z) W(p) W(z) Iloczyn Suma Computers/Programming/Languages 3 19 3,802 0,513 1,952 4,316 Computers/Software/Internet 2 27 3,901 0,440 1,718 4,342 Computers/History/Pioneers 5 18 3,278 0,520 1,703 3,797 Computers/Software/Shareware 11 11 1,690 0,650 1,099 2,340 Society/Relationships/Dating 40 1 0,737 1,426 1,052 2,164 Computers/Hardware/Systems 6 38 2,145 0,377 0,808 2,521 Computers/Hardware/Components 10 29 1,733 0,433 0,750 2,166

Society/Issues/Health 18 13 1,153 0,597 0,689 1,751

Society/Issues/Terrorism 15 22 1,385 0,496 0,687 1,881 Computers/Systems/Apple 9 57 1,842 0,302 0,557 2,144 Society/Paranormal/Psychic 56 8 0,592 0,739 0,437 1,331 Tablica 4.14. Zestawienie kategorii profilu i wybranego zapytania (M -

miej-sce, W - wynik, z - zapytanie, p - profil)

wył ˛acznie dzi ˛eki du ˙zemu wynikowi w klasyfikacji profilu. Kolejne podej´scie to zastosowanie iloczynu. W tym przypadku zupełnie wyeliminowane mog ˛a by´c kategorie, które do tej pory nie były uwzgl ˛ednione w profilu. Mo ˙zna so-bie wyobrazi´c jeszcze wiele innych schematów stosuj ˛acych bardziej zło ˙zone operacje.

Powiązane dokumenty