首页 > 其他 > 详细

Alice实现自定义标签

时间:2014-03-31 23:34:39      阅读:784      评论:0      收藏:0      [点我收藏+]
上一篇分析了Alice支持中文,这一篇介绍Alice自定义标签。源码下载地址点击这里


Alice标签解析过程

    要想自定义标签,得先清楚Alice标签原理,我不想说的太细,大致说一下:

         可能你们注意到AIML文件每一个标签对应着在bitoflife.chatterbean.aiml包一个类。

bubuko.com,布布扣

         AIMLHandler类中的buildClassName函数,将标签名映射为bitoflife.chatterbean.aiml下的类。

privateStringbuildClassName(String tag) {

       return"bitoflife.chatterbean.aiml."

               +tag.substring(0, 1).toUpperCase()

               +tag.substring(1).toLowerCase();

   }

         每一个标签解析类继承TemplateElement类,每一个TemplateElement类的核心函数是process函数,所有的工作就在process函数中完成,proces函数的返回值会直接返回给用户,作为用户questionanswer

例如bitoflife.chatterbean.aiml.Date类中的process函数,返回值就是日期格式。

实现自定义标签个关键就是继承TemplateElement类,实现process函数。


实现自定义标签解析类

下面代码实现了自定标签cs的解析类

package bitoflife.chatterbean.aiml;

import org.xml.sax.Attributes;

import bitoflife.chatterbean.Match;

public class Cs extends TemplateElement {
	public Cs() {
	}

	public Cs(Attributes attributes) {
	}

	public int hashCode() {
		return 131072;
	}

	public String process(Match match) {
		return "我在测试自定义标签,哈哈。";
	}
}


 

Alice实现自定义标签,布布扣,bubuko.com

Alice实现自定义标签

原文:http://blog.csdn.net/zhang_hui_cs/article/details/22687473

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!