资源简介

特征选择DF方法实现源代码 要求要先自行分好词 代码中有详细注释

资源截图

代码片段和文件信息

package df;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.CharBuffer;

public class DF {

public static void main(String[] args) {
// TODO Auto-generated method stub
int termNum = 1111;  //词的数目,也就是没选择前特征数目
String [] terms;  //用来记录每个词
String termFile=“KeyWordsDf.txt“; //要求先分好词,存放词的文件,每一行一个词
int [] w ; //用来记录每个词的权重
int k=100; //取权重最高的前K个feature
String termWeighFile=“termWeigh.txt“;  //用于保存全部《特征 ,权重》对
String topFeatureFile=“top“ + k + “Feature.txt“;  //保存前k个《特征 ,权重》对
String dirName=“F:\\\\ben\\TextCategory\\“;  //存放所有语料集的目录地址,如C://

//初始化w
w=new int[termNum];
//把keywords导进来保存在terms数组里面
terms = new String[termNum];

//把语料集全部列出来
File dir = new File(dirName);  
File[] files = dir.listFiles(); 

try {
FileInputStream fis2 = new FileInputStream(termFile);
InputStreamReader isr2 = new InputStreamReader(fis2);
BufferedReader br2 = new BufferedReader(isr2);

for(int i=0;i terms[i] = br2.readLine();
}
br2.close();
isr2.close();
fis2.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}

//使用DF方法进行特征选择
df_count(filestermsw);

//输出《特征,权重》对
try {
FileOutputStream fos = new FileOutputStream(termWeighFile);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
for(int i=0;i bw.write(terms[i]+“  “);
bw.write(String.valueOf(w[i]));
bw.newLine();
}
bw.close();
osw.close();
fos.close();
} catch (Exception e) {
System.out.println(e.getMessage());


//对《特征,权重》进行排序
top_feature(ter

评论

共有 条评论