Toldalékok illesztése

Sziasztok!

Toldalékmorfémák programozott illesztéséra keresek puskát. A kódomnek egy szövegsablonbe kellene tudnia nevekat, dátumoket, egyéb adatoket toldalékolva beilleszteni a megfelelő alakú toldalékot kiválasztva (több alakú toldalékok esetében van a para, nyilván).

Feltételezem, hogy nem én vagyok az első, aki ezzel a feladattal szembesül, és létezik már erre szabad forrású megoldás. Nekem java-ban kell a kód, de már az is sokat segítene, ha a hangrend megállapítására találnék egy elegáns bármely nyelvű kódszeletet.

Köszi előre is!

Hozzászólások

Magyarul a hangrend megállapítása egyszerű. Csak a magánhangzók számítanak. Az eéiíüűöű (teniszütő) magánhangzók magasak az aáuúoó (autó) magánhangzók mélyek. Ha csak magas vagy csak mély hangrendű magánhangzók vannak a szóban akkor a magas vagy mély hangrendű toldalék kell. A vegyes hangrendűek esetén (főleg idegen szavak) a mély hangrendű toldalék jár (kivéve a kivételeket) sőt van olyan is, ahol mindkettő jó.
Bővebben például itt: http://www.nyest.hu/hirek/hanyfele-vegyes-hangrend-van

Pont a linkelt honlap cáfol meg:

Az iskolában ma is azt oktatják, hogy a vegyes hangrendű szavaink helyes toldalékolása bizonytalan és bonyolult, illetve mély hangrendű toldalékot javasolnak különösebb indoklás nélkül (amolyan „ez a szabály” alapon). Miért éppen mélyet kéne használni? Ha a magánhangzó-harmóniát vesszük alapul, akkor magas szótaghoz magas, mélyhez mély toldalék járulna, nem? Mi ez a magánhangzó harmónia pontosan?

Az az érzésem, az iskolában is jól összekutyulják a dolgokat.

Én speciel úgy tanultam (legalábbis úgy rémlik), hogy a vegyes hangrendűekhez járó toldalékok általában olyan hangrendűek, amilyen a szóban az utolsó szótag, tehát pl. állatkertben, sofőrrel, februárban, Pecsában, számítógéppel, telefonnal, betonnal, stb.

Kötőhangra gondolsz, úgy gondolom. Viszont a "férfiak"-ban az "a" pont kötőhang, a többes szám jele "k" lesz a toldalék. Viszont a férfivel nem tűnik rossznak (talán a férfival sem - de inkább a nőkre szavaznék :) ), viszont a férfiben garantált, a férfiban... szóval hangzásra hirtelen nem tetszik. De a pulcsival és a "pulcsivel" már egyértelmű...

Vannak kivételek, régebben én is próbáltam egy ilyesmi programot írni (még Pascal-ban), de nagyon bonyolult a magyar nyelv. Ja, a teljes hasonulásról még nem is beszéltünk :D

Te poliverzumnak valami apgrédelt verziója vagy?

Ő csak vitába száll azzal, aki úgy próbál neki segíteni, hogy nem pont azt mondja, amit poli hallani akar, de te menten lovat is szopatnál vele.

Néhányszor elcsodálkozom, hogy egyes ifjú kollégák bedobnak egy kérdést, aztán a válaszadókat úgy otthagyják a topicban, mint eb a szaharát, de úgy látszik, lassan felnő egy még újabb generáció.

Ezen rágtál be? Azért kérdeztem(!!!), mert a topik indításból úgy értettem, hogy te akarsz (vagy kell) egy ilyet írni. Ha most ezt félreértetted és ezért megsértődtél és elkezdtél minősíthetetlen stílusban beszélni, az nem engem minősít.

Szerk.: így kérdeztem: "Nem neked kell ilyet írnod?"
Még ha tényleg "kéne" szót használtam volna, akkor megérteném, de így... szerintem egyáltalán nem félreérthető. Ez van, legközelebb figyelmesebben olvasd el, mert mint látjuk, a magyar nyelv egyáltalán nem egyszerű (nem csak a toldalékolásra gondolva), minden szónak fontos szerepe van ;)

Neha jobb kulso szemszogbol nezni a dolgokat, mert neked erzesre megy:
http://hungarianreference.com/Vowel-Harmony.aspx
(a kiveteleket persze ossze kell szedni hozza)

Amugy ha nem kell valami altalnos megoldas, az is mukodik, hogy legeneralod a tippeket, aztan az aspell kivalogatja.

--
Why did the chicken cross the road?
It was trying to get a signal on its iPhone 4.

Köszi, ez tényleg jó, ahogy a HGY által linkelt oldal is elég kimerítően foglalkozik a témával. Az a csalódásom tárgya, hogy nem találok rá instant megoldást, pedig azt gondolná az ember (és a megrendelője), hogy ez azért elég általános igény lehet.

Az aspell-el leválogattatás nem csak körülményes és lassú, de pl számmal írt számnevekre nem is működik (4-an, 15-ból) és ráadásul a keltezésnek ugye speciális szabályai is vannak (14-án, 23-étől).

A megoldás az lesz, hogy megköltségvetjük a legfontosabb ragok illesztését from scratch. Azért köszi a tippeket.