German_transliterate هي وحدة بيثون لتنظيف وترجمة النص (أي تطبيع) ، بما في ذلك الاختصارات ، والأرقام ، والجداول الزمنية ، وما إلى ذلك ، يمكن استخدامها لتنظيف النص الفوضوي (على سبيل المثال ، ترميزات Unicode الخاصة بالخريطة إلى ASCII) أو استبدال المختصرات الشائعة في النصوص مع محور التنسيق النصية المختلفة.
ومع ذلك ، فهي مفيدة بشكل خاص للمعالجة المسبقة للرسائل النصية (TTS) (سواء في التدريب والاستدلال) ولديها ميزات لدعم الترميز الصوتي للنتائج (على سبيل المثال مع ESPEAK-NG) بعد ذلك الخطوة التالية في خط أنابيب المعالجة.
تم تطبيق IS بنجاح على المعالجة المسبقة مع Mozilla TTS مع صوتيات espeak-ng كبيانات إدخال لكل من خط أنابيب التدريب والاستدلال.
تم ترخيص هذا العمل بموجب ترخيص Creative Commons Attribution 4.0 الدولي. لعرض نسخة من هذا الترخيص ، تفضل بزيارة http://creativecommons.org/licenses/by/4.0/ أو أرسل رسالة إلى Creative Commons ، PO Box 1866 ، Mountain View ، CA 94042 ، USA.
لتوفير الإسناد أو الاستشهاد بهذا العمل ، يرجى استخدام مقتطف النص التالي:
german_transliterate, Copyright 2020 by repodiac, see https://github.com/repodiac for updates and further information
0.1.3 - بعض مجموعات bugfixes في مختلف العمليات: weekday ، month ، amount_money والمختصرات ، وأيضًا بعض الأشياء الثانوية التي تم إصلاحها هنا وهناك ( موصى بها للغاية )0.1.2 -تمت إزالة العمليات التالية من قائمة العمليات الافتراضية ، حيث (كما هو مذكور في الوثائق أدناه) ، فهي معرضة للخطأ للغاية (العديد من المواصفات الخاطئة). لا يزال بإمكانك استخدامها عبر إضافتها بشكل صريح إلى قائمة transliterate_ops=[...] . إزالتها هي:monthweekdaymath_symbol0.1.1 - واجهة سطر الأوامر المضافة للاستخدام الافتراضي (لا يوجد ترميز صوتي وأشياء تجريبية مركبة)release 0.1 - الإصدار الأولي للبرنامج ، لا يزال هناك الكثير من ToDo s وبعض الميزات التجريبية (انظر الوثائق) ؛ كما يمكن تحسين معالجة الاستثناء لديها حاليًا تبعية خارجي واحد فقط ، Num2Words. يتم العثور على جميع التبعيات في requirements.txt وإدراجها في setup.py أيضًا ، في الوقت الحالي.
التثبيت سهل باستخدام pip وتثبيت حزمة git المدمج استنادًا إلى setup.py :
pip install git+https://github.com/repodiac/german_transliterateيثبت:
import german_transliterate.core ) على بيئة Python الحالية مثل أي حزمة pip أخرى (في حالة ، قم بإنشاء بيئة افتراضية مع virtualenv أو conda من قبل).في كود بيثون أو كمكتبة:
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')
جديد من سطر الأوامر (في القشرة):
python core.py '1, 2, 3 - alles ist dabei'
يوجد حاليًا طريقة واحدة فقط لاستخدامها: transliterate('Das ist der Text.')
لديها معلمات الإدخال التالية:
transliterate_ops قائمة الكلمات الرئيسية ، انظر أدناه للحصول على التفاصيلreplace dict of "Original: Replacement" tuples لاستخدامها كإضافات إضافية وبسيطة "على الطيران" مع النص ، على سبيل المثال استبدال = {'-': ''} يستبدل جميع الشرطات بمساحة بيضاء ؛ اترك empty للاستخدام العادي والاستخدام {';': ',', ':': ' '} مع الترميزات الصوتيةsep_abbreviation فاصل خاص يستخدم لترجمة الاختصارات ؛ هذا مفيد في الغالب فقط مع الترميز الصوتي للنص كخطوة تالية في خط أنابيب TTS ؛ اترك empty للاستخدام العادي والاستخدام ' -- ' مع الترميزات الصوتيةmake_lowercase إذا كان صحيحًا ، يتم صنع النص صغيرًا (اترك empty بشكل افتراضي) ملاحظة : معظم عمليات الترجمة تعمل فقط مع make_lowercase=True - وهذا يرجع إلى القواميس المختلفة التي تعمل مع الأحرف الصغيرة فقط. يرجى استخدام make_lowercase=False فقط عندما لا يتم استخدام transliterate_ops بشكل مفرط ، وإلا فإن معظمها لا يعمل! المعلمات المستخدمة لمعلمة config transliterate_ops هي كما يلي:
acronym_phoneme يترجم الاختصارات مثل ABC إلى إصدار صوتي ah beh zeeaccent_peculiarity يزيل الترميزات الخاصة بـ Unicode وتخطيطها إلى إصدارات تشبه ASCII متوافقة (تنظيف OP)amount_money رموز العملة والمال مثل $ ، € ، EUR وما إلى ذلك.date المواعيد ، على سبيل المثال 12.10.2019timestamp يترجم الطوابع الزمنية ، على سبيل المثال 13H: 15m: 45sweekday ( التجريبي ) ، يترجم اختصارات لأيام الأسبوع ، على سبيل المثال Mo حاليًا هذا معرض للخطأ (العديد من المستويين الخاطئين)month ( التجريبي ) ، يترجم الاختصارات لعدة أشهر ، على سبيل المثال Jan أو Dez حاليًا هذا معرض للخطأ (العديد من الإلهاء الخاطئين)time_of_day يترجم الوقت من اليوم ، على سبيل المثال 13: 15 ساعةordinal الأرقام الترتيبية ، zweitem zweiten المثال 2. zweitespecial تترجمات الحافة والشروط الخاصة ، على سبيل المثال 8/10 في acht von zehnmath_symbol ( تجريبي ) ، يترجم مجموعة صغيرة من رموز الرياضيات ، مثل plus ، minus ، إلخ (ينطبق هنا أيضًا: يمكن أن يكون لديك الكثير من المستويين الخاطئين ، لذا استخدم مع الرعاية)spoken_symbol ترجمة الأقواس أو علامات الاقتباس إلى لغة منطوقة ، على سبيل المثال "(نص)" إلى -- in klammern -- text -- (إذا تم تعيين sep_abbreviation على " -") ، مفيد بشكل أساسي لمهام TTS تعتمد الحالة الحالية بشكل أساسي على استخدام التعيينات اليدوية والتعبيرات المنتظمة للاستبدال وتوسيع الأوتار (الكلمات أو المصطلحات). لذلك ، يجب أن يكون الأداء الحالي جيدًا بما يكفي لاستخدامه مع الاستدلال عبر الإنترنت أو الاستخدام "الحقيقي" في خط أنابيب معالجة النص. مع إضافة المزيد من الوحدات أو العمليات مع مرور الوقت ، قد تكون هناك أيضًا طرق بطيئة إلى حد ما في إجراء حسابات ثقيلة ، وبالتالي تناسب بشكل أساسي التدريب أو المعالجة غير المتصلة بالإنترنت.
يرجى فتح المشكلات على github للحصول على عاتق أو طلبات الميزات. يمكنك أيضًا التواصل معي عبر البريد الإلكتروني.