Cốc Cốc chia sẻ mã nguồn mở của thư viện tokenizer

nlp

#1

Cốc Cốc chia sẻ mã nguồn mở trên github của thư viện tách từ tiếng Việt (tokenizer) vốn dĩ được sử dụng trong công cụ tìm kiếm Cốc Cốc. Mã nguồn bao gồm 1 thư viện C++ dạng “header-only”, 2 công cụ thao tác dòng lệnh tiện dụng dành cho việc tách từ và một số thao tác xử lý tiếng Việt đơn giản, cùng với một binding cho ngôn ngữ Java (sử dụng JNI). Phần README trên github cung cấp mô tả cách cài đặt và sử dụng thư viện cũng như một số kết quả đánh giá chất lượng và thử nghiệm tốc độ.

Link: https://github.com/coccoc/coccoc-tokenizer

Những tính năng chính:

  1. Thư viện tokenizer này xử hữu tốc độ dữ liệu nhanh hơn so với những thư viện khác – đây cũng là mục đích mà Cốc Cốc nhắm tới khi bắt đầu dự án. Hiện tại tốc độ xử lý vào khoảng 15 triệu ký tự một giây trên một máy tính cá nhân phổ thông.

  2. Chức năng quan trọng nhất hiển nhiên là tách từ tiếng Việt (cả có dấu lẫn không dấu).

  3. Chức năng tách các từ được viết liền, ví dụ như “dantri” hay “machinelearningcoban”.

Thuật toán sử dụng hướng tiếp cận dựa trên từ điển có thể tùy chỉnh. Thời gian khởi động khoảng từ 1 đến 2 giây trên một máy tính cá nhân với phần cứng phổ thông. Nếu sử dụng với dữ liệu lớn, sau khi khởi tạo, thư viện hỗ trợ sử dụng lâu dài (xử lý theo từng batch, có thể chạy đa luồng). Chi phí bộ nhớ vào khoảng 300Mb cho một đối tượng được khởi tạo hoàn chỉnh.

Thư viện có thể được sử dụng cho bất kỳ bài toán xử lý ngôn ngữ nào cần những từ tiếng Việt hoàn chỉnh thay vì chỉ là những tiếng rời rạc. Ở Cốc Cốc, thư viện này là một trong những thành phần trọng yếu, được sử dụng trong những dịch vụ như thêm dấu tự động và kiểm tra lỗi chính tả, trong những bài toán phân loại văn bản, trong định hướng quảng cáo theo hành vi, trong xếp hạng kết quả tìm kiếm,…

Chúng tôi hy vọng sản phẩm này sẽ đem lại hữu ích cho người dùng quan tâm đến thuật toán tách từ. Tuy nhiên, thư viện này vẫn còn những thiếu sót, chúng tôi luôn mong muốn nhận được những góp ý và nhận xét để phát triển, nâng cao sản phẩm. Hãy liên lạc ngay với đội ngũ sản phẩm Cốc Cốc qua github nếu bạn có những ý kiến đóng góp hoặc muốn gợi ý thêm tính năng mới nhé!