在java中停止删除单词

时间:2011-12-08 10:29:14

标签: java stop-words

我想知道是否有任何线索如何开始写我自己的停用词删除,而我不想使用任何外部库。在创建HashSet之后,我们怎么能把它用于删除一个停止词的工作文本?再一次,我不想使用任何外部库。

3 个答案:

答案 0 :(得分:2)

我会从文件中读取它们。每个单词一行。

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

if(stopWords.contains(word))
   // it's a stop word
else
   // it's not a stop word.

答案 1 :(得分:1)

如果您有一组停用词和要删除停用词的单词列表,只需遍历列表并删除停用词集中包含的任何单词:

Set<String> stopWords = new HashSet<String>(  );
//fill stopWords

//use a linked list to make removal faster, you don't need random access here
List<String> text = new LinkedList<String>(  ); 
//fill text

Iterator<String> textIterator = text.iterator();
while( textIterator.hasNext() ) {
  //this assumes there are no null entries in the list       
  //and all stopwords are stored in lower case
  if( stopWords.contains( textIterator.next().toLowerCase() )) {
    textIterator.remove();
  }
}

答案 2 :(得分:0)

关于如何停止删除单词的一般想法是将输入文本拆分为单词,然后查找停用词映射中的每个单词。禁用词查找可能需要不区分大小写。

详细信息将根据文本的内容以及使用该文本的内容而有所不同。