MORFOLOOGILINE ÜHESTAJA (beetaversioon)

OÜ Filosoft 23.11.98

1. Morfoloogilise ühestaja programmipakett koosneb järgmistest failidest:

mrf2yh.exe Filosofti morf. analüsaatori väljundi teisendamiseks ühestajale sobivale kujule

tahmm.exe morfoloogiline ühestaja

hmm.cl, hmm.tg, hmm.pb ühestaja poolt kasutatavad tabelid.

Lisaks eelmistele võib mrf2yh.exe kasutamisel vaja minna kooditabelite teisenduste faile, mis olid ka Filosofti morf. analüsaatori koosseisus:

baltic.cnv täpitähtede teisendusfail balti kooditabelist Win 1257 Filosofti sisemisele kujule

html.cnv täpitähtede teisendusfail html-kujult Filosofti sisemisele kujule

baltic-h.cnv täpitähtede teisendusfail balti kooditabelist Win 1257 Filosofti sisemisele kujule; nn. hanejalad-jutumärgid « ja » teisendatakse Filosofti sisemisele kujule

baltic-k.cnv täpitähtede teisendusfail balti kooditabelist Win 1257 Filosofti sisemisele kujule; nn. koma-jutumärgid " ja " teisendatakse Filosofti sisemisele kujule

Samuti läheb vaja morf. analüsaatorit ESTMORF.EXE ja programmi ELA.EXE sisendtekstis lausete eristamiseks.

2. Installeerimine

Installeerimine seisneb selles, et kopeerida morfoloogilise ühestaja paketi koosseisus olevad failid kasutajale meelepärasesse kataloogi.

Seejuures tuleks silmas pidada, et:

  1. Vaikimisi eeldavad nii MRF2YH.EXE kui TAHMM.EXE, et kõik nende tööks vajalikud failid on samas kataloogis kus programm ise.
  2. Kui failid on mingis muus kataloogis, siis tuleb nende nimi või asukoht (rada) käsurealt ette anda
  3. TAHMM.EXE tabelid (vaikimisi hmm.cl, hmm.tg ja hmm.pb) peavad olema koos ühes kataloogis, mitte mitmes laiali

NB! MRF2YH.EXE tahab tingimata kasutada teisendustabelit (vaikimisi baltic.cnv samas kataloogis kus MRF2YH.EXE isegi), seega tuleb kas baltic.cnv temaga samasse kataloogi kopeerida või anda teisendustabeli nimi käsurealt.

3. Morfoloogilise ühestaja kasutamine

Morfoloogiline ühestaja on programm, mis morfoloogilise analüsaatori väljundist valib iga sõna analüüsidest just selle, mis antud konkreetses kontekstis on õige.

Juhendi, kuidas vastavat programmi kasutada, saab käsurealt lipu –h abil:

C:\>tahmm -h

syntaks:

tahmm [-h] [-v] [-d=DCT] [-e=EXT] [-y] file...

-h Spikker

-v Versiooninumber ekraanile

-d=DCT Yhestaja tabelite asukoht ja nimi (ilma laiendita!)
(vaikimisi 'hmm' samast kataloogist, kus on 'tahmm.exe')

-e=EXT V@ljundfaili laiend (ilma punktita, vaikimisi '1st')

-y V@ljundist j@@vad yhestaja m@rgendeid

c:\>mrf2yh -h

MRF2YH teisendab MORFi va'ljundi u'hestaja sisendiks

Su'ntaks:

mrf2yh -e.EXT -c=CNV FAILINIMI, FAILINIMI, ...

kus:

EXT on va'ljundfaili laiend (peab algama punktiga, vaikimisi '.yh')
CNV on ta'pita'htede teisendustabel; vaikimisi baltic.cnv

3.1 Morfoloogilise ühestaja sisend

Kuna ühestaja vajab oma tööks nii sõnade morfoloogilisi analüüse kui sõnade konteksti, siis tuleb juba enne morfoloogilist analüüsi teha vastavad ettevalmistused, et hiljem saaks morfoloogilise analüüsi tulemust ühestada. Ühestaja analüüsib teksti lausekaupa. Samuti kasutab ta oma töös kirjavahemärke (KVM)

