Friday, April 25, 2008

Amy the chatter

pyebot 前身 pobot 的應答模組是 Amy,資料結構很簡單:

known_question -> [answer1, answer2, ...] 的 dict

演算法也很簡單:

Algorithm Amy_reply(question: string): string
  • for q in known_questions of the dict:
    • 如果 q 是字串,而且 question 和 q 完全一樣,就在 q 的回答清單中隨機選一個 return。
    • 如果 q 是 regular expression,就用 regex search 的方式比對 question,比對成功的話,就在 q 的回答中隨機選一個 return。
  • 轉完一圈還找不到回答的話,就在空白問句(q = "")的回答中隨機選一個 return。
好玩的當然是最後這段!如果候選回答夠多的話,可能會有意想不到的笑果... :)

Amy 有學習功能,只要告訴 pobot(或後來的 pyebot)
question --> answer
Amy 就會把 answer 加到 question 的回答清單中。

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home