Simple random french sentence (with correct grammar) generator
import { generate, determinant, noun, adverb, adjective } from '@autheur/generator';
const sentence = generate([determinant(), noun(), adverb(), adjective()]);
// une croix peut-être importante
Install using your favorite dependency manager.
NPM
npm install @autheur/generator
PNPM
pnpm install @autheur/generator
Yarn
yarn add @autheur/generator
The core function is generate
: it permits to generate a sentence given a pattern
import { generate, determinant, noun, adverb, adjective } from '@autheur/generator';
const sentence = generate([determinant(), noun(), adverb(), adjective()]);
console.log(sentence);
// leurs taille-crayons à demi alourdis
A generator permits to define a portion of the sentence
Generate a determinant (un, une, le, les, cette, ...)
import { generate, determinant } from '@autheur/generator';
generate([determinant()]); // mon
You can specify which types of determinant you want between undefined, defined, possessive, demonstrative
import { generate, determinant } from '@autheur/generator';
generate([determinant({ types: ['possessive'] })]); // notre
Generate a noun.
- the noun generated will impose its form (gender + plurality) to the rest of the sentence.
- by default the plurality is randomly chosen
import { generate, noun } from '@autheur/generator';
generate([noun()]); // allumette
You can force the plurality with a parameter
import { generate, determinant } from '@autheur/generator';
generate([noun({ isPlural: true })]); // animaux
generate([noun({ isPlural: false })]); // ampoule
Generate a comma.
import { generate, comma } from '@autheur/generator';
generate([comma()]); // ,
Generate an adverb.
import { generate, adverb } from '@autheur/generator';
generate([adverb()]); // suffisamment
Generate an word that you specify.
import { generate, word } from '@autheur/generator';
generate([word('foobar')]); // foobar
You can specify if your word is preceded or followed by a space if their is another word
import { generate, word } from '@autheur/generator';
generate([word("l'", { noSpaceAfter: true }), word('arbre')]); // l'arbre
generate([word("l'"), word('arbre', { noSpaceBefore: true })]); // l'arbre
Generate an subject to be used with a verb.
import { generate, subject } from '@autheur/generator';
generate([subject()]); // je
You can specify the gender and/or the plurality
import { generate, subject } from '@autheur/generator';
generate([subject({ isPlural: true })]); // nous, vous, ils, elles
generate([subject({ isPlural: false })]); // je, tu, il, elle, on
generate([subject({ isFeminine: true })]); // je, tu, on, elle, nous, vous, elles
generate([subject({ isFeminine: false })]); // je, tu, on, il, nous, vous, ils
generate([subject({ isFeminine: false, isPlural: false })]); // je, tu, on, elle
Get a random word/sentence from a list that you specify.
import { generate, oneOf } from '@autheur/generator';
generate([oneOf(['foobar', 'yolo'])]); // yolo
This is a monorepo with the following packages:
Package | Description |
---|---|
@autheur/dataset |
Dataset of sorted french words broke down by categories |
@autheur/generator |
The generator itself with they logic |
@autheur/operators |
Utilities to manipulate words (ex: pluralize, feminize, ...) |
Coded with ❤️ by Corentin Thomasset.
This project is under the MIT license.