German_Transliterate est un module Python pour nettoyer et transliterater (c'est-à-dire normaliser) le texte allemand, y compris les abréviations, les nombres, les horodatages, etc. Il peut être utilisé pour nettoyer le texte désordonné (par exemple, les codages Unicode particuliers pour diverses tâches de texte.
Cependant, il est particulièrement utile pour le prétraitement du texte à la dissection (TTS) (à la fois en formation et en inférence) et a des fonctionnalités pour prendre en charge le codage phonémique des résultats (par exemple avec ESPEAK-NG) par la suite comme étape suivante dans le pipeline de traitement.
L'EI a été appliquée avec succès à la prétraitement avec Mozilla TTS en combinaison avec les phonèmes espeak-ng en tant que données d'entrée au pipeline d'entraînement et d'inférence.
Ce travail est concédé sous licence Creative Commons Attribution 4.0 International. Pour consulter une copie de cette licence, visitez http://creativecommons.org/licenses/by/4.0/ ou envoyez une lettre à Creative Commons, PO Box 1866, Mountain View, CA 94042, États-Unis.
Pour fournir une attribution ou citer ce travail, veuillez utiliser l'extrait de texte suivant:
german_transliterate, Copyright 2020 by repodiac, see https://github.com/repodiac for updates and further information
0.1.3 - Certains bugfix dans divers OPS: weekday , month , amount_money et acronymes, également des choses mineures corrigées ici et là ( mise à jour fortement recommandée )0.1.2 - supprimé les opérations suivantes de la liste des OP par défaut, car (comme mentionné dans la documentation ci-dessous), ils sont très sujettes aux erreurs (de nombreux faux positifs). Vous pouvez toujours les utiliser via les ajouter explicitement à la liste transliterate_ops=[...] . Les OP supprimés sont:monthweekdaymath_symbol0.1.1 - Interface de ligne de commande ajoutée pour l'utilisation par défaut (pas de codage de phonèmes et de trucs expérimentaux laissés de côté)release 0.1 - version initiale du logiciel, encore beaucoup de ToDo et quelques fonctionnalités plus expérimentales (voir documentation); La gestion des exceptions pourrait également être améliorée Il n'a actuellement qu'une seule dépendance externe, num2words. Toutes les dépendances se trouvent dans requirements.txt et incluses dans setup.py également, pour le moment.
L'installation est facile à l'aide de l'installation de package git pip et intégrée basée sur setup.py :
pip install git+https://github.com/repodiac/german_transliterateInstallation:
import german_transliterate.core ) dans votre environnement Python actuel comme tout autre package pip (au cas où, créer un environnement virtuel avec virtualenv ou conda auparavant).En code python ou comme bibliothèque:
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')
Nouveau de la ligne de commande (dans le shell):
python core.py '1, 2, 3 - alles ist dabei'
Il n'y a actuellement qu'une seule méthode à utiliser: transliterate('Das ist der Text.')
Il a les paramètres d'entrée suivants:
transliterate_ops Liste des mots clés, voir ci-dessous pour plus de détailsreplace le dict des tuples de chaîne "Original: Remplacement" à utiliser comme remplacements "à la volée" simples et simples "par le texte, par exemple, remplace = {'-': ''} remplace tous les tirets par des espaces blancs; Laisser empty pour une utilisation normale et utiliser {';': ',', ':': ' '} avec des encodages phonémiquessep_abbreviation un séparateur spécial utilisé pour la translittération des abréviations; Ceci n'est principalement utile qu'avec le codage phonémique d'un texte comme prochaine étape dans un pipeline TTS; Laisser empty pour une utilisation normale et utiliser ' -- ' avec des encodages phonémiquesmake_lowercase Si vrai, le texte est fabriqué en minuscules (laissez empty par défaut) Remarque : La plupart des opérations de translittérate ne fonctionnent qu'avec make_lowercase=True - cela est dû aux différents dictionnaires fonctionnant uniquement avec des minuscules. Veuillez utiliser make_lowercase=False uniquement lorsque transliterate_ops n'est pas trop utilisé, sinon la plupart d'entre eux ne fonctionnent pas! Les paramètres utilisés pour le paramètre de configuration transliterate_ops sont les suivants:
acronym_phoneme translittére les abréviations comme ABC dans une version phonémique ah beh zeeaccent_peculiarity supprime les codages Unicode particuliers et les mappe aux versions compatibles de type ASCII (nettoyage OP)amount_money translittéate de la monnaie et des symboles monétaires comme $, €, EUR etc.date translittérates dates, par exemple 12.10.2019timestamp translittérate d'horodatage, par exemple 13H: 15m: 45Sweekday ( expérimental ), translittére les abréviations pour les jours de semaine, par exemple Mo - Actuellement, c'est plutôt sujet aux erreurs (de nombreux faux positifs)month ( expérimental ), translitère les abréviations pendant des mois, par exemple Jan ou Dez - actuellement c'est plutôt sujet aux erreurs (de nombreux faux positifs)time_of_day translitetates heure de la journée, par exemple 13: 15hordinal nombres ordinaux, par exemple 2. Dans zweite (essaie de trouver un compromis pour le suffixe de cas correct, c'est-à-dire zweiten ou zweitem )special translittérates Edge Cases et Conditions spéciales, par exemple 8/10 dans acht von zehnmath_symbol ( expérimental ), translitère une petite sélection de symboles mathématiques, par exemple plus , minus etc. (s'applique également ici: peut avoir beaucoup de faux positifs, alors utilisez avec soin)spoken_symbol permet de transliterater des supports ou des marques de citation dans la langue parlée, par exemple '(texte)' en -- in klammern -- text -- (si sep_abbreviation est défini sur '-'), principalement utile pour les tâches TTS L'état actuel est principalement basé sur l'utilisation de mappages manuels et les expressions régulières pour la substitution et l'expansion des chaînes (mots ou termes). Par conséquent, les performances actuelles doivent être suffisamment bonnes pour être utilisées avec une inférence en ligne ou une utilisation "en temps réel" dans un pipeline de traitement de texte. Étant donné que d'autres modules ou OP sont ajoutés au fil du temps, il peut également y avoir des méthodes assez lentes en faisant des calculs lourds et donc adaptés principalement à la formation ou au traitement hors ligne.
Veuillez ouvrir des problèmes sur GitHub pour les bogues ou les demandes de fonctionnalités. Vous pouvez également me contacter par e-mail.