Số lượng dịch không ít mà lại bị mất đơn vị: việc kiểm tra nên chia làm 2 cấp độ

Bài viết này đề xuất một chiến lược xác minh theo thứ bậc để giải quyết điểm khó khăn trong việc ghép số lượng với các đơn vị trong việc chấp nhận bản dịch. Thông qua mô-đun thập phân của thư viện chuẩn Python, nó được trình bày cách phân tích và so sánh chính xác các giá trị số lượng và tránh bẫy chính xác của dấu phẩy động; nó cũng xác định ranh giới trách nhiệm của việc xác minh mã tự động và xem xét ngữ nghĩa thủ công, đồng thời kết hợp OmniDoc để minh họa đường dẫn chấp nhận thực tế của việc phân phối bản dịch tài liệu.

Những con số trong bản dịch dường như không bị thiếu nhưng có thể các đơn vị đã bị mất một cách âm thầm. Khi số lượng hoặc số lượng trong báo giá, báo cáo và dữ liệu kỹ thuật không chính xác, ý nghĩa kinh doanh thực tế sẽ bị ảnh hưởng, do đó các con số cần được kiểm tra riêng trước khi giao hàng.

Bài viết này dành cho những người chịu trách nhiệm nghiệm thu tài liệu dịch thuật, đặc biệt là những người thường xuyên làm việc với các báo giá, báo cáo tài chính và bảng thông số kỹ thuật. Bài viết sẽ giải thích tại sao 1,234.50 có thể trở thành 1.234,50 trong bản dịch, cách khai báo quy tắc đầu vào trước rồi so sánh các giá trị và những nhận định nào vẫn phải thực hiện thủ công. Sau khi đọc, bạn có thể xây dựng một bộ kiểm tra hai lớp: mã tự động chịu trách nhiệm về các định dạng và giá trị, còn con người chịu trách nhiệm về ngữ nghĩa và các lĩnh vực kinh doanh.

Các ví dụ trong bài viết này sử dụng các mẫu tổng hợp và mã đã vượt qua quá trình kiểm tra mẫu trong môi trường biệt lập nhưng điều này không thể hiện sự đảm bảo về tất cả các tệp thực hoặc hiệu ứng sản phẩm. Vui lòng giữ lại bản gốc trước khi xử lý các tài liệu quan trọng.

Số lượng bản dịch không hề nhỏ, làm sao chấp nhận được? Một câu kết luận

Để xác minh bằng số, các quy tắc đầu vào phải được khai báo trước và sau đó là các giá trị chuẩn hóa được so sánh. Tiền tệ và đơn vị được giữ lại dưới dạng các trường độc lập.

hoàn cảnh của bạnCác phương pháp được đề xuấtlý do
Cùng giá trị, khác loại tiền tệKiểm tra xem thẻ tiền tệ đã được thay đổi chưakhông nên được coi là tương đương theo mặc định
Định dạng không phù hợp với câu lệnhKiểm tra ngôn ngữ nguồn hoặc quá trình trích xuấtTất cả các dấu câu không nên được loại bỏ vô điều kiện
Dấu âm biến mấtKết hợp kiểm tra ngữ cảnh văn bản nguồn và bản dịchGiá trị tuyệt đối không nên được lấy tự động
Giảm độ chính xácLàm tròn và ghi theo quy địnhNhững khác biệt không nên bị bỏ qua một cách tùy tiện

Khai báo quy tắc đầu vào trước

1,234.50 và 1.234,50 lần lượt đại diện cho số lượng giống nhau hoặc khác nhau trong phong tục tập quán của các vùng khác nhau. Nếu không chỉ định trước định dạng nào sẽ sử dụng, chương trình không thể biết liệu số được dịch có chính xác hay không.

Chỉ xử lý hai định dạng rõ ràng

Bài viết này chỉ bao gồm hai định dạng sau:

  • Dấu phẩy hàng nghìn, dấu chấm thập phân: Ví dụ 1,234.50
  • Chấm hàng nghìn, dấu phẩy thập phân: Ví dụ 1.234,50

Khoảng trắng ở hàng nghìn, dấu ngoặc cho số âm, ký hiệu khoa học và các phương pháp viết khác không được bao gồm trong phạm vi. Khi các quy tắc nguồn không rõ ràng, nên chống lại việc phỏng đoán thay vì quyết định nó.

Xác minh định dạng trước, sau đó thực hiện chuyển đổi thập phân

Đầu tiên, chuỗi được kiểm tra theo định dạng đã khai báo, sau đó được chuyển thành Thập phân sau khi truyền nó.

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

Các giá trị giống nhau là không đủ

Mã này nhận chuỗi số tiền đã được định vị và sẽ không tự động tìm số tiền từ bất kỳ tài liệu nào. Khi định vị các trường, nhãn, tiền tệ và vị trí nguồn phải được giữ nguyên. Cùng một con số nhưng thay đổi từ kilôgam sang bảng Anh, hoặc tổng giá sang đơn giá, không phải là cách kiểm tra chính xác.

