Dự án S

Mấy lời bộc bạch về Dự án S

Tôi tốt nghiệp ngành Ngôn ngữ học (Trường ĐHKHXH&NV – ĐHQGHN) năm 2005. Nhưng những công việc sau đó không trực tiếp liên quan tới ngành đã học. Giờ thì người ta biết tôi với tư cách là một nhiếp ảnh gia chuyên nghiệp tại Hà Nội.

Tuy nhiên tôi vẫn duy trì ngonngu.net – một website tôi làm từ hồi còn là sinh viên – và vẫn quan tâm đến một số vấn đề liên quan tới tiếng Việt.

Trước là tại COVID-19

Dự án S ra đời một cách rất tình cờ trong thời gian giãn cách xã hội, manh nha từ nửa cuối tháng 8/2021.

Là một người chụp ảnh nên khi buộc phải ở nhà thì tôi phải nghĩ ra việc khác cho đỡ buồn. Vì thế tôi quyết định tự học Python – một ngôn ngữ lập trình mà từ lâu tôi đã muốn học mà không có thời gian.

Một trong những bài thực hành đầu tiên là dùng Python để tạo tất cả các âm tiết tiếng Việt có thể có và đọc được. Rồi tôi nhớ ra danh sách âm tiết tiếng Việt mà mình đã đăng trên luom.tv năm 2015 (Nhiều người cho biết là danh sách này rất hữu ích với công việc của họ: giáo viên tiểu học, phụ huynh và học sinh, người viết rap, người làm sáng tạo nội dung v.v.) Danh sách này vốn được phát triển từ cuốn Từ điển vần của Hoàng Phê và so với thực tiễn thì nó còn thiếu một số âm tiết. Do đó tôi quyết định là sẽ làm một “bài tập” lớn hơn: Tìm các âm tiết ngoài danh sách đã biết.

Đầu tiên là phải thu thập ngữ liệu. Tôi viết một chương trình tự động thu thập ngữ liệu từ khoảng 10 tờ báo điện tử. Hiện tại thì ngữ liệu này đã có hơn 5 triệu bài báo và vẫn tiếp tục được bổ sung.

Từ mỗi bài báo, chương trình sẽ đối chiếu và tìm ra các âm tiết chưa được ghi nhận. Các âm tiết này sẽ được đưa vào một danh sách riêng để tôi kiểm tra thủ công trước khi quyết định là có chấp nhận và cho vào danh sách chính thức hay không. Tính đến nay tôi đã bổ sung được khoảng 120 âm tiết.

Để dễ dàng hơn cho người dùng, tôi làm công cụ tra cứu âm tiết theo vần. Công cụ này có các tính năng sắp xếp theo ABC, lọc theo thanh điệu và âm đệm. Tiện tay, tôi bổ sung tính năng giúp người dùng biết được các từ (ghép) chứa âm tiết đó. Nếu chưa có từ nào thì người dùng có thể tra cứu trong ngữ liệu và/hoặc đề xuất bổ sung.

Sau là do bạn bè xúi giục

Trong thời gian này, một người bạn nhờ tôi sắp xếp theo thứ tự ABC cho chỉ mục (index) của một cuốn sách chuẩn bị xuất bản. Đây là một yêu cầu khá đặc biệt bởi nhiều chỉ mục có dạng danh sách nhiều cấp, ví dụ:

cây thân gỗ 14, 60-61
    cọ 60
    đước Ấn Độ 75
    phong
        đường 61
        rụng lá 60
    rụng lá 60
    thường xanh 60

chà là 45

châu chấu 63

Tôi cũng tận dụng giải pháp này để thêm tuỳ chọn xếp danh sách theo thứ tự ưu tiên tên trước, họ sau. Xem video ví dụ.

Ban đầu, tôi dùng Python để xử lí. Tuy nhiên, khi đưa công cụ sắp xếp này vào Dự án S, tôi chuyển sang xử lí hoàn toàn bằng JavaScript để đảm bảo quyền riêng tư cho người dùng.

Về tên gọi và tương lai của Dự án

Vì dự án này chủ yếu liên quan tới việc tìm kiếm (searching), xử lí chuỗi (string), âm tiết (syllable) và sắp xếp (sorting) nên tôi đặt tên nó là Dự án S.

Cũng may mắn là khi hết thời gian giãn cách xã hội thì Dự án S cũng đã tương đối hoàn chỉnh. Tôi lại quay lại với công việc chính của mình là chụp ảnh.

Thỉnh thoảng tôi cũng dành thời gian rảnh rỗi để cập nhật, bổ sung tính năng mới cho dự án này.