我目前正在尝试学习Chatscript,但文档似乎很差。我目前的问题是如何响应输入的多语句匹配。所以,如果我说“嗨。告诉我你自己”,我有一个匹配“hi”和“关于你自己”,它会回应第一场比赛,而不是最后一场比赛。我很确定我需要更改控制脚本以修复此问题,但我不确定要使用哪些命令。也许在最后一个输入中存储所有匹配并且可以选择特定匹配的东西?
答案 0 :(得分:1)
你可以创建一个使用^ next&的u:响应refine()以〜问候语开头的句子移动。这是伪代码:
u: ( ~greeting )
^refine()
a: ( %more )
^next(input)
^refine()
b: ( you be ? )
I'm good!
b: ( %lenght==0 )
Hi!
(ChatScript System Functions Manual)
^ next(什么标签) - 给予GAMBIT或RESPONDER或REJOINDER或者什么 RULE和规则标签或标签,找到下一个规则。如果没有找到则失败。 如果REJOINDER达到下一个顶级规则,它将失败。如果标签是“〜”,它将使用 最后一个电话的答案作为起点,使您能够连续行走规则。有 也^ next(FACT @xxx) - 参见事实手册。 对于^ next(输入),系统将读取 下一句话并用它准备系统。这意味着所有模式和代码都在执行 此后将在下一个输入句子的上下文中。那句话现在用完了, 当前修订后的句子结束后不会再出现。