magistarska teza

111
УНИВЕРЗИТЕТ У БЕОГРАДУ Зоран Поповић Реализација окружења за сарадничко претраживање информација варијантом методе најближег суседа и профилима мултиграма - магистарска теза - Београд, 2010.

Upload: zoran-popovic

Post on 22-Feb-2017

255 views

Category:

Science


4 download

TRANSCRIPT

Page 1: Magistarska teza

УНИВЕРЗИТЕТ У БЕОГРАДУ

Зоран Поповић

Реализација окружења за сарадничко претраживање информација варијантом методе

најближег суседа и профилима мултиграма

- магистарска теза -

Београд, 2010.

Page 2: Magistarska teza
Page 3: Magistarska teza

УНИВЕРЗИТЕТ У БЕОГРАДУ

Зоран Поповић

Реализација окружења за сарадничко претраживање информација варијантом

методе најближег суседа и профилима мултиграма

- магистарска теза -

(101 странa)

Београд, 2010.

Page 4: Magistarska teza
Page 5: Magistarska teza

Ментори:

проф. др Иван Обрадовић, Рударско-геолошки факултет

проф. др Драган Радојевић, Институт Михаило Пупин

Чланови комисије:

проф. др Иван Обрадовић, Рударско-геолошки факултет

проф. др Драган Радојевић, Институт Михаило Пупин

ванр. проф. др Предраг Јаничић, Математички факултет

Page 6: Magistarska teza
Page 7: Magistarska teza

Сажетак

Реализација окружења за сарадничко претраживање информација варијантом методе најближег суседа и профилима мултиграма

Основни циљ рада је имплементација једног практичног прототипа система за претраживање информација, који користи профиле мултиграма као репрезентацију докумената и сарадничко претраживање информација као начин да се побољша рангирање докумената у резултату претраживања. Профили мултиграма докумената се користе поред тога и као начин управљања перформансама система кроз глобални профил свих докумената. Побољшано рангирање је постигнуто варијантом методе најближег суседа, уз помоћ имплицитно задатих оцена релевантности докумената у профилу свих корисника, и одговарајуће шеме рангирања у којој се награђују елементи глобалног профила са бољим рангом и веће дужине. Цео систем је реализован као решење отвореног кôда на Јава платформи, тестирано са Oracle XE базом и отворено за повезивање са било којом базом која подржава JDBC. Техничка архитектура система је вишеслојна, заснована на RMI/IIOP оквиру за дитрибуирано извршавање, са различитим компонентама система за претраживање и могућностима за повезивање са другим системима (класификација докумената је реализована Weka библиотеком). Дати су примери примене у пословном окружењу, што уз флексибилност једног решења отвореног кôда чини један од основних мотива за употребу оваквог система. Употребљивост код претраживања великих мултимедијалних датотека подношењем дела датотеке уместо упита је једна од предности оваквог приступа у односу на слична решења. Резултати мерења техничких перформанси показују да је систем практично употребљив и скалабилан. Постоје многе могућности побољшавања и даљег развоја овог прототипа, којим би се приближио по перформансама сличним системима за претраживање информација.

Page 8: Magistarska teza

Кључне речи: претраживање информација, сарадничко претраживање, N-грами, мултиграми, метода најближег суседа, машинско учење, вештачка интелигенција, отворени кôд, Јава, истраживање података, текстуелни инжењеринг

Page 9: Magistarska teza

Abstract:

Implementation of an Environment for Collaborative Information Retrieval Using a Variant of Nearest Neighbour Method and Multigram Profiles

Basic goal in this research was implementation of a practical prototype of an information retrieval system, which is using multigram profiles for document representation and collaborative retrieval as a mean of hitlist ranking improvement. Beside that, document multigram profiles are utilized additionally, through global multigram profiles, as a way of managing the performance of the system. Ranking improvement is achieved by a variant of nearest neighbour method, with the use of implicitly specified document relevance estimations in all user profiles, and appropriate ranking schemes in which global profile elements with better rank and bigger length are being rewarded. Whole system is realized on Java Platform as an open source solution, tested with Oracle XE database and open for any other database supporting JDBC. Technical architecture of the system is multi-layered, based on RMI/IIOP framework for distributed execution, with different system components for retrieval and options for connection with external systems. There are examples given related to business environment and applications, which is one of the basic motives for using such a system together with the flexibility of an open source solution. Applicability and usability for large multimedia file retrieval by submiting part of a file instead of a query is only one of the advances of this approach compared to similar solutions. Results of the technical performance measures show that the system is practically usable and scalable. There are numerous possibilites of improvent and further development of this prototype, which will make it's performance closer to similar systems for information retrieval.

Page 10: Magistarska teza

Keywords: information retrieval, collaborative retrieval,N-grams, multigrams, nearest neighbour method, machine learning, artificial intelligence, open source, Java, data mining, text engineering

Page 11: Magistarska teza

Садржај Предговор.......................................................................................................31 Увод.................................................................................................................6

1.1 Основни циљ рада..................................................................................91.2 Разлози за избор решења у раду.........................................................121.3 Начин и основе реализације окружења..............................................141.4 Основе имплементације и архитектуре прототипа...........................17

2 Преглед основа претраживања информација............................................192.1 Технике претраживања информација................................................19

2.1.1 Идентификација речи...................................................................192.1.2 Закон степена................................................................................192.1.3 Зауставне листе (stoplists) и речници.........................................192.1.4 Стеминг и лематизација...............................................................202.1.5 Индекси.........................................................................................212.1.6 Мере ефикасности и перформанси.............................................23

2.2 Преглед теоретских модела и метода ПИ..........................................262.2.1 Класичне методе и дефиниције...................................................262.2.2 Булове алгебре и Булов модел....................................................262.2.3 Векторски модел...........................................................................282.2.4 Латентно семантичко индексирање............................................292.2.5 Фази скупови и упити..................................................................302.2.6 Претраживање веба и рангирање................................................31

2.2.6.1 Метод ранга странице (PageRank)......................................312.2.6.2 HITS метод............................................................................322.2.6.3 SALSA метод.........................................................................33

2.2.7 Комбиноване и остале методе.....................................................342.2.7.1 Спајање сличношћу..............................................................342.2.7.2 P2P ПИ...................................................................................35

2.3 Машинско учење и ПИ........................................................................352.3.1 Појам машинског учења..............................................................352.3.2 Типови учења и основне одлике.................................................362.3.3 Учeњe инстaнцaмa и мeтoдe клaсификaциje..............................38

2.3.3.1 Мeтoд нajближих сусeдa......................................................382.4 Сарадничко претраживање са модификацијама...............................40

2.4.1 Меморијски засноване методе....................................................422.4.2 Рачунање ранга резултата код прототипа..................................44

3 Реализација прототипа система за ПИ.......................................................453.1 Коришћени развојни алати..................................................................45

3.1.1 Java.................................................................................................453.1.2 Eclipse............................................................................................463.1.3 Weka...............................................................................................47

Page 12: Magistarska teza

3.1.4 Додатни алати...............................................................................473.2 Извршна платформа.............................................................................48

3.2.1 Apache Tomcat...............................................................................483.2.2 Oracle.............................................................................................49

3.3 Техничка архитектура и извршни ток................................................503.3.1 Сервер............................................................................................523.3.2 Техничка архитектура..................................................................543.3.3 Додатне команде и програмска структура.................................55

3.3.3.1 Преглед програмске структуре............................................573.3.3.2 Релациони модел прототипа и физичка имплементација базе података.....................................................................................603.3.3.3 Преглед тока извршавања....................................................65

3.3.4 Поступци развоја..........................................................................713.3.4.1 Одржавање репозиторијума отвореног кôда......................71

4 Резултати и примери примене....................................................................724.1 Поређење с неким познатим решењима за ПИ.................................724.2 Техничке перформансе........................................................................744.3 Евалуација решења..............................................................................774.4 Примери примене.................................................................................77

4.4.1 Технике интеграције са другим решењима...............................784.4.1.1 Oracle......................................................................................784.4.1.2 SAP.........................................................................................794.4.1.3 Microsoft IIS...........................................................................81

5 Даља истраживања.......................................................................................825.1 Могућа побољшања.............................................................................82

5.1.1 Одсецање профила мултиграма и класификација.....................825.1.2 Техничка унапређења...................................................................835.1.3 Побољшања сервера и интерфејса..............................................86

5.2 Онтологије, претраживање и откривање знања................................876 Закључци......................................................................................................90 Литература и веб странице..........................................................................93 Биографија...................................................................................................101

Page 13: Magistarska teza

Предговор

Претраживање информација (ПИ) је, укратко, проналажење релевантних информација сачуваних у рачунарским системима према потребама и захтевима корисника. Појавом интернета је ово додатно добило на значају, иако су системи ПИ постојали и много раније. Сарадничко претраживање информација такође доживљава све више примена пре свега захваљујући својој присутности на интернету – примери: оглашање веб претраживача (Google, Altavista, Yahoo и други), системи аутоматског препоручивања и продаје (поред поменутих: Amazon, Ebay, Last.fm, Pandora, и други), друштвене мреже и колаборационе мреже (Facebook, Tweeter, LinkedIn, и други), примери у области безбедности података, као и неки мање очигледни примери (нпр. примена код P2P мрежа и мулти-агентских система, [37] и [45]). Један од кључних састојака успеха Google претраживача поред технолoгије претраживања података је и успешан пословни модел заснован на аутоматском прилагођавању избора огласа које корисник види (уз гарантовану приватност његових докумената који могу бити и странице претраге, електронска пошта, слике и друго). У основи овог вида претраге података је субјективно вредновање садржаја од стране корисника које утиче на његову претрагу, као и на претрагу осталих корисника. Упити могу такође бити различити, од једноставних упита задатих кључним речима до неких задатих посебним језицима упита или природним језиком.

Врста садржаја докумената такође може суштински утицати на све ове аспекте система претраге. Традиционално ПИ се односи на текстуелне неструктуриране документе. Само у односу на домен претраге у смислу садржаја докумената постоје многе подобласти ПИ: вишејезично ПИ [12], обрада природног језика и ПИ [41], претраживање говора, претраживање музике (Music IR), визуелно претраживање и кориснички интерфејс, дигиталне библиотеке [2], и друге.

Историја претраживања информација почиње од првих књига са садржајем (антички писац Valerius Soranus) и индексима са алфабетизацијом које су користили још у 3. веку п.н.е. грчки научници и учени људи у Александријској библиотеци [16] (у

3

Page 14: Magistarska teza

Египту) као неком врстом прадавног претка једног од најважнијих алгоритама претраге (а самим тим и претраживања информација). Неколико векова касније јављају се први познати текстови структурираног садржаја (хијерархија са поглављима, одељцима, заглављима и пасусима), а индекси са пуном алфабетизацијом какве срећемо у данашњим књигама настају тек негде у 18. веку. Модерно претраживање информација као аутоматско претраживање литературе зачето је негде 50-тих година у САД као један од одговора на изазове хладног рата. У том периоду настало је индексирање цитата (E. Garfield) као прва основа анализе веза данашњих веб претраживача, док је појављивање појмова (term occurrences) увео H. P. Luhn као парове делова текста и њихових фреквенција, а појам Information Retrieval је први дао C. Mooers. Током 60-тих и 70-тих година уставновљени су основни принципи мерења и евалуације таквих система (Cranfield, прецизност и одзив - C. Cleverdon), и почиње нагли развој ПИ са првим комерцијалним системима заснованим на рачунарској технологији (Dialog, RBS) заснованих на такозваном Буловом моделу ПИ. Поред овог модела настали су тада и други данас познати модели ПИ: вероватносни (M.E. Maron, J.L. Kuhns, S. Robertson, C.J. van Rijsbergen), векторски (заснован на линеарној алгебри, G. Salton, M. Lesk, J. Sammon). Касније током 80-их и 90-тих развијени су и други модели: фази модел (D.H. Kraft, B.E. Boyce, D.A. Buell), лингвистички модел (заснован на рачунској лингвистици и вероватноћи, W.B. Croft, J. Ponte), модел мреже закључивања (заснован на Бајесовим мрежама, H. Turtle, W.B. Croft), модел асоцијативне интеракције (заснован на копенхагенској интерпретацији квантне механике, van Rijsbergen, S. Dominich) и други. Крајем 80-тих настаје појам World Wide Web (веб, WWW, Tim Berners-Lee) који почиње 90-тих да живи на интернету као глобалној рачунарској мрежи, али тек крајем 90-тих настају први претраживачи какве данас познајемо.

Досадашњи успех претраживача је променио начин размишљања не само у ПИ, а резултат је добрим делом интердисциплинарности самог веба који нас је научио да успешно ПИ мора да се заснива и на областима које не припадају традиционалном ПИ (информатика, библиотекарство, лингвистика), као што су: математика, теорија алгоритама и израчунљивости, физика ([15]), вештачка интелигенција (ВИ). Као и свако откриће засновано на информатици, добрим делом је подржано и праћено одговарајућим технолошким решењима и напретком рачунарске опреме (хардвера). Данас је та технологија широко доступна, и ПИ постаје

4

Page 15: Magistarska teza

један од саставних делова многих модерних пословних информационих система где игра посебно важну улогу као оружје у тржишној трци или начин да се одржава интерно знање као корпоративни капитал.

Рад који се овде излаже има за циљ конструисање употребљивог прототипа система за ПИ заснованог на сарадничком претраживању информација и профилима мултиграма као репрезентацији докумената. У првом поглављу се даје уводни опис предмета истраживања, преглед разлога за овакав приступ, као и основних начина имплементације. У другом поглављу се ово детаљније образлаже уз преглед основних техника и теоретских основа ПИ. У трећем поглављу се детаљно образлажу реализација и начин техничке имплементације прототипа уз основне примере. Четврто поглавље даје увид у добијене резултате, поређење са постојећим решењима ПИ, опис начина евалуације оваквих окружења, као и неколико примера примене. Пето поглавље доноси опис могућих побољшања и правац даљих истраживања са закључком на крају. Рад је написан уз помоћ OpenOffice алата (верзија 3.1.1).

5

Page 16: Magistarska teza

1 Увод

Претраживање информација (или проналажење информација, ПИ - information retrieval, IR) као основни задатак има претраживање и проналажење информација у неком скупу докумената. Информација овде не мора имати дубље значење, контекст у коме се интерпретира и представља као знање, али представља релевантан податак и зато се разликује од појма податка. Овакво разликовање појмова податка и информације потиче још од Шенонове теорије информација и представља један од могућих приступа дефинисању основног појма ПИ. Скуп враћених (пронађених) докумената рангираних (или сортираних) према некој оцени њихове релевантности зове се резултат упита. Упит може бити задат посебним формалним језиком (или природним језиком код неких система откривања знања, слично експертним системима). Претраживање информација у општем случају зависи од корисничке потребе за информацијама (IN, Information Need) која обједињује критеријуме упаривања упита и докумената у простору претраге (документ може припадати резултату ако је упарен са упитом под датим условима - match). На пример, код претраживања веб страница општа корисничка потреба за информацијама изражена је условом да резултат претраге садржи дате кључне речи (документ који садржи све кључне речи релевантнији је од документа који садржи само поједине). Потреба за информацијама може бити субјективна, и тада упаривање докумената зависи од субјективне потребе корисника која је најчешће имплицитно задата. Оваква врста ПИ зове се сарадничко претраживање информација (СПИ, или Collaborative Retrieval), односно сарадничко филтрирање (Collaborative Filtering) када се потреба за информацијама не мења од упита до упита за датог корисника (али се мења од корисника до корисника). Постоје формалне дефиниције ових појмова које полазе од алгебарских структура (S. Dominich, [15], [13]). Овакав приступ омогућава прецизнију употребу математичког апарата за проучавање особина система ПИ, као и њихово даље развијање.

Објекти домена претраге су документи, елементи скупа O={O1,... ,Ok }, k≥1 (домена претраге), са својим основним

особинама из скупа T={t1, ... , tn },n≥1. Основну врсту особина докумената коју чине елементи њиховог садржаја♦, назваћемо

♦ документ се може посматрати као ниска речи, или се може у њу трансформисати

6

Page 17: Magistarska teza

речима (односно кључним речима када представљају део упита), мада се у литератури срећу и многи други слични појмови (што може зависити и од домена претраге): терми (могу објединити и више речи на задат начин, али надаље речи се поистовећују са термима једноставности ради), дескриптори, идентификатори, или токени (лексичке јединице).

Уводи се и скуп репрезената D докумената из O, где је сваки елемент O j , j=1,m скупа D репрезент који одговара неком подскупу D j⊆O , 1≤ j≤m , домена претраге који чини скуп (кластер) докумената са истом репрезентацијом. Скуп таквих подскупова D={D1, ... , Dm }⊆PO , m≥2 , јесте подскуп партитивног скупа домена претраге и чини прекривање домена претраге које одговара једном могућем избору репрезентације докумената. Често се једноставности ради поистовећују D и D ,репрезенти и одговарајући кластери (подскупови домена претраге). Репрезенти могу бити елементи домена претраге (документи), односно одговарајућег кластера, или посебни објекти као што су профили докумената предложени у овој тези.

Профил документа O j је пресликавање O j≡М O j:Tℕ које

свакој речи из скупа Т одељује одговарајућу фреквенцију (природни број који представља њену фреквенцију, тј. број њених понављања у нисци речи тог документа), или у једноставнијем случају представља карактеристичну функцију документа у односу на термове (0 ако реч припада документу, 1 ако не припада – вредност особине), а у општијем случају се може разматрати и као фази скуп термова датог документа.

Кључне речи се јављају у упиту q∈Q={q1, ... ,qv }, v≥1 где упит може бити дефинисан неким формалним језиком над речима. У овом раду се користи једноставан низ кључних речи као упит. У најопштијем случају, према [14] и [15], може се узети у обзир и појам корисничке потребе, односно имплицитно задате информације info из скупа I специфичних за корисника u из скупа корисника U (који сматра да је неки елемент претраге релевантан или није). Корисничка потреба је изражена као структура потребе за информацијама IN=Q×L I , где су и L(I) информације изведене неким формалним језиком над додатним информацијама специфичним за корисника. Тако се филтрирање садржаја (Content Filtering) јавља у случају када се потреба за информацијама не разликује од упита, Q≡ IN. У најопштијем облику гласи дефиниција претраживања информација:

7

Page 18: Magistarska teza

Дефиниција 1: ПИ је задато структуром (O,Q,L,I,ρ) где је ρ релација релевантности докумената и потребе за информацијама,

ρ⊆O×Q×L I

Релација релевантности говори о вези домена претраге и упита са спефичним потребама (захтевима) корисника, и индукује резултат претраге R за дати упит q и кориснички захтев info∈I :

R≡Rq={o∈O∣ρ o ,q , info}=R info ,q ⊆O. ПИ се може разматрати и као пресликавање r : U× I×Q×O ∪q∈Q, info∈I R info ,q , а у општијем случају може се оценити фази релацијом ρ релевантност објекта претраге за дату потребу за информацијама, и R је тада фази.

За класичне моделе ПИ који ће бити даље детаљније разматрани је сасвим довољно претпоставити да је скуп упита једак скупу докумената (што је случај и у овом раду), где се упит своди на документ као и сваки други, представљен равноправно одговарајућом репрезентацијом (на пример кључним речима, или профилом документа). Често се и захтев за информацијама IN своди на упит (што код сарадничког претраживања наравно није случај), а репрезенти се називају документима једноставности ради, па се ПИ своди на структуру (D,r) и пресликавање које упиту додељује резултат: r : DP D .

N-грами и мултиграми су традиционални ресурс статистички оријентисаних алата за обраду природног језика и рачунарске лингвистике (поред корпуса, речника и лексикона са етикетама и лемама). Једну компоненту система предложену у овој тези чини употреба N-грама речи као основних особина докумената, поред самих речи, као и употреба профила мултиграма:

Дефиниција 2: За произвољну ниску речи t1 , ... , t L свака његова подниска t i , ... , t iN−1 дужине N зове се (i-ти) N-грам (има их L-N+1 у датој нисци, једнаки су ако су једнаки као ниске).

Дефиниција 3: Профил N-грама пресликава сваки N-грам у одговарајућу фрекценцију (број појављивања истог N-грама у документу као једној нисци речи) у односу на дати документ (или у односу на скуп свих докумената). Пресликавање у чијем домену су N-грами различите дужине (N=1,2,3,...) је профил мултиграма. Профили се могу посматрати као сортиране листе парова N-грама и њихових фреквенција, поређаних по фреквенцији у опадајућем редоследу у односу на дати документ (профил документа) или све документе (глобални профил), где

8

Page 19: Magistarska teza

онда ранг N-грама представља његов редни број у таквој листи.

Често користи још једна важна величина – инверзна фреквенција N-грама t i (inverse document frequency):

idf i=ln mFi

Укупан број докумената означен је са m, Fi је број докумената у домену претраге који садрже дати N-грам t i (једноставности ради је N-грам обележен као елемент скупа речи пошто су речи специјалан случај – униграми). У прототипу се користи другачији облик: Fi /m . N-грам присутан у свим документима у претрази даје непотребно велики одзив, а такође није значајан ни за њихову класификацију. У овом раду се предлаже употреба профила мултиграма за репрезентовање докумената у репозиторијуму система ПИ. Предности оваквог приступа има више: употребом одговарајућих метода индексирања могу се добити боље перформансе претраге, могућност уштеде простора у односу на друге системе ПИ (што се поређењем може донекле показати, како је образложено даље у тексту), као и могућност једноставнијег добијања изведених особина методама класификације оваквих репрезената. Лоша страна може бити комбинаторна експлозија особина докумената, јер сваки N-грам представља нову реч у индексу и репозиторијуму. Један начин да се ово превазиђе је одсецање непотребних речи, што је уобичајено код већине система ПИ. Класични системи ПИ то постижу употребом речника (елиминација синонима), стемера или лематизације (употреба стема или леме уместо морфолошки сродних речи), зауставним листама (са зауставним речима које су високо фреквентне у свим документима а не доприносе перформансама, stopwords), или одговарајућим методама елиминисања мање релевантних речи (статистички заснованим, или на некој методи вештачке интелигенције). Прототип система ПИ који се овде приказује користи базу података као обједињен облик организовања података за потребе индексирања и репрезентовања докумената.

1.1 Основни циљ рада

Основни циљ овог рада је конструкција једног прототипа система за ПИ који користи СПИ, реализовано методом најближег суседа да би се побољшале перформансе обичног ПИ, и мултиграме, као репрезенте докумената у репозиторијуму докумената. То је начин да се потпомогне класично претраживање информација и проучи

9

Page 20: Magistarska teza

један његов модел. Неопходно је да прототип буде практично употребљив и довољно ефикасан, уз одговарајуће методе и решења. Неке његове особине су евалуиране на крају рада (одзив и прецизност, али и неке техничке карактеристике као што су раст базе/индекса и брзина/ефикасност), уз поређења са неким постојећим системима за ПИ. Прототип је реализован у једном окружењу којe чине различити развојни алати и извршне софтверске платформе који нуде могућност флексибилног управљања особинама и изменама прототипа. Окружење и прототип остављају могућност многих побољшања. Дају се предлози побољшања класичних система ПИ (стоп листе, агрегирано веб рангирање, боља имплементација лењих особина), поређења и могућа интеграција окружења са неким комерцијалним информационим системима (SAP BI, Oracle RDBMS), и решењима отвореног кôда – као и предлози других потенцијалних побољшања: употреба језичких ресурса (стемери и етикетирање за српски језик), латентно семантичко индексирање и фази претрага. Овако замишљено окружење и систем претраживања би могли да понуде боље перформансе у односу на постојеће у смислу прецизности и перформанси (предвиђена је мања потрошња простора за индексирање када се користе већи документи). Прототип заједно са окружењем је замишљен као алат који се може лако прилагодити неким специфичним захтевима и применама које нису у том облику присутне код неких других система (нпр. интеграција са Weka алатом за примену истраживања података и машинског учења), али и за неко даље проучавање оваквог једног модела.

Класични системи претраживања информација (познати веб претраживачи као пример), и системи сарадничког претраживања (негде познати и као системи аутоматског препоручивања садржаја) нису новост, као ни системи ПИ који се прилагођавају неком корисничком избору релевантности резултата употребом метода машинског учења. Комбиновањем ПИ и СПИ може се добити систем који даје персонализовано прилагођен (рангиран, пре свега) резултат претраге, што ће даље бити образложено. Системи СПИ најчешће подразумевају праћење корисничке потребе кроз профиле корисника као структуре којима се прате њихове особине и потребе. Профил (избора) корисника у овом раду се може посматрати као пресликавање из скупа докумената у неки број, оцену релевантности документа за изабраног корисника. Овакво пресликавање се итеративно мења и побољшава интерактивним

10

Page 21: Magistarska teza

уносом оцена релевантности од стране корисника. Меморијски засновани системи СПИ користе на погодан начин дефинисану блискост корисничких профила (идеално са особинама метрике) којом се уз одговарајућу методу предвиђају избори корисника (оцене релевантности) засновани на изборима других корисника са сличним корисничким потребама. Често се користи у ту сврху метода најближих суседа (или нека њена варијанта као у овом раду) или одговарајућа метода машинског учења инстанцама (које су познате и као меморијске или лење методе), али постоје и други приступи. У најкраћем, код методе најближег суседа се за датог корисника и документ упита формира скуп суседа који представљају скуп корисника блиских датом кориснику. Блискост се дефинише често као метрика у простору корисника са њиховим профилима избора. Профил избора корисника обухвата познате (унете) субјективне оцене корисника о документима и њиховим особинама (атрибутима), а блискост међу документима такође може бити метрика која зависи од сличности особина.

