Scratch 项目:检查答案中是否包含列表中的任何单词

Scratch project: To check if any word in a list is contained in an answer

我有以下 Scratch 项目,其中包含“好”、“善良”、“爱”、“来”等词的“种类列表”

用户应该能够输入包含任何这些词的任何句子,并且会显示笑脸。

目前,如果用户键入“kind”,则会显示快乐的表情;如果键入“你真好”等其他内容,则会显示悲伤的表情。

我如何更改它,从头开始,这样如果用户输入:

“你真好”或 “你真好”或 “过来” (任何包含“kindlist”中任何单词的句子)脸是快乐的,否则不是。

我只能找到一个允许我 select 列表然后是答案的块,没有其他选择。我想要的是 Python 等同于 > in list

answer=input("说点什么") 如果列表中输入答案(句子)中的任何单词。 然后做 - - -

出于教学目的,我试图简化 https://machinelearningforkids.co.uk/#!/newproject 上的内容(训练集的创建)。这是否可以直接从头开始完成?或者这就是为什么该站点允许您先在他们的站点上生成块并导入它们的原因。

Scratch 应该有能力将数据输入列表,然后直接测试它们。

我也尝试过使用循环(它也不能正常工作)但希望有更简单的方法。

我猜想 Scratch 故意提供了最少的功能集, 一方面不要让初学者不知所措, 另一方面,鼓励学生将简单的模块拼凑成更复杂的系统。 是的,一个简单的 (sentence) contains (word) 就是您开箱即用的全部; 您确实需要一个循环来将多词句子与多词白名单相匹配。

在我看来你最好使用一些开发环境 这至少会给你一些成熟的文本解析能力。 我并不是说用 Scratch 教学生机器学习是不可能的,但我怀疑它是这项工作的最佳工具。 感觉就像有人要教音乐课,但学生首先要经历造钢琴的过程。

至于你的代码,它看起来是一个好的开始。 一些建议:

  • 将 'forever' 循环替换为以列表 'kindthings' 长度为界的循环。
  • 在 'contains' 检查中包括前导和尾随 space,以确保只有整个单词匹配。不希望句子中的 'unhappy' 匹配白名单中的 'happy'。