A Crumb egy magyar morfológiai generátor. Képes dinamikusan előállítani különböző magyar szavakat toldalékolással, de számos egyéb alapeszközt biztosít természetes mondatok generálásához.
npm install crumbjsA toldalékoláshoz használd a suffix metódust:
import {suffix} from 'crumbjs';
suffix.dative('kutya'); // "kutyának"A suffix metódus a magyar nyelv toldalékolási szabályait implementálja, figyelembe véve a magánhangzó-harmóniát és
egyéb nyelvtani szabályokat.
A csomag a következő toldalékokat támogatja:
Esetragok:
accusative: tárgyeset (-t, -ot, -at, -et, -öt) - pl.suffix.accusative('ház')→ "házat"dative: részeshatározó (-nak, -nek) - pl.suffix.dative('macska')→ "macskának"ablative: távolító eset (-tól, -től) - pl.suffix.ablative('iskola')→ "iskolától"adessive: veszteglő eset (-nál, -nél) - pl.suffix.adessive('ajtó')→ "ajtónál"allative: közelítő eset (-hoz, -hez, -höz) - pl.suffix.allative('szék')→ "székhez"delative: leható eset (-ról, -ről) - pl.suffix.delative('tető')→ "tetőről"elative: kiható eset (-ból, -ből) - pl.suffix.elative('doboz')→ "dobozból"illative: beható eset (-ba, -be) - pl.suffix.illative('ház')→ "házba"inessive: bentlakó eset (-ban, -ben) - pl.suffix.inessive('kert')→ "kertben"sublative: felható eset (-ra, -re) - pl.suffix.sublative('asztal')→ "asztalra"superessive: felülmaradó eset (-on, -en, -ön) - pl.suffix.superessive('föld')→ "földön"terminative: határvető eset (-ig) - pl.suffix.terminative('sarok')→ "sarokig"translative: változtató eset (-vá, -vé) - pl.suffix.translative('jég')→ "jéggé"instrumentalComitative: eszközhatározó (-val, -vel) - pl.suffix.instrumentalComitative('toll')→ "tollal"locative: helyhatározó (-ott, -ett, -ött) - pl.suffix.locative('minden')→ "mindenütt"genitive: birtokos eset (-é) - pl.suffix.genitive('tanár')→ "tanáré"
Egyéb toldalékok:
plural: többes szám (-k, -ok, -ak, -ek, -ök) - pl.suffix.plural('kutya')→ "kutyák"adjective: melléknévképző (-i, -s, -os, -as, -es, -ös) - pl.suffix.adjective('Budapest')→ "budapesti"privative: fosztóképző (-talan, -telen, -atlan, -etlen) - pl.suffix.privative('hiba')→ "hibátlan"temporal: időhatározó (-kor) - pl.suffix.temporal('három')→ "háromkor"essiveFormal: alakhatározó (-ként) - pl.suffix.essiveFormal('tanár')→ "tanárként"essiveModal: módhatározó (-ul, -ül) - pl.suffix.essiveModal('példa')→ "példaul"sociative: társhatározó (-stul, -stül) - pl.suffix.sociative('család')→ "családostul"distributiveTemporal: osztó időhatározó (-onta, -ente) - pl.suffix.distributiveTemporal('hét')→ "hetente"distributive: osztóhatározó (-onként, -enként) - pl.suffix.distributive('darab')→ "darabonként"formal: alakhatározó (-képpen) - pl.suffix.formal('más')→ "másképpen"modalEssive: módhatározó (-ul, -ül) - pl.suffix.modalEssive('magyar')→ "magyarul"multiplicative: szorzó (-szor, -szer, -ször) - pl.suffix.multiplicative('három')→ "háromszor"frequentative: gyakorító (-gat, -get) - pl.suffix.frequentative('néz')→ "nézeget"finalCasual: célhatározó (-ért) - pl.suffix.finalCasual('pénz')→ "pénzért"
Fokozás:
A csomag támogatja a melléknevek fokozását is a grade objektumon keresztül:
import {grade} from 'crumbjs';
grade.comparative('szép'); // "szebb"
grade.superlative('szép'); // "legszebb"
grade.excessive('szép'); // "legeslegszebb"import {getNumberWithWords} from 'crumbjs'
getNumberWithWords('1625'); // "ezerhatszázhuszonöt"
getNumberWithWords('-13.4'); // "mínusz tizenhárom egész négy tized"
getNumberWithWords('48239845'); // "negyvennyolcmillió-kétszázharminckilencezer-nyolcszáznegyvenöt"import {getSyllables} from 'crumbjs'
getSyllables('kivirágozhat'); // ["ki", "vi", "rá", "goz", "hat"]
getSyllables('kellemetlenség'); // ["kel", "le", "met", "len", "ség"]
// Nincs szótár, nem ismeri fel a szóhatárokat
getSyllables('kerítésszaggató', {stopWords: ["kerítés"], formatted: true}); // ke-rí-tés-szag-ga-tó
getSyllables('pánikroham', {formatted: true, hypenCharacter: '/'}); // pá/nik/ro/hamA csomag kezeli a magyar nyelv speciális eseteit és kivételeit, például:
- Mássalhangzó-hasonulás (pl. "toll" + "val" → "tollal")
- Hangkivetés (pl. "bokor" → "bokrot")
- Hangzórövidülés (pl. "kéz" → "kezet")
- Egyéb rendhagyó alakok (pl. "ló" → "lovat")
import {suffix, grade} from 'crumbjs';
// Esetragok
suffix.accusative('alma'); // "almát"
suffix.dative('ház'); // "háznak"
suffix.ablative('iskola'); // "iskolától"
suffix.inessive('doboz'); // "dobozban"
suffix.superessive('szék'); // "széken"
// Többes szám
suffix.plural('kutya'); // "kutyák"
suffix.plural('ember'); // "emberek"
suffix.plural('könyv'); // "könyvek"
// Birtokos eset
suffix.genitive('tanár'); // "tanáré"
suffix.genitive('diák'); // "diáké"
// Fokozás
grade.comparative('nagy'); // "nagyobb"
grade.superlative('szép'); // "legszebb"
grade.excessive('jó'); // "legeslegjobb"
// Kivételek kezelése
suffix.accusative('ló'); // "lovat"
suffix.plural('tó'); // "tavak"crumb suffix accusative alma // "almát"
crumb grade comparative szép // "szebb"
crumb numeral 6524 // hatezer-ötszázhuszonnégyMIT