加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

中文分词的php代码

发布时间:2022-02-15 18:05:52 所属栏目:PHP教程 来源:互联网
导读:以前有用过dedecms分词功能,经过测试还是不理想,后来经过一些处理得到的结果还是可以接受的,今天我再看到这款分词法,拿出来给大家看看,实例代码如下: ?php class NLP{ private static $cmd_path; // 不以/结尾 static function set_cmd_path($path){ self:
  以前有用过dedecms分词功能,经过测试还是不理想,后来经过一些处理得到的结果还是可以接受的,今天我再看到这款分词法,拿出来给大家看看,实例代码如下:
 
  <?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,  
  ); //开源代码Cuoxin.com
  $tokens[] = $item;  
  }  
  }  
  return $tokens;  
  }  
  }  
  NLP::set_cmd_path(dirname(__FILE__));  
  ?>
  用起来很简单,确保 ICTCLAS 编译后的可执行文件和词典在当前目录,代码如下:
 
  <?php  
  require_once('NLP.php');  
  var_dump(NLP::tokenize('Hello, World!'));  
  ?>
  进行中文分词的 PHP 类就在下面了,用 proc_open() 函数来执行分词程序,并通过管道和其交互, 输入要进行分词的文本, 读取分词结果.

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读