首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyAiml ::AIML的条件标记不能使用Python进行解析

PyAiml ::AIML的条件标记不能使用Python进行解析
EN

Stack Overflow用户
提问于 2017-08-08 12:55:55
回答 1查看 592关注 0票数 0

下面是示例AIML文件:

代码语言:javascript
复制
   <?xml version = "1.0" encoding = "UTF-8"?>
<aiml version = "1.0.1" encoding = "UTF-8">
<category>
<pattern>DO YOU FIND ME ATTRACTIVE</pattern>
<template>
  <condition name="gender">
    <li value="male">I find you very handsome.</li>
    <li value="female">I find you very pretty.</li>
    <li>I find you very attractive.</li>
  </condition>
</template>
</category>
</aiml>

下面是简单的python代码:

代码语言:javascript
复制
            category = "DO YOU FIND ME ATTRACTIVE"
            bot.setPredicate("gender", "male") ## Setting the Predicate
            reply = bot.respond(category)

Ask

当用户提供性别值时,我希望我的python代码将性别的值设置为“男性”,然后给出适当的答复。

问题

它不能设置谓词和从他们的答复与适当的评论。我得到的答复是“我觉得你很有吸引力”,而不是“我觉得你很帅”。通常,如果我使用set谓词而没有条件标记,它就能工作。那么,您能告诉我问题是与解析条件标记还是代码本身有关。

EN

回答 1

Stack Overflow用户

发布于 2018-01-18 16:43:56

您可以修改AIML文件如下:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<aiml version="1.0">
<category>
    <pattern>DO YOU FIND ME * ATTRACTIVE</pattern>
    <template>
        What is your gender ?
        <think><set name="topic">GENDER</set></think>
        <br/>In case you dont mind?
    </template>
</category>
<topic name="GENDER">
    <category>
        <pattern>MALE</pattern>
        <that>* CASE YOU *</that>
        <template>I find you very handsome.!</template>
    </category>
    <category>
        <pattern>FEMALE</pattern>
        <that>* CASE YOU *</that>
        <template>I find you very pretty!</template>
    </category>
</topic>
</aiml> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45568992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档