• Nie Znaleziono Wyników

Celem powyższej pracy inżynierskiej jest sprawdzenie, czy wykorzystanie bibliografii wystarcza do prawidłowego grupowania publikacji naukowych. Zadaniem jest wyszukanie odpowiedniego sposobu zamodelowania danych oraz dobranie algorytmu grupującego.

Model teoretyczny rozwiązania należy zaimplementować i przetestować za pomocą stworzonej aplikacji. Wygenerowane przez aplikację rezultaty należy zbadać i porównać wszystkie zamodelowane podejścia. Analiza ma prowadzić do stwierdzenia, czy tak niewielka ilość informacji (bibliografia) jest wystarczająca do pogrupowania dokumentów naukowych.

7 1.2 Układ pracy

Praca rozpoczyna się wstępem teoretycznym. We wprowadzeniu do tematyki dziedziny, opisane są również sposoby dopasowania ogólnych rozwiązań do problemu, którym jest grupowanie publikacji naukowych na podstawie spisu literatury.

Przedstawionych jest kilka podejść zamodelowania posiadanych informacji oraz algorytmu grupującego.

Następnie zaprezentowany jest projekt i realizacja, stworzonych w ramach pracy, dwóch aplikacji. Niewielkiej aplikacji wspomagającej gromadzenie danych na temat publikacji naukowych oraz aplikacji grupującej. Główna uwaga jest zwrócona ku aplikacji grupującej dokumenty. Pokazany jest projekt rozwiązania teoretycznych modeli. Wyszczególnione są kolejne fazy grupowania oraz ogólny zarys implementacji.

Omówienie programu zawiera również opis formatu plików wejściowych i wyjściowych oraz instrukcję obsługi.

Wygenerowane przez aplikację rezultaty poddano analizie. Na wyniki grupowania wpływa wiele różnorodnych czynników. Rezultaty zostały omówione szczegółowo z podziałem na mniejsze podrozdziały. Każdy z podrozdziałów przedstawia pewne własności wykorzystanych rozwiązań. Poszczególne wnioski zostały zebrane w zakończeniu i krótko podsumowane.

2 Wprowadzenie teoretyczne

Grupowanie jest metodą eksploracji danych wykorzystywaną w wielu problemach informatycznych. Jej głównym celem jest pogrupowanie, bądź też rozdzielenie elementów z zadanego zbioru danych. Zadaniem algorytmu jest przyporządkowanie obiektów (rzeczywistych, lub abstrakcyjnych) do grup zwanych klastrami. W klastrze znajdują się obiekty podobne do siebie i odpowiednio niepodobne do obiektów znajdujących się w innych klastrach. Niektóre z algorytmów grupujących tworzą hierarchię klastrów. Grupowanie może być również wykorzystywane do znalezienia obiektów, które znacznie różnią się od reszty elementów w zadanym zbiorze danych.

Ważnym elementem każdego algorytmu grupowania jest funkcja określająca niepodobieństwo (bądź podobieństwo) pomiędzy dwoma obiektami z zadanego zbioru.

Niepodobieństwo d(i,j) pomiędzy obiektami i oraz j jest liczbą nieujemną. Wartość niepodobieństwa między dwoma identycznymi obiektami jest równa zeru: d(i,i)= 0.

Im wartość jest większa, tym bardziej obiekty się od siebie różnią. Niepodobieństwo często jest również symetryczne: d(i,j) = d(j,i) i spełnia nierówność trójkąta:

d(i,j) ≤ d(i,k)+d(k,j).

8

Istnieje wiele metod określenia funkcji niepodobieństwa. Wybór zależy od typu porównywanych obiektów. Różnorodność danych i odmiennych oczekiwań od rezultatów grupowania, zaowocowała wieloma rozwiązaniami algorytmów grupujących. Najbardziej popularne algorytmy przedstawione są w [HaKa06].

2.1 Grupowanie artykułów naukowych

Obecne standardy dotyczące pisania dokumentów naukowych dyktują ich formy zapisu. Formy te, pomagają czytelnikowi w określeniu tematyki dokumentu bez zagłębiania się w treść publikacji. Charakterystycznymi elementami każdego dokumentu naukowego są: tytuł, streszczenie, słowa kluczowe. Literatura, załączana przez każdego autora, również dostarcza przydatnych informacji. Wiedza zawarta w literaturze jest podstawą do wyliczenia metryk bibliograficznych, które mogą zostać wykorzystane do określenia podobieństwa pomiędzy dokumentami.