Сарадничко претраживање се може посматрати кроз модел корисник-О-А-В, тј. модел корисник-објекат-атрибут-вредност (проширени О-А-В модел), где документ претраге представља објекат, са својим особинама као атрибутима и њиховим вредностима за конкретне документе. Уобичајено је да се код СПИ оцењује релевантност документа за корисника као особина изражена неким бројем, што користи и прототип (број у интервалу [0,1] где 0 значи да документ нема значај за корисника, а 1 је највиша оцена релевантности). Оваквим моделом се могу обухватити и оцене релевантности свих осталих особина докумената (као део корисничког профила), што је донекле могуће и у окружењу које се предлаже у овом раду али спада и у планирана побољшања и даља истраживања заједно са језичким особинама садржаја (откривање језика, употреба стемера и програма за етикетирање). Особине докумената, поред директних као што су речи, могу бити и изведене. Изведене особине могу бити плитко структуриране (shallow, добијене као класичне статистичке величине или неким познатим аналитичким или нумеричким методом, нпр. FFT), или дубоко структуриране (добијене екстракцијом знања и методама вештачке интелигенције). Метода најближих суседа (МНС) се може користити и као метод класификације и екстракције изведене особине – нпр. класификацијом докумената употребом те методе се може одредити њихов тип формата (или SVM методом као у [50] и [52], која се

11

Page 22: Magistarska teza

користи у прототипу за класификацију речи), или језик на којем су написани. Изведене особине могу бити унете од стране корисника (нпр. субјективна оцена занимљивости, дизајна корица књиге или веб стране, препоручљивости садржаја другима, итд), или се могу добити аутоматски (класификацијом мултиграма), и зато свакако утичу на прецизност добијеног резултата.

1.2 Разлози за избор решења у раду

Један од разлога за развој и употребу оваквог система је могућност прилагодљиве примене и интеграције са неким комерцијалним решењима и пословним окружењима, подржане Java платформом. Java платформа нуди пре свега независност од оперативног система и хардверске платформе, као и стандардизовано и робусно окружење. Конкретно решење је замишљено модуларно што је добрим делом примењено и на прототип, и зато је додатно једноставно прилагодити га неким специфичним потребама. Перформансе овог система и окружења тренутно сигурно заостају у односу на неке познате системе ПИ, али овде приказано окружење нуди флексибилност коју немају одговарајућа комерцијална решења. То се огледа у могућности повезивања алата различите природе (о чему ће бити касније дати примери): комерцијалних информационих система или складишта података са истраживањем података и ПИ. Пословни информациони системи (ERP, Enterprise Resource Planning) су важан извор информација за системе пословне интелигенција са складиштима података (Business Intelligence, Data Warehousing). Међутим, све више се очекује од оваквих система да имају различите изворе информација (или чак знања), где различити алати отвореног кôда често нуде у много чему и боља решења од комерцијалних (на пример, Weka алат). Ако се ови укључе у пословни систем уз поштовање одговарајућих стандарда, могу се добити решења које иначе није могуће реализовати тако једноставно и исплативо. Међутим, основни циљ овог окружења и реализованог прототипа је даље испитивање његових могућности примене и постављање основе за неке даље резултате.

У пословном окружењу влада атмосфера великог притиска у вези сталног преиспитивања достигнутог нивоа резултата у финансијском смислу као и у другим доменима, траженог или понуђеног нивоа услуга у склопу целог система у односу на захтеве. Тада могу бити битни задати индикатори перформанси нивоа услуга за које се успоставља нека врста уговора (SLA, Service

12

Page 23: Magistarska teza

Level Agreement) између различитих пословних чинилаца, где ти индикатори могу бити различите комплексности: расположивост система, брзина одзива или прецизност, ауторска права, безбедност, следљивост тока измена по задатим стандардима, материјална вредност и одговорност, остварења различитих докумената и пословних објеката у систему у односу на планове и ресурсе, праћење пројектних активности, итд. Ти подаци се сакупљају и прате заједно са осталим пословним параметрима у системима консолидованог извештавања (top management) и пословне интелигенције, а многи произвођачи нуде већ припремљене одговарајуће алате или нешто блиско њиховим постојећим производима. У таквом окружењу могу бити значајни индикатори или њихове вредности откривени употребом система ПИ као алата или као аутоматског извора података. У раду се даје преглед могућих начина повезивања са неким од ових система, и могућих примена. Најосновнији ниво повезивања може се остварити преко саме базе података (као и са Weka алатом преко одговорајуће JDBC везе или неке друге технологије коју нуде Oracle, SAP и други) одакле други системи могу својим постојећим механизмима преузимати податке. Сваки пословни систем има и своје додатне механизме повезивања са екстерним системима. Окружење приказано у овом раду својом отвореношћу и модуларношћу омогућава лакше и флексибилније повезивање, и нуди могућности које неки комерцијални системи немају, пре свега могућност употребе Weka и других алата отвореног кôда која би другачије била тешко изводљива.

Такође, занимљив пример ([47] пре свега, као и [25], [62], [1], ♦, [65], [72]) нуди искуство у области биоинформатике где се у огромном броју научних радова могу открити неочигледне везе међу термима које су основа важних научних открића - што би без одговарајућих алата текстуелног истраживања и претраживања било тешко или немогуће у достигнутом високом проценту. Терми се овде аутоматски откривају и групишу (слично стемовању), врши се кластеровање и класификација, итд. Пример може бити веза између неког обољења и одређених протеина која није присутна у неком документу али се транзитивно затвара термима као што су услови експресије одређеног гена или резултати неког експеримента који их повезују.

♦ http://www.nactem.ac.uk/workshops/lrec08_ws/ http://www.jbiomedsem.com/ http://personalpages.manchester.ac.uk/staff/G.Nenadic/bibl_bio.html

13

Page 24: Magistarska teza

Предложено окружење зато пре свега представља основу за даља истраживања и могуће примене сличне поменутим примерима. Један од могућих даљих праваца развоја овог окружења јесте и развој система за откривање знања и истраживање текста (Knowledge Discovery, Text Mining).

1.3 Начин и основе реализације окружења

Предложени прототип је део окружења у којем се развија и користи један систем претраживања информација. Окружење чине пре свега:

• одабране методе са теоретским основама (поред наведених),

• одабрани развојни алати,

• хардверска и софтверска платформа у којој се развија и извршава,

• пробни подаци и методе мерења перформанси.

Окружење се реализује поступно, идеално наведеним редом - враћање на претходне фазе доноси нове непознанице и продужава цео поступак. На слици 1 испод приказан је уопштени (канонски) прототип класичног система за ПИ (према дијаграму датом у [16]), где је стрелицама приказана архитектура система ПИ кроз структуру тока података (без тока процеса):

Слика 1 – уопштена архитектура система за ПИ

Под подацима се подразумевају документи, упити и елементи индекса - за разлику од корака извршвања, догађаја и аргумената

14

Page 25: Magistarska teza

позива модула. Када корисник поднесе упит интерфејсу, он након почетне трансформације бива прослеђен модулу за упитивање који на основу индекса (и репозитиријума, опционо) генерише листу докумената који одговарају упиту. Добијена листа се прослеђује модулу за рангирање који је сортира према одабраној методи и критеријумима, и прослеђује тако добијен коначан резултат интерфејсу. Модул за индексирање формира индексе аутоматски (након сваке промене репозиторијума или у неким временским интервалима). Шетач такође најчешће ради аутоматски, независно од остатка система, прикупља документе и шаље их у репозиторијум. Наведена архитектура у најосновнијем облику подразумева:

• репозиторијум: база докумената који се претражују (или кеш, cache), или један њихов део – попуњава се аутоматски или по захтеву корисника; репозиторијум докумената представља колекцију докумената који се претражују и који су доступни систему ПИ у ту сврху; код неких система постоји специфична потреба за локалним складиштем у коме се физички налазе сви документи домена претраге (нпр. код система за електронско управљање документацијом, какви су EMC Documentum, Oracle UCM, SAP Content Server, Knowledge Tree, PBS, различити портали, и друго), али код многих других тако нешто губи смисао због огромне количине датотека (што је или технички неизводиво, или економски неисплативо - нпр. код претраживача веба); често се уместо тога користи структура индекса, делимично кеширање, или посебна репрезентација докумената.

• модул за индексирање: срце традиционалних система ПИ, представља у суштини методе организације података за потребе система ПИ (бира се према домену претраге и врсте конкретног система ПИ), због чега има важну улогу и у прикупљању докумената у репозиторијум, поред упитивања и претраге; овај модул креира индексе најчешће као инверзне структуре података из докумената у репозиторијуму (биће појашњено даље у тексту), и враћа по захтеву документе за задате кључне речи које касније користи модул за упитивање;

• модел за упитивање: добија упит од корисника, обрађује га и употребом индекса и одговарајуће методе генерише

15

Page 26: Magistarska teza

резултат (hit list) који прослеђује модулу рангирања; ако постоји посебан кориснички интерфејс или језик упитивања потребно је трансформисати улаз у облик који је потребан изабраној методи (на пример, могућа је додатна трансформација упита или екстензија упита над језичким ресурсима пре даље обраде)

• модул за рангирање: добијени резултат сортира у опадајућем редоследу према дефинисаној релевантности његових ставки (према мери сличности документа са упитом у односу на изабрани модел и критеријуме), и прослеђује то кориснику;

• шетач (crawler): специфично за веб претраживаче, засебан модул (који може да се извршава конкурентно и независно на више сервера) који сакупља странице (документе) аутоматски и прослеђује их у репозиторијум (на индексирање);

• интерфејс: интерфејс је модул који комуницира са веб клијентом корисника, и код класичних система ПИ нема посебну улогу или га уопште нема - прототип у овом раду га користи на посебан начин; код веб мета-претраживача овакав модул има посебну улогу (интерфејс као модул, описан у [16]), где преузима и улогу модула за упитивање, а врши прослеђивање упита уз додатни обраду (нпр. стемовање) другим веб претраживачима (нпр. Google, Altavista, Yahoo), и на крају координира добијене резултате са својим репозиторијумом.

Поред овакве архитектуре система ПИ који се тичу пре свега веб мреже на интернету, могу бити занимљиви системи засновани на P2P (peer-to-peer) мрежама и интелигентним агентима који могу играти различите улоге.

Одабрана хардверска платформа је лаптоп или кућни рачунар (довољно само за основне тестове и развој). Развојни алати и софтверска платформа су:

• Java SDK (1.5+, OpenJDK 1.6) развојна платформа, и Mercurial (hg) / Sourceforge.net као решење за управљање променама

16

Page 27: Magistarska teza

• Eclipse 3.4.2 (развојно окружење заједно са претходним и Weka 3.5.7 алатом чија се имплементација класификатора користи, али који нуди и многе друге могућности),

• Apache Tomcat 5.5.х као апликациони сервер,

• Oracle 10g XE као база података (sqlplus, APEX, додатно и SQL*Developer),

• и неке додатне библиотеке и алати (нпр. jchardet као полазна детекција текстуелног садржаја).

Део поступка евалуације чини издвајање великог броја докумената из одабраних извора на интернету уз праћење основних перформанси (проценат заузећа индекса у односу на податке, одзив и прецизност у односу на симулиране сценарије). Тај поступак и рачунање резултата су реализовани употребом шетача и додатних скриптова у бази.

1.4 Основе имплементације и архитектуре прототипа

Основни концепти окружења у коме је реализован прототип као систем ПИ јесу мултиграми као репрезентација докумената и сарадничко претраживање реализовано модификованом МНС. Поред тога, мултиграми представљају и основну структуру индексирања докумената. У односу на претходно поменути канонски прототип, у овом раду прототип:

• користи интерфејс и као слој између корисниковог клијента и остатка система ПИ, али је у њему имплементиран и добар део функционалности модула за упитивање и рангирање; разлози за овакав избор су: мањи саобраћај са остатком система (потребна поља се читају из базе података, а онда се формира списак резултата), остављање могућности лакше имплементације мета-претраживања, и боља изолација од дела система који се мање мења - различити модели рангирања се тако лакше и флексибилније примењују;

• не користи репозиторијум у том смислу (кешира се само почетак тела HTML документа ради приказа кориснику у резултату);

• не користи уобичајену структуру индекса, већ користи базу података са њеним садржајем и механизмима индексирања; релациони модел на коме је заснована њена физичка

17

Page 28: Magistarska teza

структура произилази из раније поменутог концептуалног модела корисник-О-А-В, као и из захтева које намећу функционалности интерфејса (нпр. подаци о корисницима и њиховим правима приступа) и остатка система;

• модул за индексирање је делом обједињен са шетачем.

Техничка архитектура система се састоји из 4 слоја (детаљнији преглед је дат у 3.3):

• база података (физичко складиште репозиторијума докумената)

• сервер (основна компонента система)

• JSP интерфејс (компоненте система између корисника и сервера)

• веб клијент (кориснички интерфејс, internet browser)

18

Page 29: Magistarska teza

2 Преглед основа претраживања информација

2.1 Технике претраживања информација

Све данашње методе и системи претраживања информација (ПИ) се ослањају на основне алате и методе претраживања од којих су многе настале још 50-их и 60-тих година. Следи преглед основних метода, појмова и поступака.

2.1.1 Идентификација речи

Речи се почетном лексичком анализом откривају као класа токена или према специфичним захтевима конкретног система ПИ – на пример, прототип у овом раду код бинарних датотека користи хексадецимални кôд бајтова уместо речи. Прототип не користи посебно изведене особине, али је тако нешто предвиђено у постојећим модулима система и његовим релационим моделом. Сваки документ се статистички оријентисаном помоћном библиотеком класификује у текстуелне или бинарне датотеке у шетачу прототипа .

2.1.2 Закон степена

Закон степена (Power Law) за произвољно описује статистички очекивану фреквенцију f r речи у корпусу докумената на природном језику у односу њен ранг r (редни број речи у листи свих речи корпуса, поређаних од најфреквентнијих ка мање фреквентним). Зипфов закон за =1 важи за многе природне језике, и најчешће вредности су блиске 1:

f r=C r−

Константе C и зависе од самог језика и одабраног корпуса, односно домена претраге код ПИ. Потребно их је одредити статистичким методама корелације и регресије, или неком другом методом ([16]). Ако се користе N-грами N≥2 уместо речи, је обично нешто мања од 1. Једна од примена је управо код креирања зауставних листи.

2.1.3 Зауставне листе (stoplists) и речници

Речи (односно терми) које се јављају у великом броју докумената не помажу у претрази (не носе информацију у Шеноновом смислу)

19

Page 30: Magistarska teza

и само оптерећују ресурсе за њихово складиштење и обраду; зато је пожељно такве речи једноставно прескочити како током индексирања репозиторијума, тако и приликом самог претраживања. Речници (речи и синонима) имају такође важну улогу: велики број речи које имају слично значење не помажу у претрази и нарушавају перформансе система, а то је уједно и начин да се ефикасно елиминишу погрешно унети речи. Често се користе и речници N-грама, као и помоћне метрике за одређивање сличности међу њима. Речници имају важну улогу и код индексирања.

2.1.4 Стеминг и лематизација

Стемери су програми који аутоматски, без дубљег језичког знања, формирају лексички корен речи (стем, не мора бити увек језички тачан) за већи број датих улазних речи које се обично групишу према типу речи или језичке етикете ([33]). Портеров* и Ловинсов стемер за енглески језик су најпознатији примери. Стеминг је процес добијања таквог корена улазне речи који не користи посебне језичке ресурсе: припремљене лексиконе (речник где свака реч има своју етикету и опционо лему), етикетиране текстове као скупове обучавања, додатна језичка правила. Етикетирање речи (tagging) је поступак којим се речима у неком тексту додељују одговарајуће морфо-синтаксне ознаке (PoS, Part-of-Speech tags) уз употребу језичких ресурса. Ови програми могу да врше и лематизацију у неким случајевима - поступак у којем се према задатим правилима и корпусима обучавања тражи увек језички исправан основни облик речи. У том поступку се не користе морфолошка правила, а користе се обично статистичке методе и методе машинског учења без дубљег знања о природном језику и значењу текста. Неки од најпознатијих и најупотребљивијих програма су (CLAWS је био први алат тог типа, [23], [36]):

• ТnТ⧫ (енгл. Trigrams'N'Tags), чији је аутор Thorsten Brants, Saarland универзитет у Немачкој, при одељењу за рачунску лингвистику и фонетику, настао је у периоду од 1993-2000. године ([6], 1999.),

• Tree Tagger (ТТ) програма је Helmut Schmid⧫⧫, Институт за

* http://tartarus.org/~martin/PorterStemmer/ http://www.comp.lancs.ac.uk/computing/research/stemming/http://www.cs.waikato.ac.nz/~eibe/stemmers/index.html

⧫ TNT http://www.coli.uni-saarland.de/~thorsten/tnt/ http://coli.uni-sb.de/~thorsten/tnt/⧫⧫ TT http://www.ims.uni-stuttgart.de/projekte/corplex/TreeTagger/DecisionTreeTagger.html

20

Page 31: Magistarska teza

рачунску лингвистику, Stuttgart универзитет у Немачкој; програм је настао у периоду од 1994-1996. године,

• RBT⧫⧫⧫ (Rule Based Tagger) чији је аутор Ерик Брил, један од пионира учења трансформацијама (Transformation-Based Learning), настао у периоду од 1992-1994. године.

2.1.5 Индекси

Индексирање је основни поступак класичног ПИ којим се граде структуре података које обезбеђују ефикасно претраживање информација. Основни тип такве структуре података је инверзна датотетка или инверзни индекс. Индекс се може посматрати као табела која има две колоне: кључна реч претраге и листа за додавање (posting list) која представља списак докумената који садрже наведену кључну реч (обично погодно кодиране):

Реч Документи

t1 D11 , ... , D1m 1

... ...

t i Di 1 , ... , Di m i

... ...

tn Dn1 , ... , Dnm n

Табела 1 – пример инверзног индекса

Таква табела је сортирана по колони речи, а поред ових колона може се наћи и листа одговарајућих фреквенција у документима или у скупу свих докумената. Негде се користе спискови показивача ка документима уместо спискова докумената, али суштина је иста. Претраживање речи из упита почиње бинарним претраживањем речи у табели, а често се пре тога провери да ли та реч постоји у речнику који се реализује хешовањем, или чешће као бинарно стабло [41] (b-tree). Један начин да се убрза претраживање листе докумената је увођење показивача са прескоком или структуре бинарног стабла. Ако се у табели налазе N-грами речи уместо речи, онда је то фразни индекс (може се упоредити са профилима мултиграма). Често се у њима чува и колона са листом

⧫⧫⧫ Brill http://research.microsoft.com/users/brill/ http://www.cs.jhu.edu/~brill http://www.cst.dk/download/tagger/ http://www.tech.plym.ac.uk/soc/staff/guidbugm/software/RULE_BASED_TAGGER_V.1.14.tar.Z http://www.ling.gu.se/~lager/Home/brilltagger_ui.html http://www.calcaria.net/brilltagger_win32/ http://www.umiacs.umd.edu/~jimmylin/downloads/index.html

21

Page 32: Magistarska teza

одговарајућих етикета. Ови индекси могу имати улогу и код претраживања ниски речи где се води рачуна о редоследу, али већ за N=2 то постаје веома непрактично (због експоненцијалног раста). Индекс биграма може бити користан и код упита са сложеницама и са већим бројем речи чија комбинација у датом редоследу није чешћа (коњункцијом више биграма), али увек постоји извесна могућност грешке у таквом претраживању.

Зато се обично користи проширена структура – позициони индекс (са којим индекс биграма постаје веома употребљив, [41]), где се уз свако додавање у листи документа наводи и позиција дате речи у документу, што се може записати као низ редова:

:  : < ,  ,...> ;  : < ,... >реч документ позиција позиција документ позиција... 

Речници су важни и за упите код којих се користе регуларни изрази (џокер знаци), где је потребно направити ефикасан списак кандидата. На пример, за упит облика ,,A*B” се користи бинарно стабло за проналажење кандидата који почињу префиксом ,,А” (речи су организоване од првог слова ка последњем у путањи од корена ка листовима), и инверзно бинарно стабло (организовано од последњег слова ка првом) за кандидате са суфиксом ,,B” - на крају се над њиховим пресеком употреби уобичајени инверзни индекс♦.

Индекси постају додатно сложени ако се узме у обзир да њихова реализација веома зависи од архитектуре и карактеристика система за складишење система ПИ. На пример, слоговима и карактерима се на физичком нивоу увек приступа у блоковима, и зато је потребно правити структуре које воде о томе рачуна. Код бинарних стабала треба водити рачуна о балансираности, а код хеш табела треба имати ефикасне стратегије колизије. Ако се претражује конкурентним процесима, треба предвидети одговарајуће дистрибуиране структуре података које то подржавају. На крају, ту је и простор који индекс заузима и проблем његове компресије – ово варирара од система до система♦♦. Постоје и додатне структуре података за вишедимензионе податке ([34]) и особине докумената (kd-tree, bsp-tree, kdb-tree, grid file, bang file), као и друга побољшања ових алгоритама ([28], [68]).

♦ У ту сврху се могу додатно користити и посебни пермутерм индекси и индекси N-грама слова речи (који се користе и за исправљање словних грешака у упиту).

♦♦ нпр. Apache Lucene користи 20-30% простора од укупне величине датотека

22

Page 33: Magistarska teza

2.1.6 Мере ефикасности и перформанси

Релеватнтност информације заузима као појам посебан значај не само код ПИ већ и у информационој теорији уопште – још од Шенонове информационе теорије ([61]) где се у комуникацији издваја релевантна информација (у односу на било коју). Корисник може имати и субјективну оцену значаја и сврхе информације коју тражи. Перформансе система ПИ нумерички изражавају његову успешност према врсти оцене, које могу бити у следећим категоријама:

• релевантност: прецизност, одзив и подбачај (precision, recall, fallout)

• ефикасност: цена претраживања (у смислу ресурса), време трајања претраживања (цена у смислу времена)

• корисност: економска цена претраживања• задовољство корисника: прецизност из корисничког аспекта,

задовољство добијеним рангираним садржајем

Релевантност се дефинише уопштено кроз:• прецизност P: број враћених релевантних докумената у

односу на укупан број ≠0 враћених у резултату• одзив R: број враћених релевантних докумената у односу

на укупан број релевантних докумената ≠0 у скупу свих докумената који се претражују

• подбачај F: број враћених ирелевантних докумената− у односу на укупан број ирелевантних докумената у

скупу свих докумената који се претражују

Ове вредности се могу добијати мерењем емпиријски према резултатима добијеним реалном употребом система, а могу се добити и синтетичким тестовима. У првом случају је тешко формално потврдити резултате осим кроз уобичајене статистичке методе (статистичка значајност тестова), док у другом случају се прави интерпретација субјективног корисничког понашања која никада не мора одговарати стварном стању. Једноставно, ове вредности нису апсолутно тачне, али ипак представљају поуздану оцену перформанси система. Ово веома личи на перформансе програма машинског учења и проблеме који се у неким случајевима ту јављају, на пример: програм који етикетира текст може да се различито понаша с речима које су непознате (нису задате корпусом обучавања) или познате – обично се посматра прецизност тачно етиктетираних речи у односу на укупан број речи улазног текста (што одговара прецизности), док број непознатих речи има

23

Page 34: Magistarska teza

смисла једино упоређивати са укупним бројем непознатих речи у датом тексту. Ту се може показати да језички модел има посебан значај код таквих програма (програми се понашају различито са различитим језицима).

Поред ових постоје и неке алтернативне мере, нпр. комбиновањем различитих мера (van Rijsbergen):

1− P RPR

или F-мера:

21P R

2 RP

(за β=1, P и R су једнако значајни)

или додатним мерењем броја враћених релевантних докуменатаR пре појављивања ирелевантног документа по упиту, као и

мерењем броја враћених ирелевантних докумената I− пре појављивања релевантног по упиту, предлаже се мера (Bollmann-Sdorra, Raghvan, 1993):

Rnorm=121R

− I− .

Ако је M=∣D∣ за скуп D докумената који се претражују, број враћених и релевантних докумената, онда је:

• одзив: R=

• прецизност: P=

• подбачај: F= −

M−

Особине за које се може показати да те мере имају су:

• 0≤R≤1

• 0≤P≤1

• R=0⇔P=0

• P=1⇔F=0

• ==⇔R=P=1∧F=0

24

Page 35: Magistarska teza

Oвај однос величина се може приказати Веновим дијаграмом који се налази на слици 2:

Слика 2 – односи бројева докумената

Остале величине које могу бити корисне:

• P+R

• P+R-1

•P−F

PF−2 P F, 0≤F≤1

•1− 1

12 1

P −12 1

R • F-мера:

2 R PRP

• Хајнеова (Heine) мера:1− 1

1P

1R−1

• Викеријева (Vickery) мера:1− 1

2 1P2 1

R−3

• Meadow: 1−1−P21−R2

2

• Нормализован одзив (Salton, Lesk, 1968) Ri i-ти одзив у резултату, hit):

Rnorm=1

M−∑i=1

MRi−

12 M−

25

М

Δ κ

α

Page 36: Magistarska teza

2.2 Преглед теоретских модела и метода ПИ

Различите методе и модели су размотрени и узети у обзир током прављења прототипа система ПИ. У одељку 1.1 је дата једна општа дефиниција проблема ПИ, чији модели могу бити различити. Подела на класичне и некласичне методе ПИ је најопштија. Једна категоризација модела према методама ПИ које су углавном засноване на текстуелном садржају и упитима би била:

• класичне методе: Булова, векторска, вероватносна (Cooper 1971. и Robertson 1977. године, описано у [15])

