聊天机器人准自然语言编程公开说明书: 准自然语言编程采用以下格式,可以跟自然语言混写,写错了只会不运行相关语句,不会导致宕机.每个聊天对象都会分配1900字节的空间存放自身局部变量, 自身局部变量的生命周期就是聊天机器人开机到关机的时间,记忆后就可以给后几轮的问答使用。局部变量数据总长度超出1900字节时会删除最旧的局部变量. 1.$(xxx)=(yyy),这个语句就是把局部变量"xxx"设置为"yyy"字符串(写功能). 2.$(xxx),"$(xxx)"后面没有’=’时就是读功能,把局部变量”xxx”读入后在原处替换为读入字符串,如果读入不成功则保持原样不变.3.IF(xxx)Y(yyy)N(zzz),IF括号里面语句”xxx” 是各种条件表达式,条件表达式在条件成立时则运行语句”yyy”,否则运行语句”zzz”.语句” N(zzz)”可以不写. 4.@RUN(xxx),xxx里面是C语言格式的函数调用字符串,例如”xxx”是"发现字符串(ABC,B)"实际上就是输入" ABC,B”这两个字符串参数,去调用以”发现字符串"命名的内部程序. 默认里面的参数都是字符串,而且不用加双引号. 5.”取得答案(xxx)”,这个功能可以递归调用机器人回答问题, ”xxx”是指问题字符串. 以下是专用命令字(专用功能):6.@Assert(str) ///发现是空字符串就 退出这条问答,转而执行下一条问答. 示例写法: @Assert(取得答案(猪是不是哺乳动物)),是)) 7.@Return(str) 发现不是空字符串就返回,把括号内字符串作为答案. 示例写法: @Return(取得答案(xxx)) @return(没有找到答案) 8.@ResetNull(str) 如果str是空字符串就返回“0”,否则返回源字符串 示例写法: @ ResetNull ($(变量2)) 9.@Math(STR) ///计算数学表达式,条件表达式等等,字符串相加也可以 示例写法: @Math(2+3) @Math(2<3 && 1<2) @Math(ab+cd+e) 10.现有3个内部程序,用户需要其它功能的内部程序可以跟我联系,可以最快在十分钟内加入: a.”加载网页” :可以用访问指定url的方式去控制智能电器 示例:@RUN(加载网页(http://www.92ai.net)) b.”发现字符串”:判断参数1中是否含有参数2 @RUN(发现字符串(猪是哺乳动物,不是)) c.”格式化输出” ,格式化输出函数实现printf()功能,目前格式字符串里不能使用英文逗号标点. @RUN(格式化输出(答案是:%s!,$(变量1))) d.”语义比较”:比较参数1与参数2的语义是否相同,既可以比较语义,又可以比较词性. @RUN(语义比较(葡萄,WT@_共性(苹果,梨) )) @RUN(语义比较(李白,WT@_《NRC,》 ))@RUN(语义比较(白酒,WT@_《*酒》 ))@RUN(语义比较(馄饨, WT@_《{米饭,面条,汉堡,}?,6000》 ))用自然语言编辑的问答库示例: 示例: TJQA:Q:打开走廊灯A:@RUN(加载网页(http://xxxx)) TJQA:Q: TP@WORD1 有几条腿 A:$(变量1)=(@assert(取得答案( TP@WORD1 是不是哺乳动物))) $(变量2)=(@assert(@RUN(发现字符串($(变量1),不是))))IF($(变量2))Y(@return(很可能不是四条腿))N(@return(四条腿)) TJQA:Q: TP@WORD1 能不能吃饱 A:IF(@RUN(语义比较( TP@WORD1 , WT@_《{米饭,面条,汉堡,饺子,米粉}?,4800》 )))Y(@return(能))N(@return(不能)) TJQA:Q:告诉我 WT@_《NRC,》 是谁 A:$(人物)=( TP@WORD60 ) @return(取得答案(TP@WORD60 是谁)) TJQA:Q:他有什么代表作 A: @return(取得答案($(人物) 有什么代表作))