如何删除java中的停用词?

我想删除java中的停用词。

所以,我从文本文件中读取了停用词。

并存储Set

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

而且,我读了另一个文本文件。

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

我怎么能够?

你想从文件中删除重复的单词,下面是相同的高级逻辑。

  • 读文件
  • 循环文件内容(即一次一行)
    • 根据空间为该行提供字符串标记生成器
    • 将每个令牌添加到您的集合中。 这将确保每个单词只有一个条目。
    • 关闭文件

现在,您已设置包含文件的所有唯一字。

使用set for stopword:

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

和输入txt_file的ArrayList

 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 deletStopWord(Set stopWords,ArrayList arraylist){ System.out.println(stopWords.contains("?")); ArrayList NewList = new ArrayList(); 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); 

使用ArrayList可能更容易。

 public ArrayList removeDuplicates(ArrayList source){ ArrayList newList = new ArrayList(); for (int i=0; i 

希望这可以帮助。

如果您只想从文件中的单词中删除某组单词,则可以根据需要进行操作。 但是,如果您正在处理涉及自然语言处理的问题,则应使用库。

例如,使用Lucene进行标记化起初看起来会更复杂,但是它会处理你会忽略的无数复杂问题,并且如果你改变主意关于特定的停用词,关于你如何标记,是否关心,可以提供很大的灵活性关于案件等

您应该尝试使用StringTokenizer

它可能是迟到的回复,希望它可以帮助几天后创建小的util库来删除给定文本中的stop / stemmer单词及其在maven repository / github中

散发着图书馆