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 "我在測試自定義標籤,哈哈。";
	}
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章