Suopuhe-projekti Asennus Sääntötiedostot Funktiolista

NSW-laventimen käyttöohje

Lavennin tyypillisesti lukee saamaansa kantasyötettä (standard input). Peruskäyttöön riittää pelkkä

$ lavennin < syötetiedosto

Windows-käyttjieen täytyy eksplisiittisesti kertoa mitä komentotulkkia käytetään. Dos-tilassa käsky olisi käsittäkseni muotoa:

perl lavennin syötetiedosto

Tässä tietenkin oletaan, että Perl-komentotulkki on asennettuna ja että se löytyy polusta. Windows-tukea testattiin viimeksi joskus vuosi sitten, joten siltä suunnalta saattaa löytyä bugeja...

Käyttö Suopuheen syntitisaattorin kanssa suopuhe-moodissa:

lavennin --output=xml < foo.txt > bar.suo
festival --tts bar.suo

Syntetisaattori tunnistaa tiedostopäätteet suo ja suopuhe ja osaa näin ollen valita oikean moodin puheelle. Lisäksi tämä vaatii toimiakseen ainakin suomenkielisen äänen.

Käytössä on lisäksi joukko valitsimia:

--debug
Asettaa debuggaus-moodin päälle. Tulostaa enemmän kuin runsaasti tietoja ohjelman ajon etenemistä STDERRiin. Turha peruskäyttäjälle ja hidastaa ohjelmaa julmetusti.
--dialect=murre
Muuttaa tekstin halutun murteen mukaiseen kirjoitusasuun. Hömppä kevennys, jonka tuki ontuu toistaiseksi pahasti. Laillisia murteita ovat tällä hetkellä savo ja turku. Tuntemattoman murrenimen yhteydessä käytetään kirjakieltä. Tuki puutteellinen, älä käytä!
--force
Vanhentunut optio. Nykyään oletusarvoisesti päällä. Kumotaan --safe-optiolla.
--language=language
Kielen nimi ISO 839-2/T -standardin mukaisesti. http://lcweb.loc.gov/standards/iso639-2/englangn_ascii.html Oletusarvoisesti fin. Vähemmän yllättäen muiden kielten tukea ei ole implementoitu.
--mode=(line|run)
Vastaanotettavan syötteen tyyppi. Kertoo tokenisoijalle onko syöte lause/rivi-muotoista (line) vaiko tuleeko lauserajoja etsiä juoksevasta tekstistä myös rivin keskeltä (run). Oletusarvona on run.
--output=(plain-text|sapi4|xml)
Määrittää millaisessa muodossa ohjelma palauttaa tulosteensa. Oletusarvoisesti ohjelma palauttaa raakatekstiä (plain-text). sapi4-tilassa mukana voi olla Microsoftin sapin nelosversion mukaisia tageja. (suopuhe-syntetisaattori ei näitä tue, ja ainakin Mikropuheen SAPI-tuki ei ole täydellinen.) Lisäksi ainakaan minä en ole kirjoittanut kuin muutamat sapi4-specifin lavennussäännön. Moodi xml tarkoittaa projektin omaa suopuhe-moodia, joka on eräänlainen TTS -merkintäkieli.
--safe
Oletusarvoisesti lavennin yrittää pakottaa kaikki numerot ja lyhenteinä pitämänsä sanat edes joten kuten luottavaan muotoon. (Entinen --force optio.) --safe option avulla lavennetaan vain ne saneet, joihin jokin lavennussääntö osuu, eli jotka olisivat näin, ainakin teoriassa, turvallisesti lavennettavissa oikein. Option käyttäminen voi jättää tekstiin asioita, jotka saavat Festivalin suopuhe-moodin polvilleen, joten en suosittele sen käyttöä.
--tagger=(none|fdg|twol)
Kertoo ohjelmalle, mitä kolmannen osapuolen lingvististä työkalua sen tulee hyödyntää lavennuksen yhteydessä. Oletusarvoisesti ei käyetä mitään (none), jolloin käytetään vain ohjelman itsensa generoimia sanalistoja. Vaihtoehdot ovat 'fdg' (silloisen Conexorin FDG-jäsennin, nykyisin kai Connexorin Machinese Syntax olis vastaava tuote). ja 'twol' (Lingsoftin FINTWOL, morfologinen analyysiohjelma, esihistoriallinen versio vuodelta 1992). FDG-jäsentimestä on käytetty versioita 2.0 ja 3.7 (jälkimmäinen --text-optiolla).
--verbose
Tulostaa erinäisiä "väliaikatietoja", kuten tehdyt lavennukset STDERR:iin. Hidastaa lavennusta huomattavasti
.

