Keresés

Részletes keresés

nadamhu Creative Commons License 2005-01-22 12:04:28 40

Nagyon nagy vonalakban elmondható, hogy morfológiai elemzést -> szintaktikai elemzést -> szemantikai elemzést -> transzformálást -> szintaktikai generálást -> morfológiai generálást csinálok.

 

Persze a dolgot részleteiben nézve, egy kicsit összetettebb a kép.

Végülis elég jól le van dokumentálva a rendszer, de azt a doksit nem hoztam nyilvánosságra, mert ahhoz túl részletes.

A teljesség igénye nélkül, néhány momentum:

 

Hipotézisekkel dolgozok: Rengeteg hipotézist vizsgál végig a rendszer mind a morfológiai, mind a szintaktikai elemzés szintjén. Ezek a hipotézisek egyrészt a nyelv dokhelyütt 'ambigous' jellege miatt 'szaporodnak', más részt még hihető feltételezett helyesírási hibákkat is hipotézisként felveszek.

A nyelvtani elemzést végülis úgy kell elképzelni, mint egy iteratív ciklust, amikor hipotézisek halmazából kikövetkeztetek egy újabb hipotézist, amit berakok a halmazba. Egy hipotézisnek jellemzője, hogy a szövegnek mely pozíciótól mely pozícióig terjedő szakaszára vonatkozik. Jellemzője egy hipotézis erősség is: ez Fuzzy jellegűen számolódik nyelvtani elemzéskor. A hipotézisek egymásta hivatkozva fastruktúrát alkotnak.

A nyelvtani elemzésre saját szabálybázis formátumot találtam ki, ami viszont mivel igen speciális, (nem általános programozási nyelv) kénytelen normál C++ kódokat, mint kicsi plugineket is meghívni: (ez egy kompromisszumos megoldás: csak C++-ban írva nagyon ronda és átláthatatlan lenne a nyelvtani elemzés szabálybázisa, valami korlátozott nyelv meg nem elég flexibilis bonyolultabb esetek leírására.)

 

A hipotézisek közül egy döntési modul dönt. Egy hipotézisen belül is vannak döntési pontok, pl. hogy mi lesz egy többjelentésű szó jelentése.

A lényeg az, hogy ezek a döntések mind összefüggenek egymással: ezért az összes döntésnek elvégzése egyetlen pontján történik a programnak: Ezt nevezhetjük a megértés pillanatának is. Ez a megértő modul nem szabálybázis alapján, hanem statisztikai alapon működik. Leegyszerűsítve mondhatjuk, hogy olyan döntési konfigurációt fogad el, amelynek a legnagyobb a valószínűsége az eddig neki megmutatott ember által végzett döntési minták alapján.

 

A döntés után következik egy transzformációkkal egybekötött magyar nyelvtani generálás, majd magyar morfológiai generálás.

 

A morfológiára végre sikerült olyan modellt készítenem, amely segítségével mind az angol, mind a magyar morfológia leírható egységes szerkezetben, és egy az egyben használható mind generáláshoz, mind elemzéshez. (Régebben csak egyirányú, és némileg nyelvfüggő modellt készítettem.)

 

Amit most összefoglaltam, az a 2.0-ás rendszer, nem a most üzemben lévő 1.0-ás. Sajnos még elég sok idő, mire elkészül, mert nem 'főmunkaidőben' csinálom.

A hozzászólás:
-Fu- Creative Commons License 2005-01-18 14:57:55 38
Kicsit írhatnál részletesebben a program működéséről,
vagy csak elsiklottam felette?

Naivan ilyesmit képzel le az ember:
Szintaktika - először az induló nyelv
morfémáit felismerjük, ezek segítségével megpróbáljuk
felépíteni a mondatszerkezetet (itt most gimnáziumból
ismert szerkezeti fára gondolok, alany-állítmány-tárgy-jelzők,
stb.). Vagy e helyett más struktúrát haszálsz?
Mindenesetre itt pl. a magyar ragok,
toldalékok gazdag rendszere sokat segíthet.
Aztán jön egy nehezebb rész, ami megpróbálja a témát,
fókuszt stb. azonosítani, nyomon követni, melyik névmás
mire utalhat. (Ezt már szemantikai elemzésnek hivod, gondolom).
Aztán elkezdünk fordítani: lehet, hogy
kicsit át kell alakítani a fa szerkezetét, ha a másik
nyelv eltérő szabályokkal rendelkezik,
majd a faszerkezetet ügyesen átültetjük
egy lineáris szerkezetté, azaz mondattá.
Ez egy kicsit nehezebbnek hangzik.
Végül a morfémák szintjén elővesszük
a szótárat és kicseréljük a szavakat.

Na most lehet, hogy ez egy reménytelen idealizáció,
és túl sok kölcsönhatás van az egyes szintek
(pl. szemantika és szintaktika, szó és mondatszerkezet, stb)
között ahhoz, hogy azok modellezése nélkül rendes eredményt
lehessen így elérni.

Mindesetre leírhatnád, kb. így megy-e , vagy máshogy,
a dolog.

Egyébként régen én is próbálkoztam ilyesmivel,
az alapvető toldalékok felismerése nagyjából ment,
amikor meguntam (persze még az lehet a leg egyszerűbb).





Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!