laravel/php安装使用结巴分词进行中文分词
Song •
4960 次浏览 •
2个评论 •
2018年06月06日
安装php版本结巴分词
git clone https://github.com/jonnywang/phpjieba.git
cd phpjieba/cjieba
make
cd ..
phpize
./configure
make
make install
如果你要安装其他版本的结巴分词,比如java,c++,python版本参考:https://github.com/yanyiwu/cppjieba
在php.ini配置结巴分词
需要在php.ini中配置结巴分词,ubuntu中位于/usr/local/etc/php/7.0/php.ini,你可以自己查找自己的文件位置,同时你要找到自己下载的phpjieba.git的位置:
extension=jieba.so
jieba.enable=1
jieba.dict_path=/private/var/www/phpjieba/cjieba/dict
*jieba.dict_path指向字典所在对应目录,请根据自己编译目录替换更改
测试
$result = jieba('小明硕士毕业于中国科学院计算所,后在日本京都大学深造');
echo implode('/', $result) . PHP_EOL;
//计算所/小明/京都大学/深造/硕士/中国科学院/毕业/日本
$result = jieba('小明硕士毕业于中国科学院计算所,后在日本京都大学深造', 1, 50);
echo implode('/', $result) . PHP_EOL;
//小明/硕士/毕业/于/中国/科学/学院/科学院/中国科学院/计算/计算所/,/后/在/日本/京都/大学/京都大学/深造
$result = jieba('他心理健康', 1);
echo implode('/', $result) . PHP_EOL;
//他/心理/健康/心理健康
$result = jieba('this is a demo, my name is jony', 1, 10);
echo implode('/', $result) . PHP_EOL;
//demo/jony
$result = jieba('this is a demo, my name is jony');
echo implode('/', $result) . PHP_EOL;
//this/ /is/ /a/ /demo/,/ /my/ /name/ /is/ /jony
$result = jieba('小明硕士毕业于中国科学院计算所,后在日本京都大学深造', 2);
print_r($result);
Array
(
[小明] => x
[硕士] => n
[毕业] => n
[于] => p
[中国科学院] => nt
[计算所] => n
[,] => x
[后] => f
[在] => p
[日本] => ns
[京都大学] => nz
[深造] => v
)
- 更新请参考example目录
- 词性可参考HanLP词性标注集解释
- 项目地址:jonnywang/phpjieba
修改字典
上面我们配置了/private/var/www/phpjieba/cjieba/dict为存放目录,接下来我们要定义自己的字典库,一般情况下在user.dict.utf8中修改即可,可以把值设置高点防止其它权值太高导致你设置的无效:
不处理 999999999 nz
-
laravel执行group by的sql时出现Syntax error or access violation: 1055 'db.id' isn't in GROUP BY错误解决办法 2018-06-04 -
[数据库优化-查询优化] 创建索引以及单一/复合索引区别与使用场景分析 2018-06-02 -
laravel日志配置以及设置按日期记录日志 2018-06-02 -
网站进行AB测试以及AB测试命令详解 2018-05-10 -
使用Jmeter对你的Laravel网站进行压力测试 2018-05-13

更多相关好文