2017-03-03 4 views
0

A.L.I.C.E에 파일을 추가하려고합니다. AIML chatbot (현재 AIML v1.0.0에 파이썬 인터프리터를 사용하고 있습니다). 지금 당장 나는 문제에 봉착했다 : 나는 패턴에 두 개의 와일드 카드를 사용하고이를 구분하기 위해 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를 직접 추가 할 수 있도록 입력을 필터링해야하고 대체 문자 (me-> you, he-> she만큼)를 추가해야합니다.