Deutsch_Transliterat ist ein Python -Modul zum Reinigen und Transliteraten (dh normalisieren) deutscher Text einschließlich Abkürzungen, Zahlen, Zeitstempel usw. Es kann verwendet werden, um unordentliche Text (z.
Es ist jedoch besonders nützlich für die Vorverarbeitung von Text-to-Speech (TTS) (sowohl für das Training als auch in der Inferenz) und verfügt über Merkmale, um die phonemische Codierung der Ergebnisse (z. B. mit ESPeak-NG) später als nächster Schritt in der Verarbeitungspipeline zu unterstützen.
Wurde erfolgreich auf die Vorverarbeitung mit Mozilla TTS in Kombination mit espeak-ng Phonemen als Eingabedaten für Trainings- und Inferenzpipeline angewendet.
Diese Arbeit ist unter der internationalen Lizenz der Creative Commons Attribution 4.0 lizenziert. Um eine Kopie dieser Lizenz anzuzeigen, besuchen Sie http://creativecommons.org/licenses/by/4.0/ oder senden Sie einen Brief an Creative Commons, Postfach 1866, Mountain View, CA 94042, USA.
Um diese Arbeit zuzuweisen oder diese Arbeit zu zitieren, verwenden Sie bitte den folgenden Textausschnitt:
german_transliterate, Copyright 2020 by repodiac, see https://github.com/repodiac for updates and further information
0.1.3 - Einige Fehler in verschiedenen OPs: weekday , month , amount_money und Akronyme, auch einige kleinere Dinge, die hier und da behoben sind ( Update Sehr empfohlen )0.1.2 -Das folgende OPS aus der Liste der Standard-OPs entfernt, da sie (wie in der folgenden Dokumentation erwähnt) sehr fehleranfällig (viele Falschpositiven) sind. Sie können sie weiterhin verwenden, indem Sie sie explizit zur Liste der transliterate_ops=[...] hinzufügen. Die OPS entfernt sind:monthweekdaymath_symbol0.1.1 - Befehlszeilenschnittstelle für die Standardverwendung hinzugefügt (keine Phonem -Codierung und experimentelles Material ausgelassen)release 0.1 - Erstveröffentlichung der Software, immer noch viele ToDo -S und einige mehr experimentelle Funktionen (siehe Dokumentation); Auch Ausnahmehandling könnte verbessert werden Derzeit hat es nur eine externe Abhängigkeit, Num2Words. Alle Abhängigkeiten sind im Moment in setup.py auch in requirements.txt zu finden.
Die Installation ist einfach mit der Installation pip und integriertem git -Paket basierend auf setup.py :
pip install git+https://github.com/repodiac/german_transliterateAufstellen:
import german_transliterate.core ) in Ihre aktuelle Python -Umgebung als jedes andere pip -Paket installiert und verhalten (falls vorhanden eine virtuelle Umgebung mit virtualenv oder conda erstellen).Im Python -Code oder als Bibliothek:
from german_transliterate.core import GermanTransliterate
text = 'Um 13:15h kaufte Hr. Meier (Mitarbeiter der Firma ABC) 1.000 Luftballons für 250€.'
print('ORIGINAL:', text, 'n')
ops = {'acronym_phoneme', 'accent_peculiarity', 'amount_money', 'date', 'timestamp',
'weekday', 'month', 'time_of_day', 'ordinal', 'special', 'math_symbol', 'spoken_symbol'}
# use these setting for PHONEMIC ENCODINGS as input (e.g. with TTS)
print('TRANSLITERATION with phonemic encodings:',
GermanTransliterate(replace={';': ',', ':': ' '}, sep_abbreviation=' -- ').transliterate(text), 'n')
# use none or your own for other purposes than phonemic encoding and do not use 'spoken_symbol' or 'acronym_phoneme'
print('TRANSLITERATION (default):',
GermanTransliterate(transliterate_ops=list(ops-{'spoken_symbol', 'acronym_phoneme'})).transliterate(text), 'n')
Neu aus Befehlszeile (in der Shell):
python core.py '1, 2, 3 - alles ist dabei'
Derzeit muss nur eine Methode verwendet werden: transliterate('Das ist der Text.')
Es hat die folgenden Eingabeparameter:
transliterate_ops -Liste der Schlüsselwörter, siehe unten für Detailsreplace das DICT von "Original: Ersatz" -Schingstupel, die als zusätzliche einfache und einfache "On-the-Fly" -Raite durch den Text verwendet werden sollen, z. B. Ersatz = {'-': ''} Ersetzt alle Striche durch weißespace; Lassen Sie empty für {';': ',', ':': ' '} normalen Gebrauch und verwendensep_abbreviation ein spezielles Separator, das zur Transliteration von Abkürzungen verwendet wird; Dies ist meistens nur bei der phonemischen Kodierung eines Textes als nächster Schritt in einer TTS -Pipeline nützlich. empty ' -- 'make_lowercase Wenn wahr, wird der Text in Kleinbuchstaben hergestellt (standardmäßig empty lassen) Hinweis : Die meisten Transliterate -Operationen funktionieren nur mit make_lowercase=True - dies liegt an den verschiedenen Wörterbüchern, die nur mit Kleinbuchstaben arbeiten. Bitte verwenden Sie make_lowercase=False nur, wenn transliterate_ops nicht übermäßig verwendet werden, sonst funktionieren die meisten von ihnen nicht! Die für die transliterate_ops verwendeten Parameter sind wie folgt:
acronym_phoneme transliteriert Abkürzungen wie ABC in eine phonemische Version ah beh zeeaccent_peculiarity beseitigt eigentümliche Unicode-Codierungen und ordnet sie in kompatiblen ASCII-ähnlichen Versionen ab (Reinigung von OP)amount_money Transliterates Währung und Geldsymbole wie $, €, EUR usw.date , z. B. 12.10.2019timestamp transliteriert Zeitstempel, zB 13h: 15m: 45sweekday ( experimentell ), transliterate Abkürzungen für Wochentage, zum Beispiel Mo - derzeit ist dies eher fehleranfälliger (viele Falschpositives)month ( experimentell ) , Transliterate Abkürzungen seit Monaten, Jan Deztime_of_day transliterates Uhrzeit, zB 13: 15hordinal Transliteraten Ordinale Zahlen, z 2. in zweite (versucht, einen Kompromiss für das korrekte Fallsuffix zu finden, dh zweiten oder zweitem )special Übersetzer -Randfälle und besondere Begriffe, z. B. 8/10 in acht von zehnmath_symbol ( experimentell ), transliteriert eine kleine Auswahl von Mathematiksymbolen, plus minusspoken_symbol ermöglicht es, Klammern oder Zitiermarkierungen in die gesprochene Sprache zu übertragen, z. B. (Text) 'in -- in klammern -- text -- (wenn sep_abbreviation auf' - 'festgelegt wird), hauptsächlich für TTS -Aufgaben nützlich Der aktuelle Zustand basiert hauptsächlich auf der Verwendung von manuellen Zuordnungen und regulären Ausdrücken zur Substitution und Ausdehnung von Zeichenfolgen (Wörter oder Begriffe). Daher sollte die aktuelle Leistung gut genug sein, um mit Online -Inferenz oder "Echtzeit" -Nutzung in einer Textverarbeitungspipeline verwendet zu werden. Da im Laufe der Zeit weitere Module oder OPs hinzugefügt werden, kann es auch eher langsame Methoden geben, die schwere Berechnungen durchführen und daher hauptsächlich für das Training oder die Offline -Verarbeitung geeignet sind.
Bitte öffnen Sie Probleme auf GitHub für Fehler oder Funktionsanfragen. Sie können mich auch per E -Mail an mich wenden.