Найти тип ответа в Java

Извините, если этот вопрос повторяется, но я не нашел ответа. Я хочу найти тип вопроса, используя Java. Проблема в том, что я не знаю, как найти тип вопроса из вопроса, который будет отправлен пользователю.

Например:

Where is the Louvre Museum?

The type of this question is location. 

У кого-нибудь есть идеи, как это сделать?

2 ответа

Решение

Используя пользовательский ввод:

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"

Вы можете рассмотреть возможность использования словарного списка, который будет содержать пары типа вопроса и конкретные подстроки, соответствующие типу вопроса, например:

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

Вы поняли идею. Это может быть сделано очень просто, используя отображение, например, HashMap, для этого случая:

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

Вы можете заменить

String[]

с

ArrayList <String>

также.

Другие вопросы по тегам