Le nombre de traductions n'est pas petit, mais l'unité est perdue : l'inspection doit être divisée en deux niveaux

Cet article propose une stratégie de vérification hiérarchique pour résoudre le problème de l'association des nombres de montants avec des unités dans l'acceptation de la traduction. Grâce au module décimal de la bibliothèque standard Python, il est démontré comment analyser et comparer avec précision les valeurs de montant et éviter les pièges de précision en virgule flottante ; il définit également les limites de responsabilité en matière de vérification automatisée du code et de révision sémantique manuelle, et combine OmniDoc pour illustrer le chemin d'acceptation pratique de la livraison de traduction de documents.

Les chiffres dans la traduction ne semblent pas manquer, mais les unités ont peut-être été discrètement perdues. Une fois que les montants ou les quantités dans les devis, les déclarations et les données techniques sont incorrects, les implications commerciales réelles seront affectées, de sorte que les chiffres doivent être vérifiés individuellement avant la livraison.

Cet article s'adresse à ceux qui sont responsables de l'acceptation des documents traduits, en particulier ceux qui traitent fréquemment des devis, des états financiers et des fiches techniques. L'article expliquera pourquoi 1,234.50 peut devenir 1.234,50 dans la traduction, comment déclarer d'abord les règles de saisie, puis comparer les valeurs, et quels jugements doivent encore être effectués manuellement. Après lecture, vous pouvez créer un ensemble de contrôles à deux niveaux : le code automatisé est responsable des formats et des valeurs, et les humains sont responsables de la sémantique et des domaines métier.

Les exemples de cet article utilisent des échantillons synthétiques et le code a passé avec succès des contrôles d'échantillons dans un environnement isolé, mais cela ne représente pas une garantie de tous les fichiers réels ou effets du produit. Veuillez conserver les originaux avant de manipuler des documents importants.

Le nombre de traductions n'est pas petit, comment l'accepter ? Conclusion en une phrase

Pour la vérification numérique, les règles de saisie doivent d'abord être déclarées puis les valeurs normalisées comparées. La devise et l'unité sont conservées comme champs indépendants.

votre situationPratiques recommandéesraison
Même valeur, devise différenteVérifiez si l'étiquette de devise a été modifiéene doit pas être considéré comme équivalent par défaut
Le format n'est pas conforme à la déclarationVérifiez les paramètres régionaux source ou le processus d'extractionToute ponctuation ne doit pas être supprimée sans condition
Le signe négatif disparaîtCombiner le texte source et la vérification du contexte de traductionLes valeurs absolues ne doivent pas être automatiquement prises
Diminution de la précisionArrondir et enregistrer selon les règlesLes différences ne doivent pas être ignorées

Déclarez d'abord les règles de saisie

1,234.50 et 1.234,50 représentent respectivement des quantités identiques ou différentes dans les douanes de différentes régions. Sans spécifier au préalable le format à utiliser, le programme ne peut pas dire si les nombres traduits sont corrects.

Ne gère que deux formats explicites

Cet article couvre uniquement les deux formats suivants :

  • Virgule en milliers, point décimal : Par exemple 1,234.50
  • Milles de points, virgule décimale : Par exemple 1.234,50

Les espaces en milliers, les parenthèses pour les nombres négatifs, la notation scientifique et les autres méthodes d'écriture ne sont pas inclus dans la plage. Lorsque les règles relatives aux sources ne sont pas claires, il convient de résister aux conjectures plutôt que de se décider.

Vérifiez d'abord le format, puis effectuez la conversion décimale

La chaîne est d'abord vérifiée selon le format déclaré, puis convertie en décimal après l'avoir transmise.

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")

Les mêmes valeurs ne suffisent pas

Ce code reçoit la chaîne de montant qui a été positionnée et ne trouvera automatiquement le montant dans aucun document. Lors du positionnement des champs, l'étiquette, la devise et l'emplacement source doivent être conservés. Le même nombre, mais en passant des kilogrammes aux livres, ou du prix total au prix unitaire, ne constitue pas un contrôle correct.

