【问题标题】:How to filter commonly used words from document text? (Hash Maps)如何从文档文本中过滤常用词? (哈希图)
【发布时间】:2015-04-17 02:12:56
【问题描述】:

感谢您的阅读。我目前有一个学校项目,我真的很坚持。目的是从网络上检索文档文本,然后将每个单词存储到地图对象中,同时省略常用的单词,如“which, about, during, after,”等。

基本上归结为:

//要忽略的单词列表

    Set<String> ignore = new HashSet<>(Arrays.asList(new String[]{
  "after", "which", "later", "other", "during", "their", "about"}));

//将遍历文档文本(内容)以查找符合条件的单词 到 word_pattern(为简单起见,假设单词有 5 个或更多字母)

Matcher match = Pattern.compile(word_pattern).matcher(content);
while (match.find()) {
   String word = match.group().toLowerCase();

所以现在在这个 while 循环中,我希望跳过忽略集中的任何单词,否则将其添加到地图对象中......但我似乎无法正确处理,似乎没有什么可以点击。我可以轻松地将所有单词添加到地图对象中并扣除一些分数,但我希望能够正确处理我的理智。

【问题讨论】:

    标签: java hashmap hashset


    【解决方案1】:

    您的忽略词列表是一个Set,它提供contains 方法,因此您 可以简单地在你的循环中添加这个条件:

    if(!ignore.contains(word))
    {
        //addToList
    }
    

    【讨论】:

    • 我想你的意思是if(!ignore.contains(word))
    • 从该文档中,您可以看到 contains 函数“如果此集合包含指定元素,则返回 true。”
    • 我很欣赏快速响应以及如此简单的解决方案。在我的脑海中,我有 if 语句倒退或尝试执行 equals 方法。谢谢谢谢。
    • @Wexylwoxyl 不客气。也感谢 Anubian 和 Justin 修复了我的答案。
    • A+ 努力 @Jean-FrançoisSavard!
    猜你喜欢
    • 1970-01-01
    • 2011-06-07
    • 2013-01-18
    • 2011-10-25
    • 1970-01-01
    • 2012-06-07
    • 2019-05-21
    • 2019-10-20
    • 2020-07-07
    相关资源
    最近更新 更多