在java中找到答案的类型

时间:2015-01-17 20:03:16

标签: java question-answering

很抱歉,如果这个问题重复,但我还没有找到答案。我想用java找到问题的类型。问题是我不知道如何从用户提交的问题中找到问题的类型。

例如:

Where is the Louvre Museum?

The type of this question is location. 

有人知道怎么做吗?

2 个答案:

答案 0 :(得分:1)

使用用户输入:

Scanner s = new Scanner(System.in)

询问输入问题:

System.out.println("Question:");
String[] q = s.nextLine().split(" "); //changing user input to word array
String w = q[0].toLowerCase();

检查问题词:

switch(w){
    case "where":
        //print out "this is a location question"
        break;
    case "who":
        //print out "this is a who question"
        break;

    ... //keep on doing this for all words

    default:
        //print out "this is not a valid question"
        break;

}

如果有多个:

System.out.println("Question:");
String[] q = s.nextLine().split(" "); 
List<String> a = Arrays.asList(q);

检查它是否包含问题词:

if(a.contains("Who"))
    //print out "Who question"
if(a.contains("Where"))
    //print out "Where question"

答案 1 :(得分:0)

您可以考虑使用字典列表,其中包含问题类型对以及与问题类型对应的特定子字符串,例如:

"yes/no", "is"
"location",  {"where", "how far", "direction"}
"time", {"when", "how long"}

你明白了。在这种情况下,可以使用映射(例如HashMap)轻松完成:

HashMap <String, String[]> hm = new HashMap <String, String[]>();

您可以替换

String[]

ArrayList <String>