• некласичне методе: језички модел (Croft, Ponte, Song, 1998-1999. године, како је описано у [15]), информациона логика, ситуациона теорија, асоцијативна метода

• комбиноване (хибридне) и алтернативне методе (кластеровање, фази, латентно семантичко индексирање, Бајесове и неуронске мреже, генетски алгоритми, методе засноване на латицама, обрада природног језика, и друге, [9])

• веб методе (анализа веза, визуелизација), где се додатно јавља и важност веза међу документима

2.2.1 Класичне методе и дефиниције

Муерс је био први (1959) који је предложио употребу алгебарске структуре латице као основу ПИ, али је све до 2000. године ово био углавном само теоретски предлог. Показује се да је латица значајна алгебарска структура за претраживање информација уопште. Булова алгебра је такође врста латица и користи се не само у ПИ, већ и код упита над релационим базама података, као и код многих других облика примене.

2.2.2 Булове алгебре и Булов модел

Већина класичних система ПИ базирана је на Буловом моделу или некој његовој варијанти, а то је и основни модел прототипа предложеног у овом раду. Класична дефиниција Буловог модела (БМ) ПИ:

Дефиниција 4.1: За сваки документ D j у скупу D дефинише се одговарајући скуп речи♦ D j

*={t i∈T ∣ t i се јавља у D j } (носач) тако да му реч припада акко се јавља у нисци речи датог документа. За скуп D*={D1,.

* .. , Dm* }⊆PT оваквих скупова речи који одговарају

♦ или врећа речи, где вишеструкост речи у врећи одговара њеној фреквенцији у документу

26

Page 37: Magistarska teza

датом скупу докумената, дефинише се упит као исказ q у КНФ (коњунктивној нормалној форми) где je j произвољни литерал за реч t j , S j скуп враћених докумената који одговарају литералу j , L језик КНФ исказног рачуна:

q = ∧k ∨j θ jk ∈ L {t j ∣ 1≤ j≤J } , θ jk∈{t j ,¬t j }.

Тада се резултат R упита дефинише рекурзивно (слично као и вредност исказа), за литерал q=θ j :

• ако је θ j=t j онда је Rq = S j = {d∈D ∣ t j∈d}• ако је θ j=¬t j онда је Rq = S j = {d∈D ∣ t j∉d}

и на основу тога је Rq = ∩k ∪j R S jk , S jk=R jk .

(ово је уједно и алгоритам рачунања резултата претраге)

Прототип користи упите само у облику простих коњункција (клаузе без негативних литерала). Механизам реализације БМ ПИ је нешто што се подразумева у већини данашњих веб претраживача, као и код класичних система за управљање релационим базама података. Латица Булових упита као алгебарска структура (што се детаљније разматра у [16]) има и ту предност да нуди могућност бржег извршавања упита уз одговарајућу структуру и организацију.

Терм-документ (TD, реч-документ) матрица W n×m=w ij i=1,n , j=1,m

(матрица близине речи и докумената, adjacency matrix) је један од основних алата ПИ: колоне су документи, врсте речи, а елементи матрице су коефицијенти близине матрице и документа. У примеру на слици 3 је дата матрица која одговара БМ ПИ, где w ij=1 значи да t i∈D j

* , односно w ij=0 значи да t i∉D j* . Тако се из TD матрице

може добити D j*={t i∈T ∣ wij=1 }, и обратно. Постоје различите

шеме доделе вредности коефицијентима w ij и њиховог нормирања (wеighting schemes) које су посебно важне код векторског модела (чест пример је шема w ij=f ij⋅idf i ).

TD D1 D2 D3 D4

t1 1 1 0 0

t2 1 0 1 0

t3 0 1 0 1

t 4 0 0 1 1

Слика 3 – пример TD матрице докумената и речи (преузето из [16])

27

Page 38: Magistarska teza

Проблем са оваквим матрицама је што за велики број докумената (што је уобичајено код ПИ) постаје велики изазов за рачунарске ресурсе и утиче на перформансе алгоритама који је користе, где су најбрже имплементације оне које све држе у радној меморији. Постоје и друге репрезентације блискости термова и докумената (нпр. обележени графови и Хасеови дијаграми, [16]), као и структуре података којима се овај проблем може ублажити.

2.2.3 Векторски модел

За дате скупове T, D, и матрицу TD, ако се документи (и упит) и њихов носач репрезентују вектором (колоном) те матрице дужине n, добија се векторски модел ПИ, где је класични Булов модел само специјалан случај. Класична дефиниција векторског модела (ВМ) ПИ:

Дефиниција 4.2: За скуп докумената D дато је пресликавањеσ : D×D[0,1] које је функција сличности (докумената) ако

важи:

• 0≤σ a ,b ≤1, ∀ a, b∈D (нормализација)• σ a ,b=σ b ,a , ∀a ,b∈D (комутативност)• a=b⇒σ b ,a=1, ∀ a, b∈D (рефлексивност)

Ако је q∈D упит и τ∈ℝ , τ0 задати праг сличности (threshold, или рез), тада се одзив на упит q дефинише као скуп

Rq = {d∈D ∣ σ d ,q τ}, где струкрура D ,σ представља простор сличности (similarity space).

У [14] и [16] се разматрају везе оваквих простора са тополошким и нормираним просторима, док се у [15] разматра подела модела ПИ где се показује да уопштени (отежани) Булов модел не спада у класичне методе.

Пошто се сваки документ Dk може приказати вектором, Dk=wik i=1,n∈ℝ

n , као и упит q=wiq i=1, n∈ℝn (у Еуклидском

Хилбертовом простору чију базу чини скуп речи), онда се релевантност може дефинисати као скаларни производ

σ dk ,x =⟨ dk ,x ⟩ . Оваква сличност је индукована простором речи и TD матрицом, и најчешће се користи у ПИ. Из разумљивих разлога често се овај скаларни производ зове косинус – што је угао међу векторима мањи, они су сличнији а скаларни производ је већи. Вектори докумената испод задатог прага сличности у односу на упит, као и документ чији је вектор ортогоналан у односу на упит

28

Page 39: Magistarska teza

(ортогоналан документ), не враћају се као резултат.

2.2.4 Латентно семантичко индексирање

Векторски модел ПИ је настао као последица истраживања конкретних метода и алгоритама ПИ који су користили векторе и друге репрезентације независно од формалних модела – просто као структура података. Још је 1966. Салтон уочио предност равноправног репрезентовања документа и упита (повезано са TD матрицом 1975. како је наведено у [15]). На пример, речи и негативни литерали сличног значења нису независни у семантичком смислу (донекле слично независним случајним променљивама), тако да корисник не може да очекује семантички потпуно оправдане резултате код метода које претпостављају такву независност. Један начин да се то превазиђе јесте употреба речника синонима (thesauri) или WordNet ([46]) модела, а векторски модел нуди и неке додатне приступе. Ако из неког разлога корисник очекује да резултат упита укључи и ортогоналан документ који не би у стандардном ВМ ПИ био враћен, један начин да се то постигне је погодном трансформацијом векторског простора докумената, односно његове базе.

За уобичајени ВМ ПИ, вектор сличности упита за све документе се рачуна као p=W T q (скаларни производ), где је w ji тежина речи

t i у документу D j за транспоновану матрицу реч-документW T m×n=w ji j=1,m,i=1,n (колоне су речи, документи врсте). Ако се

уместо W Т користи матрица W kT=U k Sk V k

T трансформисана SVD методом (сингуларном декомпозицијом – програмске библиотеке♦) где је kr≤n и r=rang W , онда се добија по ЛСИ методи матрица сличности између неких сада нових, вештачких особина (речи, или концепата), а скаларни производ p=W k

T qk даје сличност докумената у новом простору (U – реч вектори, V – документ вектори). Уобичајено је m≥n, иначе наведене матрице U и V мењају места. Поред овог приступа, среће се и уопштени ВМ ПИ као решење (по истоименој методи коју су предложили Wong и Raghavan која је описана у [15]).

ЛСИ представља у суштини апроксимацију матрице коефицијената, и представља начин да се ублажи проблем величине те матрице. Такође, тиме се може и губити на перформансама у смислу прецизности (представља неку врсту пројекције у простор с

♦ ЈАМА http://math.nist.gov/javanumerics/jama/ Colt http://acs.lbl.gov/~hoschek/colt/index.html ftp://math.nist.gov/pub/Jampack/Jampack/AboutJampack.html

29

Page 40: Magistarska teza

мањим бројем димензија), али се често може и значајно добити јер се елиминишу нејасне разлике у значењу међу речима (према тежинској шеми, а постоје и друге предности [8]) – зато се ова метода и зове латентно семантичко индексирање. Поред тога, подржава и веома важну особину лењости за ПИ - могуће је радити ажурирање (update, односно fold-in, [4]) речи и докумената без потребе да се рачуна цела матрица поново, већ само један њен део.

2.2.5 Фази скупови и упити

Класичан пример заснивања и примене фази логике је Задеов приступ дат у [75] и [38]:

Дефиниција 5: Нека је домен X (скуп, простор објеката X={x })- фази скуп A у X карактерисан је функцијом припрадности♦, односно карактеристичном функцијом:

A x : X[0,1]

Једна алтернативна дефиниција коју је дао Цимерман 1996. (Zimmerman, описано у [15]) полази од уређених парова:

А={ x ,A x ∣ x∈X }, а постоје и општије дефиниције ([20]) које се као и претходне ослањају на алгебарски приступ. Уобичајени модел фази теорије скупова се даље ослања на функцију припрадности♦♦, а дефинишу се тако и неуобичајене операције над скуповима (алгебарски производ, збир, множење скаларом) као и оператори одредби (hedges) којима се модификује карактеристична функција (слабо, јако, донекле, и други). Заде овај формализам користи да би развио ,,рачун речима” ([39] и [40]) који даље примењује код фази експернтих система, као и код фази упита, фази алгоритама, итд. На основу овог формализма се развијају и практичнија решења заснована на фази скуповима и агрегираном методу (наведено за ПИ у [15], а детаљнији поступак је описан у [56] и [55]). Овакав приступ је дао многе практичне и комерцијалне примене са различитим фази моделима. Постоје и мање практични покушаји фази проширења DL (дескриптивне логике, која представља дијалекат PR1 и логике типова, а који се користи за упите над онтологијама [64], где су OWL и RDF стандардни језици онтологија) какви су дати нпр. у

♦ скуп је оштар (crisp) односно одговара скупу класичне теорије скупова ако:x∈A онда A x =1, иначе A x =0, и обратно

♦♦ нпр. фази A⊂B⇔a≤B , или A∩B=A∧B , где се фази оператор∧ дефинише одговарајућом реалном функцијом (t-нормом), где су фази

скупови елементарни искази фази логике

30

Page 41: Magistarska teza

[63] за OWL-DL проширења. Ови би се такође користили за упите над базом онтологија (важећим Web 2.0 стандардом за мета-садржај на вебу), формално засновани на Хајековом аксиоматском приступу фази логици (Хајек то покушава у [29] да покаже уз многа озбиљна ограничења). Многе добре особине PR1 нису задржане или нису до краја доказане, а постоји и проблем са комплексношћу оваквих метода. Међутим, онтологије су сигуран будући стандард мета-садржаја и општих база знања на интернету, и свакако ће свако будуће ПИ морати да се ослони на овакве структуре података и неке одговарајуће фази методе.

2.2.6 Претраживање веба и рангирање

Ако је D={D1,. .. , Dm } скуп веб страница, усмерена веза међу њима је дата релацијом DiD j и тиме је дефинисан веб граф

G=D, са матрицом блискости докумената M=miji , j=1.m ,чија шема доделе вредности може бити (нпр. за вредност Cij=1 :

mij={ Cij , DiD j

0, иначе } Број излазећих веза са странице се зове степен излазака, а број долазећих веза се зове степен долазака странице. Методе анализе структуре веза квантификују системе у којима се јавља повезаност већег броја објеката (приступ конекциониста, [58] и [17], поред веб страница ту су и примери друштвених мрежа, веза међу писаним документима, веза међу атомима молекула, и други). Ово је и специфичност система ПИ на вебу којом се може значајно побољшавати рангирање. Основни метод је дао Гарфилд (још 1955. и 1972. год., наведено у [15]) у оквиру анализе цитирања (citation analysis) у литератури где се рачуна фактор значајности (impact factor). Прототип бележи везе међу документима и одговарајуће величине су предвиђене релационим моделом али се то не користи, већ је предвиђено део каснијег побољшања.

2.2.6.1 Метод ранга странице (PageRank)

Брин и Пејџ су 1998. год. формулисали вредност ранга страницеDi као следећи израз:

Ri=∑D j∈Bi

R j

L j

, i=1,m

где је Bi={D j ∣ D jDi } и L j=∣{Di∣D jDi }∣ степен излазака странице D j . Ово даје хомогени линеарни систем једначина који има нетривијална решења ако му је детерминанта једнака нули. Ако

31

Page 42: Magistarska teza

је М матрица блискости задата са Cij=1 /Li , i , j=1,m , онда се вектор рангова страница добија из једначине R=МT R . Може се показати♦ да је ∣D−E∣=0 и зато је R сопствени вектор карактеристичне вредности 1 (за коју се показује да је и највећа, [15]). Пошто је m обично веома велико, користи се апроксимација:

Rk1=M T Rk , k=0,1,. .. , K

R0=[ 1m

, ... ,1m ] где је К>50 довољно велико или max∣R k1−R k∣

Ово је веома слично итеративном методу степена којим се рачуна доминантни сопствени вектор (вектор највеће карактеристичне вредности матрице), где се додатно вектор у свакој итерацији нормализује (макар приближно у одноу на једну координату као скалар), и уз коначан резултат RK може да се апроксимира и одговарајућа карактеристична вредност Рејлијевим разломком:

M T , RK =RK

T MT RK

RKT RK

Дешава се да је нека страница D ј висећа (dangling) тј. да није повезана са осталима (њена колона у М ће бити 0), и пошто се mij

може интерпретирати као вероватносноћа преласка са чвора i на чвор ј током шетања вебом (browsing), њеној врсти i се додељује

m 'ij=1 /n, j=1,. .. , м m 'ij=mij иначе) и тако се добија

исправљена матрица M', на основу које се рачунаM ' '=M '1−/n и користи уместо почетне M. Овај метод

користи Google претраживач.

2.2.6.2 HITS метод

Овај метод је предложио Клајнберг 1999. године ([15]) – два важна типа веб страница (чворова веб графа) који се међусобно појачавају:

• избочине (hubs): чворови чије везе иду ка великом броју ауторитетних чворова (ауторитета)

• ауторитети (authorities): чворови који имају велики број улазних веза које долазе од избочина

♦ сабирањем прве врсте матрице D-E (Е је јединична матрица) помножене са 2 са свим врстама полазне матрице добија се иста вредност детерминанте - код јако повезаних усмерених графова је сума сваке колоне 1

32

Page 43: Magistarska teza

Свакој се страници Di тако додељује тежина ауторитета x i и тежина избочине yi које се рачунају итеративним поступком:

x i∑ ji

y j

yi∑i j

x j

... што се може записати одговарајућом матрицом блискости (где јеА=М М T=aiji , j=1, m матрица ауторитета задата матрицом

блискости М, а H=М T М=hiji , j=1, m матрица избочина♦, и

доминантна карактеристична вредност ових матрица) као систем:

М T М x= xтј. М МT x= x

Тако дијагоналне вредности М МT представљају излазне степене, а дијагоналне вредности М T М улазне степене. Уобичајен поступак рангирања овом методом би био:

1. Припреми се почетни скуп страница S (резултат упита ПИ, првих L се задржи)

2. Генерише се базни скуп Т као S проширен страницама на свим улазним и излазним везама страница у S

3. Елиминишу се странице са истим доменом (бирају се репрезенти и задржавају везе)

4. Гради се веб граф за Т са матрицом блискости М5. За почетне вредности x0=[1,. .. ,1]T , y0=[1,. .. ,1]T понавља се

довољан број пута (након сваке итерације се додатно нормализују добијени вектори):

x i1=M T y i , y i1=M x i1

2.2.6.3 SALSA метод

Овај метод (предложили их Лемпел и Моран 2001. године, описано у [15]) нуди другачији приступ рачунању избочина и ауторитета. Ако је М=mij матрица блискости, конструишу се матрице М r=r ij и М c=cij као (Langville и Meyer 2005 у [15]):

r ij=mij

∑ j=1

mmij

, ∑ j=1

mmij≠0, i , j=1,. .. ,m

♦ где онда сваки елемент а ij матрице А представља број страница ка којима странице Di и D j имају везу, и сваки елемент hij матрице H представља број страница које имају везу ка страницама Di и D j

33

Page 44: Magistarska teza

c ij=mij

∑i=1

mmij

, ∑i=1

mmij≠0, i , j=1,. .. ,m

на основу којих се дефинишу матрице избочина и ауторитета:

H=M r McT

A=M cT M r

одакле се добијају вектори избочина и ауторитета као сопствене вредности доминантних карактеристичних вредности одговарајућих матрица.

2.2.7 Комбиноване и остале методе

Постоје различите методе засноване на комбиновању рангирања веб страница и релевантности садржаја у односу на упит. Поред тога, у [16] су наведене посебне методе као што су веб латице и структура садржаја странице, и P2P ПИ. Код веб претраживања јавља се и појам мета-претраживача који користе резултате претраге других претраживача, а онда их комбинују са неком додатном методом. Поред тога, у [15] су приказане и методе вештачке интелигенције примењене на ПИ: Бајесове мреже (мреже уверења), неуронске мреже и генетски алгоритми, као и агрегирана методе фази вероватноће са фази скуповима♦ која комбинује значај садржаја и веза, као и метода функције комбинованог значаја. Издваја се и метода спајања сличношћу као комбинована метода.

2.2.7.1 Спајање сличношћу

Комбинован значај који су увели Фокс и Шо 1994. (наведено у [15]) као суму нормализованих девијација минумума Ψ ј странице

D ј , рачуна се на следећи начин:

Ψ j=∑i=1

m sij−smin

j

smaxj−smin

j

где је sij значај странице D ј према методи i, m>1 је број метода

које се користе, sminj =mini si

j , smaxj =maxi si

j , а добијени значај се неки пут додатно множи фактором М који је сразмеран броју метода за које је

sij≠ 0.

♦ постоји формално строжији и детаљнији поступак описан у [55] и [56] (уз интерполативну реализацију Булове алгебре) којим се могу реализовати Булове мреже (слично Бајесовим) са логичком агрегацијом услова упита

34

Page 45: Magistarska teza

2.2.7.2 P2P ПИ

P2P мреже постају све уобичајенији алат на интернету, и имају различите намене (примери: eDonkey и варијанте, Torrent као средство размене датотека и информација, и други). Одликује их висок степен дистрибуираности ресурса, пре свега:

• не постоји централни репозиторијум датотека (као што је то случај код традиционалних система ПИ, мада је могуће да неки чворови имају посебну улогу у вези комуникације и индексирања садржаја) и често се реализују као мулти-агентски системи

• велике количине података се могу додавати и одузимати у ad hoc маниру

• чворови (peers – равноправни суседи, тзв. ,,улоговани клијенти”) могу такође учествовати и напуштати мрежу у ad hoc маниру (што није уобичајено код веб мреже), обично постоји скуп непосредних (чворови у околони) и посредних суседа у мрежи (сви остали)

• генетски алгоритми (ГА) и друго: постоје резултати који показују могућа побољшања и оптимизацију рутирања упита употребом ГА ([73] и [57]) и других техника♦ и ВИ за ПИ уопште, [76], [11].

2.3 Машинско учење и ПИ

Један од могућих начина да се побољшају перформансе система ПИ јесте да се сагледају његове особине и предвиде перформансе онако како се то ради код програма машинског учења ([48], пре свега уз резултате рачунске и статистичке теорија учења, [69] и [44]). Прототип у овом раду користи методу најближих суседа (МНС) као облик машинског учења, а предвиђа и могућност примене метода класификације. Те методе су важне за многе језичке методе и алате текстуелног инжерества ([26], [32]), екстракцију особина, откривање језика (као и неке алтернативне методе, [27], [31]), и друго.

2.3.1 Појам машинског учења

Једна прецизнија дефиниција машинског учења (како се наводи у [44]) би била:

♦ http://www.petamedia.eu/sig4.html

35

Page 46: Magistarska teza

Дефиниција 6: Програм (машина) M учи из искуства E у односу на класу задатака Z и меру перформанси P (мера је дефинисана над особином или скупом особина које такође морају бити дефинисане за тај програм), ако се мера перформанси пограма P побољшава у вези задатка Z након искуства E.

Примера ради, код препознавања писаног текста задатак Z је препознавање и класификовање речи или слова у датој слици, P је проценат исправно препознатих, E је одређем скупом обучавања S који чини базу задатих слика слова и речи и њихових одговарајућих класификација. Објекти учења (оно што је потребно научити) могу бити различите концептуализације света, модели података, односно израчунљиве структуре. Основни пример су функције – многи се проблеми могу свести на задатак тражења одређеног пресликавања f над задатим скуповима - циљне функције. Задатак машинског учења се може онда схватити као апроксимација циљне функције. Учењем се конструише хипотеза h (функција исте арности као и f, и над истим скуповима) за дати скуп обучавања S који садржи одређени број примера - парова задатих вредности домена и вредности циљне функције f. Циљ је да се у оквиру задате класе функција H конструисана хипотеза што боље ,,поклапа” са f (h=f, идеално), како за S, тако и изван њега. На пример, функција евалуације у теорији игара која је обично представљена вектором њених параметара (уз нпр. Least Mean Square (LMS) као правило учења).

2.3.2 Типови учења и основне одлике

Основна подела типова учења везује се за функције као објекте учења (слична се подела може уочити и код осталих врста објеката учења):

• надлгедано (supervised) – када су задате вредности циљне функције у скупу обучавања (тривијалан пример може бити интерполација или фитовање криве) – прототип користи МНС која припада овој врсти учења (уноси оцена релевантности докумената свих корисника би представљали скуп обучавања),

• ненадгледано (unsupervised) – када нису задате вредности циљне функције у скупу обучавања (обично се своди на неки проблем кластеровања или класификације где би вредност функције требала да буде произвољна класа), већ програм сам уочава правилности (patterns) у скупу обучавања.

36

Page 47: Magistarska teza

Хипотеза као научено знање концептуализације света (окружења програма који учи) и њена тачност као полазна мера перформанси су заједничке већини система машинског учења. Ту сe пoстaвљajу мнoгa питaњa - кaкo рeaлизoвaти oптимaлнo учење, кaкaв скуп oбучaвaњa je пoтрeбaн (кoлики брoj пaрoвa, кaкo њихова рaзнoврснoст утичe нa спoсoбнoст гeнeрaлизaциje нaучeнoг знaњa), кaкo (и зaштo) oгрaничити клaсу рaспoлoживих хипoтeзa, и другo. Тaкoђe, вeoмa je вaжaн избoр члaнoвa скупa oбучaвaњa и нaчин eвaлуaциje пeрфoрмaнси учeњa - кoликo je пoтрeбнo пaрoвa oбучaвaњa дa би сe пoстиглo oптимaлнo врeмe и пeрфoрмaнсe учeњa? Aкo je скуп пaрoвa oбучaвaњa уjeднo и jeдини извoр знaњa зa систeм кojи учи, и jeдини извoр зa oцeнe пeрфoрмaнси учeњa – кaкo бити сигурaн дa ћe систeм кaсниje успeшнo рaдити и сa нeпoзнaтим пaрoвимa вaн скупa oбучaвaњa (кoликo je у стaњу дa гeнeрaлизуje) ? Чeст прaктичaн мeтoд дa сe oвo пoстигнe je пoдeлa скупa oбучaвaњa нa n пaртициja (n folds cross validation, гдe je n oбичнo измeђу 3 и 10), гдe сe у n итeрaциja jeднa пaртициja кoристи зa oцeну пeрфoрмaнси a oстaлe зa учeњe. Ово је уједно и добар начин да се оцене перформансе, а у случају прототипа за тако нешто је потребно имати задато идеално рангирање.

Свака метода машинског учења мора имати неког уграђено (унутрашње) знање (биас) које је чини способном да решава проблем у специфичном домену примене ([10], [43]). С овим је повезана честа претпоставка о простору хипотеза која полази од принципа Окамове оштрице: увек се бира једноставнија и краћа репрезентација. Овај принцип, омиљен међу физичарима, показује се веома корисним код многих статистичких метода машинског учења. Важна имплицитна особина ових програма је однос према скупу обучавања, његовом обиму и квалитету. Програми засновани на неким методама престају да генерализују добро са превеликим скупом обучавања (overfitting) па се додатним механизмима то исправља. С друге стране, неки програми су осетљивији на грешке у скупу обучавања од других. МНС нема унутрашње знање о домену претраге и релевантности докумената и зато не генерализује најбоље без обзира на величину скупа обучавања, али зато није толико осетљива на унете грешке од стране корисника. Прототип реализује сарадничко претраживање овом методом и зато наслеђује њене особине.

2.3.3 Учeњe инстaнцaмa и мeтoдe клaсификaциje

Учeњe инстaнцaмa пaмти примeрe и гeнeрaлизуje их тeк унoсoм

37

Page 48: Magistarska teza

нoвe инстaнцe - дo тaдa je oнo oдлoжeнo, и зaтo сe oвe мeтoдe нaзивajу и ,,лeњим" (lazy) - нaсупрoт њимa су ,,рaдoзнaлe" (eager) мeтoдe. Oснoвнa прeднoст мeтoдa учeњa с oдлoжeним уoпштaвaњeм je њихoвa прилaгoдљивoст нoвим примeримa и веома брзо учење.

