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:
Výsledok zhlukovania:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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). |