结巴分词库的安装
本文的应用参考是使用手动安装
事实上自动安装更好,方便后续更新该组件库,注意:报错一般为PHP缺少扩展,自己排查
自动安装
进入执行目录,输入以下命令
composer require fukuball/jieba-php:dev-master
如果有宝塔面板,也可以在指定目录上传GitHub该项目(在本文底部)中的composer.json配置文件,点击网站设置中的其它设置,选择执行目录
![图片[1]-PHP结巴分词的使用-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20240613133839527-image.png)
引用方法
ini_set('memory_limit', '1024M');//设置内存,建议默认
$mulu = "/wp-content/vendor/";//存放目录
//通过require_once引用autoload.php
require_once $_SERVER['DOCUMENT_ROOT'] . $mulu . "vendor/autoload.php";
//通过use关键字引入库
use Fukuball\Jieba\Jieba;
use Fukuball\Jieba\Finalseg;
手动安装
GitHub结巴分词发行包下载(文末提供本站下载):https://github.com/fukuball/jieba-php/releases
最后上传到指定目录并解压即可
引用方法:
ini_set('memory_limit', '1024M');//设置内存,建议默认
$mulu = "/wp-content/vendor/";//存放目录
//通过require_once引用
require_once $_SERVER['DOCUMENT_ROOT'] . $mulu . "jieba/vendor/multi-array/MultiArray.php";
require_once $_SERVER['DOCUMENT_ROOT'] . $mulu . "jieba/vendor/multi-array/Factory/MultiArrayFactory.php";
require_once $_SERVER['DOCUMENT_ROOT'] . $mulu . "jieba/class/Jieba.php";
require_once $_SERVER['DOCUMENT_ROOT'] . $mulu . "jieba/class/Finalseg.php";
//通过use关键字引入库
use Fukuball\Jieba\Jieba;
use Fukuball\Jieba\Finalseg;
结巴分词的使用
三种分词模式:
- 默认可炼模式,试图将句子最精炼地切开,适合文本分析;
- 全模式中,把句子中所有的可以成词的词语都描写出来,但是不能解歧义。(需要访问字典)
- 搜寻引擎模式,在精简模式的基础上,对长度词再次切换,召回率,适用于搜索引擎分词。
其它特征:支持繁体词,支持自定义,普通分词
参数说明:
cut方法接受想输入的参数:第一个部分需要分词的字符串 第二个部分是cut_all参数cutForSearch方法接受一个参数:需要分类的字符串,该方法适用于搜索引擎构建倒排索引的分类,粒度比较细- 注意:待分词的字符串是 utf-8 字符串
cut返回cutForSearch的结构是一个可迭代的数组
Jieba::init(); //Jieba初始化
Finalseg::init(); //Finalseg初始化
$seg_list = Jieba::cut("我来到北京清华大学"); //默认精确模式
var_dump($seg_list);
$seg_list = Jieba::cut("我来到北京清华大学", true); //全模式
var_dump($seg_list);
$seg_list = Jieba::cut("我来到北京清华大学", false); //默认精确模式,false参数告知
var_dump($seg_list);
$seg_list = Jieba::cutForSearch("我来到北京清华大学"); #搜索引擎模式
var_dump($seg_list);
以上将打印以下数组到页面
//默认精确模式
array(4) { [0]=> string(3) "我" [1]=> string(6) "来到" [2]=> string(6) "北京" [3]=> string(12) "清华大学" }
//全模式
array(7) { [0]=> string(3) "我" [1]=> string(6) "来到" [2]=> string(6) "北京" [3]=> string(6) "清华" [4]=> string(12) "清华大学" [5]=> string(6) "华大" [6]=> string(6) "大学" }
//默认精确模式,false参数告知
array(4) { [0]=> string(3) "我" [1]=> string(6) "来到" [2]=> string(6) "北京" [3]=> string(12) "清华大学" }
//搜索引擎模式
array(7) { [0]=> string(3) "我" [1]=> string(6) "来到" [2]=> string(6) "北京" [3]=> string(6) "清华" [4]=> string(6) "华大" [5]=> string(6) "大学" [6]=> string(12) "清华大学" }
至于更深的玩法如:添加自定义词典,关键字删除,词性分词,切换为繁体字典,保留日语或者韩语原文不进行过滤,返回词语在原文的起止位置
本文不再赘述(其实就是懒),请前往文末进入项目地址查看
使用分词用于关键词拦截的应用示例
新建一份TXT文档,放入敏感词,以英文 , 作为中间分割符,作为敏感词库
将以下代码修改,或是新建一份PHP文件放入
此时若待处理的内容句子含有违禁词,将打印:你怎么可以发违规词!+违禁词
你可以将打印改为弹窗并停止其它动作
项目地址
PHP结巴分词:https://github.com/fukuball/jieba-php
相关内容
温馨提示:
本文最后更新于
登录后可快速点此处反馈,点击登录
2025-12-07 17:25:57,某些文章具有时效性,若有错误或已失效,请在下方留言或加入QQ群:
399019539 联系群主反馈。注意一些链接无法访问可能是你网络的原因,如Github,并非资源地址失效。
登录后可快速点此处反馈,点击登录
© 版权声明
THE END












请登录后查看评论内容