2.2 Metryki bibliograficzne

W [BaDe06] opisane są dwie znane metryki bibliograficzne: powiązanie bibliograficzne oraz powiązanie współcytowań. Rozpatrzmy dwa dokumenty A i B, dla których chcemy określić wartość powiązań. Powiązanie bibliograficzne jest zliczeniem sytuacji, w których zarówno A i B cytuje trzeci dokument C. Natomiast powiązanie współcytowań jest liczbą sytuacji, gdy zarówno A i B są cytowane przez C. Można założyć, iż para dokumentów z wysoką wartością metryki bibliograficznej powinna omawiać podobne zagadnienia. Dlatego też, wykorzystanie cech bibliograficznych może być odpowiednie w tworzeniu modelu danych wykorzystywanych przez algorytmy grupowania.

2.3 Model danych

Pierwszym etapem procesu grupowania jest określenie sposobu zamodelowania danych. Reprezentacja wykorzystywana w algorytmie bezpośrednio zależy od formy danych rzeczywistych elementów zbiorów danych. Informacje, jakie posiadamy w badanym problemie to: tytuł, nazwiska autorów oraz literatura każdego z grupowanych dokumentów. Podstawowym elementem wykorzystanym w grupowaniu jest literatura.

Założeniem przyjętym w pracy jest fakt, iż podobne tematycznie publikacje naukowe będą wymieniały w literaturze te same dokumenty. Dlatego też, celem jest zbadanie spisu literatury porównywanych ze sobą dokumentów. Im więcej będzie wspólnych cytowań, tym bardziej podobne będą dokumenty.

Wyodrębniając poszczególne pozycje z literatury każdej z publikacji, tworzona jest lista wszystkich prac, które wystąpiły w bibliografiach grupowanych dokumentów.

Na jej podstawie widać, które z grupowanych artykułów współdzielą cytowania. Lista cytowanych dokumentów jest reprezentowana poprzez wektor wartości binarnych, który posiada każda grupowana publikacja. W zamodelowanej sytuacji, 1 oznacza, iż cytowany dokument jest wymieniony, w literaturze publikacji.

9

Przykład. Rozpatrzmy cztery publikacje naukowe: P1, P2, P3, P4. Każda z nich we własnej literaturze wymienia odpowiednio dokumenty a-g : P1 = {a, b, c}, P2 = {a, d, g}, P3 = {e, g}, P4 = {a, c, e, f, g}. Zamodelowanie opisanych danych za pomocą wartości binarnych przedstawia tabela (Tabela 1).

Tabela 1 Wektory wartości binarnych przedstawiające, które dokumenty (a-g) występują w spisie literatury poszczególnych publikacji (P1-P4).

Publikacje

Lista cytowanych dokumentów

a b c d e f g

P1 1 1 1 0 0 0 0

P2 1 0 0 1 0 0 1

P3 0 0 0 0 1 0 1

P4 1 0 1 0 1 1 1

2.4 Niepodobieństwo

