Dịch thuật với công cụ CAT

Chuyển dữ liệu dịch cũ thành bộ nhớ dịch

Đối với người / nhóm / công ty dịch thuật đã từng dịch nhiều mà có các tài liệu được dịch không dùng phần mềm CAT, mà về sau chuyển sang dùng CAT, thì cần chuyển các kết quả dịch cũ thành dữ liệu bộ nhớ dịch – translation memory (TM), nhằm tận dụng được chúng trong những dự án dịch mới.

Cách thức: dùng các phần mềm để Align (gióng câu) tự động.

Một vài kinh nghiệm khi tôi dùng phần mềm miễn phí LF Aligner để chuyển dữ liệu dịch cũ thành bộ nhớ dịch:

+ Chia cụm dữ liệu cần align ra thành càng nhỏ càng tốt, giúp giảm sai số tích lũy khi làm align (càng về sau càng có thể bị lệch nhiều). Ví dụ: có bản dịch của cả quyển sách thì tách ra thành từng chương rồi chạy phần mềm align từng chương. Chúng tôi làm align cho sách của tủ sách Nhất Nghệ Tinh mà bản dịch ứng với bản gốc theo từng trang, khi đó cắt file PDF ra từng trang. Để đỡ công sức thì tôi cũng cho LF Aligner chạy tự động cả thư mục (phải viết chút code), chứ không phải chạy từng file.

+ LF Aligner có thể nhận file PDF để làm align. Tuy nhiên, nên thêm bước convert PDF sang DOCX mà không dùng trực tiếp file PDF, để tránh lỗi gây ra do văn bản có 2 cột, hoặc do có text nằm trong hình ảnh, bảng biểu. Đó là vì LF aligner dùng công cụ pdftotext để lấy text ra từ file PDF mà không phân biệt được văn bản có nhiều cột, và chỗ nào có hình ảnh. Thành ra với những chỗ nào có hình ảnh thì text trong hình sẽ lẫn lộn vào text trong đoạn văn xung quanh, chất lượng align sẽ thấp.

+ Có DOCX thì cũng có thể cho LF aligner chạy trên DOCX được, tuy nhiên để kiểm soát được nhiều hơn và trong trường hợp có khả năng lập trình, thì ta tự bóc tách DOCX ra các câu đặt trong file TXT. Tôi dùng Python với thư viện docx, giúp bóc tách trong file DOCX ra. Trong quá trình bóc tách này tôi cắt bớt mấy đoạn text quá ngắn (ví dụ: ngắn hơn 20 ký tự thì loại ra, vì chắc không phải là một câu), loại bỏ text trong các hình ảnh và bảng (thực ra là python-docx tự loại bỏ text trong các phần đó khi chạy lệnh truy cập paragraph.text đơn giản, nếu muốn lấy text trong hình ảnh và tables thì cần dùng lệnh paragraph._element.xpath() để duyệt những thành phần XML có tên ‘w:t’ trong file DOCX).

+ Đối với file PDF mà văn bản không chép ra được (ví dụ là PDF từ scan tài liệu, chụp hình): có thể dùng phần mềm OCR để nhận dạng văn bản, chuyển chúng thành dạng DOCX hoặc XML (Google Cloud Vision hay ABBYY Cloud OCR có thể trả ra file XML) để từ đó lấy text ra. Tôi có viết chương trình Python để xử lý dữ liệu từ phần mềm OCR, nhằm lấy text ra và làm align với LF Aligner, mã nguồn ở https://gitlab.com/dichthuat/tools/ocr.

+ Sau khi dùng phần mềm để làm align, thì nên có người xem lại để loại bỏ bớt “rác” trong kết quả thu được. Với một quyển sách có khoảng 500 trang, mỗi trang cho là cỡ 100 câu, thì ta có thể kiếm được 50 ngàn câu trong đó, để làm bộ nhớ dịch (TM). Tuy nhiên khả năng mà sau này dịch, ta gặp lại một câu trong bộ nhớ dịch thì rất nhỏ, có thể là 1 phần triệu (trừ trường hợp dịch phiên bản mới của quyển đó, thì có 80% khả năng lặp lại). Thành ra, bỏ nhiều công sức để chỉnh sửa câu chữ trong TM là không đáng công, khi ta làm công tác “hậu kiểm” cho TM thì chỉ cần đọc lướt từng cặp câu, rồi cứ thẳng tay mà xóa cặp câu nào không tương ứng.

+ LF Aligner có xuất dữ liệu align ra các dạng XLS và TMX. Để chỉnh sửa bằng tay thì nên dùng file XLS để mở bằng các phần mềm như LibreOffice / OpenOffice hay MS Excel, các phần mềm này phổ thông, nhiều người dùng thành thạo. Sau đó dùng phần mềm Heartsome TMX Editor 8 (miễn phí, có các bản cài đặt download ở: Microsoft OneDriveDropbox) để convert từ file XLS sang TMX (là định dạng phổ biến cho bộ nhớ dịch).