我想知道是否有任何线索如何开始写我自己的停用词删除,而我不想使用任何外部库。在创建HashSet之后,我们怎么能把它用于删除一个停止词的工作文本?再一次,我不想使用任何外部库。
答案 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)
关于如何停止删除单词的一般想法是将输入文本拆分为单词,然后查找停用词映射中的每个单词。禁用词查找可能需要不区分大小写。
详细信息将根据文本的内容以及使用该文本的内容而有所不同。