Kolejnym etapem grupowania jest wybranie odpowiedniej funkcji niepodobieństwa. Do omówionego problemu wykorzystano wzory specjalnie dedykowane zmiennym binarnym. Wykorzystano dwa główne podejścia wyliczenia wartości niepodobieństwa: symetryczne i asymetryczne. Każde z tych podejść analizuje binarne listy reprezentujące cytowane dokumenty. Przy porównaniu dwóch publikacji możliwe są cztery sytuacje (kolory są zaznaczone na przykładowej tabeli (Tabela 2) :

 Obie publikacje cytują dany dokument ( 1,1 - kolor różowy).

 Dokument jest cytowany tylko przez jedną publikację, obie sytuacje są rozróżniane ( 1,0 - kolor zielony i 0,1 - kolor niebieski).

 Obie publikacje nie cytują konkretnego dokumentu (0,0 kolor pomarańczowy).

10

Tabela 2 Kolory przedstawiają różne sytuacje rozróżniane przy porównywaniu listy cytowani dwóch publikacji.

Publikacje

Lista cytowanych dokumentów

a b c d e f g

P1 1 1 1 0 0 0 0

P2 1 0 0 1 0 0 1

2.5 Podejście symetryczne

W podejściu symetrycznym zliczane są wszystkie kombinacje 1 i 0, które mogą wystąpić przy porównaniu dwóch wektorów. Wartość niepodobieństwa dla dwóch publikacji i oraz j wyliczana jest na podstawie wzoru:

( )

(1)

gdzie:

 r – liczba cytowanych dokumentów, dla których zmienna binarna jest równa 1 dla publikacji i oraz równa 0 dla publikacji j,

 s – liczba cytowanych dokumentów, dla których zmienna binarna jest równa 0 dla publikacji i oraz równa 1 dla publikacji j,

 q – liczba cytowanych dokumentów, dla których zmienna binarna jest dla obu publikacji równa 1,

 t – liczba cytowanych dokumentów, dla których zmienna binarna jest dla obu publikacji równa 0.

Przykład. Odnosząc się do wartości z tabeli (Tabela 1) wartość niepodobieństwa dla przykładowych danych wynosi odpowiednio:

( )

( )

11 ( )

2.6 Podejście asymetryczne

W podejściu asymetrycznym ignorowana jest sytuacja, gdy obie publikacje nie cytują konkretnego dokumentu. Niepodobieństwo, dla takiego przypadku jest reprezentowane poniższym wzorem:

( )

(2)

gdzie:

 r – liczba cytowanych dokumentów, dla których zmienna binarna jest równa 1 dla publikacji i oraz równa 0 dla publikacji j,

 s – liczba cytowanych dokumentów, dla których zmienna binarna jest równa 0 dla publikacji i oraz równa 1 dla publikacji j,

 q – liczba cytowanych dokumentów, dla których zmienna binarna jest dla obu publikacji równa 1.

Przykład. Odnosząc się do wartości z tabeli (Tabela 1) wartość niepodobieństwa dla przykładowych danych wynosi odpowiednio:

( )

( )

( )

Po przekształceniu wzoru otrzymamy znany wzór na wyliczenie wartości podobieństwa, znane jako współczynnik Jaccarda:

( )

( ) (3)

12

W obu przedstawionych podejściach im mniejsza wartość niepodobieństwa, tym bardziej zbliżone tematycznie są porównywane publikacje. Wszystkie wzory zostały zaczerpnięte z [HaKa06].

2.7 Niepodobieństwo zdań

Odmiennym sposobem na określenie niepodobieństwa między dwoma publikacjami jest wykorzystanie informacji zawartej w tytule. W przeciwieństwie do wcześniej omówionego modelu, nie jest wykorzystywana literatura, natomiast inna cecha dokumentu naukowego - tytuł. Tytuły dokumentów naukowych zazwyczaj zawierają słowa kluczowe, które informują o tematyce pracy.

Określenie niepodobieństwa dwóch publikacji naukowych sprowadza się do określenia relacji między dwoma tytułami. Do określenia niepodobieństwa pomiędzy zdaniami wykorzystane zostało podejście TF-IDF. Jest to popularna metoda ważenia termów, wykorzystywana w eksploracji tekstu. Zazwyczaj jest ona używana w przypadku wektorowej reprezentacji całych dokumentów [MaSc00]. Metoda obliczania wartości wagi słów zredukowana do pojedynczych zdań, dokładniej została opisana w [MBCM05]. W pracy inżynierskiej wykorzystano zaproponowany, w cytowanej publikacji, sposób wyznaczenia podobieństwa między dwoma zdaniami Q i R :

( ) ∑ ( ) ( ) ( )

(4)

gdzie:

- liczba wystąpień słowa „w” w zdaniu Q

- liczba wystąpień słowa „w” w zdaniu R

 - liczba tytułów, w których występuje słowo „w”

 - liczba wszystkich tytułów

Powyższy wzór został przekształcony z podobieństwa na niepodobieństwo.

Początkowo, wartość podobieństwa zredukowano do przedziału [0,1], dzieląc przez liczbę elementów zbioru . Następnie, wartość odjęto od 1, uzyskując wzór na niepodobieństwo:

( ) ( )

(5)

Podobnie jak w poprzednich przypadkach, im mniejsza wartość niepodobieństwa, tym bardziej podobne są porównywane dokumenty.

13 2.8 Algorytm grupowania

W pracy wykorzystano hierarchiczny algorytm grupujący, którego wynikiem jest drzewo klastrów. Poza pogrupowaniem obiektów, pokazuje ono również hierarchię pomiędzy klastrami. Znane są dwa główne podejścia grupowania hierarchicznego:

aglomeracyjne i podziałowe. Ich główną różnicą jest proces tworzenia drzewa. W podejściu aglomeracyjnym początkowo, wszystkie obiekty znajdują się w oddzielnych klastrach. W kolejnych iteracjach algorytmu, łączone są ze sobą dwa najbliższe klastry.

Algorytmy podziałowe działają odwrotnie. Algorytm rozpoczyna działanie z jednym klastrem, w którym znajdują się wszystkie obiekty. W kolejnych iteracjach klastry dzielone są na dwa mniejsze. W obu przypadkach otrzymujemy zarysowaną hierarchię klastrów, którą można zaobserwować na przykładowym rysunku (Rysunek 1).

Rysunek 1 Reprezentacja dwóch podejść grupowania hierarchicznego: aglomeracyjnego i podziałowego.

W pracy wykorzystany został aglomeracyjny algorytm hierarchiczny. Jak wspomniano wyżej, w stanie początkowym, każda publikacja jest umieszczona w oddzielnym klastrze. W każdym kroku algorytmu łączone są dwa najbardziej podobne klastry. Do określenia niepodobieństwa między klastrami wykorzystano trzy metody ([HaKa06]):

 prostych połączeń:

( ) |, (6)

 zupełnych połączeń:

( ) , (7)

14

 średnich połączeń:

( ) ∑ , (8)

gdzie:

 - odległość pomiędzy dwoma obiektami z klastrów ,,

 – liczba obiektów w klastrze ,

 – liczba obiektów w klastrze .

Każda z metod charakteryzuję się innym drzewem wynikowym klastrów.

Rysunek poniżej (Rysunek 2 zaczerpnięty z [HTF09]) przedstawia dendrogram powstały w wyniku użycia poszczególnej metody.

Algorytm kończy działanie, gdy wszystkie dokumenty znajdą się w jednym klastrze, bądź gdy wartość niepodobieństwa pomiędzy scalanymi klastrami uzyska zadany przez użytkownika próg.

Więcej informacji na temat algorytmu i każdej z metod można znaleźć w [HTF09].

Rysunek 2 Dendrogramy przedstawiające drzewo klastrów metody średnich, zupełnych i prostych połączeń. Grafika zaczerpnięta z [HTF09].

15 2.9 Metody oceny jakości grupowania

Istotnym punktem każdego procesu grupowania jest określenie jakości algorytmu grupującego. Ocena rezultatów często jest subiektywna i zależna od oczekiwań użytkowników. Osoba z łatwością oceni wyniki grupowania na podstawie reprezentacji graficznej oraz skonfrontuje je z własnymi wymaganiami. Przy analizie badawczej rezultatów wymagane są liczbowe wyznaczniki. Jednym ze sposobów określenia jakości grupowania jest porównanie wyników algorytmu ze zdefiniowanymi klasami, które wyznaczają prawidłowy podział na grupy. W pracy wykorzystano kilka metod oceny jakości grupowania. Wszystkie z nich opierają się porównaniu rezultatów z zadanymi klasami.

2.9.1 Precyzja i odzysk

Precyzja i odzysk są znanymi miarami wykorzystywanymi w wyszukiwaniu informacji. Wyliczane dla każdej pary (klasa, klaster) powstałej w wyniku działania algorytmu grupowania, odpowiadają na pytania:

 Precyzja – Ile publikacji przynależy do badanego klastra?

 Odzysk - Czy wszystkie publikacje z danej klasy są w badanym klastrze?

Używając notacji zaproponowanej w [SKK00], równania dla klasy i oraz klastra j prezentują się następująco:

precyzja:

( ) , (9)

odzysk: ( ) , (10)

gdzie:

liczba dokumentów z klasy i w klastrze j ,

 liczba dokumentów w klasie i,

 liczba dokumentów w klastrze j.

Precyzja i odzysk są miarami przeciwstawnymi. Im większa jest wartość precyzji, tym mniejsza odzysku i odwrotnie.

2.9.2 F- miara

Połączeniem precyzji i odzysku jest F-miara. Funkcja F(i,j) to średnia harmoniczna obu wartości dla klasy i oraz klastra j:

( ) ( ) ( )

( ) ( ) (11)

16

Natomiast F-miara określająca jakość całego procesu grupowania jest średnią ważoną ze wszystkich pojedynczych funkcji F, przedstawioną poniżej:

∑ ( ) (12)

gdzie n jest to liczba grupowanych dokumentów, a maksimum funkcji F jest wybierane spośród wszystkich klastrów.

2.9.3 Czystość

Inną proponowaną przez [YoHu06] miarą jakości grupowania jest czystość.

Czystość klastra wyznacza procent obiektów z dominującej klasy w klastrze. Jest to maksymalna wartość precyzji we wszystkich klasach. Czystość całego grupowania, podobnie jak F-miara, jest reprezentowana średnią ważoną przedstawioną poniżej (dla klasy i, klastra j) :

∑ ( ) (13)

2.9.4 Entropia

Entropia jest wyznacznikiem, jak obiekty z konkretnej klasy są rozlokowane w klastrach. Tak jak w przypadku F-miary i czystości, wykorzystywana jest średnia ważona poszczególnych entropii. Natomiast, aby czytelniej przedstawić wartość jakości całego grupowania, entropia jest również normalizowana, co w efekcie daje poniższe równanie:

∑ ∑ ( ) ( ) (14) gdzie n jest to liczba grupowanych dokumentów, a k jest to liczba klas (wzór zaczerpnięty z [YoHu06]).

Należy zwrócić uwagę, iż im mniejsza wartość entropii tym lepsza jest jakość badanego grupowania. Odwrotna sytuacja jest w innych przedstawionych metodach.

Większa wartość F-miary i czystości reprezentuje lepszą jakość grupowania.

17

3 Projekt i implementacja

W ramach pracy dyplomowej stworzone zostały dwie aplikacje. Pierwsza z nich, ma na celu zebranie istotnych informacji na temat publikacji naukowych. Natomiast główna aplikacja, wczytuje zebrane dane i poddaje je grupowaniu, wykorzystując wspomniany model wyliczania niepodobieństwa oraz podejścia algorytmu grupującego.

3.1 Aplikacja „Pobieranie dokumentów”

Aplikacja „Pobieranie dokumentów” realizuje etap wstępny odkrywania wiedzy jakim jest zbieranie danych. Gromadzenie informacji wykorzystywanych w eksploracji danych jest zazwyczaj bardzo praco i czasochłonny.

3.1.1 Wymagania

Głównym celem postawionym aplikacji jest zautomatyzowanie wyszukiwania i pobierania informacji, dotyczących publikacji naukowych. Wymagana jest prostota obsługi. Użytkownika definiuje jedynie tematykę publikacji. Program sam łączy się z portalem internetowym oraz odnajduje publikacje o zadanej tematyce. Rezultaty wyszukiwania zapisuje w pliku wyjściowym. Format pliku spełnia wymogi pliku wejściowego dla aplikacji grupującej.

3.1.2 Realizacja

Wymagane informacje na temat publikacji naukowych (tytuł, autorzy, literatura) są łatwo dostępne w wielu naukowych portalach internetowych. Aplikacja eksploruje informacje składowane przez portal ACM Digital Library [WWWACM].

Generacja pliku wyjściowego z informacjami o publikacjach Pobranie frazy

od użytkownika

Połączenie się z portalem ACM

Wyszukanie publikacji o tematyce z zadanej frazy

Wyszukanie odnośników do stron szczegółowych

Analiza stron szczegółowych

Rysunek 3 Schemat etapów działania aplikacji „Pobieranie dokumentów”.

18

Kolejne etapy działania programu przedstawione są na powyższym schemacie.

Aplikacja początkowo pobiera informacje od użytkownika: wyszukiwaną frazę oraz liczbę publikacji do odszukania. Program wyzwala wyszukiwanie publikacji w portalu ACM Digital Library [WWWACM] na podstawie zadanej frazy. Następnie analizuje stronę z rezultatami wyszukiwania. Odnajduje odnośniki do kolejnych zaproponowanych podstron o publikacjach. Przechodzi do stron szczegółowych, z których wyłuskuje pożądane informacje. Wszystkie odnalezione dane zapisuje w pliku wyjściowym.

Aplikacja zrealizowana została w języku Scala. Jest to język programowania działający na wirtualnej maszynie Javy. Łączy on cechy języków obiektowych i funkcyjnych. Język zapewnia dużo uproszczeń i funkcji, zachowując przy tym przejrzystość kodu. Więcej na temat języka programowania można znaleźć na głównej stronie internetowej [WWWSCL].

Główne działania programu to analiza kodu HTML podstron portalu.

Do łatwiejszego poruszania się po kodzie źródłowym witryn, wykorzystywany został parser TagSoup [WWWTAG]. Jest to napisany w Javie parser uporządkowujący, nierzadko trudny do analizy, kod HTML. Za pomocą wygenerowanych przez bibliotekę reprezentacji podstron, aplikacja wyszukuje istotnych informacji.

3.1.3 Obsługa programu

Obsługę programu ułatwia graficzny interfejs użytkownika. Pobranie informacji o publikacjach sprowadza się do wykonania kilku kroków:

Rysunek 4 Graficzny interfejs obsługi aplikacji „Pobieranie dokumentów”

19

a) Wybranie z listy typu podawanej sentencji.

