Seven的部落格 发表于 2013-1-1 22:11:57

PHP中文分词

<div id="cnblogs_post_body">最常见的词语二分法:
<div class="cnblogs_Highlighter">$str = '这是我的网站www.7di.net!';//$str = iconv('GB2312','UTF-8',$str);$result = spStr($str);print_r($result);    /*** UTF-8版 中文二元分词*/function spStr($str){      $cstr = array();      $search = array(",", "/", "\\", ".", ";", ":", "\"", "!", "~", "`", "^", "(", ")", "?", "-", "\t", "\n", "'", "<", ">", "\r", "\r\n", "{1}quot;", "&", "%", "#", "@", "+", "=", "{", "}", "[", "]", ":", ")", "(", ".", "。", ",", "!", ";", "“", "”", "‘", "’", "[", "]", "、", "—", " ", "《", "》", "-", "…", "【", "】",);      $str = str_replace($search, " ", $str);      preg_match_all("/+/", $str, $estr);      preg_match_all("/+/", $str, $nstr);      $str = preg_replace("/+/", " ", $str);      $str = preg_replace("/\s{2,}/", " ", $str);      $str = explode(" ", trim($str));      foreach ($str as $s) {          $l = strlen($s);            $bf = null;          for ($i= 0; $i< $l; $i=$i+3) {            $ns1 = $s{$i}.$s{$i+1}.$s{$i+2};            if (isset($s{$i+3})) {                  $ns2 = $s{$i+3}.$s{$i+4}.$s{$i+5};                  if (preg_match("/[\x80-\xff]{3}/",$ns2)) $cstr[] = $ns1.$ns2;            } else if ($i == 0) {                  $cstr[] = $ns1;            }          }      }      $estr = isset($estr)?$estr:array();      $nstr = isset($nstr)?$nstr:array();      return array_merge($nstr,$estr,$cstr);}
页: [1]
查看完整版本: PHP中文分词