2.3.3.1 Мeтoд нajближих сусeдa

Jeдaн мeтoд учeњa инстaнцaмa, кojи сe смaтрa тaкoђe и стaтистичким методоми методом класификације, je мeтoд нajближих сусeдa (МНС), или мeтoд мeмoриje (према [44], Dacarthy 1991. и Moore 1994). Циљ је научити функцију f : XВ , где је

X=X1×...×Xn домен инстанци, а B скуп категорија инстанци, који је најчешће скуп дискретних вредности B={v i} или B=ℝ .Функцијом f се свакој инстанци додељује њена класа. За ову методу је неопходно имати дефинисано растојање међу инстанцама (X је тополошки простор), и често се f представља као композиција

g°a где је g : ℝnВ и а=a1,. .. , an , a j : X ℝ функциje♦ кoje

дoдeљуjу врeднoст j-тoг aтрибутa инстaнцe скупу B. Скуп примeрa је онда S={x i , y i ∣ x i∈X , y i∈B } и yi=g a1 x i , ... ,an x i=f x i . Зa дату инстaнцу (вектор упита) xq oцeњуje се овом методом њeнa кaтeгoриja као вредност f xq .

f xq=argmaxv∈B∑i=1

kv , f x i

δ(a,b)=1 aкo a=b, инaчe je δ(a,b)=0

Слика 4 – метода k најближих суседа (kNN)

Oдaбирaњeм нajближих k сусeдa вeктoру xq кojи сe тeстирa у oднoсу нa скуп примeрa пo нeкoj мeтрици, нa примeр eуклидскoj

♦ Обично a j додатно вршe и кoрeкциjу линеарним кoeфициjeнтимa кojи сe бирajу тaкo дa пo свaкoj димeнзиjи Dom g дajу приближнo уjeднaчeн утицaj свaкoг aтрибутa.

38

Page 49: Magistarska teza

d x1, x2=∑ j=1

na j x1−a j x2

2 , бирa сe кaтeгoриja кoja je

нajбрojниja кao oцeнa кaтeгoриje. Штo je густинa тaчaкa oкo инстaнцe упитa вeћa, пoжeљниja je вeћa врeднoст k. Oвa мeтoдa трaжи дoстa мeмoриje зa примeрe, пoстoje eфикaснe примeнe (kd-tree метод који је предложио Friedman 1977. године, наведено у [44]), a joш су Кaвeр и Хaрт (Cover, Hart, [44]) пoкaзaли дa je мeтoдa 1-нajближeг сусeдa пo пeрфoрмaнсaмa приближнa и вeзaнa зa мeтoду минимaлнe вeрoвaтнoћe грeшкe. На слици 5 испoд je прикaзaн пример грaнице мeђу кaтeгoриjaмa научене хипотезе зa мeтoду 1-нajближeг сусeдa (oвaкви сe диjaгрaми нaзивajу Вoрoнoj диjaгрaмимa, преузето из [44]):

Слика 5 – Вороноj дијаграми

Вaриjaнтa aпрoксимaциje нeпрeкиднe функциje В=ℝ oвaквим aлгoритмoм сe дoбиja онда оцeнoм:

f xq=∑i=1

kf x i

k

Oчиглeднo пoбoљшaњe aлгoритмa je дa сe дaje прeднoст ближим примeримa приликoм ,,глaсaњa”, штo сe мoжe пoстићи сa:

f xq=argmaxv∈B∑i=1

kw iv , f x i , xq∉{x i∣ x i , y i∈S }, wi≡

1

d xq , xi2,

a aкo сe xq пoклoпи сa нeкoм инстaнцoм x i из скупa примeрa oндa је f xq≡f x i= y i пo дeфинициjи (aкo имa вишe врeднoсти у скупу примeрa зa исту инстaнцу oндa сe дoдeљуje нajбрojниja врeднoст). У нeпрeкиднoм случajу тo je:

f xq=∑i=1

kwi f xi

∑i=1

kwi

Пoмeнути тeжински кoeфициjeнти зa врeднoсти a j мoгу бити

39

Page 50: Magistarska teza

кoрисни и aкo нeки aтрибути нису рeлeвaнтни (двe инстaнцe су вeoмa удaљeнe збoг aтрибутa кojи нe утичу тoликo нa рeзултaт, a имajу исту врeднoст - ,,прoклeтствo димeнзиoнaлнoсти"). МНС је погодна ако се блиске инстанце класификују блиским вредностима (иначе није, а могуће су исправке у неким случајевима избором одговарајућег језгра). Oдгoвaрajућa стaтистичкa тeрминoлoгиja:

• рeгрeсиja прeдстaвљa aпрoксимaциjу нeпрeкиднe функциje рeaлнe врeднoсти

• функциja K je jeзгрo, aкo вaжи К x1, x2=⟨x1 , x2⟩ - често се употребом језгра линеарна метода класификације трансформише у нелинеарну (такозвани трик са језгром - Kernel trick, Aizerman); на пример, за позитивну семи-дефинитну функцију К, метрика се може дефинисати као

d x1, x2=K x1, x2−2 K x1, x1K x2, x2 са очуваним добрим особинама) – примери језгара:

• хомогено: К x1, x2=⟨x1, x2⟩p

• нехомогено: К x1, x2=⟨x1, x2⟩1p

• Гаусово: К x1, x2=e−∥x1−x2∥

2

2 2

• сигмоид: К x1, x2=tanh ⟨x1, x2 ⟩ , итд.

2.4 Сарадничко претраживање са модификацијама

Сарадничко претраживање информација (СПИ) или препоручивање садржаја (Content Recommendation) је корисно када простор претраге чини мањи број релевантних докумената за произвољног корисника (велики број релевантних објеката га обесмишљава). У специјалном случају, објекат претраге може бити документ ПИ, где се као код вероватносног модела ПИ кроз оцену релевантности побољшавају перформансе претраживања. СПИ може бити засновано на:

• меморијски заснованим методама (Memory Based):

Корисничким оценама релевантности се рачуна сличност међу корисницима или објектима претраге, и уз одговарајућу матрицу корисник-објекат се траже предвиђања и резултат; предност оваквих метода је једноставно објашњење избора препоруке (слично експертним системима). Најчешћа су решења заснована на методи најближих суседа (МНС),

40

Page 51: Magistarska teza

корелацији, или N-првих препорука у односу на кориснике или објекте.

• методама модела (Model Based):

Граде се одговарајући модели којима се предвиђају оцене, који обухватају све податке: Бајесове мреже, СЛМ (скривени Марковљеви ланци, [54], [71]) и неуронске мреже ([5]), методе кластеровања, семантички модели, вероватносно ЛСИ. Овим методама се углавном ефикасније решавају проблеми СПИ, али се зато плаћа висока цена у односу између прецизности и перформанси изграђивања модела у односу на нове објекте и кориснике.

Основни изазов ПИ представља неограничен раст броја докумената и њихових особина, а код сарадничког ПИ је томе придодат и огроман број корисника. Зато се често изабире лења метода учења инстанцама као једна од метода претраживања и екстракције особина. Поред модела корисник-О-А-В постоје многи други модели података о објектима претраге и корисничким оценама релевантности, међу којима су посебно интересантне онтологије. Тада се изведене особине могу добити одређеним механизмима закључивања над базом знања, и такав систем може представљати део система откривања знања. Вредности додељених атрибуту у општем случају може бити више, а овде ће се разматрати само једна (скуп одабраних вредности се може посматрати као група атрибута са једном вредношћу). Та величина може бити пресликана на неку листу ненумеричких вредности по неком ad hoc принципу, или као израз фази особина. Поред ових, специфични проблеми СПИ ([70]) су:

• реткост матрице корисник-објекат: нарушава перформансе система на различите начине, на пример - на почетку животног циклуса нема довољно оцена (решење: увести специјалне кориснике, неку врсту модератора или системских корисника)

• имплицитно обесхрабривање и експлицитно охрабривање оцењивања од стране корисника: корисници се могу начелно поделити у конзументе и произвођаче оцена – претежни конзументи могу рано одустати од оцењивања чим добију жељене резултате, а претежни произвођачи брзо губе мотив да оцењују. Постоје и ,,необични” корисници (чије су оцене превише специфичне у односу на остатак заједнице). Метода

41

Page 52: Magistarska teza

најближих суседа у основном облику захтева бар неке оцене корисника да би се нашли слични корисници – што их има више, предвиђања би требала да буду боља, али ипак није пожељно да их нема уопште без оцена, а решење могу понудити опет специјални корисници.

• Поред тога, постоји и проблем приватности: многи корисници не желе да деле податке које сматрају приватним, док опет многи конзументи не желе да верују подацима који нису довољно објашњени и детаљни. Решење може бити такође и неки вид награђивања.

2.4.1 Меморијски засноване методе

У даљем тексту под узорком ће се подразумевати низ реалних бројева који ће се означавати са X 1, ... , X n за одговарајућу ознаку X, и за ту ознаку се дефинише просек или узорачка средина као стастика узорка:

X=1n∑i=1

nX i

Меморијски засноване методе могу бити засноване на сличности дефинисане статистичком корелацијом. Ако је u∈U корисник,

D j∈D произвољни документ, и Ru, j субјективна оцена релевантности датог документа за корисника, тада је сличност:

u, v=∑i=1

∣D∣Ru,i− RuRv ,i− Rv

∑i=1

∣D∣Ru, i− Ru

2∑i=1

∣D∣Rv ,i− R v

2

где је онда математички очекивана вредност оцене објекта:

Ru, j= Ru∑v∈v j

R v , j− R ju , v

∑v∈v j∣u, v∣

где је v j скуп корисника који су дали оцену за D j . Корисна особина овакве оцене јесте да не зависи од оцене корисника (дефинише се као средња вредност Ru ако ниједан корисник није дао оцену за тај документ).

Једна модификована варијанта МНС, полази од различитости корисника u, v∈U дефинисане као:

42

Page 53: Magistarska teza

Du ,v=∑i=1

∣D∣Ru ,i−R v ,i

2

∣D∣

Ако је 0≤Ru , j≤1 , тада је и 0≤Du , v≤1. Скуп суседа неког u∈Uкорисника за дату максималну различитост (растојање) је

Su={v∣Du, v2}. Сличност корисника у односу на њихове оцене

докумената дефинише се онда као:

W i , j=1−Di , j

2

Тада је оцена вредности релевантности документа D j за корисника u према сличности корисника (по методи ∣Su∣

најближих суседа):

Ru, j=∑i∈Su

W u ,i Ri, j

∑i∈Su

W u ,i

Прототип користи управо овакву оцену релевантности документа, а ако је скуп суседа Su за изабрани параметар празан, онда се узима аритметичка средина Ru . Овакав модел се може лако проширити и оценама релевантности свих атрибута документа ([52]).

Метрика методе најближег суседа би могла да се користи за ПИ. Постоје различите метрике које се користе за дефинисање растојања међу N-грамима ([65]). Међутим, ниједна метода класификације не би била довољно ефикасна за масовно претраживање докумената са великим бројем докумената и атрибута, чак ни најефикасније познате у које свакако не спада метода најближег суседа. Један начин да се ово превазиђе су: одговарајућа организација индекса, употреба неке методе смањивања простора претраживања ([22]) одбацивањем атрибута који нису потребни за ПИ (према најмањем увећању ентропије, слично information gain методи код ID3 алгоритма; чак и ,,монте карло” одбацивање насумице даје веома добре резултате: [42], и ЛСИ, [5], [30]), или употреба неке методе сажимања атрибута (одговарајућом хеш функцијом која са задатом дистрибуцијом вероватноће сажима блиске атрибуте – Locality Sensitive Hashing, ЛСИ такође, и друге). За проблем класификације је ипак најбоље одабрати погодан скуп обучавања.

На предложену модификацију број корисника не утиче ако се

43

Page 54: Magistarska teza

добро одреди коефицијент којим се дефинише суседство корисника. Такође, да би радио ефикасно и распологао актуелним садржајем, за сваки систем ПИ је веома пожељно да користи инкременталне методе прилагођавања у односу на нове документе, атрибуте и кориснике – такве су лење методе машинског учења у које спада МНС, а постоје и одговарајуће организације података за индексирање. У супротном, неопходно је повремено ,,реиндексирање” и извесна жртва у смислу прецизности или корисничког задовољства.

2.4.2 Рачунање ранга резултата код прототипа

Рангирање резултата се врши у опадајућем редоследу у односу на израз:

Su , j=maxk rangk∑i=1

n [ f i j1Ru , j]N i

rangi

где је rangi ранг N-грама i N=N i у глобалном профилу за оне i који су одабрани да се користе за рачунање, за корисника u и документ j. Овако израчунат ранг није нормиран јер се тако брже рачуна.

Оваквим изразом се ,,награђују” боље оцењени документи, N-грами који су значајни у глобалном профилу, али пре свега најдужи N-грами. Ово последње је важно за претрагу кључним речима у којима се води рачуна о њиховом редоследу. На пример, ако се упит састоји из три кључне речи, довољно је издвојити документе који садрже триграм тих кључних речи у истом редоследу. Ако глобални профил не садржи дуже N-граме (што је тренутно случај код прототипа), претрага са више од три кључне речи ће на овај начин враћати и документе које не садрже кључне речи са истим редоследом – што је упит дужи, већа ће бити вероватноћа да се то деси. Избор N=3 је ипак добар компромис у односу на експлозију раста индекса и практичну употребу претраживања на овај начин. Многе примене N-грама у области обраде природног језика такође користе ову границу њихове дужине, као и специфичне инкременталне моделе N-грама ([60]).

44

Page 55: Magistarska teza

3 Реализација прототипа система за ПИ У досадашњем тексту су образложене основне методе и теоријске основе прототипа система за ПИ: репрезентација профилима мултиграма, Булов модел ПИ, сарадничко претраживање реализовано МНС, и база података као реализација индексних структура. Следе детаљи о одабраним развојним алатима и извршној софтверској платформи који чине окружење, извршним токовима процеса и програмској структури прототипа.

3.1 Коришћени развојни алати

3.1.1 Java

Основну платформу чини Јава♦ развојно окружење Java SDK 1.5 у коме је реализовано цело окружење, укључујући и помоћне алате (осим базе података) и библиотеке. Sun корпорација је од средине 90-тих пустила ову платформу под геслом ,,пиши једном, покрећи свуда” (WORA – write once, run anywhere), и до 2007. је практично највећи део ове платформе под лиценцом слободног (бесплатног) и отвореног кôда (GPL тачније, GNU General Public License). Ова платформа се прославила захваљујући многим напредним и јединственим концептима:

• портабилност: извршни кôд и библиотеке се преводе у међукôд који интерпретира Јава виртуелна машина, JVM, као основа извршног окружења; преведени програми се извршавају на било којој подржаној платформи без измена,

• настала је од индустријских стандарда, а даљи развој који гарантује изузетну стандардизованост, безбедност, робусност и стабилност обезбеђује процесом који контролише Јава заједница (Java Community Processs),

• заснована на једноставном објектном језику (чија је синтакса потекла од програмског језика C),

• уводи аутоматско управљање меморијом (Garbage Collection), при чему се акценат ставља на перформансе (чији је губитак због интерпретације данас занемарив) и модерне програмске технологије (конкурентно и дистрибуирано програмирање, веб, различите варијанте платформе према намени, итд).

Иако су неке од идеја Java платоформе преузете од стране других произвођача и конкурената, ова платформа своје предности дугује и

♦ http://java.sun.com

45

Page 56: Magistarska teza

годинама искуства. Након преузимања Sun-а као власника Java платформе од стране Oracle корпорације, ова платформа остаје у потпуности неизмењена и задржава лидерску позицију на тржишту.

3.1.2 Eclipse

Иако је за програмирање у Јави сасвим довољан обичан текст едитор и Јава преводилац, постоје многи разлози за додатним графичким развојним окружењем за брз равој (RAD, Rapid Application Development) какав је Eclipse♦. Eclipse је настао у IBM-у, али временом је његова грана претворена у пројекат отвореног кôда чији је циљ развој једног флексибилног, модуларног (кроз plug-in додатке) и мултиплатформског окружења за програмирање. Не само да се извршава на различитим рачунарским платформама, већ и подржава различите програмске језике и моделе, и добрим делом је реализовано у Јави. Постоје и многа друга слична окружења (Java NetBeans IDE, Oracle JDeveloper, и други), али ово је постало један од најважнијих стандарда (нпр. SAP користи једну његову грану за свој NetWeaver Developer Studio).

Слика 6 – Eclipse радно окружење

Предности коришћења оваквог алата су многе: лакша организација различитих извршних окружења, датотека с кôдом и библиотека, помоћ у писању и исправљању кôда, аутоматизовано превођење, дебаговање и тестирање, визуелни додаци за екстерне алате и окружење (нпр. базе података), и многе друге.

♦ http://www.eclipse.org

46

Page 57: Magistarska teza

3.1.3 Weka

Алат♦ који је развијен на Waikato универзитету у Новом Зеланду, представља развојну програмску библиотеку и квалитетно заокружено решење за истаживање података са графичким окружењем (GUI), засновано потпуно на Java платформи. Модуларно организовано, прошириво према датим стандардима, солидно документовано (пример веома интересантне књиге опште намене која користи ово окружење је [72]) и практично употребљиво. Може се користити и са командне линије, а подржава и шеме аутоматске масовне обраде (од филтрирања и трансформација до примене одговарајућих комбинација метода машинског учења), где извори података могу бити у текстуелном ARFF формату или базе података са стандардном JDBC везом.

У прототипу се користи SVM SMO/MIL методa класификације којa је на располагању у овом алату, али је лако могуће употребити и неки други одговарајући метод класификације.

Слика 7 – Weka графичко окружење

3.1.4 Додатни алати

Од осталих алата издвајају се пре свега алат Mercurial♦♦ као алат и решење за управљање променама, и Sourceforge.net♦♦♦ интернет

♦ http://www.cs.waikato.ac.nz/ml/weka/ ♦♦ http://hgbook.red-bean.com/read/a-tour-of-mercurial-the-basics.html#x6-430002.7.1

http://www.selenic.com/mercurial/wiki/♦♦♦ http://muse-cir.sourceforge.net

47

Page 58: Magistarska teza

портал који подржава (угошћава) пројекте отвореног кôда кроз систем апликација расположивих на тој страници, као и кроз разне друге протоколе и алате међу којима је и Mercurial. Ово је пре свега решење којим се контролишу различите верзије које настају кроз даље измене у развоју прототипа, а такође се тиме омогућује и низ других функционалности: размена кôда и осталих датотека, као и координација са потенцијалним учесницима у развоју или крајњим корисницима, чување (бекап) података, и друго. Тиме су уједно предложено окружење и прототип декларисани као решење отвореног кôда – под називом MuSE (Multigram Search Engine, или погон претраживања мултиграмима).

Поред ових алата, користи се и библиотека отвореног кôда jchardet♦ као полазни алат детекције текстуелних докумената који користи модул шетача.

3.2 Извршна платформа

Поред Јаве, тренутни прототип користи базу података као крајње складиште и апликациони сервер као слој који на коме се извршава интерфејс. Прототип подржава било коју базу података која има JDBC драјвер (Јава стандард), али је тренутно тестиран само са Oracle XE базом (и донекле MySQL).

3.2.1 Apache Tomcat

Апликациони сервер је програмски систем који подржава средњи апликативни слој вишеслојних информационих система (у односу на класичну двослојну клијент-сервер архитектуру), и то је често решење код пословних и веб апликација и система. Омогућава лакше управљање компонентама и ресурсима система, њихову изолацију, и често подржава додатне корисне особине: скалабилност (проширивост система у односу на физичке ресурсе када је то потребно, у смислу процесора, меморије или складиштења), расположивост (ефикасно и динамичко располагање ресурсима и компонентама система према њиховом оптерећењу или стању) и поузданост (у случају квара или грешке било које врсте нуди механизме опоравка). Apache Tomcat♦♦ је решење отвореног кôда које нема све додатне особине, које нуде неки комерцијални производи (произвођачи као Oracle, Microsoft, IBM, SAP, и други), али представља стабилно и стандардно решење. Прототип га користи као погон за JSP (Java Server Pages) компоненте

♦ http://jchardet.sourceforge.net/ као и http://cpdetector.sourceforge.net/♦♦ http://tomcat.apache.org/

48

Page 59: Magistarska teza

интерфејса, као и његове механизме управљања отвореним базним конекцијама. Постоје дистрибуције и за Linux (као и многе друге POSIX платформе), и за Windows оперативне системе.

3.2.2 Oracle

Oracle је један од најпознатијих комерцијалних произвођача софтвера данас, пре свега познат по истоименом систему управљања релационим базама података који је настао још крајем 70-тих (после IBM-овог System R). Oracle XE (Express Edition) представља бесплатно издање базе Oracle 10g (последња званична верзија је 12g, а нешто слично нуди и Microsoft са својим MSDE SQL Server издањем) расположиво за различите врсте употребе, с ограничењима: укупан простор корисничких података не сме прећи 4G, и користи се само 1 процесор (иако их има више, али паралелизовано извршавање упита није располиживо), а многе напредне опције нису на располагању (Oracle база се у свакој дистрибуцији ослања на исту кодну грану, и само се приликом инсталације софтвера и креирања базе активирају различите опције по потреби – које се различито лиценцирају и наплаћују). Међу тим опцијама је и употреба партиционисања базних објеката (Partitioning), компресије, битмап индекса, RAC (кластер), итд. За потребе овог прототипа то не представља велико ограничење (осим због укупног броја индексираних докумената).

Слика 8 – Oracle APEX

49

Page 60: Magistarska teza

Oracle уз саму базу нуди многе додатне алате (користи се исти термин даље у тексту, без обзира на то да ли се односи на систем за управљање релационом базом (RDBMS) као софтвер, или саму инстанцу базе са подацима). Стандардни алат за администрацију и извршавање SQL команди и скриптова из командне линије је SQL*Plus, а постоји и уграђени графички (веб) алат који подржава многе његове функционалности (као и многе додатне, а представља и врсту RAD алата) – као што је APEX♦ (Application Express). Постоји такође дистрибуција и за Linux, и за Windows оперативне системе (као и за неке друге платформе).

У окружењу на коме је заснован овај рад је креирана шема (корисник) TEST командама (а могао је бити и било који други назив):

Прототип приликом првог повезивања на задату базу и шему сам креира све остале објекте (табеле, индексе, секвенце, процедуре и функције) потребне за свој рад.

3.3 Техничка архитектура и извршни ток

Прототип се користи као веб апликација, онако како је то уобичајено код већине класичних претраживача веба. Детаљна упутства за постављање система су расположива на sourceforge страници♦♦, укључујући и упутства за подизање базе и апликационог сервера (постоје уобичајене разлике међу оперативним системима које су углавном занемариве). Одатле се такође може преузети актуелна верзија прототипа (као ZIP архива, или кроз неки од клијената за контролу измена).

Прототип система за ПИ који се разматра у овом раду се разликује донекле у односу на канонску шему система ПИ и њене поједине компоненте чији је преглед дат у 1.4. Техничка архитектура система се састоји из 4 слоја:

• база података: чији је релациони модел описан дијаграмом ентитета и релација на слици 10 одељка 3.3.3.2 (и објашњен даље у тексту), у којој се налазе: профили докумената и глобални профил, подаци о везама међу документима (линковима), подаци о самим документима и корисницима,

♦ http://www.oracle.com/technology/products/database/application_express/index.html♦♦ https://sourceforge.net/projects/muse-cir/files/help.html/download

50

SQL> create user test identified by test default tablespace users;SQL> grant resouce, connect to test;

Page 61: Magistarska teza

релевантност докумената и њихових особина, као и вредности тих особина;

• сервер – или погон претраживања (Search Engine): написан је као Java програм заснован на RMI/IIOP технологији за дистрибуирано извршавање која омогућава комуникацију са наредним слојем преко мреже, као и извршавање више инстанци сервера на физички различитим рачунарима (серверима у хардверском смислу); садржи следеће компоненте и улоге:

• део модула за упитивање: упит прослеђује бази и враћа јединствени идентификатор упита,

• шетач: сакупља повремено документе са веба са задатих адреса према задатим параметрима (дубина и трајање претраге, врста докумената, и друго) и формира одговарајуће профиле,

• ажурирање профила: има улогу модула за индексирање јер пре свега кроз глобални профил утиче касније на рангирање - N-грами глобалног профила добијају ознаку да учествују у рангирању према томе да ли су у задатом интервалу рангова и да ли прелазе задату инверзну фреквенцију; помоћне компоненте које користи шетач, брисање документа из индекса (базе), и друго,

• додатне функције: ручно покретање шетача, класификатор докумената (реализован уз помоћ Weka библиотеке), функционалност корисничког интерфејса (за потребе тестирања) и други алати који се позивају из командне линије

• интерфејс: написан као JSP (Java Server Pages) веб апликација која се извршава на Apache Tomcat апликационом серверу као извршној платформи (погодније за честе измене јер се динамички преводи); функционалности које обухвата су:

• комуникација са веб клијентом (корисничким интерфејсом) који представља четврти слој у оваквој архитектури,

• комуникација са сервером и генерисање листе докумената (модул за упитивање), што је реализовано

51

Page 62: Magistarska teza

као SQL упит (лако изводљиво јер се користи Булов модел ПИ),

• рангирање листе докумената (такође део претходног SQL упита) и приказ резултата,

• пријављивање и регистрација корисника у систему, праћење корисничких избора ставки резултата (сваког документа као приказаног линка у резултату, hit) тако да се одабраном документу додељује највиша оцена релевантности, а осталима смањује сваким избором неког другог документа,

• задавање адресе документа (странице) коју ће обрадити шетач.

