如何删除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中
散发着图书馆