Fraza oznacza podanie frazy w języku angielskim, np. „iris recognition”.

Pobrane zostaną dokumenty, które podpowie wyszukiwarka portalu ACM Digital Library [WWWACM]. Wybierając opcję link, w polu można wstawić bezpośredni link do pierwszej strony rezultatów wyszukiwania portalu (zakładka Search Results).

b) Wybranie liczby dokumentów do pobrania.

W przypadku wpisania frazy nazwa pliku wyjściowego jest taka sama jak zadana fraza. Natomiast pobrane informacje z zadanego odnośnika zapisywane są w pliku „link.txt”.

3.2 Aplikacja „Grupowanie publikacji naukowych”

Podstawową aplikacją wykonaną w ramach pracy inżynierskiej jest aplikacja grupująca publikacje naukowe. Implementuje ona wcześniej wspomniane teoretyczne rozwiązania problemu. Przy wykorzystaniu rezultatów generowanych przez aplikację, zrealizowano analizę poprawności teoretycznego podejścia w grupowaniu rzeczywistych danych.

3.2.1 Wymagania

Podstawowym wymaganiem stawianym aplikacji jest implementacja omówionego wcześniej modelu wyliczania niepodobieństwa oraz wspomnianych podejść hierarchicznego algorytmu grupowania. Kolejnym istotnym wymaganiem jest umożliwienie wykonania badań na podstawie wygenerowanych przez program rezultatów. Dlatego też, aplikacja powinna wyliczać miary jakości dla każdego wykonanego grupowania. Badania wykonywane są na danych rzeczywistych przechowywanych w plikach tekstowych. Aplikacja grupująca ma za zadanie wczytać informacje z plików, poddać je grupowaniu, a jego rezultaty również zapisać w pliku tekstowym. Poza aspektem badawczym, wymagane jest przystosowanie aplikacji do interakcji z użytkownikiem. Powinna być wyposażona w prosty interfejs użytkownika oraz intuicyjną reprezentację wyników.

