アットウィキロゴ

SVM SV

import java.io.*;

class svm{

String[] data=new String[50000];
String[] dic=new String[30000];
String[] p=new String[101];
int[] np=new int[101];
int[] y=new int[300];
int[][] num=new int[300][30000];
double[][] rate=new double[300][101];
int s,sx,sxs,datanumber,dicnumber;
int n,h,wordnumber;
String file;
int z1,tx;
double[] a=new double[101];
double b;

public static void main(String[] args){
svm test=new svm();
}

svm(){        

readfile("dic.txt");

dicnumber=datanumber;

for(s=1;s<dicnumber+1;s++){
dic[s]=data[s];
}

readfile("100.txt");

for(s=1;s<101;s++){
p[s]=data[s];
}

for(s=1;s<101;s++){
sxs=0;
for(sx=1;sx<dicnumber+1;sx++){
if(p[s].equals(dic[sx]))sxs=sx;
}
np[s]=sxs;
}

readfile("data.txt");
for(s=1;s<219;s++){
String[] x=data[s].split(",");
for(sx=0;sx<x.length;sx++){
num[s][sx+1]=Integer.parseInt(x[sx]);
}
}


for(s=1;s<219;s++){
z1=0;
for(sx=1;sx<101;sx++){
tx=np[sx];
z1=z1+num[s][tx];
}
for(sx=1;sx<101;sx++){
tx=np[sx];
rate[s][sx]=(double)num[s][tx]/z1;
}
}

for(s=1;s<193;s++){
y[s]=0;
}

for(s=193;s<219;s++){
y[s]=1;
}


makesvm mk=new makesvm();
mk.rate=rate;
mk.y=y;
mk.makedata();
a=mk.a;
b=mk.b;


for(s=1;s<101;s++){
sx=np[s];
System.out.print(dic[sx]);
System.out.print(",");
System.out.println(a[s]);
}




}



void readfile(String file){

String str;
BufferedReader br;  

s=0;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"SJIS"));  
while((str = br.readLine()) != null) {  
s=s+1;
data[s]=str;  
}
br.close();
} catch (IOException e) {System.out.println(e);}  

datanumber=s;

}





}
最終更新:2011年06月25日 12:33