Модуларност окружења омогућава једноставније развијање и прилагођавање система специфичним потребама.

3.3.1 Сервер

Сервер заједно са интерфејсом представља срце система. Параметри који утичу на рад његових компоненти се могу подесити у датотеци query.properties , и то су:

• dbUrl = JDBC url базе података која се користи (може бити и на другом физичком рачунару),

• java.naming.provider.url = url IIOP брокерa који координира комуникацију између сервера и интерфејса (или клијента),

• platform = оперативни систем; тренутно нема значаја, користи се у случају да ОС касније утиче на неку функционалност,

• i_threshold = праг инверзне фреквенције

• Norder = фиксирана или максимална дужина N-грама,

• Lmin, Lmax = опсег рангова који се користи у глобалном профилу,

• maxword = максимална дужина речи,

• maxf = максимална дужина датотеке која се чита,

• depth = максимална дубина профила N-грама,

52

Интерфејс q Интерфејс q

Интерфејс 1 Интерфејс 1

Page 63: Magistarska teza

• useAll = true ако се користе профили мултиграма,

• proxy параметри (у случају приступа интернету кроз прокси сервер):

◦ proxy_host = прокси сервер,

◦ proxy_port = порт прокси сервера,

◦ proxy_auth = налог:лозинка за приступ (ако се користи),

◦ proxy_domain = аутентификациони домен прокси сервера (Windows),

• MAX_DEPTH = максимална дубина претраге шетача,

• runSecs - утиче на начин извршавања шетача:

◦ ако је >0 онда представља задато време извршавања нити шетача,

◦ ако је =0 онда се чека на крај извршења нити,

◦ ако је =-1 онда се нит асинхроно извршава у позадини,

◦ ако је =-2 онда се не покреће нит већ се директно извршава шетач (и чека крај његовог извршења)

• quiet = false ако се не исписују све лог поруке,

• logging = false, иначе true ако сигурно нема конкурентног приступа бази података (logging је Oracle опција која се када не користи да би DML команде радиле брже)

Пример query.properties датотеке

Датотетка query.properties се задаје у командној линији команде којом се покреће сервер или клијент, односно у корену Tomcat директоријума JSP апликације query (компоненте интерфејса), ...webapps/query.

53

Интерфејс q Интерфејс q

dbUrl = jdbc:oracle:thin:test/test@localhost:1521:xejava.naming.provider.url = iiop://localhost:1050platform = windowsi_threshold = 0.33Norder = 3#NTLMAPS, local NTLM proxy: http://ntlmaps.sourceforge.netproxy_host = localhostproxy_port = 5865MAX_DEPTH = 10runSecs=­2logging = falsequiet = false

Интерфејс 1 Интерфејс 1

Page 64: Magistarska teza

Датотека са параметрима мора да буде у директоријуму одакле се покреће сервер ако се не зада другачије. Пре покретања сервера мора бити покренут задати брокер (orbd процес, IIOP Object Request Broker Daemon):

Сервер након покретања почиње у једнаким временским размацима да проверава ред url-ова шетача (сваких 90 секунди ако се не зада другачије период провере реда шетача), што се види у исписаним порукама.

3.3.2 Техничка архитектура

Сервер се покреће командом која има синтаксу (помоћни скрипт позива Јава програм, на Windows-у је то qServer.cmd):

./qServer.sh <суфикс> [query_properties_file] [период] [> log.txt]

где аргумент представља суфикс (на пример број) идентификатора сервера – може их бити покренуто више, на физички различитим рачунарима. Другим аргументом се опционо задаје query.properties датотека, а трећим се опционо задаје период провере садржаја реда шетача у секундама. На крају, могуће је редирекцијом излаз сместити у неку лог датотеку. Идеја употребе већег броја сервера лежи у смањивању оптерећења сервера и повећању расположивости.

Слика 9 – дијаграм техничке архитектуре прототипа

54

Интерфејс q Интерфејс q

$ orbd ­ORBInitialPort 1050&[2] 28265$ ./qServer.sh 1Query Server: 'QueryService1' Ready...DB connection open.DB connection open.Nothing in queue.DB connection closed.

qServer 1

qServer 2

qServer p

База

Интерфејс 1 Интерфејс 1

КориснициКорисници

orbd

$ ./qClient.sh "query_or:tekst matematika"...132: <a href="http://www.matf.bg.ac.rs/p/zoricast/vest/95/predavanja­iz­uor­a­u­cetvrtak­2112010/" target=_blank>Predavanja iz UOR­a u cetvrtak 21.1.20</a><br>(&nbsp; 30.03.2010 18:54 ...<div id="content">)<br>131: <a href="http://www.matf.bg.ac.rs/p/zoricast/vest/97/termin­za­odbranu­prezentacija­iz­uor­a/" target=_blank>Termin za odbranu prezentacija iz UOR­a</a><br>(&nbsp; 30.03.2010 18:54 ...<div id="content">)<br>130: <a href="http://www.matf.bg.ac.rs/p/zoricast/vest/98/rezultati­pismenog­ispita­iz­uor­a­­u­januaru­2010/" target=_blank>Rezultati pismenog ispita iz UOR­a  u </a><br>(&nbsp; 30.03.2010 18:54 ...<div id="content">)<br>224 results.<br>

Page 65: Magistarska teza

Брокер је део RMI/IIOP♦ Јава оквира који омогућава дистрибуирано (удаљено преко TCP/IP мреже) позивање метода класе. Свака класа која се извршава као RMI сервер имплементира Јава интерфејс класу, и свака њена инстанца добија идентификатор којим се јединствено региструје као сервис код брокера. Клијент се повезује преко брокера са сервером позивајући се на тај идентификатор (QueryService<суфикс> и CrawlerService<суфикс> код прототипа). Већи број интерфејса се може лако постићи употребом механизама које нуди Tomcat♦♦, редирекцијом или посебном компонентом задуженом за то, као и већи број сервера уз употребу неког load balancing алгоритма у самом интерфејсу (најједноставнији је round robin – циклично или насумично се бирају сервери у интерфејсу). Тренутно се то мора ручно прилагођавати у самом JSP кôду, а иницијално се користе само један сервер и интерфејс. Након покретања инстанце сервера, неопходно је иницијализовати га (тада се отвара и иницијална конекција ка бази, скрипт q_server.cmd све ове кораке аутоматски изврши):

и тиме је систем припремљен за употребу.

3.3.3 Додатне команде и програмска структура

JAR архива ngram.jar садржи различите компоненте распоређене у класама пакета ngram.generator, и може се користити и као клијентски алат из командне линије. Претходни скрипт qClient.sh:

користи први аргумент са префиксом (упит се задаје као ниска речи):

• control:<query_properties> = иницијализација• control:stop = заустављање шетача

♦ http://java.sun.com/j2se/1.4.2/docs/guide/rmi/javarmiproperties.html http://java.sun.com/developer/onlineTraining/rmi/RMI.html ♦♦ http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html

http://tomcat.apache.org/tomcat-5.5-doc/balancer-howto.html

55

$ ./qClient.sh "control:/mnt/sda1/Java/Weka/test/query.properties"Query result:<br>Client: obtained a ref. to query server.<br>Result bag=OK

#!/bin/shjava ­cp ./ngram.jar:./chardet.jar:./ojdbc14.jar:./mysql­connector­java­5.1.6­bin.jar:/usr/share/java/commons­codec­1.3.jar:../weka.jar ngram.generator.queryClient 1 "$1"

$ ./qClient.sh "query_or:tekst matematika"...132: <a href="http://www.matf.bg.ac.rs/p/zoricast/vest/95/predavanja­iz­uor­a­u­cetvrtak­2112010/" target=_blank>Predavanja iz UOR­a u cetvrtak 21.1.20</a><br>(&nbsp; 30.03.2010 18:54 ...<div id="content">)<br>131: <a href="http://www.matf.bg.ac.rs/p/zoricast/vest/97/termin­za­odbranu­prezentacija­iz­uor­a/" target=_blank>Termin za odbranu prezentacija iz UOR­a</a><br>(&nbsp; 30.03.2010 18:54 ...<div id="content">)<br>130: <a href="http://www.matf.bg.ac.rs/p/zoricast/vest/98/rezultati­pismenog­ispita­iz­uor­a­­u­januaru­2010/" target=_blank>Rezultati pismenog ispita iz UOR­a  u </a><br>(&nbsp; 30.03.2010 18:54 ...<div id="content">)<br>224 results.<br>

Page 66: Magistarska teza

• query_or:<упит> = упит са дисјункцијом кључних речи• query_and:<упит> = упит са коњункцијом кључних речи• crawl:<url> = покретање шетача са датом url адресом

што се касније користи и у интерфејсу (у веб окружењу).

Пример покретања клијентског упита који враћа HTML кôд (упит није оптимизован и није сасвим исти као код интерфејса):

Многе команде су имплементиране у класи Arff – покретањем Arff.sh се добија помоћ са описом расположивих свичева. Једна од најбитнијих је команда за ажурирање глобалног профила:

која у овом примеру обележи првих 500 N-грама глобалног профила са инверзном фреквенцијом мањом или једнаком 0.3 као одабраном, и рангира тако глобални профил. Само одабрани N-грами учествују у рангирању резултата, као и у класификацији докумената.

Основа прототипа као система за претраживање информација је зачета програмом који је имао задатак да послужи као алат за испитивање реализације класификовања датотека помоћу N-грама и Weka алата. Писан је као Java програм који ради пре свега следеће:

• формира текстуелнe ARFF датотеке (Attribute-Relation File Format) где атрибуте представљају фреквенције N-грама докумената (нормиране, опционо) одабраних у односу на глобални профил, тако што чита задати директоријум (не ради са веб документима тренутно, али подржава бинарне датотеке) и назив сваког његовог поддиректоријума проглашава класом датотека (докумената) и обележава том

56

$ ./qClient.sh "query_or:tekst matematika"...132: <a href="http://www.matf.bg.ac.rs/p/zoricast/vest/95/predavanja­iz­uor­a­u­cetvrtak­2112010/" target=_blank>Predavanja iz UOR­a u cetvrtak 21.1.20</a><br>(&nbsp; 30.03.2010 18:54 ...<div id="content">)<br>131: <a href="http://www.matf.bg.ac.rs/p/zoricast/vest/97/termin­za­odbranu­prezentacija­iz­uor­a/" target=_blank>Termin za odbranu prezentacija iz UOR­a</a><br>(&nbsp; 30.03.2010 18:54 ...<div id="content">)<br>130: <a href="http://www.matf.bg.ac.rs/p/zoricast/vest/98/rezultati­pismenog­ispita­iz­uor­a­­u­januaru­2010/" target=_blank>Rezultati pismenog ispita iz UOR­a  u </a><br>(&nbsp; 30.03.2010 18:54 ...<div id="content">)<br>224 results.<br>

./Arff.sh ­s ­l 0 ­m 500 ­i 0.3 \­w jdbc:oracle:thin:test/test@localhost:1521:xe

Page 67: Magistarska teza

класом сваку инстанцу (вектор, односно ред фреквенција у ARFF датотеци за прочитани документ, што представља хоризонтални формат профила); ARFF датотеке Weka може директно да чита и на основу њих да генерише модел, тестове и евалуације;

• формира, на претходни начин, модел директно и покреће унакрсну валидацију, или га уписује у базу података у вертикалном формату (сваки ред табеле TSHARED садржи једну компоненту вектора фреквенција документа, а посебним скриптом се добија одговарајући хоризонтални формат који Weka може такође директно да чита из базе података)

Формирање модела класификације се на овај начин врши у радној меморији за разлику од модела претраживања у бази, и зато ради далеко брже. Покреће се командом:

где jе први аргумент директоријум (test) у коме се налазе подфолдери са датотекама које се класификују, други аргумент је излазна ARFF датотека, затим следе параметри глобалног профила и опциона веза ка бази у коју се такође могу уписивати резултати. Командом:

се покреће 10-струка унакрсна валидација, где се чита test.txt као необележена датотека и SVM методом тражи њен тип.

3.3.3.1 Преглед програмске структуре

Пакет ngram.generator (спакован у ngram.jar архиви) се састоји од следећих класа (у датотекама с кôдом) за које се додатно описују неки посебно важни методи и особине:

• Arff.java: класа Arff којом се имплементира функционалност читања докумената, основно парсирање садржаја (откривање html формата, читање неких његових поља, линкова, и друго) и генерисање профила докумената и глобалног профила у меморији или у бази, формирање модела

◦ buildSequenceTxt: генерише N-грам структуру за текстуелни документ

57

. Arff.sh ./test/ ./out.arff ­l 0 ­m 500 ­N 4 ­i 0.5 ­D 1048576 \[­w jdbc:oracle:thin:test/test@localhost:1521:xe] ­p

select (select nvl(value,­1) from properties p0 where p0.username(+)='null'  and p0.bag_id(+)=t.bag_id and p0.attribute(+)='relevant') val,  t.bag_id, cnt, sumcnt, chr(38)||'nbsp;('||sumcnt||','||cnt||  '): <a href="redirect.jsp?bag_id='||t.bag_id||chr(38)||'url='||u.url||  '" target=_blank>'||nvl(u.title,u.url)||'</a> <pre>   ('||  to_char(u.datum,'dd.mm.yyyy hh24:mi')||' ...'||  replace(replace(u.descr,'>',chr(38)||'gt;'),'<',chr(38)||'lt;')||  ')</pre><br>' line from (select t0.bag_id, sum(power(t0.count*(1+  (1+nvl(estimate('&p_username',t0.bag_id,&c_limit),&c_min))),t0.N)  /nvl(n.rank,&c_nmax))*&c_nmax sumcnt, count(t0.bag_id) cnt    from tshared t0, nshared n, properties p    where t0.bag_id<>1526 and t0.category='V' and t0.ngram_id in      (&ngram_id_list) and t0.ngram_id=n.id and p.username(+)='null'       and p.bag_id(+)=t0.bag_id and p.attribute(+)='relevant'      group by t0.bag_id) t,  (select bag_id, url, descr, datum, title from urls    where url not like 'NONE%' union all select bag_id, url, descr, datum,    title from lurls where url not like 'NONE%') uwhere u.bag_id=t.bag_id order by sumcnt desc, cnt desc

. Arff.sh . ­r jdbc:oracle:thin:test/test@localhost:1521:xe \­e 2 /mnt/sda1/test.txt ­N 0 ­l 1 ­m 1000

Page 68: Magistarska teza

◦ buildSequence: генерише N-грам за бинарни документ◦ buildSequenceDb: према врсти документа уз помоћ

претходних метода ажурира профиле у бази◦ process_unlabeled: чита документ (или више њих) са

задате адресе као необележен (нема задату класу), обрађује и упите

◦ process_Dir: чита обележене документе са задате адресе

• NgramSequence.java: класа NgramSequence, структура података са методaма која подржава профиле N-грама

• DBConnection.java: класа DBConnection садржи методе за комуникацију са базом података, генерисање профила у бази и њихово ажурирање, али и генерисање модела за класификацију из базе, валидацију и класификацију примера

• queryInterface.java: садржи интерфејс класу queryInterface◦ getQueryResult: метод обраде упита који за задату

команду с префиксом у аргументу типа String враћа резултат извршавања такође као String

• queryImpl.java: класа queryImpl имплементира queryInterface и садржи извршни кôд сервиса за упите (осим претраживача)

• queryServer.java: региструје сервер за упит и сервер шетача код брокера и проверава повремено стање табеле реда шетача

• crawlerInterface.java: садржи интерфејс класу crawlerInterface◦ getCrawler: слично као и getQueryResult, али у вези

извршавања шетача

• crawlerImpl.java: класа crawlerImpl имплементира интерфејс crawlerInterface и садржи кôд сервиса шетача са позивима метода класе smallCrawler

• smallCrawler.java: класа smallCrawler представља главну имплементацију шетача◦ initCrawl: покретање шетача према задатим параметрима

(укључујући и покретање нити методом run)◦ control: чита параметре из properties датотеке (истоимени

метод, са истом наменом се јавља и у другим класама)◦ start_crawl: почетни позив шетача ◦ checkRobots: провера да ли страница која се тренутно

обрађује користи robots.txt (основно ,,правило лепог понашања” свих шетача је да провере најпре шта смеју да

58

select (select nvl(value,­1) from properties p0 where p0.username(+)='null'  and p0.bag_id(+)=t.bag_id and p0.attribute(+)='relevant') val,  t.bag_id, cnt, sumcnt, chr(38)||'nbsp;('||sumcnt||','||cnt||  '): <a href="redirect.jsp?bag_id='||t.bag_id||chr(38)||'url='||u.url||  '" target=_blank>'||nvl(u.title,u.url)||'</a> <pre>   ('||  to_char(u.datum,'dd.mm.yyyy hh24:mi')||' ...'||  replace(replace(u.descr,'>',chr(38)||'gt;'),'<',chr(38)||'lt;')||  ')</pre><br>' line from (select t0.bag_id, sum(power(t0.count*(1+  (1+nvl(estimate('&p_username',t0.bag_id,&c_limit),&c_min))),t0.N)  /nvl(n.rank,&c_nmax))*&c_nmax sumcnt, count(t0.bag_id) cnt    from tshared t0, nshared n, properties p    where t0.bag_id<>1526 and t0.category='V' and t0.ngram_id in      (&ngram_id_list) and t0.ngram_id=n.id and p.username(+)='null'       and p.bag_id(+)=t0.bag_id and p.attribute(+)='relevant'      group by t0.bag_id) t,  (select bag_id, url, descr, datum, title from urls    where url not like 'NONE%' union all select bag_id, url, descr, datum,    title from lurls where url not like 'NONE%') uwhere u.bag_id=t.bag_id order by sumcnt desc, cnt desc

Page 69: Magistarska teza

обрађују према спецификацијама у том документу)

Компоненте интерфејса:

• index.jsp: почетна страница са задавањем упита, за генерисање и рангирање резултата, преглед резултата са ажурирањем оцена ставки резултата (почетна минимална вредност или умањена за ставке које су приказане а нису одабране); битне константе:◦ c_limit: вредност константе 2 која у модификованој

МНС одређује обим суседства◦ c_nmax: максимални одабрани ранг глобалног профила◦ c_min: почетна оцена која се додељује приказаном

документу (у резултату) ако нема израчунату релевантност у профилу корисника

◦ c_damp: количник у интервалу [0,1] којим се множи оцена приказаног документа ако није одабран (иначе, одабраном документу се додељује оцена 1)

• join.jsp: креирање корисничког налога са лозинком и додатним подацима

• sign_in.jsp: пријављивање корисника на систем

• sign_out.jsp: одјава корисника са система

• redirect.jsp: ажурирање оцене ставке резултата максималном вредношћу и прослеђивање на одабрану адресу

• help.html: детаљна упутства о постављању система

Реализација генерисања резултата и његовог рангирања се ослања на динамички SQL упит за дисјункцију кључних речи:

59

select (select nvl(value,­1) from properties p0 where p0.username(+)='null'  and p0.bag_id(+)=t.bag_id and p0.attribute(+)='relevant') val,  t.bag_id, cnt, sumcnt, chr(38)||'nbsp;('||sumcnt||','||cnt||  '): <a href="redirect.jsp?bag_id='||t.bag_id||chr(38)||'url='||u.url||  '" target=_blank>'||nvl(u.title,u.url)||'</a> <pre>   ('||  to_char(u.datum,'dd.mm.yyyy hh24:mi')||' ...'||  replace(replace(u.descr,'>',chr(38)||'gt;'),'<',chr(38)||'lt;')||  ')</pre><br>' line from (select t0.bag_id, sum(power(t0.count*(1+  (1+nvl(estimate('&p_username',t0.bag_id,&c_limit),&c_min))),t0.N)  /nvl(n.rank,&c_nmax))*&c_nmax sumcnt, count(t0.bag_id) cnt    from tshared t0, nshared n, properties p    where t0.bag_id<>1526 and t0.category='V' and t0.ngram_id in      (&ngram_id_list) and t0.ngram_id=n.id and p.username(+)='null'       and p.bag_id(+)=t0.bag_id and p.attribute(+)='relevant'      group by t0.bag_id) t,  (select bag_id, url, descr, datum, title from urls    where url not like 'NONE%' union all select bag_id, url, descr, datum,    title from lurls where url not like 'NONE%') uwhere u.bag_id=t.bag_id order by sumcnt desc, cnt desc

Page 70: Magistarska teza

где &ngram_id_list  представља листу идентификатора N-грама упита коју генерише помоћни упит (након претходног подношења упита на обраду као и сваког другог документа), a &p_username тренутно пријављеног корисника – ово се извршава ефикасније него истоветни SQL упит са унутрашњим спајањем табеле TSHARED са собом (за документе који се претражују и за упит, у наредном одељку су дати детаљи о релационом моделу базе података). Такође, у упиту је означен део израза којим се рангира резултат и који се динамички мења, зависно од тога да ли је корисник пријављен (иначе се користи фиксирана константа c_min), и да ли се користе кориснички профили. Ако се не користе кориснички профили (са израчунатим оценама релевантности докумената), онда се функцијом estimate  у бази рачуна оцена релевантност документа према раније описаној модификованој МНС. Показује се да се одговарајући упит коњункције кључних речи далеко брже извршава него дисјункција.

3.3.3.2 Релациони модел прототипа и физичка имплементација базе података

Прототип користи базу података са одговарајућом физичком структуром као складиште за модел N-грама и одговарајући репозиторијум података о претраженим документима, као и за друге потребе прототипа.

Слика 10 – модел ентитета и релације (релациони модел)

60

Page 71: Magistarska teza

Објашњењe: Дијаграм се пресликава у одговарајући релациони модел базе података:

• TSHARED: ова табела чува профиле докумената и игра улогу инверзног индекса, где се за сваку двојку примарног кључа (NGRAM_ID,BAG_ID) прати фреквенција документа:

• N – дужина N-грама (број)

• NGRAM_ID – идентификатор пара (TAG,NGRAM) тј. спољни кључ ка табели NSHARED и њеном књучу ID

• BAG_ID – јединствени идентификатор документа (број); предвиђено је моделом да се тим идентификатором може означити ,,врећа” (кластер) докумената, али то се не користи у овом прототипу (на пример, ово може бити корисно у случајевима где то има смисла код метода multi instance класификације, где се током учења бирају погодни репрезенти и тако постижу боље перформансе)

• COUNT – фреквенција (број) у односу на дати BAG_ID

• NTYPE – карактер “X” означава да је у питању N-грам текстуелног документа, у супротном је бинарни (од тога зависи како је записан N-грам, бинарни документи садрже hex код бајтова као елементе N-грама)

• CATEGORY – карактер “V” означава документ у скупу обучавања (познат), док “N” означава документ који је потребно класификовати

(слике са садржајем табела су преузете из Oracle APEX алата)

61

Page 72: Magistarska teza

Слика 11а – пример садржаја табеле ТSHARED

• NSHARED: ова табела представља глобални профил и садржи сумарне фреквенције N-грама по свим документима (у пољу COUNT), и поред тога:

• NGRAM - сваки елемент N-грама је раздвојен карактером ,,~”, слично као и за TAG (тренутно није имплементирано па има default вредност “NONE”)

• TAG – слично претходно, представља N-грам етикета

• RANK – израчунати ранг N-грама

• COUNT – фреквенција (број) у односу на све документе

• SELECTED – ако није празно, ово поље говори да овај N-грам припада профилу (користи се као одабран)

• NTYPE – као и претходно

62

Page 73: Magistarska teza

Слика 11б – пример садржаја табеле NSHARED

• LINKS: табела која чува везе међу документима

Слика 11в – пример садржаја табеле LINKS

• PROPERTIES: табела која садржи изведене особине докумената (атрибуте) са вредностима (CATEGORY), као и тип особине (CHR – ниска карактера, NUM – број)

63

Page 74: Magistarska teza

Слика 11г – пример садржаја табеле PROPERTIES

• URLS, LURLS: ове табеле садрже url адресе докумената који се претражују – исти документ може бити на више адреса (односно, исти репрезент документа). Разлика између ове две табеле је само у дужини поља URL (у првој до 256 карактера, у другој може до 4000), и тако се документи додатно групишу. Поред тога, садрже поља:

• BAG_ID – исто као и код TSHARED

• HASH – хеш вредност документа – користи се када се пореде документи – два документа сигурно нису једнаки ако немају једнаке хеш вредности, у супротном се ради додатна провера (поређење N-грам профила)

• LEN – дужина документа у бајтовима

• DATUM – датум уноса у систем (од стране шетача),

• табела ACCOUNTS: садржи податке о кориснику (кориснички налог, лозинку, име, права и слично)

64

...ic = new InitialContext();

objref = ic.lookup("QueryService"+server);qi = (ngram.generator.queryInterface)

             PortableRemoteObject.narrow(objref,           ngram.generator.queryInterface.class);...bag = Long.valueOf(stmp=qi.getQueryResult(stmp));...

Page 75: Magistarska teza

Слика 11д – пример садржаја табела URLS и LURLS

• табелеа QUEUE: користи се за асинхрону обраду задатих страница шетачу

3.3.3.3 Преглед тока извршавања

Неке битне појединости тока извршавања процеса и повезаности компоненти прототипа су објашњене у претходном тексту. Следи пример употребе прототипа кроз који ће бити додатно појашњене.

Корисник покреће страницу претраживача – у овом случају (слика 12) локално са самог рачунара где је покренут прототип, и уноси упит, примера ради - ,,математички факултет”, и покреће претрагу:

Слика 12 – почетна страница прототипа

У том тренутку JSP страница (index.jsp) позивом метода

65

...ic = new InitialContext();

