php分词器

Last modified date

下载分词器

https://github.com/kjcy8/phpanalysis

或者使用 composer require kjcy8/phpanalysis

例:ThinkPHP中


/**
 * 分词器
 * @param {string} $text 需要分割的字符串
 * @param {string} $separator 分割的符号   "|在|西安|国际|港站|8台|龙门吊|正在|同时|吊装|来自|世界各地|的|集装箱"
 * @return {string} $okresult 返回分割的字符串  "|在|西安|国际|港站|8台|龙门吊|正在|同时|吊装|来自|世界各地|的|集装箱"
 * 
 * 下载分词器
 * composer require kjcy8/phpanalysis
 * 在项目根目录新建extends文件夹
 * 把文件从vendor中拷贝出来放入
 * 手动引入
 * */
require_once('..'.DIRECTORY_SEPARATOR.'extends'.DIRECTORY_SEPARATOR.'phpanalysis'.DIRECTORY_SEPARATOR.'PhpAnalysis.php');
use phpanalysis\PhpAnalysis;
function wordSeparator($text, $separator='|'){
     PhpAnalysis::$loadInit = false;
        $pa = new PhpAnalysis('utf-8', 'utf-8', true);
        
        //生成的分词结果数据类型 1 为全部, 2为 词典词汇及单个中日韩简繁字符及英文, 3 为词典词汇及英文
        $pa->SetResultType(2);
        
        //载入词典
        $pa->LoadDict();
        
        //执行分词
        $pa->SetSource($text);
        $pa->differMax = true;
        $pa->StartAnalysis(true);
        
        $okresult = $pa->GetFinallyResult('|', false);
        
        return $okresult;
 }



使用:


    public function searchView(){
        // 获取提交信息
        $reqItem = request()->param();
        // 搜索字段
        $search = $reqItem['search'];
        
        
        
        
        
        // 分词器,分词
        $separator = explode(',', wordSeparator($search, ','));
        //移除第一个空索引
        array_splice($separator, 0, 1);
        //重新赋值
        // $separator=$separator;
        // dump(wordSeparator($search, ','));
        
        
        // 转换条件为 [['name', 'like', '%thinkphp']],
        $whereArr = [];
        foreach ($separator as $key => $value){
            $whereArr[$key] = ['name', 'like', '%'.$value.'%'];
        }
        // return json($whereArr);
        
        
        // 转换后,查询
        $getGoods = ShopGoodsModel::
            whereOr($whereArr)
            ->order('id', 'desc')
            ->select();
        
        return view('../template/search_goods_view.html', [
                'userinfo'     =>  $userinfo ,
                'search'       =>  $search,   // 搜索的文字
                'searchGoods'  =>  $getGoods, // 搜索的商品
        ]);
    }
    
    

weijiang