mayabot/fastText4j
Implementing Facebook's FastText with java
🚀 fastText4j: Phiên bản Java/Kotlin của thư viện FastText từ Facebook
Một bản cài đặt hoàn chỉnh FastText bằng Kotlin & Java, tương thích 100% với mô hình C++ gốc.
fastText4j là một thư viện cài đặt lại thuật toán FastText của Facebook bằng ngôn ngữ Kotlin và Java. FastText là một thư viện mã nguồn mở do Facebook phát triển, chuyên dùng cho đại diện và phân loại văn bản thông qua học sâu mạng ngữ nghĩa. Dự án hỗ trợ đầy đủ các chức năng như huấn luyện mô hình phân loại (supervised), học biểu diễn từ (word embeddings) dạng Skipgram/Cow, kiểm tra độ chính xác, dự đoán nhãn, tìm từ gần nghĩa và thực hiện phép tính lượng từ (analogies).
Mã nguồn dự án hiện đã được chuyển sang quản lý tại dự án Mynlp.
✨ Điểm nổi bật
- 100% bằng Kotlin & Java: Cài đặt hoàn toàn bằng hai ngôn ngữ này, dễ tích hợp vào dự án JVM.
- Tương thích mô hình C++ gốc: Hỗ trợ tải và sử dụng trực tiếp các tệp mô hình đã huấn luyện bởi phiên bản C++ chính thức.
- Hỗ trợ huấn luyện & kiểm tra: Cung cấp API để huấn luyện mô hình phân loại và đánh giá bằng P@k, R@k, F1-Score.
- Lưu & tải mô hình: Hỗ trợ lưu mô hình định dạng nội bộ và tải lại để sử dụng.
- Nén mô hình bằng Quantizer: Giảm kích thước mô hình phân loại thông qua kỹ thuật nén định lượng.
- Dự đoán & tìm kiếm từ gần nghĩa: Dự đoán nhãn cho câu/văn bản mới và tìm các từ có nghĩa tương tự.
- Hỗ trợ mmap: Đọc tệp mô hình lớn bằng cơ chế ánh xạ bộ nhớ để tiết kiệm RAM.
💡 Vì sao đáng chú ý
Khác với các thư viện wrapper gọi trực tiếp thư viện C++, fastText4j là bản cài đặt nguyên sạch bằng Kotlin/Java, giúp dự án dễ dàng triển khai trên môi trường JVM mà không cần phụ thuộc hệ thống phức tạp. Đặc biệt, khả năng tương thích trực tiếp với mô hình C++ gốc giúp người dùng tận dụng ngay các mô hình đã được huấn luyện mà không cần đào tạo lại.
Phù hợp với các ứng dụng xử lý ngôn ngữ tự nhiên trên nền tảng Java/Kotlin như phân loại tin tức, chatbot, tìm kiếm ngữ nghĩa, hoặc khai thác kiến thức từ mô hình ngôn ngữ lớn.
#FastText #Kotlin #Java #WordEmbeddings #TiniX
Similar Projects
Discover other similar projects and AI models.
Using pre trained word embeddings (Fasttext, Word2Vec)
An experiment about re-implementing supervised learning models based on shallow neural network approaches (e.g. fastText) with some additional exclusive features and nice API. Written in Python and fully compatible with Scikit-learn.
Extremely simple and fast word2vec implementation with Negative Sampling + Sub-sampling