分享一个PHP中文分词

  1. <?php  
  2.   
  3. /** 
  4.  * 中文分词处理方法 
  5.  *+--------------------------------- 
  6.  * @param stirng  $string 要处理的字符串 
  7.  * @param boolers $sort=false 根据value进行倒序 
  8.  * @param Numbers $top=0 返回指定数量,默认返回全部 
  9.  *+--------------------------------- 
  10.  * @return void 
  11.  */  
  12. function scws($text$top = 5, $return_array = false, $sep = ',') {  
  13.     include('./pscws4/pscws4.php');//去下面给的网址把pscws4下载下来  
  14.     $cws = new pscws4('utf-8');  
  15.     $cws -> set_charset('utf-8');  
  16.     $cws -> set_dict('./pscws4/etc/dict.utf8.xdb');  
  17.     $cws -> set_rule('./pscws4/etc/rules.utf8.ini');  
  18.     //$cws->set_multi(3);  
  19.     $cws -> set_ignore(true);  
  20.     //$cws->set_debug(true);  
  21.     //$cws->set_duality(true);  
  22.     $cws -> send_text($text);  
  23.     $ret = $cws -> get_tops($top'r,v,p');  
  24.     $result = null;  
  25.     foreach ($ret as $value) {  
  26.         if (false === $return_array) {  
  27.             $result .= $sep . $value['word'];  
  28.         } else {  
  29.             $result[] = $value['word'];  
  30.         }  
  31.     }  
  32.     return false === $return_array ? substr($result, 1) : $result;  
  33. }  
  34. print_r(scws('青花夔龙纹香炉'));  


scws网址:http://www.xunsearch.com/scws/

pscws4下载:http://download.csdn.net/detail/pzp_118/5412639

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
含有3种切分方法 getWord 长度优先切分 。最快 getShortWord 细粒度切分。比最快慢一点点 getAutoWord 自动切分 (在相邻词做了递归) 。效果最好 可自定义词典,自己添加词语到词库,词库支持文本格式json和二级制格式igb 二进制格式词典小,加载快 dict.igb含有175662个词,欢迎大家补充词语到 dict.txt ,格式(词语 \t idf \t 词性) idf 获取方法 百度搜索这个词语 Math.log(100000001/结果数量),如果你有更好的方法欢迎补充。 词性 [标点符号,名词,动词,形容词,区别词,代词,数词,量词,副词,介词,连词,助词,语气词,拟声词,叹词] 取index ;标点符号取0 三种分词结果对比 $fc = new VicWord('igb'); $arr = $fc->getWord('北京大学生喝进口红酒,在北京大学生活区喝进口红酒'); //北京大学|生喝|进口|红酒|,|在|北京大学|生活区|喝|进口|红酒 //$arr 是一个数组 每个单元的结构[词语,词语位置,词性,这个词语是否包含在词典中] 这里只值列出了词语 $arr = $fc->getShortWord('北京大学生喝进口红酒,在北京大学生活区喝进口红酒'); //北京|大学|生喝|进口|红酒|,|在|北京|大学|生活|区喝|进口|红酒 $arr = $fc->getAutoWord('北京大学生喝进口红酒,在北京大学生活区喝进口红酒'); //北京|大学生|喝|进口|红酒|,|在|北京大学|生活区|喝|进口|红酒 //对比 //qq的分词和百度的分词 http://nlp.qq.com/semantic.cgi#page2 http://ai.baidu.com/tech/nlp/lexical 分词速度 机器阿里云 Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz getWord 每秒140w字 getShortWord 每秒138w字 getAutoWord 每秒40w字 测试文本在百度百科拷贝的一段5000字的文本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值