3

我正在为 Program-O 聊天机器人创建 AIML 文件并遇到问题。

我想做的是按顺序提出一个又一个问题。此外,问题的顺序应该是随机的。这是对学生的满意度评估测试,我正在尝试使用聊天机器人而不是传统方法进行开发。

这是我想到的 AIML 格式。

样本.aiml

<category>
    <pattern>HELLO<bot/></pattern>
    <template>
        <random>
            <li><warm/>Hello there. Do you want to talk about your campus life?</li>
            <li><happy/>Hi. Do you want to talk about your campus life?</li>
            <li><happy/>Goodday. Do you want to talk about your campus life?</li>
        </random>
    </template>
</category>
<category>
    <pattern>*</pattern>
    <that>HELLO THERE. DO YOU WANT TO TALK ABOUT CAMPUS LIFE</that>
    <template>
        <random>
            <li>How were the classes?</li>
            <li>Does the teacher give a clear answer?</li>
            <li>Was the teacher come on time?</li>
        </random>
    </template>
</category>
<category>
    <pattern>*</pattern>
    <that>HOW WERE THE CLASSES</that>
    <template>
        <random>
            <li>Does the teacher give the full and clear explanation?</li>
            <li>What about the material used in the classes?</li>
            <li>What do you think about the courses content?</li>
        </random>
    </template>
</category>

问题是 *(asterisk) 通配符不适用于该谓词。有没有其他方法可以构建满足我要求的 AIML?

4

2 回答 2

2

使用下划线通配符。在 AIML 中,有两个通配符 - * 和 _。下划线通配符的优先级高于星号。

于 2013-06-08T21:02:08.280 回答
-1
string text = System.IO.File.ReadAllText(txt_filename.Text.ToString()).ToString();

        int length = (Int32)text.Length;
        txt_gbox.Text = length.ToString();

        LexicalAnalysis analyzer = new LexicalAnalysis();

        while (text !=)
        {
            text = text.Trim(' ', '\t');
            string token = analyzer.GetNextLexicalAtom(ref text);
            txt_gbox.Text = token;
        }

我想在 txt_gbox 的 Richtextbox 中显示这些令牌,但在 while loop programe stop....

于 2017-01-09T18:31:32.460 回答