objref = ic.lookup("QueryService"+server);qi = (ngram.generator.queryInterface)

             PortableRemoteObject.narrow(objref,           ngram.generator.queryInterface.class);...bag = Long.valueOf(stmp=qi.getQueryResult(stmp));...

QUEUE

Page 76: Magistarska teza

getQueryResult класе која имплеменира метод интерфејса queryInterface покреће ту методу на регистрованом серверу – из кôда су издвојене линије у којима се региструје JSP страница као клијент код брокера и креира локална инстанца qi и позива метод којим се подноси упит серверу:

Тиме је позвана компонента сервера која упит обради и упише у базу, и ако је све у реду очекивани резултат је нови идентификатор упита као документа. На слици 13 испод се види излаз сервера који прихвата упит, и коначан HTML излаз као рангирани резултат:

Слика 13 – приказ резултата првог упита и излаз сервера

Свака ставка резултата има редни број (ранг) и израчунату оцену према формули датој у 2.4.2, с тим да је оцена релевантности константа c_min. Ако се покрене упит са кључним речима ,,факултет математички” добија се другачије рангирани резултат (зато што не постоји такав биграм који би био више оцењен), али са доста сличним распоредом. Након тога корисник може да направи свој налог на систему избором опције ,,Join” на страници, а затим и

66

...ic = new InitialContext();

objref = ic.lookup("QueryService"+server);qi = (ngram.generator.queryInterface)

             PortableRemoteObject.narrow(objref,           ngram.generator.queryInterface.class);...bag = Long.valueOf(stmp=qi.getQueryResult(stmp));...

Page 77: Magistarska teza

да се пријави на систем опцијом ,,Sign In” даље. На слици 14 се види резултат другог упита са излазом сервера:

Слика 14 – резултат другог упита и одговарајући излаз сервера

На слици 15 испод је приказан екран пријаве на систем и додатне провере садржаја табеле URLS у којој се сада налазе два нова од стране корисника управо поднета упита:

Слика 15 – пријава на систем и провера садржаја табеле URLS

Пријавом на систем корисник добија могућност да бира додатне опције ,,CRAWL” и ,,user profiles” (изнад поља за унос упита, free

67

Page 78: Magistarska teza

значи да корисник сам уноси префикс команде), али се пријавом пре свега у формули рангирања појављује оцена релевантности уместо константе. Ако је изабрана поменута опција ,,user profiles” онда се читају оцене из профила корисника (из табеле PROPERTIES, атрибут ,,relevant”), а ако није – онда се рачуна за сваку ставку функцијом estimate  (уз благ пад брзине извршавања). На слици 16 су приказани резултати са рангирањем за претходна два упита најпре без опције ,,user profiles”, а затим са том опцијом:

Слика 16 – резултати извршавања оба упита са и без опције ,,user profiles”

У сваком од ових рангирања на првом месту се налази документ са идентификатором 608 који је добио високе оцене од друга два корисника, а у приказаној листи испод тог документа се налази и документ са идентификатором 153 који је добио високу оцену једног од друга два корисника. Високу оцену су те странице добиле претрагом тих корисника који су их одабрали (кликом на линк) и тиме аутоматски подигли оцену њихове релевантности у њиховим профилима (захваљујући страници redirect.jsp). Сваким приказом резултата пријављеног корисника све оцене релевантности приказаних ставки се ажурирају – множењем са константом c_damp ако имају додељену вредност, или им се додељује почетна оцена c_min.

68

