xml - 如何在一个模式中有多个通配符
问题描述
我正在使用 AIML 中的 XML 在 Pandoabots 中开发一个 AI 聊天机器人,我一直在思考如何在一个模式中拥有多个通配符而不会破坏它。
在这里,我试图在 Cardiff 之前和 Cardiff 之后存储像“where”这样的值,我希望程序能够接收任何关键字,例如“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 个单词,因此如果有人说“Cardiff 在哪里”,则不会触发,因为 Cardiff 后面没有 1 个或多个单词。您需要将其替换为 # 通配符,它表示零个或多个单词,因此“卡迪夫在哪里”和“卡迪夫在哪里”将激活该类别。您不需要知道第二个通配符的值。
此外,您需要更改条件以检查“在哪里”,而不仅仅是“在哪里”
<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>
推荐阅读
- windows - 错误 LNK2019:未解析的外部符号 __CheckForDebuggerJustMyCode 在函数 DriverEntry 中引用
- python - 如何从python中的mysql查询中删除格式
- python - jq基于键值过滤器查询json键
- selenium - 通过 TestNG xml 运行多个类时,它只执行具有多个独立测试的类中的一个测试
- javascript - TypeError: mitsukuApi.send 不是函数
- xcode - git branch commit 没有合并到 master
- c - 使用 SIMD 右移 32 位压缩负数
- ios - 无法创建 IOS 应用程序开发配置文件
- python-3.x - 读取 csv 时格式不正确
- sql - SQL Server 重建索引 - 脚本