PHP结巴分词的使用

结巴中文分词是纯PHP实现的,支持简体中文分词,繁体中文分词,中文语法组。总之可以用来自然语言语法文本分析,比如:网站内搜索,关键词拦截(本文会提供一份关键词拦截的应用参考)

结巴分词库的安装

本文的应用参考是使用手动安装

事实上自动安装更好,方便后续更新该组件库,注意:报错一般为PHP缺少扩展,自己排查

自动安装

进入执行目录,输入以下命令

composer require fukuball/jieba-php:dev-master

如果有宝塔面板,也可以在指定目录上传GitHub该项目(在本文底部)中的composer.json配置文件,点击网站设置中的其它设置,选择执行目录

图片[1]-PHP结巴分词的使用-王先生笔记

引用方法

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;

结巴分词的使用

三种分词模式:

  1. 默认可炼模式,试图将句子最精炼地切开,适合文本分析;
  2. 全模式中,把句子中所有的可以成词的词语都描写出来,但是不能解歧义。(需要访问字典)
  3. 搜寻引擎模式,在精简模式的基础上,对长度词再次切换,召回率,适用于搜索引擎分词。

其它特征:支持繁体词,支持自定义,普通分词

参数说明:

  • 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

相关内容

原文链接(非王先生笔记发布均为盗版):https://wxsnote.cn/5080.html

评论后可接收该文章的更新邮箱通知
友情赞助

如果你喜欢我的内容,可以赞助我哦!你的一点点心意,是我不断前进的动力!
温馨提示: 本文最后更新于2025-12-07 17:25:57,某些文章具有时效性,若有错误或已失效,请在下方留言或加入QQ群: 399019539 联系群主反馈。注意一些链接无法访问可能是你网络的原因,如Github,并非资源地址失效。
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
PHP结巴分词的使用-王先生笔记
结巴分词0.34版本
此内容为免费资源,请登录后查看
0
免费资源
相关推荐
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容

王先生笔记