ホームページ  >  記事  >  バックエンド開発  >  TP5 は、Alibaba Cloud の機密性の高い単語検出インターフェイスをカプセル化します。

TP5 は、Alibaba Cloud の機密性の高い単語検出インターフェイスをカプセル化します。

*文
*文オリジナル
2017-12-21 11:14:113807ブラウズ

実際のプロジェクトでは、機密性の高い言葉をブロックする必要があるのは避けられません。この記事では、参考のために機密単語検出インターフェイスをカプセル化する例として TP5 を使用します。

Alibaba Cloud Content Detection API SDK Development Kit: https://help.aliyun.com/knowledge_detail/50180.html

<?php
namespace Potting;
include_once &#39;Aliyun/aliyun-php-sdk-core/Config.php&#39;;
use Green\Request\V20170112 as Green;
class TextScan{
	private static $accessKeyId=&#39;&#39;;
	private static $accessKeySecret=&#39;&#39;;
	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(&#39;dataId&#39; => uniqid(),
		&#39;content&#39; => $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 == &#39;normal&#39;){
				$data[&#39;code&#39;]=true;
				$data[&#39;label&#39;]=$result->label;
			}else{
				$data[&#39;code&#39;]=false;
				$data[&#39;label&#39;]=self::getlabel($result->label);
			}
			return $data;
		} catch (Exception $e) {
			print_r($e);
		}

	}
	static private function getlabel($label){
		switch ($label){
			case  &#39;normal&#39;:
				return &#39;正常文本&#39;;
				break;
			case  &#39;spam&#39;:
				return &#39;输入的内容含垃圾信息&#39;;
				break;
			case  &#39;ad&#39;:
				return &#39;输入的内容含广告&#39;;
				break;
			case  &#39;politics&#39;:
				return &#39;输入的内容含渉政&#39;;
				break;
			case  &#39;terrorism&#39;:
				return &#39;输入的内容含暴恐&#39;;
				break;
			case  &#39;abuse&#39;:
				return &#39;输入的内容含辱骂&#39;;
				break;
			case  &#39;porn&#39;:
				return &#39;输入的内容含色情&#39;;
				break;
			case  &#39;flood&#39;:
				return &#39;输入的内容含灌水&#39;;
				break;
			case  &#39;contraband&#39;:
				return &#39;输入的内容含垃违禁&#39;;
				break;
			case  &#39;customized&#39;:
				return &#39;输入的内容包含敏感词&#39;;
				break;
			default:
				return &#39;&#39;;
				break;
		}
	}
}

関連書籍:

電子メール送信サービスのカプセル化と添付ファイルの送信を実装する TP5 の例

tp5 での非同期電子メール検証に bootstrapvalidator を使用する方法の例

TP5.0 MVC 紹介ビデオに関するリソースの共有

上記はこの記事の全内容です。学生の皆様に質問がある場合は、以下にコメントできます、話し合いましょう~

以上がTP5 は、Alibaba Cloud の機密性の高い単語検出インターフェイスをカプセル化します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。