tp5 封裝阿里雲敏感詞檢測接口

PHP SDK開發包下載

https://help.aliyun.com/knowledge_detail/50180.html?spm=5176.7850179.2.1.5BZP9q

<?php

namespace Potting;

include_once 'Aliyun/aliyun-php-sdk-core/Config.php';

use Green\Request\V20170112 as Green;

class TextScan{

    private static $accessKeyId='';

    private static $accessKeySecret='';

    static public  function text($content){

        date_default_timezone_set("PRC");

        $iClientProfile = \DefaultProfile::getProfile("cn-shanghai", self::$accessKeyId, self::$accessKeySecret);

        \DefaultProfile::addEndpoint("cn-shanghai", "cn-shanghai", "Green", "green.cn-shanghai.aliyuncs.com");

        $client = new \DefaultAcsClient($iClientProfile);

        $request = new Green\TextScanRequest();

        $request->setMethod("POST");

        $request->setAcceptFormat("JSON");

        $task1 = array('dataId' =>  uniqid(),

            'content' => $content

        );

        /**

         * 文本垃圾檢測: antispam

         * 關鍵詞檢測: keyword

         **/

        $request->setContent(json_encode(array("tasks" => array($task1),

            "scenes" => array("antispam"))));

        try {

            $response = $client->getAcsResponse($request);

            $result=array();

            if(200 == $response->code){

                $taskResults = $response->data;

                foreach ($taskResults as $taskResult) {

                    if(200 == $taskResult->code){

                        $sceneResults = $taskResult->results;

                        foreach ($sceneResults as $sceneResult) {

                            $scene = $sceneResult->scene;

                            $suggestion = $sceneResult->suggestion;

                            $result=$taskResult;

                        }

                    }else{

                        print_r("task process fail:" + $response->code);

                    }

                }

            }else{

                print_r("detect not success. code:" + $response->code);

            }

            $result=$result->results[0];

            $data=array();

            if($result->label == 'normal'){

                $data['code']=true;

                $data['label']=$result->label;

            }else{

                $data['code']=false;

                $data['label']=self::getlabel($result->label);

            }

            return $data;

        } catch (Exception $e) {

            print_r($e);

        }


    }

    static private function getlabel($label){

        switch ($label){

            case  'normal':

                return '正常文本';

                break;

            case  'spam':

                return '輸入的內容含垃圾信息';

                break;

            case  'ad':

                return '輸入的內容含廣告';

                break;

            case  'politics':

                return '輸入的內容含渉政';

                break;

            case  'terrorism':

                return '輸入的內容含暴恐';

                break;

            case  'abuse':

                return '輸入的內容含辱罵';

                break;

            case  'porn':

                return '輸入的內容含色情';

                break;

            case  'flood':

                return '輸入的內容含灌水';

                break;

            case  'contraband':

                return '輸入的內容含垃違禁';

                break;

            case  'customized':

                return '輸入的內容包含敏感詞';

                break;

            default:

                return '';

                break;

        }

    }

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章