正确使用Hashmaps用于同义词

时间:2015-04-26 09:15:37

标签: java hashmap

我正在尝试将给定单词的同义词存储到public static void main(String args[]) throws ParseException, IOException { /* Initialization */ List<String> matches = new ArrayList<String>(); HashMap<String, String[]> synonymMap = new HashMap<String, String[]>(); synonmynMap = populateSynonymMap(); //populate the map boolean found = false; Scanner in = new Scanner(System.in); Scanner scanner = new Scanner(System.in); String input = null; System.out.println("Welcome To Artifical Intelligence DataBase "); System.out.println("What would you like to know?"); System.out.print("> "); input = scanner.nextLine().toLowerCase(); } 中。然后我接受用户输入并检查它是否是单词或其同义词。例如,假设主要词是&#34; bank&#34;它的synonmyns是&#34;安全&#34;,#34; tresury&#34;和&#34;信用合作社&#34;。如果用户输入&#34; bank&#34;,我想输出单词&#34; bank&#34;。如果用户输入&#34;安全&#34;,我仍然希望输出单词&#34; bank&#34;因为&#34;安全&#34;是&#34; bank&#34;的同义词。

这是我的同义词方法

{{1}}

这是我的主要方法

{{1}}

2 个答案:

答案 0 :(得分:1)

你的synonymMap应该以其他方式组织,关键是“同义词”,值是它们的共同输出。

所以在你的例子中:

String word = "bank";
String synonymn[] = { "safe", "treasury", "credit union" };

for (String syn : synonymn)
    synonymMap.put(syn, word);

然后,当用户输入一个单词时,检查它是否存在于synonymMap中,如果存在,则返回其值:

String syn = synonynMap.get(input);
if (syn != null) return syn;
else return input;

答案 1 :(得分:0)

您可以将同义词[]的每个单词添加为地图的关键字。当然,包含单词和所有其他同义词的同义词数组。我知道必须有更好的方法,但这是我现在能想到的最简单的方法