设为首页 收藏本站
查看: 840|回复: 0

[经验分享] PHP中文分词

[复制链接]

尚未签到

发表于 2018-12-23 14:52:15 | 显示全部楼层 |阅读模式
  PHP中文分词
  最常见的词语二分法:
  $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("/[a-zA-Z]+/", $str, $estr);
  preg_match_all("/[0-9]+/", $str, $nstr);
  $str = preg_replace("/[0-9a-zA-Z]+/", " ", $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[0])?$estr[0]:array();
  $nstr = isset($nstr[0])?$nstr[0]:array();
  return array_merge($nstr,$estr,$cstr);
  }
  執行結果是:
  Array ( [0] => 7 [1] => www [2] => di [3] => net [4] => 这是 [5] => 是我 [6] => 我的 [7] => 的网 [8] => 网站 )
  接下来,将以上结果转换为区位码,PHP代码是:
  foreach ($result as $s) {
  $s = iconv('UTF-8','GB2312',$s);
  $code[] = gbCode($s);
  }
  $code = implode(" ", $code);
  echo $code;
  function gbCode($str) {
  $return = null;
  if (!preg_match("/^[\x80-\xff]{2,}$/",$str)) return $str;
  $len = strlen($str);
  for ($i= 0; $i< $len; $i=$i+2) {
  $return .= sprintf("%02d%02d",ord($str{$i})-160,ord($str{$i+1})-160);
  }
  return $return;
  }


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-654912-1-1.html 上篇帖子: php .inc 文件 下篇帖子: PHP生成水印
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表