Laravel 中使用PHP 分词库(jieba) 和(scws) - LearnKu

文章推薦指數: 80 %
投票人數:10人

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编写文章,未使用代码高亮 内容结构混乱:逻辑不清晰,内容混乱,难以阅读 标题随意:标题党、标题不释义 尊重版权:分享付费课程、破解软件(付费),侵犯作者劳动成果 其他理由:请补充说明 举报 取消



請為這篇文章評分?