LoginSignup
0
0

More than 3 years have passed since last update.

Azure Content Moderator (2.text - screen)apiを画面から叩いてみる。

Last updated at Posted at 2020-02-04

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を選択します

クリップボード一時ファイル01.jpg

適宜入力して作成を押下。
Art276.jpg

デプロイに成功したらリソースに移動しますArt278.jpg

遷移先のkey1が必要です。エンドポイントはソースコードを参照ください。
Art277.jpg

ソースコード

<!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>

レスポンス

Art279.jpg

result.json
{"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と組み合わせるしかないか・・・。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0