Добрый день. У меня есть вопрос:C# Проверка правильности ответа на основе текста
Что такое обратная реакция?
И ответ на этот вопрос:
Обратной реакция представляет собой реакцию, в которой продукты реагируют с образованием реагентов и наоборот.
Теперь, что было бы лучшим способом определить, правильно ли задан ответ на этот вопрос или нет? Я могу думать о нескольких путях, но они не практичны.
Один из способов:
string answer = "A reverse reaction is a reaction in which the products react to form reactants and vise versa.";
string input = Console.ReadLine();
if (input.Equals(answer))
{
//answer is correct
}
Другой способ:
Проверка, чтобы увидеть, сколько слов совпадают и получать процент от этого. Если он вычисляет определенный процент, то ответ правильный.
Number of words: 17
Number of words in input that match answer: 17
Correctness percentage: 100%
Другой способ:
Проверьте, чтобы увидеть, если вход содержит некоторые ключевые фразы.
string input = Console.ReadLine();
string[] keyPhrases = new string[] { "Products react to form reactants" };
foreach (string keyPhrase in keyPhrases)
{
if (!input.Contains(keyPhrase))
{
//answer is incorrect
return;
}
}
Используйте переключатели и тест с несколькими вариантами выбора. Не пытайтесь заменить профессоров человека :) –
Это очень сложно сделать правильно. Что-то в царстве ИИ. Вероятно, именно по этой причине каждый он-лайн вопросник основан на списке возможных ответов, в которых пользователь выбирает правильный номер. – Steve
Другие решения неизбежны. Например, ваш подход «процент правильности» имел бы трудную дифференциацию. * Обратная реакция - это реакция, в которой продукты реагируют с образованием реагентов и наоборот *. Обратная реакция представляет собой реакцию, в которой продукты * *** не реагируют *** на формы реагентов и наоборот *. –