nlg-german
simple natural language generator (german)
· Report Bug / Request Feature ·
Table of Contents
About
A simple tool to generate german texts.
It allows you to:
- decline words (including articles)
- automatically pick synonyms for words
- automatically render lists as text
- a handy template string syntax to format sentences
- create template functions to render advances sentences
It's pretty small and does not need a dictionary.
However, it can't (yet):
- automatically detect cases
- decline anything other than articles and nouns (e.g. adjectives)
- conjugate verbs
Install
NPM:
yarn install nlg-german
Usage
Define words
import { noun } from 'nlg-german';
// provide the noun function with a string, containing:
// 1. an article
// 2. the word in nominative singular, plural and genitive singular
const phone = noun('das telefon, die telefone, des telefons');
// or if you're lazy:
const phone = noun('das telefon,-e,-s');
Example
import { noun, sentence, synonyms } from 'nlg-german';
cconst car = synonyms(
noun('das auto, die autos, des autos'),
noun('der PKW, die PKWs, des PKWs'),
noun('der wagen, die wagen, des wagens'),
noun('die karre, die karren, der karre')
).specific();
const animals = [
noun('der elefant,-en,-en'),
noun('die maus,mäuse,-'),
noun('der kakadu,-s,-s'),
];
const door = noun('die tür,-en,-').specific();
const move = variants('eilte', 'rannte', 'lief');
const heEntersCar = variants(
sentence`er stieg in ${car.accusative()}`,
sentence`eilig betrat er ${car.accusative()}`,
sentence`er öffnete ${door.accusative()} ${car.genitive()}`,
sentence`er ${move} zu ${car.dative()}`
);
console.log(heEntersCar.write());
console.log(heEntersCar.write());
console.log(heEntersCar.write());
console.log(heEntersCar.write());
console.log(heEntersCar.write());
console.log(sentence`${animals} erwarteten ihn bereits...`.write());
/*
Output:
Eilig betrat er den Wagen.
Er stieg in die Karre.
Er öffnete die Tür des PKWs.
Er rannte zu dem Auto.
Er öffnete die Tür des Wagens.
Ein Elefant, eine Maus und ein Kakadu erwarteten ihn bereits...
*/
Run tests
yarn run test
Contact
👤 Timo Bechtel
- Website: https://timobechtel.com
- Twitter: @TimoBechtel
- GitHub: @TimoBechtel
🤝 Contributing
Contributions, issues and feature requests are welcome!
- Check issues
- Fork the Project
- Create your Feature Branch (
git checkout -b feat/AmazingFeature
) - Test your changes
yarn run test
- Commit your Changes (
git commit -m 'feat: add amazingFeature'
) - Push to the Branch (
git push origin feat/AmazingFeature
) - Open a Pull Request
Commit messages
This project uses semantic-release for automated release versions. So commits in this project follow the Conventional Commits guidelines. I recommend using commitizen for automated commit messages.
Show your support
Give a ⭐️ if this project helped you!
This README was generated with ❤️ by readme-md-generator