我有一个停用词列表,其中包含大约 30 个单词和一组文章。
我想解析每篇文章并从中删除那些停用词。
我不确定最有效的方法是什么。
例如,如果存在空格,我可以遍历停止列表并替换文章中的单词,但它似乎并不好。
谢谢
我有一个停用词列表,其中包含大约 30 个单词和一组文章。
我想解析每篇文章并从中删除那些停用词。
我不确定最有效的方法是什么。
例如,如果存在空格,我可以遍历停止列表并替换文章中的单词,但它似乎并不好。
谢谢
java.util.Set
替换单词将是低效的。您最好的选择可能是逐字解析文章,并将每个单词复制到一个新的 StringBuffer;除非它是停用词,在这种情况下,您可以复制任何您想要的内容。StringBuffer 在这里比 String 效率高得多。
如果只有 30 个左右,那么如何存储停用词可能并不重要。Set 可能是一个不错的选择。
根据Sun Java Tutorials\b
,您可以在正则表达式中使用与 Perl 兼容的分隔符。如果你用它们包围这个词,它将只匹配那个词,无论它后面是标点符号还是空格。
当且仅当它不在停用词列表中时,从输入中读取一个单词,并将其复制到您的 StringBuilder(或放置结果的任何地方)。如果将停用词放入 HashTable 之类的东西中,您将能够更快地搜索它们。
编辑:哎呀,不知道我在想什么,但你想要一个集合,而不是 HashTable(或任何其他字典)。