标题: 自己用词库写的机器人,没有使用任何外站API
时间: 2014-05-27
接口详细说明:
i.itpk.cn?fc.php
这个接口第一个参数就是接收的文本,第二个参数表示分词后词语的个数,排序按词语的权重从大到小排列,不加这个参数默认值为1
i.itpk.cn?api.php
这个接口第一个参数跟上面一样,第二个参数表示是否对接收的文本进行分词处理、为1表示进行分词处理,不加这个参数默认值为1
<?php
/**
* 机器人API
* @author ITPK
* @copyright http://wap.itpk.cn
* @createdate 2014-5-27 10:42:11
*/
error_reporting(0);
header("content-type:text/plain; charset=utf-8");
$question = htmlspecialchars(isset($_GET['question']) ? $_GET['question'] : (isset($_POST['question']) ? $_POST['question'] : ''));
$analysis = htmlspecialchars(isset($_GET['analysis']) ? $_GET['analysis'] : (isset($_POST['analysis']) ? $_POST['analysis'] : 1));
$limit = htmlspecialchars(isset($_GET['limit']) ? $_GET['limit'] : (isset($_POST['limit']) ? $_POST['limit'] : 1));
if ($analysis == 1) {
$url = 'http://i.itpk.cn/fc.php';
$curl_obj = curl_init();
curl_setopt($curl_obj, CURLOPT_URL, $url);
curl_setopt($curl_obj, CURLOPT_HEADER, 0);
curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_obj, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_obj, CURLOPT_POST, 1);
curl_setopt($curl_obj, CURLOPT_POSTFIELDS, "text=$question&limit=$limit");
$result = curl_exec($curl_obj);
curl_close($curl_obj);
$jo = json_decode($result);
$section = $jo->section;
if ($section != '') {
$question = $section;
}
}
$ckTxt = file_get_contents('http://i.itpk.cn/ck/ck2.txt');
$ckArr = explode("\n\r", $ckTxt);
unset($ckTxt);
$rck = '';
if (count($ckArr) > 1) {
foreach ($ckArr as $ck) {
$qck = explode("\n", $ck);
if (count($qck) <= 1) { continue; }
$bol = explode($question, $qck[1]);
if (count($bol) > 1) {
for ($i = 2; $i < count($qck); $i++) {
$rck .= $qck[$i];
}
break;
}
}
}
if ($rck == '') {
exit('对不起,我的词库中没有相关回答,这是测试版小词库,后面会增加!');
}
exit($rck);
?>
<?php
/**
* PHP分析词语
* @author ITPK
* @copyright http://wap.itpk.cn
* @createdate 2014-5-26 21:23:53
*/
error_reporting(0);
header("content-type:text/plain; charset=utf-8");
$text = htmlspecialchars(isset($_GET['text']) ? $_GET['text'] : (isset($_POST['text']) ? $_POST['text'] : ''));
$limit = htmlspecialchars(isset($_GET['limit']) ? $_GET['limit'] : (isset($_POST['limit']) ? $_POST['limit'] : 1));
require 'pscws4.class.php';
$cws = new PSCWS4('utf8');
$cws->set_dict('etc/dict.utf8.xdb');
$cws->set_rule('etc/rules.utf8.ini');
//$cws->set_multi(3);
$cws->set_ignore(true);
//$cws->set_debug(true);
$cws->set_duality(true);
$cws->send_text($text);
$allWord = '';
$section = '';
while ($tmp = $cws->get_result()) {
foreach ($tmp as $w) {
if ($w['word'] == "\r") continue;
$allWord .= ($w['word'].',');
}
}
$ret = array();
$ret = $cws->get_tops($limit,'r,v,p');
foreach ($ret as $tmp) {
$section .= ($tmp['word'].',');
}
$cws->close();
$allWord = rtrim($allWord, ',');
$section = rtrim($section, ',');
$json_str = <<<EOF
{"allWord":"$allWord", "section":"$section"}
EOF;
exit($json_str);
?>
『回复列表(13|隐藏机器人聊天)』