现在的位置: 首页 > 综合 > 正文

Java中调用SVM

2013年10月17日 ⁄ 综合 ⁄ 共 1086字 ⁄ 字号 评论关闭

首先将"libsvm.jar"加载进入项目

然后可以使用如下程序调用

import java.io.*;
import java.util.StringTokenizer;

import libsvm.*;

/*
 * 作者:曹浩
 * 功能:在Java语言中调用SVM模型对特征文件进行分类。
 */
public class TestLibsvm
{
 private static double atof(String s)
 {
  return Double.valueOf(s).doubleValue();
 }

 private static int atoi(String s)
 {
  return Integer.parseInt(s);
 }
 public static void main(String[] args)
 {
  
  try{
   
   //载入模型文件
   svm_model model = svm.svm_load_model("d://model.3");
   //读入待预测文件
   BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream(new File("D://testData.abs.chinese"))));
   
   while(true)
   {
    String line = input.readLine();
    if(line == null) break;

    StringTokenizer st = new StringTokenizer(line," /t/n/r/f:");

    double target = atof(st.nextToken());
    int m = st.countTokens()/2;
    svm_node[] x = new svm_node[m];
    for(int j=0;j<m;j++)
    {
     x[j] = new svm_node();
     x[j].index = atoi(st.nextToken());
     x[j].value = atof(st.nextToken());
    }
    double predict_value[] = new double[m];
    //输出使用载入的模型预测的标签
    System.out.println(svm.svm_predict(model,x));
    
   }
   
   
  }
  catch(Exception exp)
  {
   exp.printStackTrace();
  }
 }
}

抱歉!评论已关闭.