3

我有一个停用词列表,其中包含大约 30 个单词和一组文章。

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

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

例如,如果存在空格,我可以遍历停止列表并替换文章中的单词,但它似乎并不好。

谢谢

4

4 回答 4

4
  • 将停用词放入java.util.Set
  • 将输入拆分为单词
  • 对于输入中的每个单词,查看它是否包含在停用词集中,如果没有则写入输出
于 2010-07-05T20:47:42.050 回答
1

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

如果只有 30 个左右,那么如何存储停用词可能并不重要。Set 可能是一个不错的选择。

于 2010-07-05T20:48:20.643 回答
0

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

于 2010-07-05T20:49:19.480 回答
0

当且仅当它不在停用词列表中时,从输入中读取一个单词,并将其复制到您的 StringBuilder(或放置结果的任何地方)。如果将停用词放入 HashTable 之类的东西中,您将能够更快地搜索它们。

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

于 2010-07-05T20:50:36.987 回答