• Thứ Hai, 20/08/2007 16:48 (GMT+7)

    Công nghệ xử lý đa ngữ với thư viện M17N trên Linux

    Từ lâu, trung tâm CNTT Thừa Thiên Huế (HueCIT) đã nghiên cứu một giải pháp xử lý đa ngữ tổng quát trên Linux (có thể sau này sẽ đưa sang Windows).

    Giải pháp của HueCIT dựa trên việc ứng dụng bộ gõ đa ngữ SCIM và thư viện M17N (viết tắt của multilingualization) - một thư viện xử lý văn bản đa ngôn ngữ viết bằng C, hỗ trợ cho việc nhập liệu và hiển thị đa ngôn ngữ cho các ứng dụng trên Linux. M17N là một dự án nguồn mở  được thực hiện bởi “nhóm M17N ” thuộc AIST (viện Khoa Học và Công Nghệ Cao Tsukuba, Nhật Bản).

    Do nhận thấy phương hướng phát triển của M17N có tính bao quát và tầm vóc quốc tế, đặt vấn đề xử lý ngôn ngữ một cách tổng quát nên HueCIT đã liên hệ với nhóm M17N  để cùng hợp tác phát triển các giải pháp đa ngữ cho VN, không chỉ bó hẹp trong vấn đề bộ gõ mà phải nghiên cứu cả các vấn đề như hiển thị, tìm kiếm, sắp xếp (sort), kiểm tra chính tả, tra cứu từ điển...; và cũng không bó hẹp trong xử lý tiếng Việt mà cả chữ Hán Việt, chữ Nôm, và đặc biệt là chữ viết dân tộc như Thái, Chàm, Khmer...

    Thư viện M17N

    Hình: Cấu trúc của thư viện M17N.

    Thư viện M17N là một phần mềm mã nguồn mở miễn phí, có thể sử dụng trong bất kỳ ứng dụng hay thư viện Linux/Unix nào, để thực hiện việc đa ngữ hóa cho ứng dụng. Nó trình bày dữ liệu văn bản đa ngữ bằng một cấu trúc dữ liệu gọi là M-text. M-text là một dạng chuỗi được thiết kế để thay thế cho chuỗi bình thường trong C, có các thuộc tính được gọi là thuộc tính văn bản, trong đó chứa các thông tin cần thiết cho việc nhập, hiển thị và chỉnh sửa văn bản. Nó dùng các cấu trúc dữ liệu cho phép chứa các thông tin trên mỗi ký tự một cách hiệu quả và cung cấp các hàm để nhập và hiển thị các M-text trên một hệ thống giao diện cửa sổ.

    Các ứng dụng đơn ngữ hiện đang tồn tại có thể được đa ngữ hóa một cách dễ dàng khi dùng thư viện M17N. Ví dụ, giả sử một chương trình ứng dụng vẽ ra một chuỗi tiếng Anh trong một cửa sổ bằng cách sử dụng một hàm đơn ngữ chuẩn; bây giờ nếu thay thế hàm đó bởi hàm tương ứng của M17N, thì việc dựng chữ cho ngôn ngữ cụ thể sẽ được thực hiện một cách tự động, giải phóng lập trình viên khỏi các tác vụ xử lý ngôn ngữ cụ thể. Địa chỉ tham khảo: www.M17N.org

    Bộ gõ đa ngữ SCIM

    SCIM, viết tắt của “Smart Common Input Method” là một nền hỗ trợ hơn ba mươi ngôn ngữ trên những hệ điều hành họ Linux, Unix. SCIM là một nền tảng phát triển cho IM (Input Method – tạm gọi là bộ gõ), đã được thừa nhận rộng rãi trong thế giới Linux, và là thành phần cài đặt mặc định của các hệ điều hành Linux phổ biến như Fedora, Ubuntu… Đa số các thành phần của SCIM là những mô đun có thể tải động, chỉ tải khi cần tới. Với kiến trúc như vậy, người phát triển có thể dễ dàng viết thêm IM riêng của chính mình trong một ít dòng mã.

    Các IM viết cho SCIM được tập hợp vào những mô đun IMEngine, chạy ở mặt sau (cũng gọi là chạy nền - BackEnd), độc lập với các mô đun chạy mặt tiền (FrontEnd) là phần giao diện hiển thị phụ thuộc môi trường, khi thay đổi môi trường như từ GTK sang KDE (các môi trường cung cấp các khả năng đồ họa cho Linux) thì không phải biên dịch lại các mô đun IMEngine. M17N chính là một trong các IMEngine chạy nền phổ thông nhất và được hỗ trợ sớm nhất của SCIM, được thừa nhận rộng rãi trong thế giới Linux và đã được đưa vào trong phần option của các bộ cài đặt Linux Fedora, Ubuntu… Địa chỉ tham khảo: www.scim-im.org

    Giải pháp đa ngữ trên Linux cho Việt Nam

    Hình: Bộ gõ tiếng Việt kiểu telex “vi-telex” của M17N  đang hoạt động.
    Với tiếng Việt (chữ quốc ngữ): HueCIT đã cung cấp cho M17N  các thông tin về hệ thống chữ viết Việt, các vần cơ bản, các quy tắc bỏ dấu tiếng Việt, cũng như các quy ước gõ tắt… Tóm lại, HueCIT nêu ra để giải quyết một cách bài bản các vấn đề cần xử lý, bắt đầu từ những vấn đề gốc rễ ở ngôn ngữ học và văn tự tiếng Việt. Các xử lý ngôn ngữ cao hơn hiện chưa đề nghị với M17N, nhưng cấu trúc của M17N cho phép hỗ trợ những cái đó dễ dàng sau này.

    Về xử lý chữ Hán và chữ Nôm, đây là vấn đề có vẻ không phổ cập, nhưng xã hội vẫn có các nhu cầu thật sự. HueCIT đã chuyển cho M17N các thiết kế bộ gõ chữ Hán và chữ Nôm theo âm đọc tiếng Việt với kiểu gõ Telex, theo khuôn mẫu định dạng của M17N, sử dụng với các font chữ Nôm chuẩn Unicode 3.1 như font “NomNa” hay “Chu Nom Minh U” hay “Han Nom A/B”.

    Về xử lý chữ Thái Việt Nam: HueCIT đã liên hệ với nhóm nghiên cứu người Thái ở Sơn La của thạc sĩ Lò Mai Cương để có tài liệu về các quy luật gõ chữ Thái và đã gửi cho M17N thiết kế một IM chữ Thái thuận tiện cho người dùng và phù hợp với các thói quen viết của người bản ngữ, bộ gõ này sử dụng bộ mã chữ Thái VN 2 byte vừa được Unicode chấp nhận.

    Với một số ngôn ngữ dân tộc khác: chữ Nôm Tày có thể xử lý hoàn toàn giống như với chữ Nôm Việt, còn chữ Chăm và Khmer có thể xử lý theo khuôn mẫu như với chữ Thái Việt Nam.

    Kenichi Handa & Phan Anh Dũng

    ID: O0708_1