代码之家  ›  专栏  ›  技术社区  ›  pamiers

如何删除java中的停止字?

  •  3
  • pamiers  · 技术社区  · 12 年前

    我想删除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();
    

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

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

    我怎么能?

    5 回复  |  直到 12 年前
        1
  •  5
  •   Brian Mains    12 年前

    使用 设置 对于停止语:

    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();
    

    和输入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<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);
    
        2
  •  1
  •   Ashkrit Sharma    12 年前

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

    • 读取文件
    • 循环浏览文件内容(即一次一行)
      • 基于空格为该行设置字符串标记器
      • 将每个令牌添加到您的集合中。这将确保每个单词只有一个条目。
      • 关闭文件

    现在您已经设置了包含文件中所有唯一单词的集合。

        3
  •  1
  •   Sri Harsha Chilakapati Vishal Raj    12 年前

    使用 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;
    }
    

    希望这能有所帮助。

        4
  •  0
  •   Eric Wilson    12 年前

    如果你只是想从文件中的单词中删除一组特定的单词,你可以随心所欲。但是,如果你正在处理一个涉及自然语言处理的问题,你应该使用一个库。

    例如,使用 Lucene 因为标记化一开始看起来会更复杂,但它会处理你会忽略的无数复杂问题,如果你改变主意,改变特定的权宜之计,改变你如何标记化,是否关心案件等,它会有很大的灵活性。

        5
  •  0
  •   Paul Vargas    12 年前

    你应该尝试使用 StringTokenizer