So sánh kết quảnên được kiểm trakhông nên được thực hiện tự động
Cùng giá trị, khác loại tiền tệLiệu nhãn hiệu tiền tệ có bị thay đổi hay khôngĐược coi là tương đương theo mặc định
Định dạng không phù hợp với câu lệnhVùng nguồn hoặc lỗi trích xuấtXóa vô điều kiện tất cả các dấu câu
Dấu âm biến mấtVăn bản nguồn và bối cảnh dịch thuậtTự động lấy giá trị tuyệt đối
Giảm độ chính xácCó làm tròn theo quy định khôngBỏ qua mọi khác biệt

Số thập phân chỉ giải quyết được một phần vấn đề

Số thập phân có thể giúp bạn làm điều đó

  • Tránh một số lỗi biểu diễn dấu phẩy động nhị phân nhất định
  • So sánh số cơ sở trên kết quả chuẩn hóa rõ ràng

Số thập phân không thể làm điều đó cho bạn

  • Chọn quy tắc làm tròn
  • Giải thích số thuế
  • Thực hiện chuyển đổi tỷ giá hối đoái

Bất cứ khi nào bạn thực hiện bất kỳ chuyển đổi nào thành giá trị số, bạn nên giữ các giá trị trước và sau chuyển đổi cũng như lý do chuyển đổi trong danh sách kiểm tra.

Các số trong file dịch cần được chấp nhận riêng

Khi sử dụng OmniDoc (cổng thông tin sản phẩm) để xử lý báo giá, báo cáo hoặc dữ liệu kỹ thuật, bạn có thể chấp nhận chúng theo thứ tự sau:

  1. Đầu tiên hãy phân loại các mục kiểm tra về số lượng, đơn vị và liệt kê các lĩnh vực kinh doanh tương ứng với từng số.
  2. Đối chiếu từng mục kiểm tra với bản thảo dịch thuật, ghi lại những khác biệt về hình thức, đơn vị tiền tệ, dấu âm và độ chính xác.
  3. Đối với các mục đáng ngờ, hãy quay lại văn bản nguồn để xác nhận nó đại diện cho lĩnh vực kinh doanh nào.

Kiểm tra kỹ thuật số có trách nhiệm phát hiện những nghi ngờ và phán quyết cuối cùng vẫn cần được hoàn thành bằng cách quay lại văn bản nguồn.

Tham khảo: Python decimal.

📊 So sánh cốt lõi

Định dạngVí dụPhương pháp xử lý
dấu phẩy hàng nghìn, dấu chấm thập phân1,234.50Trong phạm vi, được phân tích cú pháp theo quy tắc khai báo
Dấu chấm, hàng nghìn, dấu phẩy, số thập phân1.234,50Trong phạm vi, được phân tích cú pháp theo quy tắc khai báo
Dấu cách hàng nghìn, dấu ngoặc cho số âm, ký hiệu khoa họcKhông áp dụng cho bài viết nàyKhông nằm trong phạm vi, từ chối đoán khi không rõ quy tắc nguồn

🎯 Phương pháp nào phù hợp với bạn?

Nếu bạn xử lý báo giá hoặc báo cáo

Đầu tiên hãy sắp xếp các mục kiểm tra về số lượng và đơn vị, sau đó kiểm tra từng mục một với bản thảo bản dịch.

Nếu file của bạn sử dụng phương pháp ghi số khác

Bài viết này không bao gồm các khoảng trắng trong hàng nghìn, số âm trong ngoặc hoặc ký hiệu khoa học. Hãy xác nhận quy tắc nguồn trước, đừng để chương trình đoán.

Nếu bạn cần thực hiện chuyển đổi tỷ giá hối đoái

Decimal sẽ không thực hiện việc chuyển đổi cho bạn, hãy ghi lại các giá trị trước và sau khi chuyển đổi và lý do vào danh sách.

❓ Câu hỏi thường gặp (FAQ)

1. Tại sao không so sánh số lượng trực tiếp bằng số dấu phẩy động?

Sử dụng Decimal có thể tránh được một số lỗi biểu diễn dấu phẩy động nhị phân nên phù hợp hơn cho việc so sánh số.

2. Nếu số lượng giống nhau nhưng đơn vị tiền tệ khác nhau thì có được coi là tương đương không?

Theo mặc định, không được coi là tương đương, trước tiên hãy kiểm tra xem thẻ tiền tệ có bị thay đổi hay không.

3. Giá trị tuyệt đối có thể tự động lấy khi dấu âm biến mất không?

Giá trị tuyệt đối không được lấy tự động mà phải được kiểm tra cùng với ngữ cảnh của văn bản nguồn và bản dịch.

4. Mã có thể tự động tìm số tiền từ bất kỳ tài liệu nào không?

không thể. Mã nhận chuỗi số lượng đã được định vị. Nhãn, tiền tệ và vị trí nguồn phải được giữ lại khi định vị trường.

📝 Tóm tắt

Chìa khóa để xác minh số là khai báo các quy tắc định dạng trước tiên, sau đó so sánh các giá trị được chuẩn hóa và giữ đơn vị tiền tệ và đơn vị dưới dạng các trường độc lập. Kiểm tra tự động được sử dụng để phát hiện những điểm nghi ngờ và ý nghĩa kinh doanh vẫn cần được xác nhận bằng cách quay lại văn bản nguồn.

Thử ngay: Tải tài liệu lên để bắt đầu dịch, giữ nguyên bố cục ban đầu

Cập nhật lúc 2026-11-14