Amazon Translateに冒涜的な用語をマスキングするオプションがサポートされました

2021.12.21

いわさです。

Amazon Translateで冒涜的な用語をマスキングして変換出来るオプションが追加されました。
ドキュメント履歴を見ると2021年11月24日なので結構前から利用出来ていたのかもしれません。

簡単な内容ではありますが、試してみましたので紹介します。

やってみる

マネージメントコンソール

使い方は簡単で、追加設定欄にあるProfanityを有効化するだけです。

日本語→英語で試してみます。

マスクされました。

マスクされた部分は、Grawlixtと呼ばれる文字列で「?$#@$」に置き換わります。
単語の長さや数、言語に関係なく固定でこの文字列になります。
なお、変換前の言語でなく変換後の言語で冒涜的かどうかで判断されています。

英語→日本語も試してみます。

こちらもマスクされましたね。
なお、結果全てではなく、対象単語のみマスクされます。

AWS CLI

AWS CLIでは、v2.4.2から利用可能です。
translate-textSettingsオプションでProfanity=MASKを指定することで有効になります。

# マスクなし
iwasa.takahito@hoge ~ % aws translate translate-text --text "I am XXXX" --source-language-code en --target-language-code ja
{
    "TranslatedText": "XXXXXXXX",
    "SourceLanguageCode": "en",
    "TargetLanguageCode": "ja"
}

# マスクあり
iwasa.takahito@hoge ~ % aws translate translate-text --text "I am XXXX" --source-language-code en --target-language-code ja --settings Profanity=MASK
{
    "TranslatedText": "おれは?$#@$ー",
    "SourceLanguageCode": "en",
    "TargetLanguageCode": "ja",
    "AppliedSettings": {
        "Profanity": "MASK"
    }
}

対応言語

一部の言語を除き、Translateでサポートされている言語で利用が可能です。
例外の言語は以下にリストアップされていますので最新のものをご確認ください。

注意

差別用語や放送禁止用語などを元にしているのだと思いますが、「冒涜的」の判断が不明確なので、マスクされるかなと思っててもマスクされないケースがありました。
このあたりは明確なものもあれば判断が難しいところもあり、かつ各国毎にその考え方があるので利用者が期待する範囲を100%カバーするのは難しいところかなと思っています。

ちなみに、そもそも一般的に配慮された翻訳になっているものはそのままその用語が使われるので、変にマスクされてしまう心配は無さそうでした。

また、ドキュメントに以下の記載があります。

Amazon Translate detects each profane word or phrase literally, not contextually. This means that it might mask a profane word even if it’s inoffensive in context.

文章のコンテキストに関係なく、冒涜的な単語やフレーズを検出しマスクするため、冒涜的ではない場合だとしてもマスクされてしまう可能性があるのでご注意ください。

さいごに

本日はTranslateの新しいオプションを試してみました。
ソーステキストにそういった表現が含まれる可能性がある場合は利用を検討してみてください。

私は朝からサンプルとなる冒涜的な例文や単語を探し続けてたのですが、なかなか大変でした。