爱程序网

手把手教你做关键词匹配项目(搜索引擎)---

来源: 阅读:

客串:屌丝的坑人表单神器数据库那点事儿

面向对象升华:面向对象的认识----新生的初识面向对象的番外----思想的梦游篇(1)面向对象的认识---如何找出类

负载均衡:负载均衡----概念认识篇负载均衡----实现配置篇(Nginx)

 

吐槽:现在欠的文章有面向对象的认识----类的转化、面向对象的番外---思想的梦游篇(2)、负载均衡 ---- 文件服务策略、手把手教你做关键词匹配项目(搜索引擎)。真心太多了,能不能让我休息一会儿。

 

第二十一天

起点:手把手教你做关键词匹配项目(搜索引擎)---- 第一天

回顾:手把手教你做关键词匹配项目(搜索引擎)---- 第二十天

今天有个理论知识要理解的,叫做测试驱动编程,之前我提到过概念,在:手把手教你做关键词匹配项目(搜索引擎)---- 第十一天 

今天小帅帅秀逗了一回,使用了这个思想。

好了,以下正文开始。

 

话说小帅帅把自己写的业务拆词方法给了于老大看,于老大很高兴。

但是业务拆词的词组都是有限的,还有就是当业务拆词的数据量越来越大的时候,就会造成运算时间增加。

于老大就提到,是否可以用其它分词扩展来弥补拆词的不足。

毕竟人家专业人士做的,比较靠谱点。

于老大很有经验,就推荐小帅帅去了解SCWS的用法.

SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统)。
官方网址:http://www.xunsearch.com/scws/index.php

小帅帅听了当然很开心罗,因为又有新的知识点了。

小帅帅照着SCWS的安装文档安装了SCWS。

并把php扩展装好了,并尝试写了个测试代码:

<?phpclass TestSCWS {    public static function split($keyword){        if (!extension_loaded("scws")) {            throw new Exception("scws extension load fail");        }        $so = scws_new();        $so->set_charset('utf8');        $so->send_text($keyword);        $ret = array();        while ($res = $so->get_result()) {            foreach ($res as $tmp) {                if (self::isValidate($tmp)) {                    $ret[] = $tmp;                }            }        }        $so->close();        return $ret;    }    public static function isValidate($scws_words)    {        if ($scws_words['len'] == 1 && ($scws_words['word'] == "r" || $scws_words['word'] == "n")) {            return false;        }        return true;    }}var_dump(TestSCWS::split("连衣裙xxl裙连衣裙"));