El alemán_transliterate es un módulo de Python para limpiar y transliterar (es decir, normalizar) el texto alemán, incluidas las abreviaturas, los números, las marcas de tiempo, etc., se puede usar para limpiar el texto desordenado (por ejemplo, mapas de codificaciones unicode peculiares a ASCII) o reemplazar las abreviaciones comunes en el texto en combinación con varias tareas de minería de texto.
Sin embargo, es particularmente útil para el preprocesamiento de texto a voz (TTS) (tanto en entrenamiento como en inferencia) y tiene características para admitir la codificación fonémica de los resultados (por ejemplo, con espeak-ng) después como el siguiente paso en la tubería de procesamiento.
IS se ha aplicado con éxito al preprocesamiento con Mozilla TTS en combinación con fonemas espeak-ng como datos de entrada tanto para la tubería de entrenamiento como de inferencia.
Este trabajo tiene licencia bajo la licencia internacional Creative Commons Attribution 4.0. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by/4.0/ o envíe una carta a Creative Commons, PO Box 1866, Mountain View, CA 94042, EE. UU.
Para proporcionar atribución o citar este trabajo, use el siguiente fragmento de texto:
german_transliterate, Copyright 2020 by repodiac, see https://github.com/repodiac for updates and further information
0.1.3 - Algunas correcciones de errores en varias operaciones: weekday , month , amount_money y acrónimos, también algunas cosas menores arregladas aquí y allá ( actualización muy recomendable )0.1.2 : eliminó las siguientes operaciones de la lista de operaciones predeterminadas, ya que (como se menciona en la documentación a continuación) son muy propensos a errores (muchos positivos falsos). Todavía puede usarlos mediante la adición explícitamente a la lista transliterate_ops=[...] . Las operaciones eliminadas son:monthweekdaymath_symbol0.1.1 - Interfaz de línea de comandos agregada para el uso predeterminado (sin codificación de fonema y cosas experimentales que quedan fuera)release 0.1 - Liberación inicial del software, aún muchas ToDo y algunas características más experimentales (ver documentación); También se podría mejorar el manejo de excepciones Actualmente tiene solo una dependencia externa, Num2words. Todas las dependencias se encuentran en requirements.txt y también se incluyen en setup.py , en este momento.
La instalación es fácil utilizando pip y la instalación de paquete git incorporada basada en setup.py :
pip install git+https://github.com/repodiac/german_transliterateConfiguración:
import german_transliterate.core ) a su entorno Python actual como cualquier otro paquete pip (en caso de crear un entorno virtual con virtualenv o conda antes).En el código de Python o como la biblioteca:
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')
Nuevo desde la línea de comandos (en el shell):
python core.py '1, 2, 3 - alles ist dabei'
Actualmente solo hay un método para ser utilizado: transliterate('Das ist der Text.')
Tiene los siguientes parámetros de entrada:
transliterate_ops , consulte a continuación para más detallesreplace el dict de las tuplas de cadena "Originales: Reemplazo" para ser utilizadas como reemplazos adicionales lisos y simples "sobre la marcha" con el texto, por ejemplo, reemplazar = {'-': ''} reemplaza todos los guiones con Whitespace; Deje empty para uso normal y use {';': ',', ':': ' '} con codificaciones fonémicassep_abbreviation Un separador especial utilizado para la transliteración de abreviaturas; Esto es principalmente útil con la codificación fonémica de un texto como siguiente paso en una tubería TTS; Deje empty para uso normal y use ' -- ' con codificaciones fonémicasmake_lowercase Si es verdadero, el texto se hace en minúsculas (deja empty por defecto) Nota : La mayoría de las operaciones transliteradas solo funcionan con make_lowercase=True : esto se debe a los diversos diccionarios que operan solo con minúsculas. Utilice make_lowercase=False solo cuando transliterate_ops no se usa demasiado, ¡de lo contrario, la mayoría de ellos no funcionan! Los parámetros utilizados para el parámetro de configuración transliterate_ops son los siguientes:
acronym_phoneme translitere abreviaturas como ABC en una versión fonémica ah beh zeeaccent_peculiarity elimina las codificaciones unicode peculiares y las asigna a versiones compatibles con forma de ASCII (operación de limpieza)amount_money translitera símbolos de moneda y dinero como $, €, eur, etc.date , por ejemplo, 12.10.2019timestamp Translitera Marcas de tiempo, por ejemplo, 13h: 15m: 45sweekday ( experimental ), translitere abreviaturas para los días de semana, por ejemplo, Mo , actualmente esto es bastante propenso a errores (muchos falsos positivos)month ( experimental ), translitere abreviaturas durante meses, por ejemplo, Jan o Dez , actualmente esto es bastante propenso a errores (muchos falsos positivos)time_of_day NEGLITERE HORA DEL DÍA, por ejemplo, 13: 15hordinal Translitere números ordinales, por ejemplo, 2. En zweite (intenta encontrar una compensación para el sufijo de caso correcto, es decir, zweiten o zweitem )special y términos especiales, por ejemplo, 8/10 en acht von zehnmath_symbol ( experimental ), translitere una pequeña selección de símbolos matemáticos, por ejemplo, plus , minus , etc. (también se aplica aquí: puede tener muchos positivos falsos, así que use con cuidado)spoken_symbol permite transliterarse entre paréntesis o marcas de citas en lenguaje hablado, por ejemplo, '(texto)' en -- in klammern -- text -- (si sep_abbreviation se establece en ' -'), principalmente útil para tareas TTS El estado actual se basa principalmente en el uso de mapeos manuales y expresiones regulares para la sustitución y expansión de cadenas (palabras o términos). Por lo tanto, el rendimiento actual debe ser lo suficientemente bueno como para usarse con inferencia en línea o uso de "tiempo real" en una tubería de procesamiento de texto. A medida que se agregan más módulos u OP con el tiempo, también puede haber métodos bastante lentos que realicen cálculos pesados y, por lo tanto, se adapten principalmente a la capacitación o al procesamiento fuera de línea.
Abra los problemas en GitHub para errores o solicitudes de funciones. También puede comunicarse conmigo por correo electrónico.