我希望做一个站内搜索,但是不知道怎么分词,希望牛人们给我个比较好的分词源码,如果是网上的资源,希望是免费开源的,我找了一天了,没找到一个中意的php代码。如果有人用过RMM分词技术的,希望也能指点我下,我教材上有个RMM分词代码,http://hi.baidu.com/js_xiaoleme/blog/item/a507a1272c3bd226d4074221.html 上也有。但是我通过这个分词方法分词后就没有输出了。不知道怎么办,希望帮帮忙。我刚接触网站编程不到一个月,太萌了。如果可以,我把RMM分词技术的完整源码发给你帮我改下。谢谢各位了。

解决方案 »

  1.   

    加载scws 模块,
    extension = php_scws.dll ,linux 下就编辑安装一下。
    附一个过滤关健词的例子。    /**
         * @param $content
         */
     
       public function checkWords( $content )
        {
           // KDG::log("1.3.1 开始验证$content");
            $so = scws_new();
            $dicPath = $_SERVER["DOCUMENT_ROOT"] . self::BANNDED_WORD;
            $so->set_dict($dicPath, SCWS_XDICT_TXT);
            $so->send_text($content);         $ret = $so->has_word("*");
            if ($ret) {
                $result = $so->get_words("*");
                $words = array();
               foreach ($result as $w) {
                    $words[] = $w['word'];
                }
                $this->_message = '含有敏感词:' . implode(',', $words) . ' 请用下划线_隔开敏感词';
             //   KDG::log("--1.3.2 提示用户 \" $this->_message \"");
              //  KDG::log("--1.3.3 \" 发送文字合法性验证未通过,发送短信关闭 \"");
                return false;        }
            return true;
        }
    关健字文件 格式如下 
    aaaa 1.0 1.0 *
    bbbb 1.0 1.0 *
    cccc 1.0 1.0 *
      

  2.   

    scws 试了下,找不到规则文件,在windows下不知道怎么安装,而且安装了也不知道怎么用啊。网上相关介绍太不明了了