,.;:?!"()... (koma, punkt, semikoolon, koolon, küsimärk, hüüumärk, kahekordsed jutumärgid mistahes kujul – jutumärkide kohta vt. allpool, ümarsulud ja kolmikpunkt), mis on lause struktuuri seisukohalt olulised sümbolid. Ühestajal on vaja, et KVM-hulka kuuluvad kirjavahemärgid oleksid sõnast eraldatud (v.a. lühendi koosseisus olevad kirjavahemärgid) ning et lause alguses oleks eraldi "sõnana" $LA$ ja lause lõpus $LL$ (nn. LAL-formaat)

Nt. lause

"Kuriteopaigal peeti kinni must mees".

Oleks LAL-formaadis alljärgneval kujul:

$LA$
"
Kuriteopaigal
peeti
kinni
must
mees
"
.
$LL$

Teisenduse tavalisest tekstiformaadist LAL-formaati teeb eraldi programm – lausestaja, mis ühestaja koosseisu ei kuulu. Seejärel tuleb saadud fail morfoloogiliselt analüüsida, kasutades programmi ESTMORF, teisendada ühestajale sobivale kujule programmi MRF2YH.EXE abil ning alles seejärel saab teda ühestada.

Tavaline käskude jada oleks järgmine (oletame, et sisendfaili nimi on PROOV.TXT):

ELA PROOV.TXT
ESTMORF –M PROOV.LAL
MRF2YH PROOV.MRF
TAHMM PROOV.YH

Lisas 1 on toodud üht lauset sisaldava faili PROOV.TXT ühestamise näide.

MRF2YH.EXE töö seisneb selles, et lisada morf. analüsaatori väljundfaili sellised märgendid, mida kasutades TAHMM oma ühestamise tööd teeb. Nende märgendite sisu on tehniline ning morf. ühestaja kasutajal pole vaja neid tunda.

3.2 Morf. ühestaja sisendsümbolid

Ühestajale TAHMM.EXE endale sobivad mistahes sisendtekstis esinevad sümbolid, kuid MRF2YH.EXE on nende suhtes valivam. Morf. analüsaatori väljundi teisendajale MRF2YH.EXE antavates failides võivad esineda samad sümbolid kui morf. analüsaatori sisendis:

1) Nn. tavalised tähed (ASCII kümnendkood 65 – 90 ja 97 – 12)

2) Täpitähed

Nii nagu morf. analüsaator, nii kasutab ka MRF2YH.EXE, mis teisendab morf. analüsaatori väljundi ühestaja sisendiks, vaikimisi teisendustabelit baltic.cnv, mis eeldab, et täpitähed on esitatud Balti kooditabeli kohaselt (Win 1257):

    ASCII 16-ndkood ASCII 10-ndkood
väike o tildega õ F5 245
väike a täppidega ä E4 228
väike o täppidega ö F6 246
väike u täppidega ü FC 252
väike s katusega š F0 240
väike z katusega ¾ FE 254
suur O tildega Õ D5 213
suur A täppidega Ä C4 196
suur O täppidega Ö D6 214
suur U täppidega Ü DC 220
suur S katusega Š D0 208
suur Z katusega ® DE 222

Teisendustabelit saab muuta või käsurealt anda mõne muu teisendustabeli nime.

3) Numbrid

4) Kirjavahemärgid

4.1) Kirjavahemärgid, mis tuleb spetsiaalselt sõnast lahku kirjutada

,;:()!?

punkt (.) lause lõpumärgina

kolmikpunkt (...)

tollimärk jutumärkide tähenduses (") (ASCII kümnendkood 34)

väike < alustava jutumärgi tähenduses (‹) (ASCII kümnendkood 139)

väike > lõpetava jutumärgi tähenduses (›) (ASCII kümnendkood 155)

4.2) Kirjavahemärgid, millega ei tule spetsiaalselt tegeleda

punkt (.) lühendi koosseisus

[]{}<>

sidekriips (miinusmärk) (-)

