我有一个HashMap,其键是id,其值是text:

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。

有人可以建议一种有效的算法来将短语与id匹配吗?

对不起,我忘了包括一个重要条件。我同时拥有词组和单词的偏移量,例如“start_5_end_14”,这意味着,假设“She”的开头为0,则5应该是“neck”的开头。但是,使情况复杂化的是,偏移量可能会不正确。

最佳答案

保持反向映射,在该映射中,您将单词映射到ID上。然后,遍历您的短语并为该短语中的每个reversedTextMap.get(word)调用word

关于java - 如何快速将字符串(短语)与HashMap值匹配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13040592/

10-09 04:40