diff --git a/README.md b/README.md index 14a02bd0763f18583f4a7a6d7bf0cf0437f87148..ab3fe10cf97d3c37da4fb9c3c4165c4cf5ad5480 100644 --- a/README.md +++ b/README.md @@ -1,73 +1,10 @@ +# Information retrieval – VektorovĂ˝ model -# ZADĂNĂŤ -CĂlem projektu je implementace vektorovĂ©ho systĂ©mu ukládánĂ dat (tj. poreprocessing a indexovánĂ) spolu -s moĹľnostĂ dotazovánĂ z GUI. -## VSTUP -Dotaz – seznam termĹŻ spolu s váhami. -## VĂťSTUP -Seznam databázovĂ˝ch dokumentĹŻ odpovĂdajĂcĂ dotazu v klesajĂcĂm poĹ™adĂ podobnosti. -## INFORMACE/POTĹEBNÉ ZNALOSTI -VektorovĂ˝ model je jeden ze zpĹŻsobĹŻ jak prohledávat kolekci dokumentĹŻ adresujĂcĂ nedostatky boolovskĂ©ho -modelu. Oproti boolovskĂ©mu modelu nenĂ binárnĂ, tj. pro kaĹľdĂ˝ term neobsahuje informaci o tom, ve kterĂ©m -dokumentu se danĂ˝ term vyskytuje, nĂ˝brĹľ informaci o tom, jak moc se ve kterĂ©m dokumentu vyskytuje. Dotaz -je pak tvoĹ™en seznamem termĹŻ a váhami (dĹŻrazem), kterĂ© uĹľivatel jednotlivĂ˝m termĹŻm pĹ™iĹ™azuje. +## Struktura projektu +Projekt se skládá ze třà oddÄ›lenĂ˝ch aplikacĂ. +1) `preprocessing/` (základnĂ zpracovánĂ dokumentĹŻ – odstranÄ›nĂ nevĂ˝znamovĂ˝ch slov, lematizace, uloĹľenĂ obsahu jednotlivĂ˝ch dokumentĹŻ do databáze) +2) `weight_calculation/` (vĂ˝poÄŤet vah termĹŻ v jednotlivĂ˝ch dokumentech) +3) `querying/` (dotazovánĂ na podobnost dokumentĹŻ z webovĂ©ho rozhranĂ) -Dotaz je vyhodnocován oproti kolekci dokumentĹŻ, tj. kaĹľdĂ˝ dokument lze chápat jako objekt databáze. -Nejjednoduššà moĹľnostĂ pĹ™Ăstupu k tĂ©to databázi je procházet kaĹľdĂ˝ dokument zvlášť a dotazovat se, jak moc je -danĂ˝ dokument podobnĂ˝ dotazu. S rostoucĂ velikostĂ kolekce je ovšem takovĂ˝to pĹ™Ăstup nevyhovujĂcĂ a proto je -tĹ™eba ukládat data ve formÄ› vhodnĂ© pro vyhledávánĂ. StejnÄ› jako u boolovskĂ©ho modelu projde kaĹľdĂ˝ -dokument nejdĹ™Ăve fázĂ preprocesingu, kdy jsou z dokumentu odstranÄ›na nevĂ˝znamová slova (tj. slova, která se -nesou málo informace, jako napĹ™. spojky a pĹ™edloĹľky) a vĂ˝znamová slova jsou “stemmovány” (jednoduššà -proces) nebo “lematizovány” (sofistikovanÄ›jšà proces) za účelem zĂskánĂ základĹŻ slov. - -Po preprocesingu máme tedy k dispozici kolekci slov, kterou je tĹ™eba uloĹľit takovĂ˝m zpĹŻsobem, aby v nà šlo -efektivnÄ› vyhledávat. U boolovskĂ©ho modelu je kaĹľdĂ˝ dokument uloĹľen jako binárnĂ vektor, ÄŤĂmĹľ dostáváme -tzv. term-by-document matici, kde na i-tĂ©m řádku v j-tĂ©m sloupci je 1, pávÄ› tehdy pokud je term i obsaĹľen -v dokumentu j. TakovĂ˝ pĹ™Ăstup nedokáže rozlišit, jak moc danĂ˝ term vystihuje dokument, v kterĂ©m se nacházĂ. -Nelze Ĺ™Ăci, zda se term i vyskytuje v dokumentu pouze okrajovÄ›, nebo je celĂ˝ dokument právÄ› o tomto termu. -Z toho dĹŻvodu jsou v term-by-document matici reálnĂ© hodnoty v rozmezĂ 0 aĹľ 1, definujĂcĂ váhu (dĹŻleĹľitost) -termu pro dokument. UrÄŤovánĂ vah je typicky zaloĹľeno na frekvenci vĂ˝skytu termu v dokumentu a vĂ˝skytu -termu pĹ™es celou kolekci. NejznámÄ›jšà schĂ©ma zaloĹľenĂ© na tomto principu se nazĂ˝vá tf-idf (term frequency - -inverse document frequency) schĂ©ma. KaĹľdĂ˝ dokument je pak moĹľnĂ© popsat n-dimenionálnĂm vektorem (n je -velikost slovnĂku) a tedy lze chápat jako bod v n-dimenzionálnĂm prostoru. -StejnÄ› jako dokument lze reprezentovat i dotaz. Dimenze odpovĂdajĂcĂ termĹŻm, kterĂ© zadal uĹľivatel, majĂ -hodnoty urÄŤeny dotazem, ostatnĂ dimenze majĂ hodnotu 0. Definujeme-li pak nÄ›jakou vzdálenost mezi dvÄ›ma -body v n-dimenzionálnĂm prostoru (u vektorovĂ©ho modelu je to kosinová vzdálenost), lze podobnost -dokumentĹŻ chápat jako pĹ™evrácenou vzdálenost bodĹŻ, kterĂ© je reprezentujĂ. - -PodobnÄ› jako u boolovskĂ©ho modelu lze pro efektivnĂ implementaci vyuĹľĂt invertovanĂ© seznamy. Tyto sloužà ve -vektorovĂ©m modelu k identifikaci dokumentĹŻ obsahujĂcĂch danĂ© termy (jako u boolovskĂ©ho modelu). -IdentifikovanĂ© dokumenty jsou pak setĹ™ĂdÄ›ny podle podobnosti k dotazu (viz pĹ™edchozĂ odstavec). - -VektorovĂ˝ model se tedy skládá z následujĂcĂch částĂ: -1. Extrakce a preprocesing termĹŻ z dokumentĹŻ. -2. EfektivnĂ uloĹľenĂ dokumentĹŻ v datovĂ© struktuĹ™e (invertovanĂ˝ seznam). -3. VyhodnocovacĂ/dotazovacĂ modul vyuĹľĂvajĂcĂ strukturu z pĹ™edchozĂho kroku. -## STAVBA APLIKACE -Aplikace by mÄ›la obsahovat: -* Extrakce termĹŻ. -* Identifikace nevĂ˝znamovĂ˝ch slov. -* Stemming/lematizace. -* VĂ˝poÄŤet vah termĹŻ. -* Implementace indexovacĂ struktury. -* VyhodnocenĂ dotazu oproti indexovacĂ struktuĹ™e. -* WebovĂ˝ interface (zadánĂ dotazu a vizualizace vĂ˝sledku). -## POZNĂMKY K ĹEĹ ENĂŤ -V rámci projektu je tĹ™eba implementovat jak vektorovĂ˝ model umoĹľĹujĂcĂ neprocházet celou kolekci -(invertovanĂ˝ seznam napĹ™Ăklad), tak sekvenÄŤnĂ prĹŻchod, tj. procházenĂ kolekce dokumentĹŻ bez vyuĹľitĂ indexu. -SekvenÄŤnĂ prĹŻchod je pak moĹľnĂ© pouĹľĂt k porovnánĂ vĂ˝sledkĹŻ vyhledávánĂ vzhledem k vektorovĂ©mu modelu. - -Lze vyuĹľĂt knihovny na parsovánĂ dokumentĹŻ, pĹ™Ăp. preprocessing. -### DATA -Datová sada by mÄ›la obsahovat alespoĹ tolik dokumentĹŻ, aby bylo moĹľnĂ© pozorovat vĂ˝hody pouĹľitĂ -vektorovĂ©ho modelu oproti sekvenÄŤnĂmu prĹŻchodu. Zdroj dat je libovolnĂ˝ – napĹ™. offline verze nÄ›jakĂ©ho -webovĂ©ho serveru (novinovĂ© ÄŤlánky, …). -### EXPERIMENTY -V tomto projektu lze mimo jinĂ© provádÄ›t srovnánĂ vektorovĂ©ho modelu se sekvenÄŤnĂm prĹŻchodem s ohledem -na ÄŤas vykonánĂ dotazu. Lze takĂ© testovat vliv rĹŻznĂ˝ch vnitĹ™nĂch parametrĹŻ na vĂ˝kon algoritmu (napĹ™. rĹŻznĂ© -nastavenĂ v invertovanĂ©m seznamu) apod. -##ZDROJE -1. PĹ™ednáška VyhledávánĂ textu - BooleovskĂ© modely. Implementace. -1. PĹ™ednáška VyhledávánĂ textu - VektorovĂ© modely. Implementace. -1. Jaroslav PokornĂ˝, Václav Snášel, Dušan HĂşsek. DokumentografickĂ© InformaÄŤnĂ SystĂ©my. Karolinum, -1998 \ No newline at end of file +## PoĹľadavky na bÄ›h +Jsou popsány u kaĹľdĂ© konkrĂ©tnĂ aplikace v souboru `REQUIREMENTS.md` spolu s informacemi, odkud stáhnout a kam pĹ™ĂpadnÄ› umĂstit knihovny tĹ™etĂch stran. diff --git a/doc/documentation.docx b/doc/documentation.docx index 869b16ff66eb79da60b69435e2449c7dbd445592..eed43a733adc4a3219b7cc6885adb045c528190c 100644 Binary files a/doc/documentation.docx and b/doc/documentation.docx differ