2016-11-06 1 views
-1

다음과 같은 형식의 문서 - 용어 목록을 가지고 있습니다 (txt 파일). 문서의 총 수는 1400입니다. 예 :Java에서 TF를 구현하는 방법은 무엇입니까?

doc 1 : 안녕하세요, 안녕하세요, 비용, 일일 (여기는 문서 1이 텍스트 파일입니다) doc 2 : 비용, 안녕하세요 (여기에서 문서 2는 텍스트입니다. 파일) .........

어떻게 TF를 java로 구현할 수 있습니까? TF는 용어가 문서에서 용어/총 수를 표시 타이머 얼마나 많은입니다

코드는 지금까지, 그것은 용어가 문서에서 발생하는 횟수를 계산

public class termdoc { 
 
    public static void main(String[]args) throws FileNotFoundException, UnsupportedEncodingException{ 
 
     File file2 = new File("D:\\logs\\termdoc.txt"); 
 
     PrintWriter tdr = new PrintWriter(file2, "UTF-8"); 
 
     Map<String, Integer> m = new HashMap<>(); 
 
     Map<Integer,Map>m1=new HashMap<>(); 
 
     String wrd; 
 
     int unqwrd=0; 
 
     
 
     for(int i=1;i<=1400;i++){ 
 
      Scanner tdsc=new Scanner(new File("D:\\logs\\AfterStem"+i+".txt")); 
 
      while(tdsc.hasNext()){ 
 
       Integer docid=i; 
 
       wrd=tdsc.next(); 
 
       Integer freq=m.get(wrd); 
 
       m.put(wrd, (freq == null) ? 1 : freq + 1); 
 
       m1.put(docid,m); 
 
     
 
      } 
 
     tdr.println(m1); 
 
     m.clear(); 
 
     m1.clear(); 
 
     tdsc.close(); 
 
     
 
    } 
 
     //System.out.println(m.size() + " distinct words"); 
 
     tdr.close(); 
 
     
 
     
 
} 
 
    
 
}

+0

더 나은 변수 이름을 선택하고, 코드를 들여 쓰고, Java 명명 규칙을 존중하며, TF의 의미, 코드에서 기대하는 것, 대신 수행 할 작업을 알려줍니다. –

+0

TF가 무엇인지 설명하십시오. – mtyurt

+0

컨텍스트에 따라 TF는 텍스트 필터링을 의미한다고 생각하십니까? 질문에서 언급 한 것처럼 문서에서 몇 번이나 텍스트가 발생합니까?! –

답변

0

당신 각 용어가 문서에 나타나는 횟수를가집니다.

모든 값을 합하면 문서의 총 용어 수를가집니다.

그런 다음 주어진 용어가 문서에 나타나는 횟수를 계산 된 합계로 나누면 빈도가 생깁니다.

관련 문제