アットウィキロゴ

形態要素ll

import java.io.*;
import java.util.List;
import net.reduls.igo.Morpheme;
import net.reduls.igo.Tagger;

public class ren{

String[] data=new String[50000];
String[] article=new String[500];
String[] word=new String[10000];
String[][] memo=new String[200][10000];
int[] mnumber=new int[200];
int s,sx,datanumber,articlenumber;
int wordnumber;
String file;
String str,str1;
int page;
int n,nx;

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

ren(){        

for(page=1;page<220;page++){

file="gdata/";
file=file+page;
file=file+".txt";

readfile(file);

str1=")";

for(s=1;s<datanumber+1;s++){
String[] x=data[s].split(str1);
str="";
if(x.length>1)str=x[1];
article[s]=str;
}

for(s=1;s<datanumber+1;s++){
str=article[s];
makeword(str);
for(sx=1;sx<wordnumber+1;sx++){
memo[s][sx]=word[sx];
}
mnumber[s]=wordnumber;
}


file="pdata/";
file=file+page;
file=file+".txt";

writefile(file);

}

}

void writefile(String file){

try{
PrintWriter pw = new PrintWriter
(new BufferedWriter(new FileWriter(file)));

for(s=1;s<datanumber;s++){                                              
for(sx=1;sx<mnumber[s];sx++){                                              
pw.print("<");                                                            
pw.print(memo[s][sx]);                                                            
pw.print(">");                                                            
}  
sx=mnumber[s];
pw.print("<");                                                            
pw.print(memo[s][sx]);                                                            
pw.println(">");                                                            
}

System.out.println("ファイルに書きこみました。");
pw.close();
}
catch(IOException ep){ System.out.println("入出力エラーです。"); }

}




void makeword(String str){
int s;
s=0;
try {
Tagger tagger = new Tagger( "ipadic" );
List<Morpheme> list = tagger.parse(str);          
for(Morpheme morph : list ){
s=s+1;            
word[s]=morph.surface;
}    

} catch(IOException e) { System.err.println(e.getMessage()); }

wordnumber=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年07月03日 22:29