我有一个 HashMap,它的键是 id,它的值是文本:
HashMap<String,String> textMap = new HashMap<String,String>();
textMap.put("id_1","She");
textMap.put("id_2","has");
textMap.put("id_3","a");
textMap.put("id_4","neck");
textMap.put("id_5","pain");
//.. more elements in textMap
我想找到给定短语的相关 ID,例如“颈部疼痛”,因此在这种情况下,结果应为 id_4 和 id_5。
谁能推荐一个有效的算法来匹配短语和 ids?
抱歉,我忘了包含一个重要条件。我有短语和单词的偏移量,比如“start_5_end_14”,这意味着 5 应该是“neck”的开头,因为“She”的开头是 0。但是,使情况复杂化的是偏移量可能不正确。
最佳答案
维护一个反向映射,您可以在其中将单词映射到 id。然后,遍历您的短语并为短语中的每个 word
调用 reversedTextMap.get(word)
。
关于java - 如何将字符串(短语)快速匹配到 HashMap 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13040592/