alicebot.jpg
AIML,全称Artificial Intelligence Markup Language,是一种XML模式,用做自然语言聊天机器人的规则库。
最简单的AIML规则如下:
* bye
byebye
中的“* bye”为模式。比如输入“mike,bye”就可以匹配该模式(*表示任意字符),然后AIML解释器就会根据规则库返回“byebye”作为回复。
更复杂的aiml规则可参考:Alicebot 或 AIML介绍
Aiml可以用来实现对话机器人,但是用于中文有以下问题:
中文规则库较少。规则库相当于对话机器人的“大脑”,一般来说,规则库越丰富,对话机器人的应对就更像人。目前英文的规则库已经很丰富,涵盖面很广,而且是公开可获取的。但公开的中文规则库就基本没有。
AIML解释器对中文支持不好。实际上,Python下的Pyaiml模块(解析器)已经能比较好的支持中文,但是也存在以下问题:
英文单词间一般都有空格或标点区分,因此具备一种“自然分词”特性,
比如模式“* BYE”很自然的就和“mike,bye”匹配,而且一般也不会写成无空格的"BYE";
但是中文的“再见”(无空格),与“* 再见”(有空格)匹配的就是不同的模式,
分别匹配"迈克,再见”和“迈克,