Ragozó program

Fórumok

Üdv!

Van-e olyan program, és ha igen, akkor melyik, amelyik képes a magyar nyelv szerinti ragozásra? Azaz ha megadott egy szót, akkor a kért raggal ellátja, pl. alma + tárgyrag = almát; alma +banben = almában.

Ha a programhoz lenne parancssoros felület, a legjobb lenne, de ha csak lib van, ahhoz talán tudok parancssoros felületet eszkábálni (ha más nem, valami AI segítségével, ha túl ismeretlen és nehéz a nyelv).

Köszönöm!

Hozzászólások

Szerkesztve: 2025. 04. 19., szo – 18:12

Hunspell + unmunch? Mondjuk hirtelen nem látom hogy lehetne megadott ragozást kérni tőle, de ha tényleg nincs ilyen talán egyszerűbb is elindulni egy már meglévő lib alapján. (Egy 2023-as cikk alapján lehet, hogy ma már tényleg egy AI modell a jó megoldás erre.)

[insert line here]
B.C. 3500 - DIY Vehicle / A.D. 30 - DIY Religion / A.D. 1991 - DIY OS

Én sem használtam, a hunspell-tools csomag tartalmának kellene lennie, de kicsit utánanéztem és nem tűnik paraméterezhetőnek. Szűrni az általa dobott listát mondjuk grep-pel meg nem tűnik egy túl megbízható útnak. A cikkben említett modell elméletileg paraméterezhető adott ragra amire szükség van.

[insert line here]
B.C. 3500 - DIY Vehicle / A.D. 30 - DIY Religion / A.D. 1991 - DIY OS

Huptárs oroszgy -nek van egy NLP-je (HuSpaCy*:https://github.com/huspacy/huspacy). A hup fiókját néztem, nem ír aktívan, talán read only módban még szokott erre járni. Régen próbaképpen teszteltem, visszafele jól működött (vagyis ragozott alakot ragtalanná alakítottam vele). Nem tudom, a másik irány ami neked kell, működik vagy sem, de nála szerintem érdeklődhetsz

// Happy debugging, suckers
#define true (rand() > 10)

Nem, nincs ilyen program. Akkor lesz, ha írsz egyet magadnak.

Fordítottja létezik, egy ragozott szót felbont alapszóra, és ragokra, de az is sokszor hibázik, pl. hunspell.

The world runs on Excel spreadsheets. (Dylan Beattie)

Mi az a usecase, amihez szükséges ez a funkcionalitás?

Moodle-ba generálok feladatsorokat (matek, fizika; ugyanaz a feladat, csak más számokkal), a körítő szövegben a neveket, tárgyakat, stb. véletlenszerűen választom ki. A feladat szövegében ezek sokszor ragozva kellenek.

Eddig kétféle módszert használtam ennek megoldására: a főnévvel együtt tárolom azt a ragozott alakot is, amelyik a feladat szövegében kell; másik megoldás, hogy figyelek arra, hogy az összes főnévhez ugyanaz a rag passzoljon, és a feladat szövegében ezt illesztem hozzá.

Én dolgozom egy ilyen programon. Egészen jól működik, csak JS-ben van. 

Jelenleg privát repóban van, de ha érdekel a dolog, akkor megosztom, illetve lassan publikálhatnám is, végülis hátha lesz belőle valami. 

De tényleg tudni kéne a use case-t, mert lehet, hogy nem a legmegfelelőbb. 

Hosszú sztori.

Anno az ingatlan.com-nál voltam vezető frontend fejlesztő. Ott volt egy olyanunk, hogy minden városra volt egy SEO oldal, ami kiírta, hogy "Eladó lakást keresel Szegeden?", vagy ilyesmit. Na ezek a ragozott városnevek nálunk is DB-ben voltak tárolva. 

Azon tűnődtem anno, hogy ezt egész biztosan meg lehet oldani csak kliens oldalon. Elvégre 3155 stringről beszélünk, amiknek a ragzozása javarészt hasonló elven történik. Belemásztam a dologba elég mélyen és lepároltam pár nyelvtan-elméleti doktori értekezést és le tudtam szűkíteni a kivételeket néhány tucatra, amik be vannak égetve a kódba. Ebből született a GeoFlector

Ahogy tesztelgettem azt vettem észre, hogy a többi szót is ~60% pontossággal ragozza ezért elhatároztam, hogy megpróbálom felhúzni ezt amennyire lehet. 

Most éppen szöveget próbálok hozzá bányászni, hogy nagy mennyiségű tesztadaton meg tudjam határozni a pontosságát, mert azért vannak benne elég rendesen bénaságok. Ezekért előre is bocsi. 

És nagyon feldobta a kedvemet, hogy valakinek hasznos tud lenni!

Este Claude haverommal írtam egy szkriptet, ami egy analizált korpuszból kigyűjti a megfelelő formátumban a szavakat, még tisztogatom, de csinálok hozzá teszteket.

Sajnos a szótagolás is kicsit móricka: 

getSyllables("rendőrség")                           // ["ren", "dőr", "ség"]
getSyllables("rendőrség", { stopWords: ["rend"] })  // ["rend", "őr", "ség"]

Ehhez nem volt jobb ötletem. 

De majd mondom, hogy mire jutok, ha már van értelmezhető adat! 

lattam fentebb, gondolkoztam is rajta, de nekem ugye ertelmes magyar szovegbol van kb 100GB-nyi (ebbol ugy 10-15GB eleg tiszta, amik foleg konyvek/ujsagcikkek), de abban ragozva vannak a szavak, ehhez meg szotovek kellenenek ha jol ertem? ha megis ez kell akkor odaadom szivesen vagy lefuttatom nalam i9-en amit kell, esetleg meg ssh-t is adhatok a gephez.

de kezdetnek akar a kozel 1 gigas HU wikipedia is megteszi, nem?

https://dumps.wikimedia.org/huwiki/latest/huwiki-latest-pages-articles…

https://attardi.github.io/wikiextractor/

vagy ez meg jobb, csak ezt nem lehet uzleti celra hasznalni:

https://clara.nytud.hu/mnsz2-dev/

Hát vannak gondok. Ráengedtem 74 ezer sorra. Ebből visszafelé elkezdtem nézni:
Eredeti szó: zsúrterítő
Tárgyeset: zsúrterítövet
Többes szám: zsúrterítövek
---------------------
Eredeti szó: Zsuzsa
Tárgyeset: Zsuzsát
Többes szám: Zsuzsak
---------------------
Eredeti szó: Zsuzsanna
Tárgyeset: Zsuzsannát
Többes szám: Zsuzsannak