laravel/php安装使用结巴分词进行中文分词

安装php版本结巴分词

git clone https://github.com/jonnywang/phpjieba.gitcd phpjieba/cjieba
makecd ..
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=1jieba.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的dd函数不生效怎么办
看不懂laravel文档咋办
安装laravel框架出现command怎么办
Laravel开发API怎么使用事务
laravel怎么构建复杂查询条件
laravel如何实现防止被下载