Laventimen toiminnan kuvaus

Ohjelman toimintamalli on seuraava:

  1. Syöte talletetaan välitiedostoon tmp/input.txt
  2. Tämän jälkeen syöte "tokenisoidaan", käytännössä pisteet ja välimerkit erotataan sanoista, sanat laitetaan kukin omilla rivilleen. plain-text- ja twol-moodeissa preprosessointi on kaksivaiheinen. fdg-moodissa käytetään vain ensimmäistä vaihetta, jonka jälkeen teksti muutetaan lause-per-rivi -muotoon sillä FDG-jäsennin sisältää oman preprosessorinsa.

    Käytetyt tilapäistiedostot:
    plain-text: plain-a, plain-aa
    twol: tmp/twol-b, tmp/twol-c
    fdg: tmp/fdg-a, tmp/fdg-b


  3. Seuraavaksi ohjelma menee lingvistiselle analyysiohjelmalle, jos sellainen on asetettu käytettäväksi. FDG-jäsennin tulostus on text-moodissa, ei xml-formaatissa. Lisäksi Twolissa suoritetaan kirjainkoon palautus. FDG-jäsennyksen jälkeen tehdään sen syötteen jälkiprosessointia, jossa muutettaan syntaktiset viittaussuhteet absoluuttisista suhteelisiksi

    Käytetyt tilapäistiedostot:
    plain-text: -
    twol: tmp/twol-d, tmp/twol-f
    fdg: tmp/fdg-c, tmp/fdg-d


  4. Lopuksi saadut tiedot jaetaan omiin lokeroihinsa. Eli pintamuoto, perusmuoto, morf. analyysi(t) ja pintasyntaktinen analyysi talletetaan kukin omaan lokeroonsa. Tekstimuodossa täytetään (tässä kohtaa) vain pintamuotolokero, Twol-pohjaisesta puuttuu luonnollisesti syntaktinen tieto. Muista ohjelman aina hyödyllisistä "lokeroista" lisää tietoa myöhemmin.

  5. Ohjelma yrittää laventaa tekstiä säännöstönsä avulla. Säännöstön laventamatta jättämät, lukukelvottomat saneet pakkolavennetaan luettavaan muotoon, jos --safe optio ei ole päällö. kannattaa tutustua sääntöjen teko-ohjeeseen, varsinkin kun ohjelman kehitystyö on päättynyt.

Lavennin uskoo aina saavansa oikeaa tietoa ulkoisilta lingvistisiltä apuohjelmilta, eli niiden tekemät virheanalyysit vaikuttavat luonnollisesti myös laventimen tekemiin analyyseihin. Pääsääntöisesti apuohjelmien käyttö kuitenkin parantaa lavennuksen laatua. Twol-ohjelmalta saatua syötettä disambiguoidaan hieman, eli heitetään pois analyysejä, jotka tiedetään vääriksi: "noin" ei ole käytäänössä koskaan noki-sanan instruktiivi jne.

Bugit

Niitä varmasti löytyy sekä koodista että säännöistä. Siitä vaan korjaamaan, ohjelmahan oli jaossa LGPL-lisenssin alla.

To do

Alla on listattuna joukko asioita, jotka voisivat olla paremmin