Azureで不適切な表現を検知するAzure Content Moderator #Azureリレー
2020-09-02
azblob://2022/11/11/eyecatch/2020-09-02-detect-inappropriate-words-azure-content-moderator-000.jpg

はじめに

夏バテ気味の新卒2年目の佐藤です。
今日は水曜日ということで、先週の藤井さんの「Azureで新サービスを試してみるときに、現役のクラウドエンジニアが意識している7つの観点 #Azureリレー」に引き続き、Azureリレー第24回を担当します。

最近、SNS上では個人に対する誹謗中傷や攻撃的な発言などが問題視されています。
そこでAzureにそういった攻撃的な発言などを検知するサービスとかないかなと探してみたところ、Azure Content Moderatorというサービスを見つけたので、どのようなサービスでどういったことができるのかを調べて試してみました。

Azure Content Moderator とは

Azure Content Moderator とはテキスト・画像・ビデオの中身に不適切な可能性のある内容が含まれているかどうかを確認できる Azure Cognitive Services の1つです。
それぞれの形式に対して、検知できるのは以下です。

  • テキスト:不適切な単語の識別、不適切な文の分類、個人を特定できる情報の検出
  • 画像:成人向けもしくはわいせつなコンテンツの識別と評価、画像内のテキストの検出、顔の検出
  • 動画:フレームレベルでの成人向けもしくはわいせつなコンテンツの識別と評価、Azure Media Indexer サービスを併用した音声の不適切な単語識別

テキストだけでなく、画像や動画も対応しているのは流石ですね。
今回は、Web上から無料で試せるContent Moderatorレビューツールを利用して、テキストに関して、どういったことを検知できるのかを実験してみました。

Content Moderatorレビューツールを利用してみよう

Content ModeratorレビューツールとはContent Moderatorに目視レビューを組み合わせるときに利用するツールです。
ここでは無料でContent Moderatorレビューツールを利用する方法を紹介していきます。

  1. Content Moderatorにアクセスし、サインアップと二段階認証を行います。
  1. レビューチームを作成します。こちらは、本来レビューするのは複数のチームであるという想定のもと作られている機能です。今回は1人での利用を想定しているので、チーム名とチームIDを適当に入力します。
    また、真ん中の「データを暗号化するか」というチェックボックスはオフにします。

Create Teamを押すと、以下のようなダッシュボードに遷移します。

  1. 上部のタブのTry->Textを選択します。

4.表示されたウィンドウに試したいフレーズを入力します。

  1. 「Submit」を押すと、以下のようにポップアップが出ます。

このホップアップの「Click here」を押すと、以下のように検知結果を見ることができます。

上記のように左側に元の文がハイライトとともに表示され、右側に検知結果が表示されます。
検出可能な個人情報は以下です。

  • 電子メールアドレス
  • IPアドレス
  • 住所(米国のみ)
  • 電話番号(米国のみ)

テキストの分類に関しては、英語のみ対応で、以下の3つの観点で0~1の評価を行っています。

  • Category1: 性的に露骨であるとみなされる言葉が含まれているか
  • Category2: 性的もしくは成人向けであると想起させる言葉が含まれているか
  • Category3: 不快であるとみなされる言葉が含まれているか

今回試したサンプルの文は「garbage」や「crap」という単語が含まれているため、Category3が0.98と高くなっています。

日本語でもいくつか試してみましたが、英語と同様に「馬鹿」といった直接的な単語しか検知しない、ひらがな・カタカナなどの表記ゆれに弱いといった問題点が見られました。
そのため、英語のみ対応となっているテキストの分類が日本語対応されないと昨今問題視されている攻撃的な発言の検知はなかなか難しそうだと思いました。

まとめ

テキスト・画像・ビデオの中身に不適切な可能性のある内容が含まれているかどうかを様々な観点で検出するAzure Content Moderatorを紹介しました。
住所や電話番号などの個人情報の抽出・不快な表現が含まれるかどうかの分類は日本語では未対応であり、また不快な単語は直接的な単語しか検知しないといった方針のため、日本語での攻撃的な発言の検知にそのまま用いるのは難しそうな雰囲気でした。
人手での評価を取り入れてさらに学習させるなどのひと手間を入れればいいのかなと個人的には思いました。
レビューツールやレビューAPIなどはAzure Content Moderatorに実装されてはいるようなので、実際に使われている事例などご存じの方いたら教えてください。

参考

https://docs.microsoft.com/ja-jp/azure/cognitive-services/content-moder…