使用Discuz关键词服务器实现PHP中文分词
2023-09-14 08:59:34 时间
不同于使用自己的服务器进行分词,Discuz!在线中文分词服务是基于API返回分词结果的。在项目中,我们只需要一个函数即可方便地进行分词、关键词提取。
以下是根据Discuz!在线分词服务API写的函数,测试可正常运行:
/**
* DZ在线中文分词
* @param $title string 进行分词的标题
* @param $content string 进行分词的内容
* @param $encode string API返回的数据编码
* @return array 得到的关键词数组
*/
function dz_segment($title = '', $content = '', $encode = 'utf-8'){
if($title == ''){
return false;
}
$title = rawurlencode(strip_tags($title));
$content = strip_tags($content);
if(strlen($content)>2400){ //在线分词服务有长度限制
$content = mb_substr($content, 0, 800, $encode);
}
$content = rawurlencode($content);
$url = 'http://keyword.discuz.com/related_kw.html?title='.$title.'&content='.$content.'&ics='.$encode.'&ocs='.$encode;
$xml_array=simplexml_load_file($url); //将XML中的数据,读取到数组对象中
$result = $xml_array->keyword->result;
$data = array();
foreach ($result->item as $key => $value) {
array_push($data, (string)$value->kw);
}
if(count($data) > 0){
return $data;
}else{
return false;
}
}
分词示例,通过url访问:
http://keyword.discuz.com/related_kw.html?title=高三历史全程复习精品教程&content=&ics=utf-8&ocs=utf-8
返回的XML数据:
<?xml version="1.0" encoding="utf-8" ?>
<total_response>
<svalid>36000</svalid>
<keyword>
<info>
<count>1</count>
<errno>0</errno>
<nextuptime>1291287160</nextuptime>
<keep>0</keep>
</info>
<result>
<item>
<kw><![CDATA[高三历史]]></kw>
</item>
</result>
</keyword>
</total_response>
<total_response>
<svalid>36000</svalid>
<keyword>
<info>
<count>1</count>
<errno>0</errno>
<nextuptime>1291287160</nextuptime>
<keep>0</keep>
</info>
<result>
<item>
<kw><![CDATA[高三历史]]></kw>
</item>
</result>
</keyword>
</total_response>
相关文章
- 笛卡尔积 php,PHP笛卡尔积实现算法示例
- 【php】关闭PHP错误提示方法,防止错误信息泄露
- Linux新建PHP文件的操作指南(linux新建php文件)
- Linux快速部署配置PHP服务器环境(linux部署php环境)
- PHP 存储数据到 MySQL 数据库(php写入mysql)
- PHP连接MySQL的实现方法(php怎么连接mysql)
- PHP扩展插件imagick使用笔记详解编程语言
- PHP arsort():对数组排序(降序),并保持索引关系
- 部署PHP应用:Linux服务器上的挑战(linux部署php)
- PHP和Linux技术结合的灵活力量(php和linux)
- 数据PHP操作MySQL:删除数据(php删除mysql)
- Drupal8安装提示PHP OPCODE CACHING未启用的解决方法
- 数据深入了解:PHP查询MySQL数据库(php显示mysql)
- Linux上的PHP扩展开发(php扩展linux)
- 环境PHP和MySQL环境搭建:快速、安全、便捷(php和mysql配置)
- 提升 PHP 技能,一攻 MySQL 面试!(php面试Mysql)
- PHP如何正确输出MySQL中文字符避免乱码?(php输出mysql乱码)
- Linux上PHP重装教程(linux重装php)
- 重启Linux服务器,以使PHP生效(php重启linux)
- 如何使用PHP重启Linux服务:简易教程(php重启linux服务)
- PHP访问MSSQL的挣扎:无可奈何.(找不到php mssql)
- MySQL实现PHP数组存储的效果(mysql存储数组php)
- PHP结合MySQL实现数据库事务锁定机制(php mysql 锁)
- PHP连接MS SQL服务器添加数据(php 添加mssql)
- 简便快捷:在PHP服务器上使用MSSQL(php服务器 mssql)
- PHP实用代码收集
- PHP学习笔记之一
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- PHP内核探索:变量概述
- php的sprintf函数的用法控制浮点数格式
- php实现数组筛选奇数和偶数示例
- php学习笔记之面向对象