DB connection open.prop.MAX_DEPTH=10Crawler v1.06 started.start_crawl(http://www.cesid.org,1,­1)depth=1/MAX=10Probable Charset = UTF­8[GC 44857K­>1898K(408256K), 0.0206320 secs]>>>Updated(­2).bag(http://www.cesid.org)=1468Next: http://www.cesid.org/lt/articles/o­nama/start_crawl(http://www.cesid.org/lt/articles/o­nama/,2,1468)depth=2/MAX=10Probable Charset = UTF­8>>>Updated(­2).bag(http://www.cesid.org/lt/articles/o­nama/)=1469Next: http://www.cesid.org/lt/articles/o­nama/   ­ already followed: (1469,1469)Next: http://www.cesid.org/lt/articles/o­nama/kontakt/start_crawl(http://www.cesid.org/lt/articles/o­nama/kontakt/,3,1469)depth=3/MAX=10Probable Charset = UTF­8>>>Updated(­2).bag(http://www.cesid.org/lt/articles/o­nama/kontakt/)=1470Next: http://www.cesid.org/lt/articles/o­nama/   ­ already followed: (1470,1469)Next: http://www.cesid.org/lt/articles/o­nama/kontakt/   ­ already followed: (1470,1470)Next: http://www.cesid.org/lt/articles/o­nama/ljudi/start_crawl(http://www.cesid.org/lt/articles/o­nama/ljudi/,4,1470)depth=4/MAX=10...

SQL> select estimate('shoom',608,0.2) from dual;

ESTIMATE('SHOOM',608,0.2)­­­­­­­­­­­­­­­­­­­­­­­­­

       .945700323

SQL> select estimate('shoom',153,0.2) from dual;

ESTIMATE('SHOOM',153,0.2)­­­­­­­­­­­­­­­­­­­­­­­­­

       .484791936

SQL> select estimate('shoom',51,0.2) from dual;

ESTIMATE('SHOOM',51,0.2)­­­­­­­­­­­­­­­­­­­­­­­­

      .340053944

SQL> select value, username from properties where bag_id=65 and attribute='relevant';

     VALUE USERNAME­­­­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­.366666667 shoom

SQL> select avg(value) from properties where bag_id=608 and attribute='relevant';

AVG(VALUE)­­­­­­­­­­.691791843

Page 79: Magistarska teza

Ако се провере вредности профила корисника у бази за ова два документа, могу се видети њихове веће оцене релевантности и која су то два документа (односно странице):

Улоговани корисник може покренути шетача (слика 17) избором опције ,,CRAWL” и задавањем почетне адресе странице (url):

Слика 17 – покретање шетача

69

SQL> select username, value, bag_id from properties where bag_id in(153,608);

USERNAME       VALUE BAG_ID­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ ­­­­­­­­­­ ­­­­­­­­­­SYSTEM    153SYSTEM    608shoom  .185118615    153shoom      .24057    608test2  .347368421    153test3  .347368421    153test1  .9    608test1   1    153test2   1    608

9 rows selected.

SQL> select title, url from urls where bag_id in (153,608);

TITLE­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­URL­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­Matemati ki fakultet, Univerzitet u Bečhttp://www.matf.bg.ac.yu

Istorijat ­ Matematicki fakultet Univehttp://www.matf.bg.ac.rs/lat/m/25/istorijat/

DB connection open.prop.MAX_DEPTH=10Crawler v1.06 started.start_crawl(http://www.cesid.org,1,­1)depth=1/MAX=10Probable Charset = UTF­8[GC 44857K­>1898K(408256K), 0.0206320 secs]>>>Updated(­2).bag(http://www.cesid.org)=1468Next: http://www.cesid.org/lt/articles/o­nama/start_crawl(http://www.cesid.org/lt/articles/o­nama/,2,1468)depth=2/MAX=10Probable Charset = UTF­8>>>Updated(­2).bag(http://www.cesid.org/lt/articles/o­nama/)=1469Next: http://www.cesid.org/lt/articles/o­nama/   ­ already followed: (1469,1469)Next: http://www.cesid.org/lt/articles/o­nama/kontakt/start_crawl(http://www.cesid.org/lt/articles/o­nama/kontakt/,3,1469)depth=3/MAX=10Probable Charset = UTF­8>>>Updated(­2).bag(http://www.cesid.org/lt/articles/o­nama/kontakt/)=1470Next: http://www.cesid.org/lt/articles/o­nama/   ­ already followed: (1470,1469)Next: http://www.cesid.org/lt/articles/o­nama/kontakt/   ­ already followed: (1470,1470)Next: http://www.cesid.org/lt/articles/o­nama/ljudi/start_crawl(http://www.cesid.org/lt/articles/o­nama/ljudi/,4,1470)depth=4/MAX=10...

SQL> select estimate('shoom',608,0.2) from dual;

ESTIMATE('SHOOM',608,0.2)­­­­­­­­­­­­­­­­­­­­­­­­­

       .945700323

SQL> select estimate('shoom',153,0.2) from dual;

ESTIMATE('SHOOM',153,0.2)­­­­­­­­­­­­­­­­­­­­­­­­­

       .484791936

SQL> select estimate('shoom',51,0.2) from dual;

ESTIMATE('SHOOM',51,0.2)­­­­­­­­­­­­­­­­­­­­­­­­

      .340053944

SQL> select value, username from properties where bag_id=65 and attribute='relevant';

     VALUE USERNAME­­­­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­.366666667 shoom

SQL> select avg(value) from properties where bag_id=608 and attribute='relevant';

AVG(VALUE)­­­­­­­­­­.691791843

Page 80: Magistarska teza

На излазу сервера се може пратити ток извршавања шетача:

70

DB connection open.prop.MAX_DEPTH=10Crawler v1.06 started.start_crawl(http://www.cesid.org,1,­1)depth=1/MAX=10Probable Charset = UTF­8[GC 44857K­>1898K(408256K), 0.0206320 secs]>>>Updated(­2).bag(http://www.cesid.org)=1468Next: http://www.cesid.org/lt/articles/o­nama/start_crawl(http://www.cesid.org/lt/articles/o­nama/,2,1468)depth=2/MAX=10Probable Charset = UTF­8>>>Updated(­2).bag(http://www.cesid.org/lt/articles/o­nama/)=1469Next: http://www.cesid.org/lt/articles/o­nama/   ­ already followed: (1469,1469)Next: http://www.cesid.org/lt/articles/o­nama/kontakt/start_crawl(http://www.cesid.org/lt/articles/o­nama/kontakt/,3,1469)depth=3/MAX=10Probable Charset = UTF­8>>>Updated(­2).bag(http://www.cesid.org/lt/articles/o­nama/kontakt/)=1470Next: http://www.cesid.org/lt/articles/o­nama/   ­ already followed: (1470,1469)Next: http://www.cesid.org/lt/articles/o­nama/kontakt/   ­ already followed: (1470,1470)Next: http://www.cesid.org/lt/articles/o­nama/ljudi/start_crawl(http://www.cesid.org/lt/articles/o­nama/ljudi/,4,1470)depth=4/MAX=10...

SQL> select estimate('shoom',608,0.2) from dual;

ESTIMATE('SHOOM',608,0.2)­­­­­­­­­­­­­­­­­­­­­­­­­

       .945700323

SQL> select estimate('shoom',153,0.2) from dual;

ESTIMATE('SHOOM',153,0.2)­­­­­­­­­­­­­­­­­­­­­­­­­

       .484791936

SQL> select estimate('shoom',51,0.2) from dual;

ESTIMATE('SHOOM',51,0.2)­­­­­­­­­­­­­­­­­­­­­­­­

      .340053944

SQL> select value, username from properties where bag_id=65 and attribute='relevant';

     VALUE USERNAME­­­­­­­­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­.366666667 shoom

SQL> select avg(value) from properties where bag_id=608 and attribute='relevant';

AVG(VALUE)­­­­­­­­­­.691791843

Page 81: Magistarska teza

3.3.4 Поступци развоја

Превођење Јава кôда није довољно да се направи извршна верзија сервера. Поред неопходних додатних библиотека (JDBC драјвери, Apache commons codec, Weka и jchardet), потребно је припремити и генерисати stub и skeleton класе за RMI. То се ради rmic комадном у директоријуму где се налазе већ преведене класе. Један начин је и да се то изврши аутоматски тако што се у Eclipse окружењу дода команда за грађење извршне верзије (Builder):

или се може користити припремљен скрипт jarexp.sh у ту сврху. Поред овог скрипта на располагању је и скрипт pack.sh којим се све ове датотеке заједно с библиотекама и JSP кôдом пакују у једну архиву.

3.3.4.1 Одржавање репозиторијума отвореног кôда

На muse-cir.sourceforge.net страници се налазе поменуте архиве различитих верзија, са извршним датотекама и кôдом. Други начин да се преузме кôд подразумева употребу Mercurial (или сличног) алата којим се може направити радна копија кôдне гране – пример:

након чега се у тренутном директоријуму креира поддиректоријум muse-cir са неопходним датотекама. Треба након тога подесити циљну адресу sourceforge Mercurial репозиторијума – пример:

Измене у muse-cir директоријуму се прихватају као нова верзија кôдне гране и шаљу натраг у репозиторијум командама:

71

rmic ­iiop ngram.generator.queryImpl ngram.generator.crawlerImpl

hg clone http://muse­cir.hg.sourceforge.net/hgweb/muse­cir/muse­cir

vi muse­cir/.hg/hgrc[paths]default = ssh://shoom013@muse­cir.hg.sourceforge.net/hgroot/muse­cir/muse­cirdefault­push = ssh://shoom013@muse­cir.hg.sourceforge.net/hgroot/muse­cir/muse­cir[ui]username = Zoran Popovic <[email protected]>verbose = True

hg add muse­circd muse­cirhg commit ­m “nova verzija”hg push

Page 82: Magistarska teza

4 Резултати и примери примене

4.1 Поређење с неким познатим решењима за ПИ

Комерцијална решења за претраживање информација, у односу на махом бесплатна решења отвореног кôда (Open Source), представљају одговор на специфичне захтеве корисника таквих система. У савременом пословном окружењу се очекују усклађени односи између пословног система и информационих система, и људи који их подржавају. То подразумева дефинисање пословних захтева које пословни информациони систем треба да испуни, одговарајућим стандардима имплементације и интеграције са остатком окружења (Business and IT alignment; примери су индустријски стандарди и препоруке: ISO, GMP, ITIL/ITSM, као и сви могући стандарди специфичне индустријске гране). Укратко, у датом року који је често кратак у најчешће динамичном окружењу, треба испунити циљеве који су у складу са специфичним стандардима, па зато многи произвођачи нуде различите готове производе, и то не само као готове софтверске производе и платформе, већ и као пакете услуга: имплементације, мреже партнера, и пре свега – подршке таквим системима који су обично увезани са осталим информационим системима (истог или другог произвођача). Захтеви подршке подразумевају одржавање таквог система (организована подршка интерним и крајњим корисницима) и животни циклус (нпр. са контролисаним изменама, Quality Assurance и Quality Control), и зато често има смисла пакет услуга који омогућава предвидљиве резултате и планирање са реалним људским ресурсима. ПИ у комерцијалним решењима је обично уграђено у сам производ опште намене или производ специфичне блиске намене (какви су BI системи), или се нуди као посебан модул или заокружен алат (Oracle UltraSearch, SAP TREX, Microsoft Indexing Service / Desktop Search♦). Следи неколико примера оваквих интегрисаних решења. Решења отвореног кôда могу имати значајну улогу и у пословним системима иако су бесплатна (мада услуге везане за њих нису). Такви пословни модели постају све уобичајенији и показују многе предности у односу на класични комерцијални (proprietary): велике заједнице корисника које отворено размењују знање, тестирају

♦ http://www.oracle.com/technology/products/ultrasearch/index.html http://help.sap.com/saphelp_nw04s/helpdata/en/70/0837ced133304eba452c45b6047c74/content.htm http://msdn.microsoft.com/en-us/library/ms689718%28VS.85%29.aspx

72

Page 83: Magistarska teza

производе и решавају проблеме често показују већу стабилност, флексибилност и исплативост. Осим у неким веома специфичним окружењима са крајње екстремним захтевима (било у смислу рокова, динамике измена или неких специфичних стандарда: пословних, безбедносних, контроле квалитета и слично – мада су безбедност и контрола квалитета и чести контрапримери), ови системи данас у свему показују бар једнако добра решења, ако не и боља од комерцијалних. Штавише, већина комерцијалних решења данас у овој области и многим другим, настала је из постојећих решења и пројеката отвореног кôда, као и многи одговарајући индустријски стандарди ([7]).

Примери заокружених алата и готових решења овог типа (под GPL лиценцом или сличном) су:

• Apache Lucene♦ - систем за текстуелно ПИ потпуно реализован у Java окружењу, робустан и мултиплатформски оријентисан

• JUNG♦♦ (Java Universal Network/Graph Framework) – Java библиотека и алат за визуелизацију мрежа графова, са многим алгоритмима и особинама погодним за ПИ

• Terrier (TERabyte RetrIEveR)♦♦♦ - комплетан систем ПИ реализован потпуно у Java окружењу са напредним опцијама

• Xapian♦♦♦♦ - комплетан класичан систем ПИ реализован на Unix платформи (могуће га је портирати на cygwin/gcc)

• ht://Dig♦♦♦♦♦ - класичан систем ПИ на вебу за Posix OS платформе, са различитим моделима ПИ

... и други, као и различите развојне библиотеке ♦♦♦♦♦♦

Сва ова решења се у много чему разликују и међусобно, и у

♦ http://lucene.apache.org/java/docs/ http://osdir.com/ml/java-user.lucene.apache.org/2009-01/msg00017.html

♦♦ http://jung.sourceforge.net/http://jung.sourceforge.net/applet/rankingdemo.html

♦♦♦ http://ir.dcs.gla.ac.uk/terrier/doc/index.html♦♦♦♦ http://xapian.org/docs/♦♦♦♦♦ http://www.htdig.org/♦♦♦♦♦♦ http://www.gnu.org/software/mifluz/

http://filebox.vt.edu/users/wfan/text_mining.html http://www.ee.unimelb.edu.au/staff/apsh/svm/ http://info.webcrawler.com/mak/projects/robots http://www.robotstxt.org/orig.html http://www-2.cs.cmu.edu/~rcm/websphinx/ http://www.thefreecountry.com/utilities/ocr.shtml http://code.google.com/p/ocropus/ http://jocr.sourceforge.net/ http://sourceforge.net/projects/tesseract-ocr/ http://ngramj.sourceforge.net/ http://homepages.inf.ed.ac.uk/s0450736/ngram.html http://www.kdnuggets.com/software/text.html

73

Page 84: Magistarska teza

односу на прототип предложен у овом раду. Apache Lucene се може упоредити са прототипом као решење реализовано у Јави. Предност свих ових решења отвореног кôда у односу на комерцијална је и та да постоји велики број параметара, па чак и модела који се могу прилагодити специфичним потребама корисника, као и различити API-и и други приступи.

4.2 Техничке перформансе

Најбитније техничке перформансе система за ПИ су заузеће простора индексним структурама, и брзина извршавања упита у односу на број докумената (и број корисника код СПИ). За потребе оцене ових особина прототипа направљени су тестови са ,,живим” подацима: употребом шетача су преузете странице са неколико задатих адреса, у два мерења. У првом мерењу структуре индекса над табелама у бази нису биле посебно оптимизоване (због извесног броја непотребно индексираних колона). Ефикасност извршавања упита и употребе индекса се може пратити различитим Oracle алатима, пре свега традиционални ,,Explain Plan” (за дати упит који се извршава се добија план његовог извршавања након парсирања, где је објашњен поступак извршења упита и у односу на индексе). У другом мерењу са донекле оптимизованим структурама индекса (избачен део непотребних колона у индексима) поновљено је пуњење базе документима. У оба мерења су у приближно једнаким размацима пораста заузећа простора у бази праћени:

• збир величина свих преузетих докумената

• укупан пораст заузећа простора базе података и однос заузећа индекса и табела

• време извршење базног упита (према коду базног упита у queryClient класи и произвољном фиксираном упиту од неколико кључних речи)

• укупан број докумената

На први поглед, показује се пре свега да се заузеће простора креће од 100% до 1000% од укупног збира величине докумената (у односу на 30% код Apache Lucene-а). Резултати мерења су приказани графиконом на слици 18. Време извршавања расте скоро линеарно у односу на број докумената, што је приказано графиконом на слици 19. Раст броја докумената је 2-3 пута већи у односу на укупан збир величине докумената. На време извршавања упита утиче и укупан број оцењених докумената, али овде је мерено извршавање упита

74

Page 85: Magistarska teza

без профила корисника.

Слика 18 – графикон пораста заузећа простора у бази

Са укупно 1415 докумената, време извршавања базног упита је на пробном рачунару достигло скоро 1 секунду са неоптимизованим базним статистикама (план извршавања упита база одређује према статистикама које треба повремено ажурирати – то је један од начина оптимизације рада базе). Динамички базни упит се са истим подацима извршава за 0.06 секунди (и далеко мање зависи од броја кључних речи). Мерена су минимална времена извршавања упита из SQL*Plus алата командом ,,set timing on”.

Слика 19 – графикон времена извршавања упита

Међутим, треба имати на уму да су резултати мерени са шетачем подешеним да преузима и бинарне датотеке, као и да преко 60%

75

0M 0.65M 15.35M 34.65M 47.7M 63.2М 83.7М

0

50

100

150

200

250

300

350

400

Мерење 1. (M)Мерење 2. (M)100% (M)

0.65M 15.35M 34.65M 47.7M 63.2M

0

0.2

0.4

0.6

0.8

1

1.2

1.4

Мерење 1.Мерење 2. (секунде)

Page 86: Magistarska teza

заузетог простора у бази одлази на индексе (који расту у скоковима). У табели испод се виде односи укупног броја слогова у табелама (и броја докумената додатно) према слоговима који припадају текстуелним (означено са ,,/Х”) документима:

N/тип NSHARED TSHARED

1 33029 428913

1/X 33029 428913

2 247651 2462709

2/X 182115 1033842

3 851857 1971606

3/X 293145 1361127

Сви 1132537 4863228

Сви/Х 508289 2823882

Бр. докумената 909

Бр. докумената/Х 741

Табела 2 – удео текстуелних докумената и њихових слогова у бази

Одавде се види да око 50% базе чине текстуелни документи (NSHARED заузима дупло више простора него TSHARED♦) – када би се резултати ограничили само на текстуелне документе, заузеће би било бар преполовљено (збир величине преузетих бинарних датотека је око 15% укупног збира). Ако би се оптимизовали индекси табела, примениле стоп листе, речници и други поступци ПИ који смањују простор индекса (могло би да се примени и чишћење профила докумената према глобалном профилу), могао би тај однос да буде значајно мањи. Ипак, потребан је знатно већи број докумената у бази и више мерења за неки коначан закључак - одабрана хардверска платформа то тешко подржава, иако захтеви нису претерани за данашње кућне рачунаре.

♦ Ово се може проверити упитима:

select bytes, blocks from dba_segments where segment_name like 'ime%';

select   blocks*(8192­avg_space)   from   all_tables   where   owner='TEST'   and table_name='NSHARED'; ­­ db_block_size=8192

select sum(vsize(tag)) from nshared; ­­       заузеће простора за колону

76

Page 87: Magistarska teza

Извршавање функције за оцену релевантности документа такође зависи од броја унетих оцена и корисника (са неколико корисника време извршења је 0.06 секунди, што је отприлике време парсирања упита). Треба имати на уму да верзија базе коју тренутно користи прототип не подржава конкурентне (parallel query) упите и више од једног процесора, као и многе друге напредне опције базе. За боље тестове је потребан други рачунар и верзија базе података која подржава већу количину података. Испитивањем планова извршавања упита♦ се могу добити егзактна времена извршавања описана аналитичким изразима који зависе од броја докумената и корисника.

4.3 Евалуација решења

Стандардни поступци мерења перформанси у смислу одзива и прецизности система за ПИ се ослањају на референтне примере и мере перформанси описане у 2.1.6, а сличан поступак се може применити и за СПИ ([67] и [66]). Отежавајућа околност код СПИ у односу на класично ПИ је да треба дефинисати релевантност резултата у односу на сваког корисника. Референтне примере за ПИ обезбеђују многе конференције (једна од најпознатијих је TREC) и удружења у области ПИ♦♦. Основни мотив за оваква мерења није само упоређивање и такмичење са другим решењима, већ могућност откривања слабих тачака и неочекиваних места за побољшавање. Сличан поступак се користи код програма за етикетирање текста, стемера и парсера (где се користе припремљени корпуси текста као златни стандард).

4.4 Примери примене

Могуће области примене прототипа у овом раду и његовог окружења у тренутном стању, везане су углавном за уобичајено претраживање веба, базе електронске документације или електронске библиотеке. Уз веома мале дораде, прототип може да послужи као систем за претраживање медијатеке. Овакав систем би могао ефикасно да претражује велики број огромних мултимедијалних датотека (слика, видео и звучних записа), какав се

♦ Oracle нуди многе алате који могу помоћи у вези тога, од којих су многи уграђени у саму базу података, нпр. EXPLAIN PLAN режим у самом SQL*Plus алату се покреће командом (пре упита):set autotrace traceonly explain

http://www.orafaq.com/wiki/SQL*Plus_FAQ

♦♦ http://trec.nist.gov/ http://cacm.acm.org/ примери: http://www.cs.utk.edu/~lsi/corpa.html

77

Page 88: Magistarska teza

развија за потребе медијатеке које се развија у Хемофарму, примера ради. Важна особина оваквог решења је да се уместо упита може поднети цела датотека (или њен део) на основу које се проналазе сличне датотеке или њене претходне верзије.

4.4.1 Технике интеграције са другим решењима

За реализацију претходно наведеног примера примене ПИ важно је имати добра решења за интеграцију прототипа са пословним и другим информационим системима.

4.4.1.1 Oracle

Табела QUEUE се може користити за асинхрону комуникацију са прототипом (тренутно само за покретање шетача), а резултати претраге у погодном облику након обраде (нпр. алатом Weka, GATE♦ и сличним) се могу такође држати у бази података. Најједноставнији начин да се спољни систем обрати бази података уобичајеним средствима (JDBC, ODBC), или ако користи своју Oracle базу података може да се обрати овим табелама као локалним употребом синонима и везе ка бази прототипа (database link, механизам дистрибуираних Oracle база података), на пример (за TNS alias ХЕ ка бази прототипа):

Поред тога, Oracle нуди и многе друге механизме дистрибуиране комуникације: од сервиса (web service, SOA♦♦) дефинисаног у бази или посебном апликационом серверу (што би било добро решење уопште, невезано за Oracle технологију) и одговарајућих стандардних технологија Java платформе за комуникацију са другим системима, преко механизама повезивања са спољним системима појединих Oracle производа, до опште инфраструктуре за интеграцију и МОА (Message Oriented Architecture) коју нуди кроз Fusion Middleware (бивши Integration Hub). Директна веза преко локалне базе инстанце SAP система је могућа, али је то решење које по препорукама произвођача не треба користити (као и сваки директан приступ тој бази и њену употребу у сврхе које не потичу од тог SAP система).

♦ http://gate.ac.uk♦♦ http://www.oracle.com/us/technologies/soa/index.html

78

create public database link xe to test identified by test using 'XE';create public synonym test_queue for test.queue@xe;grant insert, select on test_queue to local_user_or_role;

Page 89: Magistarska teza

4.4.1.2 SAP

SAP као водећи произвођач пословних информационих система (ERP, Enterprise Resource Planning, пре свега), нуди такође широк опсег могућости за повезивање са спољним системима. У Хемофарму се SAP користи у продукцији од марта 2006. године (имплементација је трајала више од годину дана). Хемофармово SAP окружење је изграђено на стандардној трослојној архитектури тока измена (Change Management кроз TMS♦♦♦, развојни, тест и продукциони системи) за све системе који имају критичну продукциону улогу, што је предуслов који захтевају индустријски стандарди (GMP, FDA). Поред осталих, састоји се од система:

• mySAP ERP 2005, ECC6.0 Ehp3, Front End 7.01 – пословни информациони систем са имплементираним модулима: PP, SD, MM, WM, FI/CO, QM, PM, TM, набавка и логистика, new G/L, CEE и одговарајући add-on-ови; HR имплементација је у фази припреме;

• SAP BI7.0 (NW70) ABAP+Java, Portal, WebGUI – складиште података и консолидовано пословно извештавање, интегрисано планирање, BEx web, broadcasting, Portal / Visual Composer;

• SAP Solution Manager 7.0 Ehp1 – систем за администрацију, мониторинг, управљање пројектима и изменама;

• SAP Web Dispatcher, SAP Router, CEN WebAS (CUA, TMS Controller) – инфраструктура;

SAP системи се извшравају на Windows Server 2003 EE SP2 ОС платформи, и користе Oracle 10g 10.2.0.4 базу.

Једнa очекивана примена система какав је прототип (и неко његово побољшање) је могућа кроз додатне изворе података (DataSource, InfoSource) које нуди BI као везу ка спољним системима, као и према многим другим изворима података. Та веза омогућава приступ бази података прототипа и њеним табелама као један од могућих механизама повезивања.

♦♦♦ http://help.sap.com/saphelp_nw04/helpdata/en/44/b4a0137acc11d1899e0000e829fbbd/frameset.htm

79

Page 90: Magistarska teza

Слика 20 – RSA1 трансакција (SAP апликација) у BI систему

SAP нуди нека решења за текстуелни инжењеринг♦ пре свега заснована на TREX производу за индексирање текста који се може на сличан начин повезати, и нуди многе могућности и функционалности окружења прототипа (пре свега претраживање информација, класификација, откривање атрибута, Text Mining). Неко детаљније поређење са овим решењем би показало да прототип тренутно у много чему није бољи, али TREX није решење отвореног кôда и самим тим не нуди тај ниво флексибилности.

Поред тога, постоје стандарди комуникације са свим SAP системима (поред BAPI-а ту је IDoc/ALE комуникација преко (t)RFC протокола који се ослања на TCP/IP, као и уобичајени SOA / веб сервис механизми), као и посебно решење за интеграцију различитих SAP и спољних система - SAP XI (Exchange Infrastructure, Process Integration)♦♦. SAP BI систем користи Java Web AS (апликациони сервер), и Јава је уопште широко подржана у SAP Netweaver-у као општој SAP-овој техничкој платформи, на којој су основани скоро сви његови производи осим недавно од стране SAP-a купљених Business Objects производа. Стандардни механизам

♦ http://www.sap.com  http://www.sap.com/swiss/platform/netweaver/pdf/BWP_Search_Classification.pdf  http://help.sap.com/saphelp_nw70/helpdata/EN/a4/929d4206b70931e10000000a1550b0/content.htm http://www.dbms2.com/2006/09/20/saps­bi­accelerator/♦♦ http://help.sap.com/saphelp_nw04/helpdata/EN/6f/1bd5b6a85b11d6b28500508b5d5211/frameset.htm http://help.sap.com/saphelp_nw04/Helpdata/EN/b9/c5b13bbeb0cb37e10000000a11402f/frameset.htm

80

Page 91: Magistarska teza

повезивања са спољним системима су JCo♦♦♦ везе (слично RFC код класичних, ABAP система какав је ERP), али подржани су и сви други Java EE стандарди.

4.4.1.3 Microsoft IIS

Поменуто решење за претраживање медијатеке је засновано пре свега на Microsoft IIS апликационом серверу и апликацији у ASP.Net технологији (слично Java JSP). Пресудан чинилац интеграције са овим системом је јединствена аутентификација веб апликација на Windows домену, што је могуће употребом Internet Explorer веб клијента са IIS Integrated Authentication шемом на апликационом серверу. У JSP апликацији је могуће користити NTLM аутентификацију на Windows домену (или са Active Directory сервисом), IISProxy приступом (реверзни прокси као ISAPI филтер или слично), преносом идентитета HTTP POST методом (уз безбедни приступ бази прототипа с обе стране као брокеру који гарантује јединственост приступа, што је већ коришћено у неким другим решењима), употребом одговарајућег клијентског сертификата, или преносом cookie-a (ово последње решење има мане са безбедносног аспекта).

Поред овог, Microsoft нуди своја Data Warehouse решења и Data Mining алате у оквиру својег RDBMS производа SQL Server ([59]), који овде неће бити посебно разматрани (Microsoft није лидер на тржишту у овој области).

♦♦♦ http://help.sap.com/saphelp_nw04/helpdata/en/6f/1bd5c6a85b11d6b28500508b5d5211/frameset.htm http://help.sap.com/saphelp_nw70/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm

81

Page 92: Magistarska teza

5 Даља истраживања

5.1 Могућа побољшања

У претходном поглављу су детаљније описани резултати истраживања који показују и неке добре резултате, али и неке слабости постојећег прототипа. Следи преглед различитих побољшања којима се могу ублажити недостаци прототипа, као и она побољшања којима се може сигурно или потенцијално унапредити. Овде су описана нека могућа побољшања прототипа, и пре свега даљи развој окружења у правцу система за текстуелно инжењерство и откривање знања. Уз одговорајуће решење за интеграцију, овакав би систем за ПИ прерастао онда у извор информација и знања за пословне и BI информационе системе.

5.1.1 Одсецање профила мултиграма и класификација

Показало се да је основни недостатак прототипа заузеће простора настало индексирањем података које расте и до 10 пута од укупне величине индексираних докумената (груба процена). Међутим, ако се документи ограниче искључиво на текстуелне или на веома велике бинарне датотеке (какав је најчешће мултимедијални садржај), заузеће може да се смањи бар 2-3 пута. Сигуран начин да се овај проблем ублажи и перформансе приближе сличним решењима је поступак одсецања профила у комбинацији са стоп листама и речницима (избацивање одабраних N-грама из профила докумената). Примера ради, код текстуелних датотека се могу одбацити (N>1) N-грами и да се при том одзив не погорша, уз жртвовање прецизности и рангирања. Код класификације су постигнути веома добри резултати одбацивањем (одсецањем) атрибута који нису значајни (нпр. који не носе довољан информациони значај дефинисан ентропијом, као код ID3 алгоритма [44]), па се чак и насумичним одбацивањем добија боља прецизност ([42]). Код веома великих бинарних датотека профили мултиграма докумената доживљавају и до 10 пута већу експлозију раста, али се исто тако код таквих датотека може применити оштрије одсецање профила засновано на одабраним N-грамима глобалног профила (према опсегу рангова и инверзној фреквенцији idf, или према неком другом критеријуму). Ово је тренутно могуће радити само ручно, директно у бази података над индексним табелама.

82

Page 93: Magistarska teza

Овакве резултате поткрепљују охрабрујући резултати добијени испитивањем класификације датотека према типу представљених N-грамима у [52]: скуп обучавања од 210 датотека (укупне величине око 5MB), подељених на 8 типова датотека (22 exe/com, 23 txt, 56 html, 17 pdf, 33 gif/jpg, 19 jar, 30 Word, 13 mail) као циљних категорија (класа), представљен N-грамима се проверава 10-струком унакрсном валидацијом у односу на SVM SMO класификатор – основни резултат је да се за N=4, првих 500 рангова и idf>0.34 постиже тачност од око 98%, што није занемариво у односу на неке сличне проблеме. Детаљи су приказани у табели 2 (време наведено у табели је време учења модела):

N idf Lmax % исправних / не N-грама секунди 4 0.34 500 98.48 / 1.52 2094646 6.274 0.5 500 94.83 / 5.16 2094646 6.164 0.5 500 94.83 / 5.16 1048576 6.283 0.34 500 97.17 / 2.83 1807820 6.814 0.34 800 98.10 / 1.90 2094646 8.145 0.34 800 97.12 / 2.88 2247852 8.384 0.34 1000 94.76 / 5.24 2094646 8.282 0.34 800 92.16 / 7.84 65536 7.251 0.34 800 93.10 / 6.90 256 1.731 0.66 800 73.68 / 26.32 256 0.774 0.25 250 96.37 / 3.63 2094646 6.47

Табела 3 – валидација резултата класификације методом SVM и N-грамима

Такође, показује се и да мултиграми могу бити од користи у појединим случајевима за исти проблем:

N idf Lmax % исправних / не секунди1, 2 0.34 800 92.42 / 7.58 8.732, 3 0.34 800, 500 94.25 / 5.75 11.953, 4 0.34 800, 500 97.87 / 2.13 14.44

Табела 4 – примери класификације мултиграмима за претходни случај

Предност окружења у којем је реализован прототип је да се једноставним ажурирањем колона SELECTED и RANK у табели NSHARED могу применити различити модели одсецања профила, поред поменутог. Оваквом реорганизацијом индекса, као и додатним оптимизацијама базе података, може се значајно смањити заузеће простора, и могу се повећати перформансе претраживања.

Класификација као метод екстракције изведених особина докумената није довољно тестирана и употребљена у овом прототипу. Заједно са проширеним моделом СПИ у којем се оцењује и релевантност појединих особина документа (и речи, и изведених особина, [53]), ово би могло значајно допринети прецизности резултата претраживања, као и додатне особине које уноси сам корисник, или дубоко структуриране и мета-особине.

83

Page 94: Magistarska teza

5.1.2 Техничка унапређења

Заузеће простора се може значајно смањити и употребом компресије датотека с подацима базе података као функционалности Oracle базе која постоји још од верзије 9i. У верзији 11g release 2 већ са стандардном (Basic) компресијом♦, намењеном складиштима података, заузеће се смањује најмање 2-3 пута (постиже се дедупликацијом вредности колона на нивоу блокова). С напредним опцијама за OLTP системе могући су и бољи резултати (Advаnced опција која се додатно лиценцира), а у комбинацији са специјализованим уређајима за складиштење (Oracle Exadata Storage) могуће је смањити заузеће простора и до 100 пута. Овакви уређаји су ипак намењени купцима са посебним захтевима, а постоје и друга решења: софтверска решења отвореног кôда за (виртуелно) физичко складиште♦♦ (Virtual Storage). Оваква решења се понашају као сервери датотека (NAS, Network-Attached Storage) са NFS протоколом који подржава Oracle (за разлику од SMB/CIFS који користи Windows), и/или као уређаји које оперативни систем не разликује од физичког диска (iSCSI SAN, Storage Area Network, где се SCSI комуникација енкапсулира TCP/IP мрежним протоколом). Постоје чак готова решења у облику припремљених виртуелних машина♦♦♦ (Virtual Appliance) које само треба покренути на VMWare или Xen виртуелној инфраструктури. На Linux платформи је могуће користити дедупликацију на нивоу оперативног система♦♦♦♦ и у комбинацији са претходним решењима.

Што се времена одзива система тиче, база података је свакако

♦ http://download.oracle.com/docs/cd/E14072_01/server.112/e10595/tables002.htm#CJAGFBFG http://www.oracle-base.com/articles/11g/TableCompressionEnhancements_11gR1.php♦♦ iSCSI / NFS софтверска решења: http://linux-iscsi.sourceforge.net/ http://www.iscsistorage.com/ OpenFiler http://www.openfiler.com/ FreeNAS FreeBSD http://www.freenas.org IET http://iscsitarget.sourceforge.net/wiki http://opensolaris.org/os/project/iscsitgt/ http://www.open-iscsi.org/docs/README Red Hat http://kbase.redhat.com/faq/docs/DOC-15154 initiator http://kbase.redhat.com/faq/docs/DOC-6388 http://kbase.redhat.com/faq/docs/DOC-3939 Microsoft target http://www.kernsafe.com/Product.aspxid=5http://www.microsoft.com/downloads/details.aspxfamilyid=12cb3c1a-15d6-4585-b385-befd1319f825&displaylang=en♦♦♦ OpenFiler http://www.vmware.com/appliances/directory/344 IET http://www.vmware.com/appliances/directory/217♦♦♦♦ Opendedup http://code.google.com/p/opendedup/ http://www.enterprisestorageforum.com/article.php/3882106/Open-Source-Deduplication-Ready-for-Enterprises.htm

84

Page 95: Magistarska teza

најкритичнија компонента. Раније је било уобичајено решавати такве проблеме физички бржим униформним mainframe системима (scale-in), али једноставан scale-out приступ са великим бројем слабијих рачунара, уз одговарајућу дистрибуирану обраду, често доноси боље и исплативије резултате. Google тако дугује свој успех добрим делом MapReduce инфраструктури, а многи произвођачи нуде различите платформе за таква и слична решења (grid computing). Oracle има RAC (Real Application Cluster) опцију базе података која омогућава прилично ефикасно и поуздано решење (опет, које се додатно лиценцира), поред уобичајених конкурентних упита. Данашњи тренд физичке паралелизације са великим бројем процесорских језгара даје такође добре резултате код оваквих проблема.

Идеално би било да систем ПИ држи све структуре индексирања података у радној меморији, али је то углавном практично немогуће. Слично важи и за базе података. Код Oracle базе је могуће анализом погледа V$DB_CACHE_ADVICE у речнику података лако оценити која је количина радне меморије потребна да би се бар сви подаци којима се често приступа држали тамо (database buffer cache), што приближава перформансе идеалним. Прототип подржава грађење модела N-грама у меморији и његову валидацију код поменутог проблема класификације. Показује се да само грађење модела у том случају траје бар за ред величине краће (мање од 5 минута за пробних 210 докумената, чиме се приближава протоку који остварује Apache Lucene), али остале компоненте система тек треба прилагодити таквој реализацији решења.

Код Oracle базе се такође посебно издваја и опција аутоматског партиционисања табела и индекса♦ (по правилу палца, већ за базе веће од 0.5ТB ово има смисла, као и у специфичним случајевима). Табела се може организовати у различитим јединицама физичке структуре (обична табела има само један tablespace који обједињује више датотека са подацима). Партиционисањем табеле се добијају перформансе над њом блиске перформансама над њеним деловима (партицијама) који могу припадати различитим tablespace-овима. О овим оптимизацијама води рачуна сам Oracle RDBMS (СУРБП, систем за управљање релационом базом података). Партиције се организују према вредностима колона табеле које могу бити

♦ http://www.dba-oracle.com/oracle_tips_partitioning.htm http://asktom.oracle.com/pls/asktom/f?p=100:11:0::NO::P11_QUESTION_ID:728425384831 http://www.orafaq.com/wiki/Partitioning_FAQ http://www.rampant-books.com/art_nanda_partitioning1.htm

85

Page 96: Magistarska teza

разврстане:

• у опсеге

• у интервале (аутоматски додељене опсеге)

• хеш гомиле (bucket слогова са истом хеш вредношћу)

• експлицитне листе вредности

• њихове комбинације

Добра страна оваквог решења је скалабилност и предвидивост перформанси (упит се може паралелизовати над партицијама, што опет ради аутоматски RDBMS), организација података је препуштена провереним механизмима RDMBS, и што је најважније – транспарентност у односу на апликацију која користи такву базу података (апликација уопште не мора да буде свесна да је табела партиционисана).

5.1.3 Побољшања сервера и интерфејса

Многа побољшања прототипа су могућа и представљају главни правац даљих истраживања. Пре свега би била потребна формална евалуација решења описана у 4.3, на основу које би се могле контролисати и боље применити технике машинског учења. Значајна побољшања прецизности и одзива се очекују од употребе језичких ресурса и алата ([51], [19], [18] и [35]), што је већ предвиђено и делимично имплементирано у самом прототипу. Идеја је да се користе парови N-грама речи и N-грама њихових језичких етикета, или чак да се користе парови N-грама стемова речи и њихових етикета. Ови алати раде веома ефикасно, и могу се лако уградити у постојећи прототип. Поред овога, свакако треба имплементирати стандардне технике ПИ: стоп листе и речнике. Експанзија упита као фаза обраде упита је такође начин да се побољшају перформансе ПИ.

Шетач би могао са врло мало измена да се доради да би се користио за мета-претраживање (што је такође једним делом имплементирано у прототипу). Поред тога, за пословно окружење би могли да буду корисни и други извори података осим веба и локалних складишта датотека (што доноси посебне техничке изазове): документи у информационим системима и системима за управљање електронском документацијом, садржај база података, медијатеке, мејлови, и друго.

86

Page 97: Magistarska teza

Сам сервер би могао да извршава израчунавања повремено у позадини којима би се побољшале перформансе претраживања са тако већ израчунатим вредностима (без великог нарушавања прецизности): суседства пријављених корисника и њихових оцена релевантности, статистике за нормализацију рангирања, екстракције изведених особина, и друго. Ово је предуслов за примену других модела ПИ: векторски модел, латентно семантичко индексирање и фази претрага. SQL упит над базом којим би се ово имплементирао тешко да би имао довољно добро време извршавања у реалном времену. Комуникација међу компонентама у свим слојевима би могла да се одвија у мулти-агентском оквиру (JADE Framework, [3]) који представља природно проширење функционалности (омогућава и P2P архитектуру) и подржава додатни ниво високе расположивости система (High Availability).

Рангирање би свакако могло да се побољша неком од метода анализе структуре веза међу страницама (PageRank, HITS, SALSA, или нека од комбинованих метода), пошто се подаци о везама већ прате приликом преузимања од стране шетача.

Техничка архитектура у 3.3.2 би требало да се побољшана имплементацијом конкретних алгоритама динамичког оптерећења инстанци сервера и интерфејса (нпр. round robin), уз једноставну управљивост конфигурацијом целог система и свих његових компоненти, задатом у query.properties датотеци. Пре свега је важна даља имплементација претраживања (поред класификације) у самом серверу и у радној меморији, а не употребом базе података. Тиме би се перформансе сервера скоро извесно значајно повећале, чак и када би количина меморије била оптимална за базу података.

5.2 Онтологије, претраживање и откривање знања

Подаци на интернету и у традиционалним системима ПИ су углавном неструктурирани или полуструктурирани. Структуру докумената могу чинити поглавља и одељци писаног текста, али за систем ПИ или неки сличан они имају смисла тек ако је и сам запис докумената организован у одговарајућим структурама података са семантиком. Документи са етикетама (tagged documents), какви су SGML, HTML и XML језици, јесу полуструктурирани и чине једну од основа садржаја и комуникационих протокола на вебу (стандардизовани према W3C конзорцијуму). То су структуре само на синтаксном или лексичком нивоу. Од докумената структурираних у пуном смислу се очекује и семантички садржај. Један једноставан пример су мета-етикете (meta tags) у стандардном

87

Page 98: Magistarska teza

HTML документу, којима се задају кључне речи које описују садржај. Семантичке структуре се описују различитим мета подацима о документима, што се на вебу постиже стандардизованим моделима структура мета података. Такве су веб онтологије ([49]) и одговарајући протоколи који чине будућу спецификацију семантичког веба (Web2.0♦ W3C стандард), а постоје и други модели – на пример WordNet (познат и као језички ресурс).

Постоје системи који из полуструктурираног или неструктурираног садржаја документа различитим методама машинског учења, вештачке интелигенције и другим поступцима долазе до структурираног садржаја. То су системи текстуелног инжењеринга и откривања знања (Knowledge Discovery). Ово може представљати и један од задатака система претаживања знања (који се могу упоредити у много чему са експертним системима, [21]). Једно поређење система за ПИ и система за претраживање података и знања која се ослања на разлику између податка и информације (информација је релевантни податак), као и на разлику између информације и знања (знање је информација са релевантним значењем), дата је у табели 5 испод:

Подаци Информације Знање

Филтер БуловДелимично и најбоље упаривање

Делимично и најбоље упаривање

Закључивање Дедуктивно ИндуктивноПоред претходних и асоцијативно и аналогијско

Модел Детерминистички Статистички и вероватносниСемантички, извођење закључка

Упит Вештачки језикПриродни језик, кориснички интерфејс

Структура знања, природни језик (у пуном смислу)

Репрезентација Табеле, индекси Табеле, индексиЈединица знања и структуре, онтологије

Складиште База података Базе докумената База знања

Резултат Скуп података Листе докумената Скуп јединица знања

Табела 5 – преглед односа различитих претраживања из [74]

Систем ПИ имплицитно користи индуктивно закључивање (било да се заиста ослања на одговарајуће методе машинског учења или не) јер мора бити у стању да генерализује кориснички захтев за информацијама, док откривање знања мора да се експлицитно ослања на напредне методе машинског учења. Проблеми ПИ се

♦ http://www.w3.org/RDF/FAQ

88

Page 99: Magistarska teza

преклапају и са проблемима и методама откривања података (Data Mining), системима складишта података (Data Warehouse) и складишта знања (Knowledge Warehouse). Појам складишта података се везује углавном за базе података посебне намене, карактеристичне по процесу екстракције, трансформације и пуњења података (ЕТП, или ETL - Extraction, Transformation and Loading – фазе поступка преписавања података из извора у складиште података, где извор података може бити класична трансакциона база података, текстуелна датотека, веб, и слично), као и за структуре OLAP коцки (On-Line Analytical Processing – може се вршити директно над изворима, или уобичајеније - над припремљеним складиштима података). Структура коцке се заснива на звездастој релационој табели са помоћним табелама мерења (measures, најчешће типизиран нумерички садржај) и табелама димензија (хијерархијски организовани атрибути). Често се складишта података поистовећују са посебним пословним системима који их примењују, какви су системи пословне интелигенције (Business Intelligence, или Business Warehouse). Складишта знања се ослањају на изворе знања и одговарајуће системе. Слично ЕТП, истраживање података трансформише информације у знање употребом метода машинског учења, илустровано дијаграмом на слици 21 испод:

Слика 21 – процес истраживања података

Окружење прототипа је добра основа за изградњу оваквог једног система за откривање знања и текстуелни инжењеринг.

89

База подаката(извор)

Циљниподаци

Припремљниподаци

Трансформисаниподаци

Шаблони(patterns)Знање

Истраживањеподатака

одабир предпроцесирање

интерпретација

трансформација

Page 100: Magistarska teza

6 Закључци

У овом раду је предложена методологија ПИ која се заснива на моделима профила мултиграма докумената као репрезентацији, и на модификованој МНС која користи профиле корисника. Тиме је постигнута варијанта сарадничког претраживања веб страница у прототипу на начин који није досад коришћен и проучаван у другим радовима. Поред тога, у раду је описан и конкретан начин имплементације система за ПИ и његовог окружења

Основни циљ рада је реализација прототипа система за ПИ који би био практично употребљив. Основне претпоставке за то јесу да се претрага може извршавати у реалном времену и робусно (без обзира на величину и број докумената и корисника), и да је прототип довољно флексибилан и проширив за специфичне примене. Окружење које га подржава је настало избором одговарајућих метода, извршне платформе, развојних и додатних алата, на начин који омогућава испуњавање основног циља у сваком његовом слоју. Описана је архитектура таквог система, начин и детаљи имплементације, дати су примери примене, и могући правци даљег развоја и предлози побољшања овог прототипа. Описане су методе евалуације система ПИ, и посебно система сарадничког ПИ чија евалуација није толико једноставна и битно се разликује од класичних система ПИ. Евалуација сарадничког ПИ није тривијалан задатак, и зато је у овом раду ограничена на техничке перформансе које могу потврдити основне претпоставке.

Резултати евалуације су добијени применом прототипа над стварним подацима (неколико хиљада страница на интернету) и одговарајућим техничким алатима. Основне претпоставке су потврђене резултатима евалуације техничких перформанси прототипа, и при том се дошло до следећих закључака:

• Претраживање се извршава у реално примењивом времену које приближно линеарно зависи од броја докумената и броја корисника. Овим је испуњен најважнији предуслов. Пошто се овакве врсте упита могу једноставно паралелизовати, а поред тога и сама архитектура прототипа подржава конкурентно извршавање претраге, могуће је једноставно скалирати систем до жељеног времена извршавања претраге у односу

90

Page 101: Magistarska teza

на број докумената и корисника.

• Заузеће простора у бази података која подржава овај систем је знатно веће од очекиваног (такође зависи од броја докумената и корисника): код познатих постојећих система ПИ је то негде 30-100% од укупне величине докумената који се претражују, док код тренутног прототипа може бити и до 10 пута веће. Међутим, то не нарушава практичну употребљивост прототипа јер је предвиђен да се код специфичних примена прилагоди, уз одговарајућа побољшања техничке и методолошке природе која у другим системима и радовима показују да је то практично и једноставно могуће:

◦ одсецањем делова профила N-грама и атрибута докумената која не доприносе претрази (поготову за велике бинарне датотеке), или самим избором типа докумената (само текстуелни документи, без обзира на величину),

◦ применом компресије на механизмима система за управљање базом података (нпр. Oracle опције) где је то могуће – ово утиче позитивно и на време извршавања упита, иако на први поглед није очигледно,

◦ применом компресије на физичком нивоу система за складиштење података (Data De-duplication, постоје софтверска и хардверска решења на нивоу блокова физичких уређаја).

• Перформансе ПИ (у смислу одзива и прецизности) се могу такође додатно побољшати:

◦ стандардним методама ПИ које нису употребљене: зауставним листама, речницима и језичким алатима (сама структура прототипа то и предвиђа, пре свега употребу стемера и програма за етикетирање текста),

◦ додатним и комбинованим методама раниграња резултата (HITS, SALSA, и други),

◦ проширеним моделом сарадничког ПИ уз екстракцију особина докумената класификацијом,

◦ техничким побољшањима (специфичним за RDBMS).

91

Page 102: Magistarska teza

Поред тога, показује се да је прототип веома погодан код претраге великих мултимедијалних датотека (у примеру система за одржавање медијатеке) јер се упит може постављати подношењем једног дела датотеке у самом корисничком клијенту. Стављен је нагласак на окружење које подржава овај прототип, што је веома важно за неки његов даљи развој. Оно се у потпуности се ослања на различита решења отвореног кôда и Java платформу, и омогућава једноставну интеграцију са неким пословним системима. Окружење подржава наведена могућа побољшања, проучавање особина предложеног модела претраживања информација, и омогућава даље проширење и развој за потребе даљих истраживања. Добијени резултати показују да се прототип и предложена методологија могу практично користити, али и да је даље истраживање у овој области исплативо.

92

Page 103: Magistarska teza

Литература и веб странице

[1] Afzal Hammad, Stevens Robert, Nenadić Goran, Towards Semantic Annotation of Bioinformatics Services: Building a Controlled Vocabulary, 2009, :// . . /53563197http en scientificcommons org

[2] Baeza-Yates Ricardo, Ribeiro-Neto Berthier, Modern Information Retrieval, 1999, Addison-Wesley-Longman Publishing, ISBN 8131709779, :// . . . /~ / /http people ischool berkeley edu hearst irbook

[3] Bellifemine F., Caire G., Poggi A., Rimassa G., JADE, A White Paper, :// . . / / .http jade tilab com papers WhitePaperJADEEXP pdf

[4] Berry Michael W., Dumais Susan T., Using Linear Algebra for Intelligent Information Retrieval, :// . . . /74706/1/74706.http eprints kfupm edu sa pdf

[5] Billsus Daniel, Pazzani Michael J., Learning Collaborative Information Filters, University of California, Irvine, ISBN:1-55860-556-8.

[6] Brants Thorsten, Cascaded Markov Models, 1999, Proceedings of 9th

Conference of the European Chapter of the ACL (EACL-99), Bergen, pp. 118-125.

[7] Buntine Wray, Taylor Michael P., Lagunas Francois, Standards for Open Source Information Retrieval,

:// . . / 06/2006- - 68- .http www emse fr OSIR osir p buntine pdf

[8] Chou Wu, Pattern Recognition in Speech and Language Processing, Ch. 9, Georgia Institute of Technology, 2003, ISBN 0-8493- 1232-9

[9] Cresatani Fabio, Lalmas Mounia, van Rijsbergen Cornelis Joost, INFORMATION RETRIEVAL: UNCERTAINITY AND LOGICS, Advanced Models for the Representation and Retrieval of Information, 1998, Springer, ISBN-10: 0792383028

[10] Cullen Schaffer, A conservation law for generalization performance, 1994, International Conference on Machine Learning, pp. 295-265.

[11] Dana Vrajitoru, Genetic Algorithms in Information Retrieval, :// . . . /~ / / .http www cs iusb edu danav papers AidriEng pdf

[12] David A. Grossman, Ophir Frieder, Algorythms and Heuristics, Kluwer Academic Publishers, 1998. ISBN 0-7923-8271-4

:// . . . /~ / .http www ir iit edu dagr publications html

[13] de Vries Andreas, Algebraic hierarchy of logics unifying fuzzy logic and quantum logic, Lecture Notes - :// . / /0707.2161. http arxiv org pdf pdf

[14] Dominich Sandor, Formal Foundation of Information Retrieval, :// . . . / / / _ .http www dcs vein hu CIR cikkek FINAL DOMINICH pdf

[15] Dominich Sandor, Mathematical Foundations of Information Retrieval , Series: Mathematical Modelling: Theory and Applications , Vol. 12 , 2001, chapters 3-5, ISBN: 978-0-7923-6861-8

93

Page 104: Magistarska teza

[16] Dominich Sandor, The Modern Algebra of Information Retrieval, 2008. ISBN: 978-3-540-77658-1

[17] Doszkocs T., Reggia J., and Lin X., Connectionist models and information retrieval, Annual Review of Information Science & Technology 25:209-260, 1990.

[18] Džeroski Sašo, Erjavec Tomaž, Zavrel Jakub. 2000. Morphosyntactic Tagging of Slovene: Evaluating Taggers and Tagsets. 2nd International Conference on Language Resources & Evaluation (LREC), pp. 1099-1104.

[19] Erjavec Tomaž, Ignat Camelia, Pouliquen Bruno, Steinberger Ralf, Massive multi lingual corpus compilation: Acquis Communautaire and totale, ISBN: 3-540-24988-5.

[20] Filep Laszlo, STUDY OF FUZZY ALGEBRAS AND RELATIONS FROM A GENERAL VIEWPOINT,

:// . . / / / 14/ . http www emis de journals AMAPN vol FILEP PDF

[21] Forsyth Richard, Rada Roy, Horwood Ellis, Machine Learning: Expert Systems and Information Retrieval, London, 1986. ISBN-10: 0853129479

[22] Gale William A., Church Kenneth W., Yarowsky David, Discrimination Decisions for 100,000-Dimensional Spaces, Statistical Research Reports, No. 103, Jan 16, 1992, AT&T Bell Laboratories.

:// . . . /~ / / .http www cs jhu edu yarowsky pubs walkerbook ps

[23] Garside R., Leech G., Sampson G., The CLAWS Word-tagging System, 1987, :// . . . . / / / / /http www comp lancs ac uk computing research ucrel claws

[24] Genesereth Michael R., Nilsson Nils J., Logical Foundations of Artificial Intelligence, ISBN-10: 0934613311

[25] Geurts Pierre, Cuesta Antia Blanco, Wehenkel Louis, Segment and Combine Approach for Biological Sequence Classification, CIBCB 2005, ISBN 0-7803-9387-2, pp. 1-8

[26] Giorgino Toni, An Introduction to Text Classification, ISBN 3-900051-07-0[27] Gold E. Mark, Language identification in the limit, 1967, Information and

Control, Ch. 10: pp. 447―474,:// . . . /~ / / / 67 .http www isrl uiuc edu amag langev paper gold limit html

[28] Grossman David, Frieder Ophir, Inverted Index Efficiency Techniques, :// . . . /~ / 7120/ -50/ - .http www eng auburn edu gilbert Comp Concept IR Compression pdf

[29] Hajek Petr, What does mathematical fuzzy logic offer to description logic ? http://www.cs.cas.cz/semweb/download.php?file=05-10-Hajek&type=pdf

[30] Hust Armin, Learning Similarities for Collaborative Information Retrieval , Information and Knowledge Sharing (IKS) 2002, http://www.hust.a-z-technology.de/publications.htm

:// . - . / / / / / -04/ / 04- - - - .http www uni weimar de medien webis research workshopseries tir proceedings hust learning similarities collaborative ir pdf

[31] Janičić Predrag, Đurović Elena, Ilić-Stepić Angelina, Lazić Jasmina, Nikolić Mladen, Predović Goran, Radivojević Vladan, Zbornik seminarskih radova, :// . . . . /~ / .http poincare matf bg ac rs janicic pd htm

94

Page 105: Magistarska teza

[32] Joshi Mahesh, Pakhomov Serguei, Pedersen Ted, Chute G. Christopher. 2006. A Comparative Study of Supervised Learning as applied to Acronym Expansion in Clinical Reports. AMIA Annual Symp Proc. pp. 399-403, :// . . . / . ? =1839635http www pubmedcentral nih gov articlerender fcgi artid

[33] Kešelj Vlado, Šipka Danko, A Suffix Subsumption-based Approach to Building Stemmers and Lemmatizers for Highly Inflectional Languages with Sparse Resources, Infoteka, Maj 2008, vol. 9, br. 1-2, str. 21-31.

:// . . . . / 01/ / / 1_2_2008/ .http www unilib bg ac rs zajednica izdanja infoteka br index php

[34] Kovačević Aleksandar, Adaptivni sistem za pretraživanje zvučnih zapisa (magistarska teza), 2006, Univerzitet u Novom Sadu, Fakultet tehničkih nauka

[35] Krstev Cvetana, Vitas Duško, Erjavec Tomaz. 2004. Morpho-Syntactic Descriptions in MULTEXT-East - the Case of Serbian. In Informatica, No. 28, The Slovene Society Informatika, Ljubljana. pp. 431-436.

:// . . . . /~ / / - 04.http www matf bg ac yu cvetana biblio mtesr inform pdf

[36] Leech G., Garside R., Sampson G., The Computational Analysis of English: A Corpus-based Approach, 1987, London: Longman

:// . . . . / / / / /http www comp lancs ac uk computing research ucrel claws

[37] Lenar Mateusz, Sobecki Janusz, Using Recommendation to Improve Negotiations in Agent-based Systems, Lecture Notes In Comp. Science, ISSN 0302-9743, Springer-Verlag, pp. 534-540

[38] Lotfi A. Zadeh Soft Computing and Fuzzy Logic, 1994, ISBN-10: 9810223455

[39] Lotfi A. Zadeh: A fuzzy-algorithmic approach to the definition of complex or imprecise concepts, (Int. J. Man-Machine Studies 8) 1975. ISBN-10: 0471857106

[40] Lotfi A. Zadeh: Fuzzy Logic = Computing With Words, IEEE Transactions On Fuzzy Systems, Vol. 4, 1996, ISBN-10: 379081217X, ISBN-13: 978-3790812176

[41] Manning Christopher D., Raghavan Prabhakar, Schutze Hinrich, Introduction to Information Retrieval, Cambridge University Press. 2008. ISBN: 0521865719.

[42] Mišković Vladislav, Application of random subspace technique in inductive learning (Primena tehnike slučajnih podprostora u induktivnom učenju pravila), ETRAN 2008, ISBN 978-86-80509-63-1.

[43] Mitchell Tom M., Does Machine Learning Really Work ? AAAI . . / / . / / / /1303/1204www aaai org ojs index php aimagazine article download

[44] Mitchell Tom M., Machine Learning, 1997, ISBN 0070428077.[45] Mohammadian M., Intelligent Agents for Data Mining and Information

Retrieval, Idea Group Publishing, 2004. ISBN 1591401941[46] Moravec Pavel, Kolovrat Michal, Snašel Vaclav, LSI vs. Wordnet

Ontology in Dimension Reduction for Information Retrieval, :// . . . / / ? =10.1.1.58.4383& = 1& =http citeseerx ist psu edu viewdoc download doi rep rep type pdf

95

Page 106: Magistarska teza

[47] Nenadić Goran, Ananiadou Sophia, Mining semantically related terms from biomedical literature, 2006, ISSN:1530-0226,

:// . . / . ? =1131351 http portal acm org citation cfm id

[48] Nillson Nils J., Introduction To Machine Learning, :// . . /~ / .http ai stanford edu nilsson mlbook html

[49] Noy Natalya F., McGuinness Deborah L., Ontology Development 101: A Guide to Creating Your First Ontology, Stanford University,

:// . . / / _ / 101- - .http protege stanford edu publications ontology development ontology noy mcguinness html

[50] Platt John C., Fast Training of Support Vector Machines using Sequential Minimal Optimization, ISBN:0-262-19416-3.

[51] Popović Zoran, Evaluacija programa za obeležavanje (etiketiranje) teksta na srpskom jeziku (master teza), 2008, Univerzitet u Beogradu, Matematički fakultet

[52] Popović Zoran, Lazy multigram learning environment for automatic content recommendation systems, ISBN 978-1-4244-2407-8, DOI 10.1109 / SISY.2008.4664904

[53] Popović Zoran, Modified nearest neighbor method, SVM and N-grams in automatic content recommendation systems, ETRAN 2008, ISBN 978-86-80509-63-1

[54] Rabiner R. Lawrence, A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition, 1989, Proc. IEEE 77(2), pp. 257―286.

[55] Radojevic D., Interpolative Realization of Boolean Algebra as a Consistent Frame for Gradation and/or Fuzziness, ISBN 978-3-540- 73184-9

[56] Radojevic D., There is Enough Room for Zadeh Ideas, Besides Aristotle 痴 in a Boolean Frame, Soft Computing Applications, 2007. SOFA 2007. 2nd International Workshop on 21-23 Aug. 2007 (Pages 79 - 82), DOI 10.1109/SOFA.2007.4318309

[57] Radwan Ahmed A. A., Latef Bahgat A. Abdel, Ali Abdel Mgeid A., Sadek Osman A., Using Genetic Algorithm to Improve Information Retrieval Systems , 2006,

:// . . . / _ /1999 07 3/02- .http www ijcim th org past editions V N drouen pdf

[58] Rose D. E., A Symbolic and Connectionist Approach to Legal Information Retrieval, 1994, Hillsdale, NJ: Erlbaum.

[59] Seidman Claude, Data Mining with Microsoft(R) SQL Server 2000 Technical Reference, ISBN 0735612714

[60] Siivola Vesa, Building Compact N-gram Language Models Incrementally, Second Baltic Conference on Human Language Technologies, 2005, pp. 183-188

[61] Shannon Claude E., Weaver Warren, The Mathematical Theory of Communication. The University of Illinois Press, Urbana, Illinois, 1949, ISBN 0-252-72548-4

[62] Spasić Irena, Nenadić Goran, An Integrated Term-Based Corpus Query System, 2008 http://en.scientificcommons.org/43621315

96

Page 107: Magistarska teza

[63] Stoilos Giorgos, Umberto Straccia, Giorgos Stamou, Jeff Z. Pan, General Concept Inclusions in Fuzzy Description Logics, 2006, ISBN / ISSN:0922-6389 , 1-58603-642-4.

[64] Straccia Umberto, A Fuzzy Description Logic for the Semantic Web, :// . . . /~ / / / 06 / 06 . http faure isti cnr it straccia download papers BookCI a BookCI a pdf

[65] Tomović Andrija, Janičić Predrag, Kešelj Vlado, N-gram-based Classification and Unsupervised Hierarchical Clustering of Genome Sequences, Computer Methods and Programs in Biomedicine, vol. 81, issue 2, January 2006, pp. 137-153

[66] Tso Karen H. L., Schmidt-Thieme Lars, Empirical Analysis of Attribute-Aware Recommender System Algorithms Using Synthetic Data, Journal of Computers, vol. 1, issue 4, July 2006, pp. 18-29

[67] Tso Karen H. L., Schmidt-Thieme Lars, Evaluation of Attribute-aware Recommender System Algorithms on Data with Varying Characteristics, PAKDD 2006 Singapore, Springer, pp. 831-840

[68] van Rijsbergen C. J., Information Retrieval, 1975-1979. Butterworth-Heinemann, ISBN 0408709294 http://www.dcs.gla.ac.uk/Keith/Preface.html

[69] Vapnik Vladimir N., The Nature of Statistical Learning Theory, ISBN-10: 0471030031

[70] Walker Andrew, Recker Mimi M., Lawless Kimberly, Wiley David, Collaborative Information Filtering: a review and an educational application , International Journal of Artificial Intelligence in Education 14 (2004) 1-26, IOS Press,

:// . . . / / ? =10.1.1.101.2209http citeseerx ist psu edu viewdoc download doi

[71] Welch Lloyd R., HMM and the Baum-Welch Algorithm, IEEE IT Society Newsletter, http://www.itsoc.org/publications/nltr/it_dec_03final.pdf

:// . . / / / - / 1203. /http www itsoc org publications newsletters past newsletters itNL pdf view

[72] Witten Ian H., Frank Eibe, Data Mining, Practical Machine Learning Tools and Techniques, Morgan Kaufmann, 2005, ISBN 0-12-088407-0

[73] Wong Wan Yeung, Lau Tak Pang, King Irwin, Information Retrieval in P2P Networks Using Genetic Algorithm,

:// . . . / / ? =10.1.1.65.5884& = 1& = & =http citeseerx ist psu edu viewdoc download doi rep rep type pdf rct j

[74] Yao Yiyu, Zeng Yi, Zhong Ning, Huang Xiangji. Knowledge Retrieval (KR), Proceedings of the 2007 IEEE/WIC/ACM International Conference on Web Intelligence, IEEE Computer Society, Silicon Valley, USA, November 2-5, 2007, pp. 729-735.

[75] Zadeh Lotfi A.: Information And Control (Ch. 8: Fuzzy Sets), 1965. ISBN 9810224214

[76] Zhang Haizheng, Croft W. Bruce, Levine Brian, Lesser Victor, A Multi-agent Approach for Peer-to-Peer-based Information Retrieval Systems, ISBN:1-58113-864-4.

97

Page 108: Magistarska teza

Прилог - додатне корисне референце на интернету Странице општег садржаја о ПИ и отвореном кôду

http://www.sigir.org http://www.ismir.net http://www.dmg.orghttp://code.google.com/soc/ http://www.gnu.org/ http://www.opensource.org/http://www.sourceforge.net http://ciir.cs.umass.edu/http://www.tei-c.org http://trec.nist.gov/ http://cacm.acm.org/http://www.kdd.org/ http://www.petamedia.eu/sig4.htmlhttp://knowledgesearch.org/ http://knowledgesearch.org/lsi/http://www.kdnuggets.com/websites/data-mining.html http://lsa.colorado.edu/ http://www.cs.utk.edu/~lsi/http://ir.dcs.gla.ac.uk/ http://www.w3.org/TR/REC-xml/http://www.daml.org http://www.cald.cs.cmu.edu/http://www.aaai.org/home.html http://good-old-ai.fon.bg.ac.rs/ http://www.eclipse.org http://www.semanticweb.org http://www.aboutai.net Shannon's Experiment http://math.ucsd.edu/~crypto/java/ENTROPY/http://www.patternrecognition.co.zahttp://www.semanticsoftware.info/semantic-assistants-architecturehttp://perspectives.mvdirona.com/2010/01/02/MapReduceInCACM.aspxhttp://ir.dcs.gla.ac.uk/wiki/TREC-BLOG/TREC2008

Литература о ПИ

http://books.nips.cc/nips12/html http://arxiv.org/list/cs.IR/recenthttp://www.emse.fr/~mbeig/IR/books.htmlhttp://www-psych.nmsu.edu/~pfoltz/cacm/cacm.html http://www-psych.nmsu.edu/~pfoltz/cois/filtering-cois.html http://lsi.argreenhouse.com/lsi/LSIpapers.htmlhttp://www.mii.lt/files/InMaDra/3B-Knowledge-Retrieval.pdfRay Solomonoff http://world.std.com/~rjs/pubs.htmlhttp://www.twocrows.com/booklet.htmhttp://filebox.vt.edu/users/wfan/text_mining.htmlhttp://cseweb.ucsd.edu/users/rik/talks/MLinIR/MLIA.htmlhttp://ir.dcs.gla.ac.uk/publications-cached.html http://linkage.rockefeller.edu/wli/zipf/cmpsci546_spring2002_notes.pdf http://www.labmedinfo.org/download/lmi263.pdf, unpublished http://research.yahoo.com/node/1677 http://www.w3schools.com/xsl/http://devresource.hp.com/drc/technical_white_papers/WSOrch/WSOrchestration.pdfhttp://www.integrationconsortium.org http://www.omg.org http://www.sei.cmu.edu http://www.eas.asu.edu/~mining03/chap5/lesson_6.htmlhttp://jmlr.csail.mit.edu/papers/volume1/mangasarian01a/html/node2.html http://jmlr.csail.mit.edu/papers/volume1/mangasarian01a/html/node3.html

http://www.vldb.org/conf/2003/papers/S28P01.pdfhttp://stackoverflow.com/questions/2096667/convert-unicode-to-ascii-without-changing-the-string-length-in-java http://agents.umbc.edu/Topics/Related_Topics/Information_retrieval_and_knowledge_management/index.shtml

http://www.eng.auburn.edu/~gilbert/Comp7120/Concept-50/IR-Compression.pdf

98

Page 109: Magistarska teza

Алати и програмске библиотеке

http://ir.dcs.gla.ac.uk/terrier/doc/index.html http://rapid-i.com/ http://protege.stanford.edu http://gate.ac.ukhttp://morphix-nlp.berlios.de/http://www.ksl.stanford.edu/software/ontolinguahttp://www.selenic.com/mercurial/wiki/http://www.sigchi.org/chi97/proceedings/short-talk/kw.htmhttp://www.knowledge-technologies.com/ Stanford Tagger http://nlp.stanford.edu/software/tagger.shtmlhttp://www.pdg.cnb.uam.es/martink/LINKS/nlp_tools_links.htm http://personal.cityu.edu.hk/~davidlee/devotedtocorpora/software.htm http://crl.nmsu.edu/cgi-bin/Tools/CLR/clrcat http://xmlsoft.org/XSLT/ http://xmlsoft.org/XSLT/xsltproc.html http://research.microsoft.com/~jplatt/smo.html http://www.support-vector-machines.org/SVM_soft.html http://www.inf.ed.ac.uk/teaching/courses/dme/html/software2.htmlhttp://www.kddresearch.org/Groups/Machine-Learning/MLJ/http://datamining.itsc.uah.edu/adam/ http://www.eti.hku.hk/alphaminer/ http://googlesystem.blogspot.com/2007/04/open-source-ocr-software-sponsored-by.htmlhttp://jade.tilab.com http://www.fipa.org http://www.kdnuggets.com/software/suites.html http://magix.fri.uni-lj.si/orangehttp://www.cs.cmu.edu/afs/cs/project/theo-11/www/decision-trees.html p3net http://www.renew.dehttp://www.oracle.com/technology/products/bi/odm/odminer.htmlhttp://www.oracle.com/technology/products/bi/odm/index.htmlhttp://msdn2.microsoft.com/en-us/library/ms133839.aspx http://hsqldb.org/ http://www.mysql.org/

Додатне референце о ПИ и текстуелном инжереству

Andrew McCallum http://www.cs.umass.edu/~mccallum/ Mark Craven http://www.biostat.wisc.edu/~craven/ http://www.cs.cmu.edu/~craven/text-learning.html Marti A. Hearst http://www.sims.berkeley.edu/~hearst Goran Nenadić http://personalpages.manchester.ac.uk/staff/G.Nenadic/ http://personalpages.manchester.ac.uk/staff/G.Nenadic/bibl_bio.html http://personalpages.manchester.ac.uk/staff/G.Nenadic/BioMITA.htm

99

Page 110: Magistarska teza

100

Page 111: Magistarska teza

Биографија

Зоран Поповић, рођен 7.10.1972. у Вршцу, у општини Вршац, дипломирао је 1999. године на Математичком факултету Универзитета у Београду, рачунарски смер (Р-смер), с просечном оценом 8.83. Одбранио је мастер тезу ,,Евалуација програма за обележавање текста на српском језику” у септембру 2008. године на истом смеру и факултету. Уписао је магистарске постдипломске студије 2004. године на Универзитету у Београду при Центру за мултидисциплинарне студије, смер Вештачка интелигенција. Током постдипломских студија је објавио два рада у области претраживања информација и ВИ.

Запослен је у Хемофарму а.д., Вршац од 1999. године најпре као програмер, а тренутно је на радном месту ,,Старији систем инжењер” у сектору за пословну информатику и комуникације (СПиК), где је задужен за администрацију SAP система (поседује званичнe SAP сертификате: P_ADM_SYS_70 - Technical Professional with SAP NW7.0, и C_TADM51_70 - Technical Associate Oracle DB), администрацију Oracle база података (8i/9i/10g укључујући и RAC) и апликационих сервера (9i/10g iAS), бекап и опоравак (BuRA) на различитим платформама и уређајима (HP MSL библиотеке, EMC Legato Networker, HP Data Protector / DPX / DPN, Windows, Linux, VMS), одржавање HP опреме (што подразумева и SAN FC мрежу, MSA/EVA5K/8K Storage, и многе друге уређаје поред различитих сервера, BladeSystem и 64-битне Itanium и Alpha/VAX фамилије сервера), део системске инфраструктуре (Windows, Linux - RHEL, OpenVMS, виртуелизација пре свега са Xen, и додатно VMWare платформама), додатни развој по потреби (од Oracle Forms/Reports/Designer 6i/9i, Java програмирања, до свакодневног писања скриптова), и друго. Употребљава и имплементира ITIL/ITSM методологију и валидациону праксу, пре свега за потребе GMP стандарда (FDA, GAMP, CFR Part 11) у IT-у.

http://linkedin.com/in/shoom013

101