progress

[6.12.2007] Parser plikow HTML zrobiony (+ekstrakcja dodatkowych informacji z tagow META). Stemming zrobiony. Zaimplementowalem do mojego programu stemmer dla j. angielskiego uzywajacy algorytmu Porter2 z: [|http://snowball.tartarus.org/] Wyniki: [|diffs.txt] Wpadlem na pomysl korekcji stemow. Po przejsciu algorytmem Portera wiele slow jest bez sensu. Moze da sie je skorygowac: - dodajac na koncu stemu odpowiednie litery, tak żeby stworzone zostalo istniejace slowo, - porownywanie z bledem (1-2).

Sciagnalem strony z NTU. Jutro, badz pojutrze przeprowadze kilka eksperymentow i zobacze na ile da sie je sklasteryzowac roznymi metodami. Znalazem kojeny problem, gdyz wlasciciele stron uzywaja ramek co znacznie komplikuje sprawe. Wiele dokumentow zapisanych recznie jest pustych po wstepnym przetwarzaniu. Byc moze lepiej skupic sie na pajaku zanim rozpoczne wygladzanie semantyczne? Mam kilka pomyslow, zobacze co z tego wyjdzie.

Co teraz? - eksperymenty z klasteryzacja, - poswiece troche czasu pajakowi, - wrzuce gdzies publicznie kod zrodlowy, byc moze koledzy beda doradzac w sprawie API.

[8.12.2007] Dodałem kilka nowych rzeczy do kodu. Udało mi sie połączyć wszystkie elementy (parsowanie + stop lista + stemming). Niestety muszę powiedzieć, ze eksperymenty wyszły bardzo słabo. Dodałem obsługę zapisu do formatu Arff i używałem algorytmu Simple-K-Means z pakietu "Weka". Za dane posłużyły mi strony NTU zapisane ręcznie do formatu html.

Wyniki:

Metoda - "surowa", [|01.arff], [|weka01.txt] Metoda - "stemming", [|02.arff], [|weka02.txt] Metoda - "stop lista", [|03.arff], [|weka03.txt] Metoda - "stemming + stop lista", [|04.arff], [|weka04.txt]

Co teraz? - to samo tylko celniej i lepiej.

[10.12.2007] Zebralem jeszcze raz strony NTU recznie lacznie ze wszystkimi podstronami dla danego pracownika. Przykladowo strony: http://www.ntu.edu.sg/home/aswtcai/ http://www.ntu.edu.sg/home/aswtcai/interests.htm http://www.ntu.edu.sg/home/aswtcai/grants.htm http://www.ntu.edu.sg/home/aswtcai/activities.htm http://www.ntu.edu.sg/home/aswtcai/projects.htm http://www.ntu.edu.sg/home/aswtcai/publications.htm potraktowalem jako pojedynczy dokument. Wyniki sa lepsze, ale nadal mizerne.

Wyniki:

Metoda - "surowa", [|raw.arff], [|raw.txt] Metoda - "stoplista", [|stoplist.arff], [|stoplist.txt] Metoda - "stoplista + stemming", [|stoplist + stemming.arff], [|stoplist + stemming.txt]

Co teraz? - dodawanie synonimow z WordNet'u.

[13.12.2007] Zaczalem bawic sie z WordNet'em. Na razie bez wygladzania. Eksperymentowalem z usowaniem slow z dokumentow, ktore nie wystepuja w slowniku (np. guangzhou, usaacademiafaculti i inne obce wyrazy oraz nazwy wlasne). Dla mniejszej ilosc dokumentow tzn. dokument == link, bez dodatkowego organizowania podstron, najlepszy wynik jaki udalo mi sie uzyskac:

Scheme: weka.clusterers.SimpleKMeans -N 4 -S 11 Relation: test Instances: 67 Attributes: 2896

Clustered Instances

0 6 ( 9%) 1 43 ( 64%) 2 1 ( 1%) 3 17 ( 25%)

Co teraz? - wiecej WordNet'u.

[15.12.2007] Sprobowalem dodawac najblizsze synonimy do dokumentow, wyniki byly podobne. Trzeba bedzie kierowac sie ontoligiami gdyz dla przykladu mamy:

member -&gt; penis -&gt; phallus

Zla wiadomosc to taka, ze nie ma dobrego API do wyciagania danych. Sam WordNet jako aplikacja wyoknywalna kiepsko do tego sie nadaje. Znalazlem projekt studenta z MIT http://mfwallace.googlepages.com/jawbone.html jednak API, ktore dostarcza nie przechowuje slow w pamieci lecz za kazdym razem wczytuje je na nowo. Z tym wlasnie API, wykonanie wygladzania dla uproszczonej wersji dokumetu trwalo kilkanascie minut!

Co teraz? - API do WordNet'u, - zajac sie ontologiami.

[18.12.2007] Staralem sie usprawnic dzialanie calego procesu oraz napisalem kod do obslugi WordNet'u. Znalezienie synsetow dla 3600 termow ( tyle ma mniejsza probka stron z NTU na ktorej testuje) zajmuje 40 minut!!!!!!!. Dodalem wczytywanie z pliku wczesniej znalezionych synsetow... Z ostatnich testow wynika:

Scheme: weka.clusterers.SimpleKMeans -N 4 -S 11 Classes to cluster evaluation:

raw: Incorrectly clustered instances : 43.0 64.1791 %

stoplist: Incorrectly clustered instances : 43.0 64.1791 %

stemming: Incorrectly clustered instances : 43.0 64.1791 %

stoplist + stemming: Incorrectly clustered instances : 44.0 65.6716 %

smoothing: Incorrectly clustered instances : 43.0 64.1791 %

stoplist + smoothing: Incorrectly clustered instances : 43.0 64.1791 %

stemming + smoothing: Incorrectly clustered instances : 45.0 67.1642 %

stoplist + stemming + smoothing: ncorrectly clustered instances : 43.0 64.1791 %

Im wiecej krokow dodaje tym gorsza klasteryzacja. Wygladzanie jest dla wszystkich najblizszych termow, to trzeba zmienic. Czemu stemming nic nie poprawia?

Co teraz? - korekta wyrazow - wygladzanie - drobne, poprawki

[02.01.2008] Kombinowalem z roznymi stoplistami pozbywajac najczesciej pojawiajacych sie wyrazow w jezyku angielskim (do 1000): [|http://mi007.wikispaces.com/page/edit/progress] oraz uzywalem listy z filtra antyspamowego SpamAssasin: http://wiki.apache.org/spamassassin/BayesStopList. Co do korekty wyrazow, stosowalem 2 metody. a) dodawanie najkrotszych koncowek, aby slowo byo w wordnecie b) wywalanie slow, ktore nie znajduja sie na liscie.

Wyniki nie są lepsze...

Classes to Clusters:

0 1 2 3 <-- assigned to cluster 1 8 0 3 | Division_of_Computer_Communications 3 9 1 5 | Division_of_Computer_Science 1 14 0 3 | Division_of_Computing_Systems 2 11 0 6 | Division_of_Information_Systems

Incorrectly clustered instances : 44.0 65.6716 %

Zdążyłem spojrzeć na ontologie PACS. Jeszcze nie probowalem znajdywac zadnych kolokacji, recznie kilka udalo sie odnalesc.

Co teraz? - wykrywanie koncepcji (analiza stron pod katem kolejnosci wystepowania wyrazow), wykrywanie kolokacji (tu trzeba bedzie miec ontologie) - ontologie -> strony, strony -> ontologie

[09.01.2008] Przeprowadzilem nowe eksperymenty na stronach z "School of Electrical & Electronic Engineering". Ogolnie to strony nie klasteryzuje sie w ogole lepiej, chociaz w duzej mierze zalezy to od poczatkowej wartosci SEED. Co widac to wzrost celnosci przy stosowaniu roznych technik (nie tak jak to bylo w przypadku stron SCE, gdzie roznice byly 1%-2%). Dodatkowo wzbogacilem program o opcje wyrzucania slow, ktore wystepuja mniej niz n razy we wszyskich dokumentach. Testowalem zgodnie z Forman'em dla n < 3.

Pelny raport 8 niezaleznych testow jest tutaj: [|exp.txt]

W skrocie:

RAW: Incorrectly clustered instances : 119.0 67.2316 %

RAW + RARE REMOVE: Incorrectly clustered instances : 132.0 74.5763 %

STOPLIST: Incorrectly clustered instances : 117.0 66.1017 %

STOPLIST + RARE REMOVE: Incorrectly clustered instances : 133.0 75.1412 %

STOPLIST + STEMMING: Incorrectly clustered instances : 103.0 58.1921 %

STOPLIST + STEMMING + RARE REMOVE: Incorrectly clustered instances : 126.0 71.1864 %

STOPLIST + STEMMING + KOREKTA: Incorrectly clustered instances : 126.0 71.1864 %

STOPLIST + STEMMING + KOREKTA + RARE REMOVE: Incorrectly clustered instances : 133.0 75.1412 %

Wnioski: - wyrzucanie rzadkich wyrazow nigdy nie pomaga, (czemu?) - stop lista i stemming daja dobre rezultaty, - korekta dziala slabo, tu jeszcze mam pomysl na usprawnienie

Tu sa przykladowe rzadko wystepujace wyrazy, ktore byly usowane: Dane - raw, wyrzucono 3717 slow: [|rare_words1.txt] Dane - stoplist + stemming + korekta + rare remove, wyrzucono 896 slow: [|rare_words2.txt]

[17.01.2008] Nowe eksperyment ze skladaniem wyrazow i wywalaniem czestych wyrazow. W sumie we wszystkich dokumentach zlozono 296 wyrazow razem (wyrazy z ACM classification scheme). Zamiescilem kilka przykladowych eksperymentow, wyniki sa we wszystkich przypadkach lepsze, jedynie sama stoplista daje slabe wyniki oraz najlepszy wynik w tych eksperymentacj jest o 3% gorszy od poprzednich. Skladanie wyrazow zmierza w dobra strone jednak wywalanie czestych raczej nie - jest ich zaledwie ~40. Probowalem zrobic to samo dla phrasal verbs, jednak z mojej listy nie znajduje ani jednego na zadnej ze stron.

Do processu stemmingu trzeba dorzucic wszystkie nieregularne czasowniki, gdyz sa to stronu biograficzne i kazdy pisze w czasie przeszlym. Porter2 dziala tylko na suffixach.

Stoplista + Stemming = zawsze najlepsza celnosc.

EKSPERYMENT 1 (dane - raw): Instances: 177 Attributes: 5574

Klasteryzacja:

0 1 2 3 4 5 <-- assigned to cluster 0 18 0 2 0 1 | Division_of_Circuits_&_Systems 4 24 4 0 0 0 | Division_of_Communication_Engineering 0 29 2 0 0 0 | Division_of_Control_&_Instrumentation 0 21 17 0 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 16 2 0 2 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 118.0 66.6667 %

EKSPERYMENT 2 (dane - stoplista): Instances: 177 Attributes: 5403

0 1 2 3 4 5 <-- assigned to cluster 0 19 0 1 0 1 | Division_of_Circuits_&_Systems 5 24 3 0 0 0 | Division_of_Communication_Engineering 0 30 1 0 0 0 | Division_of_Control_&_Instrumentation 0 29 9 0 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 19 0 0 1 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 127.0 71.7514 %

EKSPERYMENT 3 (dane - stoplista + stemming): Instances: 177 Attributes: 4289

0 1 2 3 4 5 <-- assigned to cluster 0 14 1 4 1 1 | Division_of_Circuits_&_Systems 8 20 3 0 0 1 | Division_of_Communication_Engineering 0 28 3 0 0 0 | Division_of_Control_&_Instrumentation 0 17 20 1 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 16 1 0 3 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 108.0 61.0169 %

EKSPERYMENT 4 (dane - stoplista + stemming + usuwanie czestych wyrazow): Removed: 39 Instances: 177 Attributes: 4250

0 1 2 3 4 5 <-- assigned to cluster 0 17 0 3 0 1 | Division_of_Circuits_&_Systems 7 22 3 0 0 0 | Division_of_Communication_Engineering 0 30 1 0 0 0 | Division_of_Control_&_Instrumentation 0 31 7 0 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 18 0 0 2 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 124.0 70.0565 %

[5.3.2008] Przebudowuje caly program, zeby ulatwilc wykonywanie i laczenie pewnych technik. Probuje zrobic cos w postaci grafu w Knime lub drzewa ktore jest w RapidMinerze. W sensie sami z poziomu aplikacji wybieramy z dowolnych metod kolejnosc wykonania przykladowo:

-> jakas_stoplista -> stemming -> znowu_jakas_stoplista -> wygladzanie

utd...

Poprawilem algorytm usowania tagow.

[20.3.2008] o przerobionym parerze.

Simple K-Means:

--- RAW ---

Instances: 177 Attributes: 5492

0 1 2 3 4 5 <-- assigned to cluster 0 18 0 2 0 1 | Division_of_Circuits_&_Systems 4 24 4 0 0 0 | Division_of_Communication_Engineering 0 29 2 0 0 0 | Division_of_Control_&_Instrumentation 0 26 12 0 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 17 2 0 1 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 124.0 70.0565 %

sTOPLIST

Instances: 177 Attributes: 5442

0 1 2 3 4 5 <-- assigned to cluster 0 17 1 2 0 1 | Division_of_Circuits_&_Systems 5 21 6 0 0 0 | Division_of_Communication_Engineering 0 30 1 0 0 0 | Division_of_Control_&_Instrumentation 0 24 14 0 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 16 2 0 2 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 120.0 67.7966 %

STOPLIST + STEMMING

Instances: 177 Attributes: 4298

0 1 2 3 4 5 <-- assigned to cluster 0 12 3 4 1 1 | Division_of_Circuits_&_Systems 12 11 8 0 0 1 | Division_of_Communication_Engineering 1 25 5 0 0 0 | Division_of_Control_&_Instrumentation 0 15 22 1 0 0 | Division_of_Information_Engineering 0 32 0 0 1 1 | Division_of_Microelectronics 0 13 3 0 4 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 103.0 58.1921 %

STOPLIST + STEMMING + RARE

Instances: 177 Attributes: 1589

0 5 ( 3%) 1 158 ( 89%) 2 8 ( 5%) 3 3 ( 2%) 4 1 ( 1%) 5 2 ( 1%)

Class attribute: class Classes to Clusters:

0 1 2 3 4 5 <-- assigned to cluster 0 18 0 2 0 1 | Division_of_Circuits_&_Systems 5 25 2 0 0 0 | Division_of_Communication_Engineering 0 31 0 0 0 0 | Division_of_Control_&_Instrumentation 0 32 5 1 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 18 1 0 1 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 130.0 73.4463 %

STOPLIST + STEMMING + RARE + OFTEN

Instances: 177 Attributes: 1565

0 1 2 3 4 5 <-- assigned to cluster 0 18 0 2 0 1 | Division_of_Circuits_&_Systems 3 29 0 0 0 0 | Division_of_Communication_Engineering 0 31 0 0 0 0 | Division_of_Control_&_Instrumentation 0 33 4 1 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 19 0 0 1 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 133.0 75.1412 %

Znowu STOPLIST + STEMMING najlepsze!

Affinity Propagation:

--- RAW ---

Klastrow: 7 [|idx1.txt]

sTOPLIST

Klastrow: 7 [|idx2.txt]

STOPLIST + STEMMING

Klastrow: 7 [|idx3.txt]

STOPLIST + STEMMING + RARE

Klastrow: 9 [|idx4.txt]

STOPLIST + STEMMING + RARE + OFTEN

Klastrow: 7 [|idx5.txt]

Wyniki beznadziejne. Ilosc klastrow w miare, ale wiekszosc wszystkie wpadaja do jednego klastra, reszta pojedyncze.

Zrobilem stopliste ze slow (tylko kilka), ktore maja najwyzsze information gain i wywalilem te pospolite, badz nie majace (chyba) znacznenia. Wynik lepszy o 1%.

Instances: 177 Attributes: 4278

0 1 2 3 4 5 <-- assigned to cluster 1 11 3 4 1 1 | Division_of_Circuits_&_Systems 12 10 8 0 0 2 | Division_of_Communication_Engineering 1 25 5 0 0 0 | Division_of_Control_&_Instrumentation 0 16 22 0 0 0 | Division_of_Information_Engineering 0 33 0 0 0 1 | Division_of_Microelectronics 1 13 2 0 4 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 102.0 57.6271 %

[26.3.2008] Affinity Propagation (odleglosc cosinusowa):

RAW: Klastrow: 22 [|idx11.txt]

STOPLIST: Klastrow: 27 [|idx22.txt]

STOPLIST + STEMMING: Klastrow: 24 [|idx33.txt]

STOPLIST + STEMMING + RARE: Klastrow: 23 [|idx44.txt]

Skorzystalem z algorytmu klasteryzujacego ze strony http://www.borgelt.net//cluster.html niestety w/g wyniku przynaleznosc danego dokumentu do kazdego klastra jest taka sama: [|raw5.out]

[2.4.2008]

Jeszcze raz porownanie metod...

(k-means)

RAW:

(0-1)

0 1 2 3 4 5 <-- assigned to cluster 0 18 0 2 0 1 | Division_of_Circuits_&_Systems 4 24 4 0 0 0 | Division_of_Communication_Engineering 0 29 2 0 0 0 | Division_of_Control_&_Instrumentation 0 26 12 0 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 17 2 0 1 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 124.0 70.0565 %

(0-1 + normalizacja)

0 1 2 3 4 5 <-- assigned to cluster 0 0 11 8 0 2 | Division_of_Circuits_&_Systems 10 3 12 2 1 4 | Division_of_Communication_Engineering 0 10 16 4 1 0 | Division_of_Control_&_Instrumentation 0 2 30 6 0 0 | Division_of_Information_Engineering 1 4 13 7 2 7 | Division_of_Microelectronics 0 3 13 1 2 2 | Division_of_Power_Engineering

Incorrectly clustered instances : 110.0 62.1469 %

(0-n)

0 1 2 3 4 5 <-- assigned to cluster 0 19 0 1 0 1 | Division_of_Circuits_&_Systems 1 31 0 0 0 0 | Division_of_Communication_Engineering 0 31 0 0 0 0 | Division_of_Control_&_Instrumentation 0 37 1 0 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 19 0 0 1 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 137.0 77.4011 %

(0-n + normalizacja)

0 1 2 3 4 5 <-- assigned to cluster 0 0 6 14 0 1 | Division_of_Circuits_&_Systems 2 0 18 12 0 0 | Division_of_Communication_Engineering 0 1 22 8 0 0 | Division_of_Control_&_Instrumentation 0 0 25 13 0 0 | Division_of_Information_Engineering 0 0 15 19 0 0 | Division_of_Microelectronics 0 0 10 7 3 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 126.0 71.1864 %

STOPLIST:

(0-1)

0 1 2 3 4 5 <-- assigned to cluster 0 18 0 2 0 1 | Division_of_Circuits_&_Systems 5 25 2 0 0 0 | Division_of_Communication_Engineering 0 30 1 0 0 0 | Division_of_Control_&_Instrumentation 0 34 4 0 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 18 1 0 1 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 131.0 74.0113 %

(0-1 + normalizacja)

0 1 2 3 4 5 <-- assigned to cluster 0 2 10 6 0 3 | Division_of_Circuits_&_Systems 7 5 12 4 0 4 | Division_of_Communication_Engineering 0 21 8 2 0 0 | Division_of_Control_&_Instrumentation 0 4 27 7 0 0 | Division_of_Information_Engineering 0 26 0 4 0 4 | Division_of_Microelectronics 0 6 11 1 2 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 109.0 61.5819 %

(0-n)

0 1 2 3 4 5 <-- assigned to cluster 0 19 0 1 0 1 | Division_of_Circuits_&_Systems 1 31 0 0 0 0 | Division_of_Communication_Engineering 0 31 0 0 0 0 | Division_of_Control_&_Instrumentation 0 37 1 0 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 20 0 0 1 0 | Division_of_Power_Engineering

Incorrectly clustered instances : 137.0 77.4011 %

(0-n + normalizacja)

0 1 2 3 4 5 <-- assigned to cluster 0 8 2 9 0 2 | Division_of_Circuits_&_Systems 6 10 13 0 1 2 | Division_of_Communication_Engineering 0 22 8 1 0 0 | Division_of_Control_&_Instrumentation 0 11 21 4 0 2 | Division_of_Information_Engineering 0 26 4 2 0 2 | Division_of_Microelectronics 0 13 4 0 3 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 112.0 63.2768 %

STOPLIST + STEMMING:

(0-1)

0 1 2 3 4 5 <-- assigned to cluster 0 15 1 4 0 1 | Division_of_Circuits_&_Systems 9 18 4 0 0 1 | Division_of_Communication_Engineering 0 29 2 0 0 0 | Division_of_Control_&_Instrumentation 0 28 8 2 0 0 | Division_of_Information_Engineering 0 33 0 1 0 0 | Division_of_Microelectronics 0 17 1 0 2 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 121.0 68.3616 %

(0-1 + normalizacja)

0 1 2 3 4 5 <-- assigned to cluster 0 0 6 14 0 1 | Division_of_Circuits_&_Systems 13 2 7 10 0 0 | Division_of_Communication_Engineering 1 7 12 10 1 0 | Division_of_Control_&_Instrumentation 0 2 21 15 0 0 | Division_of_Information_Engineering 1 4 1 3 0 25 | Division_of_Microelectronics 0 3 12 4 2 0 | Division_of_Power_Engineering

Incorrectly clustered instances : 95.0 53.6723 %

(0-n)

0 1 2 3 4 5 <-- assigned to cluster 0 11 0 5 0 5 | Division_of_Circuits_&_Systems 7 9 1 0 0 15 | Division_of_Communication_Engineering 1 20 1 1 1 7 | Division_of_Control_&_Instrumentation 0 21 3 3 0 11 | Division_of_Information_Engineering 0 15 0 1 0 18 | Division_of_Microelectronics 0 10 0 0 5 6 | Division_of_Power_Engineering

Incorrectly clustered instances : 119.0 67.2316 %

(0-n + normalizacja)

0 1 2 3 4 5 <-- assigned to cluster 0 0 19 1 0 1 | Division_of_Circuits_&_Systems 2 0 28 0 0 2 | Division_of_Communication_Engineering 0 1 30 0 0 0 | Division_of_Control_&_Instrumentation 0 0 38 0 0 0 | Division_of_Information_Engineering 0 0 32 0 0 2 | Division_of_Microelectronics 0 0 19 0 1 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 132.0 74.5763 %

STOPLIST + STEMMING + RARE:

(0-1)

0 1 2 3 4 5 <-- assigned to cluster 0 18 0 2 0 1 | Division_of_Circuits_&_Systems 5 26 1 0 0 0 | Division_of_Communication_Engineering 0 31 0 0 0 0 | Division_of_Control_&_Instrumentation 0 33 3 2 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 18 1 0 1 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 132.0 74.5763 %

(0-1 + normalizacja)

0 1 2 3 4 5 <-- assigned to cluster 0 6 1 13 0 1 | Division_of_Circuits_&_Systems 10 6 6 6 0 4 | Division_of_Communication_Engineering 0 20 4 7 0 0 | Division_of_Control_&_Instrumentation 0 6 19 13 0 0 | Division_of_Information_Engineering 0 22 0 10 0 2 | Division_of_Microelectronics 0 8 8 2 1 2 | Division_of_Power_Engineering

Incorrectly clustered instances : 111.0 62.7119 %

(0-n)

0 1 2 3 4 5 <-- assigned to cluster 0 17 0 3 0 1 | Division_of_Circuits_&_Systems 1 30 0 1 0 0 | Division_of_Communication_Engineering 0 30 0 1 0 0 | Division_of_Control_&_Instrumentation 0 36 1 1 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 18 0 0 2 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 135.0 76.2712 %

(0-n + normalizacja)

0 1 2 3 4 5 <-- assigned to cluster 0 0 17 3 0 1 | Division_of_Circuits_&_Systems 3 0 29 0 0 0 | Division_of_Communication_Engineering 0 1 30 0 0 0 | Division_of_Control_&_Instrumentation 0 0 37 1 0 0 | Division_of_Information_Engineering 0 0 34 0 0 0 | Division_of_Microelectronics 0 0 18 0 2 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 131.0 74.0113 %

STOPLIST + STEMMING + RARE + OFTEN:

(0-1)

0 1 2 3 4 5 <-- assigned to cluster 0 18 0 2 0 1 | Division_of_Circuits_&_Systems 4 28 0 0 0 0 | Division_of_Communication_Engineering 0 31 0 0 0 0 | Division_of_Control_&_Instrumentation 0 35 2 1 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 19 0 0 1 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 134.0 75.7062 %

(0-1 + normalizacja)

0 1 2 3 4 5 <-- assigned to cluster 0 4 3 11 1 2 | Division_of_Circuits_&_Systems 10 4 7 5 0 6 | Division_of_Communication_Engineering 1 17 2 10 1 0 | Division_of_Control_&_Instrumentation 0 4 14 20 0 0 | Division_of_Information_Engineering 0 13 0 14 0 7 | Division_of_Microelectronics 0 4 7 5 3 2 | Division_of_Power_Engineering

Incorrectly clustered instances : 115.0 64.9718 %

(0-n)

0 1 2 3 4 5 <-- assigned to cluster 0 17 0 3 0 1 | Division_of_Circuits_&_Systems 1 30 0 1 0 0 | Division_of_Communication_Engineering 0 30 0 1 0 0 | Division_of_Control_&_Instrumentation 0 36 1 1 0 0 | Division_of_Information_Engineering 0 34 0 0 0 0 | Division_of_Microelectronics 0 18 0 0 2 1 | Division_of_Power_Engineering

Incorrectly clustered instances : 135.0 76.2712 %

(0-n + normalizacja)

0 1 2 3 4 5 <-- assigned to cluster 0 0 19 1 0 1 | Division_of_Circuits_&_Systems 1 0 31 0 0 0 | Division_of_Communication_Engineering 0 1 30 0 0 0 | Division_of_Control_&_Instrumentation 0 0 38 0 0 0 | Division_of_Information_Engineering 0 0 34 0 0 0 | Division_of_Microelectronics 0 0 20 0 1 0 | Division_of_Power_Engineering

Incorrectly clustered instances : 135.0 76.2712 %

- normalizacja wyraznie pomaga we wszystkich przypadkach. - zliczanie wystapien poszczegolnych slow w dokumencie jest gorsze niz traktowanie wystapien jako 0-1 - stary zwyciezca - STOPLISTA + STEMMING nadal jest gora, normalizacja poprawila klasteryzacje o 10% w najlepszym przypadku!!! - wordnet pogorszyl klasteryzacje

Niestety nie przeprowadzilem MDS, GhostMiner sie zakrztusil na tych plikach. Nie moge ani zamknac programu, ani usunac modelu itp. Jego kopie jeszcze pewnie dzialaja.

Bow mi sie nie kompiluje, a sa tylko zrodla(na google nie znalazlem paczek pre-kompilowanych). Sa to bledy skladniowe. Ostatnia wersja kodu jest z 2002. Jak sam autor pisze:


 * "Unfortunately I do not have time to help rainbow's many users with all their compilation and usage problems. Feel free to send me mail asking for help, but please do not necessarily expect me to have time to help. Most appreciated are bug reports accompanied by fixes."**

[16.4.2008]

Wykrywanie fraz dziala dobrze w sensie poprawnosci, ale jest bardzo wolne. Dla jednego dokumentu czas znajdowania frazy wynosi okolo pol sekundy, ale rosnie bardzo szybko wraz ze wzrostem liczby okumentow. Dla wszyskich dokumentow mamy niecale 70 ' 000 slow. Najwiecej zabiera faza konstrukcji suffix array. To trzeba poprawic...

Co do samych fraz: - zamiana, niektorych znakow np. &amp na "and" pozwala znalesc takie frazy jak np. electrical_and_electronic_engineering - zamiana przecinkow na inne znaki, pozwala rozroznic niektore imiona, gdyz czesto w publikacjach wystepuja powtarzajacy sie autorzy: K. S. Yeo, A. Cabuk,

Carrot2 stosuje specjalne oznaczenia znakow interpunkcyjnych, np. kazdy przecinek jest rozroznialny.

-Search- - stemmers, - analyzers, - tokenizers, - filters, - WordNet/Synonyms, - high frequency terms.

W internecie semantycznym używa się RDF, warto na to popatrzeć.

Frazy: pytać o sens jeśli są w Wordnecie, pytać czy zatrzymać jesli nie ma i prosić wtedy o akroniomy, np el elect eng = EEE; rozszerzać te akronimy do pełnej postaci. Jeśli jest fraza (akronim), to można od razu rozszerzać. Szukanie fraz w poszczególnych dokumentach? Lub w niewielkich grupach? Rozwijanie nazwisk jesli są jakies z imionami, potwierdzać raz, że to nazwisko. Najpierw stoplista, może z wyjątkiem and w środku. Jeśli dodajemy dokumenty do tego samego zbioru to trzeba korzystać z tego co już było, plus nowe frazy.

-Linki- Crawlers: http://www2003.org/cdrom/papers/refereed/p007/p7-abiteboul.html http://citeseer.ist.psu.edu/heydon99mercator.html

Text-mining: http://www.textanalysis.com http://kt.ijs.si/Dunja/textgarden/

Clustering engines: http://clusty.com/ http://www.carrot2.org/ http://www.mooter.com/

Inne: http://ontology.buffalo.edu/smith/articles/ontologies.htm - "How to build an Ontology" - prezentacja