2015-03-22 4 views
0

Я хочу удалить стоп-слово после токенизации строки. У меня есть внешний файл .txt и прочитайте его, затем сравните его с токенированной строкой. если обозначенное слово равно стоп-слову, а затем удалите его.удаление стоп-слов после токенизации строки в java

вот код для tokenizing

try{ 
      while ((msg =readBufferData.readLine()) != null) { 
       int numberOfTokens; 

       System.out.println("Before: "+msg); 
       StringTokenizer tokens = new StringTokenizer(msg); 

       numberOfTokens = tokens.countTokens(); 
       System.out.println("Tokens: "+numberOfTokens); 

       System.out.print("After : "); 
       while (tokens.hasMoreTokens()) { 
        msg = tokens.nextToken(); 
        String msgLower = msg.toLowerCase(); 
        String punctuationremove = punctuationRemover(msgLower); 
      //   buffWriter.write(punctuationremove+" "); --> write into file .txt 
        System.out.print(punctuationremove+" "); 
        removingStopWord(punctuationremove, readStopWordsFile()); 
        numberOfTotalTokens++; 
       } 
      //  buffWriter.newLine(); make a new line after tokening new message 
       System.out.println("\n"); 
       numberOfMessages++; 
      } 
     // write close buffWriter.close(); 
      System.out.println("Total Tokens: "+numberOfTotalTokens); 
      System.out.println("Total Messages: "+numberOfMessages); 
     } 
     catch (Exception e){ 
      System.out.println("Error Exception: "+e.getMessage()); 
     } 

Тогда у меня есть код для чтения стоп слова файла

public static Set<String> readStopWordsFile() throws FileNotFoundException, IOException{ 
    String fileStopWords = "\\stopWords.txt"; 

    Set<String> stopWords = new LinkedHashSet<String>(); 
    FileReader readFileStopWord = new FileReader(fileStopWords); 
    BufferedReader stopWordsFile = new BufferedReader(readFileStopWord); 

    String line; 

    while((line = stopWordsFile.readLine())!=null){ 
     line = line.trim(); 
     stopWords.add(line); 
    } 
    stopWordsFile.close(); 
    return stopWords; 
} 

Как я могу сравнить фишку с набором стоп слов и удалить это то же самое со словом остановки. Можете ли вы мне помочь, спасибо

ответ

0

Вы можете просто сначала прочитать слова остановки, а затем проверить, является ли ваш токен заторможенным.

Set<String> stopWords = readStopWordsFile(); 

    // some file reading logic 
    while (tokens.hasMoreTokens()) { 
     msg = tokens.nextToken(); 
     if(stopWords.contains(msg)){ 
     continue; // skip over a stopword token 
     } 
    } 
+0

Stil не снимая стоп слово, спасибо за ответ, кстати –

+0

@ RickyKristianButar-butar что это значит? –

+0

дает тот же результат, что и раньше. он не удаляет слово остановки –