Projekt č.3
Autori
Tomáš Šmajda
Miroslav Horňák
Úloha
Navrhnite doprednú neurónovú sieť kohonenovho typu pre zhlukovanie textových dokumentov. Navrhnutú sieť implementujte v jazyku C (pod operačným systémom Linux). Správanie sa naučenej siete overte experimentami.
Riešenie
Pre zhlukovanie textových dokumentov bola použitá neurónová sieť z projektu č. 2. Vstupné dáta (zdroj: http://www.ifs.tuwien.ac.at/~andi/somlib/experiments_ifsabstr.html) boli abstraktmi prác vypracovaných na tejto katedre. Samotnému zhlukovaniu predchádzalo tzv. "document parsing", pri ktorom sa z web-stránok odstránia všetky tagy (html príkazy), slová s najväčším výskytom (95%-ný výskyt a viac) a slová s najmenším výskytom (3%-ný výskyt a menej). Zvyšné, relevantné slová, vytvoria vektor slov – template vector (tiež bag-of-words). V našom prípade mal tento vektor rozmer 1x399. Konkrétna číselná hodnota vyjadruje váhu slova. Može to byť binárne číslo, v tom prípade vyjadruje, či sa dané slovo nachádza, alebo nenachádza v danom dokumente. Pokiaľ ide o celočíselnú hodnotu, tá môže zohľadňovať výskyt slova len v danom dokumente ('norm.dat'), alebo zohľadňuje výskyt slova aj vo všetkých ostatných dokumentoch ('tfxidf.dat'). V experimentoch bol použitý 'norm.dat' tvar.
Experimenty
Kohonenova vrstva mala rozmer 7x7 (podobne ako v pôvodnom experimente). Inicializácia váh prebieha náhodne. Počas behu programu sa na obrazovku vypisuje stav NS po každých desiatich etapách. Program sa skončí po sto etapách (počet etáp sa dá zmeniť bohužiaľ iba v zdrojáku). Výsledok zhlukovania sa zapíše do súboru 'final_file.txt'.
Ukončený proces zhlukovania:

obrázok

Výsledok zhlukovania:

0 1 2 3 4 5 6
0 ell_compsac96
ell_dexa96a
ell_sast96
mer_cise98
ber_hicss98 tjo_01
tjo_02
win_nlp96
ell_dexa96b
alb_lisa98 koh_icann98
koh_cbms97
koh_esann96
koh_eann97
koh_acnn96
1 mer_codas96
2 mer_dexa98
mer_wsom97a
mer_aiem96 mer_icail97
mer_dexa97
has_eann97
mer_eann98
han_idamap97
3 mer_sigir97 mer_nlp98 hor_jcbm97
mik_jaim96
mik_bidamap97
4 koh_icann96 mer_pkdd97 rau_icann98 rau_wirn98
rau_caise98dc
hor_jieee98
5 rau_esann98 duf_vv98 mik_aips98
kor_twd98
6 mer_wirn97
mer_wsom97
mer_fns97
mik_aa97
mik_scamc96
sha_scamc96
sha_jaim98
sha_aime97
mik_keml97
mik_ijcai97
mik_ecp97

Z tabuľky je zrejmé, ktoré dokumenty sú si podobné (viac, alebo menej). Čím väčšia je vzdialenosť medzi dvoma porovnávanými dokumentami, tým je ich podobnosť menšia. Úspešnosť zhlukovania dokazuje aj fakt, že súbory podobného mena sú blízko seba (to bolo zrejme zámerom tvorcu archívu týchto abstraktov).
Na záver je treba spomenúť to, že experimenty boli realizované pod OS Windows (čo do výsledkov zhlukovania; tie sa môžu líšiť, napr. v indexoch, nie však v zhlukoch samotných).
Zdrojové súbory
'binarny.dat' - binárny tvar testovacích dát.
'norm.dat' - celočíselný tvar testovacích dát.
'tfxidf.dat' - celočíselný tvar testovacích dát.

'projekt3' - spustiteľný súbor (UNIX).
'projekt3.c' - zdrojový kód programu (UNIX).