我怎样才能在一个模式中有多个通配符
How can I have more than one Wildcard in a pattern
我正在使用 AIML 中的 XML 在 Pandoabots 中开发一个 AI 聊天机器人,但我对如何在不破坏模式的情况下拥有多个通配符感到困惑。
在这里,我试图在 Cardiff 之前和 Cardiff 之后存储一个像 "where" 这样的值,我希望程序能够获取任何关键字,如 "please",“?”和 "bot"。
但是,当我这样做时,会显示默认值,即“我对此没有答案。但是,并非所有问题的末尾都有 "please" 或“?”。
<category>
<pattern>* Cardiff *</pattern>
<template><think><set name = "place"><star/></set><set name = "others"><star/></set></think>
<condition name = "place">
<li name ="Where">In wales</li>
</condition>
</template>
</category>
我一直在研究如何解决这个问题,但我还没有找到解决办法。
* 通配符表示至少有 1 个词,因此如果有人说 "Where is Cardiff" 不会被触发,因为 Cardiff 之后没有 1 个或多个词。您需要将其替换为 # 通配符,它表示零个或多个单词,因此 "Where is Cardiff" 和 "Where is Cardiff please" 将激活该类别。您不需要知道第二个通配符的值。
此外,您需要更改条件以检查 "where is" 而不仅仅是 "where"
<category>
<pattern>* Cardiff #</pattern>
<template>
<think><set name="place"><star/></set></think>
<condition name="place">
<li name ="Where is">In wales</li>
</condition>
</template>
</category>
我正在使用 AIML 中的 XML 在 Pandoabots 中开发一个 AI 聊天机器人,但我对如何在不破坏模式的情况下拥有多个通配符感到困惑。
在这里,我试图在 Cardiff 之前和 Cardiff 之后存储一个像 "where" 这样的值,我希望程序能够获取任何关键字,如 "please",“?”和 "bot"。 但是,当我这样做时,会显示默认值,即“我对此没有答案。但是,并非所有问题的末尾都有 "please" 或“?”。
<category>
<pattern>* Cardiff *</pattern>
<template><think><set name = "place"><star/></set><set name = "others"><star/></set></think>
<condition name = "place">
<li name ="Where">In wales</li>
</condition>
</template>
</category>
我一直在研究如何解决这个问题,但我还没有找到解决办法。
* 通配符表示至少有 1 个词,因此如果有人说 "Where is Cardiff" 不会被触发,因为 Cardiff 之后没有 1 个或多个词。您需要将其替换为 # 通配符,它表示零个或多个单词,因此 "Where is Cardiff" 和 "Where is Cardiff please" 将激活该类别。您不需要知道第二个通配符的值。
此外,您需要更改条件以检查 "where is" 而不仅仅是 "where"
<category>
<pattern>* Cardiff #</pattern>
<template>
<think><set name="place"><star/></set></think>
<condition name="place">
<li name ="Where is">In wales</li>
</condition>
</template>
</category>