#list #variables #mit-scratch #question-answering
#Список #переменные #mit-scratch #nlp-вопрос-ответ
Вопрос:
У меня есть следующий проект Scratch, в котором есть «добрый список» таких слов, как: «хороший», «добрый», «люблю», «приходи» и т.д.
Пользователь должен иметь возможность ввести любое предложение, содержащее любое из этих слов, и появится счастливое лицо.
В настоящее время, если пользователь вводит «добрый», отображается счастливое лицо, а если он вводит что-либо еще, например «ты добрый», отображается грустное лицо.
Как мне изменить это в scratch, чтобы, если пользователь вводит:
«ты добрый» или «какой ты добрый» или «иди сюда» (любое предложение, содержащее любое слово из «списка добрых») лицо счастливое, иначе нет.
Я могу найти только блок, который позволяет мне выбрать СПИСОК, а затем ОТВЕТ, и никаких других альтернатив. То, что я хочу, — это эквивалент Python> в списке
ответ= ввод («Скажи что-нибудь») Если какое-либо слово во входном ответе (предложении) находится в списке. Затем выполните — — —
В учебных целях я пытаюсь упростить то, что включено https://machinelearningforkids.co.uk /#!/newproject (создание обучающего набора). Можно ли это сделать непосредственно в scratch или нет? Или именно поэтому сайт позволяет вам сначала создавать блоки на их сайте и импортировать их.
Конечно, Scratch должен иметь возможность вводить данные в списки, а затем проверять их напрямую.
Я также пытался использовать цикл (который тоже работает не совсем корректно), но надеялся, что есть гораздо более простой способ.
Комментарии:
1. удалено, с моей попыткой добавить цикл, но надеюсь, что есть более простой способ.
Ответ №1:
Я предполагаю, что Scratch намеренно предлагает минимальный набор функций, с одной стороны, чтобы не перегружать новичков, с другой стороны, чтобы побудить студентов собирать простые блоки в более сложные системы. Да, простое (sentence) contains (word)
— это все, что вы получаете из коробки; вам нужен цикл для сопоставления предложения из нескольких слов с белым списком из нескольких слов.
Мне кажется, что вам было бы лучше использовать какую-то среду разработки, которая, по крайней мере, даст вам некоторые зрелые возможности синтаксического анализа текста. Я не говорю, что невозможно научить студента машинному обучению с помощью Scratch, но я сомневаюсь, что это лучший инструмент для работы. Такое ощущение, что кто-то хочет давать уроки музыки, но ученики сначала должны пройти процесс сборки пианино.
Что касается вашего кода, это выглядит как хорошее начало. Некоторые предложения:
- Замените цикл ‘forever’ циклом, ограниченным длиной списка ‘kindthings’.
- Включите начальный и конечный пробелы в поле «содержит», чтобы убедиться, что совпадают только целые слова. Не хотелось бы, чтобы «несчастный» в предложении совпадал с «счастливым» в белом списке.