Tags 如何使用AIML<;oob>;标签
我是新使用Tags 如何使用AIML<;oob>;标签,tags,aiml,Tags,Aiml,我是新使用标签的,我正在使用潘多拉聊天机器人。 我使用了许多aiml标签并完成了我的工作。请指导如何在aiml中使用oob标记,以便在android编程中实现其响应 如果有任何不清楚的地方,请随时提问。 oob标记正在响应,但未打开搜索或拨号呼叫 private static String recursEval(节点节点,解析状态){ private static String recursEval(Node node, ParseState ps) { LOG.info("AIMLP
标签的,我正在使用潘多拉聊天机器人。
我使用了许多aiml标签并完成了我的工作。请指导如何在aiml中使用oob标记,以便在android编程中实现其响应
如果有任何不清楚的地方,请随时提问。oob标记正在响应,但未打开搜索或拨号呼叫
private static String recursEval(节点节点,解析状态){
private static String recursEval(Node node, ParseState ps) {
LOG.info("AIMLProcessor.recursEval(node: " + node + ", ps: " + ps + ")");
try {
LOG.info("in AIMLProcessor.recursEval(), node string: " + DomUtils.nodeToString(node));
String nodeName = node.getNodeName();
LOG.info("in AIMLProcessor.recursEval(), nodeName: " + nodeName);
LOG.info("in AIMLProcessor.recursEval(), node.getNodeValue(): " + node.getNodeValue());
if (nodeName.equals("#text")) return node.getNodeValue();
else if (nodeName.equals("#comment")) {
LOG.info("in AIMLProcessor.recursEval(), comment = "+node.getTextContent());
return "";
}
else if (nodeName.equals("template"))
return evalTagContent(node, ps, null);
else if (nodeName.equals("random"))
return random(node, ps);
else if (nodeName.equals("condition"))
return loopCondition(node, ps);
else if (nodeName.equals("srai"))
return srai(node, ps);
else if (nodeName.equals("sr"))
return respond(ps.starBindings.inputStars.star(0), ps.that, ps.topic, ps.chatSession, sraiCount);
else if (nodeName.equals("sraix"))
return sraix(node, ps);
else if (nodeName.equals("set"))
return set(node, ps);
else if (nodeName.equals("get"))
return get(node, ps);
else if (nodeName.equals("map")) // AIML 2.0 -- see also <set> in pattern
return map(node, ps);
else if (nodeName.equals("bot"))
return bot(node, ps);
else if (nodeName.equals("id"))
return id(node, ps);
else if (nodeName.equals("size"))
return size(node, ps);
else if (nodeName.equals("vocabulary")) // AIML 2.0
return vocabulary(node, ps);
else if (nodeName.equals("program"))
return program(node, ps);
else if (nodeName.equals("date"))
return date(node, ps);
else if (nodeName.equals("interval"))
return interval(node, ps);
//else if (nodeName.equals("gossip")) // removed from AIML 2.0
// return gossip(node, ps);
else if (nodeName.equals("think"))
return think(node, ps);
else if (nodeName.equals("system"))
return system(node, ps);
else if (nodeName.equals("explode"))
return explode(node, ps);
else if (nodeName.equals("normalize"))
return normalize(node, ps);
else if (nodeName.equals("denormalize"))
return denormalize(node, ps);
else if (nodeName.equals("uppercase"))
return uppercase(node, ps);
else if (nodeName.equals("lowercase"))
return lowercase(node, ps);
else if (nodeName.equals("formal"))
return formal(node, ps);
else if (nodeName.equals("sentence"))
return sentence(node, ps);
else if (nodeName.equals("person"))
return person(node, ps);
else if (nodeName.equals("person2"))
return person2(node, ps);
else if (nodeName.equals("gender"))
return gender(node, ps);
else if (nodeName.equals("star"))
return inputStar(node, ps);
else if (nodeName.equals("thatstar"))
return thatStar(node, ps);
else if (nodeName.equals("topicstar"))
return topicStar(node, ps);
else if (nodeName.equals("that"))
return that(node, ps);
else if (nodeName.equals("input"))
return input(node, ps);
else if (nodeName.equals("request"))
return request(node, ps);
else if (nodeName.equals("response"))
return response(node, ps);
else if (nodeName.equals("learn") || nodeName.equals("learnf"))
return learn(node, ps);
else if (nodeName.equals("addtriple"))
return addTriple(node, ps);
else if (nodeName.equals("deletetriple"))
return deleteTriple(node, ps);
else if (nodeName.equals("javascript"))
return javascript(node, ps);
else if (nodeName.equals("select"))
return select(node, ps);
else if (nodeName.equals("uniq"))
return uniq(node, ps);
else if (nodeName.equals("first"))
return first(node, ps);
else if (nodeName.equals("rest"))
return rest(node, ps);
else if (nodeName.equals("resetlearnf"))
return resetlearnf(node, ps);
else if (nodeName.equals("resetlearn"))
return resetlearn(node, ps);
else if (extension != null && extension.extensionTagSet().contains(nodeName)) return extension.recursEval(node, ps) ;
else return (genericXML(node, ps));
} catch (Exception ex) {
ex.printStackTrace();
return "";
}
}
LOG.info(“AIMLProcessor.recursEval(节点:“+node+”,ps:“+ps+”));
试一试{
LOG.info(“在AIMLProcessor.recursEval()中,节点字符串:”+DomUtils.nodeToString(节点));
字符串nodeName=node.getNodeName();
LOG.info(“在AIMLProcessor.recursEval()中,节点名:“+nodeName”);
LOG.info(“在AIMLProcessor.recursEval()中,node.getNodeValue():”+node.getNodeValue());
if(nodeName.equals(“#text”))返回node.getNodeValue();
else if(nodeName.equals(“#注释”)){
LOG.info(“在AIMLProcessor.recursEval()中,comment=“+node.getTextContent());
返回“”;
}
else if(nodeName.equals(“模板”))
返回evalTagContent(node,ps,null);
else if(nodeName.equals(“random”))
返回随机(节点,ps);
else if(nodeName.equals(“条件”))
返回循环条件(节点,ps);
else if(nodeName.equals(“srai”))
返回srai(节点,ps);
else if(nodeName.equals(“sr”))
返回响应(ps.starBindings.inputStars.star(0)、ps.that、ps.topic、ps.chatSession、sraiCount);
else if(nodeName.equals(“sraix”))
返回sraix(节点,ps);
else if(nodeName.equals(“set”))
返回集(节点,ps);
else if(nodeName.equals(“get”))
返回get(节点,ps);
else if(nodeName.equals(“map”)//AIML2.0——另请参见模式中的
返回图(节点,ps);
else if(nodeName.equals(“bot”))
返回bot(节点,ps);
else if(nodeName.equals(“id”))
返回id(节点,ps);
else if(nodeName.equals(“size”))
返回大小(节点,ps);
else if(nodeName.equals(“词汇”)//aiml2.0
返回词汇表(node,ps);
else if(nodeName.equals(“程序”))
返回程序(节点,ps);
else if(nodeName.equals(“日期”))
返回日期(节点,ps);
else if(nodeName.equals(“interval”))
返回间隔(节点,ps);
//else if(nodeName.equals(“gossip”)//从AIML2.0中删除
//返回流言(节点,ps);
else if(nodeName.equals(“think”))
返回思考(节点,ps);
else if(nodeName.equals(“系统”))
返回系统(节点,ps);
else if(nodeName.equals(“explode”))
返回爆炸(节点,ps);
else if(nodeName.equals(“normalize”))
返回规范化(节点,ps);
else if(nodeName.equals(“反规范化”))
返回非规范化(节点,ps);
else if(nodeName.equals(“大写”))
返回大写字母(node,ps);
else if(nodeName.equals(“小写”))
返回小写(node,ps);
else if(nodeName.equals(“正式”))
返回正式(节点,ps);
else if(nodeName.equals(“句子”))
返回句(node,ps);
else if(nodeName.equals(“person”))
返回人(节点,ps);
else if(nodeName.equals(“person2”))
返回人员2(节点,ps);
else if(nodeName.equals(“性别”))
返回性别(节点,ps);
else if(nodeName.equals(“星”))
返回inputStar(节点,ps);
else如果(nodeName.equals(“thatstar”))
返回该星(节点,ps);
else if(nodeName.equals(“topicstar”))
返回topicStar(节点,ps);
else如果(nodeName.equals(“that”))
返回(节点,ps);
else if(nodeName.equals(“输入”))
返回输入(节点,ps);
else if(nodeName.equals(“请求”))
返回请求(节点,ps);
else if(nodeName.equals(“响应”))
返回响应(节点,ps);
else if(nodeName.equals(“learn”)| | nodeName.equals(“learnf”))
返回学习(节点,ps);
else if(nodeName.equals(“addtriple”))
返回addTriple(节点,ps);
else if(nodeName.equals(“deletetetree”))
返回deletetetree(节点,ps);
else if(nodeName.equals(“javascript”))
返回javascript(节点,ps);
else if(nodeName.equals(“选择”))
返回选择(节点,ps);
else if(nodeName.equals(“uniq”))
返回uniq(节点,ps);
else if(nodeName.equals(“first”))
首先返回(节点,ps);
else if(nodeName.equals(“rest”))
返回rest(node,ps);
else if(nodeName.equals(“resetlearnf”))
返回resetlearnf(节点,ps);
else if(nodeName.equals(“resetlearn”))
返回resetlearn(节点,ps);
else if(extension!=null&&extension.extensionTagSet().contains(nodeName))返回extension.recursEval(node,ps);
else返回(genericXML(node,ps));
}捕获(例外情况除外){
例如printStackTrace();
返回“”;
}
}
在AIMLProcessor类的程序ab中,您会发现这样一个方法,您必须添加oob标记的实现。这是一种根据在响应中找到的标记来解析aiml文件中的响应的方法,它调用必要的函数