TF-IDF计算四

来源:互联网 发布:java按行读取文本文件 编辑:程序博客网 时间:2024/04/27 18:03

最后, 开始计算TF-IDF

 

TF i - IDF i,j = TF i,j * IDF i

 

代码:

 

class TFIDF
{
 ArrayList<HashMap<String,Double>> TFIDFMainFileList = new ArrayList<HashMap<String,Double>>();
 ArrayList<HashMap<String,Double>> TFMainFileList = new ArrayList<HashMap<String,Double>>();
 ArrayList<ArrayList<String>> MainFileList = new ArrayList<ArrayList<String>>();
 HashMap<String,Double> IDFMainFileList = new HashMap<String, Double>();

 public TFIDF(ArrayList<ArrayList<String>> mfl, HashMap<String,Double> idfm, ArrayList<HashMap<String,Double>> tfmfl)
 {
  MainFileList = mfl;
  IDFMainFileList = idfm;
  TFMainFileList = tfmfl;
 }
 
 public ArrayList<HashMap<String,Double>> PrintTFIDF()
 {
  for(int i=0; i<MainFileList.size(); i++)
  {
   ArrayList<String> SubFileList = MainFileList.get(i);
   HashMap<String,Double> tfFile = TFMainFileList.get(i);
   
   HashMap<String,Double> GetTFIDF = new HashMap<String, Double>();
   ArrayList<String> Index = new ArrayList<String>();
   
   //Take hashmap level from ArrayList<HashMap<String,Double>>   
   for(int j=0; j<SubFileList.size(); j++)
   {
    
    Index.add(SubFileList.get(j));
   
    double tf = tfFile.get(SubFileList.get(j));    
    double idf = IDFMainFileList.get(SubFileList.get(j));    
    double tfidf = tf * idf;
    
    GetTFIDF.put(SubFileList.get(j),tfidf);
    
   }
   TFIDFMainFileList.add(GetTFIDF);
   //==========================================================
  }
  return TFIDFMainFileList;
 }
}

 

原创粉丝点击