2017-03-03 67 views
0

我試圖向A.L.I.C.E添加一些文件。 AIML chatbot(我目前使用AIML v1.0.0的Python解釋器)。現在我陷入了一個問題:我在模式上使用了兩個通配符,而單詞TO將它們分開。現在的一點是,第一個通配符還可以包含字,所以它使我的錯誤:aiml - 最後一次出現的單詞

<category> 
    <pattern>SAY * TO *</pattern> 
    <template>Ok, I will say "<star />" to "<star index="2" />"</template> 
</category> 

一個正常的對話可能是:

-Client: Say Hi to mom 
-Bot: Ok, I will say "Hi" to "mom" 

但這其他的談話讓我的錯誤:

-Client: Say I have to go shopping to mom 
-Bot: Ok, I will say "I have" to "go shopping to mom" 

(請注意,在機器人的答案引號是沒有的,我只是把他們在這裏,所以你可以清楚地看到我的意思)
右擊在寫完這篇文章之後,我意識到我可以用一些標誌標記該TO來識別它。我試過這些模式:

<pattern>SAY * "TO *</pattern> 
<pattern>SAY * "TO" *</pattern> 
<pattern>SAY * TO" *</pattern> 
<pattern>SAY * -TO *</pattern> 
<pattern>SAY * -TO- *</pattern> 
<pattern>SAY * TO- *</pattern> 

但它們都不起作用,無論是解釋器還是aiml本身都不能識別字符。

有什麼辦法可以正確地匹配這些通配符嗎?有什麼建議麼?
非常感謝。

回答

0

好,它沒有把我太久找到XSPLITTER標籤,所以我不得不解決它弄成這樣

<category> 
    <pattern>SAY * XSPLITTER TO *</pattern> 
    <template>Ok, I will say <star/ > to <star index="2" /></template> 
</category> 

現在,輸入必須是一個有點怪異:

-Client: say I have to go shopping xsplitter to mom 
-Bot: Ok, I will say I have to go shopping to mom 

我想我需要過濾輸入,所以我可以編輯它來自己添加xsplitter,並且還添加替換(我 - >你,他 - >她等等)

相關問題