アットウィキロゴ

自然言語処理zz

import java.io.*;

class pro{

String[] str=new String[1000];
String[] ph=new String[1000];
String[] phs=new String[1000];
String[][] word=new String[1000][100];
String[] dic=new String[10000];
double[] p=new double[10000];
int[] wordnumber=new int[1000];
int[] number=new int[10000];
int[] z=new int[1000];
int[] zz=new int[100];
int znumber;
String data;
int s,sx,m,mx,snumber,dicnumber;
int h,s1;
int c1;
double pt,p1,maxp;
int t1;

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

pro(){

readfile("aa.txt");

String[] x=data.split("。");

for (s=0;s<x.length;s++){
str[s+1]=x[s];
}
snumber=x.length;

for (s=1;s<snumber+1;s++){
word[s][1]=str[s];
wordnumber[s]=1;
}

mx=0;
for (s=1;s<snumber+1;s++){
for (m=1;m<wordnumber[s]+1;m++){
h=0;
for (sx=1;sx<dicnumber+1;sx++){
if(word[s][m].equals(dic[sx]))h=100;
}
if(h<50)mx=mx+1;
if(h<50)dic[mx]=word[s][m];
}
}
dicnumber=mx;

for (sx=1;sx<dicnumber+1;sx++){
number[sx]=0;
}

for (s=1;s<snumber+1;s++){
for (m=1;m<wordnumber[s]+1;m++){
for (sx=1;sx<dicnumber+1;sx++){
if(word[s][m].equals(dic[sx]))number[sx]=number[sx]+1;
}
}
}

s1=0;
for (sx=1;sx<dicnumber+1;sx++){
s1=s1+number[sx];
}

p[0]=(double)1/s1;
for (sx=1;sx<dicnumber+1;sx++){
p[sx]=(double)number[sx]/s1;
}

c1=str[1].length();
t1=0;
maxp=-999;
while(t1<100){
z[0]=1;
for(s=1;s<c1;s++){
z[s]=0;
if(Math.random()>0.5)z[s]=1;
}

zz[1]=0;
sx=1;
for(s=1;s<c1;s++){
if(z[s]==1)sx=sx+1;
if(z[s]==1)zz[sx]=s;
}
znumber=sx;
for(s=1;s<znumber;s++){
ph[s]=str[1].substring(zz[s],zz[s+1]);
}
ph[znumber]=str[1].substring(zz[znumber],c1);

pt=1;
for(s=1;s<znumber+1;s++){
p1=p[0];
for (sx=1;sx<dicnumber+1;sx++){
if(ph[s].equals(dic[sx]))p1=p[sx];
}
pt=p1*pt;
}

for(s=1;s<znumber+1;s++){
if(pt>maxp)phs[s]=ph[s];
}
if(pt>maxp)maxp=pt;

System.out.println(pt);
t1=t1+1;
}



}

void readfile(String file){

String st;
BufferedReader br;

data="";

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

}



}
最終更新:2011年05月22日 16:21