3.2.2 Metoda rozwiązania problemu

W pojedynczym grupowaniu można wyodrębnić trzy główne fazy wykonywane przez program. Pierwsza, analizuje pliki tekstowe z informacjami o publikacjach i tworzy reprezentację danych. Druga, to faza wstępna grupowania. Tworzona jest w niej macierz niepodobieństwa pomiędzy wszystkimi załadowanymi dokumentami. Ostatnia faza to wywołanie algorytmu grupującego

20 Reprezentacja danych – faza 1

Informacje o publikacjach naukowych należy odpowiednio przygotować i stworzyć reprezentację wygodną w późniejszym grupowaniu. Model takiej reprezentacji opiera się na kilku podstawowych strukturach:

 Dokument – struktura reprezentująca dokumentu naukowego, przechowująca tytuł

i autorów. Wykorzystywana do modelowania pozycji w spisie literatury.

 Publikacja – obiekt poddawany grupowaniu. Poza informacjami, które dziedziczy po Dokumencie, przechowuje dodatkowo informację o Dokumentach, które znajdują się w jego bibliografii.

 Wektor Publikacji – przechowuje wszystkie załadowane publikacje naukowe poddawane grupowaniu.

 Wektor Dokumentów – przechowuje wszystkie Dokumenty (bez powtórzeń), które pojawiły się w bibliografiach grupowanych publikacji.

