/ AIML

修改program-o使之支持中文(三)

接下来是安装program-o,步骤很简单就不说了。

安装完毕之后就可以测试对话了,内置的英文对话库很全,基本上都能对上来,大家可以先和它玩一玩。

下面就要开始修改了,首先是前台人机对话的代码。

打开bot/response_handler.php,在最后面加上

//----------------------------------------------------------- //formatchinese($str) add a space into each Chinese character //----------------------------------------------------------- function formatchinese($str){ if(preg_match_all("/[\x{4e00}-\x{9fa5}]{1}/u",$str,$out)){ foreach($out[0] as $value){ $str = preg_replace("/".$value."/",$value." ",$str); } } return trim($str); } //----------------------------------------------------------------- //restorechinese($str) remove the space after each Chinse character //----------------------------------------------------------------- function restorechinese($str){ if(preg_match_all("/[\x{4e00}-\x{9fa5}]{1} /u",$str,$out)){ foreach($out[0] as $value){ $str = preg_replace("/$value/",trim($value),$str); } } return trim($str); }

搜索

$that = strtoupper($that);

在下面增加一行

$that = formatchinese($that);

搜索

$that = preg_replace('/[^a-z0-9\s]/i','',$that);

将此行注释

然后打开bot/chat.php

搜索

$look = trim(strtolower($_POST['chat']));

在下面加上一行

$look = formatchinese($look);

搜索

$res .= "<div class="demobot">Bot: ".stripslashes(urldecode($response_Array['that'][$i]))."

";

修改

$res .= "<div class="demobot">Bot: ".restorechinese(stripslashes(urldecode($response_Array['that'][$i])))."

";

前台对话就修改完毕了。

下面测试下代码是否正常运行。

在数据库的中执行如下sql语句

insert aiml (aiml,pattern,thatpattern,template,topic,filename) values ('','你 好 ','','你 好 ,我 是 机 器 人 。','','')

然后到首页,输入“你好”,点击“SAY”提交,不出意外的话,应该会显示

Bot: 你好,我是机器人。

说明前台修改成功。

下面要做的是修改后台代码,以后添加数据就可以不用这么麻烦,可以直接上传AIML文件了

修改program-o使之支持中文(三)
Share this