懒人的中文分词函数
时间:2007-05-26 来源:blau
一、原理:
盗用hightman的大作“PHP简易中文分词(SCWS) 第n版”n>3
详情请看:
http://www.hightman.cn/index.php
二、方法:
1.把要分的字串post到
http://cws.twomice.net/demo.php
2.用正则抓取这个demo返回的结果
三、好处:
1.足够简单
2.不浪费你的资源,不用费心思想如何让php连上词库
3.分词质量有保证,这由higthman操心,咱不管
四、坏处:
1.显得你很没有技术含量
2.每天要祈祷hightman不要关闭他的站点,或者加入验证码之类的东东 ^^
3.慢,主要是http请求和数据返回浪费时间
程序很简单,就不注释了,要用到httpClinet类。传如一个字串,返回一个数组
第三版的
function getword($instr){
require("httpClient.php");
$host = "cws.twomice.net";
$http = new httpClient($host, 80);
$http->addHeader("Host", $host);
$http->addHeader("Connection", "keep-alive");
$params = array(
"mydata" => "",
"autodis" =>"yes" ,
"ignore"=>"yes",
"stats"=>0,
"debug"=>0,
"dict"=>"cdb",
"version"=>3
);
$params['mydata']= $instr;
if($http->post( "/demo.php", $params ) == 200){
$pattern = '/([\s\S]*?)/';
$content = $http->getBody();
preg_match($pattern,$content, $matches);
$rst = explode(" ",trim($matches[1]));
}
else{
return false;
}
$http->Disconnect();
return $rst;
}
第四版的
function getword($instr){
require("httpClient.php");
$host = "www.hightman.cn";
$http = new httpClient($host, 80);
$http->addHeader("Host", $host);
$http->addHeader("Connection", "keep-alive");
$params = array(
"mydata" => "",
"showa" =>"no" ,
"ignore"=>"yes",
"stats"=>0
);
$params['mydata']= $instr;
if($http->post( "/demo/scws/v4.php", $params ) == 200){
$pattern = '/([\s\S]*?)/';
$content = $http->getBody();
preg_match($pattern,$content, $matches);
$rst = explode(" ",trim($matches[1]));
}
else{
return false;
}
$http->Disconnect();
return $rst;
}
相关阅读 更多 +
排行榜 更多 +