Laravel 中使用PHP 分词库(jieba) 和(scws) - LearnKu
文章推薦指數: 80 %
laravel中使用php分词库(jieba)和(scws) 坚持开源,坚持分享这篇文章旨在介绍我用过的两个PHP分词库以及他们的简单使用目的:完成一段段落的分词1.Jieba分词库Jieba分 ...
微信登录
Laravel中使用PHP分词库(jieba)和(scws)
bestcyt的个人博客
/
5705
/
6
/
创建于3年前
laravel中使用php分词库(jieba)和(scws)
坚持开源,坚持分享
这篇文章旨在介绍我用过的两个PHP分词库以及他们的简单使用
目的:完成一段段落的分词
1.Jieba分词库
Jieba分词库,GitHub地址
安装:
composerrequirefukuball/jieba-php:dev-master
主要代码:
//这边要给内存,不然会炸
ini_set('memory_limit','1024M');
//初始化
$this->jieba=newJieba();
$this->finalseg=newFinalseg();
$this->jieba->init();
$this->finalseg->init();
//使用
$cut_array=$this->jieba->cut('分词字符串',false);
//分词后的结果是数组
notice:
Jieba分词库可以添加关键字,就是自定义词汇来作分词,有额外需求的可以看GitHub
词汇的词性是在'src/dict/pos_tag_readable.txt'
2.SCWS分词
官方演示网站,scws4;
这个分词库,个人感觉很快,而且不需要像Jieba那样需要内存那么,当时使用完,感觉还不错,我选择的是PSCWS4,就是以PHP环境的,而没用PHP扩展,不支持composer;
1.下载安装:
pscws4
词典(简体中文-utf8)
将pscws4解压后方到http/Help/scws目录下(新建)
将词典文件放到public目录下
2.准备:
修改解压后的pscws4的pscws4.class.php文件名为PSCWS4.php,把require文件改为useApp\Help\scws\XDB_R;
修改解压后的pscws4的xdb_r.class.php文件名为XDB_R.php
给两个类文件添加命名空间namespaceApp\Help\scws;
3.编码测试
简要实现代码(附录有完整代码)
//初始化并设置utf8,设置词典路径和规则路径
$this->pscws=newPSCWS4('utf8');
$this->pscws->set_charset('utf-8');
$this->pscws->set_dict(public_path().'/dict.utf8.xdb');
$this->pscws->set_rule(public_path().'/rules.ini');
//使用:
$this->pscws->send_text("分词的字符串。
。
。
");
while($some=$this->pscws->get_result())
{
foreach($someas$word)
{
$article[]=$word['word'];
}
}
4.效果图
jieba效果图:
pscws4效果图
以上可以看出,jieba对于一些英文标点符号没有很好的切割,例如42的country;而scws对于每个标点符号都作了切割;对于我的需求来说,scws是比较适合我的,如何选择看个人需求。
jieba
优点:能添加关键字;自定义词典
缺点:需要内存大,对于英文分词和标点符号支持不是很好
scws:
优点:词汇字典很大,有28w,可以精细切割每个字符
缺点:无法自己扩展,貌似要钱
附录代码
路由:web.php
Route::get('/scws','WordCutController@scwsCut');
Route::get('/jieba','WordCutController@jieBaCut');
控制器:WordCutController
pscws=newPSCWS4('utf8');
$this->pscws->set_charset('utf-8');
$this->pscws->set_dict(public_path().'/dict.utf8.xdb');
$this->pscws->set_rule(public_path().'/rules.ini');
//使用:
$this->pscws->send_text("DragonBoatFestivalisonetheveryclassictraditionalfestivals,whichhasbeencelebratedsincetheoldChina.Firstly,itistoinhonorofthegreatpoetQuYuan,whojumpedintothewaterandendedhislifeforlovingthecountry.Nowadays,differentplaceshavedifferentwaystocelebrate.
端午节是一个非常经典的传统节日,自古以来就一直被人们所庆祝。
首先,是为了纪念伟大的诗人屈原,屈原跳入水自杀,以此来表达了对这个国家的爱。
如今,不同的地方有不同的庆祝方式。
");
while($some=$this->pscws->get_result())
{
foreach($someas$word)
{
$article[]=$word['word'];
}
}
dd($article);
}
/*
*jieba分词实例
*/
publicfunctionjieBaCut(){
ini_set('memory_limit','1024M');
//初始化
$this->jieba=newJieba();
$this->finalseg=newFinalseg();
$this->jieba->init();
$this->finalseg->init();
//使用
$cut_array=$this->jieba->cut('DragonBoatFestivalisonetheveryclassictraditionalfestivals,whichhasbeencelebratedsincetheoldChina.Firstly,itistoinhonorofthegreatpoetQuYuan,whojumpedintothewaterandendedhislifeforlovingthecountry.Nowadays,differentplaceshavedifferentwaystocelebrate.
端午节是一个非常经典的传统节日,自古以来就一直被人们所庆祝。
首先,是为了纪念伟大的诗人屈原,屈原跳入水自杀,以此来表达了对这个国家的爱。
如今,不同的地方有不同的庆祝方式。
',false);
dd($cut_array);
}
}
如果有不对或不足的,请大佬们指出来,毕竟我只是满足需求,并没有深入研究,谢谢各位大佬哦:)
本作品采用《CC协议》,转载必须注明作者和本文链接
本帖由系统于3年前自动加精
举报
bestcyt
课程读者
190声望
最底层码农@4399
大佬们带带我,我想学习
26人点赞
你将学到如RESTFul设计风格、PostMan的使用、OAuth流程,JWT概念及使用和API开发相关的进阶知识。
以构建论坛项目LaraBBS为线索,展开对Laravel框架的全面学习。
应用程序架构思路贴近Laravel框架的设计哲学。
推荐文章:
更多推荐...
博客
完整的php微服务案例
25
/
17
|
4天前
翻译
Laravel角色和权限:拦截器(Gates)和策略(Policies)解释
18
/
1
|
3周前
博客
聊聊Interface在Laravel开发中的使用
30
/
5
|
3周前
博客
Laravel使用intervention/image扩展包,生成带文字的海报
13
/
1
|
3周前
博客
php开发的js逆向rpc框架
12
/
6
|
1个月前
博客
使用UML类图查看laravel结构,简直缩短了我看框架的时间啊,记录下,嘻嘻嘻
16
/
14
|
1个月前
讨论数量:6
bestcyt
课程读者
190声望
/
最底层码农@4399
忘记说了,记得把pscws4的etc/rules.ini放到public目录下
3年前
评论
评论
ThinkCsly
课程读者
160声望
/
PHP工程师@Markdown
:kissing_heart:
3年前
评论
评论
BJX3Y
课程读者
0声望
顶一下
3年前
评论
评论
Looove
0声望
简单使用,感觉下面这个jieba扩展会好一点,c的扩展效率高点,分词效果还不错,速度也还可以,万字文处理完在毫秒级的,正常千字文章可在微秒级。
PSCWS4这个我没测效率,不好对比。
https://github.com/jonnywang/phpjieba
更新:试了一波PSCWS4的效率,千字文都要秒级了。
3年前
评论
评论
yourself
190声望
/
招聘@你猜
大佬带我
3年前
评论
评论
陆书云
见习助教
10声望
挺好的
3个月前
评论
评论
讨论应以学习和精进为目的。
请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
支持MD
帮助
关注本文
评论
提交
忘记密码?
or
注册
第三方账号登录
微信登录
GitHub登录
匿名举报,为防止滥用,仅管理员可见举报者。
我要举报该,理由是:
垃圾广告:恶意灌水、广告、推广等内容
无意义内容:测试、灌水、文不对题、消极内容、文章品质太差等
违规内容:色情、暴利、血腥、敏感信息等
不友善内容:人身攻击、挑衅辱骂、恶意行为
科学上网:翻墙、VPN、Shadowsocks,政策风险,会被关站!
不懂提问:提问太随意,需要再做一遍《提问的智慧》测验
随意提问:提问没有发布在社区问答分类下
排版混乱:没有合理使用Markdown编写文章,未使用代码高亮
内容结构混乱:逻辑不清晰,内容混乱,难以阅读
标题随意:标题党、标题不释义
尊重版权:分享付费课程、破解软件(付费),侵犯作者劳动成果
其他理由:请补充说明
举报
取消
延伸文章資訊
- 1实用PHP+jieba(结巴)中文关键字提取 - CSDN博客
jieba(结巴)中文分词是目前国内一款较好的中文分词插件。 1.兼容当前绝大部分流行开发语言,例:Java、C/C++、PHP、Ios、 Node.js 等开发语言。
- 2PHP + Jieba (结巴)中文分词-菜鸟文章 - IT菜鸟
PHP + Jieba (结巴)中文分词. ... 设置PHP运行占用内存(最少500M) ... require_once "/path/to/your/vendor/multi-array/...
- 3fukuball jieba-php - ReleaseEye
結巴"中文分詞:做最好的PHP 中文分詞、中文斷詞組件。 / "Jieba" (Chinese for "to stutter") Chinese text segmentation: buil...
- 4jieba繁體Jieba-PHP - QUEMDX
jieba繁體Jieba-PHP. 到了繁簡體轉換全部成為了雞肋。 詞庫較大。 結巴分詞是面向全體漢字分組的,先下載,C++,基於jieba 0.39,jieba.cut分詞三種模式jieba....
- 5實用PHP+jieba(結巴)中文關鍵字提取 - 台部落
jieba(結巴)中文分詞jieba(結巴)中文分詞是目前國內一款較好的中文分詞插件。 1.兼容當前絕大部分流行開發語言,例:Java、C/C++、PHP、Ios、 ...