|
--- |
|
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 |
|
|
|
``` |
|
|