الترجمة لا تحتوي على أرقام، لكن الوحدة مفقودة: يجب تقسيم التفتيش إلى مستويين
تتناول هذه الورقة نقطة الألم في مطابقة أرقام الكميات مع الوحدات في قبول الترجمة من خلال اقتراح استراتيجية تحقق متعددة الطبقات. باستخدام الوحدة العشرية في مكتبة بايثون القياسية، يوضح كيفية تحليل ومقارنة قيم الكميات بدقة لتجنب مصائد دقة الفاصلة العائمة؛ وفي الوقت نفسه، تم تحديد حدود المسؤوليات المتعلقة بالتحقق الآلي من الشيفرة والمراجعة الدلالية البشرية، ويتم شرح عملية تسليم ترجمة المستندات بالتعاون مع أومني دوك.
تبدو الأرقام في الترجمة سليمة، لكن الوحدات قد اختفت بهدوء. إذا كان هناك خطأ في المبلغ أو الكمية في عرض السعر أو التقارير أو الوثائق الفنية، فإنه يؤثر على المعنى الفعلي للعمل، لذا يجب التحقق من الأرقام بشكل منفصل قبل التسليم.
هذه المقالة مكتوبة لأولئك المسؤولين عن قبول الوثائق المترجمة، خاصة القراء الذين يتعاملون بشكل متكرر مع عروض الأسعار والبيانات المالية وجداول المعلمات التقنية. تشرح هذه المقالة لماذا قد يصبح 1,234.50 1.234,50 في الترجمة، وكيفية إعلان قواعد الإدخال قبل مقارنة القيم، وأي الأحكام لا تزال تتطلب معالجة يدوية. بعد القراءة، يمكنك بناء فحص من طبقتين: الكود الآلي يتعامل مع التنسيق والقيم، بينما يتعامل البشر مع الدلالات والحقول التجارية.
تستخدم الأمثلة في هذا المقال عينات صناعية، والشيفرة تمر بفحص الأمثلة في بيئة معزولة، لكن هذا لا يضمن فعالية جميع الملفات أو المنتجات الحقيقية. قبل التعامل مع الوثائق المهمة، يرجى الاحتفاظ بالأصل أولا.
إذا لم تكن أرقام الترجمة ناقصة، كيف يجب أن تقبلها؟ باختصار، خاتمة
يتطلب التحقق العددي أولا إعلان قاعدة الإدخال، ثم مقارنة القيمة المطبعة؛ يتم حجز العملة والوحدة كحقلين مستقلين.
| وضعك | الوصفة الموصى بها | السبب |
|---|---|---|
| القيم متشابهة، لكن العملات مختلفة | تحقق مما إذا تم تغيير علامة العملة | لا ينبغي افتراض أنه مكافئ |
| التنسيق لا يتوافق مع الإعلان | تحقق من إعدادات منطقة المصدر أو عملية الاستخراج | ليس يجب حذف كل علامات الترقيم بدون شروط |
| اختفت علامة الناقص | تحقق من سياق كل من النص المصدر والمترجم | لا ينبغي أخذ القيم المطلقة تلقائيا |
| انخفاض الدقة | الجولة والسجل وفقا للقواعد | يجب عدم تجاهل الاختلافات بشكل عشوائي |
أولا، أعلن قواعد الإدخال
تمثل 1,234.50 و1.234,50 نفس الكميات أو كميات مختلفة في عادات إقليمية مختلفة. إذا لم يتم تحديد الصيغة أولا، لا يمكن للبرنامج تحديد ما إذا كانت الأرقام المترجمة صحيحة.
يتم التعامل مع صيغتين صريحتين فقط
تغطي هذه المقالة فقط التنسيقين التاليين:
- فاصلة بالآلاف وعشريات نقطية: على سبيل المثال،
1,234.50 - نقطة، آلاف، فواصل عشرية: على سبيل المثال،
1.234,50
المساحات في آلاف الأماكن، والأقواس السالبة، والتدوين العلمي، وطرق الكتابة الأخرى غير مشمولة. عندما تكون قواعد المصدر غير واضحة، يجب تجنب التخمين بدلا من اتخاذ قرارات بناء عليه.
تحقق أولا من الصيغة، ثم قم بتحويل العشري
أولا، تحقق من السلسلة حسب التنسيق المعلن، ثم حولها إلى عشري بعد التمرير.
import re
from decimal import Decimal
def amount(text, style):
rules = {
"comma_group": (r"-?(?:[0-9]{1,3}(?:,[0-9]{3})+|[0-9]+)(?:\.[0-9]+)?", ",", "."),
"dot_group": (r"-?(?:[0-9]{1,3}(?:\.[0-9]{3})+|[0-9]+)(?:,[0-9]+)?", ".", ",")
}
if style not in rules:
raise ValueError("unknown number convention")
pattern, grouping, decimal = rules[style]
if re.fullmatch(pattern, text) is None:
raise ValueError("number does not match declared convention")
return Decimal(text.replace(grouping, "").replace(decimal, "."))
assert amount("1,234.50", "comma_group") == amount("1.234,50", "dot_group")
assert amount("-12.50", "comma_group") == Decimal("-12.50")
assert (amount("12.50", "comma_group"), "USD") != (amount("12.50", "comma_group"), "EUR")
for bad in ["12,34.50", "1,234.50 USD", "NaN"]:
try:
amount(bad, "comma_group")
except ValueError:
pass
else:
raise AssertionError("invalid number accepted")
مطابقة القيم ليست كافية
يستقبل هذا الكود سلسلة مبلغ موضوعة مسبقا ولا يكتشف المبلغ تلقائيا من أي مستند. عند تحديد مواقع الحقول، احتفظ بالوسوم، العملة، ومواقع المصدر. إذا كانت الأرقام متساوية لكن الوحدة تغيرت من الكيلوغرامات إلى الجنيهات، أو من السعر الكلي إلى سعر الوحدة، فلا يعتبر ذلك تحققا صحيحا.
| نتائج المقارنة | يجب التحقق منها | لا ينبغي أن يتم ذلك تلقائيا |
|---|---|---|
| نفس القيمة، لكن عملة مختلفة | ما إذا كان علامة العملة قد تم تغييرها | بشكل افتراضي، يعتبر متكافئا |
| التنسيق لا يتوافق مع الإعلان | منطقة المصدر أو خطأ الاستخراج | احذف جميع علامات الترقيم دون شروط |
| اختفت علامة الناقص | النص المصدري وسياق الترجمة | تأخذ القيم المطلقة تلقائيا |
| انخفاض الدقة | ما إذا كان التقريب يتم وفقا للقواعد | تجاهل كل الفروقات |
العشري يحل جزءا فقط من المشكلة
ماذا يمكن أن يفعل العشري من أجلك
- تجنب الأخطاء في بعض التمثيلات الثنائية للنقطة العائمة
- لتكن المقارنات العددية مبنية على نتائج واضحة وموحدة
العشري لا يستطيع فعل ذلك نيابة عنك
- اختيار قواعد التقريب
- شرح مبلغ الضريبة
- إجراء تحويل سعر الصرف
عند تحويل أي قيم، يجب الاحتفاظ بالقيم قبل وبعد التحويل والأسباب في قائمة التحقق.
الأرقام في الوثائق المترجمة تستحق قبولا منفصلا
عند استخدام أومني دوك (إدخال المنتج) لمعالجة العروض أو التقارير أو المستندات الفنية، يمكن إجراء القبول بالترتيب التالي:
- أولا، نظم قائمة التحقق للمبالغ والوحدات، مع سرد حقول الأعمال التي تتوافق مع كل رقم.
- قارن عناصر القائمة مع الترجمة واحدة تلو الأخرى، مع تسجيل الفروقات في التنسيق، العملة، العلامة السالبة، والدقة.
- أعد العنصر المشبوه إلى النص الأصلي لتأكيد الحقل التجاري الذي يمثله.
الفحوصات الرقمية مسؤولة عن تحديد الشكوك، لكن الحكم النهائي لا يزال بحاجة إلى الانتهاء من خلال العودة إلى النص الأصلي.
المراجع: Python decimal.
📊 مقارنة النواة
| الصيغة | مثال | طرق التعامل |
|---|---|---|
| فواصل بالآلاف وعشريات نقطية | 1,234.50 | ضمن النطاق، قم بالتحليل وفقا لقواعد الإعلان |
| نقاط بالآلاف وفواصل عشرية | 1.234,50 | ضمن النطاق، قم بالتحليل وفقا لقواعد الإعلان |
| فراغات بالآلاف، أقواس للأعداد السالبة، التدوين العلمي | غير مناسب لهذا المقال | ليس ضمن النطاق، رافضا التكهن عندما تكون قواعد المصدر غير واضحة |
🎯 أي طريقة تناسبك؟
إذا كنت تتعامل مع الاقتباسات أو التقارير
أولا، نظم المبلغ وقوائم التحقق الخاصة بالوحدة، ثم قارن كل بند مع المخطوطة المترجمة.
إذا كانت مستنداتك تستخدم رموز رقمية أخرى
هذه المقالة لا تغطي الفراغات بالآلاف، أو الأعداد السالبة بين الأقواس أو التدوين العلمي. أولا، تأكد من قواعد المصدر ولا تدع البرنامج يخمن.
إذا كنت بحاجة لتحويل سعر الصرف
الرقم العشري لن يقوم بالتحويل نيابة عنك؛ يرجى تسجيل القيم قبل وبعد التحويل والأسباب في قائمة التحقق.
❓ الأسئلة الشائعة (الأسئلة الشائعة)
1. لماذا لا نقارن الكميات مباشرة باستخدام أرقام الفابض العائمة؟
استخدام العشري يمكن أن يتجنب الأخطاء في بعض التمثيلات الثنائية العائمة، مما يجعله أكثر ملاءمة للمقارنة العددية.
2. هل يمكن أن يكون الرقم نفسه لكن العملة مختلفة، ويمكن اعتباره متساويا؟
لا ينبغي افتراض أنها متكافئة؛ أولا تحقق مما إذا كان علامة العملة قد تغيرت.
3. هل يمكن أخذ القيم المطلقة تلقائيا عندما تختفي العلامة السالبة؟
يجب ألا تؤخذ القيم المطلقة تلقائيا؛ بل يجب التحقق منها بالتزامن مع سياق المصدر والنصوص المترجمة.
4. هل يمكن للرمز أن يجد المبلغ تلقائيا من أي مستند؟
لا. يتلقى الكود سلسلة مبلغ موضوعة مسبقا؛ عند تحديد موقع الحقول، يجب الاحتفاظ بالتصنيف والعملة وموقع المصدر.
📝 ملخص
المفتاح في التحقق الرقمي هو أولا إعلان قواعد التنسيق، ثم مقارنة القيم الموحدة، والاحتفاظ بالعملة والوحدة كحقل مستقل. تستخدم الفحوصات الآلية لتحديد النقاط المشبوهة، لكن المعنى التجاري لا يزال بحاجة إلى التأكيد على النص الأصلي.
اختبر الآن: ارفع مستندك لتبدأ الترجمة، مع الحفاظ على التنسيق الأصلي


