参考地址:
自动安装:
composer require fukuball/jieba-php:dev-master
require_once "/path/to/your/vendor/autoload.php";
引用示例:
<?php
ini_set('memory_limit', '1024M');
require_once "./vendor/autoload.php";
use Fukuball\Jieba\Jieba;
use Fukuball\Jieba\Finalseg;
Jieba::init();
Finalseg::init();
手动安装:
将 jieba-php 放置在适当的目录后, 通过 require_once 引用
1、克隆 jieba-php
git clone https://github.com/fukuball/jieba-php.git
2、将 jieba-php 文件夹 放到项目合适的目录‘
3、引用相关文件
引用示例
<?php
ini_set('memory_limit', '1024M');
require_once "./jieba-php/src/vendor/multi-array/MultiArray.php";
require_once "./jieba-php/src/vendor/multi-array/Factory/MultiArrayFactory.php";
require_once "./jieba-php/src/class/Jieba.php";
require_once "./jieba-php/src/class/Finalseg.php";
use Fukuball\Jieba\Jieba;
use Fukuball\Jieba\Finalseg;
Jieba::init();
Finalseg::init();
相关功能
功能一:分词
cut 方法接收两个参数
参数一:(string)需要分词的字符串
参数二:cut_all(bool) 用来控制分词模式, 默认:false
cutForSearch 方法接收一个参数
参数一: 代分词字符串,
该方法适用于搜索引擎构建倒排索引的分词,粒度比较细
注意:待分词字符串为 utf-8格式
代码示例:
$content = '一个人也要过的很好呀!';
$seg_list = Jieba::cut($content);
var_dump($seg_list);
#全模式
$seg_list = Jieba::cut($content, true);
var_dump($seg_list);
#精确模式 —— 默认
$seg_list = Jieba::cut($content, false);
var_dump($seg_list);
#搜索引擎模式
$seg_list = Jieba::cutForSearch($content);
var_dump($seg_list);
功能二:添加自定义词典
开发者可以指定自己定义的词典,以便包含jieba词库里没有的词,虽然jieba有新词识别功能,但是自行添加的新词可以保证更高的正确率
用法: Jieba::loadUserDict($file_name) // $file_name 为自定义词典路径
词典的格式和 dict.txt一样,一个词占一行,每一行分为3个部分,即: 词语 词频 词性 使用空格分隔
代码示例
$content = '一个人也要过的很好呀!';
// 加载自定义词典
Jieba::loadUserDict("./dic/custom.txt");
// 执行分词
$seg_list = Jieba::cut($content);
var_dump($seg_list);
功能三:关键词提取
用法: JiebaAnalyse::extractTags($content, $top_k)
content 为待提取的文本
top_k 为返回几个 TF/IDF 权重最大的关键词, 默认值为 20
代码示例:
<?php
ini_set('memory_limit', '1024M');
require_once "./vendor/autoload.php";
use Fukuball\Jieba\Jieba;
use Fukuball\Jieba\Finalseg;
use Fukuball\Jieba\JiebaAnalyse;
Jieba::init(array('mode'=>'test','dict'=>'small'));
Finalseg::init();
JiebaAnalyse::init();
$content = '中华人民共和国万岁!';
$result = JiebaAnalyse::extractTags($content, 10);
var_dump($result);
功能四:词性分词
代码示例:
<?php
ini_set('memory_limit', '1024M');
require_once "./vendor/autoload.php";
use Fukuball\Jieba\Jieba;
use Fukuball\Jieba\Finalseg;
use Fukuball\Jieba\Posseg;
Jieba::init();
Finalseg::init();
Posseg::init();
$content = '中华人民共和国万岁!';
$result = Posseg::cut($content, 20);
var_dump($result);
功能五:切换成繁体字典
代码示例:
<?php
ini_set('memory_limit', '1024M');
require_once "./vendor/autoload.php";
use Fukuball\Jieba\Jieba;
use Fukuball\Jieba\Finalseg;
Jieba::init(array('mode'=>'default','dict'=>'big'));
Finalseg::init();
$content = '中华人民共和国万岁!';
$seg_list = Jieba::cut($content);
var_dump($seg_list);
$content = '中華人民共和國萬歲!';
$seg_list = Jieba::cut($content);
var_dump($seg_list);
功能六:保留日语或者朝鲜语原文不进行过滤
代码示例:
<?php
ini_set('memory_limit', '1024M');
require_once "./vendor/autoload.php";
use Fukuball\Jieba\Jieba;
use Fukuball\Jieba\Finalseg;
Jieba::init(array('cjk'=>'all'));
Finalseg::init();
$content = '한국어 또는 조선말은 제주특별자치도를 제외한 한반도 및 그 부속 도서와 한민족 거주 지역에서 쓰이는 언어로';
$seg_list = Jieba::cut($content);
var_dump($seg_list);
$content = '日本語は、主に日本国内や日本人同士の間で使われている言語である。';
$seg_list = Jieba::cut($content);
var_dump($seg_list);
// 加载日语词库可以对日语进行简单的分词
Jieba::loadUserDict("/path/to/your/japanese/dict.txt");
$seg_list = Jieba::cut($content);
var_dump($seg_list);
功能七:返回词语在原文的起止位置
代码实例:
<?php
ini_set('memory_limit', '1024M');
require_once "./vendor/autoload.php";
use Fukuball\Jieba\Jieba;
use Fukuball\Jieba\Finalseg;
Jieba::init(array('mode'=>'test','dict'=>'big'));
Finalseg::init();
$content = '中华人民共和国万岁!';
$seg_list = Jieba::tokenize($content);
var_dump($seg_list);