Comparer les résultatsdevrait être vérifiéne devrait pas se faire automatiquement
Même valeur, devise différenteSi la marque monétaire a été modifiéeTraité comme équivalent par défaut
Le format n'est pas conforme à la déclarationAire de la source ou erreur d’extractionSupprimer sans condition toute ponctuation
Le signe moins a disparuTexte source et contexte de traductionPrend automatiquement des valeurs absolues
Précision réduiteSi l’arrondi se fait selon les règlesIgnorez toutes les différences

La décimale ne résout qu’une partie du problème

Ce que Decimal peut faire pour toi

  • Éviter les erreurs dans certaines représentations binaires en virgule flottante
  • Que les comparaisons numériques soient basées sur des résultats clairs et standardisés

Decimal ne peut pas le faire pour toi

  • Choisir des règles d’arrondi
  • Expliquer le montant de l’impôt
  • Effectuer la conversion du taux de change

Lors de la conversion de valeurs, les valeurs avant et après la conversion ainsi que les raisons doivent être conservées dans la liste de contrôle.

Les numéros dans les documents traduits méritent une acceptation séparée

Lors de l’utilisation de OmniDoc (entrée produit) pour traiter des devis, des rapports ou des documents techniques, l’acceptation peut être effectuée dans l’ordre suivant :

  1. Premièrement, organiser la liste de contrôle pour les montants et les unités, en listant les champs métier correspondant à chaque numéro.
  2. Comparez les éléments de la liste de contrôle avec la traduction un par un, en notant les différences de format, de monnaie, de signe moins et de précision.
  3. Retourner l’élément suspect dans le texte source pour confirmer le champ métier qu’il représente.

Les vérifications numériques sont responsables d’identifier les doutes, mais le jugement final doit encore être accompli en revenant au texte source.

Références : Python decimal.

📊 Comparaison des noyaux

FormatExempleMéthodes de manipulation
Virgules en milliers et décimales à points1,234.50Dans cette plage, analyser selon les règles de déclaration
Points en milliers et décimales à virgule1.234,50Dans cette plage, analyser selon les règles de déclaration
Espaces dans les milliers, parenthèses pour les nombres négatifs, notation scientifiqueNon applicable à cet articlePas dans le cadre du cadre, refusant de spéculer quand les règles sources sont floues

🎯 Quelle méthode te convient ?

Si vous gérez des citations ou des rapports

Commencez par organiser le montant et les listes de contrôle de l’unité, puis comparez chaque élément au manuscrit traduit.

Si vos documents utilisent d’autres notations numériques

Cet article ne couvre pas les espaces en milliers, les nombres négatifs entre parenthèses, ni la notation scientifique. D’abord, confirmez les règles sources et ne laissez pas le programme deviner.

Si vous devez faire des conversions de taux de change

Decimal ne réalisera pas la conversion pour vous ; veuillez noter les valeurs avant et après la conversion ainsi que les raisons dans la liste de contrôle.

❓ Foire aux questions (FAQ)

1. Pourquoi ne pas comparer directement les montants en utilisant des chiffres à virgule flottante ?

L’utilisation de Decimal peut éviter les erreurs dans certaines représentations binaires en virgule flottante, ce qui la rend plus adaptée à la comparaison numérique.

2. Le nombre peut-il être le même mais la monnaie différente, et cela peut-il être considéré comme équivalent ?

Il ne faut pas supposer qu’il est considéré comme équivalent ; vérifiez d’abord si le marquage de la monnaie a été modifié.

3. Les valeurs absolues peuvent-elles être prises automatiquement lorsque le signe négatif disparaît ?

Les valeurs absolues ne doivent pas être prises automatiquement ; vérifiez plutôt en conjonction avec le contexte des textes sources et traduits.

4. Le code peut-il automatiquement trouver le montant à partir d’un document ?

Non. Le code reçoit une chaîne de quantité prépositionnée ; lors de la localisation des champs, l’étiquette, la monnaie et la localisation source doivent être conservées.

📝 Résumé

La clé de la vérification numérique est d’abord de déclarer les règles de formatage, puis de comparer les valeurs standardisées, et de garder la monnaie et l’unité comme champs indépendants. Des vérifications automatisées sont utilisées pour identifier les points suspects, mais la signification commerciale doit encore être confirmée dans le texte source.

Faites l’expérience dès maintenant : téléchargez votre document pour commencer à traduire, tout en conservant la mise en forme originale

Mis à jour le 2026-11-14