2011-03-15 5 views
0
for (a = 0; a < filename; a++) { 

     try { 
      System.out 
        .println(" _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ "); 
      System.out.println("\n"); 
      System.out.println("The word inputted : " + word2); 
      File file = new File(
        "C:\\Users\\user\\fypworkspace\\TextRenderer\\abc" + a 
          + ".txt"); 
      System.out.println(" _________________"); 

      System.out.print("| File = abc" + a + ".txt | \t\t \n"); 

      for (int i = 0; i < array2.length; i++) { 

       totalCount = 0; 
       wordCount = 0; 

       Scanner s = new Scanner(file); 
       { 
        while (s.hasNext()) { 
         totalCount++; 
         if (s.next().equals(array2[i])) 
          wordCount++; 

        } 

        System.out.print(array2[i] + " --> Word count = " 
          + "\t " + "|" + wordCount + "|"); 
        System.out.print(" Total count = " + "\t " + "|" 
          + totalCount + "|"); 
        System.out.printf(" Term Frequency = | %8.4f |", 
          (double) wordCount/totalCount); 

        System.out.println("\t "); 

        double inverseTF = Math.log10((float) numDoc 
          /(numofDoc[i])); 
        System.out.println(" --> IDF = " + inverseTF); 

        double TFIDF = (((double) wordCount/totalCount) * inverseTF); 
        System.out.println(" --> TF/IDF = " + TFIDF + "\n"); 





       } 
      } 
     } catch (FileNotFoundException e) { 
      System.out.println("File is not found"); 
     } 

    } 
} 

내부에 입력 된 각 검색어에 대한 용어 빈도를 계산하는 코드입니다. 이제 각 파일의 각 쿼리 빈도를 합산하려고합니다.각 파일 쿼리 수를 합산하는 방법은 무엇입니까?

예 출력 :이 폴더는

파일의 개수 : 11 쿼리를 입력하십시오 : 을 얼마나 당신 방법 - 3 은이 용어가 포함 된 파일의>이 수 -> 방법

당신에게 있습니다> 7


단어가 입력이 용어가 포함 된 파일의이 숫자는 - 당신이 7 이 용어가 포함 된 파일의이 수3210


| 파일 = abc0.txt |
how ->단어 수 = | 4 | 총 수 = | 957 | 용어 빈도 = | 0.0042 |
-> IDF = 0.5642714398516419 -> TF/IDF = 0.0023585013159943234

있습니다 ->말씀 카운트 = | 7 | 총 수 = | 957 | 용어 빈도 = | 0.0073 |
-> IDF = 0.1962946357308887 -> TF/IDF =

0.00143580193324579 당신 ->단어 개수 = | 10 | 총 수 = | 957 | 용어 빈도 = | 0.0104 |
-> IDF = 0.1962946357308887 -> TF/IDF = 0.002051145618922557

예 : 총 주파수는 4 + 7 + 10 = 21 ..


입력 된 단어 : 어떻게됩니다


| 파일 = abc1.txt |
how ->단어 수 = | 4 | 총계 = 959 | 용어 빈도 = | 0.0042 |
-> IDF = 0.5642714398516419 -> TF/IDF = 0.0023535826479734803

있습니다 ->말씀 카운트 = | 7 | 총계 = 959 | 용어 빈도 = | 0.0073 |
-> IDF = 0.1962946357308887 -> TF/IDF =

0.0014328075600794795 당신 ->단어 개수 = | 10 | 총계 = 959 | 용어 빈도 = | 0.0104 |
-> IDF = 0.1962946357308887 -> TF/IDF =

0.002046867942970685 어떻게 내가 그것을 (3) 각 파일에 대해 단어 개수를 조회 총을 만들 수 있습니까?

예 : 총 주파수는 4 + 7 + 10 = 21 ..

+0

가능한 중복 [? 총 가치를 요약하는 방법 (http://stackoverflow.com/questions/5298489/how-to-sum - 합계 - 값) –

+0

아니, 이것은 내가 직면 한 또 다른 문제이다. 그럼에도 불구하고, 나는 이미 그것을 알아 낸다. 당신의 관심에 감사한다. 그런 경우라면 –

+0

, 실제로 물어보고있는 것을 파악하기가 어렵습니다. –

답변

0

TOTALCOUNT이 시도의 외부해야합니다 (루프 외부 초기화) 일부 "합"변수에 추가 할 수 있습니다. 시도하기 전에 초기화하고 후에 인쇄하십시오. Java 프로그램의 디자인에 대한 많은 우려가 있습니다. 그 점에 대해서도 생각해 보시기 바랍니다. 시간이 beeing는 들어, 아마 모두를해야 다음이 필요합니다

for (a = 0; a < filename; a++) { 
    int totalcount = 0; 
    try{ 
    int wordcount = 0; 
    for(...){ 
     ... 
    } 
    //print wordcount 
    totalcount += wordcount; 
    }catch(Exception e){ 
    ... 
    return; //to ensure that there is no total count if something goes wrong. 
    } 
    //print totacount 
} 
0

당신은 (각 파일에 대한) 배열의 단어 수를 저장해야하거나

+0

감사합니다. 이미 이미 알아 냈습니다. 주목 해 주셔서 감사합니다.. –

관련 문제