Alice实现自定义标签

上一篇分析了Alice支持中文,这一篇介绍Alice自定义标签。源码下载地址点击这里


Alice标签解析过程

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

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


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 "我在测试自定义标签,哈哈。";
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值