php中文语义分析实现方法示例

yipeiwu_com7年前PHP代码库

本文实例讲述了php中文语义分析实现方法。分享给大家供大家参考,具体如下:

最近公司有个需求要做文章关键词提取,发现有个波森语义分析,还不错,把其http接口封装了一下,
发布到packagist上了。

简介

简单的封装了BosonNLP中文语义识别的api。

安装

composer require xdao/boson-nlp

使用

require 'vendor/autoload.php';
use Xdao\Util\BosonNLP;
$news = <<<EOF
继前不久始于中国的召回风波,宝马因为车辆的发动机螺栓故障,在全球范围将召回48.9万辆车,在原有中国召回的基础上数量进一步增加。
据悉,召回车辆将包括北美市场的15.6万辆,宝马曾于3月宣布在华召回232,098辆发动机螺栓故障车辆。涉及车型包括搭载六缸发动机的宝马5系、7系、X3、X5,。
但具体型号Santer并没有透露。宝马发言人Bernhard Santer表示,目前尚无该故障造成事故或伤亡的报告。但他仍建议相关车主及时检查车辆引擎。
Santer说,凭借剩余的动力,车辆仍旧可以坚持到最近的修理厂。
EOF;
//example1 不抛出异常
$bnlp = new BosonNLP("your_key");
$response= $bnlp->keywords($news);
if($response){
 var_dump($response);
}
//example2 抛出异常
$bnlp = new BosonNLP("your_key",true,true);
try {
  $response= $bnlp->keywords($news."\""); 
  var_dump($response);
} catch (Exception $ex) {
  echo $ex->getMessage();
}
//example3 去除英文标点
$response= $bnlp->keywords(BosonNLP::removePunct($news."\""));
var_dump($response);

注意

  • 为了简洁,使用的是php内置的file_get_contents,不支持异步,返回原始所有数据,未做处理

  • 有两种处理错误方式,一种是错误时返回false,一种是抛出异常

  • BosonNLP有点傻,如果末尾带了英文的引号就不能处理了,如上exampl2,于是提供了一个去除英文标点的静态方法removePunct
  • 详细的文档,请查阅官网

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP扩展开发教程》、《PHP网络编程技巧总结》、《php curl用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php字符串(string)用法总结》

希望本文所述对大家PHP程序设计有所帮助。

相关文章

浅谈PHP 闭包特性在实际应用中的问题

呃,其实大部分情况下是可以的,而有些方面还是令人非常的困扰,下面慢慢道来。 很多语言的都提供了非常优雅和漂亮的操作数组的方法。在下面的例子中,会使用 PHP5.3 以及其他语言提供的闭包...

PHP生成UTF8文件的方法

复制代码 代码如下:<?php $f=fopen("test.txt", "wb"); $text=utf8_encode("a!"); //先用函数utf8_encode将所需写...

(PHP实现)只使用++运算实现加法,减法,乘法,除法

加法复制代码 代码如下:function jiafa($a,$b){ for($i=0;$i<$b;$i++) {  $a++; ...

提高Laravel应用性能方法详解

使用Laravel做开发是高效而愉悦的体验。 通常,当你准备部署应用的时候,你可能会意识到应用也许会在真实环境下表现不佳。 需要明白的是,没有银弹。通过努力去对应用的每个细节完成所有的优...

PHP合并数组的2种方法小结

前言 在此前合并数组我一直用的是array_merge()这个函数,但最近我在换工作的时候遇到一道合并数组的面试题,我当时想的是将两个数组先转化为字符串,合并后再转化为数组输出,面试官说...