2

AIML を学習しようとしていますが、どこが間違っているのか理解できません。

<aiml>
    <category>
        <pattern>I LIKE * ROME</pattern>
        <template>
            I love talking about 
            <set name="topic">rome</set>
            too!
            <random>
                <li>Did you know that slaves made up 40% of the population of Ancient Rome?</li>
                <li>Did you know the Colosseum could sit 250'000 people?</li>
            </random>
        </template>
    </category>
    <topic name="rome">
        <category>
            <pattern>No *</pattern>
            <that>Did you know that slaves made up 40% of the population of Ancient Rome?</that>
            <template>So I've taught you something!</template>
        </category>
    </topic>
</aiml>

最初の部分は問題なく動作します。「ローマの歴史が好きです」などと入力すると、予想されるデフォルトの回答とランダムな回答の 1 つが得られます。

しかし、彼が私に「奴隷」のランダムな答えを与え、私が「いいえ、それは知りませんでした」と言った場合、彼は「だから私はあなたに何かを教えた」という答えを私に与えません. 彼はどこかから答えを得ています.彼のコードではelseですが、「トピック」と< that >​​タグを設定したことを考えると、私は非常に具体的であり、カスタムの回答を期待しています.

4

3 に答える 3

0

タグの使用<that>はあなたのチョークポイントです。写真の価値については、最初のテンプレートであなたの応答を変更しましたが、うまくいきました.

ボットの2回目の返信について。<that>これが使用された場合、タグ内の 40$'ers がボットによる最後の応答である必要があるため、rome トピックのカテゴリは機能しません。

チャット ボットの返信には混乱が生じる場合があります。以前はトピックが常に「ローマ」に変更されていましたが、トピック「ローマ」のパターンが機能するためには、チャット ボットは 40%'ers について話す必要がありました。2つを組み合わせて同じ結果を得ただけです。

<that>また、タグ内の疑問符がそこに配置されていないことにも注意してください。ボットはそれを取り除き、残りの結果を保存します。

<?xml version="1.0" encoding="UTF-8"?>
<aiml>
<category>
  <pattern>I LIKE * ROME</pattern>
  <template>
    <random>
      <li>Did you know that slaves made up 40% of the population of Ancient <set name="topic">Rome</set>?</li>
      <li>Did you know the Colosseum in could sit 250'000 people?</li>
    </random>
  </template>
</category>
<topic name="rome">
  <category>
    <pattern>No *</pattern>
    <that>Did you know that slaves made up 40% of the population of Ancient Rome</that>
    <template>
      So I've taught you something!
    </template>
  </category>
</topic>
</aiml>
于 2014-05-03T05:10:34.620 に答える