SFST
A Programozás Wiki wikiből
Sfst a Stuttgart finite state transducer (véges állapotú átalakító), transzduktor angol kifejezésből képzett rövidített név. Egy véges állapotú transzduktor egy nyelv szavait képezi le, például a ragozott szavakat alapszóra (analízis) és fordítva, azaz alapszó+ragok -> ragozott szó (szintézis).
Az SFST-PL morfológiai programozási nyelv. Segítségével emberi nyelvekre lehet morfológiai elemzőket írni, melyeket aztán sokféle célra például
- Helyesírásellenőrzés
- Helyesírás-helyesbítő-eszköz
- Fordítás
- Szövegelemzés
- Lemmatizáló (szógyök találás szótározáshoz)
- Szófajelemző (POS tagger)
- Ige és főnévragozó
- Nyelvfelismerés és elemzés
- Beszédfelismerés
- Kiejtés-modellezés
- Elektronikus szótárak segédeszköze
és sok más célra lehet fölhasználni.
Az SFST alapvetően reguláris kifejezések analizátora, hasonlóan a perl vagy awk programozási nyelvekhez, azonban azoktól eltérően emberi nyelvek analízisére szakosodott nyelv. Minden SFST program egy vagy több úgynevezett transzduktort állít elő.
Tartalomjegyzék |
[szerkesztés] Használatának előnye és hátránya
Előnye a dedikált programokkal szemben, hogy a szabályok megírása és tesztelés után az eszköz automatikusan elvégzi az analízist és a szintézist is. Dedikált program esetén mind az analizátort, mind a szintetizátort meg kell írni és tesztelni kell. A hátrány abban van, hogy meg kell tanulni a(z egyszerű) nyelvet és a hibakeresést, annak furcsaságaival és váratlan reakcióival egyetemben.
[szerkesztés] Tipp
SFST használható szószedet nélkül is. Példa inflekció implementálásra szószedettel:
- $noun-stems$ = "noun.lex"
- $noun-inflection$ = ...
- $inflected-nouns$ = $noun-stems$ $noun-inflection$
Ez viszont szószedet nélkül működik; nagybetűvel kezdődő szavakat ragoz:
- $noun-inflection$ = ...
- $inflected-nouns$ = [A-Z][a-z]* $noun-inflection$
Például lehet két verziót kompilálni, egyet szószedettel, egyet anélkül. Ha nem megy a szószedetes, a szószedet nélkülit is meg lehet próbálni.
Az fst-infl2 "-t" opciójával lehet különféle transzduktorokat kombinálni.
Példa használatára: Német utcanevek analízise, melyek gyakran "...gasse" vagy "...straße"-ra végződnek.
[szerkesztés] Fordítás és memóriafelhasználás
A fordítási idő lerövidítésére érdemes a fonetikát kezelő fájlokat külön fordítani. Ehhez:
- A Makefile-ban meg kell adni, hogy az eredmény egy .a fájltól függ, pl.: tobbrag.a: tobbrag.fst ninfl1.fst phon1.a phon2.a
- a phon fájlok bekötése így történik:
- $morph42$ = "noun-reg42.lex" <Noun42>$CASEP$ || "<phon42.a>"
- $morph43$ = "noun-reg43.lex" <Noun43>$CASEP$ || "<phon43.a>"
- $morph$ = $morph41$ | $morph43$
- ahol *.lex a szótárfájlok, $CASEP$ a ragozási transzduktor.
- A phon fájlokban a végső transzduktor előállítását bontsuk le több lépésre:
Minden szabályhoz tartozik egy ALPHABET =, amely a beillesztendő értékeket adja meg
- ALPHABET = ... <Nev1>:[ae<>] <Nev2> <Nev3>
- $reg1$ = (feltétel1) <Nev1> <=> a
- $reg2$ = (feltétel2) <Nev1> <=> e
- $reg10$ = $reg1$ & $reg2$
- ALPHABET = ... <Nev1> <Nev2>:[oö<>] <Nev3>
- $reg3$ = (feltétel3) <Nev2> <=> o
- $reg4$ = (feltétel4) <Nev2> <=> ö
- $reg11$ = $reg3$ & $reg4$
- Majd ehelyett:
- $phon4$ = $reg10$ || ||$reg11$ || $duplicate1$ || $duplicate2$ || $a-to-aa$ || $e-to-ee$ || $delete-POS$
- Így:
- $phon4$ = $reg10$
- $phon4$ = $phon4$ || $reg11$
- $phon4$ = $phon4$ || $duplicate1$
- $phon4$ = $phon4$ || $duplicate1$
- $phon4$ = $phon4$ || $duplicate2$
- $phon4$ = $phon4$ || $a-to-aa$
- $phon4$ = $phon4$ || $e-to-ee$
- $phon4$ = $phon4$ || $delete-POS$
- $phon4$
Mindez korlátozza a memóriafelhasználást és függetleníti az egyes fonetika modulokat egymástól, és ezzel megkönnyíti a tesztelést.
[szerkesztés] Hivatkozás
- Sfst-pl kézikönyv
- Aclweb (OpenFST)
- Foma dokumentáció
- Apertium wiki
- FSM tutorial
- Xerox eszközök kipróbálása a weben
[szerkesztés] Hasonló és rokon termékek
- Open Fst- transzduktor generáló könyvtár
- Foma- transzduktor könyvtár és eszköz
- Hfst- frontend OpenFST, Foma vagy SFST backendhez
- Hfst használat előfeltételeinek leírása
- Stanford egyetem xfst-ről szóló könyv és szoftver
- Xfst könyv pdf formátumban