Posted in Khác

Sử dụng LibSvm trong Java

LibSvm có file jar để có thể chạy trong chương trình Java . Tuy nhiên chỉ có 1 số hàm được cung cấp như hàm : svm-train  , svm-predict  . Không có hàm để train tìm tham số tốt nhất . Vì thế chúng ta sẽ phải chạy cmd để tìm tham số tốt nhất . Sau khi tìm được tham số tốt nhất và train ra model . Chúng ta sẽ đi xây một thư viện Java cung cấp API phân loại 1 chuỗi String nội dung bài báo .

Load model từ filePath

model = svm.svm_load_model(filePath);

Xây dựng vector của chuỗi String bài báo

Sẽ có dạng svm_node[] nodes

Khai báo :  svm_node[] nodes = new svm_node[nodes size];

Với mỗi node trong nodes , set node.index là tên feature và node.index là giá trị của feature này . Mỗi node sẽ có index giống index của features định dạng libsvm.Có value sẽ là giá trị features định dang libsvm(Phải scaling giống như cách scaling  từ model file , bạn có thể scaling bằng phương pháp của bạn , hoặc dùng scaling của libsvm thì phải biết đc min_value , max_value của từng feature trong tập train để scaling lại test)

Sau đó có thể lấy ra nhãn bằng cách :

double label=svm.svm_predict(model,nodes);

Từ đây chúng ta có thể xây dựng 1 thư viện phân loại báo .

Mọi người có thể download thư viện ở đây : https://drive.google.com/file/d/0ByH8KMtJGmHHVi15dTlfdVRkc1E

Advertisements

2 thoughts on “Sử dụng LibSvm trong Java

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s