php—jieba 不安装扩展方式使用

参考地址:

GitHub - fukuball/jieba-php: "結巴"中文分詞:做最好的 PHP 中文分詞、中文斷詞組件。 / "Jieba" (Chinese for "to stutter") Chinese text segmentation: built to be the best PHP Chinese word segmentation module.

自动安装:

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);

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值