apostroof (') (ASCII kümnendkood 39)

kaldjoon (/)

MRF2YH.EXE kasutab vaikimisi teisendustabelit baltic.cnv, mis eeldab, et jutumärgid on esitatud tollimärkidena ("). Kui jutumärgid on nn. hanejalgadena («) ja (»), siis võiks kasutada teisendustabelit baltic-h.cnv; kui jutumärgid on nii nagu meile koolis kirjatehnika tunnis õpetati (") ja ("), siis võiks kasutada teisendustabelit baltic-k.cnv

Teisendustabelit saab ette anda käsurealt, nt:

MRF2YH -c=baltic-h.cnv sisendfail

5) Muud tekstis esinevad sümbolid

%, kraadimärk (°), paragrahvi märk (§), tärn (*), pluss (+), ampersand (&)

3.3 Väljund

TAHMM.EXE väljund on vaikimisi samasugune kui morf. analüsaatori väljund, kusjuures reeglina on igal sõnal 1 analüüsivariant. Mitu varianti jääb väljundisse juhul, kui TAHMM.EXE ei suuda morf. analüsaatori väljundeid piisavalt eristada. See juhtub siis, kui:

1) Sõnal on mitu samasugust grammatilist analüüsi, aga erinevad algvormid, nt:

lõid
loo+id //_V_ sid, //
löö+id //_V_ sid, //

2) Sõnal on mitu erinevat grammatilist analüüsi, aga TAHMM.EXE ei erista neid, nt:

mis
mis+0 //_P_ pl n, //
mis+0 //_P_ sg n, //

(TAHMM.EXE ei erista ainsust ja mitmust)

Kui kasutada käsureal lippu –y, siis jääb TAHMM.EXE väljundisse alles ka ühestajale vajalik märgend, mille sinna lisas MRF2YH.EXE.

4. Morf. ühestaja tööpõhimõte

TAHMM on lühend sõnadest "tagger, Hidden Markov Model". Tegemist on statistilise ühestajaga, mis õige morfoloogilise analüüsi valimiseks kasutab varjatud Markovi mudeli abil koostatud statistilisi tabeleid ja Viterbi algoritmi. Tabelite koostamisel kasutati vabalt levitatavat programmi ISSCO tagger, mis on koos dokumentatsiooniga aadressil http://issco-www.unige.ch/tools/. ISSCO taggerit treeniti G. Orwelli "1984" peal (75000 sõna), mis oli käsitsi ühestatud.

5. Tehnilised andmed

TAHMM.EXE on testitud DOSis Windows NT 4.0 peal.

Ühestatud resultaat annab õige morfoloogilise analüüsi umbes 93% juhtudest.

6. Teadaolevad vead

Puuduvad

LISA 1. Morfoloogilise ühestamise sammud; näide.

Sisendfail on PROOV.TXT:

Must mees peeti kuriteopaigal kinni.

Käsk

ELA PROOV.TXT

annab tulemuseks faili PROOV.LAL:

$LA$
Must
mees
peeti
kuriteopaigal
kinni
.
$LL$

Käsk

ESTMORF –M PROOV.WRD

annab tulemuseks faili PROOV.MRF:

$LA$
####
Must
must+0 //_A_ sg n, //
must+0 //_S_ sg n, //
mina+st //_P_ sg el, //
mees
mees+0 //_S_ sg n, //
mesi+s //_S_ sg in, //
peeti
peet+0 //_S_ adt, sg p, //
pida+ti //_V_ ti, //
kuriteopaigal
kuri_teo_paik+l //_S_ sg ad, //
kinni
kinni+0 //_D_ //
$LL$
####

Käsk

MRF2YH PROOV.MRF

annab tulemuseks faili PROOV.YH:

$LA$
// X ####
Must
must+0 // ASN //_A_ sg n, //
must+0 // NCSN //_S_ sg n, //
mina+st // PP1S //_P_ sg el, //
mees
mees+0 // NCSN //_S_ sg n, //
mesi+s // NCS //_S_ sg in, //
peeti
peet+0 // NCSA //_S_ adt, //
peet+0 // NCS1 //_S_ sg p, //
pida+ti // VMP //_V_ ti, //
kuriteopaigal
kuri_teo_paik+l // NCS //_S_ sg ad, //
kinni
kinni+0 // RR //_D_ //
$LL$
// X ####

Käsk

TAHMM PROOV.YH

annab tulemuseks faili PROOV.1ST:

$LA$
####
Must
must+0 //_A_ sg n, //
mees
mees+0 //_S_ sg n, //
peeti
pida+ti //_V_ ti, //
kuriteopaigal
kuri_teo_paik+l //_S_ sg ad, //
kinni
kinni+0 //_D_ //
$LL$
####