PHP实现中文分词功能的具体方法

来源:爱站网时间:2019-01-16编辑:网友分享
下文是实例分析了PHP中文分词,这个代码分析了字符串遍历、转换、操作等的技术,PHP实现中文分词功能的具体方法大家都了解吗?需要了解它的朋友可以参考下面的内容。

下文是实例分析了PHP中文分词,这个代码分析了字符串遍历、转换、操作等的技术,PHP实现中文分词功能的具体方法大家都了解吗?需要了解它的朋友可以参考下面的内容。

复制代码 代码如下:

class NLP{
private static $cmd_path;
// 不以'/'结尾
static function set_cmd_path($path){
self::$cmd_path = $path;
}
private function cmd($str){
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
);
$cmd = self::$cmd_path . "/ictclas";
$process = proc_open($cmd, $descriptorspec, $pipes);
if (is_resource($process)) {
$str = iconv('utf-8', 'gbk', $str);
fwrite($pipes[0], $str);
$output = stream_get_contents($pipes[1]);
fclose($pipes[0]);
fclose($pipes[1]);
$return_value = proc_close($process);
}
/*
$cmd = "printf '$input' | " . self::$cmd_path . "/ictclas";
exec($cmd, $output, $ret);
$output = join("\n", $output);
*/
$output = trim($output);
$output = iconv('gbk', 'utf-8', $output);
return $output;
}
/**
* 进行分词, 返回词语列表.
*/
function tokenize($str){
$tokens = array();
$output = self::cmd($input);
if($output){
$ps = preg_split('/\s+/', $output);
foreach($ps as $p){
list($seg, $tag) = explode('/', $p);
$item = array(
'seg' => $seg,
'tag' => $tag,
);
$tokens[] = $item;
}
}
return $tokens;
}
}
NLP::set_cmd_path(dirname(__FILE__));
?>


使用起来很简单(确保 ICTCLAS 编译后的可执行文件和词典在当前目录):

 

复制代码 代码如下:

 


require_once('NLP.php');
var_dump(NLP::tokenize('Hello, World!'));
?>
通过爱站技术频道小编介绍的PHP实现中文分词功能的具体方法,相信大家都有了一定的了解,想要了解更多的技术内容,请继续关注爱站技术频道吧!

上一篇:PHP文件上传功能的示例代码

下一篇:PHP预防CC攻击的实现代码

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载