2012-09-18 70 views
3

我想刪除java中的停用詞。如何刪除java中的停用詞?

因此,我從文本文件中讀取停用詞。

和存儲設置

Set<String> stopWords = new LinkedHashSet<String>(); 
BufferedReader br = new BufferedReader(new FileReader("stopwords.txt")); 
     String words = null; 
     while((words = br.readLine()) != null) { 
      stopWords.add(words.trim()); 
      } 
     br.close(); 

而且,我讀到另一個文本文件。

所以,我想刪除重複的文本文件中的字符串。

我該怎麼辦?

回答

1

你想從文件中刪除重複的單詞,下面是相同的高級邏輯。

  • 讀取文件通過文件內容
  • 循環(一次即一條線路)
    • 有字符串標記基於空間
    • 每個每個標記添加到您的集線。這將確保您每個單詞只有一個條目。
    • 關閉文件

現在你已經設置一個包含文件的所有唯一字。

0

您應該嘗試使用StringTokenizer

+3

如何使用'StringTokenizer'刪除重複? –

1

使用ArrayList可能會更容易。

public ArrayList removeDuplicates(ArrayList source){ 
    ArrayList<String> newList = new ArrayList<String>(); 
    for (int i=0; i<source.size(); i++){ 
     String s = source.get(i); 
     if (!newList.contains(s)){ 
      newList.add(s); 
     } 
    } 
    return newList; 
} 

希望這會有所幫助。

+0

不完全是問題的問題,我不認爲,但它幫助我,所以感謝那 – KBusc

0

如果您只是想從文件中的單詞中刪除某些單詞,您可以根據需要進行操作。但是如果你正在處理涉及自然語言處理的問題,你應該使用一個庫。

例如,使用Lucene進行標記化起初看起來會更復雜,但它會處理您會忽略的各種各樣的複雜問題,並且如果您在特定的停用詞,如何標記化方面改變主意, ,你是否關心案例等。

5

使用設置爲禁用詞:

Set<String> stopWords = new LinkedHashSet<String>(); 
     BufferedReader SW= new BufferedReader(new FileReader("StopWord.txt")); 
     for(String line;(line = SW.readLine()) != null;) 
      stopWords.add(line.trim()); 
     SW.close(); 

和ArrayList輸入txt_file

BufferedReader br = new BufferedReader(new FileReader(txt_file.txt)); 
//make your arraylist here 

// function deletStopWord() for remove all stopword in your "stopword.txt" 
public ArrayList<String> deletStopWord(Set stopWords,ArrayList arraylist){ 
     System.out.println(stopWords.contains("?")); 
     ArrayList<String> NewList = new ArrayList<String>(); 
     int i=3; 
     while(i < arraylist.size()){ 
      if(!stopWords.contains(arraylist.get(i))){ 
       NewList.add((String) arraylist.get(i)); 
      } 
      i++;   
      } 
     System.out.println(NewList); 
     return NewList; 
    } 

    arraylist=deletStopWord(stopWords,arraylist); 
+0

爲什麼我= 3這裏? –

0

它可能會遲到的答覆,希望它可以幫助別人幾天就回來創建的小UTIL庫從給定的文本中刪除stop/stemmer單詞並將其放入maven倉庫/ github

exude library