--- language: de tags: - grammar widget: - text: "correct german grammar: es ist schön so viele tolle menschen um sich zu haben denn ohne sie wäre es nicht so schön" --- example outputs: input: ich liebe das leben --> output: Ich liebe das Leben. input: es ist schön so viele tolle menschen um sich zu haben denn ohne sie wäre es nicht so schön --> output: Es ist schön, so viele tolle Menschen, um sich zu haben, denn ohne sie wäre es nicht so schön. input: der kunde hat ausdrücklich nach dirk verlangt weil er den rabatt haben möchte --> output: Der Kunde hat ausdrücklich nach Dirk verlangt, weil er den Rabatt haben möchte. the data can be prepared like this: the broken_text is used as input, while the text is the output ```python import re import phonetics import random chars_to_ignore_regex = "[^A-Za-z0-9\ö\ä\ü\Ö\Ä\Ü\ß\-,;.:?! ]+" broken_chars_to_ignore_regex = "[^A-Za-z0-9\ö\ä\ü\Ö\Ä\Ü\ß\- ]+" def do_manipulation(string): text = re.sub(chars_to_ignore_regex, '', string) broken_text = re.sub(broken_chars_to_ignore_regex, "", text.lower()) if(random.randint(0,100) >= 50): for xyz in range(int(len(broken_text.split(" "))/4)): if(random.randint(0,100) > 30): randc = random.choice(broken_text.split(" ")) if(random.randint(0,10) > 4): broken_text = broken_text.replace(randc, ''.join(random.choice('abcdefghijklmnopqrstuvxyz') for _ in range(len(randc))).lower()) else: broken_text = broken_text.replace(randc, phonetics.metaphone(randc).lower()) return text, broken_text ```