删除java中的停用词

时间:2010-07-05 20:45:12

标签: java stop-words

我有一个包含约30个单词和一组文章的停用词列表。

我想解析每篇文章并从中删除这些停用词。

我不确定最有效的方法是什么。

例如,我可以遍历停止列表并替换文章中的单词(如果存在空白但是看起来不太好。)

由于

4 个答案:

答案 0 :(得分:4)

  • 将停用词放入java.util.Set
  • 将输入拆分为单词
  • 对于输入中的每个单词,看看它是否包含在一组停用词中,如果没有则写入输出

答案 1 :(得分:1)

替换单词效率低下。你最好的选择可能是逐字解析文章,并将每个单词复制到一个新的StringBuffer;除非它是一个禁用词,在这种情况下你可以复制你想要的任何东西。 StringBuffer在这里比String更有效。

如果只有三十个左右,如何存储停用词可能并不重要。套装可能是一个不错的选择。

答案 2 :(得分:0)

根据Sun Java Tutorials,您可以在正则表达式中使用与Perl兼容的\b分隔符。如果你用它们包围这个单词,它只会匹配那个单词,无论是后面的还是带有标点字符或空格的前缀。

答案 3 :(得分:0)

从输入中读取一个单词,并将其复制到StringBuilder(或者将结果放在任何地方),当且仅当它不在停用词列表中时。如果你把停用词放到像HashTable这样的东西上,你就能更快地搜索它们。

编辑:oops,不知道我在想什么,但你想要一个集合,而不是HashTable(或任何其他字典)。