SlideShare a Scribd company logo
УНИВЕРЗИТЕТ У БЕОГРАДУ
Зоран Поповић
Реализација окружења за сарадничко
претраживање информација варијантом методе
најближег суседа и профилима мултиграма
- магистарска теза -
Београд, 2010.
УНИВЕРЗИТЕТ У БЕОГРАДУ
Зоран Поповић
Реализација окружења за сарадничко
претраживање информација варијантом
методе најближег суседа и профилима
мултиграма
- магистарска теза -
(101 странa)
Београд, 2010.
Ментори:
проф. др Иван Обрадовић, Рударско-геолошки факултет
проф. др Драган Радојевић, Институт Михаило Пупин
Чланови комисије:
проф. др Иван Обрадовић, Рударско-геолошки факултет
проф. др Драган Радојевић, Институт Михаило Пупин
ванр. проф. др Предраг Јаничић, Математички факултет
Сажетак
Реализација окружења за сарадничко
претраживање информација варијантом
методе најближег суседа и профилима
мултиграма
Основни циљ рада је имплементација једног практичног
прототипа система за претраживање информација, који користи
профиле мултиграма као репрезентацију докумената и
сарадничко претраживање информација као начин да се
побољша рангирање докумената у резултату претраживања.
Профили мултиграма докумената се користе поред тога и као
начин управљања перформансама система кроз глобални
профил свих докумената. Побољшано рангирање је постигнуто
варијантом методе најближег суседа, уз помоћ имплицитно
задатих оцена релевантности докумената у профилу свих
корисника, и одговарајуће шеме рангирања у којој се награђују
елементи глобалног профила са бољим рангом и веће дужине.
Цео систем је реализован као решење отвореног кôда на Јава
платформи, тестирано са Oracle XE базом и отворено за
повезивање са било којом базом која подржава JDBC. Техничка
архитектура система је вишеслојна, заснована на RMI/IIOP
оквиру за дитрибуирано извршавање, са различитим
компонентама система за претраживање и могућностима за
повезивање са другим системима (класификација докумената је
реализована Weka библиотеком). Дати су примери примене у
пословном окружењу, што уз флексибилност једног решења
отвореног кôда чини један од основних мотива за употребу
оваквог система. Употребљивост код претраживања великих
мултимедијалних датотека подношењем дела датотеке уместо
упита је једна од предности оваквог приступа у односу на
слична решења. Резултати мерења техничких перформанси
показују да је систем практично употребљив и скалабилан.
Постоје многе могућности побољшавања и даљег развоја овог
прототипа, којим би се приближио по перформансама сличним
системима за претраживање информација.
Кључне речи: претраживање информација, сарадничко
претраживање, N-грами, мултиграми, метода најближег
суседа, машинско учење, вештачка интелигенција,
отворени кôд, Јава, истраживање података, текстуелни
инжењеринг
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.
Keywords: information retrieval, collaborative retrieval,
N-grams, multigrams, nearest neighbour method, machine
learning, artificial intelligence, open source, Java, data
mining, text engineering
Садржај
Предговор.......................................................................................................3
1 Увод.................................................................................................................6
1.1 Основни циљ рада..................................................................................9
1.2 Разлози за избор решења у раду.........................................................12
1.3 Начин и основе реализације окружења..............................................14
1.4 Основе имплементације и архитектуре прототипа...........................17
2 Преглед основа претраживања информација............................................19
2.1 Технике претраживања информација................................................19
2.1.1 Идентификација речи...................................................................19
2.1.2 Закон степена................................................................................19
2.1.3 Зауставне листе (stoplists) и речници.........................................19
2.1.4 Стеминг и лематизација...............................................................20
2.1.5 Индекси.........................................................................................21
2.1.6 Мере ефикасности и перформанси.............................................23
2.2 Преглед теоретских модела и метода ПИ..........................................26
2.2.1 Класичне методе и дефиниције...................................................26
2.2.2 Булове алгебре и Булов модел....................................................26
2.2.3 Векторски модел...........................................................................28
2.2.4 Латентно семантичко индексирање............................................29
2.2.5 Фази скупови и упити..................................................................30
2.2.6 Претраживање веба и рангирање................................................31
2.2.6.1 Метод ранга странице (PageRank)......................................31
2.2.6.2 HITS метод............................................................................32
2.2.6.3 SALSA метод.........................................................................33
2.2.7 Комбиноване и остале методе.....................................................34
2.2.7.1 Спајање сличношћу..............................................................34
2.2.7.2 P2P ПИ...................................................................................35
2.3 Машинско учење и ПИ........................................................................35
2.3.1 Појам машинског учења..............................................................35
2.3.2 Типови учења и основне одлике.................................................36
2.3.3 Учeњe инстaнцaмa и мeтoдe клaсификaциje..............................38
2.3.3.1 Мeтoд нajближих сусeдa......................................................38
2.4 Сарадничко претраживање са модификацијама...............................40
2.4.1 Меморијски засноване методе....................................................42
2.4.2 Рачунање ранга резултата код прототипа..................................44
3 Реализација прототипа система за ПИ.......................................................45
3.1 Коришћени развојни алати..................................................................45
3.1.1 Java.................................................................................................45
3.1.2 Eclipse............................................................................................46
3.1.3 Weka...............................................................................................47
3.1.4 Додатни алати...............................................................................47
3.2 Извршна платформа.............................................................................48
3.2.1 Apache Tomcat...............................................................................48
3.2.2 Oracle.............................................................................................49
3.3 Техничка архитектура и извршни ток................................................50
3.3.1 Сервер............................................................................................52
3.3.2 Техничка архитектура..................................................................54
3.3.3 Додатне команде и програмска структура.................................55
3.3.3.1 Преглед програмске структуре............................................57
3.3.3.2 Релациони модел прототипа и физичка имплементација
базе података.....................................................................................60
3.3.3.3 Преглед тока извршавања....................................................65
3.3.4 Поступци развоја..........................................................................71
3.3.4.1 Одржавање репозиторијума отвореног кôда......................71
4 Резултати и примери примене....................................................................72
4.1 Поређење с неким познатим решењима за ПИ.................................72
4.2 Техничке перформансе........................................................................74
4.3 Евалуација решења..............................................................................77
4.4 Примери примене.................................................................................77
4.4.1 Технике интеграције са другим решењима...............................78
4.4.1.1 Oracle......................................................................................78
4.4.1.2 SAP.........................................................................................79
4.4.1.3 Microsoft IIS...........................................................................81
5 Даља истраживања.......................................................................................82
5.1 Могућа побољшања.............................................................................82
5.1.1 Одсецање профила мултиграма и класификација.....................82
5.1.2 Техничка унапређења...................................................................83
5.1.3 Побољшања сервера и интерфејса..............................................86
5.2 Онтологије, претраживање и откривање знања................................87
6 Закључци......................................................................................................90
Литература и веб странице..........................................................................93
Биографија...................................................................................................101
Предговор
Претраживање информација (ПИ) је, укратко, проналажење
релевантних информација сачуваних у рачунарским системима
према потребама и захтевима корисника. Појавом интернета је ово
додатно добило на значају, иако су системи ПИ постојали и много
раније. Сарадничко претраживање информација такође доживљава
све више примена пре свега захваљујући својој присутности на
интернету – примери: оглашање веб претраживача (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
Египту) као неком врстом прадавног претка једног од најважнијих
алгоритама претраге (а самим тим и претраживања информација).
Неколико векова касније јављају се први познати текстови
структурираног садржаја (хијерархија са поглављима, одељцима,
заглављима и пасусима), а индекси са пуном алфабетизацијом какве
срећемо у данашњим књигама настају тек негде у 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
један од саставних делова многих модерних пословних
информационих система где игра посебно важну улогу као оружје у
тржишној трци или начин да се одржава интерно знање као
корпоративни капитал.
Рад који се овде излаже има за циљ конструисање употребљивог
прототипа система за ПИ заснованог на сарадничком претраживању
информација и профилима мултиграма као репрезентацији
докумената. У првом поглављу се даје уводни опис предмета
истраживања, преглед разлога за овакав приступ, као и основних
начина имплементације. У другом поглављу се ово детаљније
образлаже уз преглед основних техника и теоретских основа ПИ. У
трећем поглављу се детаљно образлажу реализација и начин
техничке имплементације прототипа уз основне примере. Четврто
поглавље даје увид у добијене резултате, поређење са постојећим
решењима ПИ, опис начина евалуације оваквих окружења, као и
неколико примера примене. Пето поглавље доноси опис могућих
побољшања и правац даљих истраживања са закључком на крају.
Рад је написан уз помоћ OpenOffice алата (верзија 3.1.1).
5
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
речима (односно кључним речима када представљају део упита),
мада се у литератури срећу и многи други слични појмови (што
може зависити и од домена претраге): терми (могу објединити и
више речи на задат начин, али надаље речи се поистовећују са
термима једноставности ради), дескриптори, идентификатори, или
токени (лексичке јединице).
Уводи се и скуп репрезената D докумената из O, где је сваки
елемент Oj , j=1,m скупа D репрезент који одговара неком
подскупу Dj⊆O , 1≤ j≤m, домена претраге који чини скуп
(кластер) докумената са истом репрезентацијом. Скуп таквих
подскупова D={D1, ...,Dm }⊆PO, m≥2, јесте подскуп
партитивног скупа домена претраге и чини прекривање домена
претраге које одговара једном могућем избору репрезентације
докумената. Често се једноставности ради поистовећују D и D ,
репрезенти и одговарајући кластери (подскупови домена претраге).
Репрезенти могу бити елементи домена претраге (документи),
односно одговарајућег кластера, или посебни објекти као што су
профили докумената предложени у овој тези.
Профил документа Oj је пресликавање Oj≡МOj
: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
Дефиниција 1: ПИ је задато структуром (O,Q,L,I,ρ) где је ρ
релација релевантности докумената и потребе за информацијама,
ρ⊆O×Q×LI 
Релација релевантности говори о вези домена претраге и упита
са спефичним потребама (захтевима) корисника, и индукује
резултат претраге R за дати упит q и кориснички захтев info∈I :
R≡Rq={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 : D PD.
N-грами и мултиграми су традиционални ресурс статистички
оријентисаних алата за обраду природног језика и рачунарске
лингвистике (поред корпуса, речника и лексикона са етикетама и
лемама). Једну компоненту система предложену у овој тези чини
употреба N-грама речи као основних особина докумената, поред
самих речи, као и употреба профила мултиграма:
Дефиниција 2: За произвољну ниску речи t1 ,... ,tL свака
његова подниска ti ,...,tiN−1 дужине N зове се (i-ти) N-грам
(има их L-N+1 у датој нисци, једнаки су ако су једнаки као
ниске).
Дефиниција 3: Профил N-грама пресликава сваки N-грам у
одговарајућу фрекценцију (број појављивања истог N-грама у
документу као једној нисци речи) у односу на дати документ
(или у односу на скуп свих докумената). Пресликавање у чијем
домену су N-грами различите дужине (N=1,2,3,...) је профил
мултиграма. Профили се могу посматрати као сортиране листе
парова N-грама и њихових фреквенција, поређаних по
фреквенцији у опадајућем редоследу у односу на дати документ
(профил документа) или све документе (глобални профил), где
8
онда ранг N-грама представља његов редни број у таквој листи.
Често користи још једна важна величина – инверзна фреквенција
N-грама ti (inverse document frequency):
idfi=ln
m
Fi
Укупан број докумената означен је са m, Fi је број докумената
у домену претраге који садрже дати N-грам ti (једноставности
ради је N-грам обележен као елемент скупа речи пошто су речи
специјалан случај – униграми). У прототипу се користи другачији
облик: Fi/m. N-грам присутан у свим документима у претрази
даје непотребно велики одзив, а такође није значајан ни за њихову
класификацију. У овом раду се предлаже употреба профила
мултиграма за репрезентовање докумената у репозиторијуму
система ПИ. Предности оваквог приступа има више: употребом
одговарајућих метода индексирања могу се добити боље
перформансе претраге, могућност уштеде простора у односу на
друге системе ПИ (што се поређењем може донекле показати, како
је образложено даље у тексту), као и могућност једноставнијег
добијања изведених особина методама класификације оваквих
репрезената. Лоша страна може бити комбинаторна експлозија
особина докумената, јер сваки N-грам представља нову реч у
индексу и репозиторијуму. Један начин да се ово превазиђе је
одсецање непотребних речи, што је уобичајено код већине система
ПИ. Класични системи ПИ то постижу употребом речника
(елиминација синонима), стемера или лематизације (употреба стема
или леме уместо морфолошки сродних речи), зауставним листама
(са зауставним речима које су високо фреквентне у свим
документима а не доприносе перформансама, stopwords), или
одговарајућим методама елиминисања мање релевантних речи
(статистички заснованим, или на некој методи вештачке
интелигенције). Прототип система ПИ који се овде приказује
користи базу података као обједињен облик организовања података
за потребе индексирања и репрезентовања докумената.
1.1 Основни циљ рада
Основни циљ овог рада је конструкција једног прототипа система
за ПИ који користи СПИ, реализовано методом најближег суседа да
би се побољшале перформансе обичног ПИ, и мултиграме, као
репрезенте докумената у репозиторијуму докумената. То је начин
да се потпомогне класично претраживање информација и проучи
9
један његов модел. Неопходно је да прототип буде практично
употребљив и довољно ефикасан, уз одговарајуће методе и решења.
Неке његове особине су евалуиране на крају рада (одзив и
прецизност, али и неке техничке карактеристике као што су раст
базе/индекса и брзина/ефикасност), уз поређења са неким
постојећим системима за ПИ. Прототип је реализован у једном
окружењу којe чине различити развојни алати и извршне
софтверске платформе који нуде могућност флексибилног
управљања особинама и изменама прототипа. Окружење и
прототип остављају могућност многих побољшања. Дају се
предлози побољшања класичних система ПИ (стоп листе,
агрегирано веб рангирање, боља имплементација лењих особина),
поређења и могућа интеграција окружења са неким комерцијалним
информационим системима (SAP BI, Oracle RDBMS), и решењима
отвореног кôда – као и предлози других потенцијалних
побољшања: употреба језичких ресурса (стемери и етикетирање за
српски језик), латентно семантичко индексирање и фази претрага.
Овако замишљено окружење и систем претраживања би могли да
понуде боље перформансе у односу на постојеће у смислу
прецизности и перформанси (предвиђена је мања потрошња
простора за индексирање када се користе већи документи).
Прототип заједно са окружењем је замишљен као алат који се може
лако прилагодити неким специфичним захтевима и применама које
нису у том облику присутне код неких других система (нпр.
интеграција са Weka алатом за примену истраживања података и
машинског учења), али и за неко даље проучавање оваквог једног
модела.
Класични системи претраживања информација (познати веб
претраживачи као пример), и системи сарадничког претраживања
(негде познати и као системи аутоматског препоручивања садржаја)
нису новост, као ни системи ПИ који се прилагођавају неком
корисничком избору релевантности резултата употребом метода
машинског учења. Комбиновањем ПИ и СПИ може се добити
систем који даје персонализовано прилагођен (рангиран, пре свега)
резултат претраге, што ће даље бити образложено. Системи СПИ
најчешће подразумевају праћење корисничке потребе кроз профиле
корисника као структуре којима се прате њихове особине и
потребе. Профил (избора) корисника у овом раду се може
посматрати као пресликавање из скупа докумената у неки број,
оцену релевантности документа за изабраног корисника. Овакво
пресликавање се итеративно мења и побољшава интерактивним
10
уносом оцена релевантности од стране корисника. Меморијски
засновани системи СПИ користе на погодан начин дефинисану
блискост корисничких профила (идеално са особинама метрике)
којом се уз одговарајућу методу предвиђају избори корисника
(оцене релевантности) засновани на изборима других корисника са
сличним корисничким потребама. Често се користи у ту сврху
метода најближих суседа (или нека њена варијанта као у овом раду)
или одговарајућа метода машинског учења инстанцама (које су
познате и као меморијске или лење методе), али постоје и други
приступи. У најкраћем, код методе најближег суседа се за датог
корисника и документ упита формира скуп суседа који
представљају скуп корисника блиских датом кориснику. Блискост
се дефинише често као метрика у простору корисника са њиховим
профилима избора. Профил избора корисника обухвата познате
(унете) субјективне оцене корисника о документима и њиховим
особинама (атрибутима), а блискост међу документима такође може
бити метрика која зависи од сличности особина.
Сарадничко претраживање се може посматрати кроз модел
корисник-О-А-В, тј. модел корисник-објекат-атрибут-вредност
(проширени О-А-В модел), где документ претраге представља
објекат, са својим особинама као атрибутима и њиховим
вредностима за конкретне документе. Уобичајено је да се код СПИ
оцењује релевантност документа за корисника као особина
изражена неким бројем, што користи и прототип (број у интервалу
[0,1] где 0 значи да документ нема значај за корисника, а 1 је
највиша оцена релевантности). Оваквим моделом се могу
обухватити и оцене релевантности свих осталих особина
докумената (као део корисничког профила), што је донекле могуће
и у окружењу које се предлаже у овом раду али спада и у планирана
побољшања и даља истраживања заједно са језичким особинама
садржаја (откривање језика, употреба стемера и програма за
етикетирање). Особине докумената, поред директних као што су
речи, могу бити и изведене. Изведене особине могу бити плитко
структуриране (shallow, добијене као класичне статистичке
величине или неким познатим аналитичким или нумеричким
методом, нпр. FFT), или дубоко структуриране (добијене
екстракцијом знања и методама вештачке интелигенције). Метода
најближих суседа (МНС) се може користити и као метод
класификације и екстракције изведене особине – нпр.
класификацијом докумената употребом те методе се може одредити
њихов тип формата (или SVM методом као у [50] и [52], која се
11
користи у прототипу за класификацију речи), или језик на којем су
написани. Изведене особине могу бити унете од стране корисника
(нпр. субјективна оцена занимљивости, дизајна корица књиге или
веб стране, препоручљивости садржаја другима, итд), или се могу
добити аутоматски (класификацијом мултиграма), и зато свакако
утичу на прецизност добијеног резултата.
1.2 Разлози за избор решења у раду
Један од разлога за развој и употребу оваквог система је могућност
прилагодљиве примене и интеграције са неким комерцијалним
решењима и пословним окружењима, подржане Java платформом.
Java платформа нуди пре свега независност од оперативног система
и хардверске платформе, као и стандардизовано и робусно
окружење. Конкретно решење је замишљено модуларно што је
добрим делом примењено и на прототип, и зато је додатно
једноставно прилагодити га неким специфичним потребама.
Перформансе овог система и окружења тренутно сигурно заостају у
односу на неке познате системе ПИ, али овде приказано окружење
нуди флексибилност коју немају одговарајућа комерцијална
решења. То се огледа у могућности повезивања алата различите
природе (о чему ће бити касније дати примери): комерцијалних
информационих система или складишта података са истраживањем
података и ПИ. Пословни информациони системи (ERP, Enterprise
Resource Planning) су важан извор информација за системе пословне
интелигенција са складиштима података (Business Intelligence, Data
Warehousing). Међутим, све више се очекује од оваквих система да
имају различите изворе информација (или чак знања), где
различити алати отвореног кôда често нуде у много чему и боља
решења од комерцијалних (на пример, Weka алат). Ако се ови
укључе у пословни систем уз поштовање одговарајућих стандарда,
могу се добити решења које иначе није могуће реализовати тако
једноставно и исплативо. Међутим, основни циљ овог окружења и
реализованог прототипа је даље испитивање његових могућности
примене и постављање основе за неке даље резултате.
У пословном окружењу влада атмосфера великог притиска у вези
сталног преиспитивања достигнутог нивоа резултата у
финансијском смислу као и у другим доменима, траженог или
понуђеног нивоа услуга у склопу целог система у односу на
захтеве. Тада могу бити битни задати индикатори перформанси
нивоа услуга за које се успоставља нека врста уговора (SLA, Service
12
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
Предложено окружење зато пре свега представља основу за даља
истраживања и могуће примене сличне поменутим примерима.
Један од могућих даљих праваца развоја овог окружења јесте и
развој система за откривање знања и истраживање текста
(Knowledge Discovery, Text Mining).
1.3 Начин и основе реализације окружења
Предложени прототип је део окружења у којем се развија и
користи један систем претраживања информација. Окружење чине
пре свега:
• одабране методе са теоретским основама (поред наведених),
• одабрани развојни алати,
• хардверска и софтверска платформа у којој се развија и
извршава,
• пробни подаци и методе мерења перформанси.
Окружење се реализује поступно, идеално наведеним редом -
враћање на претходне фазе доноси нове непознанице и продужава
цео поступак. На слици 1 испод приказан је уопштени (канонски)
прототип класичног система за ПИ (према дијаграму датом у [16]),
где је стрелицама приказана архитектура система ПИ кроз
структуру тока података (без тока процеса):
Слика 1 – уопштена архитектура система за ПИ
Под подацима се подразумевају документи, упити и елементи
индекса - за разлику од корака извршвања, догађаја и аргумената
14
позива модула. Када корисник поднесе упит интерфејсу, он након
почетне трансформације бива прослеђен модулу за упитивање који
на основу индекса (и репозитиријума, опционо) генерише листу
докумената који одговарају упиту. Добијена листа се прослеђује
модулу за рангирање који је сортира према одабраној методи и
критеријумима, и прослеђује тако добијен коначан резултат
интерфејсу. Модул за индексирање формира индексе аутоматски
(након сваке промене репозиторијума или у неким временским
интервалима). Шетач такође најчешће ради аутоматски, независно
од остатка система, прикупља документе и шаље их у
репозиторијум. Наведена архитектура у најосновнијем облику
подразумева:
• репозиторијум: база докумената који се претражују (или
кеш, cache), или један њихов део – попуњава се аутоматски
или по захтеву корисника; репозиторијум докумената
представља колекцију докумената који се претражују и који
су доступни систему ПИ у ту сврху; код неких система
постоји специфична потреба за локалним складиштем у коме
се физички налазе сви документи домена претраге (нпр. код
система за електронско управљање документацијом, какви су
EMC Documentum, Oracle UCM, SAP Content Server,
Knowledge Tree, PBS, различити портали, и друго), али код
многих других тако нешто губи смисао због огромне
количине датотека (што је или технички неизводиво, или
економски неисплативо - нпр. код претраживача веба); често
се уместо тога користи структура индекса, делимично
кеширање, или посебна репрезентација докумената.
• модул за индексирање: срце традиционалних система ПИ,
представља у суштини методе организације података за
потребе система ПИ (бира се према домену претраге и врсте
конкретног система ПИ), због чега има важну улогу и у
прикупљању докумената у репозиторијум, поред упитивања
и претраге; овај модул креира индексе најчешће као инверзне
структуре података из докумената у репозиторијуму (биће
појашњено даље у тексту), и враћа по захтеву документе за
задате кључне речи које касније користи модул за
упитивање;
• модел за упитивање: добија упит од корисника, обрађује га
и употребом индекса и одговарајуће методе генерише
15
резултат (hit list) који прослеђује модулу рангирања; ако
постоји посебан кориснички интерфејс или језик упитивања
потребно је трансформисати улаз у облик који је потребан
изабраној методи (на пример, могућа је додатна
трансформација упита или екстензија упита над језичким
ресурсима пре даље обраде)
• модул за рангирање: добијени резултат сортира у
опадајућем редоследу према дефинисаној релевантности
његових ставки (према мери сличности документа са упитом
у односу на изабрани модел и критеријуме), и прослеђује то
кориснику;
• шетач (crawler): специфично за веб претраживаче, засебан
модул (који може да се извршава конкурентно и независно на
више сервера) који сакупља странице (документе)
аутоматски и прослеђује их у репозиторијум (на
индексирање);
• интерфејс: интерфејс је модул који комуницира са веб
клијентом корисника, и код класичних система ПИ нема
посебну улогу или га уопште нема - прототип у овом раду га
користи на посебан начин; код веб мета-претраживача овакав
модул има посебну улогу (интерфејс као модул, описан у
[16]), где преузима и улогу модула за упитивање, а врши
прослеђивање упита уз додатни обраду (нпр. стемовање)
другим веб претраживачима (нпр. Google, Altavista, Yahoo), и
на крају координира добијене резултате са својим
репозиторијумом.
Поред овакве архитектуре система ПИ који се тичу пре свега веб
мреже на интернету, могу бити занимљиви системи засновани на
P2P (peer-to-peer) мрежама и интелигентним агентима који могу
играти различите улоге.
Одабрана хардверска платформа је лаптоп или кућни рачунар
(довољно само за основне тестове и развој). Развојни алати и
софтверска платформа су:
• Java SDK (1.5+, OpenJDK 1.6) развојна платформа, и
Mercurial (hg) / Sourceforge.net као решење за управљање
променама
16
• Eclipse 3.4.2 (развојно окружење заједно са претходним и
Weka 3.5.7 алатом чија се имплементација класификатора
користи, али који нуди и многе друге могућности),
• Apache Tomcat 5.5.х као апликациони сервер,
• Oracle 10g XE као база података (sqlplus, APEX, додатно и
SQL*Developer),
• и неке додатне библиотеке и алати (нпр. jchardet као полазна
детекција текстуелног садржаја).
Део поступка евалуације чини издвајање великог броја докумената
из одабраних извора на интернету уз праћење основних
перформанси (проценат заузећа индекса у односу на податке, одзив
и прецизност у односу на симулиране сценарије). Тај поступак и
рачунање резултата су реализовани употребом шетача и додатних
скриптова у бази.
1.4 Основе имплементације и архитектуре
прототипа
Основни концепти окружења у коме је реализован прототип као
систем ПИ јесу мултиграми као репрезентација докумената и
сарадничко претраживање реализовано модификованом МНС.
Поред тога, мултиграми представљају и основну структуру
индексирања докумената. У односу на претходно поменути
канонски прототип, у овом раду прототип:
• користи интерфејс и као слој између корисниковог клијента и
остатка система ПИ, али је у њему имплементиран и добар
део функционалности модула за упитивање и рангирање;
разлози за овакав избор су: мањи саобраћај са остатком
система (потребна поља се читају из базе података, а онда се
формира списак резултата), остављање могућности лакше
имплементације мета-претраживања, и боља изолација од
дела система који се мање мења - различити модели
рангирања се тако лакше и флексибилније примењују;
• не користи репозиторијум у том смислу (кешира се само
почетак тела HTML документа ради приказа кориснику у
резултату);
• не користи уобичајену структуру индекса, већ користи базу
података са њеним садржајем и механизмима индексирања;
релациони модел на коме је заснована њена физичка
17
структура произилази из раније поменутог концептуалног
модела корисник-О-А-В, као и из захтева које намећу
функционалности интерфејса (нпр. подаци о корисницима и
њиховим правима приступа) и остатка система;
• модул за индексирање је делом обједињен са шетачем.
Техничка архитектура система се састоји из 4 слоја (детаљнији
преглед је дат у 3.3):
• база података (физичко складиште репозиторијума
докумената)
• сервер (основна компонента система)
• JSP интерфејс (компоненте система између корисника и
сервера)
• веб клијент (кориснички интерфејс, internet browser)
18
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
и само оптерећују ресурсе за њихово складиштење и обраду; зато је
пожељно такве речи једноставно прескочити како током
индексирања репозиторијума, тако и приликом самог
претраживања. Речници (речи и синонима) имају такође важну
улогу: велики број речи које имају слично значење не помажу у
претрази и нарушавају перформансе система, а то је уједно и начин
да се ефикасно елиминишу погрешно унети речи. Често се користе
и речници 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
рачунску лингвистику, Stuttgart универзитет у Немачкој;
програм је настао у периоду од 1994-1996. године,
• RBT⧫⧫⧫
(Rule Based Tagger) чији је аутор Ерик Брил, један од
пионира учења трансформацијама (Transformation-Based
Learning), настао у периоду од 1992-1994. године.
2.1.5 Индекси
Индексирање је основни поступак класичног ПИ којим се граде
структуре података које обезбеђују ефикасно претраживање
информација. Основни тип такве структуре података је инверзна
датотетка или инверзни индекс. Индекс се може посматрати као
табела која има две колоне: кључна реч претраге и листа за
додавање (posting list) која представља списак докумената који
садрже наведену кључну реч (обично погодно кодиране):
Реч Документи
t1 D11 ,...,D1m1
... ...
ti Di1 ,...,Dim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
одговарајућих етикета. Ови индекси могу имати улогу и код
претраживања ниски речи где се води рачуна о редоследу, али већ
за 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
2.1.6 Мере ефикасности и перформанси
Релеватнтност информације заузима као појам посебан значај не
само код ПИ већ и у информационој теорији уопште – још од
Шенонове информационе теорије ([61]) где се у комуникацији
издваја релевантна информација (у односу на било коју). Корисник
може имати и субјективну оцену значаја и сврхе информације коју
тражи. Перформансе система ПИ нумерички изражавају његову
успешност према врсти оцене, које могу бити у следећим
категоријама:
• релевантност: прецизност, одзив и подбачај (precision, recall,
fallout)
• ефикасност: цена претраживања (у смислу ресурса), време
трајања претраживања (цена у смислу времена)
• корисност: економска цена претраживања
• задовољство корисника: прецизност из корисничког аспекта,
задовољство добијеним рангираним садржајем
Релевантност се дефинише уопштено кроз:
• прецизност P: број враћених релевантних докумената  у
односу на укупан број ≠0 враћених у резултату
• одзив R: број враћених релевантних докумената  у односу
на укупан број релевантних докумената ≠0 у скупу свих
докумената који се претражују
• подбачај F: број враћених ирелевантних докумената
− у односу на укупан број ирелевантних докумената у
скупу свих докумената који се претражују
Ове вредности се могу добијати мерењем емпиријски према
резултатима добијеним реалном употребом система, а могу се
добити и синтетичким тестовима. У првом случају је тешко
формално потврдити резултате осим кроз уобичајене статистичке
методе (статистичка значајност тестова), док у другом случају се
прави интерпретација субјективног корисничког понашања која
никада не мора одговарати стварном стању. Једноставно, ове
вредности нису апсолутно тачне, али ипак представљају поуздану
оцену перформанси система. Ово веома личи на перформансе
програма машинског учења и проблеме који се у неким случајевима
ту јављају, на пример: програм који етикетира текст може да се
различито понаша с речима које су непознате (нису задате
корпусом обучавања) или познате – обично се посматра прецизност
тачно етиктетираних речи у односу на укупан број речи улазног
текста (што одговара прецизности), док број непознатих речи има
23
смисла једино упоређивати са укупним бројем непознатих речи у
датом тексту. Ту се може показати да језички модел има посебан
значај код таквих програма (програми се понашају различито са
различитим језицима).
Поред ових постоје и неке алтернативне мере, нпр. комбиновањем
различитих мера (van Rijsbergen):
1−
P R
PR
или F-мера:

2
1P R

2
RP
(за β=1, P и R су једнако значајни)
или додатним мерењем броја враћених релевантних докумената
R

пре појављивања ирелевантног документа по упиту, као и
мерењем броја враћених ирелевантних докумената I−
пре
појављивања релевантног по упиту, предлаже се мера (Bollmann-
Sdorra, Raghvan, 1993):
Rnorm=
1
2
1R

−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
Oвај однос величина се може приказати Веновим дијаграмом који
се налази на слици 2:
Слика 2 – односи бројева докумената
Остале величине које могу бити корисне:
• P+R
• P+R-1
•
P−F
PF−2 PF
, 0≤F≤1
•
1−
1
1
21
P−
1
21
R 
• F-мера:
2 R P
RP
• Хајнеова (Heine) мера:
1−
1
1
P

1
R
−1
• Викеријева (Vickery) мера:
1−
1
2
1
P
2
1
R
−3
• Meadow: 1−
1−P
2
1−R
2
2
• Нормализован одзив (Salton, Lesk, 1968)  Ri i-ти одзив у
резултату, hit):
Rnorm=
1
M−
∑i=1
M
Ri−
1
2M−
25
М
Δ κ
α
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: За сваки документ Dj у скупу D дефинише се
одговарајући скуп речи♦
Dj
*
={ti∈T ∣ ti се јавља у Dj } (носач) тако
да му реч припада акко се јавља у нисци речи датог документа. За
скуп D*
={D1,.
*
.. , Dm
*
}⊆PT  оваквих скупова речи који одговарају
♦ или врећа речи, где вишеструкост речи у врећи одговара њеној фреквенцији у документу
26
датом скупу докумената, дефинише се упит као исказ q у КНФ
(коњунктивној нормалној форми) где je j произвољни литерал
за реч t j , Sj скуп враћених докумената који одговарају
литералу j , L језик КНФ исказног рачуна:
q = ∧k ∨j θjk  ∈ L{tj ∣ 1≤ j≤J }, θ jk∈{t j ,¬tj }.
Тада се резултат R упита дефинише рекурзивно (слично као и
вредност исказа), за литерал q=θ j:
• ако је θj=t j онда је Rq = Sj = {d∈D ∣ tj∈d}
• ако је θj=¬t j онда је Rq = Sj = {d∈D ∣ tj∉d}
и на основу тога је Rq = ∩k ∪j RSjk , S jk=Rjk.
(ово је уједно и алгоритам рачунања резултата претраге)
Прототип користи упите само у облику простих коњункција
(клаузе без негативних литерала). Механизам реализације БМ ПИ је
нешто што се подразумева у већини данашњих веб претраживача,
као и код класичних система за управљање релационим базама
података. Латица Булових упита као алгебарска структура (што се
детаљније разматра у [16]) има и ту предност да нуди могућност
бржег извршавања упита уз одговарајућу структуру и организацију.
Терм-документ (TD, реч-документ) матрица Wn×m=wij i=1,n , j=1,m
(матрица близине речи и докумената, adjacency matrix) је један од
основних алата ПИ: колоне су документи, врсте речи, а елементи
матрице су коефицијенти близине матрице и документа. У примеру
на слици 3 је дата матрица која одговара БМ ПИ, где wij=1 значи
да ti∈Dj
*
, односно wij=0 значи да ti∉Dj
*
. Тако се из TD матрице
може добити Dj
*
={ti∈T ∣ wij=1}, и обратно. Постоје различите
шеме доделе вредности коефицијентима wij и њиховог нормирања
(wеighting schemes) које су посебно важне код векторског модела
(чест пример је шема wij=f ij⋅idf i ).
TD D1 D2 D3 D4
t1 1 1 0 0
t2 1 0 1 0
t3 0 1 0 1
t4 0 0 1 1
Слика 3 – пример TD матрице докумената и речи (преузето из [16])
27
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza
Magistarska teza

More Related Content

Similar to Magistarska teza

Одређивање-жижне-даљине-сабирног-сочива-лабораторијска-вежба.docx
Одређивање-жижне-даљине-сабирног-сочива-лабораторијска-вежба.docxОдређивање-жижне-даљине-сабирног-сочива-лабораторијска-вежба.docx
Одређивање-жижне-даљине-сабирног-сочива-лабораторијска-вежба.docx
Mihajilo Tosic
 
Наставни план и програм 2012 - Рачунарство и информатика - 1. разред
Наставни план и програм 2012 - Рачунарство и информатика - 1. разредНаставни план и програм 2012 - Рачунарство и информатика - 1. разред
Наставни план и програм 2012 - Рачунарство и информатика - 1. разред
NašaŠkola.Net
 
Формални модели пословно-истраживачког окружења - ВИХОС Пројекат
Формални модели пословно-истраживачког окружења - ВИХОС ПројекатФормални модели пословно-истраживачког окружења - ВИХОС Пројекат
Формални модели пословно-истраживачког окружења - ВИХОС ПројекатMilan Zdravković
 
Buducnost 3D modeliranja
Buducnost 3D modeliranjaBuducnost 3D modeliranja
Buducnost 3D modeliranja
Goca Petrovic
 
Lazar mladenović word
Lazar mladenović  wordLazar mladenović  word
Lazar mladenović word
Lazar Mladenovic
 
Izbegavanje prepreka kod implementacije SharePoint-a
Izbegavanje prepreka kod implementacije SharePoint-aIzbegavanje prepreka kod implementacije SharePoint-a
Izbegavanje prepreka kod implementacije SharePoint-a
Bojan Buhac
 
SPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan Buhac
SPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan BuhacSPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan Buhac
SPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan BuhacSharePoint User Grupa Srbija
 
Prva radionica
Prva radionicaPrva radionica
Prva radionica
Siniša Ćulafić
 
Objasnjene predloga redefinisane nastave informatike i nužnih korekcija tehni...
Objasnjene predloga redefinisane nastave informatike i nužnih korekcija tehni...Objasnjene predloga redefinisane nastave informatike i nužnih korekcija tehni...
Objasnjene predloga redefinisane nastave informatike i nužnih korekcija tehni...
Snežana Marković
 
Takmičenje 2014 UPIS - Propozicije - srednje škole
Takmičenje 2014 UPIS - Propozicije - srednje školeTakmičenje 2014 UPIS - Propozicije - srednje škole
Takmičenje 2014 UPIS - Propozicije - srednje škole
Педагошко друштво информатичара Србије
 

Similar to Magistarska teza (10)

Одређивање-жижне-даљине-сабирног-сочива-лабораторијска-вежба.docx
Одређивање-жижне-даљине-сабирног-сочива-лабораторијска-вежба.docxОдређивање-жижне-даљине-сабирног-сочива-лабораторијска-вежба.docx
Одређивање-жижне-даљине-сабирног-сочива-лабораторијска-вежба.docx
 
Наставни план и програм 2012 - Рачунарство и информатика - 1. разред
Наставни план и програм 2012 - Рачунарство и информатика - 1. разредНаставни план и програм 2012 - Рачунарство и информатика - 1. разред
Наставни план и програм 2012 - Рачунарство и информатика - 1. разред
 
Формални модели пословно-истраживачког окружења - ВИХОС Пројекат
Формални модели пословно-истраживачког окружења - ВИХОС ПројекатФормални модели пословно-истраживачког окружења - ВИХОС Пројекат
Формални модели пословно-истраживачког окружења - ВИХОС Пројекат
 
Buducnost 3D modeliranja
Buducnost 3D modeliranjaBuducnost 3D modeliranja
Buducnost 3D modeliranja
 
Lazar mladenović word
Lazar mladenović  wordLazar mladenović  word
Lazar mladenović word
 
Izbegavanje prepreka kod implementacije SharePoint-a
Izbegavanje prepreka kod implementacije SharePoint-aIzbegavanje prepreka kod implementacije SharePoint-a
Izbegavanje prepreka kod implementacije SharePoint-a
 
SPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan Buhac
SPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan BuhacSPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan Buhac
SPUG Srbija - Izbegavanje prepreka kod implementacije SharePointa - Bojan Buhac
 
Prva radionica
Prva radionicaPrva radionica
Prva radionica
 
Objasnjene predloga redefinisane nastave informatike i nužnih korekcija tehni...
Objasnjene predloga redefinisane nastave informatike i nužnih korekcija tehni...Objasnjene predloga redefinisane nastave informatike i nužnih korekcija tehni...
Objasnjene predloga redefinisane nastave informatike i nužnih korekcija tehni...
 
Takmičenje 2014 UPIS - Propozicije - srednje škole
Takmičenje 2014 UPIS - Propozicije - srednje školeTakmičenje 2014 UPIS - Propozicije - srednje škole
Takmičenje 2014 UPIS - Propozicije - srednje škole
 

More from Zoran Popovic

Evaluacija programa za obeležavanje (etiketiranje) teksta na srpskom jeziku
Evaluacija programa za obeležavanje (etiketiranje) teksta na srpskom jezikuEvaluacija programa za obeležavanje (etiketiranje) teksta na srpskom jeziku
Evaluacija programa za obeležavanje (etiketiranje) teksta na srpskom jeziku
Zoran Popovic
 
Veštačka inteligencija 2
Veštačka inteligencija 2Veštačka inteligencija 2
Veštačka inteligencija 2
Zoran Popovic
 
Veštačka inteligencija 1
Veštačka inteligencija 1Veštačka inteligencija 1
Veštačka inteligencija 1
Zoran Popovic
 
Machine Learning
Machine LearningMachine Learning
Machine Learning
Zoran Popovic
 
Ekspertni sistemi
Ekspertni sistemiEkspertni sistemi
Ekspertni sistemi
Zoran Popovic
 
Soft Computing
Soft ComputingSoft Computing
Soft Computing
Zoran Popovic
 
Tag
TagTag
SAP, Linux, Virtualization and ... Itanium
SAP, Linux, Virtualization and ... ItaniumSAP, Linux, Virtualization and ... Itanium
SAP, Linux, Virtualization and ... Itanium
Zoran Popovic
 
SSO secure communication flow for web Oracle login
SSO secure communication flow for web Oracle loginSSO secure communication flow for web Oracle login
SSO secure communication flow for web Oracle login
Zoran Popovic
 
Migration to 9i
Migration to 9iMigration to 9i
Migration to 9i
Zoran Popovic
 
ETRAN 2008
ETRAN 2008ETRAN 2008
ETRAN 2008
Zoran Popovic
 
SISY 2008
SISY 2008SISY 2008
SISY 2008
Zoran Popovic
 

More from Zoran Popovic (12)

Evaluacija programa za obeležavanje (etiketiranje) teksta na srpskom jeziku
Evaluacija programa za obeležavanje (etiketiranje) teksta na srpskom jezikuEvaluacija programa za obeležavanje (etiketiranje) teksta na srpskom jeziku
Evaluacija programa za obeležavanje (etiketiranje) teksta na srpskom jeziku
 
Veštačka inteligencija 2
Veštačka inteligencija 2Veštačka inteligencija 2
Veštačka inteligencija 2
 
Veštačka inteligencija 1
Veštačka inteligencija 1Veštačka inteligencija 1
Veštačka inteligencija 1
 
Machine Learning
Machine LearningMachine Learning
Machine Learning
 
Ekspertni sistemi
Ekspertni sistemiEkspertni sistemi
Ekspertni sistemi
 
Soft Computing
Soft ComputingSoft Computing
Soft Computing
 
Tag
TagTag
Tag
 
SAP, Linux, Virtualization and ... Itanium
SAP, Linux, Virtualization and ... ItaniumSAP, Linux, Virtualization and ... Itanium
SAP, Linux, Virtualization and ... Itanium
 
SSO secure communication flow for web Oracle login
SSO secure communication flow for web Oracle loginSSO secure communication flow for web Oracle login
SSO secure communication flow for web Oracle login
 
Migration to 9i
Migration to 9iMigration to 9i
Migration to 9i
 
ETRAN 2008
ETRAN 2008ETRAN 2008
ETRAN 2008
 
SISY 2008
SISY 2008SISY 2008
SISY 2008
 

Magistarska teza

  • 1. УНИВЕРЗИТЕТ У БЕОГРАДУ Зоран Поповић Реализација окружења за сарадничко претраживање информација варијантом методе најближег суседа и профилима мултиграма - магистарска теза - Београд, 2010.
  • 2.
  • 3. УНИВЕРЗИТЕТ У БЕОГРАДУ Зоран Поповић Реализација окружења за сарадничко претраживање информација варијантом методе најближег суседа и профилима мултиграма - магистарска теза - (101 странa) Београд, 2010.
  • 4.
  • 5. Ментори: проф. др Иван Обрадовић, Рударско-геолошки факултет проф. др Драган Радојевић, Институт Михаило Пупин Чланови комисије: проф. др Иван Обрадовић, Рударско-геолошки факултет проф. др Драган Радојевић, Институт Михаило Пупин ванр. проф. др Предраг Јаничић, Математички факултет
  • 6.
  • 7. Сажетак Реализација окружења за сарадничко претраживање информација варијантом методе најближег суседа и профилима мултиграма Основни циљ рада је имплементација једног практичног прототипа система за претраживање информација, који користи профиле мултиграма као репрезентацију докумената и сарадничко претраживање информација као начин да се побољша рангирање докумената у резултату претраживања. Профили мултиграма докумената се користе поред тога и као начин управљања перформансама система кроз глобални профил свих докумената. Побољшано рангирање је постигнуто варијантом методе најближег суседа, уз помоћ имплицитно задатих оцена релевантности докумената у профилу свих корисника, и одговарајуће шеме рангирања у којој се награђују елементи глобалног профила са бољим рангом и веће дужине. Цео систем је реализован као решење отвореног кôда на Јава платформи, тестирано са Oracle XE базом и отворено за повезивање са било којом базом која подржава JDBC. Техничка архитектура система је вишеслојна, заснована на RMI/IIOP оквиру за дитрибуирано извршавање, са различитим компонентама система за претраживање и могућностима за повезивање са другим системима (класификација докумената је реализована Weka библиотеком). Дати су примери примене у пословном окружењу, што уз флексибилност једног решења отвореног кôда чини један од основних мотива за употребу оваквог система. Употребљивост код претраживања великих мултимедијалних датотека подношењем дела датотеке уместо упита је једна од предности оваквог приступа у односу на слична решења. Резултати мерења техничких перформанси показују да је систем практично употребљив и скалабилан. Постоје многе могућности побољшавања и даљег развоја овог прототипа, којим би се приближио по перформансама сличним системима за претраживање информација.
  • 8. Кључне речи: претраживање информација, сарадничко претраживање, N-грами, мултиграми, метода најближег суседа, машинско учење, вештачка интелигенција, отворени кôд, Јава, истраживање података, текстуелни инжењеринг
  • 9. 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.
  • 10. Keywords: information retrieval, collaborative retrieval, N-grams, multigrams, nearest neighbour method, machine learning, artificial intelligence, open source, Java, data mining, text engineering
  • 11. Садржај Предговор.......................................................................................................3 1 Увод.................................................................................................................6 1.1 Основни циљ рада..................................................................................9 1.2 Разлози за избор решења у раду.........................................................12 1.3 Начин и основе реализације окружења..............................................14 1.4 Основе имплементације и архитектуре прототипа...........................17 2 Преглед основа претраживања информација............................................19 2.1 Технике претраживања информација................................................19 2.1.1 Идентификација речи...................................................................19 2.1.2 Закон степена................................................................................19 2.1.3 Зауставне листе (stoplists) и речници.........................................19 2.1.4 Стеминг и лематизација...............................................................20 2.1.5 Индекси.........................................................................................21 2.1.6 Мере ефикасности и перформанси.............................................23 2.2 Преглед теоретских модела и метода ПИ..........................................26 2.2.1 Класичне методе и дефиниције...................................................26 2.2.2 Булове алгебре и Булов модел....................................................26 2.2.3 Векторски модел...........................................................................28 2.2.4 Латентно семантичко индексирање............................................29 2.2.5 Фази скупови и упити..................................................................30 2.2.6 Претраживање веба и рангирање................................................31 2.2.6.1 Метод ранга странице (PageRank)......................................31 2.2.6.2 HITS метод............................................................................32 2.2.6.3 SALSA метод.........................................................................33 2.2.7 Комбиноване и остале методе.....................................................34 2.2.7.1 Спајање сличношћу..............................................................34 2.2.7.2 P2P ПИ...................................................................................35 2.3 Машинско учење и ПИ........................................................................35 2.3.1 Појам машинског учења..............................................................35 2.3.2 Типови учења и основне одлике.................................................36 2.3.3 Учeњe инстaнцaмa и мeтoдe клaсификaциje..............................38 2.3.3.1 Мeтoд нajближих сусeдa......................................................38 2.4 Сарадничко претраживање са модификацијама...............................40 2.4.1 Меморијски засноване методе....................................................42 2.4.2 Рачунање ранга резултата код прототипа..................................44 3 Реализација прототипа система за ПИ.......................................................45 3.1 Коришћени развојни алати..................................................................45 3.1.1 Java.................................................................................................45 3.1.2 Eclipse............................................................................................46 3.1.3 Weka...............................................................................................47
  • 12. 3.1.4 Додатни алати...............................................................................47 3.2 Извршна платформа.............................................................................48 3.2.1 Apache Tomcat...............................................................................48 3.2.2 Oracle.............................................................................................49 3.3 Техничка архитектура и извршни ток................................................50 3.3.1 Сервер............................................................................................52 3.3.2 Техничка архитектура..................................................................54 3.3.3 Додатне команде и програмска структура.................................55 3.3.3.1 Преглед програмске структуре............................................57 3.3.3.2 Релациони модел прототипа и физичка имплементација базе података.....................................................................................60 3.3.3.3 Преглед тока извршавања....................................................65 3.3.4 Поступци развоја..........................................................................71 3.3.4.1 Одржавање репозиторијума отвореног кôда......................71 4 Резултати и примери примене....................................................................72 4.1 Поређење с неким познатим решењима за ПИ.................................72 4.2 Техничке перформансе........................................................................74 4.3 Евалуација решења..............................................................................77 4.4 Примери примене.................................................................................77 4.4.1 Технике интеграције са другим решењима...............................78 4.4.1.1 Oracle......................................................................................78 4.4.1.2 SAP.........................................................................................79 4.4.1.3 Microsoft IIS...........................................................................81 5 Даља истраживања.......................................................................................82 5.1 Могућа побољшања.............................................................................82 5.1.1 Одсецање профила мултиграма и класификација.....................82 5.1.2 Техничка унапређења...................................................................83 5.1.3 Побољшања сервера и интерфејса..............................................86 5.2 Онтологије, претраживање и откривање знања................................87 6 Закључци......................................................................................................90 Литература и веб странице..........................................................................93 Биографија...................................................................................................101
  • 13. Предговор Претраживање информација (ПИ) је, укратко, проналажење релевантних информација сачуваних у рачунарским системима према потребама и захтевима корисника. Појавом интернета је ово додатно добило на значају, иако су системи ПИ постојали и много раније. Сарадничко претраживање информација такође доживљава све више примена пре свега захваљујући својој присутности на интернету – примери: оглашање веб претраживача (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
  • 14. Египту) као неком врстом прадавног претка једног од најважнијих алгоритама претраге (а самим тим и претраживања информација). Неколико векова касније јављају се први познати текстови структурираног садржаја (хијерархија са поглављима, одељцима, заглављима и пасусима), а индекси са пуном алфабетизацијом какве срећемо у данашњим књигама настају тек негде у 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
  • 15. један од саставних делова многих модерних пословних информационих система где игра посебно важну улогу као оружје у тржишној трци или начин да се одржава интерно знање као корпоративни капитал. Рад који се овде излаже има за циљ конструисање употребљивог прототипа система за ПИ заснованог на сарадничком претраживању информација и профилима мултиграма као репрезентацији докумената. У првом поглављу се даје уводни опис предмета истраживања, преглед разлога за овакав приступ, као и основних начина имплементације. У другом поглављу се ово детаљније образлаже уз преглед основних техника и теоретских основа ПИ. У трећем поглављу се детаљно образлажу реализација и начин техничке имплементације прототипа уз основне примере. Четврто поглавље даје увид у добијене резултате, поређење са постојећим решењима ПИ, опис начина евалуације оваквих окружења, као и неколико примера примене. Пето поглавље доноси опис могућих побољшања и правац даљих истраживања са закључком на крају. Рад је написан уз помоћ OpenOffice алата (верзија 3.1.1). 5
  • 16. 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
  • 17. речима (односно кључним речима када представљају део упита), мада се у литератури срећу и многи други слични појмови (што може зависити и од домена претраге): терми (могу објединити и више речи на задат начин, али надаље речи се поистовећују са термима једноставности ради), дескриптори, идентификатори, или токени (лексичке јединице). Уводи се и скуп репрезената D докумената из O, где је сваки елемент Oj , j=1,m скупа D репрезент који одговара неком подскупу Dj⊆O , 1≤ j≤m, домена претраге који чини скуп (кластер) докумената са истом репрезентацијом. Скуп таквих подскупова D={D1, ...,Dm }⊆PO, m≥2, јесте подскуп партитивног скупа домена претраге и чини прекривање домена претраге које одговара једном могућем избору репрезентације докумената. Често се једноставности ради поистовећују D и D , репрезенти и одговарајући кластери (подскупови домена претраге). Репрезенти могу бити елементи домена претраге (документи), односно одговарајућег кластера, или посебни објекти као што су профили докумената предложени у овој тези. Профил документа Oj је пресликавање Oj≡МOj :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
  • 18. Дефиниција 1: ПИ је задато структуром (O,Q,L,I,ρ) где је ρ релација релевантности докумената и потребе за информацијама, ρ⊆O×Q×LI  Релација релевантности говори о вези домена претраге и упита са спефичним потребама (захтевима) корисника, и индукује резултат претраге R за дати упит q и кориснички захтев info∈I : R≡Rq={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 : D PD. N-грами и мултиграми су традиционални ресурс статистички оријентисаних алата за обраду природног језика и рачунарске лингвистике (поред корпуса, речника и лексикона са етикетама и лемама). Једну компоненту система предложену у овој тези чини употреба N-грама речи као основних особина докумената, поред самих речи, као и употреба профила мултиграма: Дефиниција 2: За произвољну ниску речи t1 ,... ,tL свака његова подниска ti ,...,tiN−1 дужине N зове се (i-ти) N-грам (има их L-N+1 у датој нисци, једнаки су ако су једнаки као ниске). Дефиниција 3: Профил N-грама пресликава сваки N-грам у одговарајућу фрекценцију (број појављивања истог N-грама у документу као једној нисци речи) у односу на дати документ (или у односу на скуп свих докумената). Пресликавање у чијем домену су N-грами различите дужине (N=1,2,3,...) је профил мултиграма. Профили се могу посматрати као сортиране листе парова N-грама и њихових фреквенција, поређаних по фреквенцији у опадајућем редоследу у односу на дати документ (профил документа) или све документе (глобални профил), где 8
  • 19. онда ранг N-грама представља његов редни број у таквој листи. Често користи још једна важна величина – инверзна фреквенција N-грама ti (inverse document frequency): idfi=ln m Fi Укупан број докумената означен је са m, Fi је број докумената у домену претраге који садрже дати N-грам ti (једноставности ради је N-грам обележен као елемент скупа речи пошто су речи специјалан случај – униграми). У прототипу се користи другачији облик: Fi/m. N-грам присутан у свим документима у претрази даје непотребно велики одзив, а такође није значајан ни за њихову класификацију. У овом раду се предлаже употреба профила мултиграма за репрезентовање докумената у репозиторијуму система ПИ. Предности оваквог приступа има више: употребом одговарајућих метода индексирања могу се добити боље перформансе претраге, могућност уштеде простора у односу на друге системе ПИ (што се поређењем може донекле показати, како је образложено даље у тексту), као и могућност једноставнијег добијања изведених особина методама класификације оваквих репрезената. Лоша страна може бити комбинаторна експлозија особина докумената, јер сваки N-грам представља нову реч у индексу и репозиторијуму. Један начин да се ово превазиђе је одсецање непотребних речи, што је уобичајено код већине система ПИ. Класични системи ПИ то постижу употребом речника (елиминација синонима), стемера или лематизације (употреба стема или леме уместо морфолошки сродних речи), зауставним листама (са зауставним речима које су високо фреквентне у свим документима а не доприносе перформансама, stopwords), или одговарајућим методама елиминисања мање релевантних речи (статистички заснованим, или на некој методи вештачке интелигенције). Прототип система ПИ који се овде приказује користи базу података као обједињен облик организовања података за потребе индексирања и репрезентовања докумената. 1.1 Основни циљ рада Основни циљ овог рада је конструкција једног прототипа система за ПИ који користи СПИ, реализовано методом најближег суседа да би се побољшале перформансе обичног ПИ, и мултиграме, као репрезенте докумената у репозиторијуму докумената. То је начин да се потпомогне класично претраживање информација и проучи 9
  • 20. један његов модел. Неопходно је да прототип буде практично употребљив и довољно ефикасан, уз одговарајуће методе и решења. Неке његове особине су евалуиране на крају рада (одзив и прецизност, али и неке техничке карактеристике као што су раст базе/индекса и брзина/ефикасност), уз поређења са неким постојећим системима за ПИ. Прототип је реализован у једном окружењу којe чине различити развојни алати и извршне софтверске платформе који нуде могућност флексибилног управљања особинама и изменама прототипа. Окружење и прототип остављају могућност многих побољшања. Дају се предлози побољшања класичних система ПИ (стоп листе, агрегирано веб рангирање, боља имплементација лењих особина), поређења и могућа интеграција окружења са неким комерцијалним информационим системима (SAP BI, Oracle RDBMS), и решењима отвореног кôда – као и предлози других потенцијалних побољшања: употреба језичких ресурса (стемери и етикетирање за српски језик), латентно семантичко индексирање и фази претрага. Овако замишљено окружење и систем претраживања би могли да понуде боље перформансе у односу на постојеће у смислу прецизности и перформанси (предвиђена је мања потрошња простора за индексирање када се користе већи документи). Прототип заједно са окружењем је замишљен као алат који се може лако прилагодити неким специфичним захтевима и применама које нису у том облику присутне код неких других система (нпр. интеграција са Weka алатом за примену истраживања података и машинског учења), али и за неко даље проучавање оваквог једног модела. Класични системи претраживања информација (познати веб претраживачи као пример), и системи сарадничког претраживања (негде познати и као системи аутоматског препоручивања садржаја) нису новост, као ни системи ПИ који се прилагођавају неком корисничком избору релевантности резултата употребом метода машинског учења. Комбиновањем ПИ и СПИ може се добити систем који даје персонализовано прилагођен (рангиран, пре свега) резултат претраге, што ће даље бити образложено. Системи СПИ најчешће подразумевају праћење корисничке потребе кроз профиле корисника као структуре којима се прате њихове особине и потребе. Профил (избора) корисника у овом раду се може посматрати као пресликавање из скупа докумената у неки број, оцену релевантности документа за изабраног корисника. Овакво пресликавање се итеративно мења и побољшава интерактивним 10
  • 21. уносом оцена релевантности од стране корисника. Меморијски засновани системи СПИ користе на погодан начин дефинисану блискост корисничких профила (идеално са особинама метрике) којом се уз одговарајућу методу предвиђају избори корисника (оцене релевантности) засновани на изборима других корисника са сличним корисничким потребама. Често се користи у ту сврху метода најближих суседа (или нека њена варијанта као у овом раду) или одговарајућа метода машинског учења инстанцама (које су познате и као меморијске или лење методе), али постоје и други приступи. У најкраћем, код методе најближег суседа се за датог корисника и документ упита формира скуп суседа који представљају скуп корисника блиских датом кориснику. Блискост се дефинише често као метрика у простору корисника са њиховим профилима избора. Профил избора корисника обухвата познате (унете) субјективне оцене корисника о документима и њиховим особинама (атрибутима), а блискост међу документима такође може бити метрика која зависи од сличности особина. Сарадничко претраживање се може посматрати кроз модел корисник-О-А-В, тј. модел корисник-објекат-атрибут-вредност (проширени О-А-В модел), где документ претраге представља објекат, са својим особинама као атрибутима и њиховим вредностима за конкретне документе. Уобичајено је да се код СПИ оцењује релевантност документа за корисника као особина изражена неким бројем, што користи и прототип (број у интервалу [0,1] где 0 значи да документ нема значај за корисника, а 1 је највиша оцена релевантности). Оваквим моделом се могу обухватити и оцене релевантности свих осталих особина докумената (као део корисничког профила), што је донекле могуће и у окружењу које се предлаже у овом раду али спада и у планирана побољшања и даља истраживања заједно са језичким особинама садржаја (откривање језика, употреба стемера и програма за етикетирање). Особине докумената, поред директних као што су речи, могу бити и изведене. Изведене особине могу бити плитко структуриране (shallow, добијене као класичне статистичке величине или неким познатим аналитичким или нумеричким методом, нпр. FFT), или дубоко структуриране (добијене екстракцијом знања и методама вештачке интелигенције). Метода најближих суседа (МНС) се може користити и као метод класификације и екстракције изведене особине – нпр. класификацијом докумената употребом те методе се може одредити њихов тип формата (или SVM методом као у [50] и [52], која се 11
  • 22. користи у прототипу за класификацију речи), или језик на којем су написани. Изведене особине могу бити унете од стране корисника (нпр. субјективна оцена занимљивости, дизајна корица књиге или веб стране, препоручљивости садржаја другима, итд), или се могу добити аутоматски (класификацијом мултиграма), и зато свакако утичу на прецизност добијеног резултата. 1.2 Разлози за избор решења у раду Један од разлога за развој и употребу оваквог система је могућност прилагодљиве примене и интеграције са неким комерцијалним решењима и пословним окружењима, подржане Java платформом. Java платформа нуди пре свега независност од оперативног система и хардверске платформе, као и стандардизовано и робусно окружење. Конкретно решење је замишљено модуларно што је добрим делом примењено и на прототип, и зато је додатно једноставно прилагодити га неким специфичним потребама. Перформансе овог система и окружења тренутно сигурно заостају у односу на неке познате системе ПИ, али овде приказано окружење нуди флексибилност коју немају одговарајућа комерцијална решења. То се огледа у могућности повезивања алата различите природе (о чему ће бити касније дати примери): комерцијалних информационих система или складишта података са истраживањем података и ПИ. Пословни информациони системи (ERP, Enterprise Resource Planning) су важан извор информација за системе пословне интелигенција са складиштима података (Business Intelligence, Data Warehousing). Међутим, све више се очекује од оваквих система да имају различите изворе информација (или чак знања), где различити алати отвореног кôда често нуде у много чему и боља решења од комерцијалних (на пример, Weka алат). Ако се ови укључе у пословни систем уз поштовање одговарајућих стандарда, могу се добити решења које иначе није могуће реализовати тако једноставно и исплативо. Међутим, основни циљ овог окружења и реализованог прототипа је даље испитивање његових могућности примене и постављање основе за неке даље резултате. У пословном окружењу влада атмосфера великог притиска у вези сталног преиспитивања достигнутог нивоа резултата у финансијском смислу као и у другим доменима, траженог или понуђеног нивоа услуга у склопу целог система у односу на захтеве. Тада могу бити битни задати индикатори перформанси нивоа услуга за које се успоставља нека врста уговора (SLA, Service 12
  • 23. 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
  • 24. Предложено окружење зато пре свега представља основу за даља истраживања и могуће примене сличне поменутим примерима. Један од могућих даљих праваца развоја овог окружења јесте и развој система за откривање знања и истраживање текста (Knowledge Discovery, Text Mining). 1.3 Начин и основе реализације окружења Предложени прототип је део окружења у којем се развија и користи један систем претраживања информација. Окружење чине пре свега: • одабране методе са теоретским основама (поред наведених), • одабрани развојни алати, • хардверска и софтверска платформа у којој се развија и извршава, • пробни подаци и методе мерења перформанси. Окружење се реализује поступно, идеално наведеним редом - враћање на претходне фазе доноси нове непознанице и продужава цео поступак. На слици 1 испод приказан је уопштени (канонски) прототип класичног система за ПИ (према дијаграму датом у [16]), где је стрелицама приказана архитектура система ПИ кроз структуру тока података (без тока процеса): Слика 1 – уопштена архитектура система за ПИ Под подацима се подразумевају документи, упити и елементи индекса - за разлику од корака извршвања, догађаја и аргумената 14
  • 25. позива модула. Када корисник поднесе упит интерфејсу, он након почетне трансформације бива прослеђен модулу за упитивање који на основу индекса (и репозитиријума, опционо) генерише листу докумената који одговарају упиту. Добијена листа се прослеђује модулу за рангирање који је сортира према одабраној методи и критеријумима, и прослеђује тако добијен коначан резултат интерфејсу. Модул за индексирање формира индексе аутоматски (након сваке промене репозиторијума или у неким временским интервалима). Шетач такође најчешће ради аутоматски, независно од остатка система, прикупља документе и шаље их у репозиторијум. Наведена архитектура у најосновнијем облику подразумева: • репозиторијум: база докумената који се претражују (или кеш, cache), или један њихов део – попуњава се аутоматски или по захтеву корисника; репозиторијум докумената представља колекцију докумената који се претражују и који су доступни систему ПИ у ту сврху; код неких система постоји специфична потреба за локалним складиштем у коме се физички налазе сви документи домена претраге (нпр. код система за електронско управљање документацијом, какви су EMC Documentum, Oracle UCM, SAP Content Server, Knowledge Tree, PBS, различити портали, и друго), али код многих других тако нешто губи смисао због огромне количине датотека (што је или технички неизводиво, или економски неисплативо - нпр. код претраживача веба); често се уместо тога користи структура индекса, делимично кеширање, или посебна репрезентација докумената. • модул за индексирање: срце традиционалних система ПИ, представља у суштини методе организације података за потребе система ПИ (бира се према домену претраге и врсте конкретног система ПИ), због чега има важну улогу и у прикупљању докумената у репозиторијум, поред упитивања и претраге; овај модул креира индексе најчешће као инверзне структуре података из докумената у репозиторијуму (биће појашњено даље у тексту), и враћа по захтеву документе за задате кључне речи које касније користи модул за упитивање; • модел за упитивање: добија упит од корисника, обрађује га и употребом индекса и одговарајуће методе генерише 15
  • 26. резултат (hit list) који прослеђује модулу рангирања; ако постоји посебан кориснички интерфејс или језик упитивања потребно је трансформисати улаз у облик који је потребан изабраној методи (на пример, могућа је додатна трансформација упита или екстензија упита над језичким ресурсима пре даље обраде) • модул за рангирање: добијени резултат сортира у опадајућем редоследу према дефинисаној релевантности његових ставки (према мери сличности документа са упитом у односу на изабрани модел и критеријуме), и прослеђује то кориснику; • шетач (crawler): специфично за веб претраживаче, засебан модул (који може да се извршава конкурентно и независно на више сервера) који сакупља странице (документе) аутоматски и прослеђује их у репозиторијум (на индексирање); • интерфејс: интерфејс је модул који комуницира са веб клијентом корисника, и код класичних система ПИ нема посебну улогу или га уопште нема - прототип у овом раду га користи на посебан начин; код веб мета-претраживача овакав модул има посебну улогу (интерфејс као модул, описан у [16]), где преузима и улогу модула за упитивање, а врши прослеђивање упита уз додатни обраду (нпр. стемовање) другим веб претраживачима (нпр. Google, Altavista, Yahoo), и на крају координира добијене резултате са својим репозиторијумом. Поред овакве архитектуре система ПИ који се тичу пре свега веб мреже на интернету, могу бити занимљиви системи засновани на P2P (peer-to-peer) мрежама и интелигентним агентима који могу играти различите улоге. Одабрана хардверска платформа је лаптоп или кућни рачунар (довољно само за основне тестове и развој). Развојни алати и софтверска платформа су: • Java SDK (1.5+, OpenJDK 1.6) развојна платформа, и Mercurial (hg) / Sourceforge.net као решење за управљање променама 16
  • 27. • Eclipse 3.4.2 (развојно окружење заједно са претходним и Weka 3.5.7 алатом чија се имплементација класификатора користи, али који нуди и многе друге могућности), • Apache Tomcat 5.5.х као апликациони сервер, • Oracle 10g XE као база података (sqlplus, APEX, додатно и SQL*Developer), • и неке додатне библиотеке и алати (нпр. jchardet као полазна детекција текстуелног садржаја). Део поступка евалуације чини издвајање великог броја докумената из одабраних извора на интернету уз праћење основних перформанси (проценат заузећа индекса у односу на податке, одзив и прецизност у односу на симулиране сценарије). Тај поступак и рачунање резултата су реализовани употребом шетача и додатних скриптова у бази. 1.4 Основе имплементације и архитектуре прототипа Основни концепти окружења у коме је реализован прототип као систем ПИ јесу мултиграми као репрезентација докумената и сарадничко претраживање реализовано модификованом МНС. Поред тога, мултиграми представљају и основну структуру индексирања докумената. У односу на претходно поменути канонски прототип, у овом раду прототип: • користи интерфејс и као слој између корисниковог клијента и остатка система ПИ, али је у њему имплементиран и добар део функционалности модула за упитивање и рангирање; разлози за овакав избор су: мањи саобраћај са остатком система (потребна поља се читају из базе података, а онда се формира списак резултата), остављање могућности лакше имплементације мета-претраживања, и боља изолација од дела система који се мање мења - различити модели рангирања се тако лакше и флексибилније примењују; • не користи репозиторијум у том смислу (кешира се само почетак тела HTML документа ради приказа кориснику у резултату); • не користи уобичајену структуру индекса, већ користи базу података са њеним садржајем и механизмима индексирања; релациони модел на коме је заснована њена физичка 17
  • 28. структура произилази из раније поменутог концептуалног модела корисник-О-А-В, као и из захтева које намећу функционалности интерфејса (нпр. подаци о корисницима и њиховим правима приступа) и остатка система; • модул за индексирање је делом обједињен са шетачем. Техничка архитектура система се састоји из 4 слоја (детаљнији преглед је дат у 3.3): • база података (физичко складиште репозиторијума докумената) • сервер (основна компонента система) • JSP интерфејс (компоненте система између корисника и сервера) • веб клијент (кориснички интерфејс, internet browser) 18
  • 29. 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
  • 30. и само оптерећују ресурсе за њихово складиштење и обраду; зато је пожељно такве речи једноставно прескочити како током индексирања репозиторијума, тако и приликом самог претраживања. Речници (речи и синонима) имају такође важну улогу: велики број речи које имају слично значење не помажу у претрази и нарушавају перформансе система, а то је уједно и начин да се ефикасно елиминишу погрешно унети речи. Често се користе и речници 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
  • 31. рачунску лингвистику, Stuttgart универзитет у Немачкој; програм је настао у периоду од 1994-1996. године, • RBT⧫⧫⧫ (Rule Based Tagger) чији је аутор Ерик Брил, један од пионира учења трансформацијама (Transformation-Based Learning), настао у периоду од 1992-1994. године. 2.1.5 Индекси Индексирање је основни поступак класичног ПИ којим се граде структуре података које обезбеђују ефикасно претраживање информација. Основни тип такве структуре података је инверзна датотетка или инверзни индекс. Индекс се може посматрати као табела која има две колоне: кључна реч претраге и листа за додавање (posting list) која представља списак докумената који садрже наведену кључну реч (обично погодно кодиране): Реч Документи t1 D11 ,...,D1m1 ... ... ti Di1 ,...,Dim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
  • 32. одговарајућих етикета. Ови индекси могу имати улогу и код претраживања ниски речи где се води рачуна о редоследу, али већ за 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
  • 33. 2.1.6 Мере ефикасности и перформанси Релеватнтност информације заузима као појам посебан значај не само код ПИ већ и у информационој теорији уопште – још од Шенонове информационе теорије ([61]) где се у комуникацији издваја релевантна информација (у односу на било коју). Корисник може имати и субјективну оцену значаја и сврхе информације коју тражи. Перформансе система ПИ нумерички изражавају његову успешност према врсти оцене, које могу бити у следећим категоријама: • релевантност: прецизност, одзив и подбачај (precision, recall, fallout) • ефикасност: цена претраживања (у смислу ресурса), време трајања претраживања (цена у смислу времена) • корисност: економска цена претраживања • задовољство корисника: прецизност из корисничког аспекта, задовољство добијеним рангираним садржајем Релевантност се дефинише уопштено кроз: • прецизност P: број враћених релевантних докумената  у односу на укупан број ≠0 враћених у резултату • одзив R: број враћених релевантних докумената  у односу на укупан број релевантних докумената ≠0 у скупу свих докумената који се претражују • подбачај F: број враћених ирелевантних докумената − у односу на укупан број ирелевантних докумената у скупу свих докумената који се претражују Ове вредности се могу добијати мерењем емпиријски према резултатима добијеним реалном употребом система, а могу се добити и синтетичким тестовима. У првом случају је тешко формално потврдити резултате осим кроз уобичајене статистичке методе (статистичка значајност тестова), док у другом случају се прави интерпретација субјективног корисничког понашања која никада не мора одговарати стварном стању. Једноставно, ове вредности нису апсолутно тачне, али ипак представљају поуздану оцену перформанси система. Ово веома личи на перформансе програма машинског учења и проблеме који се у неким случајевима ту јављају, на пример: програм који етикетира текст може да се различито понаша с речима које су непознате (нису задате корпусом обучавања) или познате – обично се посматра прецизност тачно етиктетираних речи у односу на укупан број речи улазног текста (што одговара прецизности), док број непознатих речи има 23
  • 34. смисла једино упоређивати са укупним бројем непознатих речи у датом тексту. Ту се може показати да језички модел има посебан значај код таквих програма (програми се понашају различито са различитим језицима). Поред ових постоје и неке алтернативне мере, нпр. комбиновањем различитих мера (van Rijsbergen): 1− P R PR или F-мера:  2 1P R  2 RP (за β=1, P и R су једнако значајни) или додатним мерењем броја враћених релевантних докумената R  пре појављивања ирелевантног документа по упиту, као и мерењем броја враћених ирелевантних докумената I− пре појављивања релевантног по упиту, предлаже се мера (Bollmann- Sdorra, Raghvan, 1993): Rnorm= 1 2 1R  −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
  • 35. Oвај однос величина се може приказати Веновим дијаграмом који се налази на слици 2: Слика 2 – односи бројева докумената Остале величине које могу бити корисне: • P+R • P+R-1 • P−F PF−2 PF , 0≤F≤1 • 1− 1 1 21 P− 1 21 R  • F-мера: 2 R P RP • Хајнеова (Heine) мера: 1− 1 1 P  1 R −1 • Викеријева (Vickery) мера: 1− 1 2 1 P 2 1 R −3 • Meadow: 1− 1−P 2 1−R 2 2 • Нормализован одзив (Salton, Lesk, 1968)  Ri i-ти одзив у резултату, hit): Rnorm= 1 M− ∑i=1 M Ri− 1 2M− 25 М Δ κ α
  • 36. 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: За сваки документ Dj у скупу D дефинише се одговарајући скуп речи♦ Dj * ={ti∈T ∣ ti се јавља у Dj } (носач) тако да му реч припада акко се јавља у нисци речи датог документа. За скуп D* ={D1,. * .. , Dm * }⊆PT  оваквих скупова речи који одговарају ♦ или врећа речи, где вишеструкост речи у врећи одговара њеној фреквенцији у документу 26
  • 37. датом скупу докумената, дефинише се упит као исказ q у КНФ (коњунктивној нормалној форми) где je j произвољни литерал за реч t j , Sj скуп враћених докумената који одговарају литералу j , L језик КНФ исказног рачуна: q = ∧k ∨j θjk  ∈ L{tj ∣ 1≤ j≤J }, θ jk∈{t j ,¬tj }. Тада се резултат R упита дефинише рекурзивно (слично као и вредност исказа), за литерал q=θ j: • ако је θj=t j онда је Rq = Sj = {d∈D ∣ tj∈d} • ако је θj=¬t j онда је Rq = Sj = {d∈D ∣ tj∉d} и на основу тога је Rq = ∩k ∪j RSjk , S jk=Rjk. (ово је уједно и алгоритам рачунања резултата претраге) Прототип користи упите само у облику простих коњункција (клаузе без негативних литерала). Механизам реализације БМ ПИ је нешто што се подразумева у већини данашњих веб претраживача, као и код класичних система за управљање релационим базама података. Латица Булових упита као алгебарска структура (што се детаљније разматра у [16]) има и ту предност да нуди могућност бржег извршавања упита уз одговарајућу структуру и организацију. Терм-документ (TD, реч-документ) матрица Wn×m=wij i=1,n , j=1,m (матрица близине речи и докумената, adjacency matrix) је један од основних алата ПИ: колоне су документи, врсте речи, а елементи матрице су коефицијенти близине матрице и документа. У примеру на слици 3 је дата матрица која одговара БМ ПИ, где wij=1 значи да ti∈Dj * , односно wij=0 значи да ti∉Dj * . Тако се из TD матрице може добити Dj * ={ti∈T ∣ wij=1}, и обратно. Постоје различите шеме доделе вредности коефицијентима wij и њиховог нормирања (wеighting schemes) које су посебно важне код векторског модела (чест пример је шема wij=f ij⋅idf i ). TD D1 D2 D3 D4 t1 1 1 0 0 t2 1 0 1 0 t3 0 1 0 1 t4 0 0 1 1 Слика 3 – пример TD матрице докумената и речи (преузето из [16]) 27