资源简介

df算法,通过在训练集中提取词语,比较出现次数,进行特征词的提取。 这个代码是提取两个特征的特征词,可修改main函数中(直接删除一部分)(有详细注释),提取一个类的特征。此程序编译过,无错。

资源截图

代码片段和文件信息

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 dfb {


public static void main(String[] args) {
String[] temp = new String[1024];//所有词语存的数组
int [] w ; //用来记录每个词的权重
int k=100; //取权重最高的前K个feature
String termWeighFile=“termWeigh.txt“;  //用于保存全部《特征 ,权重》对
String topFeatureFile=“Feature.txt“;  //保存前k个《特征 ,权重》对
String termnonum=“Featrueno.txt“;//保存《特征》
String dirName=“D:\\2013fall\\数字内容安全实验\\3\\训练集\\汽车\\“;  //存放所有语料集的目录地址,如C://
//初始化w
    w=new int[1024];

    //把语料集全部列出来
File dir = new File(dirName);  
File[] files = dir.listFiles(); 
//总结所有词汇
remwords(fileswtemp);
//删除干扰词
for(int a=0;a if(IsStopWord(temp[a])){
delet( tempa w);

}
}

//输出《特征,权重》对
try {
FileOutputStream fos = new FileOutputStream(termWeighFile);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
for(int i=0;i bw.write(temp[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(tempw);
//输出权重在前面的特征及权重
try {
FileOutputStream fos = new FileOutputStream(topFeatureFile);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
for(int i=0;i bw.write(temp[i]+“  “);
bw.write(String.valueOf(w[i]));
bw.newLine();
}
bw.close();
osw.close();
fos.close();
} catch (Exception e) {
System.out.println(e.getMessage());

try {
FileOutputStream fos = new FileOutputStream(termnonum);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
for(int i=0;i bw.write(temp[i]);
bw.newLine();
}
bw.close();
osw.close();
fos.close();
} catch (Exception e) {
System.out.println(e.getMessage());


 String[] temp2 = new String[1024];//所有词语存的数组
int [] w2 ; //用来记录每个词的权重
int k2=100; //取权重最高的前K个feature
String termWeighFile2=“termWeigh2.txt“;  //用于保存全部《特征 ,权重》对
String topFeatureFile2=“Feature2.txt“;  //保存前k个《特征 ,权重》对
String termnonum2=“Featrueno2.txt“;//保存《特征》
String dirName2=“D:\\2013fall\\数字内容安全实验\\3\\训练集\\军事\\“;  //存放所有语料集的目录地址,如C://
//初始化w
    w2=new int[1024];

    //把语料集全部列出来
File dir2 = new File(dirName2);  
File[] files2 = dir2.listFiles(); 
//总结所有词汇
remwords(files2w2temp2);
//删除干扰词
for(int a=0;a if(IsStopWord(temp2[a])){
delet( temp2a w2);

}
}

//输出《特征,权重》对
try {
File

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-11-24 22:12  df\
     文件         301  2013-11-20 17:22  df\.classpath
     文件         378  2013-11-20 17:22  df\.project
     目录           0  2013-11-20 17:22  df\.settings\
     文件         598  2013-11-20 17:22  df\.settings\org.eclipse.jdt.core.prefs
     目录           0  2013-11-20 17:22  df\bin\
     目录           0  2013-11-24 22:19  df\bin\df\
     文件        8126  2013-11-24 22:17  df\bin\df\dfb.class
     文件         501  2013-11-24 22:17  df\Featrueno.txt
     文件         659  2013-11-24 22:17  df\Featrueno2.txt
     文件        1034  2013-11-24 22:17  df\Feature.txt
     文件        1192  2013-11-24 22:17  df\Feature2.txt
     目录           0  2013-11-20 17:22  df\src\
     目录           0  2013-11-21 18:21  df\src\df\
     文件        7605  2013-11-24 22:17  df\src\df\dfb.java
     文件       10143  2013-11-24 22:17  df\termWeigh.txt
     文件       11368  2013-11-24 22:17  df\termWeigh2.txt

评论

共有 条评论