Azure Content Moderator APIの概要
Azure Content Moderator API は、ユーザが入力したテキスト、画像、ビデオに不適切な内容、が含まれているかどうかを確認できるサービスです。一言で言うと検閲と言ったところでしょうか、ユーザに好き勝手に投稿させないように事前にコグニティブサービスによるチェックを入れて登録したい時等に利用できます。Content Moderatorはtextとimage、videoに分けられます。具体的には以下のようになります。
Image
前回記事参照
text
- Detect Language(指定された文字列の言語を判定します)
- Screen(短文の解析。公式サイトには「下品な言葉を探索する」とあります)
ちなみに送信方法はすべてPOSTです。
上記のうち、今回はContent Moderator - Moderate > text > screenを試してみたいと思います。
以下の記事を参考にContent Moderato(screen)の動作確認を行ってみます。
Content Moderator - Moderate > text > screen
目的
- 不適切な言葉の検出
- 個人情報の検出(メアド、住所、携帯電話番号)
はまりどころ。
上記リンクが古いようです。そのままだと動かないので2点ほど修正が必須です。(2020/02/02現在)
1.エンドポイントが正しくない⇒ソースコード参照
2.パラメータのlanguageの指定内容Supported Languagesがリンク切れしてわからない
"ja","jp","ja-jp"などを試すがNG⇒結局日本語はjpnであることが判明
azure側の準備
"contentmoderator"で検索してMarketPlaceのcontent moderatorを選択します
遷移先のkey1が必要です。エンドポイントはソースコードを参照ください。
ソースコード
<!DOCTYPE html>
<html>
<head>
<title>JSSample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function() {
var params = {
// Request parameters
//"autocorrect": "{boolean}",
//"PII": "{boolean}",
//"listId": "{string}",
"classify": "True",
"language": "jpn",
};
$.ajax({
url: "https://xxxxxxxxxxxxx.cognitiveservices.azure.com/contentmoderator/moderate/v1.0/ProcessText/Screen?" + $.param(params),
beforeSend: function(xhrObj){
// Request headers
xhrObj.setRequestHeader("Content-Type","text/plain");
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","xxxxxxxxxxxxxxxxxxxxxxxxxx");
},
type: "POST",
// Request body
data: "私のおっぱい 080-1122-3344 東京都港区六本木3丁目2番 abcdefg@gmail.comに送信しないでください。",
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});
});
</script>
</body>
</html>
レスポンス
{"OriginalText":"私のおっぱい 080-1122-3344 東京都港区六本木3丁目2番 abcdefg@gmail.comに送信しないでください。",
"NormalizedText":"私のおっぱい 080-1122-3344 東京都港区六本木3丁目2番 abcdefg@gmail.comに送信しないでください。",
"Misrepresentation":null,
"PII":{"Email":[{"Detected":"abcdefg@gmail.com","SubType":"Regular",
"Text":"abcdefg@gmail.com","Index":36}],
"IPA":[],"Phone":[],"Address":[],"SSN":[]},
"Language":"jpn","Terms":null,"Status":{"Code":3000,"Description":"OK","Exception":null},"TrackingId":"USW2_ibiza_b0631b37-2d15-4d33-8d14-f18ba6eb0674_ContentModerator.F0_8439dfa1-0cfc-418f-a251-d67c4fe1b35c"}
結果
一部の検索が上手くいきませんでした。日本語対応がまだされてないようです。現時点ではTranslator Textと組み合わせるしかないか・・・。