Model tworzony jest dynamicznie wraz z wczytywaniem kolejnych publikacji naukowych z plików tekstowych. Przed dodaniem nowego Dokumentu i Publikacji sprawdzane jest, czy dodawany obiekt nie znajduje się już w wektorze. Operacje te nadają fazie złożoność kwadratową. Czasochłonne jest również przechodzenie plików tekstowych. Brak jednolitości w zapisie pozycji bibliografii skutkuje dopasowywaniem pobieranych linii tekstu do kilku wzorców zapisu.

Macierz niepodobieństwa – faza 2

Załadowanie wszystkich plików i stworzenie reprezentacji danych umożliwia stworzenie macierzy niepodobieństwa. Macierz ta przechowuje informacje o niepodobieństwie pomiędzy wszystkimi publikacjami.

Tabela 3 Macierz niepodobieństwa pomiędzy publikacjami P1 – P4.

P1 P2 P3 P4 P1 0

P2 0,3 0 P3 0,6 0,3 0 P4 0,1 0,4 0,2 0

Uzupełnienie macierzy sprowadza się do wyliczenia niepodobieństwa dla każdej pary publikacji znajdujących się w wektorze. Obliczenie niepodobieństwa na podstawie

21

spisu literatury, to analiza dwóch wektorów o długości równej liczbie cytowanych dokumentów. Taką operację należy wykonać dla połowy macierzy. W najgorszym przypadku złożoność fazy to O(p2r), gdzie p jest liczbą publikacji, a r liczbą cytowań.

