提取关键词,并排序

java 代码
 
  1. //提取内容关键字! 对关键字重要性做排序 筛选!  
  2.         TermFreqVector contentFreqVector = reader.getTermFreqVector(docId, "itemContent");  
  3.         if(contentFreqVector != null){  
  4.             //生成TermVector ArryList!  
  5.             List<termvector> contentVectorList = new ArrayList<termvector>();  </termvector></termvector>
  6.       
  7.             for (int i = 0; i < contentFreqVector.size(); i++) {  
  8.                 String termWord=contentFreqVector.getTerms()[i];  
  9.                 String regex="[a-zA-Z]{4,}|[\u4E00-\u9fa5]{2,5}";  //英文4个以上,中文2到5个 
  10.                 boolean is = termWord.matches(regex);  
  11.                   
  12.                 if(is==true){  
  13.                 Term term = new Term("itemContent",contentFreqVector.getTerms()[i]);  
  14.                 TermVector termVector = new TermVector();  
  15.                 termVector.termWord = termWord;  
  16.                 termVector.termFreq = contentFreqVector.getTermFrequencies()[i];  
  17.                   
  18.     //          termVector.docFreq = searcher.docFreq(term);  
  19.        //一般来说IDF值越大,权重越高,该词在全网出现的频率越小  
  20.                 termVector.IDF = searcher.getSimilarity().idf(term, searcher);  
  21.                 Similarity sim = Similarity.getDefault();  
  22.                 termVector.TF = sim.tf(contentFreqVector.getTermFrequencies()[i]);  
  23.                 contentVectorList.add(termVector);  
  24.       
  25.             }  
  26.         }  
  27.           
  28.         //按照制定的算法进行排序! 算法还需要完善 需要考虑 TF/IDF 信息熵方面的东西!  
  29.         Comparator<termvector> comp = new TermComparator();  </termvector>
  30.         Collections.sort(contentVectorList,comp);   
  31.   
  32.   
  33.   
  34.    class TermComparator implements Comparator {  
  35.   
  36.         public int compare(Object o1, Object o2) {  
  37.             TermVector t1 = (TermVector) o1;  
  38.             TermVector t2 = (TermVector) o2;  
  39.             if (t1.getWeight() < t2.getWeight())  
  40.                 return 1;  
  41.             else  
  42.                 return 0;  
  43.         }  
  44.  } 
  45.  //Document itemDoc = reader.document(docId);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值