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