Grupowanie – faza 3

Hierarchiczny algorytm grupowania, w każdej iteracji, tworzy nowy klaster składający się dwóch innych najbardziej do siebie podobnych. Rezultatem jego działania jest drzewo klastrów. Algorytm przeszukuje połowę macierzy niepodobieństwa wyszukując najniższą wartość. Następnie tworzy klaster składający się z dwóch znalezionych. Do macierzy dodawana jest nowo stworzona grupa.

W zależności od podejścia algorytmu (prostych, zupełnych, średnich połączeń), wyliczana jest wartość niepodobieństwa powstałego klastra z innymi. Wyliczone wartości są wpisywane do dodanych komórek macierzy. Stare klastry zostają ignorowane w następnych iteracjach. W najgorszym przypadku algorytm kończy działanie, gdy w macierzy pozostanie tylko jedna grupa. Pojedyncza iteracja algorytmu ma złożoność kwadratową. Przyjmując najgorszy przypadek, iteracji jest o jeden mniej niż wszystkich publikacji, co po uwzględnieniu daje złożoność do trzeciej potęgi.

Analiza czasowa faz

Porównanie wyników zawartych w tabeli (Tabela 4) daje poglądowe spojrzenie na czasy wykonania poszczególnych etapów grupowania. Łatwo dostrzegalne jest, iż faza pierwsza wykonuje się o wiele dłużej od pozostałych. Czas jej wykonywania głównie zależny od liczby referencji. Liczba referencji w połączeniu z kosztownymi operacjami wydobycia informacji z plików tekstowych skutkuje niekorzystnymi rezultatami czasowymi. Faza druga jest zależna od obu parametrów z większym nastawieniem na liczbę grupowanych publikacji. Natomiast czasy wykonywania fazy trzeciej zależne są jedynie od liczby publikacji grupowanych.

Tabela 4 Czasy wykonywania (w milisekundach) poszczególnych faz grupowania dla różnych zbiorów danych.

22 3.2.3 Implementacja

Aplikacja została zaimplementowana przy pomocy języka programowania Scala. Pliki źródłowe aplikacji podzielone są na pakiety, widoczne na rysunku (Rysunek 5). Tematycznie organizują one kod programu, zwiększając jego czytelność. Dla każdego z pakietów zostaną omówione istotne klasy i metody programu.

Rysunek 5 Diagram pakietów oraz głównych klas aplikacji „Grupowanie publikacji naukowych”.

Rysunek 5 Diagram pakietów oraz głównych klas aplikacji „Grupowanie publikacji naukowych”.

Powiązane dokumenty