Poudarek prejšnjega poglavja je bil na standardih za opis jezikovnih podatkov. Seveda pa je programska oprema tista, ki nam omogoči nek korpus narediti oziroma izkoriščati. Ta proces lahko razdelimo na štiri dele, od katerih sta prva dva usmerejena v urejanje in eksplicitiranje jezikovne informacije, druga dva pa v njeno izkoriščanje. Tak pristop premakne težišče dela v izdelavo korpusa, s čimer olajša njegovo uporabo.
V izdelavi standardiziranega korpusa je (1) dobljena besedila najprej potrebno urediti in strukturno označiti, s čimer dobimo ekvivalent CES-2 oz. CES-3 korpusa. Korpus lahko (2) s pomočjo označevalcev še dodatno označimo z jezikovnimi podatki. Ta dva koraka zahtevata precejšen vložek človeškega dela, saj je podatke tu potrebno ročno vnašati ali pa vsaj preverjati. Vendar pa tako pridobimo dokumentiran in standardiziran jezikovni vir, ki je izmenljiv in ga lahko s široko dostopnimi orodji uporabljamo v raznovrstne namene.
Ker orodja za izkoriščanje korpusov dostikrat zahtevajo besedila v sebi lastnem formatu, je korpus (3) iz standardiziranega formata potrebno najprej pretvoriti v format orodja. Vendar pa je, za razliko od procesa izdelovanja korpusa, ta korak preprost in popolnoma avtomatski. Zadnji korak je seveda (4) dejanska uporaba korpusa s pomočjo ustreznih programov.
V nadaljevanju poglavja najprej obravnavamo orodja, ki imajo neposredno zvezo s SGML (1 in 3), nato (2) jezikovne označevalnike in končno (4) pregledovalnike korpusov. Bolj natančen pregled orodij, kot je podan tu, pa je opisan v [Erj96].
Pri izgradnji korpusa je potrebno dobljene tekste najprej prevesti v SGML in TEI/CES. Tekste najprej očistimo podatkov, ki so odvečni namenu korpusa, in korpus označimo s podatki, ki so na enostaven način dosegljivi iz tipografskih vzorcev v besedilih. Ta pretvorba se tipično izvede z adhoc programi, napisanih v kateremu od programskih jezikov, ki je močan v iskanju in nadomeščanju nizov. Za bolj pogoste formate zapisa besedil pa obstajajo tudi že napisani programi, ki dokument pretvorijo v osnoven zapis SGML. V tej fazi je tudi potrebno poskrbeti za glave posameznih besedil in celotnega korpusa, saj naj bi bil korpus (bibliografsko, pravno, uredniško...) označen.
Ko je korpus vsaj v minimalnem zapisu SGML, je nad njim že mogoče uporabljati orodja SGML. Programsko opremo, ki se 'zaveda' standarda SGML, je mogoče kupiti, kar nekaj takšnih programov ali pa knjižnic pa je tudi prosto dostopnih. Osnovno orodje je razčlenjevalnik SGML, ki preveri, ali je nek dokument v skladu s svojo definicijo tipa in definira vsak element glede na njegovo mesto v tej definiciji. Drugi programi omogočajo enostaven vnos dokumetov, iskanje podatkov v dokumentih ali pa pretvorbo iz zapisa SGML v ciljni zapis, npr. za tiskanje ali prezentacijo na WWW, ali pa v format, ki ga pozna naše orodje za pregledovanje korpusov.
Ker TEI zapis vsebuje več eksplicitne informacije kot pa originalni zapis, je pretvorbo v TEI zapis potrebno vložiti sorazmerno dosti dela: četudi so na voljo programi, ki bi konverzijo avtomatično opravljali, ti niso nezmotljivi, poleg tega pa prevod v rigorozni zapis SGML pogosto razkrije napake in nekonsistence v originalnih besedilih -- takšne napake lahko bodisi popravimo, bodisi jih označnimo kot napake.
Dodatno jezikovno označevanje se sicer tudi lahko že dogaja v SGML, vendar je poudarek tu že na jezikovnem znanju teh orodij, zato so obravnavana v naslednjem razdelku.
Že za avtomatsko označevanje osnovnih jezikovnih informacij, npr. datumov ali pa stavkov, je potrebno nekaj znanja o jeziku; standardna oblika zapisa datumov se razlikuje od jezika do jezika, lahko pa je datum, ki ga hočemo kot takega označiti, napisan tudi z besedami, ali pa samo delno. Za takšna označevanja se tipično uporablja adhoc programje, čeprav so počasi že na voljo orodja, ki ta proces vsaj do določene mere parametrizirajo glede na jezik korpusa.
Kaj točno hočemo v besedilu označiti je seveda odvisno od namembnosti korpusa. Tu bomo omenili dva programa, ki sta še posebej zanimiva za jezikoslovne in slovaropisne obravnave. Prvi oblikoslovno označi besede v besedilu, drugi pa stavčno poravna vzporedni korpus, oba pa spadata v razred programov, ki izkoriščajo statistične lastnosti jezika. Kot je bilo že omenjeno, so takšni programi v zadnjem času predmet velikega zanimanja [Cha94], saj so robustni in se lahko učijo iz ročno označenimi besedili.
Za oblikoslovno označevanje besed v korpusu je potrebno najprej imeti slovar ali pa program, ki za besedne oblike določi njihove možne oblikoslovne označbe. Vendar pa ima neka besedna oblika ponavadi več možnih interpretacij: tako je npr. berači lahko glagol v velelniku ali povedniku, ali samostalnik v imenovalniku ali orodniku. V konkretnem besedilu pa bo besedna oblika imela seveda samo eno pravilno označbo. Naloga programov za oblikoslovno označevanje je, izmed možnih oblikoslovnih označb neke besede glede na sobesedilo določiti njeno pravo označbo.
Izdelanih je bilo že več označevalnikov, ki se lahko naučijo zakonitosti nekega jezika iz ročno označenih korpusov. Najbolj odmeven je bil verjetno t. i. označevalnik Xerox [CKPS92], ki z uporabo t. i. skritih markovskih verig določi najbolj verjetno zaporedje oblikoslovnih označb besed v nekem stavku. Program ne izvaja skladenjske analize, pač pa izkorišča lokalni kontekst besede za določitev njene oznake. Za angleški jezik doseže ta in njemu podobni označevalci približno 95 % natančnost. Za slovanske jezike je, kot kažejo preliminarni rezultati za češki jezik [HH96], ta natančnost verjetno manjša, in sicer približno 82 %.
Povsem drug način označevanja pride v poštev pri vzporednih korpusih. Tu je koristno določiti kateri del originalnega besedila ustreza kateremu delu prevoda. Takšna paralelizacija je lahko bolj ali manj natanča: določimo lahko npr. samo povezave po poglavjih ali pa vse do povezav konkretnih besed v besedilu z njihovimi prevodi. Tudi tu je mogoče s statističnimi metodami doseči zadovoljive rezultate. Eden bolj zanimivih takšnih programov je opisan v [GC93]. Njegova odlika je predvsem enostavnost, saj samo iz števila znakov sklepa na najbolj verjetno povezavo med stavki originala in stavki prevoda. Tako z enostavnim orodjem dosežemo že precej koristen nivo paralelizacije.
Vsem programom za jezikovno označevanje je skupno, da je njihova točnost manj kot popolna. Za kvaliteten korpus je zato koristno, da so dobljene oznake še ročno pregledane. Vendar pa to za velike korpuse postaja skorajda nemogoče, po drugi strani pa tudi ljudje ne označujejo popolnoma točno. Poleg enostavnih napak je problem tudi v tem, da vsako označevanje predstavlja interpretacijo besedila, ta pa se lahko od človeka do človeka razlikuje.
Nad označenim korpusom lahko uporabimo raznovrstne programe, od katerih so najbolj zanimivi pregledovalniki. Ti morajo biti sposobni poiskati željene dele korpusa in informacijo ustrezno predstaviti. Najbolj znana oblika predstavitve informacij iz korpusa so konkordance predvsem v t. i. obliki KWIC ('key-word in context'). Tu so pojavitve izbrane besede ali sobesedja v korpusu poravnano izpisane skupaj s svojim sobesedilom.
Slika 2: Primer KWIC izpisa konkordanc
Kot primer konkordanc je v sliki 2 podano nekaj pojavitev besede mulatjera; korpus, iz katerega je bila ta konkordanca narejena je računalniška konferenca GORE iz omrežja SLON. Kot zanimivost še povejmo, da te besede ne najdemo niti v Verbinčevem Slovarju tujk, niti v Slovarju slovenskega knjižnega jezika.
Bolj kot iskanje posameznih besed je zanimivo iskanje sobesedij. Te t. i. kolokacije, namreč lahko razkrijejo vezave besed, tako s skladenjskega kot s pomenskega stališča. Način pregledovanja je podoben kot pri KWIC, obstajajo pa tudi programi, ki avtomatsko izberejo sobesedaj, ki so statistično in zato verjetno tudi jezikovno signifikantne. Možnost iskanja kolokacij je toliko bolj zanimiva za označene korpuse, saj tu lahko iščemo ne samo sopojavitve besed, temveč tudi bolj abstraknih kategorij.
Končno je tu še paralelno prikazovanje vzporednih korpusov. Prikaz je tipično v dveh poravnanih (KWIC-) oknih, iskalni jezik orodij, ki takšne korpuse podpirajo, pa razširjen tako, da se lahko kriteriji za iskanje nanašajo na več vzporednih besedil. Natančneje ko so korpusi povezani, bolj podrobno je lahko takšno iskanje. Zanimivo je, da so vzporedni korpusi primerni tudi za enojezikovne raziskave. Tako npr. iskanje vseh pojavitev neke besede, katere prevod se ne pojavi v prevodu stavka, v katerem se beseda nahaja, hitro pokaže na idiomatske uprabe te besede.
Programe za prikazovanje korpusov je možno kupiti, nekateri so pa tudi prosto dostopni. Vendar je zagotovitev ustreznega pregledovalnika še vedno problematična, saj vsi ne tečejo na vseh računalniških platformah, imajo nepopolno funkcionalnost, ali pa ne delujejo pravilno za slovenski jezik. Glede na veliko razširjenost TEI za zapis korpusov, se v zadnjem časo posebno pozornost posveča pregledovalnikom, ki delujejo nad označenimi korpusi SGML. Takšni pregledovalniki imajo prednost, da lahko izkoristijo vse oznake (npr. bibliografske) in da so v precej večji meri jezikovno neodvisni.